@tailwindcss/cli 4.0.0-alpha.28 → 4.0.0-alpha.29

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 ue from"mri";function J(e,t=process.argv.slice(2)){let i=ue(t),n={_:i._};for(let[r,{type:o,alias:c,default:p=o==="boolean"?!1:null}]of Object.entries(e)){if(n[r]=p,c){let l=c.slice(1);i[l]!==void 0&&(n[r]=V(i[l],o))}{let l=r.slice(2);i[l]!==void 0&&(n[r]=V(i[l],o))}}return n}function V(e,t){switch(t){case"string":return D(e);case"boolean":return _(e);case"number":return E(e);case"boolean | string":return _(e)??D(e);case"number | string":return E(e)??D(e);case"boolean | number":return _(e)??E(e);case"boolean | number | string":return _(e)??E(e)??D(e);default:throw new Error(`Unhandled type: ${t}`)}}function _(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 t=Number(e);if(!Number.isNaN(t))return t}}function D(e){return`${e}`}import be from"@parcel/watcher";import{compile as ye,env as u}from"@tailwindcss/node";import{clearRequireCache as we}from"@tailwindcss/node/require-cache";import{Scanner as te}from"@tailwindcss/oxide";import{Features as ie,transform as Se}from"lightningcss";import{existsSync as xe}from"node:fs";import j from"node:fs/promises";import $ from"node:path";var T=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()}}dispose(){for(let t of this.#e)t();this.#e.clear()}};import fe from"node:fs";import X from"node:path";import{stripVTControlCharacters as me}from"node:util";import m from"picocolors";import Q from"enhanced-resolve";import ce from"node:fs";import{createRequire as pe}from"node:module";var de=pe(import.meta.url).resolve;function Y(e){if(typeof globalThis.__tw_resolve=="function"){let t=globalThis.__tw_resolve(e);if(t)return t}return de(e)}var Ue=Q.ResolverFactory.createResolver({fileSystem:new Q.CachedInputFileSystem(ce,4e3),useSyncFileSystemCalls:!0,extensions:[".css"],mainFields:["style"],conditionNames:["style"]});function H(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 U={indent:2};function C(){return`${m.italic(m.bold(m.blue("\u2248")))} tailwindcss ${m.blue(`v${he()}`)}`}function G(e){return`${m.dim(m.blue("`"))}${m.blue(e)}${m.dim(m.blue("`"))}`}function Z(e,t=process.cwd(),{preferAbsoluteIfShorter:i=!0}={}){let n=X.relative(t,e);return n.startsWith("..")||(n=`.${X.sep}${n}`),i&&n.length>e.length?e:n}function W(e,t){let i=e.split(" "),n=[],r="",o=0;for(let c of i){let p=me(c).length;o+p+1>t&&(n.push(r),r="",o=0),r+=(o?" ":"")+c,o+=p+(o?1:0)}return o&&n.push(r),n}function k(e){let t=H(e);return e<=50*1e6?m.green(t):e<=300*1e6?m.blue(t):e<=1e3*1e6?m.yellow(t):m.red(t)}function B(e,t=0){return`${" ".repeat(t+U.indent)}${e}`}function b(e=""){process.stderr.write(`${e}
3
- `)}function d(e=""){process.stdout.write(`${e}
4
- `)}function he(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(fe.readFileSync(Y("tailwindcss/package.json"),"utf-8"));return e}import I from"node:fs/promises";import ge from"node:path";function M(){return new Promise((e,t)=>{let i="";process.stdin.on("data",n=>{i+=n}),process.stdin.on("end",()=>e(i)),process.stdin.on("error",n=>t(n))})}async function ee(e,t){try{if(await I.readFile(e,"utf8")===t)return}catch{}await I.mkdir(ge.dirname(e),{recursive:!0}),await I.writeFile(e,t,"utf8")}var ne=String.raw;function F(){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 se(e){let t=$.resolve(e["--cwd"]);e["--output"]&&(e["--output"]=$.resolve(t,e["--output"])),e["--input"]&&e["--input"]!=="-"&&(e["--input"]=$.resolve(t,e["--input"]),xe(e["--input"])||(b(C()),b(),b(`Specified input file ${G(Z(e["--input"]))} does not exist.`),process.exit(1)));let i=process.hrtime.bigint(),n=e["--input"]?e["--input"]==="-"?await M():await j.readFile(e["--input"],"utf-8"):ne`
2
+ import ce from"mri";function Q(e,t=process.argv.slice(2)){let i=ce(t),n={_:i._};for(let[r,{type:o,alias:s,default:d=o==="boolean"?!1:null}]of Object.entries(e)){if(n[r]=d,s){let l=s.slice(1);i[l]!==void 0&&(n[r]=J(i[l],o))}{let l=r.slice(2);i[l]!==void 0&&(n[r]=J(i[l],o))}}return n}function J(e,t){switch(t){case"string":return U(e);case"boolean":return E(e);case"number":return D(e);case"boolean | string":return E(e)??U(e);case"number | string":return D(e)??U(e);case"boolean | number":return E(e)??D(e);case"boolean | number | string":return E(e)??D(e)??U(e);default:throw new Error(`Unhandled type: ${t}`)}}function E(e){if(e===!0||e===!1)return e;if(e==="true")return!0;if(e==="false")return!1}function D(e){if(typeof e=="number")return e;{let t=Number(e);if(!Number.isNaN(t))return t}}function U(e){return`${e}`}import ye from"@parcel/watcher";import{compile as we,env as u}from"@tailwindcss/node";import{clearRequireCache as Se}from"@tailwindcss/node/require-cache";import{Scanner as ie}from"@tailwindcss/oxide";import{Features as ne,transform as xe}from"lightningcss";import{existsSync as $e}from"node:fs";import j from"node:fs/promises";import $ from"node:path";var T=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()}}dispose(){for(let t of this.#e)t();this.#e.clear()}};import me from"node:fs";import Z from"node:path";import{stripVTControlCharacters as he}from"node:util";import m from"picocolors";import Y from"enhanced-resolve";import pe from"node:fs";import{createRequire as de}from"node:module";var fe=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 fe(e)}var Fe=Y.ResolverFactory.createResolver({fileSystem:new Y.CachedInputFileSystem(pe,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 F={indent:2};function C(){return`${m.italic(m.bold(m.blue("\u2248")))} tailwindcss ${m.blue(`v${ge()}`)}`}function G(e){return`${m.dim(m.blue("`"))}${m.blue(e)}${m.dim(m.blue("`"))}`}function ee(e,t=process.cwd(),{preferAbsoluteIfShorter:i=!0}={}){let n=Z.relative(t,e);return n.startsWith("..")||(n=`.${Z.sep}${n}`),i&&n.length>e.length?e:n}function I(e,t){let i=e.split(" "),n=[],r="",o=0;for(let s of i){let d=he(s).length;o+d+1>t&&(n.push(r),r="",o=0),r+=(o?" ":"")+s,o+=d+(o?1:0)}return o&&n.push(r),n}function k(e){let t=X(e);return e<=50*1e6?m.green(t):e<=300*1e6?m.blue(t):e<=1e3*1e6?m.yellow(t):m.red(t)}function B(e,t=0){return`${" ".repeat(t+F.indent)}${e}`}function y(e=""){process.stderr.write(`${e}
3
+ `)}function p(e=""){process.stdout.write(`${e}
4
+ `)}function ge(){if(typeof globalThis.__tw_version=="string")return globalThis.__tw_version;let{version:e}=JSON.parse(me.readFileSync(H("tailwindcss/package.json"),"utf-8"));return e}import M from"node:fs/promises";import be from"node:path";function P(){return new Promise((e,t)=>{let i="";process.stdin.on("data",n=>{i+=n}),process.stdin.on("end",()=>e(i)),process.stdin.on("error",n=>t(n))})}async function te(e,t){try{if(await M.readFile(e,"utf8")===t)return}catch{}await M.mkdir(be.dirname(e),{recursive:!0}),await M.writeFile(e,t,"utf8")}var re=String.raw;function R(){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 le(e){let t=$.resolve(e["--cwd"]);e["--output"]&&(e["--output"]=$.resolve(t,e["--output"])),e["--input"]&&e["--input"]!=="-"&&(e["--input"]=$.resolve(t,e["--input"]),$e(e["--input"])||(y(C()),y(),y(`Specified input file ${G(ee(e["--input"]))} does not exist.`),process.exit(1)));let i=process.hrtime.bigint(),n=e["--input"]?e["--input"]==="-"?await P():await j.readFile(e["--input"],"utf-8"):re`
5
5
  @import 'tailwindcss';
6
- `,r={css:"",optimizedCss:""};async function o(f,h){let g=f;if(h["--minify"]||h["--optimize"])if(f!==r.css){u.DEBUG&&console.time("[@tailwindcss/cli] Optimize CSS");let w=$e(f,{file:h["--input"]??"input.css",minify:h["--minify"]??!1});u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Optimize CSS"),r.css=f,r.optimizedCss=w,g=w}else g=r.optimizedCss;u.DEBUG&&console.time("[@tailwindcss/cli] Write output"),h["--output"]?await ee(h["--output"],g):d(g),u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Write output")}let c=e["--input"]&&e["--input"]!=="-"?$.dirname($.resolve(e["--input"])):process.cwd(),p=[];async function l(f){u.DEBUG&&console.time("[@tailwindcss/cli] Setup compiler");let h=await ye(f,{base:c,onDependency(g){p.push(g)}});return u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Setup compiler"),h}let a=await l(n),s=new te({detectSources:{base:t},sources:a.globs});if(e["--watch"]){let f=await oe(re(t,s),async function h(g){try{if(g.length===1&&g[0]===e["--output"])return;let w=[],O="incremental",q=p;for(let S of g){if(q.includes(S)){O="full";break}w.push({file:S,extension:$.extname(S).slice(1)})}let K=process.hrtime.bigint(),N="";if(O==="full"){f();let S=e["--input"]?e["--input"]==="-"?await M():await j.readFile(e["--input"],"utf-8"):ne`
6
+ `,r={css:"",optimizedCss:""};async function o(h,g){let b=h;if(g["--minify"]||g["--optimize"])if(h!==r.css){u.DEBUG&&console.time("[@tailwindcss/cli] Optimize CSS");let w=Te(h,{file:g["--input"]??"input.css",minify:g["--minify"]??!1});u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Optimize CSS"),r.css=h,r.optimizedCss=w,b=w}else b=r.optimizedCss;u.DEBUG&&console.time("[@tailwindcss/cli] Write output"),g["--output"]?await te(g["--output"],b):p(b),u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Write output")}let s=e["--input"]&&e["--input"]!=="-"?$.resolve(e["--input"]):null,d=s?$.dirname(s):process.cwd(),l=s?[s]:[];async function c(h){u.DEBUG&&console.time("[@tailwindcss/cli] Setup compiler");let g=await we(h,{base:d,onDependency(b){l.push(b)}});return u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Setup compiler"),g}let a=await c(n),f=new ie({detectSources:{base:t},sources:a.globs});if(e["--watch"]){let h=await se(oe(t,f),async function g(b){try{if(b.length===1&&b[0]===e["--output"])return;let w=[],N="incremental",K=l;for(let S of b){if(K.includes(S)){N="full";break}w.push({file:S,extension:$.extname(S).slice(1)})}let V=process.hrtime.bigint(),z="";if(N==="full"){h();let S=e["--input"]?e["--input"]==="-"?await P():await j.readFile(e["--input"],"utf-8"):re`
7
7
  @import 'tailwindcss';
8
- `;we(q),p=[],a=await l(S),s=new te({detectSources:{base:t},sources:a.globs}),u.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let z=s.scan();u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),f=await oe(re(t,s),h),u.DEBUG&&console.time("[@tailwindcss/cli] Build CSS"),N=a.build(z),u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS")}else if(O==="incremental"){u.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let S=s.scanFiles(w);if(u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),S.length<=0){let z=process.hrtime.bigint();b(`Done in ${k(z-K)}`);return}u.DEBUG&&console.time("[@tailwindcss/cli] Build CSS"),N=a.build(S),u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS")}await o(N,e);let ae=process.hrtime.bigint();b(`Done in ${k(ae-K)}`)}catch(w){w instanceof Error&&b(w.toString())}});e["--watch"]!=="always"&&process.stdin.on("end",()=>{f(),process.exit(0)}),process.stdin.resume()}u.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let y=s.scan();u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),u.DEBUG&&console.time("[@tailwindcss/cli] Build CSS");let v=a.build(y);u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS"),await o(v,e);let A=process.hrtime.bigint();b(C()),b(),b(`Done in ${k(A-i)}`)}function re(e,t){return[e].concat(t.globs.flatMap(i=>i.pattern[0]==="!"?[]:i.base.startsWith(e)?[]:i.base))}async function oe(e,t){let i=new T,n=new Set,r=new T;function o(){r.dispose(),r.queueMacrotask(()=>{t(Array.from(n)),n.clear()})}for(let c of e){let{unsubscribe:p}=await be.subscribe(c,async(l,a)=>{if(l){console.error(l);return}await Promise.all(a.map(async s=>{if(s.type==="delete")return;let y=null;try{y=await j.lstat(s.path)}catch{}!y?.isFile()&&!y?.isSymbolicLink()||n.add(s.path)})),o()});i.add(p)}return()=>{i.dispose(),r.dispose()}}function $e(e,{file:t="input.css",minify:i=!1}={}){return Se({filename:t,code:Buffer.from(e),minify:i,sourceMap:!1,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:ie.Nesting,exclude:ie.LogicalProperties,targets:{safari:16<<16|1024},errorRecovery:!0}).code.toString()}import x from"picocolors";function L({invalid:e,usage:t,options:i}){let n=process.stdout.columns;if(d(C()),e&&(d(),d(`${x.dim("Invalid command:")} ${e}`)),t&&t.length>0){d(),d(x.dim("Usage:"));for(let[r,o]of t.entries()){let c=o.slice(0,o.indexOf("[")),p=o.slice(o.indexOf("["));p=p.replace(/\[.*?\]/g,s=>x.dim(s));let a=W(p,n-U.indent-c.length-1);a.length>1&&r!==0&&d(),d(B(`${c}${a.shift()}`));for(let s of a)d(B(s,c.length))}}if(i){let r=0;for(let{alias:l}of Object.values(i))l&&(r=Math.max(r,l.length));let o=[],c=0;for(let[l,{alias:a}]of Object.entries(i)){let s=[a&&`${a.padStart(r)}`,a?l:" ".repeat(r+2)+l].filter(Boolean).join(", ");o.push(s),c=Math.max(c,s.length)}d(),d(x.dim("Options:"));let p=8;for(let{description:l,default:a=null}of Object.values(i)){let s=o.shift(),y=p+(c-s.length),v=2,A=n-s.length-y-v-U.indent,f=W(a!==null?`${l} ${x.dim(`[default:\u202F${G(`${a}`)}]`)}`:l,A);d(B(`${x.blue(s)} ${x.dim(x.gray("\xB7")).repeat(y)} ${f.shift()}`));for(let h of f)d(B(`${" ".repeat(s.length+y+v)}${h}`))}}}var P={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},R=J({...F(),...P}),le=R._[0];le&&(L({invalid:le,usage:["tailwindcss [options]"],options:{...F(),...P}}),process.exit(1));(process.stdout.isTTY&&!R["--output"]||R["--help"])&&(L({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...F(),...P}}),process.exit(0));se(R);
8
+ `;Se(K),l=s?[s]:[],a=await c(S),f=new ie({detectSources:{base:t},sources:a.globs}),u.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let W=f.scan();u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),h=await se(oe(t,f),g),u.DEBUG&&console.time("[@tailwindcss/cli] Build CSS"),z=a.build(W),u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS")}else if(N==="incremental"){u.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let S=f.scanFiles(w);if(u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),S.length<=0){let W=process.hrtime.bigint();y(`Done in ${k(W-V)}`);return}u.DEBUG&&console.time("[@tailwindcss/cli] Build CSS"),z=a.build(S),u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS")}await o(z,e);let ue=process.hrtime.bigint();y(`Done in ${k(ue-V)}`)}catch(w){w instanceof Error&&y(w.toString())}});e["--watch"]!=="always"&&process.stdin.on("end",()=>{h(),process.exit(0)}),process.stdin.resume()}u.DEBUG&&console.time("[@tailwindcss/cli] Scan for candidates");let v=f.scan();u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Scan for candidates"),u.DEBUG&&console.time("[@tailwindcss/cli] Build CSS");let O=a.build(v);u.DEBUG&&console.timeEnd("[@tailwindcss/cli] Build CSS"),await o(O,e);let _=process.hrtime.bigint();y(C()),y(),y(`Done in ${k(_-i)}`)}function oe(e,t){return[e].concat(t.globs.flatMap(i=>i.pattern[0]==="!"?[]:i.base.startsWith(e)?[]:i.base))}async function se(e,t){let i=new T,n=new Set,r=new T;function o(){r.dispose(),r.queueMacrotask(()=>{t(Array.from(n)),n.clear()})}for(let s of e){let{unsubscribe:d}=await ye.subscribe(s,async(l,c)=>{if(l){console.error(l);return}await Promise.all(c.map(async a=>{if(a.type==="delete")return;let f=null;try{f=await j.lstat(a.path)}catch{}!f?.isFile()&&!f?.isSymbolicLink()||n.add(a.path)})),o()});i.add(d)}return()=>{i.dispose(),r.dispose()}}function Te(e,{file:t="input.css",minify:i=!1}={}){return xe({filename:t,code:Buffer.from(e),minify:i,sourceMap:!1,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:ne.Nesting,exclude:ne.LogicalProperties,targets:{safari:16<<16|1024},errorRecovery:!0}).code.toString()}import x from"picocolors";function L({invalid:e,usage:t,options:i}){let n=process.stdout.columns;if(p(C()),e&&(p(),p(`${x.dim("Invalid command:")} ${e}`)),t&&t.length>0){p(),p(x.dim("Usage:"));for(let[r,o]of t.entries()){let s=o.slice(0,o.indexOf("[")),d=o.slice(o.indexOf("["));d=d.replace(/\[.*?\]/g,a=>x.dim(a));let c=I(d,n-F.indent-s.length-1);c.length>1&&r!==0&&p(),p(B(`${s}${c.shift()}`));for(let a of c)p(B(a,s.length))}}if(i){let r=0;for(let{alias:l}of Object.values(i))l&&(r=Math.max(r,l.length));let o=[],s=0;for(let[l,{alias:c}]of Object.entries(i)){let a=[c&&`${c.padStart(r)}`,c?l:" ".repeat(r+2)+l].filter(Boolean).join(", ");o.push(a),s=Math.max(s,a.length)}p(),p(x.dim("Options:"));let d=8;for(let{description:l,default:c=null}of Object.values(i)){let a=o.shift(),f=d+(s-a.length),v=2,O=n-a.length-f-v-F.indent,_=I(c!==null?`${l} ${x.dim(`[default:\u202F${G(`${c}`)}]`)}`:l,O);p(B(`${x.blue(a)} ${x.dim(x.gray("\xB7")).repeat(f)} ${_.shift()}`));for(let h of _)p(B(`${" ".repeat(a.length+f+v)}${h}`))}}}var q={"--help":{type:"boolean",description:"Display usage information",alias:"-h"}},A=Q({...R(),...q}),ae=A._[0];ae&&(L({invalid:ae,usage:["tailwindcss [options]"],options:{...R(),...q}}),process.exit(1));(process.stdout.isTTY&&!A["--output"]||A["--help"])&&(L({usage:["tailwindcss [--input input.css] [--output output.css] [--watch] [options\u2026]"],options:{...R(),...q}}),process.exit(0));le(A);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tailwindcss/cli",
3
- "version": "4.0.0-alpha.28",
3
+ "version": "4.0.0-alpha.29",
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.0.1",
32
- "@tailwindcss/node": "4.0.0-alpha.28",
33
- "@tailwindcss/oxide": "4.0.0-alpha.28",
34
- "tailwindcss": "4.0.0-alpha.28"
32
+ "@tailwindcss/node": "4.0.0-alpha.29",
33
+ "@tailwindcss/oxide": "4.0.0-alpha.29",
34
+ "tailwindcss": "4.0.0-alpha.29"
35
35
  },
36
36
  "scripts": {
37
37
  "lint": "tsc --noEmit",