@tailwindcss/upgrade 4.0.0-alpha.25 → 4.0.0-alpha.26

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 +9 -4
  2. package/package.json +6 -2
package/dist/index.mjs CHANGED
@@ -1,6 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import{globby as he}from"globby";import ye from"node:path";import d from"picocolors";import ie from"node:fs";import ve from"node:path";import{stripVTControlCharacters as ne}from"node:util";import g from"picocolors";import K from"enhanced-resolve";import ee from"node:fs";import{createRequire as te}from"node:module";var re=te(import.meta.url).resolve;function I(e){if(typeof globalThis.__tw_resolve=="function"){let r=globalThis.__tw_resolve(e);if(r)return r}return re(e)}var Se=K.ResolverFactory.createResolver({fileSystem:new K.CachedInputFileSystem(ee,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});var A={indent:2};function T(){return`${g.italic(g.bold(g.blue("\u2248")))} tailwindcss ${g.blue(`v${se()}`)}`}function _(e){return`${g.dim(g.blue("`"))}${g.blue(e)}${g.dim(g.blue("`"))}`}function w(e,r){let t=e.split(" "),s=[],o="",i=0;for(let p of t){let n=ne(p).length;i+n+1>r&&(s.push(o),o="",i=0),o+=(i?" ":"")+p,i+=n+(i?1:0)}return i&&s.push(o),s}function S(e,r=0){return`${" ".repeat(r+A.indent)}${e}`}function L(e,r=x){w(e,process.stderr.columns-3).map(t=>r(`${g.green("\u2502")} ${t}`)),r()}function N(e,r=x){w(e,process.stderr.columns-3).map(t=>r(`${g.blue("\u2502")} ${t}`)),r()}function F(e,r=x){w(e,process.stderr.columns-3).map(t=>r(`${g.red("\u2502")} ${t}`)),r()}function x(e=""){process.stderr.write(`${e}
3
- `)}function f(e=""){process.stdout.write(`${e}
4
- `)}function se(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(ie.readFileSync(I("tailwindcss/package.json"),"utf-8"));return e}function j({invalid:e,usage:r,options:t}){let s=process.stdout.columns;if(f(T()),e&&(f(),f(`${d.dim("Invalid command:")} ${e}`)),r&&r.length>0){f(),f(d.dim("Usage:"));for(let[o,i]of r.entries()){let p=i.slice(0,i.indexOf("[")),n=i.slice(i.indexOf("["));n=n.replace(/\[.*?\]/g,u=>d.dim(u));let l=w(n,s-A.indent-p.length-1);l.length>1&&o!==0&&f(),f(S(`${p}${l.shift()}`));for(let u of l)f(S(u,p.length))}}if(t){let o=0;for(let{alias:a}of Object.values(t))a&&(o=Math.max(o,a.length));let i=[],p=0;for(let[a,{alias:l}]of Object.entries(t)){let u=[l&&`${l.padStart(o)}`,l?a:" ".repeat(o+2)+a].filter(Boolean).join(", ");i.push(u),p=Math.max(p,u.length)}f(),f(d.dim("Options:"));let n=8;for(let{description:a,default:l=null}of Object.values(t)){let u=i.shift(),m=n+(p-u.length),y=2,b=s-u.length-m-y-A.indent,h=w(l!==null?`${a} ${d.dim(`[default:\u202F${_(`${l}`)}]`)}`:a,b);f(S(`${d.blue(u)} ${d.dim(d.gray("\xB7")).repeat(m)} ${h.shift()}`));for(let P of h)f(S(`${" ".repeat(u.length+m+y)}${P}`))}}}import H from"node:fs/promises";import ue from"node:path";import me from"postcss";import{parse as ae}from"postcss";import{format as oe}from"prettier";function c(e,r){let t;return e.each?.(s=>{let o=r(s)??0;if(o===2)return t=!1,t;if(o!==1)return t=c(s,r),t}),t}function U(e,r){e?.each?.(t=>{U(t,r),r(t)})}function M(){async function e(r){let t=[];c(r,s=>{if(s.raws.tailwind_pretty)return t.push(s),1}),await Promise.all(t.map(async s=>{s.replaceWith(ae(await oe(s.toString(),{parser:"css",semi:!0})))}))}return{postcssPlugin:"@tailwindcss/upgrade/format-nodes",OnceExit:e}}var k=new Uint8Array(256);function $(e,r){let t=0,s=[],o=0,i=e.length,p=r.charCodeAt(0);for(let n=0;n<i;n++){let a=e.charCodeAt(n);if(t===0&&a===p){s.push(e.slice(o,n)),o=n+1;continue}switch(a){case 92:n+=1;break;case 39:case 34:for(;++n<i;){let l=e.charCodeAt(n);if(l===92){n+=1;continue}if(l===a)break}break;case 40:k[t]=41,t++;break;case 91:k[t]=93,t++;break;case 123:k[t]=125,t++;break;case 93:case 125:case 41:t>0&&a===k[t-1]&&t--;break}}return s.push(e.slice(o)),s}function Y(){function e(r){let t=r.params.split(/(\s+)/),s=t[t.length-1]==="!important"||t[t.length-1]==="#{!important}";s&&t.pop();let o=t.map(i=>{if(i.trim()==="")return i;let p=$(i,":"),n=p.pop();return s&&n[0]!=="!"&&n[n.length-1]!=="!"&&(n+="!"),n[0]==="!"&&(n=`${n.slice(1)}!`),[...p,n].join(":")});r.params=o.join("").trim()}return{postcssPlugin:"@tailwindcss/upgrade/migrate-at-apply",OnceExit(r){r.walkAtRules("apply",e)}}}import"postcss";import v from"postcss-selector-parser";function V(){function e(r){if(r.params!=="utilities"&&r.params!=="components")return;let t=r.clone();c(r,i=>{if(i.type!=="rule")return;let p=$(i.selector,",");if(p.length>1){let n=[];for(let a of p){let l=i.clone({selector:a});n.push(l)}i.replaceWith(n)}return 1});let s=new Set;c(r,i=>{if(i.type==="rule")return v(p=>{p.each(n=>{c(n,a=>{if(a.type==="pseudo"&&a.value===":not")return 1;a.type==="class"&&s.add(a.value)})})}).processSync(i.selector,{updateSelector:!1}),1}),c(t,i=>{i.type==="rule"&&v(p=>{p.each(n=>{c(n,a=>{if(a.type==="pseudo"&&a.value===":not")return 1;if(a.type==="class"&&s.has(a.value))return i.remove(),2}),i.selector=n.toString()})}).processSync(i.selector,{updateSelector:!1})});let o=[t];for(let i of s){let p=r.clone();o.push(p),c(p,n=>{if(n.type!=="rule")return;let a=!1;if(v(l=>{l.each(u=>{c(u,m=>{if(m.type==="pseudo"&&m.value===":not")return 1;if(m.type==="class"&&m.value===i){a=!0;let y=u.atPosition(m.source.start.line,m.source.start.column),b=y.parent,h=(y.parent?.index(y)??0)-1;for(;h>=0&&b.at(h)?.type!=="combinator";){let P=b.at(h+1),Z=b.at(h);b.at(h+1).replaceWith(Z),b.at(h).replaceWith(P),h--}y.replaceWith(v.nesting())}})}),n.selector=l.toString()}).processSync(n.selector),!a){let l=[n],u=n.parent?.index(n)??null;if(u!==null)for(let m=u-1;m>=0&&n.parent?.nodes.at(m)?.type!=="rule";m--)n.parent?.nodes.at(m)?.type==="comment"&&l.push(n.parent?.nodes.at(m));for(let m of l)m.remove()}return 1}),p.name="utility",p.params=i,p.raws.tailwind_pretty=!0,p.raws.before+=`
2
+ import{globby as Je}from"globby";import Mt from"node:path";import x from"picocolors";import rt from"node:fs";import rr from"node:path";import{stripVTControlCharacters as it}from"node:util";import y from"picocolors";import oe from"enhanced-resolve";import Ze from"node:fs";import{createRequire as et}from"node:module";var tt=et(import.meta.url).resolve;function le(e){if(typeof globalThis.__tw_resolve=="function"){let t=globalThis.__tw_resolve(e);if(t)return t}return tt(e)}var Jt=oe.ResolverFactory.createResolver({fileSystem:new oe.CachedInputFileSystem(Ze,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});var z={indent:2};function O(){return`${y.italic(y.bold(y.blue("\u2248")))} tailwindcss ${y.blue(`v${nt()}`)}`}function P(e){return`${y.dim(y.blue("`"))}${y.blue(e)}${y.dim(y.blue("`"))}`}function T(e,t){let i=e.split(" "),r=[],n="",o=0;for(let l of i){let a=it(l).length;o+a+1>t&&(r.push(n),n="",o=0),n+=(o?" ":"")+l,o+=a+(o?1:0)}return o&&r.push(n),r}function A(e,t=0){return`${" ".repeat(t+z.indent)}${e}`}function _(e,t=K){T(e,process.stderr.columns-3).map(i=>t(`${y.green("\u2502")} ${i}`)),t()}function F(e,t=K){T(e,process.stderr.columns-3).map(i=>t(`${y.blue("\u2502")} ${i}`)),t()}function J(e,t=K){T(e,process.stderr.columns-3).map(i=>t(`${y.red("\u2502")} ${i}`)),t()}function K(e=""){process.stderr.write(`${e}
3
+ `)}function h(e=""){process.stdout.write(`${e}
4
+ `)}function nt(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(rt.readFileSync(le("tailwindcss/package.json"),"utf-8"));return e}function ae({invalid:e,usage:t,options:i}){let r=process.stdout.columns;if(h(O()),e&&(h(),h(`${x.dim("Invalid command:")} ${e}`)),t&&t.length>0){h(),h(x.dim("Usage:"));for(let[n,o]of t.entries()){let l=o.slice(0,o.indexOf("[")),a=o.slice(o.indexOf("["));a=a.replace(/\[.*?\]/g,u=>x.dim(u));let c=T(a,r-z.indent-l.length-1);c.length>1&&n!==0&&h(),h(A(`${l}${c.shift()}`));for(let u of c)h(A(u,l.length))}}if(i){let n=0;for(let{alias:s}of Object.values(i))s&&(n=Math.max(n,s.length));let o=[],l=0;for(let[s,{alias:c}]of Object.entries(i)){let u=[c&&`${c.padStart(n)}`,c?s:" ".repeat(n+2)+s].filter(Boolean).join(", ");o.push(u),l=Math.max(l,u.length)}h(),h(x.dim("Options:"));let a=8;for(let{description:s,default:c=null}of Object.values(i)){let u=o.shift(),p=a+(l-u.length),f=2,d=r-u.length-p-f-z.indent,g=T(c!==null?`${s} ${x.dim(`[default:\u202F${P(`${c}`)}]`)}`:s,d);h(A(`${x.blue(u)} ${x.dim(x.gray("\xB7")).repeat(p)} ${g.shift()}`));for(let m of g)h(A(`${" ".repeat(u.length+p+f)}${m}`))}}}import Ne from"node:fs/promises";import xt from"node:path";import kt from"postcss";import{parse as lt}from"postcss";import{format as at}from"prettier";function v(e,t){let i;return e.each?.(r=>{let n=t(r)??0;if(n===2)return i=!1,i;if(n!==1)return i=v(r,t),i}),i}function X(e,t){e?.each?.(i=>{X(i,t),t(i)})}function se(){async function e(t){let i=[];v(t,r=>{if(r.raws.tailwind_pretty)return i.push(r),1}),await Promise.all(i.map(async r=>{r.replaceWith(lt(await at(r.toString(),{parser:"css",semi:!0})))}))}return{postcssPlugin:"@tailwindcss/upgrade/format-nodes",OnceExit:e}}var U=new Uint8Array(256);function w(e,t){let i=0,r=[],n=0,o=e.length,l=t.charCodeAt(0);for(let a=0;a<o;a++){let s=e.charCodeAt(a);if(i===0&&s===l){r.push(e.slice(n,a)),n=a+1;continue}switch(s){case 92:a+=1;break;case 39:case 34:for(;++a<o;){let c=e.charCodeAt(a);if(c===92){a+=1;continue}if(c===s)break}break;case 40:U[i]=41,i++;break;case 91:U[i]=93,i++;break;case 123:U[i]=125,i++;break;case 93:case 125:case 41:i>0&&s===U[i-1]&&i--;break}}return r.push(e.slice(n)),r}import be from"node:fs/promises";import yt from"node:path";import{Scanner as st}from"@tailwindcss/oxide";import ue from"string-byte-slice";async function fe(e){let i=new st({}).getCandidatesWithPositions({content:e,extension:"html"}),r=[];for(let{candidate:n,position:o}of i)r.push({rawCandidate:n,start:o,end:o+n.length});return r}function b(e,t){let i=[];for(let n of t.variants)i.unshift(ce(n));e.theme.prefix&&i.unshift(e.theme.prefix);let r="";return(t.kind==="static"||t.kind==="functional")&&t.negative&&(r+="-"),t.kind==="static"&&(r+=t.root),t.kind==="functional"&&(r+=t.root,t.value&&(t.value.kind==="arbitrary"?t.value===null?r+="":t.value.dataType?r+=`-[${t.value.dataType}:${k(t.value.value)}]`:r+=`-[${k(t.value.value)}]`:t.value.kind==="named"&&(r+=`-${t.value.value}`))),t.kind==="arbitrary"&&(r+=`[${t.property}:${k(t.value)}]`),(t.kind==="arbitrary"||t.kind==="functional")&&t.modifier&&(t.modifier.kind==="arbitrary"?r+=`/[${k(t.modifier.value)}]`:t.modifier.kind==="named"&&(r+=`/${t.modifier.value}`)),t.important&&(r+="!"),i.push(r),i.join(":")}function ce(e){if(e.kind==="static")return e.root;if(e.kind==="arbitrary")return`[${k(e.selector)}]`;let t="";return e.kind==="functional"&&(t+=e.root,e.value&&(e.value.kind==="arbitrary"?t+=`-[${k(e.value.value)}]`:e.value.kind==="named"&&(t+=`-${e.value.value}`))),e.kind==="compound"&&(t+=e.root,t+="-",t+=ce(e.variant)),(e.kind==="functional"||e.kind==="compound")&&e.modifier&&(e.modifier.kind==="arbitrary"?t+=`/[${k(e.modifier.value)}]`:e.modifier.kind==="named"&&(t+=`/${e.modifier.value}`)),t}function k(e){return e.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}function pe(e,t,i,r){return ue(e,0,i)+t+ue(e,r)}function C(e,t,i=null,r={}){for(let n=0;n<e.length;n++){let o=e[n];if(o.kind==="context"){C(o.nodes,t,i,{...r,...o.context});continue}let l=t(o,{parent:i,replaceWith(a){e.splice(n,1,...Array.isArray(a)?a:[a]),n--},context:r})??0;if(l===2)return;l!==1&&o.kind==="rule"&&C(o.nodes,t,o,r)}}function ge(e,t,i){for(let r of e.parseCandidate(i)){let n=!1;if("modifier"in r&&r.modifier?.kind==="arbitrary"&&!B(e,r,r.modifier.value)){let{value:o,didChange:l}=L(r.modifier.value);r.modifier.value=o,n||=l}for(let o of r.variants)de(e,o)&&(n=!0);if(r.kind==="arbitrary"&&!B(e,r,r.value)){let{value:o,didChange:l}=L(r.value);r.value=o,n||=l}if(r.kind==="functional"&&r.value&&r.value.kind==="arbitrary"&&!B(e,r,r.value.value)){let{value:o,didChange:l}=L(r.value.value);r.value.value=o,n||=l}if(n)return b(e,r)}return i}function L(e){let t=!1;return e.startsWith("--")?(e=`var(${e})`,t=!0):e.startsWith(" --")&&(e=e.slice(1),t=!0),{value:e,didChange:t}}function de(e,t){let i=!1;if(t.kind==="functional"&&t.value&&t.value.kind==="arbitrary"&&!B(e,ut(t),t.value.value)){let{value:r,didChange:n}=L(t.value.value);t.value.value=r,i||=n}return t.kind==="compound"&&de(e,t.variant)&&(i=!0),i}function ut(e){return{kind:"arbitrary",property:"color",value:"red",modifier:null,variants:[e],important:!1,raw:"candidate"}}var ft=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","anchor-name","anchor-scope","position-anchor","position-try-options","scroll-timeline","animation-timeline","view-timeline","position-try"]);function B(e,t,i){let r=e.compileAstNodes(t).map(o=>o.node),n=!1;return C(r,o=>{if(o.kind==="declaration"&&ft.has(o.property)&&o.value==i)return n=!0,2}),n}var ct=["t","tr","r","br","b","bl","l","tl"];function me(e,t,i){for(let r of e.parseCandidate(i))if(r.kind==="static"&&r.root.startsWith("bg-gradient-to-")){let n=r.root.slice(15);if(!ct.includes(n))continue;return r.root=`bg-linear-to-${n}`,b(e,r)}return i}function he(e,t,i){for(let r of e.parseCandidate(i))if(r.important&&r.raw[r.raw.length-1]!=="!")return b(e,r);return i}function ve(e,t,i){if(!e.theme.prefix)return i;let r=pt(e,t,i);if(!r)return i;let n=e.theme.prefix,o=null;try{e.theme.prefix=null;let l=i.slice(0,r.start)+r.base+i.slice(r.end),a=e.parseCandidate(l);a.length>0&&(o=a[0])}finally{e.theme.prefix=n}return o?b(e,o):i}function pt(e,t,i){if(!e.theme.prefix)return null;if(!t.prefix)throw new Error("Could not find the Tailwind CSS v3 `prefix` configuration inside the JavaScript config.");let n=w(i,":").pop(),o=i.length-n.length,l=o+n.length,a=!1,s=!1;return n[n.length-1]==="!"?(a=!0,n=n.slice(0,-1)):n[0]==="!"&&(a=!0,n=n.slice(1)),n[0]==="-"&&(s=!0,n=n.slice(1)),!n.startsWith(t.prefix)&&n[0]!=="["?null:(n[0]!=="["&&(n=n.slice(t.prefix.length)),s&&(n="-"+n),a&&(n+="!"),{base:n,start:o,end:l})}var gt=/([a-z]+)/;function ye(e){let t=gt.exec(e.toLocaleLowerCase());return t?t[0]:(console.warn(`The prefix "${e} can not be used with Tailwind CSS v4 and cannot be converted to a valid one automatically. We've updated it to "tw" for you.`),"tw")}function we(e,t,i){for(let r of e.parseCandidate(i)){if(r.variants.length<=1)continue;let n=[],o=[],l=[],a=r.variants;for(let u of r.variants)dt(e,u)?n.push(u):ht(e,u)?l.push(u):o.push(u);let s=o.some(u=>mt(e,u)),c=[...l,...s?o.reverse():o,...n];if(!vt(a,c))return b(e,{...r,variants:c})}return i}function dt(e,t){return t.kind==="static"&&t.root==="dark"?!0:Q(e,t).every(r=>r.kind==="rule"&&r.selector[0]==="@")}function mt(e,t){return Q(e,t).some(r=>r.kind==="rule"&&r.selector[0]!=="@"&&(r.selector.includes(" ")||r.selector.includes(">")||r.selector.includes("+")||r.selector.includes("~")))}function ht(e,t){return Q(e,t).some(r=>r.kind==="rule"&&(r.selector.includes("::after")||r.selector.includes("::backdrop")||r.selector.includes("::before")||r.selector.includes("::first-letter")||r.selector.includes("::first-line")||r.selector.includes("::marker")||r.selector.includes("::placeholder")||r.selector.includes("::selection")))}function Q(e,t){let i=[],r=e.compileAstNodes({kind:"arbitrary",property:"color",value:"red",modifier:null,variants:[t],important:!1,raw:"candidate"}).map(n=>n.node);return C(r,n=>{n.kind==="rule"&&n.selector===".candidate"||n.kind==="declaration"&&n.property==="color"&&n.value==="red"||i.push(n)}),i}function vt(e,t){return e.length!==t.length?!1:e.every((i,r)=>t[r]===i)}var wt=[ve,he,ge,me,we];function Z(e,t,i){for(let r of wt)i=r(e,t,i);return i}async function xe(e,t,i){let r=await fe(i);r.sort((o,l)=>l.start-o.start);let n=i;for(let{rawCandidate:o,start:l,end:a}of r){let s=Z(e,t,o);s!==o&&(n=pe(n,s,l,a))}return n}async function ke(e,t,i){let r=yt.resolve(process.cwd(),i),n=await be.readFile(r,"utf-8");await be.writeFile(r,await xe(e,t,n))}function $e({designSystem:e,userConfig:t}={}){function i(r){let n=r.params.split(/(\s+)/),o=n[n.length-1]==="!important"||n[n.length-1]==="#{!important}";o&&n.pop();let l=n.map(a=>{if(a.trim()==="")return a;let s=w(a,":"),c=s.pop();return o&&c[0]!=="!"&&c[c.length-1]!=="!"&&(c+="!"),c[0]==="!"&&(c=`${c.slice(1)}!`),[...s,c].join(":")});e&&t&&(l=l.map(a=>Z(e,t,a))),r.params=l.join("").trim()}return{postcssPlugin:"@tailwindcss/upgrade/migrate-at-apply",OnceExit(r){r.walkAtRules("apply",i)}}}import"postcss";import I from"postcss-selector-parser";function Te(){function e(t){if(t.params!=="utilities"&&t.params!=="components")return;let i=t.clone();v(t,o=>{if(o.type!=="rule")return;let l=w(o.selector,",");if(l.length>1){let a=[];for(let s of l){let c=o.clone({selector:s});a.push(c)}o.replaceWith(a)}return 1});let r=new Set;v(t,o=>{if(o.type==="rule")return I(l=>{l.each(a=>{v(a,s=>{if(s.type==="pseudo"&&s.value===":not")return 1;s.type==="class"&&r.add(s.value)})})}).processSync(o.selector,{updateSelector:!1}),1}),v(i,o=>{o.type==="rule"&&I(l=>{l.each(a=>{v(a,s=>{if(s.type==="pseudo"&&s.value===":not")return 1;if(s.type==="class"&&r.has(s.value))return o.remove(),2})})}).processSync(o,{updateSelector:!0})});let n=[i];for(let o of r){let l=t.clone();n.push(l),v(l,a=>{if(a.type!=="rule")return;let s=!1;if(I(c=>{c.each(u=>{v(u,p=>{if(p.type==="pseudo"&&p.value===":not")return 1;if(p.type==="class"&&p.value===o){s=!0;let f=u.atPosition(p.source.start.line,p.source.start.column),d=f.parent,g=(f.parent?.index(f)??0)-1;for(;g>=0&&d.at(g)?.type!=="combinator";){let m=d.at(g+1),S=d.at(g);d.at(g+1).replaceWith(S),d.at(g).replaceWith(m),g--}f.replaceWith(I.nesting())}})})}).processSync(a,{updateSelector:!0}),!s){let c=[a],u=a.parent?.index(a)??null;if(u!==null)for(let p=u-1;p>=0&&a.parent?.nodes.at(p)?.type!=="rule";p--)a.parent?.nodes.at(p)?.type==="comment"&&c.push(a.parent?.nodes.at(p));for(let p of c)p.remove()}return 1}),l.name="utility",l.params=o,l.raws.tailwind_pretty=!0,l.raws.before+=`
5
5
 
6
- `}for(let i=o.length-1;i>=0;i--){let p=o[i];U(p,n=>{if(p===t&&n.type==="comment"){let a=!1;for(let l of o)if(l!==t&&(c(l,u=>{if(u.type==="comment"&&u.source?.start?.offset===n.source?.start?.offset)return n.remove(),a=!0,2}),a))return 1}if((n.type==="rule"||n.type==="atrule")&&n.nodes?.length===0)n.remove();else if(n.type==="rule"&&n.selector==="&"){let a=n.parent,l=!1;for(;a;){if(a.type==="rule"){l=!0;break}a=a.parent}l||n.replaceWith(n.nodes)}}),p.nodes?.length===0&&o.splice(i,1)}r.replaceWith(o)}return{postcssPlugin:"@tailwindcss/upgrade/migrate-at-layer-utilities",OnceExit:r=>{r.walkAtRules("layer",e);{let t=new Map;c(r,s=>{if(s.type==="atrule"&&s.name==="utility"){let o=t.get(s.params);o?(o.append(s.nodes),s.remove()):t.set(s.params,s)}})}}}}import{AtRule as pe}from"postcss";function G(){function e(r){let t="",s=[],o=[];r.each(i=>{if(i.type==="atrule"){if(i.name==="theme"||i.name==="utility"){s.length>0&&o.push([t,s.splice(0)]);return}if(i.name==="tailwind"&&i.params==="base"||i.name==="import"&&i.params.match(/^["']tailwindcss\/base["']/)){s.length>0&&o.push([t,s.splice(0)]),t="base";return}if(i.name==="tailwind"&&i.params==="components"||i.name==="import"&&i.params.match(/^["']tailwindcss\/components["']/)){s.length>0&&o.push([t,s.splice(0)]),t="components";return}if(i.name==="tailwind"&&i.params==="utilities"||i.name==="import"&&i.params.match(/^["']tailwindcss\/utilities["']/)){s.length>0&&o.push([t,s.splice(0)]),t="utilities";return}if(i.name==="layer"){s.length>0&&o.push([t,s.splice(0)]);return}if(i.name==="import"){i.params.includes("layer(")||(i.params+=` layer(${t})`),s.length>0&&o.push([t,s.splice(0)]);return}}t!==""&&s.push(i)!==1&&i.remove()}),s.length>0&&o.push([t,s.splice(0)]);for(let[i,p]of o){let n=new pe({name:"layer",params:i,nodes:p,raws:{tailwind_pretty:!0}});p[0].replaceWith(n)}}return{postcssPlugin:"@tailwindcss/upgrade/migrate-missing-layers",OnceExit:e}}import{AtRule as R}from"postcss";var W=["theme","base","components","utilities"];function Q(){function e(r){let t=null,s=null,o=null,i=null,p=null,n=null,a=[];r.walkAtRules(l=>{l.name==="tailwind"&&l.params==="base"||l.name==="import"&&l.params.match(/^["']tailwindcss\/base["']$/)?(a.push("base"),t=l,l.remove()):l.name==="tailwind"&&l.params==="utilities"||l.name==="import"&&l.params.match(/^["']tailwindcss\/utilities["']$/)?(a.push("utilities"),s=l,l.remove()):(l.name==="tailwind"&&l.params==="components"||l.name==="tailwind"&&l.params==="screens"||l.name==="tailwind"&&l.params==="variants"||l.name==="import"&&l.params.match(/^["']tailwindcss\/components["']$/))&&l.remove()}),t!==null&&s!==null?o||r.prepend(new R({name:"import",params:"'tailwindcss'"})):s!==null?i||r.prepend(new R({name:"import",params:"'tailwindcss/utilities' layer(utilities)"})):t!==null&&(p||r.prepend(new R({name:"import",params:"'tailwindcss/preflight' layer(base)"})),n||r.prepend(new R({name:"import",params:"'tailwindcss/theme' layer(theme)"})));{let l=a.toSorted((u,m)=>W.indexOf(u)-W.indexOf(m));if(a.some((u,m)=>u!==l[m])){let u=W.toSorted((m,y)=>a.indexOf(m)-a.indexOf(y));r.prepend({name:"layer",params:u.join(", ")})}}}return{postcssPlugin:"@tailwindcss/upgrade/migrate-tailwind-directives",OnceExit:e}}async function fe(e,r){return me().use(Y()).use(V()).use(G()).use(Q()).use(M()).process(e,{from:r}).then(t=>t.css)}async function q(e){let r=ue.resolve(process.cwd(),e),t=await H.readFile(r,"utf-8");await H.writeFile(r,await fe(t,r))}import ce from"mri";function z(e,r=process.argv.slice(2)){let t=ce(r),s={_:t._};for(let[o,{type:i,alias:p,default:n=i==="boolean"?!1:null}]of Object.entries(e)){if(s[o]=n,p){let a=p.slice(1);t[a]!==void 0&&(s[o]=J(t[a],i))}{let a=o.slice(2);t[a]!==void 0&&(s[o]=J(t[a],i))}}return s}function J(e,r){switch(r){case"string":return O(e);case"boolean":return C(e);case"number":return E(e);case"boolean | string":return C(e)??O(e);case"number | string":return E(e)??O(e);case"boolean | number":return C(e)??E(e);case"boolean | number | string":return C(e)??E(e)??O(e);default:throw new Error(`Unhandled type: ${r}`)}}function C(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function E(e){if(typeof e=="number")return e;{let r=Number(e);if(!Number.isNaN(r))return r}}function O(e){return`${e}`}import{execSync as ge}from"node:child_process";function B(){try{return ge("git status --porcelain",{encoding:"utf-8"}).trim()!==""}catch(e){return!e?.toString?.().includes("not a git repository")}}var X={"--help":{type:"boolean",description:"Display usage information",alias:"-h"},"--force":{type:"boolean",description:"Force the migration",alias:"-f"},"--version":{type:"boolean",description:"Display the version number",alias:"-v"}},D=z(X);D["--help"]&&(j({usage:["npx @tailwindcss/upgrade"],options:X}),process.exit(0));async function de(){x(T()),x(),D["--force"]||B()&&(F("Git directory is not clean. Please stash or commit your changes before migrating."),N(`You may use the ${_("--force")} flag to silence this warning and perform the migration.`),process.exit(1));let e=D._.map(r=>ye.resolve(process.cwd(),r));e.length===0&&(N("No files provided. Searching for CSS files in the current directory and its subdirectories\u2026"),e=await he(["**/*.css"],{absolute:!0,gitignore:!0})),e=e.filter(r=>r.endsWith(".css")),await Promise.allSettled(e.map(r=>q(r))),B()?L("Migration complete. Verify the changes and commit them to your repository."):L("Migration complete. No changes were made to your repository.")}de().then(()=>process.exit(0)).catch(e=>{console.error(e),process.exit(1)});
6
+ `}for(let o=n.length-1;o>=0;o--){let l=n[o];X(l,a=>{if(l===i&&a.type==="comment"){let s=!1;for(let c of n)if(c!==i&&(v(c,u=>{if(u.type==="comment"&&u.source?.start?.offset===a.source?.start?.offset)return a.remove(),s=!0,2}),s))return 1}if((a.type==="rule"||a.type==="atrule")&&a.nodes?.length===0)a.remove();else if(a.type==="rule"&&a.selector==="&"){let s=a.parent,c=!1;for(;s;){if(s.type==="rule"){c=!0;break}s=s.parent}c||a.replaceWith(a.nodes)}}),l.nodes?.length===0&&n.splice(o,1)}t.replaceWith(n)}return{postcssPlugin:"@tailwindcss/upgrade/migrate-at-layer-utilities",OnceExit:t=>{t.walkAtRules("layer",e);{let i=new Map;v(t,r=>{if(r.type==="atrule"&&r.name==="utility"){let n=i.get(r.params);n?(n.append(r.nodes),r.remove()):i.set(r.params,r)}})}}}}import{AtRule as bt}from"postcss";function Ke(){function e(t){let i="",r=[],n=[],o=null;t.each(l=>{if(l.type==="atrule"){if(l.name==="theme"||l.name==="utility"){r.length>0&&n.push([i,r.splice(0)]);return}if(l.name==="tailwind"&&l.params==="base"||l.name==="import"&&l.params.match(/^["']tailwindcss\/base["']/)){r.length>0&&n.push([i,r.splice(0)]),o??="base",i="base";return}if(l.name==="tailwind"&&l.params==="components"||l.name==="import"&&l.params.match(/^["']tailwindcss\/components["']/)){r.length>0&&n.push([i,r.splice(0)]),o??="components",i="components";return}if(l.name==="tailwind"&&l.params==="utilities"||l.name==="import"&&l.params.match(/^["']tailwindcss\/utilities["']/)){r.length>0&&n.push([i,r.splice(0)]),o??="utilities",i="utilities";return}if(l.name==="layer"){r.length>0&&n.push([i,r.splice(0)]);return}if(l.name==="import"){i!==""&&!l.params.includes("layer(")&&(l.params+=` layer(${i})`),r.length>0&&n.push([i,r.splice(0)]);return}}i===""&&(l.type==="comment"||l.type==="atrule"&&!l.nodes||l.type==="atrule"&&l.name==="charset")||r.push(l)});for(let[l,a]of n){if(a.every(u=>u.type==="comment"))continue;let s=a[0],c=new bt({name:"layer",params:l||o||"",nodes:a.map(u=>u===s?u:u.remove()),raws:{tailwind_pretty:!0}});s.replaceWith(c)}}return{postcssPlugin:"@tailwindcss/upgrade/migrate-missing-layers",OnceExit:e}}import{AtRule as W}from"postcss";var ee=["theme","base","components","utilities"];function Ce(e){let t=e.newPrefix?` prefix(${e.newPrefix})`:"";function i(r){let n=null,o=null,l=[],a=null,s=null,c=null,u=null,p=[];r.walkAtRules(f=>{f.name==="import"&&f.params.match(/^["']tailwindcss\/tailwind\.css["']$/)&&(f.params=f.params.replace("tailwindcss/tailwind.css","tailwindcss")),f.name==="import"&&f.params.match(/^["']tailwindcss["']/)?f.params+=t:f.name==="tailwind"&&f.params==="base"||f.name==="import"&&f.params.match(/^["']tailwindcss\/base["']$/)?(p.push("base"),l.push(f),n=f):f.name==="tailwind"&&f.params==="utilities"||f.name==="import"&&f.params.match(/^["']tailwindcss\/utilities["']$/)?(p.push("utilities"),l.push(f),o=f):(f.name==="tailwind"&&f.params==="components"||f.name==="tailwind"&&f.params==="screens"||f.name==="tailwind"&&f.params==="variants"||f.name==="import"&&f.params.match(/^["']tailwindcss\/components["']$/))&&f.remove()}),n!==null&&o!==null?(a||M(l).before(new W({name:"import",params:`'tailwindcss'${t}`})),n?.remove(),o?.remove()):o!==null?(s||M(l).before(new W({name:"import",params:"'tailwindcss/utilities' layer(utilities)"})),o?.remove()):n!==null&&(u||M(l).before(new W({name:"import",params:`'tailwindcss/theme' layer(theme)${t}`})),c||M(l).before(new W({name:"import",params:"'tailwindcss/preflight' layer(base)"})),n?.remove());{let f=p.toSorted((d,g)=>ee.indexOf(d)-ee.indexOf(g));if(p.some((d,g)=>d!==f[g])){let d=ee.toSorted((g,m)=>p.indexOf(g)-p.indexOf(m));r.prepend({name:"layer",params:d.join(", ")})}}}return{postcssPlugin:"@tailwindcss/upgrade/migrate-tailwind-directives",OnceExit:i}}function M(e){let t=e.at(0),i=t.prev();for(;i;){if(i.type==="rule"&&(t=i),i.type==="atrule")if(i.name==="charset"||i.name==="import"){i=i.prev();continue}else if(i.name==="layer"&&!i.nodes){i=i.prev();continue}else t=i;i=i.prev()}return t}async function $t(e,t,i){return kt().use($e(t)).use(Te()).use(Ke()).use(Ce(t)).use(se()).process(e,{from:i}).then(r=>r.css)}async function Se(e,t){let i=xt.resolve(process.cwd(),e),r=await Ne.readFile(i,"utf-8");await Ne.writeFile(i,await $t(r,t,i))}import{__unstable__loadDesignSystem as We,compile as Ft}from"@tailwindcss/node";import ie from"node:path";import{dirname as Me}from"path";import{fileURLToPath as Ut}from"url";import G from"enhanced-resolve";import{createJiti as At}from"jiti";import ze from"node:fs";import yi from"node:fs/promises";import bi,{dirname as Ve,extname as xi}from"node:path";import{pathToFileURL as Ee}from"node:url";import{__unstable__loadDesignSystem as Ti,compile as Ki}from"tailwindcss";import te from"node:fs/promises";import V from"node:path";var Tt=[/import[\s\S]*?['"](.{3,}?)['"]/gi,/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi,/export[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi,/require\(['"`](.+)['"`]\)/gi],Kt=[".js",".cjs",".mjs"],Ct=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],Nt=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"];async function St(e,t){for(let i of t){let r=`${e}${i}`;if((await te.stat(r).catch(()=>null))?.isFile())return r}for(let i of t){let r=`${e}/index${i}`;if(await te.access(r).then(()=>!0,()=>!1))return r}return null}async function Ae(e,t,i,r){let n=Kt.includes(r)?Ct:Nt,o=await St(V.resolve(i,t),n);if(o===null||e.has(o))return;e.add(o),i=V.dirname(o),r=V.extname(o);let l=await te.readFile(o,"utf-8"),a=[];for(let s of Tt)for(let c of l.matchAll(s))c[1].startsWith(".")&&a.push(Ae(e,c[1],i,r));await Promise.all(a)}async function _e(e){let t=new Set;return await Ae(t,e,V.dirname(e),V.extname(e)),Array.from(t)}async function Oe(e,t,i){if(e[0]!=="."){let l=await je(e,t);if(!l)throw new Error(`Could not resolve '${e}' from '${t}'`);let a=await Re(Ee(l).href);return{base:Ve(l),module:a.default??a}}let r=await je(e,t);if(!r)throw new Error(`Could not resolve '${e}' from '${t}'`);let[n,o]=await Promise.all([Re(Ee(r).href+"?id="+Date.now()),_e(r)]);for(let l of o)i(l);return{base:Ve(r),module:n.default??n}}var De=null;async function Re(e){try{return await import(e)}catch(t){try{return De??=At(import.meta.url,{moduleCache:!1,fsCache:!1}),await De.import(e)}catch{}throw t}}var Ni=G.ResolverFactory.createResolver({fileSystem:new G.CachedInputFileSystem(ze,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});var _t=G.ResolverFactory.createResolver({fileSystem:new G.CachedInputFileSystem(ze,4e3),useSyncFileSystemCalls:!0});function je(e,t){return Vt(_t,e,t)}function Vt(e,t,i){return new Promise((r,n)=>e.resolve({},i,t,{},(o,l)=>{if(o)return n(o);r(l)}))}var E=class extends Map{constructor(i){super();this.factory=i}get(i){let r=super.get(i);return r===void 0&&(r=this.factory(i,this),this.set(i,r)),r}};var Et=["anchor-size"],ji=new RegExp(`(${Et.join("|")})\\(`,"g");var $=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,Bi=new RegExp(`^${$.source}$`);var Ii=new RegExp(`^${$.source}%$`);var Dt=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Wi=new RegExp(`^${$.source}(${Dt.join("|")})$`);var Rt=["deg","rad","grad","turn"],Mi=new RegExp(`^${$.source}(${Rt.join("|")})$`);var Gi=new RegExp(`^${$.source} +${$.source} +${$.source}$`);function Pe(e,t){if(t===null)return e;let i=Number(t);return Number.isNaN(i)?t[t.length-1]!=="%"&&(t=`calc(${t} * 100%)`):t=`${i*100}%`,`color-mix(in srgb, ${e} ${t}, transparent)`}function Fe(e){let t=[];for(let i of w(e,".")){if(!i.includes("[")){t.push(i);continue}let r=0;for(;;){let n=i.indexOf("[",r),o=i.indexOf("]",n);if(n===-1||o===-1)break;n>r&&t.push(i.slice(r,n)),t.push(i.slice(n+1,o)),r=o+1}r<=i.length-1&&t.push(i.slice(r))}return t}function N(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}function D(e,t,i,r=[]){for(let n of t)if(n!=null)for(let o of Reflect.ownKeys(n)){let l=[...r,o],a=i(e[o],n[o],l);a!==void 0?e[o]=a:!N(e[o])||!N(n[o])?e[o]=n[o]:e[o]=D({},[e[o],n[o]],i,l)}return e}function Be(e,t,i){return function(n,o){let l=n.lastIndexOf("/"),a=null;l!==-1&&(a=n.slice(l+1).trim(),n=n.slice(0,l).trim());let s=(()=>{let c=Fe(n),[u,p]=jt(e.theme,c),f=i(Ue(t()??{},c)??null);if(typeof u!="object")return typeof p!="object"&&p&4?f??u:u;if(f!==null&&typeof f=="object"&&!Array.isArray(f)){let d=D({},[f],(g,m)=>m);if(u===null&&Object.hasOwn(f,"__CSS_VALUES__")){let g={};for(let m in f.__CSS_VALUES__)g[m]=f[m],delete d[m];u=g}for(let g in u)g!=="__CSS_VALUES__"&&(f?.__CSS_VALUES__?.[g]&4&&Ue(d,g.split("-"))!==void 0||(d[g]=u[g]));return d}if(Array.isArray(u)&&Array.isArray(p)&&Array.isArray(f)){let d=u[0],g=u[1];p[0]&4&&(d=f[0]??d);for(let m of Object.keys(g))p[1][m]&4&&(g[m]=f[1][m]??g[m]);return[d,g]}return u??f})();return a&&typeof s=="string"&&(s=Pe(s,a)),s??o}}function jt(e,t){if(t.length===1&&t[0].startsWith("--"))return[e.get([t[0]]),e.getOptions(t[0])];let i=t.map(u=>u==="1"?"":u).map(u=>u.replaceAll(".","_").replace(/([a-z])([A-Z])/g,(p,f,d)=>`${f}-${d.toLowerCase()}`)).filter((u,p)=>u!=="DEFAULT"||p!==t.length-1).join("-"),r=new Map,n=new E(()=>new Map),o=e.namespace(`--${i}`);if(o.size===0)return[null,0];let l=new Map;for(let[u,p]of o){if(!u||!u.includes("--")){r.set(u,p),l.set(u,e.getOptions(u?`--${i}-${u}`:`--${i}`));continue}let f=u.indexOf("--"),d=u.slice(0,f),g=u.slice(f+2);g=g.replace(/-([a-z])/g,(m,S)=>S.toUpperCase()),n.get(d===""?null:d).set(g,[p,e.getOptions(`--${i}${u}`)])}let a=e.getOptions(`--${i}`);for(let[u,p]of n){let f=r.get(u);if(typeof f!="string")continue;let d={},g={};for(let[m,[S,Qe]]of p)d[m]=S,g[m]=Qe;r.set(u,[f,d]),l.set(u,[a,g])}let s={},c={};for(let[u,p]of r)Le(s,[u??"DEFAULT"],p);for(let[u,p]of l)Le(c,[u??"DEFAULT"],p);return t[t.length-1]==="DEFAULT"?[s?.DEFAULT??null,c.DEFAULT??0]:"DEFAULT"in s&&Object.keys(s).length===1?[s.DEFAULT,c.DEFAULT??0]:(s.__CSS_VALUES__=c,[s,c])}function Ue(e,t){for(let i=0;i<t.length;++i){let r=t[i];if(e[r]===void 0){if(t[i+1]===void 0)return;t[i+1]=`${r}-${t[i+1]}`;continue}e=e[r]}return e}function Le(e,t,i){for(let r of t.slice(0,-1))e[r]===void 0&&(e[r]={}),e=e[r];e[t[t.length-1]]=i}var zt={blocklist:[],prefix:"",important:!1,darkMode:null,theme:{},plugins:[],content:{files:[]}};function Ie(e,t){let i={design:e,configs:[],plugins:[],content:{files:[]},theme:{},extend:{},result:structuredClone(zt)};for(let r of t)re(i,r);for(let r of i.configs)"darkMode"in r&&r.darkMode!==void 0&&(i.result.darkMode=r.darkMode??null),"prefix"in r&&r.prefix!==void 0&&(i.result.prefix=r.prefix??""),"blocklist"in r&&r.blocklist!==void 0&&(i.result.blocklist=r.blocklist??[]),"important"in r&&r.important!==void 0&&(i.result.important=r.important??!1);return Pt(i),{...i.result,content:i.content,theme:i.theme,plugins:i.plugins}}function Ot(e,t){if(Array.isArray(e)&&N(e[0]))return e.concat(t);if(Array.isArray(t)&&N(t[0])&&N(e))return[e,...t];if(Array.isArray(t))return t}function re(e,{config:t,base:i,path:r}){let n=[];for(let a of t.plugins??[])"__isOptionsFunction"in a?n.push(a()):"handler"in a?n.push(a):n.push({handler:a});if(Array.isArray(t.presets)&&t.presets.length===0)throw new Error("Error in the config file/plugin/preset. An empty preset (`preset: []`) is not currently supported.");for(let a of t.presets??[])re(e,{path:r,base:i,config:a});for(let a of n)e.plugins.push(a),a.config&&re(e,{path:r,base:i,config:a.config});let o=t.content??[],l=Array.isArray(o)?o:o.files;for(let a of l)e.content.files.push(typeof a=="object"?a:{base:i,pattern:a});e.configs.push(t)}function Pt(e){let t={theme:Be(e.design,()=>e.theme,i)};function i(r){return typeof r=="function"?r(t)??null:r??null}for(let r of e.configs){let n=r.theme??{},o=n.extend??{};Object.assign(e.theme,n);for(let l in o)e.extend[l]??=[],e.extend[l].push(o[l])}delete e.theme.extend;for(let r in e.extend){let n=[e.theme[r],...e.extend[r]];e.theme[r]=()=>{let o=n.map(i);return D({},o,Ot)}}for(let r in e.theme)e.theme[r]=i(e.theme[r]);if(e.theme.screens&&typeof e.theme.screens=="object")for(let r of Object.keys(e.theme.screens)){let n=e.theme.screens[r];n&&typeof n=="object"&&("raw"in n||"max"in n||"min"in n&&(e.theme.screens[r]=n.min))}}var Lt=Ut(import.meta.url),R=Me(Lt),Ge=String.raw;async function qe(e,t){let i=ie.resolve(t.base,e),r=ie.resolve(R),n=ie.relative(r,i);n.startsWith(".")||(n="./"+n);let o=await Bt(i),l=o.prefix?ye(o.prefix):null,a=Ge`
7
+ @import 'tailwindcss' ${l?`prefix(${l})`:""};
8
+ @config './${n}';
9
+ `,[s,c]=await Promise.all([Ft(a,{base:R,onDependency:()=>{}}),We(a,{base:R})]);return{designSystem:c,globs:s.globs,userConfig:o,newPrefix:l}}async function Bt(e){let[t,i]=await Promise.all([We(Ge`
10
+ @import 'tailwindcss';
11
+ `,{base:R}),Oe(e,R,()=>{}).then(r=>r.module)]);return Ie(t,[{base:Me(e),config:i}])}import It from"mri";function Ye(e,t=process.argv.slice(2)){let i=It(t),r={_:i._};for(let[n,{type:o,alias:l,default:a=o==="boolean"?!1:null}]of Object.entries(e)){if(r[n]=a,l){let s=l.slice(1);i[s]!==void 0&&(r[n]=He(i[s],o))}{let s=n.slice(2);i[s]!==void 0&&(r[n]=He(i[s],o))}}return r}function He(e,t){switch(t){case"string":return Y(e);case"boolean":return q(e);case"number":return H(e);case"boolean | string":return q(e)??Y(e);case"number | string":return H(e)??Y(e);case"boolean | number":return q(e)??H(e);case"boolean | number | string":return q(e)??H(e)??Y(e);default:throw new Error(`Unhandled type: ${t}`)}}function q(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function H(e){if(typeof e=="number")return e;{let t=Number(e);if(!Number.isNaN(t))return t}}function Y(e){return`${e}`}import{execSync as Wt}from"node:child_process";function ne(){try{return Wt("git status --porcelain",{encoding:"utf-8"}).trim()!==""}catch(e){return!e?.toString?.().includes("not a git repository")}}var Xe={"--config":{type:"string",description:"Path to the configuration file",alias:"-c"},"--help":{type:"boolean",description:"Display usage information",alias:"-h"},"--force":{type:"boolean",description:"Force the migration",alias:"-f"},"--version":{type:"boolean",description:"Display the version number",alias:"-v"}},j=Ye(Xe);j["--help"]&&(ae({usage:["npx @tailwindcss/upgrade"],options:Xe}),process.exit(0));async function Gt(){K(O()),K(),j["--force"]||ne()&&(J("Git directory is not clean. Please stash or commit your changes before migrating."),F(`You may use the ${P("--force")} flag to silence this warning and perform the migration.`),process.exit(1));let e=null;if(j["--config"])try{e=await qe(j["--config"],{base:process.cwd()})}catch(t){J(`Failed to parse the configuration file: ${t.message}`),process.exit(1)}if(e){F("Migrating templates using the provided configuration file.");let t=new Set;for(let{pattern:r,base:n}of e.globs){let o=await Je([r],{absolute:!0,gitignore:!0,cwd:n});for(let l of o)t.add(l)}let i=Array.from(t);i.sort(),await Promise.allSettled(i.map(r=>ke(e.designSystem,e.userConfig,r))),_("Template migration complete.")}{let t=j._.map(i=>Mt.resolve(process.cwd(),i));t.length===0&&(F("No input stylesheets provided. Searching for CSS files in the current directory and its subdirectories\u2026"),t=await Je(["**/*.css"],{absolute:!0,gitignore:!0})),t=t.filter(i=>i.endsWith(".css")),await Promise.allSettled(t.map(i=>Se(i,{newPrefix:e?.newPrefix??void 0,designSystem:e?.designSystem,userConfig:e?.userConfig}))),_("Stylesheet migration complete.")}ne()?_("Verify the changes and commit them to your repository."):_("No changes were made to your repository.")}Gt().then(()=>process.exit(0)).catch(e=>{console.error(e),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tailwindcss/upgrade",
3
- "version": "4.0.0-alpha.25",
3
+ "version": "4.0.0-alpha.26",
4
4
  "description": "A utility-first CSS framework for rapidly building custom user interfaces.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,13 +24,17 @@
24
24
  "dependencies": {
25
25
  "enhanced-resolve": "^5.17.1",
26
26
  "globby": "^14.0.2",
27
+ "jiti": "^2.0.0-beta.3",
27
28
  "mri": "^1.2.0",
28
29
  "picocolors": "^1.0.1",
29
30
  "postcss": "^8.4.41",
30
31
  "postcss-import": "^16.1.0",
31
32
  "postcss-selector-parser": "^6.1.2",
32
33
  "prettier": "^3.3.3",
33
- "tailwindcss": "4.0.0-alpha.25"
34
+ "string-byte-slice": "^3.0.0",
35
+ "@tailwindcss/oxide": "4.0.0-alpha.26",
36
+ "@tailwindcss/node": "4.0.0-alpha.26",
37
+ "tailwindcss": "4.0.0-alpha.26"
34
38
  },
35
39
  "devDependencies": {
36
40
  "@types/node": "^20.14.8",