@cssxio/unplugin 0.5.1 → 0.8.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.
- package/README.md +73 -17
- package/dist/chunk-BPBCQNZV.js +91 -0
- package/dist/chunk-GGFXMP4P.js +13 -0
- package/dist/chunk-T2L6RO3O.js +1 -0
- package/dist/esbuild.cjs +17 -7
- package/dist/esbuild.d.cts +1 -1
- package/dist/esbuild.d.ts +1 -1
- package/dist/esbuild.js +1 -1
- package/dist/index.cjs +17 -7
- package/dist/index.d.cts +10 -24
- package/dist/index.d.ts +10 -24
- package/dist/index.js +1 -1
- package/dist/next-loader.cjs +16 -0
- package/dist/next-loader.d.cts +33 -0
- package/dist/next-loader.d.ts +33 -0
- package/dist/next-loader.js +4 -0
- package/dist/next.cjs +1 -0
- package/dist/next.d.cts +39 -0
- package/dist/next.d.ts +39 -0
- package/dist/next.js +1 -0
- package/dist/options-DkqShf7w.d.cts +56 -0
- package/dist/options-DkqShf7w.d.ts +56 -0
- package/dist/rollup.cjs +16 -6
- package/dist/rollup.d.cts +3 -3
- package/dist/rollup.d.ts +3 -3
- package/dist/rollup.js +1 -1
- package/dist/rspack.cjs +16 -6
- package/dist/rspack.d.cts +1 -1
- package/dist/rspack.d.ts +1 -1
- package/dist/rspack.js +1 -1
- package/dist/source-map-from-context-B4SX_KAW.d.cts +19 -0
- package/dist/source-map-from-context-B4SX_KAW.d.ts +19 -0
- package/dist/vite.cjs +16 -6
- package/dist/vite.d.cts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.js +1 -1
- package/dist/webpack.cjs +16 -6
- package/dist/webpack.d.cts +1 -1
- package/dist/webpack.d.ts +1 -1
- package/dist/webpack.js +1 -1
- package/package.json +15 -4
- package/dist/chunk-KCX3ORPX.js +0 -93
- package/dist/options-kIzRyZSc.d.cts +0 -29
- package/dist/options-kIzRyZSc.d.ts +0 -29
package/README.md
CHANGED
|
@@ -3,43 +3,92 @@
|
|
|
3
3
|
CSSX has build tool adapters at these entrypoints:
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
|
-
import
|
|
6
|
+
import cssxEsbuild from '@cssxio/unplugin/esbuild';
|
|
7
7
|
import cssxRollup from '@cssxio/unplugin/rollup';
|
|
8
|
-
import cssxWebpack from '@cssxio/unplugin/webpack';
|
|
9
8
|
import cssxRspack from '@cssxio/unplugin/rspack';
|
|
10
|
-
import
|
|
9
|
+
import cssxVite from '@cssxio/unplugin/vite';
|
|
10
|
+
import cssxWebpack from '@cssxio/unplugin/webpack';
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
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
|
|
17
48
|
import cssx from '@cssxio/unplugin/vite';
|
|
49
|
+
|
|
18
50
|
export default { plugins: [cssx()] };
|
|
19
51
|
```
|
|
20
52
|
|
|
53
|
+
### Vue 3 with Vite
|
|
54
|
+
|
|
55
|
+
Place CSSX before Vue in the Vite plugin list. CSSX transforms `create` and
|
|
56
|
+
`sx` calls in `<script>`, `<script setup>`, and `:class="sx(...)"` template
|
|
57
|
+
bindings. Static plain `class="..."` attributes are intentionally left alone.
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import cssx from '@cssxio/unplugin/vite';
|
|
61
|
+
import vue from '@vitejs/plugin-vue';
|
|
62
|
+
import { defineConfig } from 'vite';
|
|
63
|
+
|
|
64
|
+
export default defineConfig({ plugins: [cssx(), vue()] });
|
|
65
|
+
```
|
|
66
|
+
|
|
21
67
|
```js
|
|
22
68
|
// rollup.config.js
|
|
23
69
|
import cssx from '@cssxio/unplugin/rollup';
|
|
70
|
+
|
|
24
71
|
export default { plugins: [cssx({ cssFileName: 'assets/cssx.css' })] };
|
|
25
72
|
```
|
|
26
73
|
|
|
27
74
|
```js
|
|
28
75
|
// webpack.config.js
|
|
29
76
|
import cssx from '@cssxio/unplugin/webpack';
|
|
77
|
+
|
|
30
78
|
export default { plugins: [cssx()] };
|
|
31
79
|
```
|
|
32
80
|
|
|
33
81
|
```js
|
|
34
82
|
// rspack.config.js
|
|
35
83
|
import cssx from '@cssxio/unplugin/rspack';
|
|
84
|
+
|
|
36
85
|
export default { plugins: [cssx()] };
|
|
37
86
|
```
|
|
38
87
|
|
|
39
88
|
```js
|
|
40
89
|
// build.mjs
|
|
41
|
-
import { build } from 'esbuild';
|
|
42
90
|
import cssx from '@cssxio/unplugin/esbuild';
|
|
91
|
+
import { build } from 'esbuild';
|
|
43
92
|
|
|
44
93
|
await build({ entryPoints: ['src/main.ts'], bundle: true, plugins: [cssx()] });
|
|
45
94
|
```
|
|
@@ -69,17 +118,24 @@ const stylesheet = await compileCssxStylesheet([
|
|
|
69
118
|
|
|
70
119
|
## Options
|
|
71
120
|
|
|
72
|
-
| Option
|
|
73
|
-
|
|
|
74
|
-
| `importSource`
|
|
75
|
-
| `cssFileName`
|
|
76
|
-
| `
|
|
77
|
-
| `
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
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. |
|
|
83
139
|
|
|
84
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.
|
|
85
141
|
|
|
@@ -92,7 +148,7 @@ stylesheet deliberately owns different global element styles.
|
|
|
92
148
|
|
|
93
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.
|
|
94
150
|
|
|
95
|
-
|
|
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.
|
|
96
152
|
|
|
97
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`.
|
|
98
154
|
|
|
@@ -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,j as V,m as N,n as H,o as I,p as v}from"./chunk-GGFXMP4P.js";import{b as A}from"./chunk-T2L6RO3O.js";import{createClassNameAllocator as Le}from"@cssxio/compiler";import{createUnplugin as He}from"unplugin";import{mkdir as ue,writeFile as pe}from"fs/promises";import{dirname as fe,resolve as ye}from"path";function $(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 j(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 W(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():$([...c.modules].map(g=>j(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=ye(e.context,u.debug.reportFile);await ue(fe(h),{recursive:!0}),await pe(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 E(){return{id:"",rules:[],candidates:{},composites:{},origins:{},cssOnlySignature:""}}import{createClassNameAllocator as ge}from"@cssxio/compiler";function _(e,s){return`${e}\0${JSON.stringify(s)}`}var X=new Map;function R(e,s){let o=_(e,s),r=X.get(o);return r||(r={classNameAllocator:s.classNameAllocator??ge(M(s)),transformedDataById:new Map},X.set(o,r)),r}function T({compiler:e,options:s,cssFileName:o,sourceMap:r,getTheme:t}){let l=R(e.context,s);W(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 L(e,s,o=Date.now()){e.ws.send({type:"update",updates:[{type:"css-update",path:s,acceptedPath:s,timestamp:o}]})}function K(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)),L(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.")})})}function G(e){if(!e||typeof e!="object")return E();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 J(e){return!e||typeof e!="object"?E():G(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=J(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 xe,resolve as Z,sep as Ce}from"path";function Y(e){let s=e.getNativeBuildContext?.();return s&&(s.framework==="webpack"||s.framework==="rspack")?s.loaderContext?.rootContext??process.cwd():void 0}function z(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 Q(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 ee(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?.(Z(t.themeFile));let n=Y(this),c=n?R(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:xe(n??process.cwd(),x(o)).replaceAll(Ce,"/")}:{}},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??""};Q(this,g,b);let h=x(o);(m||h===o)&&(y.set(h,g),a.set(Z(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
|
+
${z(d)}`:P,meta:{[b]:g},...m?.map?{map:m.map}:{}}}}import{Buffer as he}from"buffer";import{mkdir as ve,unlink as Se,writeFile as we}from"fs/promises";import{basename as Me,dirname as ke,resolve as Ne}from"path";function te(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=>Ne(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 Se(y).catch(()=>{}),y=void 0;return}let f=S(c,Me(i));if(d.initialOptions.write===!1){let m=p.outputFiles;if(!m)return;let g={path:i,contents:he.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 ve(ke(i),{recursive:!0}),await we(i,f),y=i})},getWorkingDirectory:()=>a}}function se(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 oe(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 se(r,l,o.timestamp),t.filter(d=>!l.includes(d))}}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=te({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:ee({framework:s.framework,options:e,classNameAllocator:l,rollupDataById:t,esbuildDataById:y,cssFileName:o,getEsbuildWorkingDirectory:p.getWorkingDirectory,notifyViteStyles:n=>{a&&L(a,n)}})},watchChange(n,c){c.event==="delete"&&t.delete(x(n))},rollup:{generateBundle:u},vite:{generateBundle:u,configureServer(n){a=n,K(n,{cssFileName:o,sourceMap:r,options:e,rollupDataById:t,getTheme:d})},hotUpdate:{order:"pre",handler:oe(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,13 @@
|
|
|
1
|
+
import{a as R,b as $}from"./chunk-T2L6RO3O.js";function N(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 ie(e,s){return R(e).replaceAll("[hash]",N(s))}import{dirname as ae,resolve as P}from"path";function le(e,s,t){return s.outdir?P(e,s.outdir,t):s.outfile?P(ae(P(e,s.outfile)),t):P(e,t)}import{readFile as ce}from"fs/promises";import{resolve as me}from"path";async function j(e){return e.themeFile===void 0?e.theme:ce(me(process.cwd(),e.themeFile),"utf8")}function de(e){return e.split("?",1).join("")}import{sep as ue}from"path";function pe(e,s){return`${e&&e!=="/"?`/${e.replace(/^\/+|\/+$/g,"")}`:""}/${R(s).replaceAll(ue,"/")}`}function k(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{compileUtilities as ge,createSelectorAliases as ye}from"@cssxio/compiler";function F(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 fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function w(e){let s="",t=e<0?-e<<1|1:e<<1;do{let r=t&31;t>>>=5,t&&(r|=32),s+=fe[r]}while(t);return s}function L(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(`${w(i.column-m)}${w(i.source-t)}${w(i.originalLine-r)}${w(i.originalColumn-o)}`),m=i.column,t=i.source,r=i.originalLine,o=i.originalColumn;return s.map(i=>i.join(",")).join(";")}function V(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=F({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=F(m,i.css)}return{version:3,sources:r,names:[],mappings:L(n)}}var J='*,::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 Rt(e,s,t,r=!0,o,n=!0){let m=Object.create(null),i=Object.create(null),l=new Set,a=!0,d=new Map;for(let 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&&!d.has(g)){let S=y.origins?.[g];d.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(),u=n?J:"";if(c.length===0)return{css:u&&t?`@layer ${t}{${u}}`:u};let p=await ge(c,y=>m[y],s,ye(i),a?l:void 0,{darkMode:o}),f=t?`@layer ${t}{`:"",x=`${f}${u}${p.css}${f?"}":""}`,C=r?V(`${f}${u}${p.prefixCss}`,p.entries,d):void 0;return{css:x,...C?{map:C}:{}}}function At(e,s){return JSON.stringify({...e,file:s})}import{basename as xe}from"path";function Et(e,s){return e.map?`${e.css}
|
|
3
|
+
/*# sourceMappingURL=${xe(s)}.map */`:e.css}function jt(e,s,t){let r=t.naming??(t.stableClassNames?"source":t.className?.variant==="random"?"hash":t.className?.variant??"serial"),o=t.stableClassNames?"stableClassNames compatibility option selects source-addressed composites":t.naming?"explicit naming option":t.className?.variant?"className.variant option":"default serial naming",n=new Map,m=new Map;for(let a of[...e].sort((d,c)=>d.id.localeCompare(c.id))){let d=new Map;for(let[c,u]of Object.entries(a.candidates)){let p=m.get(c)??new Set;p.add(u),m.set(c,p);let f=n.get(u)??{module:a.id,utilities:new Set,line:a.origins?.[c]?.line??0,column:a.origins?.[c]?.column??0};f.utilities.add(c),n.set(u,f);let x=d.get(u)??[];x.push(c),d.set(u,x)}for(let[c,u]of Object.entries(a.composites??{})){let p=u.flatMap(C=>d.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],[d])=>a.localeCompare(d)).map(([a,d])=>({className:a,module:d.module,utilities:[...d.utilities].sort(),line:d.line+1,column:d.column+1,selectorFound:new RegExp(`\\.${Ce(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 Ce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}import{readdir as he}from"fs/promises";import{join as be,resolve as Se}from"path";var Ne=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".mdx",".md"]),we=new Set([".git",".next",".turbo","node_modules"]);async function D(e,s=[]){let t=[],r=[e,...s],o=new Set;for(;r.length>0;){let n=r.pop(),m=Se(n);if(!o.has(m)){o.add(m);for(let i of await he(n,{withFileTypes:!0})){let l=be(n,i.name);if(i.isDirectory()){we.has(i.name)||r.push(l);continue}i.isFile()&&Ne.has(l.slice(l.lastIndexOf(".")))&&t.push(l)}}}return t.sort()}import{createRequire as Oe}from"module";import{resolve as Me}from"path";import{pathToFileURL as z}from"url";async function B(e,s,t={}){let r=Oe(Me(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(z(o).href),m=async i=>Promise.all((i??[]).map(async l=>{let[a,d]=typeof l=="string"?[l,void 0]:l,c=r.resolve(a),u=await import(z(c).href),p=u.default??u;return d===void 0?p:[p,d]}));return String(await n.compile(e,{outputFormat:"program",development:t.development??!1,remarkPlugins:await m(t.remarkPlugins),rehypePlugins:await m(t.rehypePlugins),recmaPlugins:await m(t.recmaPlugins)}))}import{createClassNameAllocator as Re}from"@cssxio/compiler";function A(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 v(e){let s="const style = ",t=e.indexOf(s)+s.length,r=e.indexOf(";",t);return e.slice(t,r)}async function _(e,s,t,r){let o=A(e);if(o.length===0)return null;let n=t.classNameAllocator??Re(),m=t.importSource??"@cssxio/cssx",i=[],l=e;for(let a of[...o].reverse()){let d=await r(`import { sx } from ${JSON.stringify(m)};
|
|
4
|
+
const style = ${a.code};`,`${s}.ts`,{...t,classNameAllocator:n}),c=v(d.code);l=`${l.slice(0,a.start)}${c}${l.slice(a.end)}`,i.push({...d,atomicClasses:[],origins:{}})}return b(l,i)}import{transformAsync as Pe}from"@babel/core";import Ae from"@cssxio/babel-plugin";import{compileUtilities as ve,createSelectorAliases as Te}from"@cssxio/compiler";function X(e){return{className:`cssx-${N(e)}`,css:e}}function U(e,s){return e&&s?`@layer ${s}{${e}}`:e}async function q(e,s,t,r){let o=t.importSource??"@cssxio/cssx",n=await j(t),m=await Pe(e,{babelrc:!1,configFile:!1,filename:s,parserOpts:{plugins:["jsx","typescript"]},plugins:[[Ae,{importSource:o,classNameAllocator:t.classNameAllocator,theme:n,reusabilityBudget:t.reusabilityBudget,stableClassNames:t.stableClassNames,stableClassNameFileName:t.stableClassNameFileName,darkMode:t.darkMode}]],sourceMaps:!0,...r?{inputSourceMap:r}:{}}),i=m.metadata,{candidates:l,origins:a,composites:d,atomicClasses:c,cssOnlySignature:u}=i.cssx,p=Object.keys(l),f=p.length===0?"":(await ve(p,x=>l[x],n,Te(d),new Set(c),{darkMode:t.darkMode})).css;return{code:m.code,rules:f?[X(U(f,t.layer))]:[],candidates:l,composites:d,atomicClasses:c,origins:a,cssOnlySignature:u,map:m.map}}import{createClassNameAllocator as Ee}from"@cssxio/compiler";import{parse as $e}from"@vue/compiler-sfc";function T(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 E(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 I(e,s,t){let r={},o=e.slice(s);for(let[n,m]of Object.entries(t))r[n]=E(e,s+T(o,m));return r}function G(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 Q(e,s){if(!s)return e;let t=s==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,r=>{let o=r[0]==='"'?JSON.parse(r):G(r),n=JSON.stringify(o);return t==='"'?n:`'${n.slice(1,-1).replaceAll("'","\\'")}'`})}function H(e,s,t,r,o){let n={};for(let[m,i]of Object.entries(o)){let l=T(t,i);n[m]=E(e,s+Math.max(0,l-r))}return n}function W(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 K(e,s,t,r,o){let n=A(e);if(n.length===0)return null;let m=t.importSource??"@cssxio/cssx",i=[],l=e;for(let a of[...n].reverse()){let d=`import { sx } from ${JSON.stringify(m)};
|
|
9
|
+
const style = `,c=`${d}${a.code};`,u=await o(c,`${s}.cssx-vue-template.ts`,{...t,classNameAllocator:r}),p=Q(v(u.code),W(e,a.start));l=`${l.slice(0,a.start)}${p}${l.slice(a.end)}`,i.push({...u,origins:H(e,a.start,c,d.length,u.origins)})}return b(l,i)}async function Z(e,s,t,r){let o=s.split("?",1).join(""),n=$e(e,{filename:o});if(n.errors.length>0)throw new Error(n.errors[0].message);let m=t.classNameAllocator??Ee(),i=[],l=[];for(let c of[n.descriptor.script,n.descriptor.scriptSetup]){if(!c?.content.includes(t.importSource??"@cssxio/cssx"))continue;let u=c.lang==="js"||c.lang==="jsx"||c.lang==="tsx"?c.lang:"ts",p=await r(c.content,`${o}.cssx-vue-script.${u}`,{...t,classNameAllocator:m});i.push({start:c.loc.start.offset,end:c.loc.end.offset,code:p.code}),l.push({...p,origins:I(e,c.loc.start.offset,p.origins)})}let a=n.descriptor.template;if(a?.content.includes("sx")){let c=await K(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:I(e,a.loc.start.offset,c.origins)}))}if(i.length===0)return null;let d=e;for(let c of i.sort((u,p)=>p.start-u.start))d=`${d.slice(0,c.start)}${c.code}${d.slice(c.end)}`;return b(d,l)}var je=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!je.has(n.slice(n.lastIndexOf(".")))||!e.includes(o)?null:n.endsWith(".astro")?_(e,s,t,O):n.endsWith(".vue")?Z(e,s,t,O):q(e,n,t,r)}function Is(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]}:{}}}import{createClassNameAllocator as Y,restoreClassNameAllocator as ke,snapshotClassNameAllocator as te}from"@cssxio/compiler";import{mkdir as Fe,open as Ie,readFile as se,rename as Le,rm as M,stat as re,writeFile as Ve}from"fs/promises";import{dirname as Je,resolve as De}from"path";var ee=20,oe=5*6e4;async function ne(e,s,t){let r=De(e),o=`${r}.lock`,n=Date.now(),m,i=0;for(;!m;){await Fe(Je(r),{recursive:!0});let l;try{l=await Ie(o,"wx")}catch(a){let d=a.code;if(d!=="EEXIST"){if(d!=="EACCES"&&d!=="EPERM")throw a;try{await re(o)}catch(c){if(c.code==="ENOENT"){if(i+=1,i>1)throw a;await new Promise(u=>setTimeout(u,ee));continue}throw c}}if(i=0,await ze(o))continue;if(Date.now()-n>=oe)throw new Error(`Timed out waiting for CSSX class-name manifest lock: ${o}`);await new Promise(c=>setTimeout(c,ee));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 Be(r,s),a=await t(l),d=te(l),c=`${r}.${process.pid}.${Date.now()}.tmp`;try{await Ve(c,`${JSON.stringify(d,null,2)}
|
|
12
|
+
`,"utf8"),await Le(c,r)}catch(u){throw await M(c,{force:!0}).catch(()=>{}),u}return a}finally{await m.close(),await M(o,{force:!0})}}async function ze(e){try{let s=await re(e),t;try{t=await se(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<oe?!1:(await M(e,{force:!0}),!0)}catch(s){if(s.code==="ENOENT")return!1;throw s}}async function Be(e,s){try{let t=JSON.parse(await se(e,"utf8")),r=te(Y(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 ke(t)}catch(t){if(t.code==="ENOENT")return Y(s);throw t}}import{createClassNameAllocator as _e}from"@cssxio/compiler";import{readFile as Xe}from"fs/promises";import{relative as Ue,resolve as qe,sep as Ge}from"path";async function Zs(e,s){let t=await D(e,s.sourceRoots?.map(n=>qe(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 Xe(i,"utf8"),a=/\.(?:md|mdx)$/i.test(i);if(a&&!l.includes(s.importSource??"@cssxio/cssx"))continue;let d=a?await B(l,e,s.mdx):l,c=s.stableClassNames||s.naming==="source",u=await O(d,a?`${i}.tsx`:i,{...r,classNameAllocator:n,stableClassNames:c,...c?{stableClassNameFileName:Ue(e,i).replaceAll(Ge,"/")}:{}});u&&m.push({id:i,candidates:u.candidates,composites:u.composites,atomicClasses:u.atomicClasses,origins:u.origins})}return m};return s.coordination==="manifest"?ne(s.manifestPath,k(s),o):o(s.classNameAllocator??_e(k(s)))}export{j as a,de as b,ie as c,le as d,pe as e,k as f,Rt as g,At as h,Et as i,jt as j,D as k,B as l,O as m,Is as n,ne as o,Zs as p};
|
|
@@ -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,8 +1,17 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
${
|
|
1
|
+
"use strict";var bt=Object.create;var G=Object.defineProperty;var Nt=Object.getOwnPropertyDescriptor;var Mt=Object.getOwnPropertyNames;var vt=Object.getPrototypeOf,Ot=Object.prototype.hasOwnProperty;var kt=(e,t)=>{for(var s in t)G(e,s,{get:t[s],enumerable:!0})},xe=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Mt(t))!Ot.call(e,r)&&r!==s&&G(e,r,{get:()=>t[r],enumerable:!(o=Nt(t,r))||o.enumerable});return e};var Pt=(e,t,s)=>(s=e!=null?bt(vt(e)):{},xe(t||!e||!e.__esModule?G(s,"default",{value:e,enumerable:!0}):s,e)),At=e=>xe(G({},"__esModule",{value:!0}),e);var Vt={};kt(Vt,{default:()=>wt});module.exports=At(Vt);var St=require("@cssxio/compiler"),ye=require("buffer"),O=require("fs/promises"),N=require("path");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 Ce=require("fs/promises"),he=require("path");async function me(e){return(0,Ce.realpath)(e).catch(()=>(0,he.resolve)(e))}var Se=require("fs/promises"),we=require("path");async function T(e){return e.themeFile===void 0?e.theme:(0,Se.readFile)((0,we.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 be=require("path");function L(e,t){return`${e&&e!=="/"?`/${e.replace(/^\/+|\/+$/g,"")}`:""}/${B(t).replaceAll(be.sep,"/")}`}function M(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");function de(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 Ne(e){let t=Array.from({length:Math.max(0,...e.map(n=>n.line))+1},()=>[]),s=0,o=0,r=0,i=0,m=0;for(let n of e)m*=+(n.line===i),i=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 Me(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,a)=>[n,a])),i=[],m=de({line:0,column:0},e);for(let n of t){let a=s.get(n.candidate);a&&i.push({...m,source:r.get(a.id),originalLine:a.line,originalColumn:a.column}),m=de(m,n.css)}return{version:3,sources:o,names:[],mappings:Ne(i)}}var ve='*,::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 b(e,t,s,o=!0,r,i=!0){let m=Object.create(null),n=Object.create(null),a=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??[])a.add(h)}let l=Object.keys(m).sort(),u=i?ve:"";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?a:void 0,{darkMode:r}),g=s?`@layer ${s}{`:"",f=`${g}${u}${p.css}${g?"}":""}`,y=o?Me(`${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 Oe=require("path");function P(e,t){return e.map?`${e.css}
|
|
3
|
+
/*# sourceMappingURL=${(0,Oe.basename)(t)}.map */`:e.css}async function ke(e,t){let s=await T(t);return b(e.map(([,o])=>o),s,t.layer,t.sourceMap??!0,t.darkMode,t.preflight)}var xt=require("@cssxio/compiler"),Ct=require("unplugin");var Q=require("fs/promises"),Y=require("path");function Pe(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",i=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=i.get(u)??{module:c.id,utilities:new Set,line:c.origins?.[l]?.line??0,column:c.origins?.[l]?.column??0};g.utilities.add(l),i.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=i.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);i.set(l,f)}for(let l of c.atomicClasses??[])i.has(l)||i.set(l,{module:c.id,utilities:new Set,line:0,column:0})}let n=[...i].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(`\\.${Et(c)}(?:[^A-Za-z0-9_-]|$)`).test(t)})),a=[...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:a.length>0?"mismatch":s.coordination==="manifest"?"manifest-shared":"consistent-in-process",conflicts:a}}}function Et(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ae(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 Re(e,t){let s=e.buildInfo?.[t];if(!s||typeof s!="object")return;let{id:o,candidates:r,composites:i,atomicClasses:m,origins:n}=s;return{id:typeof o=="string"?o:"",candidates:r&&typeof r=="object"?r:{},composites:i&&typeof i=="object"?i:{},...Array.isArray(m)?{atomicClasses:m}:{},origins:n&&typeof n=="object"?n:{}}}function Ee(e,t,s,o,r,i,m,n,a=!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():Ae([...u.modules].map(y=>Re(y,i)).filter(y=>y!==void 0),m?.values()??[]),g=await b(p,await s(),o,r,n,a);if(d?.debug){let y=Pe(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,Y.resolve)(e.context,d.debug.reportFile);await(0,Q.mkdir)((0,Y.dirname)(x),{recursive:!0}),await(0,Q.writeFile)(x,`${JSON.stringify(y,null,2)}
|
|
4
|
+
`,"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 Z(){return{id:"",rules:[],candidates:{},composites:{},origins:{},cssOnlySignature:""}}var $e=require("@cssxio/compiler");function Te(e,t){return`${e}\0${JSON.stringify(t)}`}var Fe=new Map;function ee(e,t){let s=Te(e,t),o=Fe.get(s);return o||(o={classNameAllocator:t.classNameAllocator??(0,$e.createClassNameAllocator)(M(t)),transformedDataById:new Map},Fe.set(s,o)),o}var rt=require("@cssxio/compiler"),ot=require("fs/promises"),H=require("path");var De=require("fs/promises"),te=require("path"),Tt=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".mdx",".md"]),Ft=new Set([".git",".next",".turbo","node_modules"]);async function Ie(e,t=[]){let s=[],o=[e,...t],r=new Set;for(;o.length>0;){let i=o.pop(),m=(0,te.resolve)(i);if(!r.has(m)){r.add(m);for(let n of await(0,De.readdir)(i,{withFileTypes:!0})){let a=(0,te.join)(i,n.name);if(n.isDirectory()){Ft.has(n.name)||o.push(a);continue}n.isFile()&&Tt.has(a.slice(a.lastIndexOf(".")))&&s.push(a)}}}return s.sort()}var je=require("module"),Be=require("path"),ue=require("url");async function Le(e,t,s={}){let o=(0,je.createRequire)((0,Be.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 i=await import((0,ue.pathToFileURL)(r).href),m=async n=>Promise.all((n??[]).map(async a=>{let[c,d]=typeof a=="string"?[a,void 0]:a,l=o.resolve(c),u=await import((0,ue.pathToFileURL)(l).href),p=u.default??u;return d===void 0?p:[p,d]}));return String(await i.compile(e,{outputFormat:"program",development:s.development??!1,remarkPlugins:await m(s.remarkPlugins),rehypePlugins:await m(s.rehypePlugins),recmaPlugins:await m(s.recmaPlugins)}))}var Ve=require("@cssxio/compiler");function se(e){let t=[],s=/\bsx\s*\(/g;for(let o of e.matchAll(s)){let r=o.index,i=e.indexOf("(",r),m=0,n="";for(let a=i;a<e.length;a+=1){let c=e[a];if(n){c==="\\"?a+=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:a+1,code:e.slice(r,a+1)}),s.lastIndex=a+1;break}}}return t}function V(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 re(e){let t="const style = ",s=e.indexOf(t)+t.length,o=e.indexOf(";",s);return e.slice(s,o)}async function Ue(e,t,s,o){let r=se(e);if(r.length===0)return null;let i=s.classNameAllocator??(0,Ve.createClassNameAllocator)(),m=s.importSource??"@cssxio/cssx",n=[],a=e;for(let c of[...r].reverse()){let d=await o(`import { sx } from ${JSON.stringify(m)};
|
|
5
|
+
const style = ${c.code};`,`${t}.ts`,{...s,classNameAllocator:i}),l=re(d.code);a=`${a.slice(0,c.start)}${l}${a.slice(c.end)}`,n.push({...d,atomicClasses:[],origins:{}})}return V(a,n)}var _e=require("@babel/core"),We=Pt(require("@cssxio/babel-plugin"),1),oe=require("@cssxio/compiler");function He(e){return{className:`cssx-${J(e)}`,css:e}}function Xe(e,t){return e&&t?`@layer ${t}{${e}}`:e}async function Je(e,t,s,o){let r=s.importSource??"@cssxio/cssx",i=await T(s),m=await(0,_e.transformAsync)(e,{babelrc:!1,configFile:!1,filename:t,parserOpts:{plugins:["jsx","typescript"]},plugins:[[We.default,{importSource:r,classNameAllocator:s.classNameAllocator,theme:i,reusabilityBudget:s.reusabilityBudget,stableClassNames:s.stableClassNames,stableClassNameFileName:s.stableClassNameFileName,darkMode:s.darkMode}]],sourceMaps:!0,...o?{inputSourceMap:o}:{}}),n=m.metadata,{candidates:a,origins:c,composites:d,atomicClasses:l,cssOnlySignature:u}=n.cssx,p=Object.keys(a),g=p.length===0?"":(await(0,oe.compileUtilities)(p,f=>a[f],i,(0,oe.createSelectorAliases)(d),new Set(l),{darkMode:s.darkMode})).css;return{code:m.code,rules:g?[He(Xe(g,s.layer))]:[],candidates:a,composites:d,atomicClasses:l,origins:c,cssOnlySignature:u,map:m.map}}var Ye=require("@cssxio/compiler"),Ze=require("@vue/compiler-sfc");function ne(e,t){let s=e.split(`
|
|
6
|
+
`).slice(0,t.line).reduce((o,r)=>o+r.length+1,0);return Math.min(e.length,s+t.column)}function ie(e,t){let s=Math.min(e.length,t),o=e.slice(0,s).split(`
|
|
7
|
+
`).length-1,r=e.lastIndexOf(`
|
|
8
|
+
`,s-1)+1;return{line:o,column:s-r}}function pe(e,t,s){let o={},r=e.slice(t);for(let[i,m]of Object.entries(s))o[i]=ie(e,t+ne(r,m));return o}function ze(e){return e.slice(1,-1).replace(/\\(['"\\bnfrtv])/g,(t,s)=>({b:"\b",n:`
|
|
9
|
+
`,f:"\f",r:"\r",t:" ",v:"\v"})[s]??s)}function qe(e,t){if(!t)return e;let s=t==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,o=>{let r=o[0]==='"'?JSON.parse(o):ze(o),i=JSON.stringify(r);return s==='"'?i:`'${i.slice(1,-1).replaceAll("'","\\'")}'`})}function Ge(e,t,s,o,r){let i={};for(let[m,n]of Object.entries(r)){let a=ne(s,n);i[m]=ie(e,t+Math.max(0,a-o))}return i}function Ke(e,t){let s=-1,o;for(let r=0;r<t;r++){let i=e[r];if(o){i===o&&(o=void 0);continue}if(i==="<"&&/[A-Za-z]/.test(e[r+1])){s=r;continue}s!==-1&&(i===">"?s=-1:(i==='"'||i==="'")&&(o=i))}return o}async function Qe(e,t,s,o,r){let i=se(e);if(i.length===0)return null;let m=s.importSource??"@cssxio/cssx",n=[],a=e;for(let c of[...i].reverse()){let d=`import { sx } from ${JSON.stringify(m)};
|
|
10
|
+
const style = `,l=`${d}${c.code};`,u=await r(l,`${t}.cssx-vue-template.ts`,{...s,classNameAllocator:o}),p=qe(re(u.code),Ke(e,c.start));a=`${a.slice(0,c.start)}${p}${a.slice(c.end)}`,n.push({...u,origins:Ge(e,c.start,l,d.length,u.origins)})}return V(a,n)}async function et(e,t,s,o){let r=t.split("?",1).join(""),i=(0,Ze.parse)(e,{filename:r});if(i.errors.length>0)throw new Error(i.errors[0].message);let m=s.classNameAllocator??(0,Ye.createClassNameAllocator)(),n=[],a=[];for(let l of[i.descriptor.script,i.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}),a.push({...p,origins:pe(e,l.loc.start.offset,p.origins)})}let c=i.descriptor.template;if(c?.content.includes("sx")){let l=await Qe(c.content,r,s,m,o);l&&(n.push({start:c.loc.start.offset,end:c.loc.end.offset,code:l.code}),a.push({...l,origins:pe(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 V(d,a)}var $t=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",i=t.split("?",1).join("");return!$t.has(i.slice(i.lastIndexOf(".")))||!e.includes(r)?null:i.endsWith(".astro")?Ue(e,t,s,w):i.endsWith(".vue")?et(e,t,s,w):Je(e,i,s,o)}function fe(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]}:{}}}var R=require("@cssxio/compiler"),C=require("fs/promises"),ae=require("path"),tt=20,st=5*6e4;async function U(e,t,s){let o=(0,ae.resolve)(e),r=`${o}.lock`,i=Date.now(),m,n=0;for(;!m;){await(0,C.mkdir)((0,ae.dirname)(o),{recursive:!0});let a;try{a=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,tt));continue}throw l}}if(n=0,await Dt(r))continue;if(Date.now()-i>=st)throw new Error(`Timed out waiting for CSSX class-name manifest lock: ${r}`);await new Promise(l=>setTimeout(l,tt));continue}try{await a.writeFile(`${process.pid}
|
|
11
|
+
${Date.now()}
|
|
12
|
+
`)}catch(c){throw await a.close().catch(()=>{}),await(0,C.rm)(r,{force:!0}).catch(()=>{}),c}m=a}try{let a=await It(o,t),c=await s(a),d=(0,R.snapshotClassNameAllocator)(a),l=`${o}.${process.pid}.${Date.now()}.tmp`;try{await(0,C.writeFile)(l,`${JSON.stringify(d,null,2)}
|
|
13
|
+
`,"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 Dt(e){try{let t=await(0,C.stat)(e),s;try{s=await(0,C.readFile)(e,"utf8")}catch(i){let m=i.code;if(m==="EACCES"||m==="EPERM")return!1;throw i}let[o]=s.split(`
|
|
14
|
+
`),r=Number(o);if(Number.isSafeInteger(r)&&r>0)try{return process.kill(r,0),!1}catch(i){return i.code!=="ESRCH"?!1:(await(0,C.rm)(e,{force:!0}),!0)}return Date.now()-t.mtimeMs<st?!1:(await(0,C.rm)(e,{force:!0}),!0)}catch(t){if(t.code==="ENOENT")return!1;throw t}}async function It(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}}async function v(e,t){let s=await Ie(e,t.sourceRoots?.map(i=>(0,H.resolve)(e,i))),o={...t};delete o.coordination,delete o.manifestPath,delete o.classNameAllocator;let r=async i=>{let m=[];for(let n of s){let a=await(0,ot.readFile)(n,"utf8"),c=/\.(?:md|mdx)$/i.test(n);if(c&&!a.includes(t.importSource??"@cssxio/cssx"))continue;let d=c?await Le(a,e,t.mdx):a,l=t.stableClassNames||t.naming==="source",u=await w(d,c?`${n}.tsx`:n,{...o,classNameAllocator:i,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"?U(t.manifestPath,M(t),r):r(t.classNameAllocator??(0,rt.createClassNameAllocator)(M(t)))}function ge({compiler:e,options:t,cssFileName:s,sourceMap:o,getTheme:r}){let i=ee(e.context,t);Ee(e,s,r,t.layer,o,D,i.transformedDataById,t.darkMode,t.preflight,t.stableClassNames||t.naming==="source"||t.coordination==="manifest"?()=>v(e.context,t):void 0,t)}function le(e,t,s=Date.now()){e.ws.send({type:"update",updates:[{type:"css-update",path:t,acceptedPath:t,timestamp:s}]})}function nt(e,t){let{cssFileName:s,sourceMap:o,options:r,rollupDataById:i,getTheme:m}=t,n=L(e.config.base,s),a=L("/",s);e.watcher?.on("unlink",c=>{i.delete(S(c)),le(e,a)}),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 v(e.config.root??process.cwd(),r):[...i.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.")})})}function it(e){if(!e||typeof e!="object")return Z();let{id:t,rules:s,candidates:o,composites:r,atomicClasses:i,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(i)?{atomicClasses:i}:{},origins:m&&typeof m=="object"?m:{},cssOnlySignature:typeof n=="string"?n:""}}function at(e){return!e||typeof e!="object"?Z():it(e[D])}function lt(e){return async function(t,s){let{framework:o,options:r,cssFileName:i,sourceMap:m,rollupDataById:n,getTheme:a}=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 v(process.cwd(),r):o==="vite"?[...n.values()]:[...c].map(p=>{let g=at(this.getModuleInfo(p)?.meta);return Object.keys(g.candidates).length>0?g:n.get(p)??g}),l=await b(d,await a(),r.layer,m,r.darkMode,r.preflight);if(!l.css)return;let u=k(i,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 ct(e){let t=e.getNativeBuildContext?.();return t&&(t.framework==="webpack"||t.framework==="rspack")?t.loaderContext?.rootContext??process.cwd():void 0}function mt(e){return`if (typeof document !== "undefined" && typeof module !== "undefined" && module.hot) {
|
|
6
15
|
const key = "__cssxStylesheetHmr";
|
|
7
16
|
const state = globalThis[key] || (globalThis[key] = { revision: 0, staged: [], replacements: [] });
|
|
8
17
|
const stylesheetLink = [...document.querySelectorAll('link[rel="stylesheet"]')].find((link) =>
|
|
@@ -89,5 +98,6 @@ ${Xe(s)}`:h,meta:{[$]:c},...p?.map?{map:p.map}:{}}}},watchChange(l,i){i.event===
|
|
|
89
98
|
state.poll = setInterval(() => void refresh(), 500);
|
|
90
99
|
}
|
|
91
100
|
}
|
|
92
|
-
}`}
|
|
93
|
-
|
|
101
|
+
}`}function dt(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 i=r.buildInfo??(r.buildInfo={});i[s]=t}function ut(e){return async function(t,s){let{framework:o,options:r,classNameAllocator:i,rollupDataById:m,esbuildDataById:n,cssFileName:a,getEsbuildWorkingDirectory:c,notifyViteStyles:d}=e;r.themeFile&&this.addWatchFile?.((0,I.resolve)(r.themeFile));let l=ct(this),u=l?ee(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??i,...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 U(r.manifestPath,g.className,A=>w(t,s,{...g,classNameAllocator:A},fe(this,s))):await w(t,s,p,fe(this,s)),y={id:S(s),rules:f?.rules??[],candidates:f?.candidates??{},composites:f?.composites??{},atomicClasses:f?.atomicClasses??[],origins:f?.origins??{},cssOnlySignature:f?.cssOnlySignature??""};dt(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("/",a));let h=f?.code??t;return{code:(o==="webpack"||o==="rspack")&&f?`${h}
|
|
102
|
+
${mt(a)}`:h,meta:{[D]:y},...f?.map?{map:f.map}:{}}}}var pt=require("buffer"),X=require("fs/promises"),_=require("path");function ft(e){let{options:t,cssFileName:s,sourceMap:o,dataById:r,getTheme:i}=e,m,n=process.cwd();return{config(a){a.metafile=!0},setup(a){n=a.initialOptions.absWorkingDir??process.cwd(),a.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 v(n,t):[...r.values()],u=await b(l,await i(),t.layer,o,t.darkMode,t.preflight),p=z(n,a.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(a.initialOptions.write===!1){let f=c.outputFiles;if(!f)return;let y={path:p,contents:pt.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 gt(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 i=e.runner?.evaluatedModules?.getModuleById(r.id);i&&e.runner?.evaluatedModules?.invalidateModule(i)}}function yt(e){return async function(s){let o=this.environment;if(!o||o.name==="client")return;let r=s.modules,i=r.filter(a=>{let c=e.get(S(a.id??""));return!!(c&&c.cssOnlySignature&&c.atomicClasses?.length===0)});if(i.length===0)return;let m=new Map(i.map(a=>[a,e.get(S(a.id)).cssOnlySignature]));for(let a of i)a.url&&await o.transformRequest(a.url);if(i.every(a=>{let c=e.get(S(a.id));return!!(c&&c.atomicClasses.length===0&&c.cssOnlySignature===m.get(a))}))return gt(o,i,s.timestamp),r.filter(a=>!i.includes(a))}}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,i=e.classNameAllocator??(0,xt.createClassNameAllocator)(M(e)),m=new Map,n,a=()=>T(e),c=ft({options:e,cssFileName:s,sourceMap:o,dataById:m,getTheme:a}),d=lt({framework:t.framework,options:e,cssFileName:s,sourceMap:o,rollupDataById:r,getTheme:a});return{name:"@cssxio/unplugin",enforce:"pre",transform:{filter:{id:jt},handler:ut({framework:t.framework,options:e,classNameAllocator:i,rollupDataById:r,esbuildDataById:m,cssFileName:s,getEsbuildWorkingDirectory:c.getWorkingDirectory,notifyViteStyles:l=>{n&&le(n,l)}})},watchChange(l,u){u.event==="delete"&&r.delete(S(l))},rollup:{generateBundle:d},vite:{generateBundle:d,configureServer(l){n=l,nt(l,{cssFileName:s,sourceMap:o,options:e,rollupDataById:r,getTheme:a})},hotUpdate:{order:"pre",handler:yt(r)}},...t.framework==="webpack"?{webpack(l){ge({compiler:l,options:e,cssFileName:s,sourceMap:o,getTheme:a})}}:{},...t.framework==="rspack"?{rspack(l){ge({compiler:l,options:e,cssFileName:s,sourceMap:o,getTheme:a})}}:{},...t.framework==="esbuild"?{esbuild:{config:c.config,setup:c.setup}}:{}}},ce=(0,Ct.createUnplugin)(Bt),Vo=ce.vite,Uo=ce.rollup,Ho=ce.webpack,Xo=ce.rspack;function ht(e){return/\.tsx?$/.test(e)?"ts":"js"}var Lt=/\.[cm]?[jt]sx?$/;function wt(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,St.createClassNameAllocator)(M(e)),o,r;return{name:"@cssxio/unplugin",setup(i){let m=i.initialOptions.absWorkingDir??process.cwd();i.initialOptions.metafile=!0,i.onLoad({filter:Lt},async({path:n})=>{let a=await(0,O.readFile)(n,"utf8"),c=e.stableClassNames||e.naming==="source",d={...e,className:M(e),stableClassNames:c,...c?{stableClassNameFileName:(0,N.relative)(m,n).replaceAll(N.sep,"/")}:{},classNameAllocator:s},l={...d};delete l.coordination,delete l.manifestPath;let u=e.coordination==="manifest"?await U(e.manifestPath,l.className,g=>w(a,n,{...l,classNameAllocator:g})):await w(a,n,d);if(!u)return;let p=await me(n);return t.set(p,{id:p,candidates:u.candidates,composites:u.composites,atomicClasses:u.atomicClasses,origins:u.origins}),{contents:u.code,loader:ht(n)}}),i.onEnd(async n=>{if(!n.metafile)return;let a=new Set(await Promise.all(Object.keys(n.metafile.inputs).map(f=>me((0,N.resolve)(m,f)))));for(let f of t.keys())a.has(f)||t.delete(f);let c=e.coordination==="manifest"?(await v(m,e)).map(f=>[f.id,f]):[...t],d=await ke(c,e),l=z(m,i.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,N.basename)(l)}.map */`:d.css,p=`${l}.map`,g=d.map?JSON.stringify({...d.map,file:(0,N.basename)(l)}):void 0;if(i.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,N.dirname)(l),{recursive:!0}),await(0,O.writeFile)(l,u),g&&await(0,O.writeFile)(p,g),o=l,r=g?p:void 0})}}}
|
package/dist/esbuild.d.cts
CHANGED
package/dist/esbuild.d.ts
CHANGED
package/dist/esbuild.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{h as a}from"./chunk-BPBCQNZV.js";import"./chunk-GGFXMP4P.js";import"./chunk-T2L6RO3O.js";export{a as default};
|