@cssxio/unplugin 0.7.0 → 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 +51 -13
- 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 -12
- 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 -12
- package/dist/index.d.cts +3 -20
- package/dist/index.d.ts +3 -20
- 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 -11
- package/dist/rollup.d.cts +1 -1
- package/dist/rollup.d.ts +1 -1
- package/dist/rollup.js +1 -1
- package/dist/rspack.cjs +16 -11
- 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 -11
- 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 -11
- package/dist/webpack.d.cts +1 -1
- package/dist/webpack.d.ts +1 -1
- package/dist/webpack.js +1 -1
- package/package.json +14 -4
- package/dist/chunk-SKXNEQ2Z.js +0 -98
- package/dist/options-ByIyWTN0.d.cts +0 -29
- package/dist/options-ByIyWTN0.d.ts +0 -29
package/dist/chunk-SKXNEQ2Z.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import{createClassNameAllocator as kt}from"@cssxio/compiler";import{createUnplugin as Nt}from"unplugin";function q(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]}import{isAbsolute as De,normalize as Be,sep as $e}from"path";function R(e){if(!e||De(e))throw new Error("cssFileName must be a non-empty relative path.");let s=Be(e);if(s===".."||s.startsWith(`..${$e}`))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 F(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.');R(e.cssFileName??"cssx.css")}import{readFile as je}from"fs/promises";import{resolve as Le}from"path";async function v(e){return e.themeFile===void 0?e.theme:je(Le(process.cwd(),e.themeFile),"utf8")}function y(e){return e.split("?",1).join("")}function E(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 b(e,s){return R(e).replaceAll("[hash]",E(s))}import{dirname as Ve,resolve as $}from"path";function I(e,s,t){return s.outdir?$(e,s.outdir,t):s.outfile?$(Ve($(e,s.outfile)),t):$(e,t)}import{sep as Ue}from"path";function A(e,s){return`${e&&e!=="/"?`/${e.replace(/^\/+|\/+$/g,"")}`:""}/${R(s).replaceAll(Ue,"/")}`}function K(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:{}}}import{compileUtilities as _e,createSelectorAliases as We}from"@cssxio/compiler";function X(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 He="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function D(e){let s="",t=e<0?-e<<1|1:e<<1;do{let r=t&31;t>>>=5,t&&(r|=32),s+=He[r]}while(t);return s}function Q(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(`${D(n.column-d)}${D(n.source-t)}${D(n.originalLine-r)}${D(n.originalColumn-o)}`),d=n.column,t=n.source,r=n.originalLine,o=n.originalColumn;return s.map(n=>n.join(",")).join(";")}function Y(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=X({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=X(d,n.css)}return{version:3,sources:r,names:[],mappings:Q(i)}}var Z='*,::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,N)=>x.id.localeCompare(N.id))){for(let[x,N]of Object.entries(C.candidates))if(x in d||(d[x]=N),C.id&&!u.has(x)){let T=C.origins?.[x];u.set(x,{id:C.id,line:T?.line??0,column:T?.column??0})}for(let[x,N]of Object.entries(C.composites??{})){let T=n[x];if(T&&T.join(" ")!==N.join(" "))throw new Error(`CSSX composite class collision for "${x}".`);n[x]=N}C.atomicClasses===void 0&&(l=!1);for(let x of C.atomicClasses??[])a.add(x)}let c=Object.keys(d).sort(),p=i?Z:"";if(c.length===0)return{css:p&&t?`@layer ${t}{${p}}`:p};let m=await _e(c,C=>d[C],s,We(n),l?a:void 0,{darkMode:o}),f=t?`@layer ${t}{`:"",g=`${f}${p}${m.css}${f?"}":""}`,k=r?Y(`${f}${p}${m.prefixCss}`,m.entries,u):void 0;return{css:g,...k?{map:k}:{}}}function w(e,s){return JSON.stringify({...e,file:s})}import{basename as Xe}from"path";function M(e,s){return e.map?`${e.css}
|
|
3
|
-
/*# sourceMappingURL=${Xe(s)}.map */`:e.css}function ee(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():q([...c.modules].map(g=>K(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=b(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(M(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(w(m.map,f)))}})})}var O="@cssxio/unplugin/rules";function j(){return{id:"",rules:[],candidates:{},composites:{},origins:{},cssOnlySignature:""}}import{createClassNameAllocator as ze}from"@cssxio/compiler";function te(e,s){return`${e}\0${JSON.stringify(s)}`}var se=new Map;function L(e,s){let t=te(e,s),r=se.get(t);return r||(r={classNameAllocator:ze(),transformedDataById:new Map},se.set(t,r)),r}import{createClassNameAllocator as nt}from"@cssxio/compiler";import{readFile as it}from"fs/promises";import{relative as at,sep as lt}from"path";import{readdir as Ge}from"fs/promises";import{join as Je}from"path";var qe=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro"]),Ke=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 Ge(r,{withFileTypes:!0})){let i=Je(r,o.name);if(o.isDirectory()){Ke.has(o.name)||t.push(i);continue}o.isFile()&&qe.has(i.slice(i.lastIndexOf(".")))&&s.push(i)}}return s.sort()}import{createClassNameAllocator as Qe}from"@cssxio/compiler";function V(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 P(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 U(e){let s="const style = ",t=e.indexOf(s)+s.length,r=e.indexOf(";",t);return e.slice(t,r)}async function re(e,s,t,r){let o=V(e);if(o.length===0)return null;let i=t.classNameAllocator??Qe(),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=U(u.code);a=`${a.slice(0,l.start)}${c}${a.slice(l.end)}`,n.push({...u,atomicClasses:[],origins:{}})}return P(a,n)}import{transformAsync as Ye}from"@babel/core";import Ze from"@cssxio/babel-plugin";import{compileUtilities as et,createSelectorAliases as tt}from"@cssxio/compiler";function ne(e){return{className:`cssx-${E(e)}`,css:e}}function ie(e,s){return e&&s?`@layer ${s}{${e}}`:e}async function ae(e,s,t,r){let o=t.importSource??"@cssxio/cssx",i=await v(t),d=await Ye(e,{babelrc:!1,configFile:!1,filename:s,parserOpts:{plugins:["jsx","typescript"]},plugins:[[Ze,{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 et(m,g=>a[g],i,tt(u),new Set(c),{darkMode:t.darkMode})).css;return{code:d.code,rules:f?[ne(ie(f,t.layer))]:[],candidates:a,composites:u,atomicClasses:c,origins:l,cssOnlySignature:p,map:d.map}}import{createClassNameAllocator as st}from"@cssxio/compiler";import{parse as ot}from"@vue/compiler-sfc";function H(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,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 z(e,s,t){let r={},o=e.slice(s);for(let[i,d]of Object.entries(t))r[i]=_(e,s+H(o,d));return r}function le(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 ce(e,s){if(!s)return e;let t=s==='"'?"'":'"';return e.replace(/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,r=>{let o=r[0]==='"'?JSON.parse(r):le(r),i=JSON.stringify(o);return t==='"'?i:`'${i.slice(1,-1).replaceAll("'","\\'")}'`})}function me(e,s,t,r,o){let i={};for(let[d,n]of Object.entries(o)){let a=H(t,n);i[d]=_(e,s+Math.max(0,a-r))}return i}function de(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 ue(e,s,t,r,o){let i=V(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=ce(U(p.code),de(e,l.start));a=`${a.slice(0,l.start)}${m}${a.slice(l.end)}`,n.push({...p,origins:me(e,l.start,c,u.length,p.origins)})}return P(a,n)}async function pe(e,s,t,r){let o=s.split("?",1).join(""),i=ot(e,{filename:o});if(i.errors.length>0)throw new Error(i.errors[0].message);let d=t.classNameAllocator??st(),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:z(e,c.loc.start.offset,m.origins)})}let l=i.descriptor.template;if(l?.content.includes("sx")){let c=await ue(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:z(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 P(u,a)}var rt=new Set([".js",".jsx",".ts",".tsx",".cjs",".cjsx",".cts",".ctsx",".mjs",".mjsx",".mts",".mtsx",".astro",".vue"]);async function S(e,s,t={},r){F(t);let o=t.importSource??"@cssxio/cssx",i=s.split("?",1).join("");return!rt.has(i.slice(i.lastIndexOf(".")))||!e.includes(o)?null:i.endsWith(".astro")?re(e,s,t,S):i.endsWith(".vue")?pe(e,s,t,S):ae(e,i,t,r)}function fe(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 ge(e,s){let t=await oe(e),r=nt(s.className),o=[];for(let i of t){let d=await it(i,"utf8"),n=await S(d,i,{...s,classNameAllocator:r,stableClassNames:!0,stableClassNameFileName:at(e,i).replaceAll(lt,"/")});n&&o.push({id:i,candidates:n.candidates,composites:n.composites,atomicClasses:n.atomicClasses,origins:n.origins})}return o}function G({compiler:e,options:s,cssFileName:t,sourceMap:r,getTheme:o}){let i=L(e.context,s);ee(e,t,o,s.layer,r,O,i.transformedDataById,s.darkMode,s.preflight,s.stableClassNames?()=>ge(e.context,s):void 0)}function W(e,s,t=Date.now()){e.ws.send({type:"update",updates:[{type:"css-update",path:s,acceptedPath:s,timestamp:t}]})}function ye(e,s){let{cssFileName:t,sourceMap:r,options:o,rollupDataById:i,getTheme:d}=s,n=A(e.config.base,t),a=A("/",t);e.watcher?.on("unlink",l=>{i.delete(y(l)),W(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?w(m.map,t):"");return}u.setHeader("Content-Type","text/css; charset=utf-8"),u.setHeader("Cache-Control","no-store"),u.end(M(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 xe(e){if(!e||typeof e!="object")return j();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 Ce(e){return!e||typeof e!="object"?j():xe(e[O])}function he(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=Ce(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=b(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:M(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:w(c.map,p)})}}}import{relative as ct,resolve as ve,sep as mt}from"path";function Se(e){let s=e.getNativeBuildContext?.();return s&&(s.framework==="webpack"||s.framework==="rspack")?s.loaderContext?.rootContext??process.cwd():void 0}function be(e){return`if (typeof document !== "undefined" && typeof module !== "undefined" && module.hot) {
|
|
10
|
-
const key = "__cssxStylesheetHmr";
|
|
11
|
-
const state = globalThis[key] || (globalThis[key] = { revision: 0, staged: [], replacements: [] });
|
|
12
|
-
const stylesheetLink = [...document.querySelectorAll('link[rel="stylesheet"]')].find((link) =>
|
|
13
|
-
new URL(link.href, document.baseURI).pathname.endsWith(${JSON.stringify(`/${e}`)}),
|
|
14
|
-
);
|
|
15
|
-
const nextLink = stylesheetLink && (() => {
|
|
16
|
-
const path = new URL(stylesheetLink.href, document.baseURI).pathname;
|
|
17
|
-
return path.includes("/_next/");
|
|
18
|
-
})();
|
|
19
|
-
if (!state.installed) {
|
|
20
|
-
state.installed = true;
|
|
21
|
-
state.stage = () => {
|
|
22
|
-
const revision = ++state.revision;
|
|
23
|
-
state.staged = [];
|
|
24
|
-
state.replacements = [];
|
|
25
|
-
const links = [...document.querySelectorAll('link[rel="stylesheet"]')].filter((link) =>
|
|
26
|
-
new URL(link.href, document.baseURI).pathname.endsWith(${JSON.stringify(`/${e}`)}),
|
|
27
|
-
);
|
|
28
|
-
return Promise.all(
|
|
29
|
-
links.map(
|
|
30
|
-
(link) =>
|
|
31
|
-
new Promise((resolve) => {
|
|
32
|
-
const replacement = link.cloneNode();
|
|
33
|
-
const url = new URL(link.href, document.baseURI);
|
|
34
|
-
url.searchParams.set("cssx", String(revision));
|
|
35
|
-
replacement.href = url.href;
|
|
36
|
-
const finish = (loaded) => {
|
|
37
|
-
replacement.removeEventListener("load", onLoad);
|
|
38
|
-
replacement.removeEventListener("error", onError);
|
|
39
|
-
if (loaded) {
|
|
40
|
-
state.staged.push(link);
|
|
41
|
-
if (state.removeOnLoad) link.remove();
|
|
42
|
-
}
|
|
43
|
-
else replacement.remove();
|
|
44
|
-
resolve();
|
|
45
|
-
};
|
|
46
|
-
const onLoad = () => finish(true);
|
|
47
|
-
const onError = () => finish(false);
|
|
48
|
-
replacement.addEventListener("load", onLoad);
|
|
49
|
-
replacement.addEventListener("error", onError);
|
|
50
|
-
state.replacements.push(replacement);
|
|
51
|
-
link.after(replacement);
|
|
52
|
-
}),
|
|
53
|
-
),
|
|
54
|
-
);
|
|
55
|
-
};
|
|
56
|
-
module.hot.addStatusHandler((status) => {
|
|
57
|
-
if (status === "prepare" || status === "dispose") {
|
|
58
|
-
return state.stage();
|
|
59
|
-
}
|
|
60
|
-
if (status === "idle") {
|
|
61
|
-
for (const link of state.staged) link.remove();
|
|
62
|
-
state.staged = [];
|
|
63
|
-
state.replacements = [];
|
|
64
|
-
}
|
|
65
|
-
if (status === "abort" || status === "fail") {
|
|
66
|
-
for (const replacement of state.replacements) replacement.remove();
|
|
67
|
-
state.staged = [];
|
|
68
|
-
state.replacements = [];
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
if (nextLink) module.hot.accept(() => void state.stage());
|
|
72
|
-
for (const updateKey of Object.getOwnPropertyNames(globalThis).filter((name) => name.startsWith("webpackHotUpdate"))) {
|
|
73
|
-
const update = globalThis[updateKey];
|
|
74
|
-
if (typeof update !== "function") continue;
|
|
75
|
-
globalThis[updateKey] = function (...args) {
|
|
76
|
-
void state.stage();
|
|
77
|
-
return update.apply(this, args);
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
if (stylesheetLink) {
|
|
81
|
-
state.removeOnLoad = Boolean(nextLink);
|
|
82
|
-
const refresh = async () => {
|
|
83
|
-
try {
|
|
84
|
-
const url = new URL(stylesheetLink.href, document.baseURI);
|
|
85
|
-
url.searchParams.set("cssx-probe", String(Date.now()));
|
|
86
|
-
const css = await fetch(url.href, { cache: "no-store" }).then((response) => response.text());
|
|
87
|
-
if (state.css && state.css !== css) void state.stage();
|
|
88
|
-
state.css = css;
|
|
89
|
-
} catch {
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
void refresh();
|
|
93
|
-
state.poll = setInterval(() => void refresh(), 500);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}`}function Me(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 we(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?.(ve(o.themeFile));let c=Se(this),p=c?L(c,o):void 0,m=await S(s,t,{...o,classNameAllocator:p?.classNameAllocator??i,...o.stableClassNames?{stableClassNameFileName:ct(c??process.cwd(),y(t)).replaceAll(mt,"/")}:{}},fe(this,t)),f={id:y(t),rules:m?.rules??[],candidates:m?.candidates??{},composites:m?.composites??{},atomicClasses:m?.atomicClasses??[],origins:m?.origins??{},cssOnlySignature:m?.cssOnlySignature??""};Me(this,f,O);let g=y(t);(m||g===t)&&(d.set(g,f),n.set(ve(l(),g),f),p?.transformedDataById.set(g,f)),r==="vite"&&u(A("/",a));let k=m?.code??s;return{code:(r==="webpack"||r==="rspack")&&m?`${k}
|
|
97
|
-
${be(a)}`:k,meta:{[O]:f},...m?.map?{map:m.map}:{}}}}import{Buffer as dt}from"buffer";import{mkdir as ut,unlink as pt,writeFile as ft}from"fs/promises";import{basename as gt,dirname as yt,resolve as xt}from"path";function Oe(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=>xt(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=I(n,a.initialOptions,b(t,c.css));if(!c.css){d&&await pt(d).catch(()=>{}),d=void 0;return}let m=M(c,gt(p));if(a.initialOptions.write===!1){let f=l.outputFiles;if(!f)return;let g={path:p,contents:dt.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 ut(yt(p),{recursive:!0}),await ft(p,m),d=p})},getWorkingDirectory:()=>n}}function ke(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 Ne(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 ke(r,i,t.timestamp),o.filter(a=>!i.includes(a))}}import{createClassNameAllocator as St}from"@cssxio/compiler";import{Buffer as Pe}from"buffer";import{mkdir as bt,readFile as Mt,unlink as Te,writeFile as Fe}from"fs/promises";import{basename as Ee,dirname as vt,resolve as wt}from"path";import{realpath as Ct}from"fs/promises";import{resolve as ht}from"path";async function J(e){return Ct(e).catch(()=>ht(e))}async function Re(e,s){let t=await v(s);return h(e.map(([,r])=>r),t,s.layer,s.sourceMap??!0,s.darkMode,s.preflight)}function Ae(e){return/\.tsx?$/.test(e)?"ts":"js"}var Ot=/\.[cm]?[jt]sx?$/;function Ie(e={}){let s=new Map,t=St(),r,o;return{name:"@cssxio/unplugin",setup(i){let d=i.initialOptions.absWorkingDir??process.cwd();i.initialOptions.metafile=!0,i.onLoad({filter:Ot},async({path:n})=>{let a=await Mt(n,"utf8"),l=await S(a,n,{...e,classNameAllocator:t});if(!l)return;let u=await J(n);return s.set(u,{id:u,candidates:l.candidates,composites:l.composites,atomicClasses:l.atomicClasses,origins:l.origins}),{contents:l.code,loader:Ae(n)}}),i.onEnd(async n=>{if(!n.metafile)return;let a=new Set(await Promise.all(Object.keys(n.metafile.inputs).map(f=>J(wt(d,f)))));for(let f of s.keys())a.has(f)||s.delete(f);let l=await Re([...s],e),u=I(d,i.initialOptions,b(e.cssFileName??"cssx.css",l.css));if(!l.css){r&&await Te(r).catch(()=>{}),o&&await Te(o).catch(()=>{}),r=void 0,o=void 0;return}let c=l.map?`${l.css}
|
|
98
|
-
/*# sourceMappingURL=${Ee(u)}.map */`:l.css,p=`${u}.map`,m=l.map?JSON.stringify({...l.map,file:Ee(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:Pe.from(c),hash:"",text:c}),m&&n.outputFiles.push({path:p,contents:Pe.from(m),hash:"",text:m});return}await bt(vt(u),{recursive:!0}),await Fe(u,c),m&&await Fe(p,m),r=u,o=m?p:void 0})}}}var Rt=/\.(?:[cm]?[jt]sx?|astro|vue)(?:\?.*)?$/,At=(e={},s)=>{F(e);let t=e.cssFileName??"cssx.css",r=e.sourceMap??!0,o=new Map,i=kt(),d=new Map,n,a=()=>v(e),l=Oe({options:e,cssFileName:t,sourceMap:r,dataById:d,getTheme:a}),u=he({framework:s.framework,options:e,cssFileName:t,sourceMap:r,rollupDataById:o,getTheme:a});return{name:"@cssxio/unplugin",enforce:"pre",transform:{filter:{id:Rt},handler:we({framework:s.framework,options:e,classNameAllocator:i,rollupDataById:o,esbuildDataById:d,cssFileName:t,getEsbuildWorkingDirectory:l.getWorkingDirectory,notifyViteStyles:c=>{n&&W(n,c)}})},watchChange(c,p){p.event==="delete"&&o.delete(y(c))},rollup:{generateBundle:u},vite:{generateBundle:u,configureServer(c){n=c,ye(c,{cssFileName:t,sourceMap:r,options:e,rollupDataById:o,getTheme:a})},hotUpdate:{order:"pre",handler:Ne(o)}},...s.framework==="webpack"?{webpack(c){G({compiler:c,options:e,cssFileName:t,sourceMap:r,getTheme:a})}}:{},...s.framework==="rspack"?{rspack(c){G({compiler:c,options:e,cssFileName:t,sourceMap:r,getTheme:a})}}:{},...s.framework==="esbuild"?{esbuild:{config:l.config,setup:l.setup}}:{}}},B=Nt(At),tn=B.vite,sn=B.rollup,on=B.webpack,rn=B.rspack,Pt=B;export{h as a,S as b,At as c,B as d,tn as e,sn as f,on as g,rn as h,Pt as i,Ie as j};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ReusabilityBudget, ClassNameOptions, DarkMode } from '@cssxio/compiler';
|
|
2
|
-
|
|
3
|
-
/** Options for a CSSX bundler adapter. */
|
|
4
|
-
interface CssxPluginOptions {
|
|
5
|
-
/** Module specifier that identifies source files using the CSSX runtime. */
|
|
6
|
-
readonly importSource?: string;
|
|
7
|
-
/** Relative output path for extracted CSS. The default is `cssx.css`. */
|
|
8
|
-
readonly cssFileName?: string;
|
|
9
|
-
/** Whether to generate a CSS source map. The default is `true`. */
|
|
10
|
-
readonly sourceMap?: boolean;
|
|
11
|
-
/** CSSX `@theme` source applied while transforming and compiling CSS. */
|
|
12
|
-
readonly theme?: string;
|
|
13
|
-
/** Path to a CSSX `@theme` file. Cannot be used with `theme`. */
|
|
14
|
-
readonly themeFile?: string;
|
|
15
|
-
/** Optional CSS layer that wraps the generated CSS. */
|
|
16
|
-
readonly layer?: string;
|
|
17
|
-
/** Controls how aggressively static styles share generated class fragments. */
|
|
18
|
-
readonly reusabilityBudget?: ReusabilityBudget;
|
|
19
|
-
/** Options that control generated class names. */
|
|
20
|
-
readonly className?: ClassNameOptions;
|
|
21
|
-
/** Uses source-addressed composite class names across independent compiler processes. */
|
|
22
|
-
readonly stableClassNames?: boolean;
|
|
23
|
-
/** Activates `dark` variants with a media query, `[data-theme=dark]`, or a `.dark` class. */
|
|
24
|
-
readonly darkMode?: DarkMode;
|
|
25
|
-
/** Adds browser baseline rules before generated utilities. Defaults to `true`. */
|
|
26
|
-
readonly preflight?: boolean;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export type { CssxPluginOptions as C };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ReusabilityBudget, ClassNameOptions, DarkMode } from '@cssxio/compiler';
|
|
2
|
-
|
|
3
|
-
/** Options for a CSSX bundler adapter. */
|
|
4
|
-
interface CssxPluginOptions {
|
|
5
|
-
/** Module specifier that identifies source files using the CSSX runtime. */
|
|
6
|
-
readonly importSource?: string;
|
|
7
|
-
/** Relative output path for extracted CSS. The default is `cssx.css`. */
|
|
8
|
-
readonly cssFileName?: string;
|
|
9
|
-
/** Whether to generate a CSS source map. The default is `true`. */
|
|
10
|
-
readonly sourceMap?: boolean;
|
|
11
|
-
/** CSSX `@theme` source applied while transforming and compiling CSS. */
|
|
12
|
-
readonly theme?: string;
|
|
13
|
-
/** Path to a CSSX `@theme` file. Cannot be used with `theme`. */
|
|
14
|
-
readonly themeFile?: string;
|
|
15
|
-
/** Optional CSS layer that wraps the generated CSS. */
|
|
16
|
-
readonly layer?: string;
|
|
17
|
-
/** Controls how aggressively static styles share generated class fragments. */
|
|
18
|
-
readonly reusabilityBudget?: ReusabilityBudget;
|
|
19
|
-
/** Options that control generated class names. */
|
|
20
|
-
readonly className?: ClassNameOptions;
|
|
21
|
-
/** Uses source-addressed composite class names across independent compiler processes. */
|
|
22
|
-
readonly stableClassNames?: boolean;
|
|
23
|
-
/** Activates `dark` variants with a media query, `[data-theme=dark]`, or a `.dark` class. */
|
|
24
|
-
readonly darkMode?: DarkMode;
|
|
25
|
-
/** Adds browser baseline rules before generated utilities. Defaults to `true`. */
|
|
26
|
-
readonly preflight?: boolean;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export type { CssxPluginOptions as C };
|