@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/README.md CHANGED
@@ -10,7 +10,38 @@ import cssxVite from '@cssxio/unplugin/vite';
10
10
  import cssxWebpack from '@cssxio/unplugin/webpack';
11
11
  ```
12
12
 
13
- Add the selected adapter to your build tool `plugins` setting:
13
+ For Next.js, use the supported integration. It prepares one complete stylesheet, coordinates compiler workers, handles App Router inclusion and development updates, and sends CSS through Next's normal stylesheet pipeline.
14
+
15
+ The integration requires `app/layout.js`, `app/layout.jsx`, `app/layout.ts`, `app/layout.tsx`, or the equivalent under `src/app`. It reports a configuration error for projects without an App Router root layout.
16
+
17
+ ```js
18
+ // next.config.mjs
19
+ import { withCSSX } from '@cssxio/unplugin/next';
20
+
21
+ export default withCSSX(
22
+ {},
23
+ {
24
+ theme: '@theme reference { --color-brand: #171717; }',
25
+ debug: true,
26
+ },
27
+ );
28
+ ```
29
+
30
+ CSSX defaults to serial `s…x` names and a persisted `.cssx/classnames.json` manifest in `withCSSX`. Add `.cssx/` to `.gitignore`. Next.js 16 projects can select either bundler with `next dev --webpack` / `next build --webpack`, or `next dev --turbopack` / `next build --turbopack`. MDX source files are compiled by the helper; install `@mdx-js/mdx` when a project contains `.md` or `.mdx` files. Configure serializable remark, rehype, or recma plugins with `mdx`. Use `sourceRoots` for linked workspace packages outside the project root.
31
+
32
+ `withCSSX` composes with a synchronous `webpack(config)` callback. It throws a clear error if an existing callback returns a Promise, since Next.js invokes that hook synchronously.
33
+
34
+ ### Naming and compiler coordination
35
+
36
+ The legacy `stableClassNames: true` option selects source-addressed composite names (`d…`) and overrides the expected serial composite output. This behavior is unchanged for compatibility. New configurations can choose `naming: 'serial' | 'hash' | 'source'` separately from `coordination: 'memory' | 'manifest'`. `className` controls serial or hash atomic names and prefixes; `naming: 'source'` selects source-addressed composites while atomic names continue to use `className`.
37
+
38
+ Manifest coordination stores identity assignments and the serial counter under a lock, then replaces the JSON file atomically. Keep the manifest between builds to retain serial assignments. A fresh manifest can assign different serial values. A custom `classNameAllocator` is in-process only and cannot be combined with manifest coordination or `withCSSX`.
39
+
40
+ For Webpack and Rspack, `className` configures CSSX's built-in allocator, which sibling compiler instances share when they have the same project root and plugin options. A custom `classNameAllocator` replaces that built-in allocator and must be supplied without `className`; it controls allocation only within the current process. Use manifest coordination when compiler processes must share serial assignments.
41
+
42
+ `debug: true` prints the effective naming mode, selector coverage, and compiler mapping status. `debug: { reportFile: 'path/to/report.json' }` writes a JSON report with utilities, source locations, generated classes, selector checks, manifest coordination status, and conflicting utility mappings. `serverClientMappings.status` is `manifest-shared` when a manifest is configured and collected modules agree, `mismatch` when one utility maps to different classes, or `consistent-in-process` when collected modules agree under an in-process allocator.
43
+
44
+ Add the selected generic adapter to your build tool `plugins` setting:
14
45
 
15
46
  ```ts
16
47
  // vite.config.ts
