@tailwindcss/vite 4.0.0-alpha.20 → 4.0.0-alpha.22

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 +1 -2
  2. package/package.json +7 -4
package/dist/index.mjs CHANGED
@@ -1,2 +1 @@
1
- import{Scanner as j}from"@tailwindcss/oxide";import C from"node:path";function E(n,l){if(typeof n!="string")throw new TypeError("expected path to be a string");if(n==="\\"||n==="/")return"/";var a=n.length;if(a<=1)return n;var c="";if(a>4&&n[3]==="\\"){var d=n[2];(d==="?"||d===".")&&n.slice(0,2)==="\\\\"&&(n=n.slice(2),c="//")}var u=n.split(/[/\\]+/);return l!==!1&&u[u.length-1]===""&&u.pop(),c+u.join("/")}function P(n){let l=E(n);return n.startsWith("\\\\")&&l.startsWith("/")&&!l.startsWith("//")?`/${l}`:l}var b="'",x='"';function F(){let n=new WeakSet;function l(a){let c=a.root().source?.input.file;if(!c)return;let d=a.source?.input.file;if(!d||n.has(a))return;let u=a.params[0],h=u[0]===x&&u[u.length-1]===x?x:u[0]===b&&u[u.length-1]===b?b:null;if(!h)return;let p=a.params.slice(1,-1),y="";if(p.startsWith("!")&&(p=p.slice(1),y="!"),!p.startsWith("./")&&!p.startsWith("../"))return;let w=C.posix.join(P(C.dirname(d)),p),S=C.posix.dirname(P(c)),g=C.posix.relative(S,w);g.startsWith(".")||(g="./"+g),a.params=h+y+g+h,n.add(a)}return{postcssPlugin:"tailwindcss-postcss-fix-relative-paths",AtRule:{source:l,plugin:l}}}import{Features as W,transform as z}from"lightningcss";import v from"path";import B from"postcss-load-config";import{compile as D}from"tailwindcss";function I(){let n=null,l=null,a=null,c=[],d=new Set,u={},h=!1,p=!1,y=[];function w(t){if(!n)return;let e=[];for(let s of Object.keys(u)){let r=n.moduleGraph.getModuleById(s);if(!r){t||delete u[s];continue}n.moduleGraph.invalidateModule(r),e.push({type:`${r.type}-update`,path:r.url,acceptedPath:r.url,timestamp:Date.now()})}e.length>0&&n.hot.send({type:"update",updates:e})}function S(t,e){let s=!1;if(a===null)return c.push({content:t,extension:e}),s;for(let r of a.scanFiles([{content:t,extension:e}]))s=!0,d.add(r);return s}async function g(t,e,s){let r=v.dirname(v.resolve(e)),{build:o,globs:m}=await D(t,{loadPlugin:async i=>i[0]==="."?import(v.resolve(r,i)).then(f=>f.default??f):import(i).then(f=>f.default??f)});a=new j({sources:m.map(i=>({base:r,pattern:i}))});for(let i of a.scan())d.add(i);if(c.length>0)for(let i of a.scanFiles(c.splice(0)))d.add(i);for(let i of a.files)s(i);for(let i of a.globs){if(i.pattern[0]==="!")continue;let f=v.relative(l.root,i.base);f[0]!=="."&&(f="./"+f),f=P(f),s(v.posix.join(f,i.pattern))}return o(Array.from(d))}async function k(t,e,s){return O(await g(t,e,s),{minify:p})}async function R(t,e,s){let r={...t,getCombinedSourcemap:()=>{throw new Error("getCombinedSourcemap not implemented")}};for(let o of y){if(!o.transform)continue;let m="handler"in o.transform?o.transform.handler:o.transform;try{let i=await m.call(r,s,e);if(!i)continue;typeof i=="string"?s=i:i.code&&(s=i.code)}catch{console.error(`Error running ${o.name} on Tailwind CSS output. Skipping.`)}}return s}return[{name:"@tailwindcss/vite:scan",enforce:"pre",configureServer(t){n=t},async configResolved(t){l=t,p=l.build.cssMinify!==!1,h=l.build.ssr!==!1&&l.build.ssr!==void 0;let e=["vite:css",...l.command==="build"?["vite:css-post"]:[]];y=l.plugins.filter(s=>e.includes(s.name))},async config(t){let e=t.css?.postcss;if(typeof e=="string"){let s=typeof e=="string"?e:t.root,r=await B({},s).catch(o=>{if(!o.message.includes("No PostCSS Config found"))if(o instanceof Error){let{name:m,message:i,stack:f}=o;throw o.name="Failed to load PostCSS config",o.message=`Failed to load PostCSS config (searchPath: ${s}): [${m}] ${i}
2
- ${f}`,o.stack="",o}else throw new Error(`Failed to load PostCSS config: ${o}`);return null});r!==null?e={options:r.options,plugins:r.plugins}:e={},t.css={postcss:e}}typeof e!="string"&&(!e||!e?.plugins?(t.css=t.css||{},t.css.postcss=e||{},t.css.postcss.plugins=[F()]):e.plugins.push(F()))},transformIndexHtml(t){S(t,"html")&&w(h)},transform(t,e,s){if(e.includes("/.vite/"))return;let r=$(e);r===""||r==="css"||(S(t,r),w(s?.ssr??!1))}},{name:"@tailwindcss/vite:generate:serve",apply:"serve",async transform(t,e,s){return M(e,t)?(u[e]={content:"",handled:!0},s?.ssr||await n?.waitForRequestsIdle?.(e),{code:await R(this,e,await g(t,e,o=>this.addWatchFile(o)))}):void 0}},{name:"@tailwindcss/vite:generate:build",apply:"build",transform(t,e){M(e,t)&&(u[e]={content:t,handled:!1})},async renderChunk(t,e){for(let[s,r]of Object.entries(u)){if(r.handled)continue;let o=await k(r.content,s,m=>this.addWatchFile(m));await R(this,s,o),r.handled=!0}}}]}function $(n){let[l]=n.split("?",2);return v.extname(l).slice(1)}function M(n,l){let a=$(n);return(a==="css"||a==="vue"&&n.includes("&lang.css"))&&l.includes("@tailwind")}function O(n,{file:l="input.css",minify:a=!1}={}){return z({filename:l,code:Buffer.from(n),minify:a,sourceMap:!1,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:W.Nesting,exclude:W.LogicalProperties,targets:{safari:16<<16|1024},errorRecovery:!0}).code.toString()}export{I as default};
1
+ import{compile as z}from"@tailwindcss/node";import{clearRequireCache as A}from"@tailwindcss/node/require-cache";import{Scanner as q}from"@tailwindcss/oxide";import w from"node:path";function K(e,t){if(typeof e!="string")throw new TypeError("expected path to be a string");if(e==="\\"||e==="/")return"/";var r=e.length;if(r<=1)return e;var o="";if(r>4&&e[3]==="\\"){var c=e[2];(c==="?"||c===".")&&e.slice(0,2)==="\\\\"&&(e=e.slice(2),o="//")}var a=e.split(/[/\\]+/);return t!==!1&&a[a.length-1]===""&&a.pop(),o+a.join("/")}function b(e){let t=K(e);return e.startsWith("\\\\")&&t.startsWith("/")&&!t.startsWith("//")?`/${t}`:t}var C="'",P='"';function W(){let e=new WeakSet;function t(r){let o=r.root().source?.input.file;if(!o)return;let c=r.source?.input.file;if(!c||e.has(r))return;let a=r.params[0],d=a[0]===P&&a[a.length-1]===P?P:a[0]===C&&a[a.length-1]===C?C:null;if(!d)return;let n=r.params.slice(1,-1),m="";if(n.startsWith("!")&&(n=n.slice(1),m="!"),!n.startsWith("./")&&!n.startsWith("../"))return;let y=w.posix.join(b(w.dirname(c)),n),S=w.posix.dirname(b(o)),h=w.posix.relative(S,y);h.startsWith(".")||(h="./"+h),r.params=d+m+h+d,e.add(r)}return{postcssPlugin:"tailwindcss-postcss-fix-relative-paths",AtRule:{source:t,plugin:t,config:t}}}import{Features as M,transform as E}from"lightningcss";import G from"node:fs/promises";import p from"path";import I from"postcss";import T from"postcss-import";function $(){let e=[],t=null,r=!1,o=!1,c=[],a=new Set,d=new q({}),n=new x(s=>new F(s,()=>a,t.base));function m(s,i,l,f){let u=!1;for(let g of d.scanFiles([{content:i,extension:l}]))u=!0,a.add(g);u&&y(f)}function y(s){for(let i of e){let l=[];for(let f of n.keys()){let u=i.moduleGraph.getModuleById(f);if(!u){s||n.delete(f);continue}n.get(f).requiresRebuild=!1,i.moduleGraph.invalidateModule(u),l.push({type:`${u.type}-update`,path:u.url,acceptedPath:u.url,timestamp:Date.now()})}l.length>0&&i.hot.send({type:"update",updates:l})}}async function S(s,i){let l=s.lastContent,f=await s.generate(l,i);if(f!==!1)return B(f,{minify:o})}async function h(s,i,l){let f={...s,getCombinedSourcemap:()=>{throw new Error("getCombinedSourcemap not implemented")}};for(let u of c){if(!u.transform)continue;let g="handler"in u.transform?u.transform.handler:u.transform;try{let v=await g.call(f,l,i);if(!v)continue;typeof v=="string"?l=v:v.code&&(l=v.code)}catch{console.error(`Error running ${u.name} on Tailwind CSS output. Skipping.`)}}return l}return[{name:"@tailwindcss/vite:scan",enforce:"pre",configureServer(s){e.push(s)},async configResolved(s){t=s,o=t.build.cssMinify!==!1,r=t.build.ssr!==!1&&t.build.ssr!==void 0;let i=["vite:css",...t.command==="build"?["vite:css-post"]:[]];c=t.plugins.filter(l=>i.includes(l.name))},transformIndexHtml(s,{path:i}){m(i,s,"html",r)},transform(s,i,l){let f=D(i);R(i)||m(i,s,f,l?.ssr??!1)}},{name:"@tailwindcss/vite:generate:serve",apply:"serve",enforce:"pre",async transform(s,i,l){if(!R(i))return;let f=n.get(i);l?.ssr||await Promise.all(e.map(g=>g.waitForRequestsIdle(i)));let u=await f.generate(s,g=>this.addWatchFile(g));return u?{code:u}:(n.delete(i),s)}},{name:"@tailwindcss/vite:generate:build",apply:"build",enforce:"pre",async transform(s,i){if(!R(i))return;let f=await n.get(i).generate(s,u=>this.addWatchFile(u));return f?{code:f}:(n.delete(i),s)},async renderStart(){for(let[s,i]of n.entries()){let l=await S(i,()=>{});if(!l){n.delete(s);continue}await h(this,s,l)}}}]}function D(e){let[t]=e.split("?",2);return p.extname(t).slice(1)}function R(e){let t=D(e);return t==="css"||t==="vue"&&e.includes("&lang.css")||t==="astro"&&e.includes("&lang.css")}function j(e){return e.includes("@tailwind")||e.includes("@config")||e.includes("@plugin")||e.includes("@apply")||e.includes("@theme")||e.includes("@variant")||e.includes("@utility")}function B(e,{file:t="input.css",minify:r=!1}={}){return E({filename:t,code:Buffer.from(e),minify:r,sourceMap:!1,drafts:{customMedia:!0},nonStandard:{deepSelectorCombinator:!0},include:M.Nesting,exclude:M.LogicalProperties,targets:{safari:16<<16|1024},errorRecovery:!0}).code.toString()}function V(e){return p.resolve(e.replace(/\?.*$/,""))}var x=class extends Map{constructor(r){super();this.factory=r}get(r){let o=super.get(r);return o===void 0&&(o=this.factory(r,this),this.set(r,o)),o}},F=class{constructor(t,r,o){this.id=t;this.getSharedCandidates=r;this.base=o}lastContent="";compiler;requiresRebuild=!0;scanner;candidates=new Set;dependencies=new Set;async generate(t,r){this.lastContent=t;let o=V(this.id),c=p.dirname(p.resolve(o));if(!this.compiler||!this.scanner||this.requiresRebuild){A(Array.from(this.dependencies)),this.dependencies=new Set([V(o)]);let d=(await I([T({load:n=>(this.dependencies.add(n),r(n),G.readFile(n,"utf8"))}),W()]).process(t,{from:o,to:o})).css;if(!j(d))return!1;this.compiler=await z(d,{base:c,onDependency:n=>{r(n),this.dependencies.add(n)}}),this.scanner=new q({sources:this.compiler.globs.map(({origin:n,pattern:m})=>({base:n?p.dirname(p.resolve(c,n)):c,pattern:m}))})}for(let a of this.scanner.scan())this.candidates.add(a);for(let a of this.scanner.files)r(a);for(let a of this.scanner.globs){if(a.pattern[0]==="!")continue;let d=p.relative(this.base,a.base);d[0]!=="."&&(d="./"+d),d=b(d),r(p.posix.join(d,a.pattern))}return this.requiresRebuild=!0,this.compiler.build([...this.getSharedCandidates(),...this.candidates])}};export{$ as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tailwindcss/vite",
3
- "version": "4.0.0-alpha.20",
3
+ "version": "4.0.0-alpha.22",
4
4
  "description": "A utility-first CSS framework for rapidly building custom user interfaces.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -25,12 +25,15 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "lightningcss": "^1.26.0",
28
- "postcss-load-config": "^6.0.1",
29
- "@tailwindcss/oxide": "4.0.0-alpha.20",
30
- "tailwindcss": "4.0.0-alpha.20"
28
+ "postcss": "^8.4.41",
29
+ "postcss-import": "^16.1.0",
30
+ "@tailwindcss/oxide": "4.0.0-alpha.22",
31
+ "tailwindcss": "4.0.0-alpha.22",
32
+ "@tailwindcss/node": "4.0.0-alpha.22"
31
33
  },
32
34
  "devDependencies": {
33
35
  "@types/node": "^20.14.8",
36
+ "@types/postcss-import": "^14.0.3",
34
37
  "vite": "^5.4.0",
35
38
  "internal-postcss-fix-relative-paths": "0.0.0"
36
39
  },