@razorwind/css 0.0.42 → 0.0.43

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/dist/extract.cjs CHANGED
@@ -1 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./rolldown-runtime-Chgba0Kb.cjs");let t=require("@razorwind/core/lib/fonts"),n=require("@razorwind/core/lib/tokens"),r=require("@razorwind/core/plugin"),i=require("@stryke/fs/exists"),a=require("@stryke/fs/read-file"),o=require("node:path");var s=e.t({CSS_FILE_PATTERN:()=>c,CSS_PATH_CANDIDATES:()=>u,DEFAULT_CSS_PATH:()=>l,default:()=>h,extractCssTokens:()=>m,parseCssTokens:()=>f,resolveCssPath:()=>p});const c=/\.css$/i,l=`src/styles.css`,u=[l,`styles.css`,`src/globals.css`,`globals.css`,`src/app.css`,`tokens.css`];function d(e){return typeof e==`object`&&!!e&&Object.keys(e).length>0}function f(e){return(0,n.parseCssCustomProperties)(e)}function p(e,t){if(t){let n=(0,o.isAbsolute)(t)?t:(0,o.resolve)(e,t);return(0,i.existsSync)(n)?n:null}for(let t of u){let n=(0,o.resolve)(e,t);if((0,i.existsSync)(n))return n}return null}async function m(e){let t=p(e.cwd,e.cssPath);if(!t)return;let n=f(await(0,a.readFile)(t));if(d(n))return n}var h=(0,r.definePlugin)(e=>({name:`css:extract`,parsers:[{name:`css`,pattern:c,parser:e=>f(e)}],extract:async(n,r)=>{let i=r.cwd,o=p(i,e?.cssPath),s=n;if(!d(n.tokens)){let t=await m({cwd:i,cssPath:e?.cssPath});d(t)&&(s={...s,tokens:t})}if(o){let e=(0,t.parseCssFonts)(await(0,a.readFile)(o));s={...s,fonts:(0,t.mergeFonts)(s.fonts,e)}}return s}}));exports.CSS_FILE_PATTERN=c,exports.CSS_PATH_CANDIDATES=u,exports.DEFAULT_CSS_PATH=l,exports.default=h,exports.extractCssTokens=m,exports.parseCssTokens=f,exports.resolveCssPath=p,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./rolldown-runtime-Chgba0Kb.cjs");let t=require("@razorwind/core/lib/fonts"),n=require("@razorwind/core/lib/tokens"),r=require("@razorwind/core/plugin"),i=require("@stryke/fs/exists"),a=require("@stryke/fs/read-file"),o=require("node:path");var s=e.t({CSS_FILE_PATTERN:()=>c,CSS_PATH_CANDIDATES:()=>u,DEFAULT_CSS_PATH:()=>l,default:()=>w,extractCssTokens:()=>C,parseCssTokens:()=>x,resolveCssPath:()=>S});const c=/\.css$/i,l=`src/styles.css`,u=[l,`styles.css`,`src/globals.css`,`globals.css`,`src/app.css`,`tokens.css`],d=/--[A-Z_][\w-]*\s*:/gi,f=/var\s*\(\s*(--[A-Z_][\w-]*)\s*/iy;function p(e,t){let n=e[t],r=t+1;for(;r<e.length;)if(e[r]===`\\`)r+=2;else if(e[r]===n)return r+1;else r+=1;return e.length}function m(e,t){let n=t,r=0,i=0,a=0;for(;n<e.length;){let o=e[n];if(o===`"`||o===`'`){n=p(e,n);continue}if(o===`(`)r+=1;else if(o===`)`)r=Math.max(0,r-1);else if(o===`[`)i+=1;else if(o===`]`)i=Math.max(0,i-1);else if(o===`{`)a+=1;else if(o===`}`){if(r===0&&i===0&&a===0)return{value:e.slice(t,n),end:n};a=Math.max(0,a-1)}else if(o===`;`&&r===0&&i===0&&a===0)return{value:e.slice(t,n),end:n+1};n+=1}return{value:e.slice(t),end:e.length}}function h(e,t){let n=t,r=1;for(;n<e.length;){let i=e[n];if(i===`"`||i===`'`){n=p(e,n);continue}if(i===`(`)r+=1;else if(i===`)`&&(--r,r===0))return{value:e.slice(t,n).trim(),end:n+1};n+=1}return{value:e.slice(t).trim(),end:e.length}}function g(e){let t=[],n=0;for(;n<e.length;){if(e[n]===`"`||e[n]===`'`){n=p(e,n);continue}if(e[n]===`/`&&e[n+1]===`*`){let t=e.indexOf(`*/`,n+2);n=t===-1?e.length:t+2;continue}f.lastIndex=n;let r=f.exec(e);if(!r?.[1]){n+=1;continue}let i=f.lastIndex,a=e[i];if(a!==`:`&&a!==`,`){t.push({name:r[1]}),n=i;continue}let{value:o}=h(e,i+1);o&&t.push({name:r[1],value:o,kind:a===`:`?`embedded`:`fallback`}),n=i+1}return t}function _(e){return g(e).some(e=>e.kind===`embedded`)}function v(e){let t=``,n=0,r=!1,i;for(;i=d.exec(e);){let{value:a,end:o}=m(e,d.lastIndex);if(!_(a)){d.lastIndex=o;continue}t+=e.slice(n,i.index),n=o,r=!0,d.lastIndex=o}return r?t+e.slice(n):e}function y(e){let t=g(e),r=t.some(e=>e.kind===`embedded`)?v(e):e,i=(0,n.collectCssCustomProperties)(r),a=new Map;for(let e of t)e.kind===`embedded`&&e.value&&a.set(e.name,e.value);for(let e of t)e.kind===`fallback`&&e.value&&!a.has(e.name)&&a.set(e.name,e.value);let o=Array.from(a).filter(([e])=>!Object.hasOwn(i,e)).map(([e,t])=>`${e}: ${t};`).join(`
2
+ `);return o?`${r}\n${o}`:r}function b(e){return typeof e==`object`&&!!e&&Object.keys(e).length>0}function x(e){return(0,n.parseCssCustomProperties)(y(e))}function S(e,t){if(t){let n=(0,o.isAbsolute)(t)?t:(0,o.resolve)(e,t);return(0,i.existsSync)(n)?n:null}for(let t of u){let n=(0,o.resolve)(e,t);if((0,i.existsSync)(n))return n}return null}async function C(e){let t=S(e.cwd,e.cssPath);if(!t)return;let n=x(await(0,a.readFile)(t));if(b(n))return n}var w=(0,r.definePlugin)(e=>({name:`css:extract`,parsers:[{name:`css`,pattern:c,parser:e=>x(e)}],extract:async(n,r)=>{let i=r.cwd,o=S(i,e?.cssPath),s=n;if(!b(n.tokens)){let t=await C({cwd:i,cssPath:e?.cssPath});b(t)&&(s={...s,tokens:t})}if(o){let e=(0,t.parseCssFonts)(await(0,a.readFile)(o));s={...s,fonts:(0,t.mergeFonts)(s.fonts,e)}}return s}}));exports.CSS_FILE_PATTERN=c,exports.CSS_PATH_CANDIDATES=u,exports.DEFAULT_CSS_PATH=l,exports.default=w,exports.extractCssTokens=C,exports.parseCssTokens=x,exports.resolveCssPath=S,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
@@ -17,7 +17,8 @@ declare const CSS_PATH_CANDIDATES: readonly ["src/styles.css", "styles.css", "sr
17
17
  *
18
18
  * Declarations are collected from every rule — `:root`, `@theme`, `.dark`,
19
19
  * `@layer`, `@property`, `[data-theme]`, component selectors, and so on — not
20
- * only `:root`. `var(--token)` usages are ignored.
20
+ * only `:root`. Referenced variables are also collected when an explicit
21
+ * declaration or fallback value can be found.
21
22
  */
22
23
  declare function parseCssTokens(contents: string): Tokens;
23
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.cts","names":[],"sources":["../src/extract.ts"],"mappings":";;;;;;;;cAgCa,kBAAgB;;cAGhB;;cAGA;;;;;;;;;iBAyBG,eAAe,mBAAmB;;;;iBAOlC,eACd,aACA;;;;iBAqBoB,iBACpB,SAAS;EAA4B;IACpC,QAAQ"}
1
+ {"version":3,"file":"extract.d.cts","names":[],"sources":["../src/extract.ts"],"mappings":";;;;;;;;cAmCa,kBAAgB;;cAGhB;;cAGA;;;;;;;;;;iBAmPG,eAAe,mBAAmB;;;;iBASlC,eACd,aACA;;;;iBAqBoB,iBACpB,SAAS;EAA4B;IACpC,QAAQ"}
@@ -17,7 +17,8 @@ declare const CSS_PATH_CANDIDATES: readonly ["src/styles.css", "styles.css", "sr
17
17
  *
18
18
  * Declarations are collected from every rule — `:root`, `@theme`, `.dark`,
19
19
  * `@layer`, `@property`, `[data-theme]`, component selectors, and so on — not
20
- * only `:root`. `var(--token)` usages are ignored.
20
+ * only `:root`. Referenced variables are also collected when an explicit
21
+ * declaration or fallback value can be found.
21
22
  */
22
23
  declare function parseCssTokens(contents: string): Tokens;
23
24
  /**
package/dist/extract.mjs CHANGED
@@ -1,2 +1,3 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{mergeFonts as t,parseCssFonts as n}from"@razorwind/core/lib/fonts";import{parseCssCustomProperties as r}from"@razorwind/core/lib/tokens";import{definePlugin as i}from"@razorwind/core/plugin";import{existsSync as a}from"@stryke/fs/exists";import{readFile as o}from"@stryke/fs/read-file";import{isAbsolute as s,resolve as c}from"node:path";var l=e({CSS_FILE_PATTERN:()=>u,CSS_PATH_CANDIDATES:()=>f,DEFAULT_CSS_PATH:()=>d,default:()=>_,extractCssTokens:()=>g,parseCssTokens:()=>m,resolveCssPath:()=>h});const u=/\.css$/i,d=`src/styles.css`,f=[d,`styles.css`,`src/globals.css`,`globals.css`,`src/app.css`,`tokens.css`];function p(e){return typeof e==`object`&&!!e&&Object.keys(e).length>0}function m(e){return r(e)}function h(e,t){if(t){let n=s(t)?t:c(e,t);return a(n)?n:null}for(let t of f){let n=c(e,t);if(a(n))return n}return null}async function g(e){let t=h(e.cwd,e.cssPath);if(!t)return;let n=m(await o(t));if(p(n))return n}var _=i(e=>({name:`css:extract`,parsers:[{name:`css`,pattern:u,parser:e=>m(e)}],extract:async(r,i)=>{let a=i.cwd,s=h(a,e?.cssPath),c=r;if(!p(r.tokens)){let t=await g({cwd:a,cssPath:e?.cssPath});p(t)&&(c={...c,tokens:t})}if(s){let e=n(await o(s));c={...c,fonts:t(c.fonts,e)}}return c}}));export{u as CSS_FILE_PATTERN,f as CSS_PATH_CANDIDATES,d as DEFAULT_CSS_PATH,_ as default,g as extractCssTokens,m as parseCssTokens,h as resolveCssPath,l as t};
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{mergeFonts as t,parseCssFonts as n}from"@razorwind/core/lib/fonts";import{collectCssCustomProperties as r,parseCssCustomProperties as i}from"@razorwind/core/lib/tokens";import{definePlugin as a}from"@razorwind/core/plugin";import{existsSync as o}from"@stryke/fs/exists";import{readFile as s}from"@stryke/fs/read-file";import{isAbsolute as c,resolve as l}from"node:path";var u=e({CSS_FILE_PATTERN:()=>d,CSS_PATH_CANDIDATES:()=>p,DEFAULT_CSS_PATH:()=>f,default:()=>D,extractCssTokens:()=>E,parseCssTokens:()=>w,resolveCssPath:()=>T});const d=/\.css$/i,f=`src/styles.css`,p=[f,`styles.css`,`src/globals.css`,`globals.css`,`src/app.css`,`tokens.css`],m=/--[A-Z_][\w-]*\s*:/gi,h=/var\s*\(\s*(--[A-Z_][\w-]*)\s*/iy;function g(e,t){let n=e[t],r=t+1;for(;r<e.length;)if(e[r]===`\\`)r+=2;else if(e[r]===n)return r+1;else r+=1;return e.length}function _(e,t){let n=t,r=0,i=0,a=0;for(;n<e.length;){let o=e[n];if(o===`"`||o===`'`){n=g(e,n);continue}if(o===`(`)r+=1;else if(o===`)`)r=Math.max(0,r-1);else if(o===`[`)i+=1;else if(o===`]`)i=Math.max(0,i-1);else if(o===`{`)a+=1;else if(o===`}`){if(r===0&&i===0&&a===0)return{value:e.slice(t,n),end:n};a=Math.max(0,a-1)}else if(o===`;`&&r===0&&i===0&&a===0)return{value:e.slice(t,n),end:n+1};n+=1}return{value:e.slice(t),end:e.length}}function v(e,t){let n=t,r=1;for(;n<e.length;){let i=e[n];if(i===`"`||i===`'`){n=g(e,n);continue}if(i===`(`)r+=1;else if(i===`)`&&(--r,r===0))return{value:e.slice(t,n).trim(),end:n+1};n+=1}return{value:e.slice(t).trim(),end:e.length}}function y(e){let t=[],n=0;for(;n<e.length;){if(e[n]===`"`||e[n]===`'`){n=g(e,n);continue}if(e[n]===`/`&&e[n+1]===`*`){let t=e.indexOf(`*/`,n+2);n=t===-1?e.length:t+2;continue}h.lastIndex=n;let r=h.exec(e);if(!r?.[1]){n+=1;continue}let i=h.lastIndex,a=e[i];if(a!==`:`&&a!==`,`){t.push({name:r[1]}),n=i;continue}let{value:o}=v(e,i+1);o&&t.push({name:r[1],value:o,kind:a===`:`?`embedded`:`fallback`}),n=i+1}return t}function b(e){return y(e).some(e=>e.kind===`embedded`)}function x(e){let t=``,n=0,r=!1,i;for(;i=m.exec(e);){let{value:a,end:o}=_(e,m.lastIndex);if(!b(a)){m.lastIndex=o;continue}t+=e.slice(n,i.index),n=o,r=!0,m.lastIndex=o}return r?t+e.slice(n):e}function S(e){let t=y(e),n=t.some(e=>e.kind===`embedded`)?x(e):e,i=r(n),a=new Map;for(let e of t)e.kind===`embedded`&&e.value&&a.set(e.name,e.value);for(let e of t)e.kind===`fallback`&&e.value&&!a.has(e.name)&&a.set(e.name,e.value);let o=Array.from(a).filter(([e])=>!Object.hasOwn(i,e)).map(([e,t])=>`${e}: ${t};`).join(`
2
+ `);return o?`${n}\n${o}`:n}function C(e){return typeof e==`object`&&!!e&&Object.keys(e).length>0}function w(e){return i(S(e))}function T(e,t){if(t){let n=c(t)?t:l(e,t);return o(n)?n:null}for(let t of p){let n=l(e,t);if(o(n))return n}return null}async function E(e){let t=T(e.cwd,e.cssPath);if(!t)return;let n=w(await s(t));if(C(n))return n}var D=a(e=>({name:`css:extract`,parsers:[{name:`css`,pattern:d,parser:e=>w(e)}],extract:async(r,i)=>{let a=i.cwd,o=T(a,e?.cssPath),c=r;if(!C(r.tokens)){let t=await E({cwd:a,cssPath:e?.cssPath});C(t)&&(c={...c,tokens:t})}if(o){let e=n(await s(o));c={...c,fonts:t(c.fonts,e)}}return c}}));export{d as CSS_FILE_PATTERN,p as CSS_PATH_CANDIDATES,f as DEFAULT_CSS_PATH,D as default,E as extractCssTokens,w as parseCssTokens,T as resolveCssPath,u as t};
2
3
  //# sourceMappingURL=extract.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/css",
3
- "version": "0.0.42",
3
+ "version": "0.0.43",
4
4
  "type": "module",
5
5
  "description": "Razorwind CSS plugin that can create CSS files from design tokens or read a CSS file and return the design tokens.",
6
6
  "repository": {
@@ -74,8 +74,8 @@
74
74
  "dependencies": {
75
75
  "@power-plant/core": "^0.0.91",
76
76
  "@power-plant/dtcg-schema": "^0.0.1",
77
- "@razorwind/core": "^0.0.59",
78
- "@razorwind/style-dictionary": "^0.0.45",
77
+ "@razorwind/core": "^0.0.60",
78
+ "@razorwind/style-dictionary": "^0.0.46",
79
79
  "@stryke/fs": "^0.33.113",
80
80
  "@stryke/path": "^0.29.38",
81
81
  "@stryke/type-checks": "^0.6.44",
@@ -88,5 +88,5 @@
88
88
  "typescript": "^6.0.3"
89
89
  },
90
90
  "publishConfig": { "access": "public" },
91
- "gitHead": "43b57170fcf1f25a7e928100915a6fcb58330db5"
91
+ "gitHead": "473392c2d86a28f9ce117cdc5c30182181c14ee8"
92
92
  }