@cssxio/unplugin 0.7.0 → 0.9.0

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 (44) hide show
  1. package/README.md +51 -13
  2. package/dist/chunk-5R7RC6XB.js +13 -0
  3. package/dist/chunk-KEHM5MVZ.js +91 -0
  4. package/dist/chunk-OHZUHF4D.js +1 -0
  5. package/dist/esbuild.cjs +17 -12
  6. package/dist/esbuild.d.cts +1 -1
  7. package/dist/esbuild.d.ts +1 -1
  8. package/dist/esbuild.js +1 -1
  9. package/dist/index.cjs +17 -12
  10. package/dist/index.d.cts +4 -22
  11. package/dist/index.d.ts +4 -22
  12. package/dist/index.js +1 -1
  13. package/dist/next-loader.cjs +16 -0
  14. package/dist/next-loader.d.cts +33 -0
  15. package/dist/next-loader.d.ts +33 -0
  16. package/dist/next-loader.js +4 -0
  17. package/dist/next.cjs +1 -0
  18. package/dist/next.d.cts +39 -0
  19. package/dist/next.d.ts +39 -0
  20. package/dist/next.js +1 -0
  21. package/dist/options-DkqShf7w.d.cts +56 -0
  22. package/dist/options-DkqShf7w.d.ts +56 -0
  23. package/dist/rollup.cjs +16 -11
  24. package/dist/rollup.d.cts +3 -3
  25. package/dist/rollup.d.ts +3 -3
  26. package/dist/rollup.js +1 -1
  27. package/dist/rspack.cjs +16 -11
  28. package/dist/rspack.d.cts +1 -1
  29. package/dist/rspack.d.ts +1 -1
  30. package/dist/rspack.js +1 -1
  31. package/dist/source-map-from-context-B4SX_KAW.d.cts +19 -0
  32. package/dist/source-map-from-context-B4SX_KAW.d.ts +19 -0
  33. package/dist/vite.cjs +16 -11
  34. package/dist/vite.d.cts +1 -1
  35. package/dist/vite.d.ts +1 -1
  36. package/dist/vite.js +1 -1
  37. package/dist/webpack.cjs +16 -11
  38. package/dist/webpack.d.cts +1 -1
  39. package/dist/webpack.d.ts +1 -1
  40. package/dist/webpack.js +1 -1
  41. package/package.json +14 -4
  42. package/dist/chunk-SKXNEQ2Z.js +0 -98
  43. package/dist/options-ByIyWTN0.d.cts +0 -29
  44. package/dist/options-ByIyWTN0.d.ts +0 -29