@@ -87,17 +118,24 @@ const stylesheet = await compileCssxStylesheet([
87
118
 
88
119
  ## Options
89
120
 
90
- | Option | Default | What it does |
91
- | ------------------ | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
92
- | `importSource` | `@cssxio/cssx` | Module specifier that identifies source files to transform. A source file must contain this text and have a JavaScript or TypeScript extension. |
93
- | `cssFileName` | `cssx.css` | Relative CSS output path. It must be non-empty, end in `.css`, and stay within the bundler output directory. `[hash]` is replaced with a stable hash of the generated CSS. |
94
- | `stableClassNames` | `false` | Uses source-addressed composite selectors. Enable it for native multi-process builds, such as a Next.js App Router build that transforms server and client modules independently. |
95
- | `sourceMap` | `true` | Whether to generate a separate CSS source map. Set it to `false` to omit both the `.css.map` file and source-map comment. |
96
- | `layer` | — | CSS layer name that wraps generated CSS. It must be a single valid layer identifier, such as `cssx`. |
97
- | `theme` | — | Inline CSSX `@theme` source used while transforming and compiling CSS. The theme is compiled into generated rules; it does not add a global stylesheet. |
98
- | `themeFile` | — | Path, relative to the current working directory, to a CSSX `@theme` file. It is reread when CSS is generated; Rollup-compatible adapters register it as a watched dependency. Do not use it with `theme`. |
99
- | `darkMode` | `media` | Activates `dark:` utilities with the system color-scheme media query (`media`), `[data-theme=dark]` (`selector`), or a `.dark` ancestor (`class`). Use the selector that matches your theme controller. |
100
- | `preflight` | `true` | Adds Tailwind-compatible browser baseline rules before utilities. Set it to `false` only when the application deliberately owns a different global reset. |
121
+ | Option | Default | What it does |
122
+ | -------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
123
+ | `importSource` | `@cssxio/cssx` | Module specifier that identifies source files to transform. A source file must contain this text and have a JavaScript or TypeScript extension. |
124
+ | `cssFileName` | `cssx.css` | Relative CSS output path. It must be non-empty, end in `.css`, and stay within the bundler output directory. `[hash]` is replaced with a stable hash of the generated CSS. |
125
+ | `naming` | `serial` | Selects generated composite naming: `serial`, `hash`, or source-addressed `source`. Independent of compiler coordination. |
126
+ | `coordination` | `memory` | Coordinates assignments within one adapter instance (`memory`) or through a persisted manifest (`manifest`). |
127
+ | `manifestPath` | — | JSON file used when `coordination: 'manifest'`. Independent compiler workers must share this path. |
128
+ | `className` | serial `s…x` | Controls atomic naming format, prefix, suffix, and hash length. Respected by compiler allocators used in every adapter. |
129
+ | `classNameAllocator` | — | Custom allocator for in-process integrations. Omit `className` when supplying one; manifest coordination uses CSSX's persisted allocator instead. |
130
+ | `stableClassNames` | `false` | Deprecated compatibility alias for `naming: 'source'`; emits source-addressed `d…` composites and overrides serial composite output. |
131
+ | `debug` | `false` | Prints a concise output summary or writes a class/source/selector diagnostic JSON report. |
132
+ | `sourceRoots` | project root | Additional source directories included by the Next.js preparation pass. |
133
+ | `sourceMap` | `true` | Whether to generate a separate CSS source map. Set it to `false` to omit both the `.css.map` file and source-map comment. |
134
+ | `layer` | — | CSS layer name that wraps generated CSS. It must be a single valid layer identifier, such as `cssx`. |
135
+ | `theme` | — | Inline CSSX `@theme` source used while transforming and compiling CSS. The theme is compiled into generated rules; it does not add a global stylesheet. |
136
+ | `themeFile` | — | Path, relative to the current working directory, to a CSSX `@theme` file. It is reread when CSS is generated; Rollup-compatible adapters register it as a watched dependency. Do not use it with `theme`. |
137
+ | `darkMode` | `media` | Activates `dark:` utilities with the system color-scheme media query (`media`), `[data-theme=dark]` (`selector`), or a `.dark` ancestor (`class`). Use the selector that matches your theme controller. |
138
+ | `preflight` | `true` | Adds Tailwind-compatible browser baseline rules before utilities. Set it to `false` only when the application deliberately owns a different global reset. |
101
139
 
102
140
  The universal adapter validates options when it is created. `theme` and `themeFile` cannot be used together. Invalid CSS paths and layer names fail the build before CSS is emitted.
103
141
 
@@ -110,7 +148,7 @@ stylesheet deliberately owns different global element styles.
110
148
 
111
149
  Each production adapter collects CSS from the source files used by the final build. It does not create a CSS file when no used file has CSSX utilities. The default file is `cssx.css`. Set `cssFileName` to use another relative path. CSSX emits one composite class in markup for each static style composition while sharing declarations across composite selectors in the stylesheet.
112
150
 
113
- When `stableClassNames: true` is used with webpack or Rspack, CSSX scans the project source tree before emitting its public stylesheet. This ensures one stylesheet includes server and client utility selectors even when the framework runs those transformations in separate processes.
151
+ For legacy `stableClassNames: true` with webpack or Rspack, CSSX scans the project source tree before emitting its public stylesheet. The Next.js integration owns the source preparation pass and does not require consumers to add a scanner, asset remapper, stylesheet link, or plugin hook.
114
152
 
115
153
  The Rollup-compatible adapters retain transformed module metadata until `generateBundle`, then emit CSS and its map as build assets. The webpack and Rspack adapters retain metadata on native modules and emit assets at the additions stage of `processAssets`. The direct esbuild adapter enables the metafile, removes data for source files absent from it, and generates CSS in `onEnd`.
116
154
 
@@ -0,0 +1,13 @@
1
+ import{a as R,b as $}from"./chunk-OHZUHF4D.js";import{compileUtilities as ae,createSelectorAliases as le}from"@cssxio/compiler";var L='*,::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 j(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 ie="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function N(e){let s="",t=e<0?-e<<1|1:e<<1;do{let r=t&31;t>>>=5,t&&(r|=32),s+=ie[r]}while(t);return s}function V(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(`${N(i.column-m)}${N(i.source-t)}${N(i.originalLine-r)}${N(i.originalColumn-o)}`),m=i.column,t=i.source,r=i.originalLine,o=i.originalColumn;return s.map(i=>i.join(",")).join(";")}function J(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=j({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=j(m,i.css)}return{version:3,sources:r,names:[],mappings:V(n)}}async function nt(e,s,t,r=!0,o,n=!0){let m=Object.create(null),i=Object.create(null),l=new Set,a=!0,u=new Map;for(let y of[...e].sort((g,h)=>g.id.localeCompare(h.id))){for(let[g,h]of Object.entries(y.candidates))if(g in m||(m[g]=h),y.id&&!u.has(g)){let S=y.origins?.[g];u.set(g,{id:y.id,line:S?.line??0,column:S?.column??0})}for(let[g,h]of Object.entries(y.composites??{})){let S=i[g];if(S&&S.join(" ")!==h.join(" "))throw new Error(`CSSX composite class collision for "${g}".`);i[g]=h}y.atomicClasses===void 0&&(a=!1);for(let g of y.atomicClasses??[])l.add(g)}let c=Object.keys(m).sort(),d=n?L:"";if(c.length===0)return{css:d&&t?`@layer ${t}{${d}}`:d};let p=await ae(c,y=>m[y],s,le(i),a?l:void 0,{darkMode:o}),f=t?`@layer ${t}{`:"",x=`${f}${d}${p.css}${f?"}":""}`,C=r?J(`${f}${d}${p.prefixCss}`,p.entries,u):void 0;return{css:x,...C?{map:C}:{}}}import{createClassNameAllocator as ce}from"@cssxio/compiler";function v(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 b(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 P(e){let s="const style = ",t=e.indexOf(s)+s.length,r=e.indexOf(";",t);return e.slice(t,r)}async function D(e,s,t,r){let o=v(e);if(o.length===0)return null;let n=t.classNameAllocator??ce(),m=t.importSource??"@cssxio/cssx",i=[],l=e;for(let a of[...o].reverse()){let u=await r(`import { sx } from ${JSON.stringify(m)};
3
+ const style = ${a.code};`,`${s}.ts`,{...t,classNameAllocator:n}),c=P(u.code);l=`${l.slice(0,a.start)}${c}${l.slice(a.end)}`,i.push({...u,atomicClasses:[],origins:{}})}return b(l,i)}import{createClassNameAllocator as me}from"@cssxio/compiler";import{parse as ue}from"@vue/compiler-sfc";function A(e,s){let t=e.split(`
4
+ `).slice(0,s.line).reduce((r,o)=>r+o.length+1,0);return Math.min(e.length,t+s.column)}function T(e,s){let t=Math.min(e.length,s),r=e.slice(0,t).split(`
5
+ `).length-1,o=e.lastIndexOf(`
6
+ `,t-1)+1;return{line:r,column:t-o}}function k(e,s,t){let r={},o=e.slice(s);for(let[n,m]of Object.entries(t))r[n]=T(e,s+A(o,m));return r}function z(e,s,t,r,o){let n={};for(let[m,i]of Object.entries(o)){let l=A(t,i);n[m]=T(e,s+Math.max(0,l-r))}return n}function B(e){return e.slice(1,-1).replace(/\\(['"\\bnfrtv])/g,(s,t)=>({b:"\b",n:`
7
+ `,f:"\f",r:"\r",t:" ",v:"\v"})[t]??t)}function _(e,s){if(!s)return e;let t=s==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,r=>{let o=r[0]==='"'?JSON.parse(r):B(r),n=JSON.stringify(o);return t==='"'?n:`'${n.slice(1,-1).replaceAll("'","\\'")}'`})}function X(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 U(e,s,t,r,o){let n=v(e);if(n.length===0)return null;let m=t.importSource??"@cssxio/cssx",i=[],l=e;for(let a of[...n].reverse()){let u=`import { sx } from ${JSON.stringify(m)};
8
+ const style = `,c=`${u}${a.code};`,d=await o(c,`${s}.cssx-vue-template.ts`,{...t,classNameAllocator:r}),p=_(P(d.code),X(e,a.start));l=`${l.slice(0,a.start)}${p}${l.slice(a.end)}`,i.push({...d,origins:z(e,a.start,c,u.length,d.origins)})}return b(l,i)}async function q(e,s,t,r){let o=s.split("?",1).join(""),n=ue(e,{filename:o});if(n.errors.length>0)throw new Error(n.errors[0].message);let m=t.classNameAllocator??me(),i=[],l=[];for(let c of[n.descriptor.script,n.descriptor.scriptSetup]){if(!c?.content.includes(t.importSource??"@cssxio/cssx"))continue;let d=c.lang==="js"||c.lang==="jsx"||c.lang==="tsx"?c.lang:"ts",p=await r(c.content,`${o}.cssx-vue-script.${d}`,{...t,classNameAllocator:m});i.push({start:c.loc.start.offset,end:c.loc.end.offset,code:p.code}),l.push({...p,origins:k(e,c.loc.start.offset,p.origins)})}let a=n.descriptor.template;if(a?.content.includes("sx")){let c=await U(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:k(e,a.loc.start.offset,c.origins)}))}if(i.length===0)return null;let u=e;for(let c of i.sort((d,p)=>p.start-d.start))u=`${u.slice(0,c.start)}${c.code}${u.slice(c.end)}`;return b(u,l)}import{readFile as de}from"fs/promises";import{resolve as pe}from"path";async function F(e){return e.themeFile===void 0?e.theme:de(pe(process.cwd(),e.themeFile),"utf8")}function fe(e){return e.split("?",1).join("")}function w(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 ge(e,s){return R(e).replaceAll("[hash]",w(s))}import{dirname as ye,resolve as E}from"path";function xe(e,s,t){return s.outdir?E(e,s.outdir,t):s.outfile?E(ye(E(e,s.outfile)),t):E(e,t)}import{sep as Ce}from"path";function he(e,s){return`${e&&e!=="/"?`/${e.replace(/^\/+|\/+$/g,"")}`:""}/${R(s).replaceAll(Ce,"/")}`}function I(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}:{}}}import{transformAsync as be}from"@babel/core";import Se from"@cssxio/babel-plugin";import{compileUtilities as Ne,createSelectorAliases as we}from"@cssxio/compiler";function G(e){return{className:`cssx-${w(e)}`,css:e}}function Q(e,s){return e&&s?`@layer ${s}{${e}}`:e}async function H(e,s,t,r){let o=t.importSource??"@cssxio/cssx",n=await F(t),m=await be(e,{babelrc:!1,configFile:!1,filename:s,parserOpts:{plugins:["jsx","typescript"]},plugins:[[Se,{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:u,atomicClasses:c,cssOnlySignature:d}=i.cssx,p=Object.keys(l),f=p.length===0?"":(await Ne(p,x=>l[x],n,we(u),new Set(c),{darkMode:t.darkMode})).css;return{code:m.code,rules:f?[G(Q(f,t.layer))]:[],candidates:l,composites:u,atomicClasses:c,origins:a,cssOnlySignature:d,map:m.map}}var Oe=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".vue"]);async function O(e,s,t={},r){$(t);let o=t.importSource??"@cssxio/cssx",n=s.split("?",1).join("");return!Oe.has(n.slice(n.lastIndexOf(".")))||!e.includes(o)?null:n.endsWith(".astro")?D(e,s,t,O):n.endsWith(".vue")?q(e,s,t,O):H(e,n,t,r)}function Ns(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]}:{}}}function Rs(e,s){return JSON.stringify({...e,file:s})}import{basename as Me}from"path";function As(e,s){return e.map?`${e.css}
9
+ /*# sourceMappingURL=${Me(s)}.map */`:e.css}import{createRequire as Re}from"module";import{resolve as ve}from"path";import{pathToFileURL as W}from"url";async function K(e,s,t={}){let r=Re(ve(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(W(o).href),m=async i=>Promise.all((i??[]).map(async l=>{let[a,u]=typeof l=="string"?[l,void 0]:l,c=r.resolve(a),d=await import(W(c).href),p=d.default??d;return u===void 0?p:[p,u]}));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)}))}import{createClassNameAllocator as Z,restoreClassNameAllocator as Pe,snapshotClassNameAllocator as ee}from"@cssxio/compiler";import{mkdir as Ae,open as Te,readFile as te,rename as Ee,rm as M,stat as se,writeFile as $e}from"fs/promises";import{dirname as je,resolve as ke}from"path";var Y=20,re=5*6e4;async function oe(e,s,t){let r=ke(e),o=`${r}.lock`,n=Date.now(),m,i=0;for(;!m;){await Ae(je(r),{recursive:!0});let l;try{l=await Te(o,"wx")}catch(a){let u=a.code;if(u!=="EEXIST"){if(u!=="EACCES"&&u!=="EPERM")throw a;try{await se(o)}catch(c){if(c.code==="ENOENT"){if(i+=1,i>1)throw a;await new Promise(d=>setTimeout(d,Y));continue}throw c}}if(i=0,await Fe(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,Y));continue}try{await l.writeFile(`${process.pid}
10
+ ${Date.now()}
11
+ `)}catch(a){throw await l.close().catch(()=>{}),await M(o,{force:!0}).catch(()=>{}),a}m=l}try{let l=await Ie(r,s),a=await t(l),u=ee(l),c=`${r}.${process.pid}.${Date.now()}.tmp`;try{await $e(c,`${JSON.stringify(u,null,2)}
12
+ `,"utf8"),await Ee(c,r)}catch(d){throw await M(c,{force:!0}).catch(()=>{}),d}return a}finally{await m.close(),await M(o,{force:!0})}}async function Fe(e){try{let s=await se(e),t;try{t=await te(e,"utf8")}catch(n){let m=n.code;if(m==="EACCES"||m==="EPERM")return!1;throw n}let[r]=t.split(`
13
+ `),o=Number(r);if(Number.isSafeInteger(o)&&o>0)try{return process.kill(o,0),!1}catch(n){return n.code!=="ESRCH"?!1:(await M(e,{force:!0}),!0)}return Date.now()-s.mtimeMs<re?!1:(await M(e,{force:!0}),!0)}catch(s){if(s.code==="ENOENT")return!1;throw s}}async function Ie(e,s){try{let t=JSON.parse(await te(e,"utf8")),r=ee(Z(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 Pe(t)}catch(t){if(t.code==="ENOENT")return Z(s);throw t}}import{readdir as Le}from"fs/promises";import{join as Ve,resolve as Je}from"path";var De=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".mdx",".md"]),ze=new Set([".git",".next",".turbo","node_modules"]);async function ne(e,s=[]){let t=[],r=[e,...s],o=new Set;for(;r.length>0;){let n=r.pop(),m=Je(n);if(!o.has(m)){o.add(m);for(let i of await Le(n,{withFileTypes:!0})){let l=Ve(n,i.name);if(i.isDirectory()){ze.has(i.name)||r.push(l);continue}i.isFile()&&De.has(l.slice(l.lastIndexOf(".")))&&t.push(l)}}}return t.sort()}import{createClassNameAllocator as Be}from"@cssxio/compiler";import{readFile as _e}from"fs/promises";import{relative as Xe,resolve as Ue,sep as qe}from"path";async function Ws(e,s){let t=await ne(e,s.sourceRoots?.map(n=>Ue(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 _e(i,"utf8"),a=/\.(?:md|mdx)$/i.test(i);if(a&&!l.includes(s.importSource??"@cssxio/cssx"))continue;let u=a?await K(l,e,s.mdx):l,c=s.stableClassNames||s.naming==="source",d=await O(u,a?`${i}.tsx`:i,{...r,classNameAllocator:n,stableClassNames:c,...c?{stableClassNameFileName:Xe(e,i).replaceAll(qe,"/")}:{}});d&&m.push({id:i,candidates:d.candidates,composites:d.composites,atomicClasses:d.atomicClasses,origins:d.origins})}return m};return s.coordination==="manifest"?oe(s.manifestPath,I(s),o):o(s.classNameAllocator??Be(I(s)))}function Zs(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((u,c)=>u.id.localeCompare(c.id))){let u=new Map;for(let[c,d]of Object.entries(a.candidates)){let p=m.get(c)??new Set;p.add(d),m.set(c,p);let f=n.get(d)??{module:a.id,utilities:new Set,line:a.origins?.[c]?.line??0,column:a.origins?.[c]?.column??0};f.utilities.add(c),n.set(d,f);let x=u.get(d)??[];x.push(c),u.set(d,x)}for(let[c,d]of Object.entries(a.composites??{})){let p=d.flatMap(C=>u.get(C)??[]),f=p[0],x=n.get(c)??{module:a.id,utilities:new Set,line:f?a.origins?.[f]?.line??0:0,column:f?a.origins?.[f]?.column??0:0};for(let C of p)x.utilities.add(C);n.set(c,x)}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],[u])=>a.localeCompare(u)).map(([a,u])=>({className:a,module:u.module,utilities:[...u.utilities].sort(),line:u.line+1,column:u.column+1,selectorFound:new RegExp(`\\.${Ge(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 Ge(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{F as a,fe as b,ge as c,xe as d,he as e,I as f,nt as g,Rs as h,As as i,K as j,oe as k,ne as l,O as m,Ns as n,Ws as o,Zs as p};
@@ -0,0 +1,91 @@
1
+ import{a as B,b as x,c as w,d as F,e as O,f as M,g as C,h as k,i as S,k as I,m as N,n as H,o as v,p as V}from"./chunk-5R7RC6XB.js";import{b as A}from"./chunk-OHZUHF4D.js";import{createClassNameAllocator as Le}from"@cssxio/compiler";import{createUnplugin as He}from"unplugin";function E(e,s,o=Date.now()){e.ws.send({type:"update",updates:[{type:"css-update",path:s,acceptedPath:s,timestamp:o}]})}function $(e,s){let{cssFileName:o,sourceMap:r,options:t,rollupDataById:l,getTheme:y}=s,a=O(e.config.base,o),d=O("/",o);e.watcher?.on("unlink",p=>{l.delete(x(p)),E(e,d)}),e.middlewares.use((p,u,n)=>{let c=p.url?.split("?",1)[0];if(c!==a&&(c!==`${a}.map`||!r))return n();y().then(async i=>{let f=t.coordination==="manifest"?await v(e.config.root??process.cwd(),t):[...l.values()];return C(f,i,t.layer,r,t.darkMode,t.preflight)}).then(i=>{if(c===`${a}.map`){u.setHeader("Content-Type","application/json; charset=utf-8"),u.setHeader("Cache-Control","no-store"),u.end(i.map?k(i.map,o):"");return}u.setHeader("Content-Type","text/css; charset=utf-8"),u.setHeader("Cache-Control","no-store"),u.end(S(i,o))}).catch(i=>{u.setHeader("Content-Type","text/plain; charset=utf-8"),u.end(i instanceof Error?i.message:"Unable to compile CSSX development stylesheet.")})})}import{Buffer as ue}from"buffer";import{mkdir as pe,unlink as fe,writeFile as ye}from"fs/promises";import{basename as ge,dirname as xe,resolve as Ce}from"path";function j(e){let{options:s,cssFileName:o,sourceMap:r,dataById:t,getTheme:l}=e,y,a=process.cwd();return{config(d){d.metafile=!0},setup(d){a=d.initialOptions.absWorkingDir??process.cwd(),d.onEnd(async p=>{if(!p.metafile)return;let u=new Set(Object.keys(p.metafile.inputs).map(m=>Ce(a,m)));for(let m of t.keys())u.has(m)||t.delete(m);let n=s.coordination==="manifest"?await v(a,s):[...t.values()],c=await C(n,await l(),s.layer,r,s.darkMode,s.preflight),i=F(a,d.initialOptions,w(o,c.css));if(!c.css){y&&await fe(y).catch(()=>{}),y=void 0;return}let f=S(c,ge(i));if(d.initialOptions.write===!1){let m=p.outputFiles;if(!m)return;let g={path:i,contents:ue.from(f),hash:"",text:f};if(m.findIndex(P=>P.path===i)!==-1)throw new Error(`CSSX CSS asset collision at "${i}".`);m.push(g);return}await pe(xe(i),{recursive:!0}),await ye(i,f),y=i})},getWorkingDirectory:()=>a}}function W(e,s,o){let r=new Set;for(let t of s)e.moduleGraph?.invalidateModule(t,r,o,!0);for(let t of r){if(!t.id)continue;let l=e.runner?.evaluatedModules?.getModuleById(t.id);l&&e.runner?.evaluatedModules?.invalidateModule(l)}}function _(e){return async function(o){let r=this.environment;if(!r||r.name==="client")return;let t=o.modules,l=t.filter(d=>{let p=e.get(x(d.id??""));return!!(p&&p.cssOnlySignature&&p.atomicClasses?.length===0)});if(l.length===0)return;let y=new Map(l.map(d=>[d,e.get(x(d.id)).cssOnlySignature]));for(let d of l)d.url&&await r.transformRequest(d.url);if(l.every(d=>{let p=e.get(x(d.id));return!!(p&&p.atomicClasses.length===0&&p.cssOnlySignature===y.get(d))}))return W(r,l,o.timestamp),t.filter(d=>!l.includes(d))}}import{mkdir as he,writeFile as ve}from"fs/promises";import{dirname as Se,resolve as we}from"path";function X(e,s){let o=new Map,r=[];for(let t of s)t.id?o.set(t.id,t):r.push(t);for(let t of e)t.id?o.set(t.id,t):r.push(t);return[...o.values(),...r]}function K(e,s){let o=e.buildInfo?.[s];if(!o||typeof o!="object")return;let{id:r,candidates:t,composites:l,atomicClasses:y,origins:a}=o;return{id:typeof r=="string"?r:"",candidates:t&&typeof t=="object"?t:{},composites:l&&typeof l=="object"?l:{},...Array.isArray(y)?{atomicClasses:y}:{},origins:a&&typeof a=="object"?a:{}}}function G(e,s,o,r,t,l,y,a,d=!0,p,u){let n=e.name??e.options?.name;n==="server"||n==="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 i=p?await p():X([...c.modules].map(g=>K(g,l)).filter(g=>g!==void 0),y?.values()??[]),f=await C(i,await o(),r,t,a,d);if(u?.debug){let g=V(i,f.css,u);if(u.debug===!0)console.info(`CSSX: ${g.naming.mode} naming; ${g.classes.filter(h=>h.selectorFound).length}/${g.classes.length} generated classes have selectors; compiler mappings ${g.serverClientMappings.status}${g.serverClientMappings.conflicts.length?` (${g.serverClientMappings.conflicts.length} utility conflicts)`:""}.`);else{let h=we(e.context,u.debug.reportFile);await he(Se(h),{recursive:!0}),await ve(h,`${JSON.stringify(g,null,2)}
2
+ `,"utf8")}}if(!f.css)return;let m=w(s,f.css);if(c.getAsset?.(m))throw new Error(`CSSX CSS asset collision at "${m}".`);if(c.emitAsset(m,new e.webpack.sources.RawSource(S(f,m))),f.map){let g=`${m}.map`;if(c.getAsset?.(g))throw new Error(`CSSX CSS map asset collision at "${g}".`);c.emitAsset(g,new e.webpack.sources.RawSource(k(f.map,m)))}})})}var b="@cssxio/unplugin/rules";function R(){return{id:"",rules:[],candidates:{},composites:{},origins:{},cssOnlySignature:""}}import{createClassNameAllocator as Me}from"@cssxio/compiler";function J(e,s){return`${e}\0${JSON.stringify(s)}`}var q=new Map;function L(e,s){let o=J(e,s),r=q.get(o);return r||(r={classNameAllocator:s.classNameAllocator??Me(M(s)),transformedDataById:new Map},q.set(o,r)),r}function T({compiler:e,options:s,cssFileName:o,sourceMap:r,getTheme:t}){let l=L(e.context,s);G(e,o,t,s.layer,r,b,l.transformedDataById,s.darkMode,s.preflight,s.stableClassNames||s.naming==="source"||s.coordination==="manifest"?()=>v(e.context,s):void 0,s)}function Y(e){if(!e||typeof e!="object")return R();let{id:s,rules:o,candidates:r,composites:t,atomicClasses:l,origins:y,cssOnlySignature:a}=e;return{id:typeof s=="string"?s:"",rules:Array.isArray(o)?o:[],candidates:r&&typeof r=="object"?r:{},composites:t&&typeof t=="object"?t:{},...Array.isArray(l)?{atomicClasses:l}:{},origins:y&&typeof y=="object"?y:{},cssOnlySignature:typeof a=="string"?a:""}}function z(e){return!e||typeof e!="object"?R():Y(e[b])}function Q(e){return async function(s,o){let{framework:r,options:t,cssFileName:l,sourceMap:y,rollupDataById:a,getTheme:d}=e,p=new Set(Object.values(o).flatMap(i=>i.type==="chunk"?Object.keys(i.modules??{}):[]).map(x));if(r!=="vite")for(let i of a.keys())p.has(i)||a.delete(i);let u=t.coordination==="manifest"?await v(process.cwd(),t):r==="vite"?[...a.values()]:[...p].map(i=>{let f=z(this.getModuleInfo(i)?.meta);return Object.keys(f.candidates).length>0?f:a.get(i)??f}),n=await C(u,await d(),t.layer,y,t.darkMode,t.preflight);if(!n.css)return;let c=w(l,n.css);if(Object.hasOwn(o,c))throw new Error(`CSSX CSS asset collision at "${c}".`);if(this.emitFile({type:"asset",fileName:c,source:S(n,c)}),n.map){let i=`${c}.map`;if(Object.hasOwn(o,i))throw new Error(`CSSX CSS map asset collision at "${i}".`);this.emitFile({type:"asset",fileName:i,source:k(n.map,c)})}}}import{relative as ke,resolve as se,sep as Ne}from"path";function Z(e){let s=e.getNativeBuildContext?.();return s&&(s.framework==="webpack"||s.framework==="rspack")?s.loaderContext?.rootContext??process.cwd():void 0}function ee(e){return`if (typeof document !== "undefined" && typeof module !== "undefined" && module.hot) {
3
+ const key = "__cssxStylesheetHmr";
4
+ const state = globalThis[key] || (globalThis[key] = { revision: 0, staged: [], replacements: [] });
5
+ const stylesheetLink = [...document.querySelectorAll('link[rel="stylesheet"]')].find((link) =>
6
+ new URL(link.href, document.baseURI).pathname.endsWith(${JSON.stringify(`/${e}`)}),
7
+ );
8
+ const nextLink = stylesheetLink && (() => {
9
+ const path = new URL(stylesheetLink.href, document.baseURI).pathname;
10
+ return path.includes("/_next/");
11
+ })();
12
+ if (!state.installed) {
13
+ state.installed = true;
14
+ state.stage = () => {
15
+ const revision = ++state.revision;
16
+ state.staged = [];
17
+ state.replacements = [];
18
+ const links = [...document.querySelectorAll('link[rel="stylesheet"]')].filter((link) =>
19
+ new URL(link.href, document.baseURI).pathname.endsWith(${JSON.stringify(`/${e}`)}),
20
+ );
21
+ return Promise.all(
22
+ links.map(
23
+ (link) =>
24
+ new Promise((resolve) => {
25
+ const replacement = link.cloneNode();
26
+ const url = new URL(link.href, document.baseURI);
27
+ url.searchParams.set("cssx", String(revision));
28
+ replacement.href = url.href;
29
+ const finish = (loaded) => {
30
+ replacement.removeEventListener("load", onLoad);
31
+ replacement.removeEventListener("error", onError);
32
+ if (loaded) {
33
+ state.staged.push(link);
34
+ if (state.removeOnLoad) link.remove();
35
+ }
36
+ else replacement.remove();
37
+ resolve();
38
+ };
39
+ const onLoad = () => finish(true);
40
+ const onError = () => finish(false);
41
+ replacement.addEventListener("load", onLoad);
42
+ replacement.addEventListener("error", onError);
43
+ state.replacements.push(replacement);
44
+ link.after(replacement);
45
+ }),
46
+ ),
47
+ );
48
+ };
49
+ module.hot.addStatusHandler((status) => {
50
+ if (status === "prepare" || status === "dispose") {
51
+ return state.stage();
52
+ }
53
+ if (status === "idle") {
54
+ for (const link of state.staged) link.remove();
55
+ state.staged = [];
56
+ state.replacements = [];
57
+ }
58
+ if (status === "abort" || status === "fail") {
59
+ for (const replacement of state.replacements) replacement.remove();
60
+ state.staged = [];
61
+ state.replacements = [];
62
+ }
63
+ });
64
+ if (nextLink) module.hot.accept(() => void state.stage());
65
+ for (const updateKey of Object.getOwnPropertyNames(globalThis).filter((name) => name.startsWith("webpackHotUpdate"))) {
66
+ const update = globalThis[updateKey];
67
+ if (typeof update !== "function") continue;
68
+ globalThis[updateKey] = function (...args) {
69
+ void state.stage();
70
+ return update.apply(this, args);
71
+ };
72
+ }
73
+ if (stylesheetLink) {
74
+ state.removeOnLoad = Boolean(nextLink);
75
+ const refresh = async () => {
76
+ try {
77
+ const url = new URL(stylesheetLink.href, document.baseURI);
78
+ url.searchParams.set("cssx-probe", String(Date.now()));
79
+ const css = await fetch(url.href, { cache: "no-store" }).then((response) => response.text());
80
+ if (state.css && state.css !== css) void state.stage();
81
+ state.css = css;
82
+ } catch {
83
+ }
84
+ };
85
+ void refresh();
86
+ state.poll = setInterval(() => void refresh(), 500);
87
+ }
88
+ }
89
+ }`}function te(e,s,o){let r=e.getNativeBuildContext?.();if(!r||r.framework!=="webpack"&&r.framework!=="rspack")return;let t=r.loaderContext?._module;if(!t)return;let l=t.buildInfo??(t.buildInfo={});l[o]=s}function oe(e){return async function(s,o){let{framework:r,options:t,classNameAllocator:l,rollupDataById:y,esbuildDataById:a,cssFileName:d,getEsbuildWorkingDirectory:p,notifyViteStyles:u}=e;t.themeFile&&this.addWatchFile?.(se(t.themeFile));let n=Z(this),c=n?L(n,t):void 0,i={...t,className:{...t.className,...t.naming==="hash"?{variant:"random"}:{},...t.naming==="serial"?{variant:"serial"}:{}},stableClassNames:t.stableClassNames||t.naming==="source",classNameAllocator:c?.classNameAllocator??l,...t.stableClassNames||t.naming==="source"?{stableClassNameFileName:ke(n??process.cwd(),x(o)).replaceAll(Ne,"/")}:{}},f={...i};delete f.coordination,delete f.manifestPath;let m=t.coordination==="manifest"?await I(t.manifestPath,f.className,me=>N(s,o,{...f,classNameAllocator:me},H(this,o))):await N(s,o,i,H(this,o)),g={id:x(o),rules:m?.rules??[],candidates:m?.candidates??{},composites:m?.composites??{},atomicClasses:m?.atomicClasses??[],origins:m?.origins??{},cssOnlySignature:m?.cssOnlySignature??""};te(this,g,b);let h=x(o);(m||h===o)&&(y.set(h,g),a.set(se(p(),h),g),c?.transformedDataById.set(h,g)),r==="vite"&&u(O("/",d));let P=m?.code??s;return{code:(r==="webpack"||r==="rspack")&&m?`${P}
90
+ ${ee(d)}`:P,meta:{[b]:g},...m?.map?{map:m.map}:{}}}}import{createClassNameAllocator as De}from"@cssxio/compiler";import{Buffer as ne}from"buffer";import{mkdir as Pe,readFile as Ae,unlink as ie,writeFile as le}from"fs/promises";import{basename as de,dirname as Be,relative as Fe,resolve as Ie,sep as Ee}from"path";import{realpath as be}from"fs/promises";import{resolve as Oe}from"path";async function U(e){return be(e).catch(()=>Oe(e))}async function re(e,s){let o=await B(s);return C(e.map(([,r])=>r),o,s.layer,s.sourceMap??!0,s.darkMode,s.preflight)}function ae(e){return/\.tsx?$/.test(e)?"ts":"js"}var Re=/\.[cm]?[jt]sx?$/;function ce(e={}){if(A(e),e.classNameAllocator&&e.className)throw new Error("CSSX classNameAllocator owns naming. Omit className when supplying a custom allocator.");let s=new Map,o=e.classNameAllocator??De(M(e)),r,t;return{name:"@cssxio/unplugin",setup(l){let y=l.initialOptions.absWorkingDir??process.cwd();l.initialOptions.metafile=!0,l.onLoad({filter:Re},async({path:a})=>{let d=await Ae(a,"utf8"),p=e.stableClassNames||e.naming==="source",u={...e,className:M(e),stableClassNames:p,...p?{stableClassNameFileName:Fe(y,a).replaceAll(Ee,"/")}:{},classNameAllocator:o},n={...u};delete n.coordination,delete n.manifestPath;let c=e.coordination==="manifest"?await I(e.manifestPath,n.className,f=>N(d,a,{...n,classNameAllocator:f})):await N(d,a,u);if(!c)return;let i=await U(a);return s.set(i,{id:i,candidates:c.candidates,composites:c.composites,atomicClasses:c.atomicClasses,origins:c.origins}),{contents:c.code,loader:ae(a)}}),l.onEnd(async a=>{if(!a.metafile)return;let d=new Set(await Promise.all(Object.keys(a.metafile.inputs).map(m=>U(Ie(y,m)))));for(let m of s.keys())d.has(m)||s.delete(m);let p=e.coordination==="manifest"?(await v(y,e)).map(m=>[m.id,m]):[...s],u=await re(p,e),n=F(y,l.initialOptions,w(e.cssFileName??"cssx.css",u.css));if(!u.css){r&&await ie(r).catch(()=>{}),t&&await ie(t).catch(()=>{}),r=void 0,t=void 0;return}let c=u.map?`${u.css}
91
+ /*# sourceMappingURL=${de(n)}.map */`:u.css,i=`${n}.map`,f=u.map?JSON.stringify({...u.map,file:de(n)}):void 0;if(l.initialOptions.write===!1){if(!a.outputFiles)return;if(a.outputFiles.some(m=>m.path===n))throw new Error(`CSSX CSS asset collision at "${n}".`);a.outputFiles.push({path:n,contents:ne.from(c),hash:"",text:c}),f&&a.outputFiles.push({path:i,contents:ne.from(f),hash:"",text:f});return}await Pe(Be(n),{recursive:!0}),await le(n,c),f&&await le(i,f),r=n,t=f?i:void 0})}}}var Te=/\.(?:[cm]?[jt]sx?|astro|vue|md|mdx)(?:\?.*)?$/,Ue=(e={},s)=>{if(A(e),e.classNameAllocator&&e.className)throw new Error("CSSX classNameAllocator owns naming. Omit className when supplying a custom allocator.");let o=e.cssFileName??"cssx.css",r=e.sourceMap??!0,t=new Map,l=e.classNameAllocator??Le(M(e)),y=new Map,a,d=()=>B(e),p=j({options:e,cssFileName:o,sourceMap:r,dataById:y,getTheme:d}),u=Q({framework:s.framework,options:e,cssFileName:o,sourceMap:r,rollupDataById:t,getTheme:d});return{name:"@cssxio/unplugin",enforce:"pre",transform:{filter:{id:Te},handler:oe({framework:s.framework,options:e,classNameAllocator:l,rollupDataById:t,esbuildDataById:y,cssFileName:o,getEsbuildWorkingDirectory:p.getWorkingDirectory,notifyViteStyles:n=>{a&&E(a,n)}})},watchChange(n,c){c.event==="delete"&&t.delete(x(n))},rollup:{generateBundle:u},vite:{generateBundle:u,configureServer(n){a=n,$(n,{cssFileName:o,sourceMap:r,options:e,rollupDataById:t,getTheme:d})},hotUpdate:{order:"pre",handler:_(t)}},...s.framework==="webpack"?{webpack(n){T({compiler:n,options:e,cssFileName:o,sourceMap:r,getTheme:d})}}:{},...s.framework==="rspack"?{rspack(n){T({compiler:n,options:e,cssFileName:o,sourceMap:r,getTheme:d})}}:{},...s.framework==="esbuild"?{esbuild:{config:p.config,setup:p.setup}}:{}}},D=He(Ue),As=D.vite,Bs=D.rollup,Fs=D.webpack,Is=D.rspack,Ve=D;export{Ue as a,D as b,As as c,Bs as d,Fs as e,Is as f,Ve as g,ce as h};
@@ -0,0 +1 @@
1
+ import{isAbsolute as i,normalize as n,sep as s}from"path";function t(e){if(!e||i(e))throw new Error("cssFileName must be a non-empty relative path.");let r=n(e);if(r===".."||r.startsWith(`..${s}`))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 u(e){if(e.sourceRoots&&e.sourceRoots.some(a=>typeof a!="string"||!a.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.');t(e.cssFileName??"cssx.css")}export{t as a,u as b};
package/dist/esbuild.cjs CHANGED
@@ -1,12 +1,17 @@
1
- "use strict";var lt=Object.create;var _=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var mt=Object.getOwnPropertyNames;var dt=Object.getPrototypeOf,ut=Object.prototype.hasOwnProperty;var pt=(e,s)=>{for(var t in s)_(e,t,{get:s[t],enumerable:!0})},ie=(e,s,t,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of mt(s))!ut.call(e,o)&&o!==t&&_(e,o,{get:()=>s[o],enumerable:!(r=ct(s,o))||r.enumerable});return e};var ft=(e,s,t)=>(t=e!=null?lt(dt(e)):{},ie(s||!e||!e.__esModule?_(t,"default",{value:e,enumerable:!0}):t,e)),gt=e=>ie(_({},"__esModule",{value:!0}),e);var vt={};pt(vt,{default:()=>at});module.exports=gt(vt);var it=require("@cssxio/compiler"),ne=require("buffer"),b=require("fs/promises"),A=require("path");var ae=require("fs/promises"),le=require("path");async function te(e){return(0,ae.realpath)(e).catch(()=>(0,le.resolve)(e))}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 L(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 V(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]",V(s))}var O=require("path");function U(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,"/")}`}var W=require("@cssxio/compiler");function se(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 yt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function H(e){let s="",t=e<0?-e<<1|1:e<<1;do{let r=t&31;t>>>=5,t&&(r|=32),s+=yt[r]}while(t);return s}function ue(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(`${H(n.column-d)}${H(n.source-t)}${H(n.originalLine-r)}${H(n.originalColumn-o)}`),d=n.column,t=n.source,r=n.originalLine,o=n.originalColumn;return s.map(n=>n.join(",")).join(";")}function pe(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=se({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=se(d,n.css)}return{version:3,sources:r,names:[],mappings:ue(i)}}var fe='*,::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 h(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 C of[...e].sort((x,T)=>x.id.localeCompare(T.id))){for(let[x,T]of Object.entries(C.candidates))if(x in d||(d[x]=T),C.id&&!u.has(x)){let j=C.origins?.[x];u.set(x,{id:C.id,line:j?.line??0,column:j?.column??0})}for(let[x,T]of Object.entries(C.composites??{})){let j=n[x];if(j&&j.join(" ")!==T.join(" "))throw new Error(`CSSX composite class collision for "${x}".`);n[x]=T}C.atomicClasses===void 0&&(l=!1);for(let x of C.atomicClasses??[])a.add(x)}let c=Object.keys(d).sort(),p=i?fe:"";if(c.length===0)return{css:p&&t?`@layer ${t}{${p}}`:p};let m=await(0,W.compileUtilities)(c,C=>d[C],s,(0,W.createSelectorAliases)(n),l?a:void 0,{darkMode:o}),f=t?`@layer ${t}{`:"",g=`${f}${p}${m.css}${f?"}":""}`,P=r?pe(`${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 ge=require("path");function v(e,s){return e.map?`${e.css}
3
- /*# sourceMappingURL=${(0,ge.basename)(s)}.map */`:e.css}async function ye(e,s){let t=await w(s);return h(e.map(([,r])=>r),t,s.layer,s.sourceMap??!0,s.darkMode,s.preflight)}var ot=require("@cssxio/compiler"),rt=require("unplugin");function xe(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]}function Ce(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:{}}}function he(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():xe([...c.modules].map(g=>Ce(g,i)).filter(g=>g!==void 0),d?.values()??[]),m=await h(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 X(){return{id:"",rules:[],candidates:{},composites:{},origins:{},cssOnlySignature:""}}var Me=require("@cssxio/compiler");function Se(e,s){return`${e}\0${JSON.stringify(s)}`}var be=new Map;function z(e,s){let t=Se(e,s),r=be.get(t);return r||(r={classNameAllocator:(0,Me.createClassNameAllocator)(),transformedDataById:new Map},be.set(t,r)),r}var He=require("@cssxio/compiler"),_e=require("fs/promises"),Y=require("path");var ve=require("fs/promises"),we=require("path"),xt=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro"]),Ct=new Set([".git",".next",".turbo","node_modules"]);async function Oe(e){let s=[],t=[e];for(;t.length>0;){let r=t.pop();for(let o of await(0,ve.readdir)(r,{withFileTypes:!0})){let i=(0,we.join)(r,o.name);if(o.isDirectory()){Ct.has(o.name)||t.push(i);continue}o.isFile()&&xt.has(i.slice(i.lastIndexOf(".")))&&s.push(i)}}return s.sort()}var ke=require("@cssxio/compiler");function G(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 J(e){let s="const style = ",t=e.indexOf(s)+s.length,r=e.indexOf(";",t);return e.slice(t,r)}async function Ne(e,s,t,r){let o=G(e);if(o.length===0)return null;let i=t.classNameAllocator??(0,ke.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=J(u.code);a=`${a.slice(0,l.start)}${c}${a.slice(l.end)}`,n.push({...u,atomicClasses:[],origins:{}})}return D(a,n)}var Pe=require("@babel/core"),Te=ft(require("@cssxio/babel-plugin"),1),q=require("@cssxio/compiler");function Re(e){return{className:`cssx-${V(e)}`,css:e}}function Ae(e,s){return e&&s?`@layer ${s}{${e}}`:e}async function Fe(e,s,t,r){let o=t.importSource??"@cssxio/cssx",i=await w(t),d=await(0,Pe.transformAsync)(e,{babelrc:!1,configFile:!1,filename:s,parserOpts:{plugins:["jsx","typescript"]},plugins:[[Te.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,q.compileUtilities)(m,g=>a[g],i,(0,q.createSelectorAliases)(u),new Set(c),{darkMode:t.darkMode})).css;return{code:d.code,rules:f?[Re(Ae(f,t.layer))]:[],candidates:a,composites:u,atomicClasses:c,origins:l,cssOnlySignature:p,map:d.map}}var je=require("@cssxio/compiler"),Le=require("@vue/compiler-sfc");function K(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 Q(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 oe(e,s,t){let r={},o=e.slice(s);for(let[i,d]of Object.entries(t))r[i]=Q(e,s+K(o,d));return r}function Ee(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 Ie(e,s){if(!s)return e;let t=s==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,r=>{let o=r[0]==='"'?JSON.parse(r):Ee(r),i=JSON.stringify(o);return t==='"'?i:`'${i.slice(1,-1).replaceAll("'","\\'")}'`})}function De(e,s,t,r,o){let i={};for(let[d,n]of Object.entries(o)){let a=K(t,n);i[d]=Q(e,s+Math.max(0,a-r))}return i}function Be(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 $e(e,s,t,r,o){let i=G(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=Ie(J(p.code),Be(e,l.start));a=`${a.slice(0,l.start)}${m}${a.slice(l.end)}`,n.push({...p,origins:De(e,l.start,c,u.length,p.origins)})}return D(a,n)}async function Ve(e,s,t,r){let o=s.split("?",1).join(""),i=(0,Le.parse)(e,{filename:o});if(i.errors.length>0)throw new Error(i.errors[0].message);let d=t.classNameAllocator??(0,je.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:oe(e,c.loc.start.offset,m.origins)})}let l=i.descriptor.template;if(l?.content.includes("sx")){let c=await $e(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:oe(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 ht=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".vue"]);async function S(e,s,t={},r){L(t);let o=t.importSource??"@cssxio/cssx",i=s.split("?",1).join("");return!ht.has(i.slice(i.lastIndexOf(".")))||!e.includes(o)?null:i.endsWith(".astro")?Ne(e,s,t,S):i.endsWith(".vue")?Ve(e,s,t,S):Fe(e,i,t,r)}function Ue(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 We(e,s){let t=await Oe(e),r=(0,He.createClassNameAllocator)(s.className),o=[];for(let i of t){let d=await(0,_e.readFile)(i,"utf8"),n=await S(d,i,{...s,classNameAllocator:r,stableClassNames:!0,stableClassNameFileName:(0,Y.relative)(e,i).replaceAll(Y.sep,"/")});n&&o.push({id:i,candidates:n.candidates,composites:n.composites,atomicClasses:n.atomicClasses,origins:n.origins})}return o}function re({compiler:e,options:s,cssFileName:t,sourceMap:r,getTheme:o}){let i=z(e.context,s);he(e,t,o,s.layer,r,N,i.transformedDataById,s.darkMode,s.preflight,s.stableClassNames?()=>We(e.context,s):void 0)}function Z(e,s,t=Date.now()){e.ws.send({type:"update",updates:[{type:"css-update",path:s,acceptedPath:s,timestamp:t}]})}function Xe(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)),Z(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=>h([...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 ze(e){if(!e||typeof e!="object")return X();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 Ge(e){return!e||typeof e!="object"?X():ze(e[N])}function Je(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=Ge(this.getModuleInfo(m)?.meta);return Object.keys(f.candidates).length>0?f:n.get(m)??f}),c=await h(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 qe(e){let s=e.getNativeBuildContext?.();return s&&(s.framework==="webpack"||s.framework==="rspack")?s.loaderContext?.rootContext??process.cwd():void 0}function Ke(e){return`if (typeof document !== "undefined" && typeof module !== "undefined" && module.hot) {
1
+ "use strict";var bt=Object.create;var G=Object.defineProperty;var vt=Object.getOwnPropertyDescriptor;var Nt=Object.getOwnPropertyNames;var Mt=Object.getPrototypeOf,Ot=Object.prototype.hasOwnProperty;var kt=(e,t)=>{for(var s in t)G(e,s,{get:t[s],enumerable:!0})},Ce=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Nt(t))!Ot.call(e,r)&&r!==s&&G(e,r,{get:()=>t[r],enumerable:!(o=vt(t,r))||o.enumerable});return e};var Pt=(e,t,s)=>(s=e!=null?bt(Mt(e)):{},Ce(t||!e||!e.__esModule?G(s,"default",{value:e,enumerable:!0}):s,e)),At=e=>Ce(G({},"__esModule",{value:!0}),e);var Vt={};kt(Vt,{default:()=>xe});module.exports=At(Vt);var wt=require("@cssxio/compiler"),ye=require("buffer"),O=require("fs/promises"),v=require("path");var gt=require("@cssxio/compiler"),yt=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 J(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]",J(t))}var F=require("path");function z(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 K=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 Rt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function q(e){let t="",s=e<0?-e<<1|1:e<<1;do{let o=s&31;s>>>=5,s&&(o|=32),t+=Rt[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(`${q(n.column-m)}${q(n.source-s)}${q(n.originalLine-o)}${q(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 b(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 W=x.origins?.[h];d.set(h,{id:x.id,line:W?.line??0,column:W?.column??0})}for(let[h,A]of Object.entries(x.composites??{})){let W=n[h];if(W&&W.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,K.compileUtilities)(l,x=>m[x],t,(0,K.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"),Q=require("path"),Ae=20,Re=5*6e4;async function V(e,t,s){let o=(0,Q.resolve)(e),r=`${o}.lock`,a=Date.now(),m,n=0;for(;!m;){await(0,C.mkdir)((0,Q.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 Et(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 Tt(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 Et(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 Tt(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"),Y=require("path"),Ft=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".mdx",".md"]),$t=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,Y.resolve)(a);if(!r.has(m)){r.add(m);for(let n of await(0,Ee.readdir)(a,{withFileTypes:!0})){let i=(0,Y.join)(a,n.name);if(n.isDirectory()){$t.has(n.name)||o.push(i);continue}n.isFile()&&Ft.has(i.slice(i.lastIndexOf(".")))&&s.push(i)}}}return s.sort()}var Fe=require("@cssxio/compiler");function Z(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 ee(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=Z(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=ee(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 te(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 se(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]=se(e,t+te(r,m));return o}function De(e,t,s,o,r){let a={};for(let[m,n]of Object.entries(r)){let i=te(s,n);a[m]=se(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=Z(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(ee(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=Pt(require("@cssxio/babel-plugin"),1),re=require("@cssxio/compiler");function Xe(e){return{className:`cssx-${J(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,re.compileUtilities)(p,f=>i[f],a,(0,re.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 Dt=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".vue"]);async function w(e,t,s={},o){E(s);let r=s.importSource??"@cssxio/cssx",a=t.split("?",1).join("");return!Dt.has(a.slice(a.lastIndexOf(".")))||!e.includes(r)?null:a.endsWith(".astro")?$e(e,t,s,w):a.endsWith(".vue")?He(e,t,s,w):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 w(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 oe(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)),oe(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 b(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 b(l,await a(),t.layer,o,t.darkMode,t.preflight),p=z(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 ne=require("fs/promises"),ae=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(`\\.${It(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 It(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 b(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,ae.resolve)(e.context,d.debug.reportFile);await(0,ne.mkdir)((0,ae.dirname)(x),{recursive:!0}),await(0,ne.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 ie(){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 le(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=le(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 ie();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"?ie():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 b(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 Ye(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=qe(this),p=c?z(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,"/")}:{}},Ue(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
- ${Ke(a)}`:P,meta:{[N]:f},...m?.map?{map:m.map}:{}}}}var Ze=require("buffer"),B=require("fs/promises"),$=require("path");function et(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 h([...o.values()],await i(),s.layer,r,s.darkMode,s.preflight),p=U(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:Ze.Buffer.from(m),hash:"",text:m};if(f.findIndex(C=>C.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 tt(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 st(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 tt(r,i,t.timestamp),o.filter(a=>!i.includes(a))}}var St=/\.(?:[cm]?[jt]sx?|astro|vue)(?:\?.*)?$/,bt=(e={},s)=>{L(e);let t=e.cssFileName??"cssx.css",r=e.sourceMap??!0,o=new Map,i=(0,ot.createClassNameAllocator)(),d=new Map,n,a=()=>w(e),l=et({options:e,cssFileName:t,sourceMap:r,dataById:d,getTheme:a}),u=Je({framework:s.framework,options:e,cssFileName:t,sourceMap:r,rollupDataById:o,getTheme:a});return{name:"@cssxio/unplugin",enforce:"pre",transform:{filter:{id:St},handler:Ye({framework:s.framework,options:e,classNameAllocator:i,rollupDataById:o,esbuildDataById:d,cssFileName:t,getEsbuildWorkingDirectory:l.getWorkingDirectory,notifyViteStyles:c=>{n&&Z(n,c)}})},watchChange(c,p){p.event==="delete"&&o.delete(y(c))},rollup:{generateBundle:u},vite:{generateBundle:u,configureServer(c){n=c,Xe(c,{cssFileName:t,sourceMap:r,options:e,rollupDataById:o,getTheme:a})},hotUpdate:{order:"pre",handler:st(o)}},...s.framework==="webpack"?{webpack(c){re({compiler:c,options:e,cssFileName:t,sourceMap:r,getTheme:a})}}:{},...s.framework==="rspack"?{rspack(c){re({compiler:c,options:e,cssFileName:t,sourceMap:r,getTheme:a})}}:{},...s.framework==="esbuild"?{esbuild:{config:l.config,setup:l.setup}}:{}}},ee=(0,rt.createUnplugin)(bt),dr=ee.vite,ur=ee.rollup,pr=ee.webpack,fr=ee.rspack;function nt(e){return/\.tsx?$/.test(e)?"ts":"js"}var Mt=/\.[cm]?[jt]sx?$/;function at(e={}){let s=new Map,t=(0,it.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 te(n);return s.set(u,{id:u,candidates:l.candidates,composites:l.composites,atomicClasses:l.atomicClasses,origins:l.origins}),{contents:l.code,loader:nt(n)}}),i.onEnd(async n=>{if(!n.metafile)return;let a=new Set(await Promise.all(Object.keys(n.metafile.inputs).map(f=>te((0,A.resolve)(d,f)))));for(let f of s.keys())a.has(f)||s.delete(f);let l=await ye([...s],e),u=U(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})}}}
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?le(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=>w(t,s,{...g,classNameAllocator:A},pe(this,s))):await w(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 jt=/\.(?:[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,gt.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:jt},handler:ft({framework:t.framework,options:e,classNameAllocator:a,rollupDataById:r,esbuildDataById:m,cssFileName:s,getEsbuildWorkingDirectory:c.getWorkingDirectory,notifyViteStyles:l=>{n&&oe(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}}:{}}},ce=(0,yt.createUnplugin)(Bt),Io=ce.vite,jo=ce.rollup,Bo=ce.webpack,Lo=ce.rspack;var xt=require("fs/promises"),Ct=require("path");async function ge(e){return(0,xt.realpath)(e).catch(()=>(0,Ct.resolve)(e))}async function ht(e,t){let s=await T(t);return b(e.map(([,o])=>o),s,t.layer,t.sourceMap??!0,t.darkMode,t.preflight)}function St(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,wt.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=>w(i,n,{...l,classNameAllocator:g})):await w(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:St(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 ht(c,e),l=z(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})}}}
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'esbuild';
2
- import { C as CssxPluginOptions } from './options-ByIyWTN0.cjs';
2
+ import { C as CssxPluginOptions } from './options-DkqShf7w.cjs';
3
3
  import '@cssxio/compiler';
4
4
 
5
5
  /**
package/dist/esbuild.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'esbuild';
2
- import { C as CssxPluginOptions } from './options-ByIyWTN0.js';
2
+ import { C as CssxPluginOptions } from './options-DkqShf7w.js';
3
3
  import '@cssxio/compiler';
4
4
 
5
5
  /**
package/dist/esbuild.js CHANGED
@@ -1 +1 @@
1
- import{j as a}from"./chunk-SKXNEQ2Z.js";export{a as default};
1
+ import{h as e}from"./chunk-KEHM5MVZ.js";import"./chunk-5R7RC6XB.js";import"./chunk-OHZUHF4D.js";export{e as default};