package/dist/index.cjs CHANGED
@@ -1,12 +1,17 @@
1
- "use strict";var mt=Object.create;var W=Object.defineProperty;var dt=Object.getOwnPropertyDescriptor;var ut=Object.getOwnPropertyNames;var pt=Object.getPrototypeOf,ft=Object.prototype.hasOwnProperty;var gt=(e,s)=>{for(var t in s)W(e,t,{get:s[t],enumerable:!0})},ae=(e,s,t,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of ut(s))!ft.call(e,o)&&o!==t&&W(e,o,{get:()=>s[o],enumerable:!(r=dt(s,o))||r.enumerable});return e};var yt=(e,s,t)=>(t=e!=null?mt(pt(e)):{},ae(s||!e||!e.__esModule?W(t,"default",{value:e,enumerable:!0}):t,e)),xt=e=>ae(W({},"__esModule",{value:!0}),e);var Rt={};gt(Rt,{compileCssxStylesheet:()=>C,default:()=>ct,esbuild:()=>ie,rollup:()=>Ot,rspack:()=>Nt,transformCssxModule:()=>S,unplugin:()=>j,unpluginFactory:()=>lt,vite:()=>wt,webpack:()=>kt});module.exports=xt(Rt);var it=require("@cssxio/compiler"),at=require("unplugin");function le(e,s){let t=new Map,r=[];for(let o of s)o.id?t.set(o.id,o):r.push(o);for(let o of e)o.id?t.set(o.id,o):r.push(o);return[...t.values(),...r]}var F=require("path");function E(e){if(!e||(0,F.isAbsolute)(e))throw new Error("cssFileName must be a non-empty relative path.");let s=(0,F.normalize)(e);if(s===".."||s.startsWith(`..${F.sep}`))throw new Error("cssFileName must not escape the bundler output directory.");if(!s.endsWith(".css"))throw new Error("cssFileName must end in .css.");return s}function V(e){if(e.theme!==void 0&&e.themeFile!==void 0)throw new Error("CSSX accepts either theme or themeFile, not both.");if(e.layer!==void 0&&!/^[A-Za-z_-][A-Za-z0-9_-]*$/.test(e.layer))throw new Error("CSSX layer must be a valid CSS layer identifier.");if(e.sourceMap!==void 0&&typeof e.sourceMap!="boolean")throw new Error("CSSX sourceMap must be a boolean.");if(e.darkMode!==void 0&&e.darkMode!=="media"&&e.darkMode!=="selector"&&e.darkMode!=="class")throw new Error('CSSX darkMode must be "media", "selector", or "class".');if(e.preflight!==void 0&&typeof e.preflight!="boolean")throw new Error("CSSX preflight must be a boolean.");if(e.reusabilityBudget!==void 0&&e.reusabilityBudget!=="auto"&&(!Number.isFinite(e.reusabilityBudget)||e.reusabilityBudget<0||e.reusabilityBudget>100))throw new Error('CSSX reusabilityBudget must be "auto" or a number from 0 through 100.');E(e.cssFileName??"cssx.css")}var ce=require("fs/promises"),me=require("path");async function w(e){return e.themeFile===void 0?e.theme:(0,ce.readFile)((0,me.resolve)(process.cwd(),e.themeFile),"utf8")}function y(e){return e.split("?",1).join("")}function U(e){let s=2166136261;for(let t=0;t<e.length;t++)s^=e.charCodeAt(t),s=Math.imul(s,16777619);return(s>>>0).toString(36)}function M(e,s){return E(e).replaceAll("[hash]",U(s))}var O=require("path");function H(e,s,t){return s.outdir?(0,O.resolve)(e,s.outdir,t):s.outfile?(0,O.resolve)((0,O.dirname)((0,O.resolve)(e,s.outfile)),t):(0,O.resolve)(e,t)}var de=require("path");function I(e,s){return`${e&&e!=="/"?`/${e.replace(/^\/+|\/+$/g,"")}`:""}/${E(s).replaceAll(de.sep,"/")}`}function ue(e,s){let t=e.buildInfo?.[s];if(!t||typeof t!="object")return;let{id:r,candidates:o,composites:i,atomicClasses:d,origins:n}=t;return{id:typeof r=="string"?r:"",candidates:o&&typeof o=="object"?o:{},composites:i&&typeof i=="object"?i:{},...Array.isArray(d)?{atomicClasses:d}:{},origins:n&&typeof n=="object"?n:{}}}var X=require("@cssxio/compiler");function te(e,s){let t=s.split(`
2
- `);return{line:e.line+t.length-1,column:t.at(-1).length+e.column*+(t.length===1)}}var Ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function _(e){let s="",t=e<0?-e<<1|1:e<<1;do{let r=t&31;t>>>=5,t&&(r|=32),s+=Ct[r]}while(t);return s}function pe(e){let s=Array.from({length:Math.max(0,...e.map(n=>n.line))+1},()=>[]),t=0,r=0,o=0,i=0,d=0;for(let n of e)d*=+(n.line===i),i=n.line,s[n.line]?.push(`${_(n.column-d)}${_(n.source-t)}${_(n.originalLine-r)}${_(n.originalColumn-o)}`),d=n.column,t=n.source,r=n.originalLine,o=n.originalColumn;return s.map(n=>n.join(",")).join(";")}function fe(e,s,t){let r=[...new Set(s.map(n=>t.get(n.candidate)?.id).filter(n=>!!n))].sort();if(r.length===0)return;let o=new Map(r.map((n,a)=>[n,a])),i=[],d=te({line:0,column:0},e);for(let n of s){let a=t.get(n.candidate);a&&i.push({...d,source:o.get(a.id),originalLine:a.line,originalColumn:a.column}),d=te(d,n.css)}return{version:3,sources:r,names:[],mappings:pe(i)}}var ge='*,::before,::after,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}button,select{text-transform:none}button,input:where([type="button"],[type="reset"],[type="submit"]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit}textarea{resize:vertical}::placeholder{opacity:1}button,[role="button"]{cursor:pointer}:disabled{cursor:default}[hidden]:where(:not([hidden="until-found"])){display:none!important}';async function C(e,s,t,r=!0,o,i=!0){let d=Object.create(null),n=Object.create(null),a=new Set,l=!0,u=new Map;for(let h of[...e].sort((x,T)=>x.id.localeCompare(T.id))){for(let[x,T]of Object.entries(h.candidates))if(x in d||(d[x]=T),h.id&&!u.has(x)){let L=h.origins?.[x];u.set(x,{id:h.id,line:L?.line??0,column:L?.column??0})}for(let[x,T]of Object.entries(h.composites??{})){let L=n[x];if(L&&L.join(" ")!==T.join(" "))throw new Error(`CSSX composite class collision for "${x}".`);n[x]=T}h.atomicClasses===void 0&&(l=!1);for(let x of h.atomicClasses??[])a.add(x)}let c=Object.keys(d).sort(),p=i?ge:"";if(c.length===0)return{css:p&&t?`@layer ${t}{${p}}`:p};let m=await(0,X.compileUtilities)(c,h=>d[h],s,(0,X.createSelectorAliases)(n),l?a:void 0,{darkMode:o}),f=t?`@layer ${t}{`:"",g=`${f}${p}${m.css}${f?"}":""}`,P=r?fe(`${f}${p}${m.prefixCss}`,m.entries,u):void 0;return{css:g,...P?{map:P}:{}}}function k(e,s){return JSON.stringify({...e,file:s})}var ye=require("path");function v(e,s){return e.map?`${e.css}
3
- /*# sourceMappingURL=${(0,ye.basename)(s)}.map */`:e.css}function xe(e,s,t,r,o,i,d,n,a=!0,l){let u=e.name??e.options?.name;u==="server"||u==="edge-server"||e.hooks.thisCompilation.tap("@cssxio/unplugin",c=>{c.hooks.processAssets.tapPromise({name:"@cssxio/unplugin",stage:e.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},async()=>{let p=l?await l():le([...c.modules].map(g=>ue(g,i)).filter(g=>g!==void 0),d?.values()??[]),m=await C(p,await t(),r,o,n,a);if(!m.css)return;let f=M(s,m.css);if(c.getAsset?.(f))throw new Error(`CSSX CSS asset collision at "${f}".`);if(c.emitAsset(f,new e.webpack.sources.RawSource(v(m,f))),m.map){let g=`${f}.map`;if(c.getAsset?.(g))throw new Error(`CSSX CSS map asset collision at "${g}".`);c.emitAsset(g,new e.webpack.sources.RawSource(k(m.map,f)))}})})}var N="@cssxio/unplugin/rules";function z(){return{id:"",rules:[],candidates:{},composites:{},origins:{},cssOnlySignature:""}}var Se=require("@cssxio/compiler");function Ce(e,s){return`${e}\0${JSON.stringify(s)}`}var he=new Map;function G(e,s){let t=Ce(e,s),r=he.get(t);return r||(r={classNameAllocator:(0,Se.createClassNameAllocator)(),transformedDataById:new Map},he.set(t,r)),r}var Ve=require("@cssxio/compiler"),Ue=require("fs/promises"),Z=require("path");var be=require("fs/promises"),Me=require("path"),ht=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro"]),St=new Set([".git",".next",".turbo","node_modules"]);async function ve(e){let s=[],t=[e];for(;t.length>0;){let r=t.pop();for(let o of await(0,be.readdir)(r,{withFileTypes:!0})){let i=(0,Me.join)(r,o.name);if(o.isDirectory()){St.has(o.name)||t.push(i);continue}o.isFile()&&ht.has(i.slice(i.lastIndexOf(".")))&&s.push(i)}}return s.sort()}var we=require("@cssxio/compiler");function J(e){let s=[],t=/\bsx\s*\(/g;for(let r of e.matchAll(t)){let o=r.index,i=e.indexOf("(",o),d=0,n="";for(let a=i;a<e.length;a+=1){let l=e[a];if(n){l==="\\"?a+=1:l===n&&(n="");continue}if(l==='"'||l==="'"||l==="`")n=l;else if(l==="(")d+=1;else if(l===")"&&--d===0){s.push({start:o,end:a+1,code:e.slice(o,a+1)}),t.lastIndex=a+1;break}}}return s}function D(e,s){return{code:e,rules:s.flatMap(t=>t.rules),candidates:Object.assign({},...s.map(t=>t.candidates)),composites:Object.assign({},...s.map(t=>t.composites)),atomicClasses:[...new Set(s.flatMap(t=>t.atomicClasses))],origins:Object.assign({},...s.map(t=>t.origins)),cssOnlySignature:e}}function q(e){let s="const style = ",t=e.indexOf(s)+s.length,r=e.indexOf(";",t);return e.slice(t,r)}async function Oe(e,s,t,r){let o=J(e);if(o.length===0)return null;let i=t.classNameAllocator??(0,we.createClassNameAllocator)(),d=t.importSource??"@cssxio/cssx",n=[],a=e;for(let l of[...o].reverse()){let u=await r(`import { sx } from ${JSON.stringify(d)};
4
- const style = ${l.code};`,`${s}.ts`,{...t,classNameAllocator:i}),c=q(u.code);a=`${a.slice(0,l.start)}${c}${a.slice(l.end)}`,n.push({...u,atomicClasses:[],origins:{}})}return D(a,n)}var Re=require("@babel/core"),Ae=yt(require("@cssxio/babel-plugin"),1),K=require("@cssxio/compiler");function ke(e){return{className:`cssx-${U(e)}`,css:e}}function Ne(e,s){return e&&s?`@layer ${s}{${e}}`:e}async function Pe(e,s,t,r){let o=t.importSource??"@cssxio/cssx",i=await w(t),d=await(0,Re.transformAsync)(e,{babelrc:!1,configFile:!1,filename:s,parserOpts:{plugins:["jsx","typescript"]},plugins:[[Ae.default,{importSource:o,classNameAllocator:t.classNameAllocator,theme:i,reusabilityBudget:t.reusabilityBudget,stableClassNames:t.stableClassNames,stableClassNameFileName:t.stableClassNameFileName,darkMode:t.darkMode}]],sourceMaps:!0,...r?{inputSourceMap:r}:{}}),n=d.metadata,{candidates:a,origins:l,composites:u,atomicClasses:c,cssOnlySignature:p}=n.cssx,m=Object.keys(a),f=m.length===0?"":(await(0,K.compileUtilities)(m,g=>a[g],i,(0,K.createSelectorAliases)(u),new Set(c),{darkMode:t.darkMode})).css;return{code:d.code,rules:f?[ke(Ne(f,t.layer))]:[],candidates:a,composites:u,atomicClasses:c,origins:l,cssOnlySignature:p,map:d.map}}var Be=require("@cssxio/compiler"),$e=require("@vue/compiler-sfc");function Q(e,s){let t=e.split(`
5
- `).slice(0,s.line).reduce((r,o)=>r+o.length+1,0);return Math.min(e.length,t+s.column)}function Y(e,s){let t=Math.min(e.length,s),r=e.slice(0,t).split(`
6
- `).length-1,o=e.lastIndexOf(`
7
- `,t-1)+1;return{line:r,column:t-o}}function se(e,s,t){let r={},o=e.slice(s);for(let[i,d]of Object.entries(t))r[i]=Y(e,s+Q(o,d));return r}function Te(e){return e.slice(1,-1).replace(/\\(['"\\bnfrtv])/g,(s,t)=>({b:"\b",n:`
8
- `,f:"\f",r:"\r",t:" ",v:"\v"})[t]??t)}function Fe(e,s){if(!s)return e;let t=s==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,r=>{let o=r[0]==='"'?JSON.parse(r):Te(r),i=JSON.stringify(o);return t==='"'?i:`'${i.slice(1,-1).replaceAll("'","\\'")}'`})}function Ee(e,s,t,r,o){let i={};for(let[d,n]of Object.entries(o)){let a=Q(t,n);i[d]=Y(e,s+Math.max(0,a-r))}return i}function Ie(e,s){let t=-1,r;for(let o=0;o<s;o++){let i=e[o];if(r){i===r&&(r=void 0);continue}if(i==="<"&&/[A-Za-z]/.test(e[o+1])){t=o;continue}t!==-1&&(i===">"?t=-1:(i==='"'||i==="'")&&(r=i))}return r}async function De(e,s,t,r,o){let i=J(e);if(i.length===0)return null;let d=t.importSource??"@cssxio/cssx",n=[],a=e;for(let l of[...i].reverse()){let u=`import { sx } from ${JSON.stringify(d)};
9
- const style = `,c=`${u}${l.code};`,p=await o(c,`${s}.cssx-vue-template.ts`,{...t,classNameAllocator:r}),m=Fe(q(p.code),Ie(e,l.start));a=`${a.slice(0,l.start)}${m}${a.slice(l.end)}`,n.push({...p,origins:Ee(e,l.start,c,u.length,p.origins)})}return D(a,n)}async function je(e,s,t,r){let o=s.split("?",1).join(""),i=(0,$e.parse)(e,{filename:o});if(i.errors.length>0)throw new Error(i.errors[0].message);let d=t.classNameAllocator??(0,Be.createClassNameAllocator)(),n=[],a=[];for(let c of[i.descriptor.script,i.descriptor.scriptSetup]){if(!c?.content.includes(t.importSource??"@cssxio/cssx"))continue;let p=c.lang==="js"||c.lang==="jsx"||c.lang==="tsx"?c.lang:"ts",m=await r(c.content,`${o}.cssx-vue-script.${p}`,{...t,classNameAllocator:d});n.push({start:c.loc.start.offset,end:c.loc.end.offset,code:m.code}),a.push({...m,origins:se(e,c.loc.start.offset,m.origins)})}let l=i.descriptor.template;if(l?.content.includes("sx")){let c=await De(l.content,o,t,d,r);c&&(n.push({start:l.loc.start.offset,end:l.loc.end.offset,code:c.code}),a.push({...c,origins:se(e,l.loc.start.offset,c.origins)}))}if(n.length===0)return null;let u=e;for(let c of n.sort((p,m)=>m.start-p.start))u=`${u.slice(0,c.start)}${c.code}${u.slice(c.end)}`;return D(u,a)}var bt=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".vue"]);async function S(e,s,t={},r){V(t);let o=t.importSource??"@cssxio/cssx",i=s.split("?",1).join("");return!bt.has(i.slice(i.lastIndexOf(".")))||!e.includes(o)?null:i.endsWith(".astro")?Oe(e,s,t,S):i.endsWith(".vue")?je(e,s,t,S):Pe(e,i,t,r)}function Le(e,s){if(!e||typeof e!="object")return;let t=e.getCombinedSourcemap;if(typeof t!="function")return;let r=t.call(e);if(!r||typeof r!="object")return;let o=r;if(!(o.version!==3||!Array.isArray(o.sources)||typeof o.mappings!="string"))return{version:o.version,sources:[...o.sources],names:[...o.names??[]],mappings:o.mappings,file:o.file??s.split("?",1).join(""),...o.sourceRoot?{sourceRoot:o.sourceRoot}:{},...o.sourcesContent?{sourcesContent:[...o.sourcesContent]}:{}}}async function He(e,s){let t=await ve(e),r=(0,Ve.createClassNameAllocator)(s.className),o=[];for(let i of t){let d=await(0,Ue.readFile)(i,"utf8"),n=await S(d,i,{...s,classNameAllocator:r,stableClassNames:!0,stableClassNameFileName:(0,Z.relative)(e,i).replaceAll(Z.sep,"/")});n&&o.push({id:i,candidates:n.candidates,composites:n.composites,atomicClasses:n.atomicClasses,origins:n.origins})}return o}function oe({compiler:e,options:s,cssFileName:t,sourceMap:r,getTheme:o}){let i=G(e.context,s);xe(e,t,o,s.layer,r,N,i.transformedDataById,s.darkMode,s.preflight,s.stableClassNames?()=>He(e.context,s):void 0)}function ee(e,s,t=Date.now()){e.ws.send({type:"update",updates:[{type:"css-update",path:s,acceptedPath:s,timestamp:t}]})}function _e(e,s){let{cssFileName:t,sourceMap:r,options:o,rollupDataById:i,getTheme:d}=s,n=I(e.config.base,t),a=I("/",t);e.watcher?.on("unlink",l=>{i.delete(y(l)),ee(e,a)}),e.middlewares.use((l,u,c)=>{let p=l.url?.split("?",1)[0];if(p!==n&&(p!==`${n}.map`||!r))return c();d().then(m=>C([...i.values()],m,o.layer,r,o.darkMode,o.preflight)).then(m=>{if(p===`${n}.map`){u.setHeader("Content-Type","application/json; charset=utf-8"),u.setHeader("Cache-Control","no-store"),u.end(m.map?k(m.map,t):"");return}u.setHeader("Content-Type","text/css; charset=utf-8"),u.setHeader("Cache-Control","no-store"),u.end(v(m,t))}).catch(m=>{u.setHeader("Content-Type","text/plain; charset=utf-8"),u.end(m instanceof Error?m.message:"Unable to compile CSSX development stylesheet.")})})}function We(e){if(!e||typeof e!="object")return z();let{id:s,rules:t,candidates:r,composites:o,atomicClasses:i,origins:d,cssOnlySignature:n}=e;return{id:typeof s=="string"?s:"",rules:Array.isArray(t)?t:[],candidates:r&&typeof r=="object"?r:{},composites:o&&typeof o=="object"?o:{},...Array.isArray(i)?{atomicClasses:i}:{},origins:d&&typeof d=="object"?d:{},cssOnlySignature:typeof n=="string"?n:""}}function Xe(e){return!e||typeof e!="object"?z():We(e[N])}function ze(e){return async function(s,t){let{framework:r,options:o,cssFileName:i,sourceMap:d,rollupDataById:n,getTheme:a}=e,l=new Set(Object.values(t).flatMap(m=>m.type==="chunk"?Object.keys(m.modules??{}):[]).map(y));if(r!=="vite")for(let m of n.keys())l.has(m)||n.delete(m);let u=r==="vite"?[...n.values()]:[...l].map(m=>{let f=Xe(this.getModuleInfo(m)?.meta);return Object.keys(f.candidates).length>0?f:n.get(m)??f}),c=await C(u,await a(),o.layer,d,o.darkMode,o.preflight);if(!c.css)return;let p=M(i,c.css);if(Object.hasOwn(t,p))throw new Error(`CSSX CSS asset collision at "${p}".`);if(this.emitFile({type:"asset",fileName:p,source:v(c,p)}),c.map){let m=`${p}.map`;if(Object.hasOwn(t,m))throw new Error(`CSSX CSS map asset collision at "${m}".`);this.emitFile({type:"asset",fileName:m,source:k(c.map,p)})}}}var R=require("path");function Ge(e){let s=e.getNativeBuildContext?.();return s&&(s.framework==="webpack"||s.framework==="rspack")?s.loaderContext?.rootContext??process.cwd():void 0}function Je(e){return`if (typeof document !== "undefined" && typeof module !== "undefined" && module.hot) {
1
+ "use strict";var Nt=Object.create;var K=Object.defineProperty;var Mt=Object.getOwnPropertyDescriptor;var Ot=Object.getOwnPropertyNames;var kt=Object.getPrototypeOf,Pt=Object.prototype.hasOwnProperty;var At=(e,t)=>{for(var s in t)K(e,s,{get:t[s],enumerable:!0})},Ce=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ot(t))!Pt.call(e,r)&&r!==s&&K(e,r,{get:()=>t[r],enumerable:!(o=Mt(t,r))||o.enumerable});return e};var Rt=(e,t,s)=>(s=e!=null?Nt(kt(e)):{},Ce(t||!e||!e.__esModule?K(s,"default",{value:e,enumerable:!0}):s,e)),Et=e=>Ce(K({},"__esModule",{value:!0}),e);var Wt={};At(Wt,{compileCssxStylesheet:()=>w,default:()=>vt,esbuild:()=>xe,rollup:()=>Ht,rspack:()=>_t,transformCssxModule:()=>b,unplugin:()=>W,unpluginFactory:()=>bt,vite:()=>Ut,webpack:()=>Xt});module.exports=Et(Wt);var St=require("@cssxio/compiler"),wt=require("unplugin");var j=require("path");function B(e){if(!e||(0,j.isAbsolute)(e))throw new Error("cssFileName must be a non-empty relative path.");let t=(0,j.normalize)(e);if(t===".."||t.startsWith(`..${j.sep}`))throw new Error("cssFileName must not escape the bundler output directory.");if(!t.endsWith(".css"))throw new Error("cssFileName must end in .css.");return t}function E(e){if(e.sourceRoots&&e.sourceRoots.some(s=>typeof s!="string"||!s.trim()))throw new Error("CSSX sourceRoots must contain non-empty file-system paths.");let t=e.debug;if(t===null||t!==void 0&&typeof t!="boolean"&&(typeof t!="object"||typeof t.reportFile!="string"||!t.reportFile))throw new Error("CSSX debug must be a boolean or an object with a reportFile path.");if(e.naming!==void 0&&!["serial","hash","source"].includes(e.naming))throw new Error('CSSX naming must be "serial", "hash", or "source".');if(e.coordination!==void 0&&!["memory","manifest"].includes(e.coordination))throw new Error('CSSX coordination must be "memory" or "manifest".');if(e.stableClassNames&&e.naming&&e.naming!=="source")throw new Error('CSSX stableClassNames selects source naming and conflicts with naming. Use naming: "source".');if(e.stableClassNames&&e.coordination==="manifest")throw new Error("CSSX stableClassNames already selects source naming; remove it to use manifest coordination.");if(e.naming==="hash"&&e.className?.variant==="serial")throw new Error('CSSX naming: "hash" conflicts with className.variant: "serial".');if(e.naming==="serial"&&e.className?.variant==="random")throw new Error('CSSX naming: "serial" conflicts with className.variant: "random".');if(e.coordination==="manifest"&&!e.manifestPath)throw new Error('CSSX coordination: "manifest" requires manifestPath.');if(e.manifestPath&&e.coordination!=="manifest")throw new Error('CSSX manifestPath requires coordination: "manifest".');if(e.coordination==="manifest"&&e.classNameAllocator)throw new Error("CSSX manifest coordination cannot use a custom classNameAllocator.");if(e.theme!==void 0&&e.themeFile!==void 0)throw new Error("CSSX accepts either theme or themeFile, not both.");if(e.layer!==void 0&&!/^[A-Za-z_-][A-Za-z0-9_-]*$/.test(e.layer))throw new Error("CSSX layer must be a valid CSS layer identifier.");if(e.sourceMap!==void 0&&typeof e.sourceMap!="boolean")throw new Error("CSSX sourceMap must be a boolean.");if(e.darkMode!==void 0&&e.darkMode!=="media"&&e.darkMode!=="selector"&&e.darkMode!=="class")throw new Error('CSSX darkMode must be "media", "selector", or "class".');if(e.preflight!==void 0&&typeof e.preflight!="boolean")throw new Error("CSSX preflight must be a boolean.");if(e.reusabilityBudget!==void 0&&e.reusabilityBudget!=="auto"&&(!Number.isFinite(e.reusabilityBudget)||e.reusabilityBudget<0||e.reusabilityBudget>100))throw new Error('CSSX reusabilityBudget must be "auto" or a number from 0 through 100.');B(e.cssFileName??"cssx.css")}var he=require("fs/promises"),Se=require("path");async function T(e){return e.themeFile===void 0?e.theme:(0,he.readFile)((0,Se.resolve)(process.cwd(),e.themeFile),"utf8")}function S(e){return e.split("?",1).join("")}function z(e){let t=2166136261;for(let s=0;s<e.length;s++)t^=e.charCodeAt(s),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function k(e,t){return B(e).replaceAll("[hash]",z(t))}var F=require("path");function q(e,t,s){return t.outdir?(0,F.resolve)(e,t.outdir,s):t.outfile?(0,F.resolve)((0,F.dirname)((0,F.resolve)(e,t.outfile)),s):(0,F.resolve)(e,s)}var we=require("path");function L(e,t){return`${e&&e!=="/"?`/${e.replace(/^\/+|\/+$/g,"")}`:""}/${B(t).replaceAll(we.sep,"/")}`}function N(e){let t=e.naming==="hash"?"random":e.naming==="serial"?"serial":void 0;if(t&&e.className?.variant&&e.className.variant!==t)throw new Error(`CSSX naming: "${e.naming}" conflicts with className.variant: "${e.className.variant}".`);return{...e.className,...t?{variant:t}:{}}}var Q=require("@cssxio/compiler");var be='*,::before,::after,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}button,select{text-transform:none}button,input:where([type="button"],[type="reset"],[type="submit"]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit}textarea{resize:vertical}::placeholder{opacity:1}button,[role="button"]{cursor:pointer}:disabled{cursor:default}[hidden]:where(:not([hidden="until-found"])){display:none!important}';function me(e,t){let s=t.split(`
2
+ `);return{line:e.line+s.length-1,column:s.at(-1).length+e.column*+(s.length===1)}}var Tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function G(e){let t="",s=e<0?-e<<1|1:e<<1;do{let o=s&31;s>>>=5,s&&(o|=32),t+=Tt[o]}while(s);return t}function ve(e){let t=Array.from({length:Math.max(0,...e.map(n=>n.line))+1},()=>[]),s=0,o=0,r=0,a=0,m=0;for(let n of e)m*=+(n.line===a),a=n.line,t[n.line]?.push(`${G(n.column-m)}${G(n.source-s)}${G(n.originalLine-o)}${G(n.originalColumn-r)}`),m=n.column,s=n.source,o=n.originalLine,r=n.originalColumn;return t.map(n=>n.join(",")).join(";")}function Ne(e,t,s){let o=[...new Set(t.map(n=>s.get(n.candidate)?.id).filter(n=>!!n))].sort();if(o.length===0)return;let r=new Map(o.map((n,i)=>[n,i])),a=[],m=me({line:0,column:0},e);for(let n of t){let i=s.get(n.candidate);i&&a.push({...m,source:r.get(i.id),originalLine:i.line,originalColumn:i.column}),m=me(m,n.css)}return{version:3,sources:o,names:[],mappings:ve(a)}}async function w(e,t,s,o=!0,r,a=!0){let m=Object.create(null),n=Object.create(null),i=new Set,c=!0,d=new Map;for(let x of[...e].sort((h,A)=>h.id.localeCompare(A.id))){for(let[h,A]of Object.entries(x.candidates))if(h in m||(m[h]=A),x.id&&!d.has(h)){let J=x.origins?.[h];d.set(h,{id:x.id,line:J?.line??0,column:J?.column??0})}for(let[h,A]of Object.entries(x.composites??{})){let J=n[h];if(J&&J.join(" ")!==A.join(" "))throw new Error(`CSSX composite class collision for "${h}".`);n[h]=A}x.atomicClasses===void 0&&(c=!1);for(let h of x.atomicClasses??[])i.add(h)}let l=Object.keys(m).sort(),u=a?be:"";if(l.length===0)return{css:u&&s?`@layer ${s}{${u}}`:u};let p=await(0,Q.compileUtilities)(l,x=>m[x],t,(0,Q.createSelectorAliases)(n),c?i:void 0,{darkMode:r}),g=s?`@layer ${s}{`:"",f=`${g}${u}${p.css}${g?"}":""}`,y=o?Ne(`${g}${u}${p.prefixCss}`,p.entries,d):void 0;return{css:f,...y?{map:y}:{}}}function $(e,t){return JSON.stringify({...e,file:t})}var Me=require("path");function P(e,t){return e.map?`${e.css}
3
+ /*# sourceMappingURL=${(0,Me.basename)(t)}.map */`:e.css}var qe=require("@cssxio/compiler"),Ge=require("fs/promises"),H=require("path");var Oe=require("module"),ke=require("path"),de=require("url");async function Pe(e,t,s={}){let o=(0,Oe.createRequire)((0,ke.resolve)(t,"package.json")),r;try{r=o.resolve("@mdx-js/mdx")}catch{throw new Error("CSSX Next MDX support requires @mdx-js/mdx to be installed in the Next.js project.")}let a=await import((0,de.pathToFileURL)(r).href),m=async n=>Promise.all((n??[]).map(async i=>{let[c,d]=typeof i=="string"?[i,void 0]:i,l=o.resolve(c),u=await import((0,de.pathToFileURL)(l).href),p=u.default??u;return d===void 0?p:[p,d]}));return String(await a.compile(e,{outputFormat:"program",development:s.development??!1,remarkPlugins:await m(s.remarkPlugins),rehypePlugins:await m(s.rehypePlugins),recmaPlugins:await m(s.recmaPlugins)}))}var R=require("@cssxio/compiler"),C=require("fs/promises"),Y=require("path"),Ae=20,Re=5*6e4;async function V(e,t,s){let o=(0,Y.resolve)(e),r=`${o}.lock`,a=Date.now(),m,n=0;for(;!m;){await(0,C.mkdir)((0,Y.dirname)(o),{recursive:!0});let i;try{i=await(0,C.open)(r,"wx")}catch(c){let d=c.code;if(d!=="EEXIST"){if(d!=="EACCES"&&d!=="EPERM")throw c;try{await(0,C.stat)(r)}catch(l){if(l.code==="ENOENT"){if(n+=1,n>1)throw c;await new Promise(u=>setTimeout(u,Ae));continue}throw l}}if(n=0,await Ft(r))continue;if(Date.now()-a>=Re)throw new Error(`Timed out waiting for CSSX class-name manifest lock: ${r}`);await new Promise(l=>setTimeout(l,Ae));continue}try{await i.writeFile(`${process.pid}
4
+ ${Date.now()}
5
+ `)}catch(c){throw await i.close().catch(()=>{}),await(0,C.rm)(r,{force:!0}).catch(()=>{}),c}m=i}try{let i=await $t(o,t),c=await s(i),d=(0,R.snapshotClassNameAllocator)(i),l=`${o}.${process.pid}.${Date.now()}.tmp`;try{await(0,C.writeFile)(l,`${JSON.stringify(d,null,2)}
6
+ `,"utf8"),await(0,C.rename)(l,o)}catch(u){throw await(0,C.rm)(l,{force:!0}).catch(()=>{}),u}return c}finally{await m.close(),await(0,C.rm)(r,{force:!0})}}async function Ft(e){try{let t=await(0,C.stat)(e),s;try{s=await(0,C.readFile)(e,"utf8")}catch(a){let m=a.code;if(m==="EACCES"||m==="EPERM")return!1;throw a}let[o]=s.split(`
7
+ `),r=Number(o);if(Number.isSafeInteger(r)&&r>0)try{return process.kill(r,0),!1}catch(a){return a.code!=="ESRCH"?!1:(await(0,C.rm)(e,{force:!0}),!0)}return Date.now()-t.mtimeMs<Re?!1:(await(0,C.rm)(e,{force:!0}),!0)}catch(t){if(t.code==="ENOENT")return!1;throw t}}async function $t(e,t){try{let s=JSON.parse(await(0,C.readFile)(e,"utf8")),o=(0,R.snapshotClassNameAllocator)((0,R.createClassNameAllocator)(t)).options;if(JSON.stringify(s.options)!==JSON.stringify(o))throw new Error("CSSX class-name manifest options do not match the active compiler options.");return(0,R.restoreClassNameAllocator)(s)}catch(s){if(s.code==="ENOENT")return(0,R.createClassNameAllocator)(t);throw s}}var Ee=require("fs/promises"),Z=require("path"),Dt=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".mdx",".md"]),It=new Set([".git",".next",".turbo","node_modules"]);async function Te(e,t=[]){let s=[],o=[e,...t],r=new Set;for(;o.length>0;){let a=o.pop(),m=(0,Z.resolve)(a);if(!r.has(m)){r.add(m);for(let n of await(0,Ee.readdir)(a,{withFileTypes:!0})){let i=(0,Z.join)(a,n.name);if(n.isDirectory()){It.has(n.name)||o.push(i);continue}n.isFile()&&Dt.has(i.slice(i.lastIndexOf(".")))&&s.push(i)}}}return s.sort()}var Fe=require("@cssxio/compiler");function ee(e){let t=[],s=/\bsx\s*\(/g;for(let o of e.matchAll(s)){let r=o.index,a=e.indexOf("(",r),m=0,n="";for(let i=a;i<e.length;i+=1){let c=e[i];if(n){c==="\\"?i+=1:c===n&&(n="");continue}if(c==='"'||c==="'"||c==="`")n=c;else if(c==="(")m+=1;else if(c===")"&&--m===0){t.push({start:r,end:i+1,code:e.slice(r,i+1)}),s.lastIndex=i+1;break}}}return t}function U(e,t){return{code:e,rules:t.flatMap(s=>s.rules),candidates:Object.assign({},...t.map(s=>s.candidates)),composites:Object.assign({},...t.map(s=>s.composites)),atomicClasses:[...new Set(t.flatMap(s=>s.atomicClasses))],origins:Object.assign({},...t.map(s=>s.origins)),cssOnlySignature:e}}function te(e){let t="const style = ",s=e.indexOf(t)+t.length,o=e.indexOf(";",s);return e.slice(s,o)}async function $e(e,t,s,o){let r=ee(e);if(r.length===0)return null;let a=s.classNameAllocator??(0,Fe.createClassNameAllocator)(),m=s.importSource??"@cssxio/cssx",n=[],i=e;for(let c of[...r].reverse()){let d=await o(`import { sx } from ${JSON.stringify(m)};
8
+ const style = ${c.code};`,`${t}.ts`,{...s,classNameAllocator:a}),l=te(d.code);i=`${i.slice(0,c.start)}${l}${i.slice(c.end)}`,n.push({...d,atomicClasses:[],origins:{}})}return U(i,n)}var Ve=require("@cssxio/compiler"),Ue=require("@vue/compiler-sfc");function se(e,t){let s=e.split(`
9
+ `).slice(0,t.line).reduce((o,r)=>o+r.length+1,0);return Math.min(e.length,s+t.column)}function re(e,t){let s=Math.min(e.length,t),o=e.slice(0,s).split(`
10
+ `).length-1,r=e.lastIndexOf(`
11
+ `,s-1)+1;return{line:o,column:s-r}}function ue(e,t,s){let o={},r=e.slice(t);for(let[a,m]of Object.entries(s))o[a]=re(e,t+se(r,m));return o}function De(e,t,s,o,r){let a={};for(let[m,n]of Object.entries(r)){let i=se(s,n);a[m]=re(e,t+Math.max(0,i-o))}return a}function Ie(e){return e.slice(1,-1).replace(/\\(['"\\bnfrtv])/g,(t,s)=>({b:"\b",n:`
12
+ `,f:"\f",r:"\r",t:" ",v:"\v"})[s]??s)}function je(e,t){if(!t)return e;let s=t==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,o=>{let r=o[0]==='"'?JSON.parse(o):Ie(o),a=JSON.stringify(r);return s==='"'?a:`'${a.slice(1,-1).replaceAll("'","\\'")}'`})}function Be(e,t){let s=-1,o;for(let r=0;r<t;r++){let a=e[r];if(o){a===o&&(o=void 0);continue}if(a==="<"&&/[A-Za-z]/.test(e[r+1])){s=r;continue}s!==-1&&(a===">"?s=-1:(a==='"'||a==="'")&&(o=a))}return o}async function Le(e,t,s,o,r){let a=ee(e);if(a.length===0)return null;let m=s.importSource??"@cssxio/cssx",n=[],i=e;for(let c of[...a].reverse()){let d=`import { sx } from ${JSON.stringify(m)};
13
+ const style = `,l=`${d}${c.code};`,u=await r(l,`${t}.cssx-vue-template.ts`,{...s,classNameAllocator:o}),p=je(te(u.code),Be(e,c.start));i=`${i.slice(0,c.start)}${p}${i.slice(c.end)}`,n.push({...u,origins:De(e,c.start,l,d.length,u.origins)})}return U(i,n)}async function He(e,t,s,o){let r=t.split("?",1).join(""),a=(0,Ue.parse)(e,{filename:r});if(a.errors.length>0)throw new Error(a.errors[0].message);let m=s.classNameAllocator??(0,Ve.createClassNameAllocator)(),n=[],i=[];for(let l of[a.descriptor.script,a.descriptor.scriptSetup]){if(!l?.content.includes(s.importSource??"@cssxio/cssx"))continue;let u=l.lang==="js"||l.lang==="jsx"||l.lang==="tsx"?l.lang:"ts",p=await o(l.content,`${r}.cssx-vue-script.${u}`,{...s,classNameAllocator:m});n.push({start:l.loc.start.offset,end:l.loc.end.offset,code:p.code}),i.push({...p,origins:ue(e,l.loc.start.offset,p.origins)})}let c=a.descriptor.template;if(c?.content.includes("sx")){let l=await Le(c.content,r,s,m,o);l&&(n.push({start:c.loc.start.offset,end:c.loc.end.offset,code:l.code}),i.push({...l,origins:ue(e,c.loc.start.offset,l.origins)}))}if(n.length===0)return null;let d=e;for(let l of n.sort((u,p)=>p.start-u.start))d=`${d.slice(0,l.start)}${l.code}${d.slice(l.end)}`;return U(d,i)}var We=require("@babel/core"),Je=Rt(require("@cssxio/babel-plugin"),1),oe=require("@cssxio/compiler");function Xe(e){return{className:`cssx-${z(e)}`,css:e}}function _e(e,t){return e&&t?`@layer ${t}{${e}}`:e}async function ze(e,t,s,o){let r=s.importSource??"@cssxio/cssx",a=await T(s),m=await(0,We.transformAsync)(e,{babelrc:!1,configFile:!1,filename:t,parserOpts:{plugins:["jsx","typescript"]},plugins:[[Je.default,{importSource:r,classNameAllocator:s.classNameAllocator,theme:a,reusabilityBudget:s.reusabilityBudget,stableClassNames:s.stableClassNames,stableClassNameFileName:s.stableClassNameFileName,darkMode:s.darkMode}]],sourceMaps:!0,...o?{inputSourceMap:o}:{}}),n=m.metadata,{candidates:i,origins:c,composites:d,atomicClasses:l,cssOnlySignature:u}=n.cssx,p=Object.keys(i),g=p.length===0?"":(await(0,oe.compileUtilities)(p,f=>i[f],a,(0,oe.createSelectorAliases)(d),new Set(l),{darkMode:s.darkMode})).css;return{code:m.code,rules:g?[Xe(_e(g,s.layer))]:[],candidates:i,composites:d,atomicClasses:l,origins:c,cssOnlySignature:u,map:m.map}}var jt=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".vue"]);async function b(e,t,s={},o){E(s);let r=s.importSource??"@cssxio/cssx",a=t.split("?",1).join("");return!jt.has(a.slice(a.lastIndexOf(".")))||!e.includes(r)?null:a.endsWith(".astro")?$e(e,t,s,b):a.endsWith(".vue")?He(e,t,s,b):ze(e,a,s,o)}function pe(e,t){if(!e||typeof e!="object")return;let s=e.getCombinedSourcemap;if(typeof s!="function")return;let o=s.call(e);if(!o||typeof o!="object")return;let r=o;if(!(r.version!==3||!Array.isArray(r.sources)||typeof r.mappings!="string"))return{version:r.version,sources:[...r.sources],names:[...r.names??[]],mappings:r.mappings,file:r.file??t.split("?",1).join(""),...r.sourceRoot?{sourceRoot:r.sourceRoot}:{},...r.sourcesContent?{sourcesContent:[...r.sourcesContent]}:{}}}async function M(e,t){let s=await Te(e,t.sourceRoots?.map(a=>(0,H.resolve)(e,a))),o={...t};delete o.coordination,delete o.manifestPath,delete o.classNameAllocator;let r=async a=>{let m=[];for(let n of s){let i=await(0,Ge.readFile)(n,"utf8"),c=/\.(?:md|mdx)$/i.test(n);if(c&&!i.includes(t.importSource??"@cssxio/cssx"))continue;let d=c?await Pe(i,e,t.mdx):i,l=t.stableClassNames||t.naming==="source",u=await b(d,c?`${n}.tsx`:n,{...o,classNameAllocator:a,stableClassNames:l,...l?{stableClassNameFileName:(0,H.relative)(e,n).replaceAll(H.sep,"/")}:{}});u&&m.push({id:n,candidates:u.candidates,composites:u.composites,atomicClasses:u.atomicClasses,origins:u.origins})}return m};return t.coordination==="manifest"?V(t.manifestPath,N(t),r):r(t.classNameAllocator??(0,qe.createClassNameAllocator)(N(t)))}function ne(e,t,s=Date.now()){e.ws.send({type:"update",updates:[{type:"css-update",path:t,acceptedPath:t,timestamp:s}]})}function Ke(e,t){let{cssFileName:s,sourceMap:o,options:r,rollupDataById:a,getTheme:m}=t,n=L(e.config.base,s),i=L("/",s);e.watcher?.on("unlink",c=>{a.delete(S(c)),ne(e,i)}),e.middlewares.use((c,d,l)=>{let u=c.url?.split("?",1)[0];if(u!==n&&(u!==`${n}.map`||!o))return l();m().then(async p=>{let g=r.coordination==="manifest"?await M(e.config.root??process.cwd(),r):[...a.values()];return w(g,p,r.layer,o,r.darkMode,r.preflight)}).then(p=>{if(u===`${n}.map`){d.setHeader("Content-Type","application/json; charset=utf-8"),d.setHeader("Cache-Control","no-store"),d.end(p.map?$(p.map,s):"");return}d.setHeader("Content-Type","text/css; charset=utf-8"),d.setHeader("Cache-Control","no-store"),d.end(P(p,s))}).catch(p=>{d.setHeader("Content-Type","text/plain; charset=utf-8"),d.end(p instanceof Error?p.message:"Unable to compile CSSX development stylesheet.")})})}var Qe=require("buffer"),X=require("fs/promises"),_=require("path");function Ye(e){let{options:t,cssFileName:s,sourceMap:o,dataById:r,getTheme:a}=e,m,n=process.cwd();return{config(i){i.metafile=!0},setup(i){n=i.initialOptions.absWorkingDir??process.cwd(),i.onEnd(async c=>{if(!c.metafile)return;let d=new Set(Object.keys(c.metafile.inputs).map(f=>(0,_.resolve)(n,f)));for(let f of r.keys())d.has(f)||r.delete(f);let l=t.coordination==="manifest"?await M(n,t):[...r.values()],u=await w(l,await a(),t.layer,o,t.darkMode,t.preflight),p=q(n,i.initialOptions,k(s,u.css));if(!u.css){m&&await(0,X.unlink)(m).catch(()=>{}),m=void 0;return}let g=P(u,(0,_.basename)(p));if(i.initialOptions.write===!1){let f=c.outputFiles;if(!f)return;let y={path:p,contents:Qe.Buffer.from(g),hash:"",text:g};if(f.findIndex(h=>h.path===p)!==-1)throw new Error(`CSSX CSS asset collision at "${p}".`);f.push(y);return}await(0,X.mkdir)((0,_.dirname)(p),{recursive:!0}),await(0,X.writeFile)(p,g),m=p})},getWorkingDirectory:()=>n}}function Ze(e,t,s){let o=new Set;for(let r of t)e.moduleGraph?.invalidateModule(r,o,s,!0);for(let r of o){if(!r.id)continue;let a=e.runner?.evaluatedModules?.getModuleById(r.id);a&&e.runner?.evaluatedModules?.invalidateModule(a)}}function et(e){return async function(s){let o=this.environment;if(!o||o.name==="client")return;let r=s.modules,a=r.filter(i=>{let c=e.get(S(i.id??""));return!!(c&&c.cssOnlySignature&&c.atomicClasses?.length===0)});if(a.length===0)return;let m=new Map(a.map(i=>[i,e.get(S(i.id)).cssOnlySignature]));for(let i of a)i.url&&await o.transformRequest(i.url);if(a.every(i=>{let c=e.get(S(i.id));return!!(c&&c.atomicClasses.length===0&&c.cssOnlySignature===m.get(i))}))return Ze(o,a,s.timestamp),r.filter(i=>!a.includes(i))}}var ae=require("fs/promises"),ie=require("path");function tt(e,t){let s=new Map,o=[];for(let r of t)r.id?s.set(r.id,r):o.push(r);for(let r of e)r.id?s.set(r.id,r):o.push(r);return[...s.values(),...o]}function st(e,t){let s=e.buildInfo?.[t];if(!s||typeof s!="object")return;let{id:o,candidates:r,composites:a,atomicClasses:m,origins:n}=s;return{id:typeof o=="string"?o:"",candidates:r&&typeof r=="object"?r:{},composites:a&&typeof a=="object"?a:{},...Array.isArray(m)?{atomicClasses:m}:{},origins:n&&typeof n=="object"?n:{}}}function rt(e,t,s){let o=s.naming??(s.stableClassNames?"source":s.className?.variant==="random"?"hash":s.className?.variant??"serial"),r=s.stableClassNames?"stableClassNames compatibility option selects source-addressed composites":s.naming?"explicit naming option":s.className?.variant?"className.variant option":"default serial naming",a=new Map,m=new Map;for(let c of[...e].sort((d,l)=>d.id.localeCompare(l.id))){let d=new Map;for(let[l,u]of Object.entries(c.candidates)){let p=m.get(l)??new Set;p.add(u),m.set(l,p);let g=a.get(u)??{module:c.id,utilities:new Set,line:c.origins?.[l]?.line??0,column:c.origins?.[l]?.column??0};g.utilities.add(l),a.set(u,g);let f=d.get(u)??[];f.push(l),d.set(u,f)}for(let[l,u]of Object.entries(c.composites??{})){let p=u.flatMap(y=>d.get(y)??[]),g=p[0],f=a.get(l)??{module:c.id,utilities:new Set,line:g?c.origins?.[g]?.line??0:0,column:g?c.origins?.[g]?.column??0:0};for(let y of p)f.utilities.add(y);a.set(l,f)}for(let l of c.atomicClasses??[])a.has(l)||a.set(l,{module:c.id,utilities:new Set,line:0,column:0})}let n=[...a].sort(([c],[d])=>c.localeCompare(d)).map(([c,d])=>({className:c,module:d.module,utilities:[...d.utilities].sort(),line:d.line+1,column:d.column+1,selectorFound:new RegExp(`\\.${Bt(c)}(?:[^A-Za-z0-9_-]|$)`).test(t)})),i=[...m].filter(([,c])=>c.size>1).map(([c])=>c).sort();return{version:1,naming:{mode:o,reason:r},coordination:{mode:s.coordination??"memory",...s.coordination==="manifest"&&s.manifestPath?{manifestPath:s.manifestPath}:{}},classes:n,serverClientMappings:{status:i.length>0?"mismatch":s.coordination==="manifest"?"manifest-shared":"consistent-in-process",conflicts:i}}}function Bt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ot(e,t,s,o,r,a,m,n,i=!0,c,d){let l=e.name??e.options?.name;l==="server"||l==="edge-server"||e.hooks.thisCompilation.tap("@cssxio/unplugin",u=>{u.hooks.processAssets.tapPromise({name:"@cssxio/unplugin",stage:e.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},async()=>{let p=c?await c():tt([...u.modules].map(y=>st(y,a)).filter(y=>y!==void 0),m?.values()??[]),g=await w(p,await s(),o,r,n,i);if(d?.debug){let y=rt(p,g.css,d);if(d.debug===!0)console.info(`CSSX: ${y.naming.mode} naming; ${y.classes.filter(x=>x.selectorFound).length}/${y.classes.length} generated classes have selectors; compiler mappings ${y.serverClientMappings.status}${y.serverClientMappings.conflicts.length?` (${y.serverClientMappings.conflicts.length} utility conflicts)`:""}.`);else{let x=(0,ie.resolve)(e.context,d.debug.reportFile);await(0,ae.mkdir)((0,ie.dirname)(x),{recursive:!0}),await(0,ae.writeFile)(x,`${JSON.stringify(y,null,2)}
14
+ `,"utf8")}}if(!g.css)return;let f=k(t,g.css);if(u.getAsset?.(f))throw new Error(`CSSX CSS asset collision at "${f}".`);if(u.emitAsset(f,new e.webpack.sources.RawSource(P(g,f))),g.map){let y=`${f}.map`;if(u.getAsset?.(y))throw new Error(`CSSX CSS map asset collision at "${y}".`);u.emitAsset(y,new e.webpack.sources.RawSource($(g.map,f)))}})})}var D="@cssxio/unplugin/rules";function le(){return{id:"",rules:[],candidates:{},composites:{},origins:{},cssOnlySignature:""}}var it=require("@cssxio/compiler");function nt(e,t){return`${e}\0${JSON.stringify(t)}`}var at=new Map;function ce(e,t){let s=nt(e,t),o=at.get(s);return o||(o={classNameAllocator:t.classNameAllocator??(0,it.createClassNameAllocator)(N(t)),transformedDataById:new Map},at.set(s,o)),o}function fe({compiler:e,options:t,cssFileName:s,sourceMap:o,getTheme:r}){let a=ce(e.context,t);ot(e,s,r,t.layer,o,D,a.transformedDataById,t.darkMode,t.preflight,t.stableClassNames||t.naming==="source"||t.coordination==="manifest"?()=>M(e.context,t):void 0,t)}function lt(e){if(!e||typeof e!="object")return le();let{id:t,rules:s,candidates:o,composites:r,atomicClasses:a,origins:m,cssOnlySignature:n}=e;return{id:typeof t=="string"?t:"",rules:Array.isArray(s)?s:[],candidates:o&&typeof o=="object"?o:{},composites:r&&typeof r=="object"?r:{},...Array.isArray(a)?{atomicClasses:a}:{},origins:m&&typeof m=="object"?m:{},cssOnlySignature:typeof n=="string"?n:""}}function ct(e){return!e||typeof e!="object"?le():lt(e[D])}function mt(e){return async function(t,s){let{framework:o,options:r,cssFileName:a,sourceMap:m,rollupDataById:n,getTheme:i}=e,c=new Set(Object.values(s).flatMap(p=>p.type==="chunk"?Object.keys(p.modules??{}):[]).map(S));if(o!=="vite")for(let p of n.keys())c.has(p)||n.delete(p);let d=r.coordination==="manifest"?await M(process.cwd(),r):o==="vite"?[...n.values()]:[...c].map(p=>{let g=ct(this.getModuleInfo(p)?.meta);return Object.keys(g.candidates).length>0?g:n.get(p)??g}),l=await w(d,await i(),r.layer,m,r.darkMode,r.preflight);if(!l.css)return;let u=k(a,l.css);if(Object.hasOwn(s,u))throw new Error(`CSSX CSS asset collision at "${u}".`);if(this.emitFile({type:"asset",fileName:u,source:P(l,u)}),l.map){let p=`${u}.map`;if(Object.hasOwn(s,p))throw new Error(`CSSX CSS map asset collision at "${p}".`);this.emitFile({type:"asset",fileName:p,source:$(l.map,u)})}}}var I=require("path");function dt(e){let t=e.getNativeBuildContext?.();return t&&(t.framework==="webpack"||t.framework==="rspack")?t.loaderContext?.rootContext??process.cwd():void 0}function ut(e){return`if (typeof document !== "undefined" && typeof module !== "undefined" && module.hot) {
10
15
  const key = "__cssxStylesheetHmr";
11
16
  const state = globalThis[key] || (globalThis[key] = { revision: 0, staged: [], replacements: [] });
12
17
  const stylesheetLink = [...document.querySelectorAll('link[rel="stylesheet"]')].find((link) =>
@@ -93,6 +98,6 @@ const style = `,c=`${u}${l.code};`,p=await o(c,`${s}.cssx-vue-template.ts`,{...t
93
98
  state.poll = setInterval(() => void refresh(), 500);
94
99
  }
95
100
  }
96
- }`}function qe(e,s,t){let r=e.getNativeBuildContext?.();if(!r||r.framework!=="webpack"&&r.framework!=="rspack")return;let o=r.loaderContext?._module;if(!o)return;let i=o.buildInfo??(o.buildInfo={});i[t]=s}function Ke(e){return async function(s,t){let{framework:r,options:o,classNameAllocator:i,rollupDataById:d,esbuildDataById:n,cssFileName:a,getEsbuildWorkingDirectory:l,notifyViteStyles:u}=e;o.themeFile&&this.addWatchFile?.((0,R.resolve)(o.themeFile));let c=Ge(this),p=c?G(c,o):void 0,m=await S(s,t,{...o,classNameAllocator:p?.classNameAllocator??i,...o.stableClassNames?{stableClassNameFileName:(0,R.relative)(c??process.cwd(),y(t)).replaceAll(R.sep,"/")}:{}},Le(this,t)),f={id:y(t),rules:m?.rules??[],candidates:m?.candidates??{},composites:m?.composites??{},atomicClasses:m?.atomicClasses??[],origins:m?.origins??{},cssOnlySignature:m?.cssOnlySignature??""};qe(this,f,N);let g=y(t);(m||g===t)&&(d.set(g,f),n.set((0,R.resolve)(l(),g),f),p?.transformedDataById.set(g,f)),r==="vite"&&u(I("/",a));let P=m?.code??s;return{code:(r==="webpack"||r==="rspack")&&m?`${P}
97
- ${Je(a)}`:P,meta:{[N]:f},...m?.map?{map:m.map}:{}}}}var Qe=require("buffer"),B=require("fs/promises"),$=require("path");function Ye(e){let{options:s,cssFileName:t,sourceMap:r,dataById:o,getTheme:i}=e,d,n=process.cwd();return{config(a){a.metafile=!0},setup(a){n=a.initialOptions.absWorkingDir??process.cwd(),a.onEnd(async l=>{if(!l.metafile)return;let u=new Set(Object.keys(l.metafile.inputs).map(f=>(0,$.resolve)(n,f)));for(let f of o.keys())u.has(f)||o.delete(f);let c=await C([...o.values()],await i(),s.layer,r,s.darkMode,s.preflight),p=H(n,a.initialOptions,M(t,c.css));if(!c.css){d&&await(0,B.unlink)(d).catch(()=>{}),d=void 0;return}let m=v(c,(0,$.basename)(p));if(a.initialOptions.write===!1){let f=l.outputFiles;if(!f)return;let g={path:p,contents:Qe.Buffer.from(m),hash:"",text:m};if(f.findIndex(h=>h.path===p)!==-1)throw new Error(`CSSX CSS asset collision at "${p}".`);f.push(g);return}await(0,B.mkdir)((0,$.dirname)(p),{recursive:!0}),await(0,B.writeFile)(p,m),d=p})},getWorkingDirectory:()=>n}}function Ze(e,s,t){let r=new Set;for(let o of s)e.moduleGraph?.invalidateModule(o,r,t,!0);for(let o of r){if(!o.id)continue;let i=e.runner?.evaluatedModules?.getModuleById(o.id);i&&e.runner?.evaluatedModules?.invalidateModule(i)}}function et(e){return async function(t){let r=this.environment;if(!r||r.name==="client")return;let o=t.modules,i=o.filter(a=>{let l=e.get(y(a.id??""));return!!(l&&l.cssOnlySignature&&l.atomicClasses?.length===0)});if(i.length===0)return;let d=new Map(i.map(a=>[a,e.get(y(a.id)).cssOnlySignature]));for(let a of i)a.url&&await r.transformRequest(a.url);if(i.every(a=>{let l=e.get(y(a.id));return!!(l&&l.atomicClasses.length===0&&l.cssOnlySignature===d.get(a))}))return Ze(r,i,t.timestamp),o.filter(a=>!i.includes(a))}}var nt=require("@cssxio/compiler"),ne=require("buffer"),b=require("fs/promises"),A=require("path");var tt=require("fs/promises"),st=require("path");async function re(e){return(0,tt.realpath)(e).catch(()=>(0,st.resolve)(e))}async function ot(e,s){let t=await w(s);return C(e.map(([,r])=>r),t,s.layer,s.sourceMap??!0,s.darkMode,s.preflight)}function rt(e){return/\.tsx?$/.test(e)?"ts":"js"}var Mt=/\.[cm]?[jt]sx?$/;function ie(e={}){let s=new Map,t=(0,nt.createClassNameAllocator)(),r,o;return{name:"@cssxio/unplugin",setup(i){let d=i.initialOptions.absWorkingDir??process.cwd();i.initialOptions.metafile=!0,i.onLoad({filter:Mt},async({path:n})=>{let a=await(0,b.readFile)(n,"utf8"),l=await S(a,n,{...e,classNameAllocator:t});if(!l)return;let u=await re(n);return s.set(u,{id:u,candidates:l.candidates,composites:l.composites,atomicClasses:l.atomicClasses,origins:l.origins}),{contents:l.code,loader:rt(n)}}),i.onEnd(async n=>{if(!n.metafile)return;let a=new Set(await Promise.all(Object.keys(n.metafile.inputs).map(f=>re((0,A.resolve)(d,f)))));for(let f of s.keys())a.has(f)||s.delete(f);let l=await ot([...s],e),u=H(d,i.initialOptions,M(e.cssFileName??"cssx.css",l.css));if(!l.css){r&&await(0,b.unlink)(r).catch(()=>{}),o&&await(0,b.unlink)(o).catch(()=>{}),r=void 0,o=void 0;return}let c=l.map?`${l.css}
98
- /*# sourceMappingURL=${(0,A.basename)(u)}.map */`:l.css,p=`${u}.map`,m=l.map?JSON.stringify({...l.map,file:(0,A.basename)(u)}):void 0;if(i.initialOptions.write===!1){if(!n.outputFiles)return;if(n.outputFiles.some(f=>f.path===u))throw new Error(`CSSX CSS asset collision at "${u}".`);n.outputFiles.push({path:u,contents:ne.Buffer.from(c),hash:"",text:c}),m&&n.outputFiles.push({path:p,contents:ne.Buffer.from(m),hash:"",text:m});return}await(0,b.mkdir)((0,A.dirname)(u),{recursive:!0}),await(0,b.writeFile)(u,c),m&&await(0,b.writeFile)(p,m),r=u,o=m?p:void 0})}}}var vt=/\.(?:[cm]?[jt]sx?|astro|vue)(?:\?.*)?$/,lt=(e={},s)=>{V(e);let t=e.cssFileName??"cssx.css",r=e.sourceMap??!0,o=new Map,i=(0,it.createClassNameAllocator)(),d=new Map,n,a=()=>w(e),l=Ye({options:e,cssFileName:t,sourceMap:r,dataById:d,getTheme:a}),u=ze({framework:s.framework,options:e,cssFileName:t,sourceMap:r,rollupDataById:o,getTheme:a});return{name:"@cssxio/unplugin",enforce:"pre",transform:{filter:{id:vt},handler:Ke({framework:s.framework,options:e,classNameAllocator:i,rollupDataById:o,esbuildDataById:d,cssFileName:t,getEsbuildWorkingDirectory:l.getWorkingDirectory,notifyViteStyles:c=>{n&&ee(n,c)}})},watchChange(c,p){p.event==="delete"&&o.delete(y(c))},rollup:{generateBundle:u},vite:{generateBundle:u,configureServer(c){n=c,_e(c,{cssFileName:t,sourceMap:r,options:e,rollupDataById:o,getTheme:a})},hotUpdate:{order:"pre",handler:et(o)}},...s.framework==="webpack"?{webpack(c){oe({compiler:c,options:e,cssFileName:t,sourceMap:r,getTheme:a})}}:{},...s.framework==="rspack"?{rspack(c){oe({compiler:c,options:e,cssFileName:t,sourceMap:r,getTheme:a})}}:{},...s.framework==="esbuild"?{esbuild:{config:l.config,setup:l.setup}}:{}}},j=(0,at.createUnplugin)(lt),wt=j.vite,Ot=j.rollup,kt=j.webpack,Nt=j.rspack,ct=j;0&&(module.exports={compileCssxStylesheet,esbuild,rollup,rspack,transformCssxModule,unplugin,unpluginFactory,vite,webpack});
101
+ }`}function pt(e,t,s){let o=e.getNativeBuildContext?.();if(!o||o.framework!=="webpack"&&o.framework!=="rspack")return;let r=o.loaderContext?._module;if(!r)return;let a=r.buildInfo??(r.buildInfo={});a[s]=t}function ft(e){return async function(t,s){let{framework:o,options:r,classNameAllocator:a,rollupDataById:m,esbuildDataById:n,cssFileName:i,getEsbuildWorkingDirectory:c,notifyViteStyles:d}=e;r.themeFile&&this.addWatchFile?.((0,I.resolve)(r.themeFile));let l=dt(this),u=l?ce(l,r):void 0,p={...r,className:{...r.className,...r.naming==="hash"?{variant:"random"}:{},...r.naming==="serial"?{variant:"serial"}:{}},stableClassNames:r.stableClassNames||r.naming==="source",classNameAllocator:u?.classNameAllocator??a,...r.stableClassNames||r.naming==="source"?{stableClassNameFileName:(0,I.relative)(l??process.cwd(),S(s)).replaceAll(I.sep,"/")}:{}},g={...p};delete g.coordination,delete g.manifestPath;let f=r.coordination==="manifest"?await V(r.manifestPath,g.className,A=>b(t,s,{...g,classNameAllocator:A},pe(this,s))):await b(t,s,p,pe(this,s)),y={id:S(s),rules:f?.rules??[],candidates:f?.candidates??{},composites:f?.composites??{},atomicClasses:f?.atomicClasses??[],origins:f?.origins??{},cssOnlySignature:f?.cssOnlySignature??""};pt(this,y,D);let x=S(s);(f||x===s)&&(m.set(x,y),n.set((0,I.resolve)(c(),x),y),u?.transformedDataById.set(x,y)),o==="vite"&&d(L("/",i));let h=f?.code??t;return{code:(o==="webpack"||o==="rspack")&&f?`${h}
102
+ ${ut(i)}`:h,meta:{[D]:y},...f?.map?{map:f.map}:{}}}}var ht=require("@cssxio/compiler"),ye=require("buffer"),O=require("fs/promises"),v=require("path");var gt=require("fs/promises"),yt=require("path");async function ge(e){return(0,gt.realpath)(e).catch(()=>(0,yt.resolve)(e))}async function xt(e,t){let s=await T(t);return w(e.map(([,o])=>o),s,t.layer,t.sourceMap??!0,t.darkMode,t.preflight)}function Ct(e){return/\.tsx?$/.test(e)?"ts":"js"}var Lt=/\.[cm]?[jt]sx?$/;function xe(e={}){if(E(e),e.classNameAllocator&&e.className)throw new Error("CSSX classNameAllocator owns naming. Omit className when supplying a custom allocator.");let t=new Map,s=e.classNameAllocator??(0,ht.createClassNameAllocator)(N(e)),o,r;return{name:"@cssxio/unplugin",setup(a){let m=a.initialOptions.absWorkingDir??process.cwd();a.initialOptions.metafile=!0,a.onLoad({filter:Lt},async({path:n})=>{let i=await(0,O.readFile)(n,"utf8"),c=e.stableClassNames||e.naming==="source",d={...e,className:N(e),stableClassNames:c,...c?{stableClassNameFileName:(0,v.relative)(m,n).replaceAll(v.sep,"/")}:{},classNameAllocator:s},l={...d};delete l.coordination,delete l.manifestPath;let u=e.coordination==="manifest"?await V(e.manifestPath,l.className,g=>b(i,n,{...l,classNameAllocator:g})):await b(i,n,d);if(!u)return;let p=await ge(n);return t.set(p,{id:p,candidates:u.candidates,composites:u.composites,atomicClasses:u.atomicClasses,origins:u.origins}),{contents:u.code,loader:Ct(n)}}),a.onEnd(async n=>{if(!n.metafile)return;let i=new Set(await Promise.all(Object.keys(n.metafile.inputs).map(f=>ge((0,v.resolve)(m,f)))));for(let f of t.keys())i.has(f)||t.delete(f);let c=e.coordination==="manifest"?(await M(m,e)).map(f=>[f.id,f]):[...t],d=await xt(c,e),l=q(m,a.initialOptions,k(e.cssFileName??"cssx.css",d.css));if(!d.css){o&&await(0,O.unlink)(o).catch(()=>{}),r&&await(0,O.unlink)(r).catch(()=>{}),o=void 0,r=void 0;return}let u=d.map?`${d.css}
103
+ /*# sourceMappingURL=${(0,v.basename)(l)}.map */`:d.css,p=`${l}.map`,g=d.map?JSON.stringify({...d.map,file:(0,v.basename)(l)}):void 0;if(a.initialOptions.write===!1){if(!n.outputFiles)return;if(n.outputFiles.some(f=>f.path===l))throw new Error(`CSSX CSS asset collision at "${l}".`);n.outputFiles.push({path:l,contents:ye.Buffer.from(u),hash:"",text:u}),g&&n.outputFiles.push({path:p,contents:ye.Buffer.from(g),hash:"",text:g});return}await(0,O.mkdir)((0,v.dirname)(l),{recursive:!0}),await(0,O.writeFile)(l,u),g&&await(0,O.writeFile)(p,g),o=l,r=g?p:void 0})}}}var Vt=/\.(?:[cm]?[jt]sx?|astro|vue|md|mdx)(?:\?.*)?$/,bt=(e={},t)=>{if(E(e),e.classNameAllocator&&e.className)throw new Error("CSSX classNameAllocator owns naming. Omit className when supplying a custom allocator.");let s=e.cssFileName??"cssx.css",o=e.sourceMap??!0,r=new Map,a=e.classNameAllocator??(0,St.createClassNameAllocator)(N(e)),m=new Map,n,i=()=>T(e),c=Ye({options:e,cssFileName:s,sourceMap:o,dataById:m,getTheme:i}),d=mt({framework:t.framework,options:e,cssFileName:s,sourceMap:o,rollupDataById:r,getTheme:i});return{name:"@cssxio/unplugin",enforce:"pre",transform:{filter:{id:Vt},handler:ft({framework:t.framework,options:e,classNameAllocator:a,rollupDataById:r,esbuildDataById:m,cssFileName:s,getEsbuildWorkingDirectory:c.getWorkingDirectory,notifyViteStyles:l=>{n&&ne(n,l)}})},watchChange(l,u){u.event==="delete"&&r.delete(S(l))},rollup:{generateBundle:d},vite:{generateBundle:d,configureServer(l){n=l,Ke(l,{cssFileName:s,sourceMap:o,options:e,rollupDataById:r,getTheme:i})},hotUpdate:{order:"pre",handler:et(r)}},...t.framework==="webpack"?{webpack(l){fe({compiler:l,options:e,cssFileName:s,sourceMap:o,getTheme:i})}}:{},...t.framework==="rspack"?{rspack(l){fe({compiler:l,options:e,cssFileName:s,sourceMap:o,getTheme:i})}}:{},...t.framework==="esbuild"?{esbuild:{config:c.config,setup:c.setup}}:{}}},W=(0,wt.createUnplugin)(bt),Ut=W.vite,Ht=W.rollup,Xt=W.webpack,_t=W.rspack,vt=W;0&&(module.exports={compileCssxStylesheet,esbuild,rollup,rspack,transformCssxModule,unplugin,unpluginFactory,vite,webpack});
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as _webpack from 'webpack';
2
- import * as _rollup from 'rollup';
3
2
  import * as _unplugin from 'unplugin';
4
3
  import { UnpluginFactory } from 'unplugin';
5
- import { C as CssxPluginOptions } from './options-ByIyWTN0.cjs';
4
+ import { C as CssxPluginOptions } from './options-DkqShf7w.cjs';
6
5
  export { default as esbuild } from './esbuild.cjs';
6
+ import { I as IncomingSourceMap } from './source-map-from-context-B4SX_KAW.cjs';
7
7
  import { transformAsync } from '@babel/core';
8
8
  import { DarkMode, CssxRule, ClassNameAllocator } from '@cssxio/compiler';
9
9
  import 'esbuild';
@@ -60,24 +60,6 @@ interface CssxStylesheet {
60
60
  */
61
61
  declare function compileCssxStylesheet(data: readonly CssxSourceModule[], theme?: string, layer?: string, sourceMap?: boolean, darkMode?: DarkMode, preflight?: boolean): Promise<CssxStylesheet>;
62
62
 
63
- /** A source map accepted from a build tool. */
64
- interface IncomingSourceMap {
65
- /** Source map format version. CSSX accepts version 3. */
66
- readonly version: number;
67
- /** Source file names referenced by the map. */
68
- readonly sources: string[];
69
- /** Original identifier names referenced by the map. */
70
- readonly names: string[];
71
- /** Optional prefix for source file names. */
72
- readonly sourceRoot?: string;
73
- /** Optional source file contents. */
74
- readonly sourcesContent?: string[];
75
- /** Encoded source map segments. */
76
- readonly mappings: string;
77
- /** Name of the generated file. */
78
- readonly file: string;
79
- }
80
-
81
63
  /** The result of transforming one source module. */
82
64
  interface TransformResult {
83
65
  /** JavaScript source after the CSSX transform. */
@@ -135,7 +117,7 @@ declare const vite: (options?: CssxPluginOptions | undefined) => _unplugin.ViteP
135
117
  * @param options CSSX adapter options.
136
118
  * @returns The Rollup plugin.
137
119
  */
138
- declare const rollup: (options?: CssxPluginOptions | undefined) => _rollup.Plugin<any> | _rollup.Plugin<any>[];
120
+ declare const rollup: (options?: CssxPluginOptions | undefined) => _unplugin.RollupPlugin<any> | _unplugin.RollupPlugin<any>[];
139
121
  /**
140
122
  * Callable factory that creates the CSSX adapter for webpack.
141
123
  *
@@ -151,4 +133,4 @@ declare const webpack: (options?: CssxPluginOptions | undefined) => _webpack.Web
151
133
  */
152
134
  declare const rspack: (options?: CssxPluginOptions | undefined) => _unplugin.RspackPluginInstance;
153
135
 
154
- export { type CssxCandidateOrigin, CssxPluginOptions, type CssxSourceMap, type CssxSourceModule, type CssxStylesheet, type IncomingSourceMap, type TransformResult, compileCssxStylesheet, unplugin as default, rollup, rspack, transformCssxModule, unplugin, unpluginFactory, vite, webpack };
136
+ export { type CssxCandidateOrigin, CssxPluginOptions, type CssxSourceMap, type CssxSourceModule, type CssxStylesheet, IncomingSourceMap, type TransformResult, compileCssxStylesheet, unplugin as default, rollup, rspack, transformCssxModule, unplugin, unpluginFactory, vite, webpack };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as _webpack from 'webpack';
2
- import * as _rollup from 'rollup';
3
2
  import * as _unplugin from 'unplugin';
4
3
  import { UnpluginFactory } from 'unplugin';
5
- import { C as CssxPluginOptions } from './options-ByIyWTN0.js';
4
+ import { C as CssxPluginOptions } from './options-DkqShf7w.js';
6
5
  export { default as esbuild } from './esbuild.js';
6
+ import { I as IncomingSourceMap } from './source-map-from-context-B4SX_KAW.js';
7
7
  import { transformAsync } from '@babel/core';
8
8
  import { DarkMode, CssxRule, ClassNameAllocator } from '@cssxio/compiler';
9
9
  import 'esbuild';
@@ -60,24 +60,6 @@ interface CssxStylesheet {
60
60
  */
61
61
  declare function compileCssxStylesheet(data: readonly CssxSourceModule[], theme?: string, layer?: string, sourceMap?: boolean, darkMode?: DarkMode, preflight?: boolean): Promise<CssxStylesheet>;
62
62
 
63
- /** A source map accepted from a build tool. */
64
- interface IncomingSourceMap {
65
- /** Source map format version. CSSX accepts version 3. */
66
- readonly version: number;
67
- /** Source file names referenced by the map. */
68
- readonly sources: string[];
69
- /** Original identifier names referenced by the map. */
70
- readonly names: string[];
71
- /** Optional prefix for source file names. */
72
- readonly sourceRoot?: string;
73
- /** Optional source file contents. */
74
- readonly sourcesContent?: string[];
75
- /** Encoded source map segments. */
76
- readonly mappings: string;
77
- /** Name of the generated file. */
78
- readonly file: string;
79
- }
80
-
81
63
  /** The result of transforming one source module. */
82
64
  interface TransformResult {
83
65
  /** JavaScript source after the CSSX transform. */
@@ -135,7 +117,7 @@ declare const vite: (options?: CssxPluginOptions | undefined) => _unplugin.ViteP
135
117
  * @param options CSSX adapter options.
136
118
  * @returns The Rollup plugin.
137
119
  */
138
- declare const rollup: (options?: CssxPluginOptions | undefined) => _rollup.Plugin<any> | _rollup.Plugin<any>[];
120
+ declare const rollup: (options?: CssxPluginOptions | undefined) => _unplugin.RollupPlugin<any> | _unplugin.RollupPlugin<any>[];
139
121
  /**
140
122
  * Callable factory that creates the CSSX adapter for webpack.
141
123
  *
@@ -151,4 +133,4 @@ declare const webpack: (options?: CssxPluginOptions | undefined) => _webpack.Web
151
133
  */
152
134
  declare const rspack: (options?: CssxPluginOptions | undefined) => _unplugin.RspackPluginInstance;
153
135
 
154
- export { type CssxCandidateOrigin, CssxPluginOptions, type CssxSourceMap, type CssxSourceModule, type CssxStylesheet, type IncomingSourceMap, type TransformResult, compileCssxStylesheet, unplugin as default, rollup, rspack, transformCssxModule, unplugin, unpluginFactory, vite, webpack };
136
+ export { type CssxCandidateOrigin, CssxPluginOptions, type CssxSourceMap, type CssxSourceModule, type CssxStylesheet, IncomingSourceMap, type TransformResult, compileCssxStylesheet, unplugin as default, rollup, rspack, transformCssxModule, unplugin, unpluginFactory, vite, webpack };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j}from"./chunk-SKXNEQ2Z.js";export{a as compileCssxStylesheet,i as default,j as esbuild,f as rollup,h as rspack,b as transformCssxModule,d as unplugin,c as unpluginFactory,e as vite,g as webpack};
1
+ import{a as c,b as d,c as e,d as f,e as g,f as h,g as i,h as j}from"./chunk-KEHM5MVZ.js";import{g as a,m as b}from"./chunk-5R7RC6XB.js";import"./chunk-OHZUHF4D.js";export{a as compileCssxStylesheet,i as default,j as esbuild,f as rollup,h as rspack,b as transformCssxModule,d as unplugin,c as unpluginFactory,e as vite,g as webpack};
@@ -0,0 +1,16 @@
1
+ "use strict";var Fe=Object.create;var T=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var ke=Object.getOwnPropertyNames;var Ie=Object.getPrototypeOf,Le=Object.prototype.hasOwnProperty;var Xe=(e,s)=>{for(var t in s)T(e,t,{get:s[t],enumerable:!0})},Z=(e,s,t,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of ke(s))!Le.call(e,o)&&o!==t&&T(e,o,{get:()=>s[o],enumerable:!(r=je(s,o))||r.enumerable});return e};var De=(e,s,t)=>(t=e!=null?Fe(Ie(e)):{},Z(s||!e||!e.__esModule?T(t,"default",{value:e,enumerable:!0}):t,e)),Je=e=>Z(T({},"__esModule",{value:!0}),e);var He={};Xe(He,{default:()=>H});module.exports=Je(He);var N=require("fs/promises"),x=require("path");function K(e,s,t){let r=t.naming??(t.stableClassNames?"source":t.className?.variant==="random"?"hash":t.className?.variant??"serial"),o=t.stableClassNames?"stableClassNames compatibility option selects source-addressed composites":t.naming?"explicit naming option":t.className?.variant?"className.variant option":"default serial naming",n=new Map,m=new Map;for(let a of[...e].sort((d,c)=>d.id.localeCompare(c.id))){let d=new Map;for(let[c,u]of Object.entries(a.candidates)){let f=m.get(c)??new Set;f.add(u),m.set(c,f);let h=n.get(u)??{module:a.id,utilities:new Set,line:a.origins?.[c]?.line??0,column:a.origins?.[c]?.column??0};h.utilities.add(c),n.set(u,h);let g=d.get(u)??[];g.push(c),d.set(u,g)}for(let[c,u]of Object.entries(a.composites??{})){let f=u.flatMap(S=>d.get(S)??[]),h=f[0],g=n.get(c)??{module:a.id,utilities:new Set,line:h?a.origins?.[h]?.line??0:0,column:h?a.origins?.[h]?.column??0:0};for(let S of f)g.utilities.add(S);n.set(c,g)}for(let c of a.atomicClasses??[])n.has(c)||n.set(c,{module:a.id,utilities:new Set,line:0,column:0})}let i=[...n].sort(([a],[d])=>a.localeCompare(d)).map(([a,d])=>({className:a,module:d.module,utilities:[...d.utilities].sort(),line:d.line+1,column:d.column+1,selectorFound:new RegExp(`\\.${Ve(a)}(?:[^A-Za-z0-9_-]|$)`).test(s)})),l=[...m].filter(([,a])=>a.size>1).map(([a])=>a).sort();return{version:1,naming:{mode:r,reason:o},coordination:{mode:t.coordination??"memory",...t.coordination==="manifest"&&t.manifestPath?{manifestPath:t.manifestPath}:{}},classes:i,serverClientMappings:{status:l.length>0?"mismatch":t.coordination==="manifest"?"manifest-shared":"consistent-in-process",conflicts:l}}}function Ve(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var P=require("path");function Y(e){if(!e||(0,P.isAbsolute)(e))throw new Error("cssFileName must be a non-empty relative path.");let s=(0,P.normalize)(e);if(s===".."||s.startsWith(`..${P.sep}`))throw new Error("cssFileName must not escape the bundler output directory.");if(!s.endsWith(".css"))throw new Error("cssFileName must end in .css.");return s}function z(e){if(e.sourceRoots&&e.sourceRoots.some(t=>typeof t!="string"||!t.trim()))throw new Error("CSSX sourceRoots must contain non-empty file-system paths.");let s=e.debug;if(s===null||s!==void 0&&typeof s!="boolean"&&(typeof s!="object"||typeof s.reportFile!="string"||!s.reportFile))throw new Error("CSSX debug must be a boolean or an object with a reportFile path.");if(e.naming!==void 0&&!["serial","hash","source"].includes(e.naming))throw new Error('CSSX naming must be "serial", "hash", or "source".');if(e.coordination!==void 0&&!["memory","manifest"].includes(e.coordination))throw new Error('CSSX coordination must be "memory" or "manifest".');if(e.stableClassNames&&e.naming&&e.naming!=="source")throw new Error('CSSX stableClassNames selects source naming and conflicts with naming. Use naming: "source".');if(e.stableClassNames&&e.coordination==="manifest")throw new Error("CSSX stableClassNames already selects source naming; remove it to use manifest coordination.");if(e.naming==="hash"&&e.className?.variant==="serial")throw new Error('CSSX naming: "hash" conflicts with className.variant: "serial".');if(e.naming==="serial"&&e.className?.variant==="random")throw new Error('CSSX naming: "serial" conflicts with className.variant: "random".');if(e.coordination==="manifest"&&!e.manifestPath)throw new Error('CSSX coordination: "manifest" requires manifestPath.');if(e.manifestPath&&e.coordination!=="manifest")throw new Error('CSSX manifestPath requires coordination: "manifest".');if(e.coordination==="manifest"&&e.classNameAllocator)throw new Error("CSSX manifest coordination cannot use a custom classNameAllocator.");if(e.theme!==void 0&&e.themeFile!==void 0)throw new Error("CSSX accepts either theme or themeFile, not both.");if(e.layer!==void 0&&!/^[A-Za-z_-][A-Za-z0-9_-]*$/.test(e.layer))throw new Error("CSSX layer must be a valid CSS layer identifier.");if(e.sourceMap!==void 0&&typeof e.sourceMap!="boolean")throw new Error("CSSX sourceMap must be a boolean.");if(e.darkMode!==void 0&&e.darkMode!=="media"&&e.darkMode!=="selector"&&e.darkMode!=="class")throw new Error('CSSX darkMode must be "media", "selector", or "class".');if(e.preflight!==void 0&&typeof e.preflight!="boolean")throw new Error("CSSX preflight must be a boolean.");if(e.reusabilityBudget!==void 0&&e.reusabilityBudget!=="auto"&&(!Number.isFinite(e.reusabilityBudget)||e.reusabilityBudget<0||e.reusabilityBudget>100))throw new Error('CSSX reusabilityBudget must be "auto" or a number from 0 through 100.');Y(e.cssFileName??"cssx.css")}var ee=require("fs/promises"),te=require("path");async function _(e){return e.themeFile===void 0?e.theme:(0,ee.readFile)((0,te.resolve)(process.cwd(),e.themeFile),"utf8")}function q(e){let s=2166136261;for(let t=0;t<e.length;t++)s^=e.charCodeAt(t),s=Math.imul(s,16777619);return(s>>>0).toString(36)}function E(e){let s=e.naming==="hash"?"random":e.naming==="serial"?"serial":void 0;if(s&&e.className?.variant&&e.className.variant!==s)throw new Error(`CSSX naming: "${e.naming}" conflicts with className.variant: "${e.className.variant}".`);return{...e.className,...s?{variant:s}:{}}}var O=require("@cssxio/compiler"),y=require("fs/promises"),$=require("path"),se=20,re=5*6e4;async function F(e,s,t){let r=(0,$.resolve)(e),o=`${r}.lock`,n=Date.now(),m,i=0;for(;!m;){await(0,y.mkdir)((0,$.dirname)(r),{recursive:!0});let l;try{l=await(0,y.open)(o,"wx")}catch(a){let d=a.code;if(d!=="EEXIST"){if(d!=="EACCES"&&d!=="EPERM")throw a;try{await(0,y.stat)(o)}catch(c){if(c.code==="ENOENT"){if(i+=1,i>1)throw a;await new Promise(u=>setTimeout(u,se));continue}throw c}}if(i=0,await Be(o))continue;if(Date.now()-n>=re)throw new Error(`Timed out waiting for CSSX class-name manifest lock: ${o}`);await new Promise(c=>setTimeout(c,se));continue}try{await l.writeFile(`${process.pid}
2
+ ${Date.now()}
3
+ `)}catch(a){throw await l.close().catch(()=>{}),await(0,y.rm)(o,{force:!0}).catch(()=>{}),a}m=l}try{let l=await ze(r,s),a=await t(l),d=(0,O.snapshotClassNameAllocator)(l),c=`${r}.${process.pid}.${Date.now()}.tmp`;try{await(0,y.writeFile)(c,`${JSON.stringify(d,null,2)}
4
+ `,"utf8"),await(0,y.rename)(c,r)}catch(u){throw await(0,y.rm)(c,{force:!0}).catch(()=>{}),u}return a}finally{await m.close(),await(0,y.rm)(o,{force:!0})}}async function Be(e){try{let s=await(0,y.stat)(e),t;try{t=await(0,y.readFile)(e,"utf8")}catch(n){let m=n.code;if(m==="EACCES"||m==="EPERM")return!1;throw n}let[r]=t.split(`
5
+ `),o=Number(r);if(Number.isSafeInteger(o)&&o>0)try{return process.kill(o,0),!1}catch(n){return n.code!=="ESRCH"?!1:(await(0,y.rm)(e,{force:!0}),!0)}return Date.now()-s.mtimeMs<re?!1:(await(0,y.rm)(e,{force:!0}),!0)}catch(s){if(s.code==="ENOENT")return!1;throw s}}async function ze(e,s){try{let t=JSON.parse(await(0,y.readFile)(e,"utf8")),r=(0,O.snapshotClassNameAllocator)((0,O.createClassNameAllocator)(s)).options;if(JSON.stringify(t.options)!==JSON.stringify(r))throw new Error("CSSX class-name manifest options do not match the active compiler options.");return(0,O.restoreClassNameAllocator)(t)}catch(t){if(t.code==="ENOENT")return(0,O.createClassNameAllocator)(s);throw t}}function oe(e,s){return JSON.stringify({...e,file:s})}var ne=require("path");function ie(e,s){return e.map?`${e.css}
6
+ /*# sourceMappingURL=${(0,ne.basename)(s)}.map */`:e.css}var j=require("@cssxio/compiler");var ae='*,::before,::after,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}button,select{text-transform:none}button,input:where([type="button"],[type="reset"],[type="submit"]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit}textarea{resize:vertical}::placeholder{opacity:1}button,[role="button"]{cursor:pointer}:disabled{cursor:default}[hidden]:where(:not([hidden="until-found"])){display:none!important}';function U(e,s){let t=s.split(`
7
+ `);return{line:e.line+t.length-1,column:t.at(-1).length+e.column*+(t.length===1)}}var _e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function A(e){let s="",t=e<0?-e<<1|1:e<<1;do{let r=t&31;t>>>=5,t&&(r|=32),s+=_e[r]}while(t);return s}function le(e){let s=Array.from({length:Math.max(0,...e.map(i=>i.line))+1},()=>[]),t=0,r=0,o=0,n=0,m=0;for(let i of e)m*=+(i.line===n),n=i.line,s[i.line]?.push(`${A(i.column-m)}${A(i.source-t)}${A(i.originalLine-r)}${A(i.originalColumn-o)}`),m=i.column,t=i.source,r=i.originalLine,o=i.originalColumn;return s.map(i=>i.join(",")).join(";")}function ce(e,s,t){let r=[...new Set(s.map(i=>t.get(i.candidate)?.id).filter(i=>!!i))].sort();if(r.length===0)return;let o=new Map(r.map((i,l)=>[i,l])),n=[],m=U({line:0,column:0},e);for(let i of s){let l=t.get(i.candidate);l&&n.push({...m,source:o.get(l.id),originalLine:l.line,originalColumn:l.column}),m=U(m,i.css)}return{version:3,sources:r,names:[],mappings:le(n)}}async function me(e,s,t,r=!0,o,n=!0){let m=Object.create(null),i=Object.create(null),l=new Set,a=!0,d=new Map;for(let p of[...e].sort((C,b)=>C.id.localeCompare(b.id))){for(let[C,b]of Object.entries(p.candidates))if(C in m||(m[C]=b),p.id&&!d.has(C)){let w=p.origins?.[C];d.set(C,{id:p.id,line:w?.line??0,column:w?.column??0})}for(let[C,b]of Object.entries(p.composites??{})){let w=i[C];if(w&&w.join(" ")!==b.join(" "))throw new Error(`CSSX composite class collision for "${C}".`);i[C]=b}p.atomicClasses===void 0&&(a=!1);for(let C of p.atomicClasses??[])l.add(C)}let c=Object.keys(m).sort(),u=n?ae:"";if(c.length===0)return{css:u&&t?`@layer ${t}{${u}}`:u};let f=await(0,j.compileUtilities)(c,p=>m[p],s,(0,j.createSelectorAliases)(i),a?l:void 0,{darkMode:o}),h=t?`@layer ${t}{`:"",g=`${h}${u}${f.css}${h?"}":""}`,S=r?ce(`${h}${u}${f.prefixCss}`,f.entries,d):void 0;return{css:g,...S?{map:S}:{}}}var de=require("fs/promises"),k=require("path"),qe=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".mdx",".md"]),Ue=new Set([".git",".next",".turbo","node_modules"]);async function I(e,s=[]){let t=[],r=[e,...s],o=new Set;for(;r.length>0;){let n=r.pop(),m=(0,k.resolve)(n);if(!o.has(m)){o.add(m);for(let i of await(0,de.readdir)(n,{withFileTypes:!0})){let l=(0,k.join)(n,i.name);if(i.isDirectory()){Ue.has(i.name)||r.push(l);continue}i.isFile()&&qe.has(l.slice(l.lastIndexOf(".")))&&t.push(l)}}}return t.sort()}var Ee=require("@cssxio/compiler"),Ae=require("fs/promises"),R=require("path");var ue=require("module"),fe=require("path"),W=require("url");async function L(e,s,t={}){let r=(0,ue.createRequire)((0,fe.resolve)(s,"package.json")),o;try{o=r.resolve("@mdx-js/mdx")}catch{throw new Error("CSSX Next MDX support requires @mdx-js/mdx to be installed in the Next.js project.")}let n=await import((0,W.pathToFileURL)(o).href),m=async i=>Promise.all((i??[]).map(async l=>{let[a,d]=typeof l=="string"?[l,void 0]:l,c=r.resolve(a),u=await import((0,W.pathToFileURL)(c).href),f=u.default??u;return d===void 0?f:[f,d]}));return String(await n.compile(e,{outputFormat:"program",development:t.development??!1,remarkPlugins:await m(t.remarkPlugins),rehypePlugins:await m(t.rehypePlugins),recmaPlugins:await m(t.recmaPlugins)}))}var pe=require("@cssxio/compiler");function X(e){let s=[],t=/\bsx\s*\(/g;for(let r of e.matchAll(t)){let o=r.index,n=e.indexOf("(",o),m=0,i="";for(let l=n;l<e.length;l+=1){let a=e[l];if(i){a==="\\"?l+=1:a===i&&(i="");continue}if(a==='"'||a==="'"||a==="`")i=a;else if(a==="(")m+=1;else if(a===")"&&--m===0){s.push({start:o,end:l+1,code:e.slice(o,l+1)}),t.lastIndex=l+1;break}}}return s}function v(e,s){return{code:e,rules:s.flatMap(t=>t.rules),candidates:Object.assign({},...s.map(t=>t.candidates)),composites:Object.assign({},...s.map(t=>t.composites)),atomicClasses:[...new Set(s.flatMap(t=>t.atomicClasses))],origins:Object.assign({},...s.map(t=>t.origins)),cssOnlySignature:e}}function D(e){let s="const style = ",t=e.indexOf(s)+s.length,r=e.indexOf(";",t);return e.slice(t,r)}async function ge(e,s,t,r){let o=X(e);if(o.length===0)return null;let n=t.classNameAllocator??(0,pe.createClassNameAllocator)(),m=t.importSource??"@cssxio/cssx",i=[],l=e;for(let a of[...o].reverse()){let d=await r(`import { sx } from ${JSON.stringify(m)};
8
+ const style = ${a.code};`,`${s}.ts`,{...t,classNameAllocator:n}),c=D(d.code);l=`${l.slice(0,a.start)}${c}${l.slice(a.end)}`,i.push({...d,atomicClasses:[],origins:{}})}return v(l,i)}var Se=require("@cssxio/compiler"),we=require("@vue/compiler-sfc");function J(e,s){let t=e.split(`
9
+ `).slice(0,s.line).reduce((r,o)=>r+o.length+1,0);return Math.min(e.length,t+s.column)}function V(e,s){let t=Math.min(e.length,s),r=e.slice(0,t).split(`
10
+ `).length-1,o=e.lastIndexOf(`
11
+ `,t-1)+1;return{line:r,column:t-o}}function G(e,s,t){let r={},o=e.slice(s);for(let[n,m]of Object.entries(t))r[n]=V(e,s+J(o,m));return r}function xe(e,s,t,r,o){let n={};for(let[m,i]of Object.entries(o)){let l=J(t,i);n[m]=V(e,s+Math.max(0,l-r))}return n}function ye(e){return e.slice(1,-1).replace(/\\(['"\\bnfrtv])/g,(s,t)=>({b:"\b",n:`
12
+ `,f:"\f",r:"\r",t:" ",v:"\v"})[t]??t)}function he(e,s){if(!s)return e;let t=s==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,r=>{let o=r[0]==='"'?JSON.parse(r):ye(r),n=JSON.stringify(o);return t==='"'?n:`'${n.slice(1,-1).replaceAll("'","\\'")}'`})}function Ce(e,s){let t=-1,r;for(let o=0;o<s;o++){let n=e[o];if(r){n===r&&(r=void 0);continue}if(n==="<"&&/[A-Za-z]/.test(e[o+1])){t=o;continue}t!==-1&&(n===">"?t=-1:(n==='"'||n==="'")&&(r=n))}return r}async function be(e,s,t,r,o){let n=X(e);if(n.length===0)return null;let m=t.importSource??"@cssxio/cssx",i=[],l=e;for(let a of[...n].reverse()){let d=`import { sx } from ${JSON.stringify(m)};
13
+ const style = `,c=`${d}${a.code};`,u=await o(c,`${s}.cssx-vue-template.ts`,{...t,classNameAllocator:r}),f=he(D(u.code),Ce(e,a.start));l=`${l.slice(0,a.start)}${f}${l.slice(a.end)}`,i.push({...u,origins:xe(e,a.start,c,d.length,u.origins)})}return v(l,i)}async function Ne(e,s,t,r){let o=s.split("?",1).join(""),n=(0,we.parse)(e,{filename:o});if(n.errors.length>0)throw new Error(n.errors[0].message);let m=t.classNameAllocator??(0,Se.createClassNameAllocator)(),i=[],l=[];for(let c of[n.descriptor.script,n.descriptor.scriptSetup]){if(!c?.content.includes(t.importSource??"@cssxio/cssx"))continue;let u=c.lang==="js"||c.lang==="jsx"||c.lang==="tsx"?c.lang:"ts",f=await r(c.content,`${o}.cssx-vue-script.${u}`,{...t,classNameAllocator:m});i.push({start:c.loc.start.offset,end:c.loc.end.offset,code:f.code}),l.push({...f,origins:G(e,c.loc.start.offset,f.origins)})}let a=n.descriptor.template;if(a?.content.includes("sx")){let c=await be(a.content,o,t,m,r);c&&(i.push({start:a.loc.start.offset,end:a.loc.end.offset,code:c.code}),l.push({...c,origins:G(e,a.loc.start.offset,c.origins)}))}if(i.length===0)return null;let d=e;for(let c of i.sort((u,f)=>f.start-u.start))d=`${d.slice(0,c.start)}${c.code}${d.slice(c.end)}`;return v(d,l)}var Pe=require("@babel/core"),ve=De(require("@cssxio/babel-plugin"),1),B=require("@cssxio/compiler");function Oe(e){return{className:`cssx-${q(e)}`,css:e}}function Me(e,s){return e&&s?`@layer ${s}{${e}}`:e}async function Re(e,s,t,r){let o=t.importSource??"@cssxio/cssx",n=await _(t),m=await(0,Pe.transformAsync)(e,{babelrc:!1,configFile:!1,filename:s,parserOpts:{plugins:["jsx","typescript"]},plugins:[[ve.default,{importSource:o,classNameAllocator:t.classNameAllocator,theme:n,reusabilityBudget:t.reusabilityBudget,stableClassNames:t.stableClassNames,stableClassNameFileName:t.stableClassNameFileName,darkMode:t.darkMode}]],sourceMaps:!0,...r?{inputSourceMap:r}:{}}),i=m.metadata,{candidates:l,origins:a,composites:d,atomicClasses:c,cssOnlySignature:u}=i.cssx,f=Object.keys(l),h=f.length===0?"":(await(0,B.compileUtilities)(f,g=>l[g],n,(0,B.createSelectorAliases)(d),new Set(c),{darkMode:t.darkMode})).css;return{code:m.code,rules:h?[Oe(Me(h,t.layer))]:[],candidates:l,composites:d,atomicClasses:c,origins:a,cssOnlySignature:u,map:m.map}}var We=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".vue"]);async function M(e,s,t={},r){z(t);let o=t.importSource??"@cssxio/cssx",n=s.split("?",1).join("");return!We.has(n.slice(n.lastIndexOf(".")))||!e.includes(o)?null:n.endsWith(".astro")?ge(e,s,t,M):n.endsWith(".vue")?Ne(e,s,t,M):Re(e,n,t,r)}async function Te(e,s){let t=await I(e,s.sourceRoots?.map(n=>(0,R.resolve)(e,n))),r={...s};delete r.coordination,delete r.manifestPath,delete r.classNameAllocator;let o=async n=>{let m=[];for(let i of t){let l=await(0,Ae.readFile)(i,"utf8"),a=/\.(?:md|mdx)$/i.test(i);if(a&&!l.includes(s.importSource??"@cssxio/cssx"))continue;let d=a?await L(l,e,s.mdx):l,c=s.stableClassNames||s.naming==="source",u=await M(d,a?`${i}.tsx`:i,{...r,classNameAllocator:n,stableClassNames:c,...c?{stableClassNameFileName:(0,R.relative)(e,i).replaceAll(R.sep,"/")}:{}});u&&m.push({id:i,candidates:u.candidates,composites:u.composites,atomicClasses:u.atomicClasses,origins:u.origins})}return m};return s.coordination==="manifest"?F(s.manifestPath,E(s),o):o(s.classNameAllocator??(0,Ee.createClassNameAllocator)(E(s)))}var $e=new Set([".md",".mdx"]);function H(e,s){let t=this.async();Ge(this,e,s).then(({code:r,map:o})=>t(null,r,o),r=>t(r instanceof Error?r:new Error(String(r))))}async function Ge(e,s,t){let r=e.getOptions(),o=(0,x.resolve)(r.projectRoot||e.rootContext||process.cwd()),n=(0,x.resolve)(e.resourcePath),m=n.slice(n.lastIndexOf(".")).toLowerCase(),i=s;$e.has(m)&&(i=await L(s,o,r.mdx));let l=(0,x.relative)(o,n).replaceAll(x.sep,"/"),a=r.cssx.naming==="source"||r.cssx.stableClassNames===!0,d={...r.cssx,className:E(r.cssx),stableClassNames:a,...a?{stableClassNameFileName:l}:{}},c=await F(r.manifestPath,d.className,async g=>{let S=$e.has(m)?`${n}.tsx`:n;return M(i,S,{...d,classNameAllocator:g},t)}),u=c?.code??i,f=c?.map??t,h=Qe(l);if(h){let g=r.cssx.sourceRoots?.map(p=>(0,x.resolve)(o,p))??[],S=await I(o,g);for(let p of S)e.addDependency(p);for(let p of[(0,x.resolve)(o,"app"),(0,x.resolve)(o,"src"),(0,x.resolve)(o,"pages"),(0,x.resolve)(o,"components"),...g])try{(await(0,N.stat)(p)).isDirectory()&&e.addContextDependency(p)}catch(C){if(C.code!=="ENOENT")throw C}}if(h){let g=await Te(o,{...r.cssx,coordination:"manifest",manifestPath:r.manifestPath}),S=r.cssx.themeFile?await(0,N.readFile)((0,x.resolve)(o,r.cssx.themeFile),"utf8"):r.cssx.theme;r.cssx.themeFile&&e.addDependency((0,x.resolve)(o,r.cssx.themeFile));let p=await me(g,S,r.cssx.layer,r.cssx.sourceMap,r.cssx.darkMode,r.cssx.preflight);if(r.cssx.debug){let b=K(g,p.css,{...r.cssx,coordination:"manifest",manifestPath:r.manifestPath});if(r.cssx.debug===!0)console.info(`CSSX: ${b.naming.mode} naming; ${b.classes.filter(w=>w.selectorFound).length}/${b.classes.length} generated classes have selectors; compiler mappings ${b.serverClientMappings.status}${b.serverClientMappings.conflicts.length?` (${b.serverClientMappings.conflicts.length} utility conflicts)`:""}.`);else{let w=(0,x.resolve)(o,r.cssx.debug.reportFile);await(0,N.mkdir)((0,x.dirname)(w),{recursive:!0}),await Q(w,`${JSON.stringify(b,null,2)}
14
+ `)}}await(0,N.mkdir)((0,x.dirname)(r.styleSheetFile),{recursive:!0});let C=ie(p,"generated.css");await Q(r.styleSheetFile,C),p.map&&await Q(`${r.styleSheetFile}.map`,oe(p.map,"generated.css"))}if(h){let g=(0,x.relative)((0,x.dirname)(n),r.styleSheetFile).replaceAll(x.sep,"/");u+=`
15
+ import '${g.startsWith(".")?g:`./${g}`}';
16
+ `,f=void 0}return{code:u,...f?{map:f}:{}}}function Qe(e){return/^(?:src\/)?app\/layout\.[cm]?[jt]sx?$/.test(e)}async function Q(e,s){try{if(await(0,N.readFile)(e,"utf8")===s)return}catch(t){if(t.code!=="ENOENT")throw t}await(0,N.writeFile)(e,s,"utf8")}
@@ -0,0 +1,33 @@
1
+ import { C as CssxPluginOptions, a as CssxNextMdxOptions } from './options-DkqShf7w.cjs';
2
+ import { I as IncomingSourceMap } from './source-map-from-context-B4SX_KAW.cjs';
3
+ import '@cssxio/compiler';
4
+
5
+ /** JSON-safe options passed by the Next.js config wrapper to this loader. */
6
+ interface CssxNextLoaderOptions {
7
+ readonly projectRoot: string;
8
+ readonly styleSheetFile: string;
9
+ readonly importSource: string;
10
+ readonly manifestPath: string;
11
+ readonly development: boolean;
12
+ readonly cssx: Omit<CssxPluginOptions, 'classNameAllocator' | 'coordination' | 'manifestPath'>;
13
+ readonly mdx?: CssxNextMdxOptions;
14
+ }
15
+ /** Minimal Webpack/Turbopack loader context used by the shared loader. */
16
+ interface CssxLoaderContext {
17
+ readonly resourcePath: string;
18
+ readonly rootContext?: string;
19
+ async(): (error: Error | null, source?: string, map?: IncomingSourceMap) => void;
20
+ getOptions(): CssxNextLoaderOptions;
21
+ addDependency(fileName: string): void;
22
+ addContextDependency(directory: string): void;
23
+ }
24
+ /**
25
+ * Next.js loader shared by Webpack and Turbopack.
26
+ *
27
+ * @param source Current source module.
28
+ * @param inputMap Existing source map from an earlier loader.
29
+ * @returns Nothing; follows the webpack loader callback contract.
30
+ */
31
+ declare function cssxNextLoader(this: CssxLoaderContext, source: string, inputMap?: IncomingSourceMap): void;
32
+
33
+ export { type CssxNextLoaderOptions, cssxNextLoader as default };
@@ -0,0 +1,33 @@
1
+ import { C as CssxPluginOptions, a as CssxNextMdxOptions } from './options-DkqShf7w.js';
2
+ import { I as IncomingSourceMap } from './source-map-from-context-B4SX_KAW.js';
3
+ import '@cssxio/compiler';
4
+
5
+ /** JSON-safe options passed by the Next.js config wrapper to this loader. */
6
+ interface CssxNextLoaderOptions {
7
+ readonly projectRoot: string;
8
+ readonly styleSheetFile: string;
9
+ readonly importSource: string;
10
+ readonly manifestPath: string;
11
+ readonly development: boolean;
12
+ readonly cssx: Omit<CssxPluginOptions, 'classNameAllocator' | 'coordination' | 'manifestPath'>;
13
+ readonly mdx?: CssxNextMdxOptions;
14
+ }
15
+ /** Minimal Webpack/Turbopack loader context used by the shared loader. */
16
+ interface CssxLoaderContext {
17
+ readonly resourcePath: string;
18
+ readonly rootContext?: string;
19
+ async(): (error: Error | null, source?: string, map?: IncomingSourceMap) => void;
20
+ getOptions(): CssxNextLoaderOptions;
21
+ addDependency(fileName: string): void;
22
+ addContextDependency(directory: string): void;
23
+ }
24
+ /**
25
+ * Next.js loader shared by Webpack and Turbopack.
26
+ *
27
+ * @param source Current source module.
28
+ * @param inputMap Existing source map from an earlier loader.
29
+ * @returns Nothing; follows the webpack loader callback contract.
30
+ */
31
+ declare function cssxNextLoader(this: CssxLoaderContext, source: string, inputMap?: IncomingSourceMap): void;
32
+
33
+ export { type CssxNextLoaderOptions, cssxNextLoader as default };
@@ -0,0 +1,4 @@
1
+ import{f as v,g as O,h as P,i as F,j as b,k as E,l as I,m as $,o as L,p as D}from"./chunk-5R7RC6XB.js";import"./chunk-OHZUHF4D.js";import{mkdir as R,readFile as J,stat as X,writeFile as W}from"fs/promises";import{dirname as g,relative as j,resolve as n,sep as A}from"path";var k=new Set([".md",".mdx"]);function T(s,i){let a=this.async();_(this,s,i).then(({code:e,map:t})=>a(null,e,t),e=>a(e instanceof Error?e:new Error(String(e))))}async function _(s,i,a){let e=s.getOptions(),t=n(e.projectRoot||s.rootContext||process.cwd()),l=n(s.resourcePath),y=l.slice(l.lastIndexOf(".")).toLowerCase(),f=i;k.has(y)&&(f=await b(i,t,e.mdx));let C=j(t,l).replaceAll(A,"/"),N=e.cssx.naming==="source"||e.cssx.stableClassNames===!0,S={...e.cssx,className:v(e.cssx),stableClassNames:N,...N?{stableClassNameFileName:C}:{}},w=await E(e.manifestPath,S.className,async o=>{let m=k.has(y)?`${l}.tsx`:l;return $(f,m,{...S,classNameAllocator:o},a)}),M=w?.code??f,u=w?.map??a,x=q(C);if(x){let o=e.cssx.sourceRoots?.map(r=>n(t,r))??[],m=await I(t,o);for(let r of m)s.addDependency(r);for(let r of[n(t,"app"),n(t,"src"),n(t,"pages"),n(t,"components"),...o])try{(await X(r)).isDirectory()&&s.addContextDependency(r)}catch(p){if(p.code!=="ENOENT")throw p}}if(x){let o=await L(t,{...e.cssx,coordination:"manifest",manifestPath:e.manifestPath}),m=e.cssx.themeFile?await J(n(t,e.cssx.themeFile),"utf8"):e.cssx.theme;e.cssx.themeFile&&s.addDependency(n(t,e.cssx.themeFile));let r=await O(o,m,e.cssx.layer,e.cssx.sourceMap,e.cssx.darkMode,e.cssx.preflight);if(e.cssx.debug){let c=D(o,r.css,{...e.cssx,coordination:"manifest",manifestPath:e.manifestPath});if(e.cssx.debug===!0)console.info(`CSSX: ${c.naming.mode} naming; ${c.classes.filter(d=>d.selectorFound).length}/${c.classes.length} generated classes have selectors; compiler mappings ${c.serverClientMappings.status}${c.serverClientMappings.conflicts.length?` (${c.serverClientMappings.conflicts.length} utility conflicts)`:""}.`);else{let d=n(t,e.cssx.debug.reportFile);await R(g(d),{recursive:!0}),await h(d,`${JSON.stringify(c,null,2)}
2
+ `)}}await R(g(e.styleSheetFile),{recursive:!0});let p=F(r,"generated.css");await h(e.styleSheetFile,p),r.map&&await h(`${e.styleSheetFile}.map`,P(r.map,"generated.css"))}if(x){let o=j(g(l),e.styleSheetFile).replaceAll(A,"/");M+=`
3
+ import '${o.startsWith(".")?o:`./${o}`}';
4
+ `,u=void 0}return{code:M,...u?{map:u}:{}}}function q(s){return/^(?:src\/)?app\/layout\.[cm]?[jt]sx?$/.test(s)}async function h(s,i){try{if(await J(s,"utf8")===i)return}catch(a){if(a.code!=="ENOENT")throw a}await W(s,i,"utf8")}export{T as default};
package/dist/next.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";var p=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var M=(e,r)=>{for(var t in r)p(e,t,{get:r[t],enumerable:!0})},$=(e,r,t,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of R(r))!A.call(e,o)&&o!==t&&p(e,o,{get:()=>r[o],enumerable:!(a=F(r,o))||a.enumerable});return e};var W=e=>$(p({},"__esModule",{value:!0}),e);var O={};M(O,{default:()=>j,withCSSX:()=>X});module.exports=W(O);var E=require("fs"),u=require("path");var l=require("path");function y(e){if(!e||(0,l.isAbsolute)(e))throw new Error("cssFileName must be a non-empty relative path.");let r=(0,l.normalize)(e);if(r===".."||r.startsWith(`..${l.sep}`))throw new Error("cssFileName must not escape the bundler output directory.");if(!r.endsWith(".css"))throw new Error("cssFileName must end in .css.");return r}function b(e){if(e.sourceRoots&&e.sourceRoots.some(t=>typeof t!="string"||!t.trim()))throw new Error("CSSX sourceRoots must contain non-empty file-system paths.");let r=e.debug;if(r===null||r!==void 0&&typeof r!="boolean"&&(typeof r!="object"||typeof r.reportFile!="string"||!r.reportFile))throw new Error("CSSX debug must be a boolean or an object with a reportFile path.");if(e.naming!==void 0&&!["serial","hash","source"].includes(e.naming))throw new Error('CSSX naming must be "serial", "hash", or "source".');if(e.coordination!==void 0&&!["memory","manifest"].includes(e.coordination))throw new Error('CSSX coordination must be "memory" or "manifest".');if(e.stableClassNames&&e.naming&&e.naming!=="source")throw new Error('CSSX stableClassNames selects source naming and conflicts with naming. Use naming: "source".');if(e.stableClassNames&&e.coordination==="manifest")throw new Error("CSSX stableClassNames already selects source naming; remove it to use manifest coordination.");if(e.naming==="hash"&&e.className?.variant==="serial")throw new Error('CSSX naming: "hash" conflicts with className.variant: "serial".');if(e.naming==="serial"&&e.className?.variant==="random")throw new Error('CSSX naming: "serial" conflicts with className.variant: "random".');if(e.coordination==="manifest"&&!e.manifestPath)throw new Error('CSSX coordination: "manifest" requires manifestPath.');if(e.manifestPath&&e.coordination!=="manifest")throw new Error('CSSX manifestPath requires coordination: "manifest".');if(e.coordination==="manifest"&&e.classNameAllocator)throw new Error("CSSX manifest coordination cannot use a custom classNameAllocator.");if(e.theme!==void 0&&e.themeFile!==void 0)throw new Error("CSSX accepts either theme or themeFile, not both.");if(e.layer!==void 0&&!/^[A-Za-z_-][A-Za-z0-9_-]*$/.test(e.layer))throw new Error("CSSX layer must be a valid CSS layer identifier.");if(e.sourceMap!==void 0&&typeof e.sourceMap!="boolean")throw new Error("CSSX sourceMap must be a boolean.");if(e.darkMode!==void 0&&e.darkMode!=="media"&&e.darkMode!=="selector"&&e.darkMode!=="class")throw new Error('CSSX darkMode must be "media", "selector", or "class".');if(e.preflight!==void 0&&typeof e.preflight!="boolean")throw new Error("CSSX preflight must be a boolean.");if(e.reusabilityBudget!==void 0&&e.reusabilityBudget!=="auto"&&(!Number.isFinite(e.reusabilityBudget)||e.reusabilityBudget<0||e.reusabilityBudget>100))throw new Error('CSSX reusabilityBudget must be "auto" or a number from 0 through 100.');y(e.cssFileName??"cssx.css")}var f=require("path"),N=require("url");function k(e,r){let t=r??(0,f.dirname)((0,N.fileURLToPath)(e)),a=r?".cjs":e.endsWith(".ts")?".ts":".js";return(0,f.resolve)(t,`next-loader${a}`)}var D={},_=z(),h=k(D.url,_);function X(e,r={}){if(r.classNameAllocator)throw new Error("withCSSX cannot serialize classNameAllocator across Next.js compiler workers.");let t=process.cwd();if(!B(t))throw new Error("withCSSX requires an App Router root layout at app/layout.{js,jsx,ts,tsx} or src/app/layout.{js,jsx,ts,tsx}.");let a=(0,u.resolve)(t,r.manifestPath??".cssx/classnames.json"),o={...r,naming:r.naming??(r.stableClassNames?"source":"serial"),coordination:r.coordination??(r.stableClassNames?"memory":"manifest"),...!r.stableClassNames||r.coordination==="manifest"?{manifestPath:a}:{}};b(o);let x=n=>{let w=(0,u.resolve)(t,".cssx/next.css"),m={...o};delete m.classNameAllocator,delete m.coordination,delete m.manifestPath;let d={projectRoot:t,styleSheetFile:w,importSource:o.importSource??"@cssxio/cssx",manifestPath:a,development:process.env.NODE_ENV!=="production",cssx:m,...o.mdx?{mdx:o.mdx}:{}},C=n.webpack;n.webpack=(s,v)=>{let i=C?C(s,v):s;if(typeof i.then=="function")throw new Error("withCSSX requires a synchronous Next.js webpack callback; Next.js does not await webpack hooks.");return i.module??={rules:[]},i.module.rules??=[],i.module.rules.push({test:/\.(?:[cm]?[jt]sx?)$/,include:[t,...(r.sourceRoots??[]).map(g=>(0,u.resolve)(t,g))],enforce:"pre",use:[{loader:h,options:d}]}),i.module.rules.push({test:/\.(?:md|mdx)$/,include:[t,...(r.sourceRoots??[]).map(g=>(0,u.resolve)(t,g))],type:"javascript/auto",use:[{loader:h,options:d}]}),i};let S=n.turbopack??{},c={...S.rules??{}};for(let s of["*.js","*.jsx","*.ts","*.tsx"]){if(c[s])throw new Error(`withCSSX owns turbopack.rules["${s}"]; merge the CSSX loader into that rule explicitly.`);c[s]={loaders:[{loader:h,options:d}]}}for(let s of["*.md","*.mdx"]){if(c[s])throw new Error(`withCSSX owns turbopack.rules["${s}"]; configure MDX through the CSSX mdx option.`);c[s]={loaders:[{loader:h,options:d}],as:"*.js"}}n.turbopack={...S,rules:c};let P=Array.isArray(n.pageExtensions)?n.pageExtensions:["js","jsx","ts","tsx"];return n.pageExtensions=[...new Set([...P,"md","mdx"])],n};return typeof e=="function"?async(n,w)=>x(await e(n,w)):x(e)}var j=X;function B(e){let r=["js","jsx","ts","tsx"];return["app","src/app"].some(t=>r.some(a=>(0,E.existsSync)((0,u.resolve)(e,t,`layout.${a}`))))}function z(){return typeof __dirname=="string"?__dirname:void 0}0&&(module.exports={withCSSX});
@@ -0,0 +1,39 @@
1
+ import { C as CssxPluginOptions } from './options-DkqShf7w.cjs';
2
+ import '@cssxio/compiler';
3
+
4
+ /** Subset of Next's Webpack configuration accessed by this adapter. */
5
+ type NextWebpackConfig = {
6
+ module?: {
7
+ rules?: unknown[];
8
+ [key: string]: unknown;
9
+ };
10
+ resolve?: {
11
+ alias?: Record<string, unknown>;
12
+ [key: string]: unknown;
13
+ };
14
+ [key: string]: unknown;
15
+ };
16
+ /** Subset of Next's config surface extended by withCSSX. */
17
+ type NextConfig = {
18
+ webpack?: (config: NextWebpackConfig, context: Record<string, unknown>) => NextWebpackConfig;
19
+ turbopack?: {
20
+ rules?: Record<string, unknown>;
21
+ resolveAlias?: Record<string, string>;
22
+ [key: string]: unknown;
23
+ };
24
+ distDir?: string;
25
+ [key: string]: unknown;
26
+ };
27
+ /** Async or sync Next configuration factory accepted by Next.js. */
28
+ type NextConfigFactory = (phase: string, context: Record<string, unknown>) => NextConfig | Promise<NextConfig>;
29
+ /**
30
+ * Adds CSSX compilation and stylesheet inclusion to a Next.js configuration.
31
+ *
32
+ * @param nextConfig Existing Next.js config object or config factory.
33
+ * @param cssxOptions CSSX compiler, naming, theme, and MDX options.
34
+ * @returns A Next.js config with Webpack and Turbopack CSSX loader rules.
35
+ */
36
+ declare function withCSSX<T extends NextConfig>(nextConfig: T, cssxOptions?: CssxPluginOptions): T;
37
+ declare function withCSSX(nextConfig: NextConfigFactory, cssxOptions?: CssxPluginOptions): NextConfigFactory;
38
+
39
+ export { withCSSX as default, withCSSX };
package/dist/next.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ import { C as CssxPluginOptions } from './options-DkqShf7w.js';
2
+ import '@cssxio/compiler';
3
+
4
+ /** Subset of Next's Webpack configuration accessed by this adapter. */
5
+ type NextWebpackConfig = {
6
+ module?: {
7
+ rules?: unknown[];
8
+ [key: string]: unknown;
9
+ };
10
+ resolve?: {
11
+ alias?: Record<string, unknown>;
12
+ [key: string]: unknown;
13
+ };
14
+ [key: string]: unknown;
15
+ };
16
+ /** Subset of Next's config surface extended by withCSSX. */
17
+ type NextConfig = {
18
+ webpack?: (config: NextWebpackConfig, context: Record<string, unknown>) => NextWebpackConfig;
19
+ turbopack?: {
20
+ rules?: Record<string, unknown>;
21
+ resolveAlias?: Record<string, string>;
22
+ [key: string]: unknown;
23
+ };
24
+ distDir?: string;
25
+ [key: string]: unknown;
26
+ };
27
+ /** Async or sync Next configuration factory accepted by Next.js. */
28
+ type NextConfigFactory = (phase: string, context: Record<string, unknown>) => NextConfig | Promise<NextConfig>;
29
+ /**
30
+ * Adds CSSX compilation and stylesheet inclusion to a Next.js configuration.
31
+ *
32
+ * @param nextConfig Existing Next.js config object or config factory.
33
+ * @param cssxOptions CSSX compiler, naming, theme, and MDX options.
34
+ * @returns A Next.js config with Webpack and Turbopack CSSX loader rules.
35
+ */
36
+ declare function withCSSX<T extends NextConfig>(nextConfig: T, cssxOptions?: CssxPluginOptions): T;
37
+ declare function withCSSX(nextConfig: NextConfigFactory, cssxOptions?: CssxPluginOptions): NextConfigFactory;
38
+
39
+ export { withCSSX as default, withCSSX };
package/dist/next.js ADDED
@@ -0,0 +1 @@
1
+ import{b as k}from"./chunk-OHZUHF4D.js";import{existsSync as b}from"fs";import{resolve as u}from"path";import{dirname as N,resolve as S}from"path";import{fileURLToPath as j}from"url";function h(s,t){let o=t??N(j(s)),r=t?".cjs":s.endsWith(".ts")?".ts":".js";return S(o,`next-loader${r}`)}var P=X(),m=h(import.meta.url,P);function E(s,t={}){if(t.classNameAllocator)throw new Error("withCSSX cannot serialize classNameAllocator across Next.js compiler workers.");let o=process.cwd();if(!v(o))throw new Error("withCSSX requires an App Router root layout at app/layout.{js,jsx,ts,tsx} or src/app/layout.{js,jsx,ts,tsx}.");let r=u(o,t.manifestPath??".cssx/classnames.json"),a={...t,naming:t.naming??(t.stableClassNames?"source":"serial"),coordination:t.coordination??(t.stableClassNames?"memory":"manifest"),...!t.stableClassNames||t.coordination==="manifest"?{manifestPath:r}:{}};k(a);let f=e=>{let x=u(o,".cssx/next.css"),l={...a};delete l.classNameAllocator,delete l.coordination,delete l.manifestPath;let p={projectRoot:o,styleSheetFile:x,importSource:a.importSource??"@cssxio/cssx",manifestPath:r,development:process.env.NODE_ENV!=="production",cssx:l,...a.mdx?{mdx:a.mdx}:{}},g=e.webpack;e.webpack=(n,y)=>{let i=g?g(n,y):n;if(typeof i.then=="function")throw new Error("withCSSX requires a synchronous Next.js webpack callback; Next.js does not await webpack hooks.");return i.module??={rules:[]},i.module.rules??=[],i.module.rules.push({test:/\.(?:[cm]?[jt]sx?)$/,include:[o,...(t.sourceRoots??[]).map(d=>u(o,d))],enforce:"pre",use:[{loader:m,options:p}]}),i.module.rules.push({test:/\.(?:md|mdx)$/,include:[o,...(t.sourceRoots??[]).map(d=>u(o,d))],type:"javascript/auto",use:[{loader:m,options:p}]}),i};let w=e.turbopack??{},c={...w.rules??{}};for(let n of["*.js","*.jsx","*.ts","*.tsx"]){if(c[n])throw new Error(`withCSSX owns turbopack.rules["${n}"]; merge the CSSX loader into that rule explicitly.`);c[n]={loaders:[{loader:m,options:p}]}}for(let n of["*.md","*.mdx"]){if(c[n])throw new Error(`withCSSX owns turbopack.rules["${n}"]; configure MDX through the CSSX mdx option.`);c[n]={loaders:[{loader:m,options:p}],as:"*.js"}}e.turbopack={...w,rules:c};let C=Array.isArray(e.pageExtensions)?e.pageExtensions:["js","jsx","ts","tsx"];return e.pageExtensions=[...new Set([...C,"md","mdx"])],e};return typeof s=="function"?async(e,x)=>f(await s(e,x)):f(s)}var R=E;function v(s){let t=["js","jsx","ts","tsx"];return["app","src/app"].some(o=>t.some(r=>b(u(s,o,`layout.${r}`))))}function X(){return typeof __dirname=="string"?__dirname:void 0}export{R as default,E as withCSSX};