@razorwind/core 0.0.47 → 0.0.49
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/{config-BjuUx31T.d.cts → config-B1rsPTVV.d.mts} +10 -5
- package/dist/config-B1rsPTVV.d.mts.map +1 -0
- package/dist/{config-CEPqgKnD.d.mts → config-jPfyBr8C.d.cts} +10 -5
- package/dist/{config-BjuUx31T.d.cts.map → config-jPfyBr8C.d.cts.map} +1 -1
- package/dist/flatten-tokens-DWbPW_3z.d.cts +64 -0
- package/dist/flatten-tokens-DWbPW_3z.d.cts.map +1 -0
- package/dist/flatten-tokens-Dz4e2IHx.d.mts +64 -0
- package/dist/flatten-tokens-Dz4e2IHx.d.mts.map +1 -0
- package/dist/{fonts-CUwsBEd5.mjs → fonts-BiuIJVev.mjs} +4 -4
- package/dist/fonts-BiuIJVev.mjs.map +1 -0
- package/dist/{fonts-75PPb25H.cjs → fonts-CkBPEFie.cjs} +2 -2
- package/dist/{index-DXx1b3vZ.d.cts → index-52XD5ztc.d.mts} +14 -6
- package/dist/{index-crrCGMN9.d.mts.map → index-52XD5ztc.d.mts.map} +1 -1
- package/dist/{index-DovYOOtL.d.cts → index-CwN0c1Q4.d.cts} +1 -1
- package/dist/{index-ktFi0nZL.d.mts → index-D5L2WXYk.d.mts} +1 -1
- package/dist/{index-crrCGMN9.d.mts → index-D6x2Pe2v.d.cts} +13 -5
- package/dist/index-D6x2Pe2v.d.cts.map +1 -0
- package/dist/{index-D7VrdiAn.d.mts → index-VmrytwDm.d.cts} +4 -4
- package/dist/{index-DNAWtBG8.d.cts.map → index-VmrytwDm.d.cts.map} +1 -1
- package/dist/{index-DNAWtBG8.d.cts → index-nRnX_NsH.d.mts} +4 -4
- package/dist/{index-D7VrdiAn.d.mts.map → index-nRnX_NsH.d.mts.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +88 -16
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +88 -16
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/lib/fonts/index.cjs +1 -1
- package/dist/lib/fonts/index.d.cts +1 -1
- package/dist/lib/fonts/index.d.mts +1 -1
- package/dist/lib/fonts/index.mjs +1 -1
- package/dist/lib/tokens/index.cjs +1 -1
- package/dist/lib/tokens/index.d.cts +2 -2
- package/dist/lib/tokens/index.d.mts +2 -2
- package/dist/lib/tokens/index.mjs +1 -1
- package/dist/{plugin-BocNoTkM.d.mts → plugin-CSC1jRVg.d.cts} +2 -2
- package/dist/{plugin-DMOM9PDs.d.cts.map → plugin-CSC1jRVg.d.cts.map} +1 -1
- package/dist/{plugin-DMOM9PDs.d.cts → plugin-DBrXhsY0.d.mts} +2 -2
- package/dist/plugin-DBrXhsY0.d.mts.map +1 -0
- package/dist/plugin.d.cts +2 -2
- package/dist/plugin.d.mts +2 -2
- package/dist/schema/index.cjs +1 -1
- package/dist/schema/index.d.cts +2 -2
- package/dist/schema/index.d.mts +2 -2
- package/dist/schema/index.mjs +1 -1
- package/dist/{schema-D0sXEBjV.cjs → schema-BCofDJWf.cjs} +1 -1
- package/dist/{schema-Crr8KMUY.d.cts → schema-BwOBgJIM.d.cts} +6 -1
- package/dist/{schema-Crr8KMUY.d.cts.map → schema-BwOBgJIM.d.cts.map} +1 -1
- package/dist/{schema-Crr8KMUY.d.mts → schema-BwOBgJIM.d.mts} +6 -1
- package/dist/schema-BwOBgJIM.d.mts.map +1 -0
- package/dist/{schema-Btk_-NEI.mjs → schema-CXK5pVmJ.mjs} +2 -2
- package/dist/schema-CXK5pVmJ.mjs.map +1 -0
- package/dist/tokens-BjB6F0P1.cjs +7 -0
- package/dist/tokens-C_RYVqap.mjs +8 -0
- package/dist/tokens-C_RYVqap.mjs.map +1 -0
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +95 -92
- package/dist/utils/index.d.cts.map +1 -1
- package/dist/utils/index.d.mts +95 -92
- package/dist/utils/index.d.mts.map +1 -1
- package/dist/utils/index.mjs +1 -1
- package/dist/utils-3eUdyRLZ.cjs +1 -0
- package/dist/utils-CMqr6G7v.mjs +2 -0
- package/dist/utils-CMqr6G7v.mjs.map +1 -0
- package/package.json +2 -2
- package/dist/config-CEPqgKnD.d.mts.map +0 -1
- package/dist/fonts-CUwsBEd5.mjs.map +0 -1
- package/dist/index-DXx1b3vZ.d.cts.map +0 -1
- package/dist/plugin-BocNoTkM.d.mts.map +0 -1
- package/dist/schema-Btk_-NEI.mjs.map +0 -1
- package/dist/schema-Crr8KMUY.d.mts.map +0 -1
- package/dist/tokens-BSuKch7x.cjs +0 -7
- package/dist/tokens-CsosSHvJ.mjs +0 -8
- package/dist/tokens-CsosSHvJ.mjs.map +0 -1
- package/dist/utils-B5uabOd5.mjs +0 -2
- package/dist/utils-B5uabOd5.mjs.map +0 -1
- package/dist/utils-BiL8zQzg.cjs +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./schema-D0sXEBjV.cjs"),n=require("./fonts-75PPb25H.cjs"),r=require("./tokens-BSuKch7x.cjs"),i=require("./plugin.cjs");let a=require("@power-plant/core"),o=require("defu"),s=require("@stryke/fs/exists"),c=require("@stryke/fs/is-file"),l=require("@stryke/fs/json"),u=require("@stryke/fs/list-files"),d=require("@stryke/path/append"),f=require("@stryke/path/file-path-fns"),p=require("@stryke/path/join"),m=require("@stryke/string-format/title-case"),h=require("@stryke/type-checks/is-set-object"),g=require("@stryke/type-checks/is-set-string"),_=require("node:fs/promises"),v=require("node:path"),ee=require("@stryke/env/get-env-paths"),y=require("@stryke/path/find"),b=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),x=require("c12"),ne=require("jiti"),S=require("node:fs"),C=require("node:os");C=e.t(C,1);var re=`0.0.47`;function w(e){return!!((0,g.isSetString)(e)||(0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))}function T(e){if((0,g.isSetString)(e))return e;if((0,h.isSetObject)(e)&&`url`in e&&(0,g.isSetString)(e.url))return e.url}const ie=t.o.partial(),E=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),D=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ae(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function oe(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function O(e){let t=e.toLowerCase();if(E.has(t))return t}function se(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&E.has(t))}function k(e){if(!e)return;let n=t.a.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.a.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function A(e){if(!e)return;let n=t.s.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){if((0,g.isSetString)(n)){let e=(0,f.findFileName)(n,{withExtension:!1})||n,i=t.s.safeParse({name:e,path:n});i.success&&r.push(i.data);continue}let e=t.s.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function j(e){if(!(0,h.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ie.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function M(e){return(0,h.isSetObject)(e)&&`path`in e}async function ce(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),(0,h.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,h.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c,u;M(a)?c=k(a):(0,h.isSetObject)(a)&&(o=j(a),`files`in a&&(c=k(a.files)),`usage`in a&&(u=A(a.usage)));let d=D(o??{},r);return c?.length&&(d.files=c),u?.length&&(d.usage=u),Object.keys(d).length>0?d:void 0}async function le(e){let t=(0,p.joinPaths)(e,`component.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(M(n)||Array.isArray(n)){let e=k(n);if(e)return{files:e}}if(!(0,h.isSetObject)(n))return;let r=j(n)??{},i=`files`in n?k(n.files):void 0,a=`usage`in n?A(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function ue(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&se(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function de(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.language??O(r),a=t.name||(0,f.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content===void 0?(0,s.existsSync)(n)?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,p.joinPaths)(e,`usage`);if(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n))return;let r=await ue(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,p.joinPaths)(n,e),r=O((0,f.findFileExtensionSafe)(e)??``),i=(0,f.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,m.titleCase)(i),path:t,content:await(0,_.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function fe(e,t){let n=t??(await(0,u.listFiles)(e)).filter(e=>(0,f.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,_.readFile)((0,d.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,f.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,_.readFile)((0,d.appendPath)(t.path,e),`utf8`):void 0,path:(0,d.appendPath)(t.path,e)}))}async function pe(e){let n=await ce(e),r=await le(e);if(!n&&!r)return;let i=D(r??{},n??{}),a=(0,g.isSetString)(i.name)?i.name:(0,f.findFolderName)(e),o=(0,g.isSetString)(i.title)?i.title:(0,m.titleCase)(a),s=t.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await de(e,s.data.usage);return{...s.data,files:await fe(e,s.data.files),...c?.length?{usage:c}:{}}}async function N(e){let t={},n=oe(e.options.componentsPath);for(let r of n){let n=ae(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await pe((0,p.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const me=t.r.partial(),P=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),F=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function he(e,t){return(0,v.isAbsolute)(t)?t:(0,v.resolve)(e,t)}function ge(e){return Array.isArray(e)?e.filter(g.isSetString):(0,g.isSetString)(e)?[e]:[]}function I(e){let t=e.toLowerCase();if(P.has(t))return t}function L(e){let t=(0,f.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&P.has(t))}function _e(e){return r.b.test(e)}async function R(e){try{return(await(0,_.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&L(e.name)).map(e=>e.name)}catch{return[]}}function z(e){if(!e)return;let n=t.n.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.n.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function B(e){if(!(0,h.isSetObject)(e))return;let t=me.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function V(e){return(0,h.isSetObject)(e)&&`path`in e}async function H(e,t,n){let r=(0,d.appendPath)(e,t),i=I((0,f.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,_.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function ve(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}let r={};(0,g.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,g.isSetString)(n.description)&&(r.description=n.description),(0,g.isSetString)(n.version)&&(r.version=n.version),(0,g.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=T(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(g.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,c;V(a)?c=z(a):(0,h.isSetObject)(a)&&(o=B(a),`files`in a&&(c=z(a.files)));let u=F(o??{},r);return c?.length&&(u.files=c),Object.keys(u).length>0?u:void 0}async function ye(e){let t=(0,p.joinPaths)(e,`icon.json`);if(!(0,s.existsSync)(t))return;let n;try{n=await(0,l.readJsonFile)(t)}catch{return}if(V(n)||Array.isArray(n)){let e=z(n);if(e)return{files:e}}return B(n)}async function be(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,d.appendPath)(t.path,e),r=(0,f.findFileExtensionSafe)(t.path)??``,i=t.type??I(r)??`file`,a=t.content===void 0?i===`svg`?await(0,_.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await R(e);return Promise.all(n.map(t=>H(t,e)))}async function xe(e){let n=await ve(e),r=await ye(e),i=await R(e);if(!n&&!r&&i.length===0)return;let a=F(r??{},n??{}),o=(0,g.isSetString)(a.name)?a.name:(0,f.findFolderName)(e),s=(0,g.isSetString)(a.title)?a.title:(0,m.titleCase)(o),c=t.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await be(e,c.data.files)}}function U(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,m.titleCase)(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Se(e,t,n){let r=await R(e);for(let i of r){let r=(0,f.findFileName)(i,{withExtension:!1});r&&U(n,r,await H(i,e,t))}}async function W(e){let t={},n=ge(e.options.iconsPath);for(let r of n){let n=he(e.cwd,r);if(!(!(0,s.existsSync)(n)||!(0,c.isDirectory)(n)))try{let e=await(0,_.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,p.joinPaths)(n,r.name);if(r.isDirectory()){if(_e(r.name)){await Se(e,r.name,t);continue}let n=await xe(e);if(n){let e=t[n.name];t[n.name]=e?F(n,e):n}continue}if(r.isFile()&&L(r.name)){let e=(0,f.findFileName)(r.name,{withExtension:!1});if(!e)continue;U(t,e,await H(r.name,n))}}}catch{continue}}return t}function G(e,t){let n=e[t];return(0,g.isSetString)(n)?n:void 0}function K(e){let t={};(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=T(e.repository);n&&(t.repository=n),(0,g.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,h.isSetObject)(r)){let t=r,n=G(t,`title`),a=G(t,`name`),o=G(t,`description`),s=G(t,`homepage`),c=G(t,`logo`),l=T(t.repository);a?i.name=a:(0,g.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,g.isSetString)(i.name)&&(i.title=(0,m.titleCase)(i.name)),o?i.description=o:(0,g.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:w(e.homepage)?i.homepage=T(e.homepage):w(e.author)?i.homepage=T(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&w(e.maintainers[0])?i.homepage=T(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&w(e.contributors[0])?i.homepage=T(e.contributors[0]):w(e.bugs)&&(i.homepage=T(e.bugs)),c&&(i.logo=c),l?i.repository=l:w(e.repository)&&(i.repository=T(e.repository))}return(0,o.defu)(i,t)}function q(e){let t={};return(0,g.isSetString)(e.name)&&(t.name=e.name),(0,g.isSetString)(e.title)&&(t.title=e.title),(0,g.isSetString)(e.description)&&(t.description=e.description),(0,g.isSetString)(e.repository)&&(t.repository=e.repository),(0,g.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,g.isSetString)(e.logo)&&(t.logo=e.logo),t}async function J(e){let t=(0,p.joinPaths)(e,`package.json`);if(!(0,s.existsSync)(t))return{};let n;try{n=await(0,l.readJsonFile)(t)}catch{return{}}return K(n)}async function Y(e,t){let n=await J(e),r=q(t);return(0,o.defu)(r,n)}function X(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Z=C.default.homedir();async function Q(e,t){let n=t.configFile&&(0,S.existsSync)((0,b.replacePath)(t.configFile,e))?(0,b.replacePath)(t.configFile,e):t.configFile&&(0,S.existsSync)(t.configFile)?t.configFile:(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,p.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.ts`))?(0,p.joinPaths)(e,`razorwind.config.ts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.js`))?(0,p.joinPaths)(e,`razorwind.config.js`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mts`))?(0,p.joinPaths)(e,`razorwind.config.mts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.mjs`))?(0,p.joinPaths)(e,`razorwind.config.mjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cjs`))?(0,p.joinPaths)(e,`razorwind.config.cjs`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.cts`))?(0,p.joinPaths)(e,`razorwind.config.cts`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.json`))?(0,p.joinPaths)(e,`razorwind.config.json`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yaml`))?(0,p.joinPaths)(e,`razorwind.config.yaml`):(0,S.existsSync)((0,p.joinPaths)(e,`razorwind.config.yml`))?(0,p.joinPaths)(e,`razorwind.config.yml`):void 0,r=(0,ee.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,ne.createJiti)(e,i),s={};if(n){let r=(0,v.isAbsolute)(n)?n:(0,v.resolve)(e,n),i=await a.import(r,{default:!0});if(i){let r={};(0,te.isFunction)(i)?r=await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):((0,h.isSetObject)(i)||Array.isArray(i))&&(r=i),((0,h.isSetObject)(r)||Array.isArray(r))&&(s={...r,configFile:n})}}let[c,l,u]=await Promise.all([(0,x.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,x.loadConfig)({cwd:Z,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=(0,h.isSetObject)(c?.config)?{...c.config}:{},f=n?(0,v.isAbsolute)(n)?n:(0,v.resolve)(e,n):void 0,m=typeof c?.configFile==`string`?c.configFile:void 0;f&&m&&(0,v.resolve)(e,m)===f&&delete d.plugins;let _=(0,o.defu)({cwd:e,envPaths:{...r,home:Z}},t,s,d,(0,h.isSetObject)(l?.config)?{...l.config}:{},(0,h.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,iconsPath:(0,p.joinPaths)(e,`assets/icons`),fontsPath:(0,p.joinPaths)(e,`assets/fonts`),plugins:[]});if(Array.isArray(_.componentsPath)){let t=_.componentsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));_.componentsPath=t.length>0?t:e}else _.componentsPath=(0,g.isSetString)(_.componentsPath)?(0,y.findFilePath)(_.componentsPath):e;if(Array.isArray(_.iconsPath)){let t=_.iconsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));_.iconsPath=t.length>0?t:(0,p.joinPaths)(e,`assets/icons`)}else _.iconsPath=(0,g.isSetString)(_.iconsPath)?(0,y.findFilePath)(_.iconsPath):(0,p.joinPaths)(e,`assets/icons`);if(Array.isArray(_.fontsPath)){let t=_.fontsPath.filter(g.isSetString).map(e=>(0,y.findFilePath)(e));_.fontsPath=t.length>0?t:(0,p.joinPaths)(e,`assets/fonts`)}else _.fontsPath=(0,g.isSetString)(_.fontsPath)?(0,y.findFilePath)(_.fontsPath):(0,p.joinPaths)(e,`assets/fonts`);return _.plugins=X(Array.isArray(_.plugins)?_.plugins:[]),_.verbose=t.verbose===!0||s.verbose===!0,_}async function $(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=(0,v.isAbsolute)(e)?e:(0,v.resolve)(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await(0,_.mkdir)((0,v.dirname)(a),{recursive:!0}),await(0,_.writeFile)(a,o,`utf8`),n.push(a)}return n}function Ce(e){return e}const we=(0,a.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:re,tags:[`razorwind`,`dtcg`]},schema:(0,a.defineSchema)({schema:t.t}),input:async e=>{let t=(0,a.useExecution)();if(t.options=await Q(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let i=t.options.tokens;(!i||r.t(i))&&(i=await r.n(t));let s={...await Y(t.cwd,t.options),tokens:i??{},components:(0,o.defu)(t.options.components??{},await N(t)??{}),icons:(0,o.defu)(t.options.icons??{},await W(t)??{}),fonts:(0,o.defu)(t.options.fonts??{},await n.a(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))s=await e.extract(s,t.options);if(!s.tokens||r.t(s.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(s,t.options);return s},output:async(e,t,n)=>{await $(n,(0,a.useExecution)().cwd)},generator:async e=>{let t=(0,a.useExecution)(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=(0,o.defu)(i,n)}return n}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=r.y,exports.FONT_EXTENSIONS=n.h,exports.FONT_FORMAT_FROM_EXTENSION=n.g,exports.GENERIC_FALLBACK_FROM_ROLE=n._,exports.MONO_ROLES=n.v,exports.RAZORWIND_INFER_PREPROCESSOR=r.o,exports.SANS_ROLES=n.y,exports.THEME_BASENAME_PATTERN=r.b,exports.TOKEN_DIRECTORY_GLOB=r.x,exports.TOKEN_FILE_EXTENSIONS=r.S,exports.TYPE_PATH_HINTS=r.w,exports.WEIGHT_FROM_SUFFIX=n.b,exports.WINDIE_PARSERS=r.C,exports.razorwindParsers=r.C,exports.copyFontFiles=n.m,exports.cssFontFamily=n.s,exports.defineConfig=Ce,exports.definePlugin=i.definePlugin,exports.fontFamilyName=n.c,exports.generator=we,exports.getExtractionHooks=r.s,exports.getRazorwindParserHooks=r.c,exports.getRazorwindPreprocessorHooks=r.l,exports.inferTypeFromPath=r.h,exports.inferValue=r.g,exports.isEmptyFonts=n.t,exports.isEmptyTokens=r.t,exports.loadComponents=N,exports.loadFonts=n.a,exports.loadIcons=W,exports.loadSchemaMetaFromPackageJson=J,exports.loadTokens=r.n,exports.loadTokensOrThrow=r.r,exports.mergeFonts=n.n,exports.nestFlatTokens=r._,exports.normalizeRepository=T,exports.normalizeTokenTree=r.v,exports.parseCssCustomProperties=r.m,exports.parseCssFonts=n.r,exports.parseFontFilename=n.o,exports.pickFontByRole=n.i,exports.prependFontCss=n.l,exports.razorwindInferPreprocessor=r.u,exports.registerRazorwindHooks=r.d,exports.registerRazorwindParsers=r.f,exports.renderFontCss=n.u,exports.renderGoogleFontImports=n.d,exports.renderLocalFontFaces=n.f,exports.resolveConfig=Q,exports.resolveSchemaMeta=Y,exports.resolveTokensSource=r.i,exports.schemaMetaFromConfig=q,exports.schemaMetaFromPackageJson=K,exports.styleDictionaryLogOptions=r.p,exports.themeKeyFromPath=r.a,exports.toGoogleFontsCssUrl=n.p,exports.uniquePlugins=X,exports.writeGeneratedDocuments=$;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-3eUdyRLZ.cjs"),n=require("./schema-BCofDJWf.cjs"),r=require("./fonts-CkBPEFie.cjs"),i=require("./tokens-BjB6F0P1.cjs"),a=require("./plugin.cjs");let o=require("@power-plant/core"),s=require("defu"),c=require("node:path"),l=require("@stryke/string-format/title-case"),u=require("@stryke/fs/exists"),d=require("@stryke/fs/is-file"),f=require("@stryke/fs/json"),p=require("@stryke/fs/list-files"),m=require("@stryke/path/append"),h=require("@stryke/path/file-path-fns"),g=require("@stryke/path/join"),_=require("@stryke/type-checks/is-set-object"),v=require("@stryke/type-checks/is-set-string"),y=require("node:fs/promises"),ee=require("@stryke/env/get-env-paths"),b=require("@stryke/path/find"),x=require("@stryke/path/replace"),te=require("@stryke/type-checks/is-function"),S=require("c12"),ne=require("jiti"),C=require("node:fs"),w=require("node:os");w=e.t(w,1);function T(e){let n=t._(e),r=n.filter(e=>!t.h(e.id));return r.length===0||r.length===1&&n.length===1?[]:r}function re(e,n){let r=e.find(e=>e.id===t.f);return!r||t.h(n.id)?n.tokens:t.d(n.tokens,r.tokens)}function ie(e,n,r){return{...e,theme:n.id,title:t.c(e.title,n.id)??e.title,tokens:re(r,n)}}function ae(e,n){let r=t.c(e.title,n.id);return r?{...e,title:r}:e}async function E(e,t){let n={};for(let r of t.plugins.filter(e=>e.generate)){let i=await r.generate(e,t);n=(0,s.defu)(i,n)}return n}async function oe(e,n){let r=t._(e.tokens),i=T(e.tokens);if(i.length===0)return E(e,n);let a={};for(let o of i){let i=await E(ie(e,o,r),ae(n,o));a=(0,s.defu)(t.s(i,o.id),a)}return a}async function se(e){let t={};for(let n of e)Object.assign(t,await oe(n.spec,n.config));return t}function D(e){return!!((0,v.isSetString)(e)||(0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))}function O(e){if((0,v.isSetString)(e))return e;if((0,_.isSetObject)(e)&&`url`in e&&(0,v.isSetString)(e.url))return e.url}const ce=n.o.partial(),k=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),A=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function le(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function ue(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function j(e){let t=e.toLowerCase();if(k.has(t))return t}function de(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&k.has(t))}function M(e){if(!e)return;let t=n.a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.a.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function N(e){if(!e)return;let t=n.s.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){if((0,v.isSetString)(t)){let e=(0,h.findFileName)(t,{withExtension:!1})||t,i=n.s.safeParse({name:e,path:t});i.success&&r.push(i.data);continue}let e=n.s.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function P(e){if(!(0,_.isSetObject)(e))return;let{files:t,usage:n,...r}=e,i=ce.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function F(e){return(0,_.isSetObject)(e)&&`path`in e}async function fe(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=O(n.repository);if(i&&(r.repository=i),(0,_.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,_.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;F(a)?s=M(a):(0,_.isSetObject)(a)&&(o=P(a),`files`in a&&(s=M(a.files)),`usage`in a&&(c=N(a.usage)));let l=A(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function pe(e){let t=(0,g.joinPaths)(e,`component.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(F(n)||Array.isArray(n)){let e=M(n);if(e)return{files:e}}if(!(0,_.isSetObject)(n))return;let r=P(n)??{},i=`files`in n?M(n.files):void 0,a=`usage`in n?N(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function me(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&de(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function he(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.language??j(r),a=t.name||(0,h.findFileName)(t.path,{withExtension:!1})||t.path,o=t.content??((0,u.existsSync)(n)?await(0,y.readFile)(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=(0,g.joinPaths)(e,`usage`);if(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n))return;let r=await me(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=(0,g.joinPaths)(n,e),r=j((0,h.findFileExtensionSafe)(e)??``),i=(0,h.findFileName)(e,{withExtension:!1})||e;return{name:i,title:(0,l.titleCase)(i),path:t,content:await(0,y.readFile)(t,`utf8`),...r?{language:r}:{}}}))}async function ge(e,t){let n=t??(await(0,p.listFiles)(e)).filter(e=>(0,h.findFileName)(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,y.readFile)((0,m.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,h.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,y.readFile)((0,m.appendPath)(t.path,e),`utf8`):void 0,path:(0,m.appendPath)(t.path,e)}))}async function _e(e){let t=await fe(e),r=await pe(e);if(!t&&!r)return;let i=A(r??{},t??{}),a=(0,v.isSetString)(i.name)?i.name:(0,h.findFolderName)(e),o=(0,v.isSetString)(i.title)?i.title:(0,l.titleCase)(a),s=n.o.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await he(e,s.data.usage);return{...s.data,files:await ge(e,s.data.files),...c?.length?{usage:c}:{}}}async function I(e){let t={},n=ue(e.options.componentsPath);for(let r of n){let n=le(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await _e((0,g.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const ve=n.r.partial(),L=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),R=(0,s.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function ye(e,t){return(0,c.isAbsolute)(t)?t:(0,c.resolve)(e,t)}function be(e){return Array.isArray(e)?e.filter(v.isSetString):(0,v.isSetString)(e)?[e]:[]}function z(e){let t=e.toLowerCase();if(L.has(t))return t}function B(e){let t=(0,h.findFileExtensionSafe)(e)?.toLowerCase();return!!(t&&L.has(t))}function xe(e){return i.b.test(e)}async function V(e){try{return(await(0,y.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&B(e.name)).map(e=>e.name)}catch{return[]}}function H(e){if(!e)return;let t=n.n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function U(e){if(!(0,_.isSetObject)(e))return;let t=ve.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function W(e){return(0,_.isSetObject)(e)&&`path`in e}async function G(e,t,n){let r=(0,m.appendPath)(e,t),i=z((0,h.findFileExtensionSafe)(e)??``)??`file`,a=i===`svg`?await(0,y.readFile)(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Se(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}let r={};(0,v.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,v.isSetString)(n.description)&&(r.description=n.description),(0,v.isSetString)(n.version)&&(r.version=n.version),(0,v.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=O(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(v.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;W(a)?s=H(a):(0,_.isSetObject)(a)&&(o=U(a),`files`in a&&(s=H(a.files)));let c=R(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Ce(e){let t=(0,g.joinPaths)(e,`icon.json`);if(!(0,u.existsSync)(t))return;let n;try{n=await(0,f.readJsonFile)(t)}catch{return}if(W(n)||Array.isArray(n)){let e=H(n);if(e)return{files:e}}return U(n)}async function we(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=(0,m.appendPath)(t.path,e),r=(0,h.findFileExtensionSafe)(t.path)??``,i=t.type??z(r)??`file`,a=t.content===void 0?i===`svg`?await(0,y.readFile)(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await V(e);return Promise.all(n.map(t=>G(t,e)))}async function Te(e){let t=await Se(e),r=await Ce(e),i=await V(e);if(!t&&!r&&i.length===0)return;let a=R(r??{},t??{}),o=(0,v.isSetString)(a.name)?a.name:(0,h.findFolderName)(e),s=(0,v.isSetString)(a.title)?a.title:(0,l.titleCase)(o),c=n.r.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await we(e,c.data.files)}}function K(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:(0,l.titleCase)(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Ee(e,t,n){let r=await V(e);for(let i of r){let r=(0,h.findFileName)(i,{withExtension:!1});r&&K(n,r,await G(i,e,t))}}async function q(e){let t={},n=be(e.options.iconsPath);for(let r of n){let n=ye(e.cwd,r);if(!(!(0,u.existsSync)(n)||!(0,d.isDirectory)(n)))try{let e=await(0,y.readdir)(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=(0,g.joinPaths)(n,r.name);if(r.isDirectory()){if(xe(r.name)){await Ee(e,r.name,t);continue}let n=await Te(e);if(n){let e=t[n.name];t[n.name]=e?R(n,e):n}continue}if(r.isFile()&&B(r.name)){let e=(0,h.findFileName)(r.name,{withExtension:!1});if(!e)continue;K(t,e,await G(r.name,n))}}}catch{continue}}return t}function J(e,t){let n=e[t];return(0,v.isSetString)(n)?n:void 0}function Y(e){let t={};(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage);let n=O(e.repository);n&&(t.repository=n),(0,v.isSetString)(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if((0,_.isSetObject)(r)){let t=r,n=J(t,`title`),a=J(t,`name`),o=J(t,`description`),s=J(t,`homepage`),c=J(t,`logo`),u=O(t.repository);a?i.name=a:(0,v.isSetString)(e.name)&&(i.name=e.name),n?i.title=n:(0,v.isSetString)(i.name)&&(i.title=(0,l.titleCase)(i.name)),o?i.description=o:(0,v.isSetString)(e.description)&&(i.description=e.description),s?i.homepage=s:D(e.homepage)?i.homepage=O(e.homepage):D(e.author)?i.homepage=O(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&D(e.maintainers[0])?i.homepage=O(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&D(e.contributors[0])?i.homepage=O(e.contributors[0]):D(e.bugs)&&(i.homepage=O(e.bugs)),c&&(i.logo=c),u?i.repository=u:D(e.repository)&&(i.repository=O(e.repository))}return(0,s.defu)(i,t)}function X(e){let t={};return(0,v.isSetString)(e.name)&&(t.name=e.name),(0,v.isSetString)(e.title)&&(t.title=e.title),(0,v.isSetString)(e.description)&&(t.description=e.description),(0,v.isSetString)(e.repository)&&(t.repository=e.repository),(0,v.isSetString)(e.homepage)&&(t.homepage=e.homepage),(0,v.isSetString)(e.logo)&&(t.logo=e.logo),t}async function De(e){let t=(0,g.joinPaths)(e,`package.json`);if(!(0,u.existsSync)(t))return{};let n;try{n=await(0,f.readJsonFile)(t)}catch{return{}}return Y(n)}async function Oe(e,t){let n=await De(e),r=X(t);return(0,s.defu)(r,n)}function ke(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Ae=w.default.homedir();function je(e){return Array.isArray(e)?e.filter(e=>(0,_.isSetObject)(e)):[]}function Z(e){return Array.isArray(e)||!(0,_.isSetObject)(e)?{}:{...e}}const Me=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Ne(e,t){let n={...e};for(let e of Me)t[e]!=null&&delete n[e];return n}function Pe(e,t,n,r){let i=(0,s.defu)({cwd:e,envPaths:r.envPaths},Ne(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:(0,g.joinPaths)(e,`assets/icons`),fontsPath:(0,g.joinPaths)(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=(0,v.isSetString)(i.componentsPath)?(0,b.findFilePath)(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.iconsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/icons`)}else i.iconsPath=(0,v.isSetString)(i.iconsPath)?(0,b.findFilePath)(i.iconsPath):(0,g.joinPaths)(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(v.isSetString).map(e=>(0,b.findFilePath)(e));i.fontsPath=t.length>0?t:(0,g.joinPaths)(e,`assets/fonts`)}else i.fontsPath=(0,v.isSetString)(i.fontsPath)?(0,b.findFilePath)(i.fontsPath):(0,g.joinPaths)(e,`assets/fonts`);return i.plugins=ke(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function Q(e,t){let n=t.configFile&&(0,C.existsSync)((0,x.replacePath)(t.configFile,e))?(0,x.replacePath)(t.configFile,e):t.configFile&&(0,C.existsSync)(t.configFile)?t.configFile:(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.ts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.js`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.cts`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.json`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.${t.mode}.yml`))?(0,g.joinPaths)(e,`razorwind.${t.mode}.yml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.ts`))?(0,g.joinPaths)(e,`razorwind.config.ts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.js`))?(0,g.joinPaths)(e,`razorwind.config.js`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mts`))?(0,g.joinPaths)(e,`razorwind.config.mts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.mjs`))?(0,g.joinPaths)(e,`razorwind.config.mjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cjs`))?(0,g.joinPaths)(e,`razorwind.config.cjs`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.cts`))?(0,g.joinPaths)(e,`razorwind.config.cts`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.json`))?(0,g.joinPaths)(e,`razorwind.config.json`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yaml`))?(0,g.joinPaths)(e,`razorwind.config.yaml`):(0,C.existsSync)((0,g.joinPaths)(e,`razorwind.config.yml`))?(0,g.joinPaths)(e,`razorwind.config.yml`):void 0,r=(0,ee.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,ne.createJiti)(e,i),o=[{}];if(n){let r=(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=(0,te.isFunction)(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=je(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else(0,_.isSetObject)(r)&&(o=[{...r,configFile:n}])}}let[s,l,u]=await Promise.all([(0,S.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,S.loadConfig)({cwd:Ae,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=Z(s?.config),f=n?(0,c.isAbsolute)(n)?n:(0,c.resolve)(e,n):void 0,p=typeof s?.configFile==`string`?s.configFile:void 0;f&&p&&(0,c.resolve)(e,p)===f&&delete d.plugins;let m={envPaths:{...r,home:Ae},workspaceLayer:d,environmentLayer:Z(l?.config),homeLayer:Z(u?.config)};return o.map(n=>Pe(e,t,n,m))}async function Fe(e,t){let n=(await Q(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Ie(e){if(e.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let t=e.options.tokens;(!t||i.t(t))&&(t=await i.n(e));let n={...await Oe(e.cwd,e.options),tokens:t??{},components:(0,s.defu)(e.options.components??{},await I(e)??{}),icons:(0,s.defu)(e.options.icons??{},await q(e)??{}),fonts:(0,s.defu)(e.options.fonts??{},await r.a(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(!n.tokens||i.t(n.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Le(e,t){let n=await Q(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Ie(e),config:t});return r}async function $(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=(0,c.isAbsolute)(e)?e:(0,c.resolve)(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await(0,y.mkdir)((0,c.dirname)(a),{recursive:!0}),await(0,y.writeFile)(a,o,`utf8`),n.push(a)}return n}var Re=`0.0.49`;function ze(e){return e}const Be=(0,o.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:Re,tags:[`razorwind`,`dtcg`]},schema:(0,o.defineSchema)({schema:n.t}),input:async e=>{let t=(0,o.useExecution)(),n=await Le(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await $(n,(0,o.useExecution)().cwd)},generator:async e=>{let t=(0,o.useExecution)();return se(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});exports.DEFAULT_TOKEN_PATH_CANDIDATES=i.y,exports.FONT_EXTENSIONS=r.h,exports.FONT_FORMAT_FROM_EXTENSION=r.g,exports.GENERIC_FALLBACK_FROM_ROLE=r._,exports.MONO_ROLES=r.v,exports.RAZORWIND_INFER_PREPROCESSOR=i.o,exports.SANS_ROLES=r.y,exports.THEME_BASENAME_PATTERN=i.b,exports.TOKEN_DIRECTORY_GLOB=i.x,exports.TOKEN_FILE_EXTENSIONS=i.S,exports.TYPE_ALIASES=i.w,exports.TYPE_PATH_HINTS=i.T,exports.WEIGHT_FROM_SUFFIX=r.b,exports.WINDIE_PARSERS=i.C,exports.razorwindParsers=i.C,exports.canonicalizeTokenType=i.E,exports.copyFontFiles=r.m,exports.cssFontFamily=r.s,exports.defineConfig=ze,exports.definePlugin=a.definePlugin,exports.fontFamilyName=r.c,exports.generateAllPluginDocuments=se,exports.generatePluginDocuments=oe,exports.generator=Be,exports.getExtractionHooks=i.s,exports.getRazorwindParserHooks=i.c,exports.getRazorwindPreprocessorHooks=i.l,exports.inferTypeFromPath=i.h,exports.inferValue=i.g,exports.isEmptyFonts=r.t,exports.isEmptyTokens=i.t,exports.loadComponents=I,exports.loadFonts=r.a,exports.loadIcons=q,exports.loadSchemaMetaFromPackageJson=De,exports.loadTokens=i.n,exports.loadTokensOrThrow=i.r,exports.mergeFonts=r.n,exports.nestFlatTokens=i._,exports.normalizeRepository=O,exports.normalizeTokenTree=i.v,exports.parseCssCustomProperties=i.m,exports.parseCssFonts=r.r,exports.parseFontFilename=r.o,exports.pickFontByRole=r.i,exports.prepareGenerationRuns=Le,exports.prepareSpec=Ie,exports.prependFontCss=r.l,exports.razorwindInferPreprocessor=i.u,exports.registerRazorwindHooks=i.d,exports.registerRazorwindParsers=i.f,exports.renderFontCss=r.u,exports.renderGoogleFontImports=r.d,exports.renderLocalFontFaces=r.f,exports.resolveConfig=Fe,exports.resolveConfigs=Q,exports.resolveSchemaMeta=Oe,exports.resolveTokensSource=i.i,exports.schemaMetaFromConfig=X,exports.schemaMetaFromPackageJson=Y,exports.styleDictionaryLogOptions=i.p,exports.themeKeyFromPath=i.a,exports.themesForGeneration=T,exports.toGoogleFontsCssUrl=r.p,exports.uniquePlugins=ke,exports.writeGeneratedDocuments=$;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,11 +1,54 @@
|
|
|
1
|
-
import { O as Components, a as Icons, t as Schema } from "./schema-
|
|
2
|
-
import "./index-
|
|
3
|
-
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { O as Components, a as Icons, t as Schema } from "./schema-BwOBgJIM.cjs";
|
|
2
|
+
import "./index-CwN0c1Q4.cjs";
|
|
3
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-jPfyBr8C.cjs";
|
|
4
|
+
import { a as TokenSet } from "./flatten-tokens-DWbPW_3z.cjs";
|
|
5
|
+
import { t as definePlugin } from "./plugin-CSC1jRVg.cjs";
|
|
6
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-VmrytwDm.cjs";
|
|
7
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-D6x2Pe2v.cjs";
|
|
7
8
|
import StyleDictionary from "style-dictionary";
|
|
8
9
|
import { ExecutionContext, GeneratedDocument, GeneratorConfig } from "@power-plant/core";
|
|
10
|
+
//#region src/lib/generate.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* One generation pass: a resolved {@link Schema} plus the {@link Config}
|
|
13
|
+
* that produced it.
|
|
14
|
+
*
|
|
15
|
+
* Array `defineConfig([...])` exports become one {@link GenerationRun} each.
|
|
16
|
+
*/
|
|
17
|
+
interface GenerationRun {
|
|
18
|
+
spec: Schema;
|
|
19
|
+
config: Config;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Theme sets that should each receive a dedicated generator pass.
|
|
23
|
+
*
|
|
24
|
+
* Skips the shared `base` primitive set and color-variant expansions of it
|
|
25
|
+
* (`baseDimmed`, `base-high-contrast`, …). Those tokens are already merged
|
|
26
|
+
* into each real theme.
|
|
27
|
+
*
|
|
28
|
+
* Returns an empty array when tokens are a single tree (or only one named
|
|
29
|
+
* theme with nothing stripped), so callers run plugins once against the
|
|
30
|
+
* original spec.
|
|
31
|
+
*/
|
|
32
|
+
declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
|
|
33
|
+
/**
|
|
34
|
+
* Run configured plugin `generate` hooks.
|
|
35
|
+
*
|
|
36
|
+
* When {@link Schema.tokens} is a multi-theme record, each theme is generated
|
|
37
|
+
* separately: titles gain ` (<Theme>)`, and output file paths gain
|
|
38
|
+
* `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
|
|
39
|
+
* Shared `base` files (and `base*` color-variant expansions) are omitted.
|
|
40
|
+
*/
|
|
41
|
+
declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
|
|
42
|
+
/**
|
|
43
|
+
* Run plugin generators for each {@link GenerationRun} as a separate pass.
|
|
44
|
+
*
|
|
45
|
+
* Document records are shallow-merged in array order. Later runs replace
|
|
46
|
+
* earlier ones when output paths collide. Plugin `outputPath` values on each
|
|
47
|
+
* config should already be distinct (for example `generated/dark` vs
|
|
48
|
+
* `generated/light`).
|
|
49
|
+
*/
|
|
50
|
+
declare function generateAllPluginDocuments(runs: GenerationRun[]): Promise<Record<string, GeneratedDocument>>;
|
|
51
|
+
//#endregion
|
|
9
52
|
//#region src/lib/resolve-config.d.ts
|
|
10
53
|
/**
|
|
11
54
|
* Keep the first plugin for each {@link Plugin.name}.
|
|
@@ -17,15 +60,31 @@ declare function uniquePlugins(plugins: Plugin[]): Plugin[];
|
|
|
17
60
|
/**
|
|
18
61
|
* Loads the user configuration file for the project.
|
|
19
62
|
*
|
|
63
|
+
* Array exports (`defineConfig([...])`) resolve to one {@link Config} per
|
|
64
|
+
* item. Each item is a separate generation run.
|
|
65
|
+
*
|
|
66
|
+
* @param cwd - The current working directory.
|
|
67
|
+
* @param options - The options for the configuration.
|
|
68
|
+
* @returns Resolved configurations, one per exported config object.
|
|
69
|
+
*/
|
|
70
|
+
declare function resolveConfigs(cwd: string, options: Options): Promise<Config[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Loads the user configuration file for the project.
|
|
73
|
+
*
|
|
74
|
+
* When the file exports an array of configs, this returns the first resolved
|
|
75
|
+
* {@link Config}. Use {@link resolveConfigs} to run every array item.
|
|
76
|
+
*
|
|
20
77
|
* @param cwd - The current working directory.
|
|
21
78
|
* @param options - The options for the configuration.
|
|
22
|
-
* @returns The resolved configuration.
|
|
79
|
+
* @returns The first resolved configuration.
|
|
23
80
|
*/
|
|
24
81
|
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
25
82
|
//#endregion
|
|
26
83
|
//#region src/config.d.ts
|
|
27
84
|
/**
|
|
28
|
-
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
85
|
+
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
86
|
+
* {@link UserConfig} object, an array of those objects, or a function that
|
|
87
|
+
* returns either. Array items are independent generation runs.
|
|
29
88
|
*
|
|
30
89
|
* @example
|
|
31
90
|
* ```ts
|
|
@@ -35,13 +94,11 @@ declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
|
35
94
|
* // Your configuration here
|
|
36
95
|
* });
|
|
37
96
|
*
|
|
38
|
-
* //
|
|
39
|
-
* export default defineConfig(
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* };
|
|
44
|
-
* });
|
|
97
|
+
* // Separate runs (e.g. dark vs light token sources and output paths)
|
|
98
|
+
* export default defineConfig([
|
|
99
|
+
* { name: "dark", tokensPath: "tokens/dark.json", plugins: [css()] },
|
|
100
|
+
* { name: "light", tokensPath: "tokens/light.json", plugins: [css()] }
|
|
101
|
+
* ]);
|
|
45
102
|
* ```
|
|
46
103
|
*/
|
|
47
104
|
declare function defineConfig(config: UserConfig): UserConfig;
|
|
@@ -104,6 +161,18 @@ declare function resolveSchemaMeta(cwd: string, config: UserConfig): Promise<Sch
|
|
|
104
161
|
*/
|
|
105
162
|
declare function normalizeUrl(value: unknown): string | undefined;
|
|
106
163
|
//#endregion
|
|
164
|
+
//#region src/lib/prepare.d.ts
|
|
165
|
+
/**
|
|
166
|
+
* Load tokens, extract, and validate for the current {@link Config} on
|
|
167
|
+
* `context.options`.
|
|
168
|
+
*/
|
|
169
|
+
declare function prepareSpec(context: ExecutionContext<Schema, Config, void>): Promise<Schema>;
|
|
170
|
+
/**
|
|
171
|
+
* Resolve config (including array exports) and prepare a {@link GenerationRun}
|
|
172
|
+
* per item. Each run loads tokens and runs extract/validate independently.
|
|
173
|
+
*/
|
|
174
|
+
declare function prepareGenerationRuns(context: ExecutionContext<Schema, Config, void>, options: Options): Promise<GenerationRun[]>;
|
|
175
|
+
//#endregion
|
|
107
176
|
//#region src/lib/write-documents.d.ts
|
|
108
177
|
/**
|
|
109
178
|
* Persist generator documents to disk.
|
|
@@ -133,6 +202,7 @@ type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOpti
|
|
|
133
202
|
declare module "@power-plant/core" {
|
|
134
203
|
interface Context {
|
|
135
204
|
sd: StyleDictionary;
|
|
205
|
+
generationRuns?: GenerationRun[];
|
|
136
206
|
}
|
|
137
207
|
}
|
|
138
208
|
/**
|
|
@@ -140,8 +210,10 @@ declare module "@power-plant/core" {
|
|
|
140
210
|
*
|
|
141
211
|
* Orchestrates configured {@link Plugin}s: extraction hooks, then
|
|
142
212
|
* `extract` → `validate` on input, then `generate`.
|
|
213
|
+
*
|
|
214
|
+
* Array `defineConfig([...])` exports run that pipeline once per item.
|
|
143
215
|
*/
|
|
144
216
|
declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, any>;
|
|
145
217
|
//#endregion
|
|
146
|
-
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
|
|
218
|
+
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
|
|
147
219
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/generate.ts","../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/prepare.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;UAwCiB;EACf,MAAM;EACN,QAAQ;;;;;;;;;;;;;iBAcM,oBAAoB,QAAQ,mBAAmB;;;;;;;;;iBA6DzC,wBACpB,MAAM,QACN,QAAQ,SACP,QAAQ,eAAe;;;;;;;;;iBA6BJ,2BACpB,MAAM,kBACL,QAAQ,eAAe;;;;;;;;;iBC1GV,cAAc,SAAS,WAAW;;;;;;;;;;;iBAsJ5B,eACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;iBA6MW,cACpB,aACA,SAAS,UACR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;iBCnWK,aAAa,QAAQ,aAAa;iBAClC,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,QAAQ,cAAc,QAAQ;iBACnD,aACd,QAAQ,QAAQ,gBACf,QAAQ;iBACK,aAAa,QAAQ,qBAAqB;iBAC1C,aAAa,QAAQ,sBAAsB;iBAC3C,aAAa,QAAQ,eAAe;iBACpC,aAAa,QAAQ,mBAAmB;;;;;;;;;;;;;iBCsalC,eACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;;iBClGW,UACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;KCtWC,aAAa,KACvB;;;;;iBAgBc,0BACd,KAAK,0BACJ;;;;iBAqFa,qBAAqB,QAAQ,aAAa;;;;iBA4BpC,8BACpB,cACC,QAAQ;;;;iBAmBW,kBACpB,aACA,QAAQ,aACP,QAAQ;;;;;;iBCtJK,aAAa;;;;;;;iBCIP,YACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;iBA+CW,sBACpB,SAAS,iBAAiB,QAAQ,eAClC,SAAS,UACR,QAAQ;;;;;;;;;;;;;iBC5DW,wBACpB,WAAW,eAAe,gCAC1B,cACC;;;KCdS,UAAU,oCAAoC,gBACxD,QACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;YCAU;IACR,IAAI;IACJ,iBAAiB;;;;;;;;;;;cAgBR,uCAAS,sBAAA,QAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,11 +1,54 @@
|
|
|
1
|
-
import { O as Components, a as Icons, t as Schema } from "./schema-
|
|
2
|
-
import "./index-
|
|
3
|
-
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { O as Components, a as Icons, t as Schema } from "./schema-BwOBgJIM.mjs";
|
|
2
|
+
import "./index-D5L2WXYk.mjs";
|
|
3
|
+
import { a as UserConfigFn, c as UserConfigParams, d as TokensPreprocessor, i as UserConfigExport, l as Plugin, n as Options, o as UserConfigFnObject, r as UserConfig, s as UserConfigFnPromise, t as Config, u as TokensParser } from "./config-B1rsPTVV.mjs";
|
|
4
|
+
import { a as TokenSet } from "./flatten-tokens-Dz4e2IHx.mjs";
|
|
5
|
+
import { t as definePlugin } from "./plugin-DBrXhsY0.mjs";
|
|
6
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "./index-nRnX_NsH.mjs";
|
|
7
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "./index-52XD5ztc.mjs";
|
|
7
8
|
import { ExecutionContext, GeneratedDocument, GeneratorConfig } from "@power-plant/core";
|
|
8
9
|
import StyleDictionary from "style-dictionary";
|
|
10
|
+
//#region src/lib/generate.d.ts
|
|
11
|
+
/**
|
|
12
|
+
* One generation pass: a resolved {@link Schema} plus the {@link Config}
|
|
13
|
+
* that produced it.
|
|
14
|
+
*
|
|
15
|
+
* Array `defineConfig([...])` exports become one {@link GenerationRun} each.
|
|
16
|
+
*/
|
|
17
|
+
interface GenerationRun {
|
|
18
|
+
spec: Schema;
|
|
19
|
+
config: Config;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Theme sets that should each receive a dedicated generator pass.
|
|
23
|
+
*
|
|
24
|
+
* Skips the shared `base` primitive set and color-variant expansions of it
|
|
25
|
+
* (`baseDimmed`, `base-high-contrast`, …). Those tokens are already merged
|
|
26
|
+
* into each real theme.
|
|
27
|
+
*
|
|
28
|
+
* Returns an empty array when tokens are a single tree (or only one named
|
|
29
|
+
* theme with nothing stripped), so callers run plugins once against the
|
|
30
|
+
* original spec.
|
|
31
|
+
*/
|
|
32
|
+
declare function themesForGeneration(tokens: Schema["tokens"]): TokenSet[];
|
|
33
|
+
/**
|
|
34
|
+
* Run configured plugin `generate` hooks.
|
|
35
|
+
*
|
|
36
|
+
* When {@link Schema.tokens} is a multi-theme record, each theme is generated
|
|
37
|
+
* separately: titles gain ` (<Theme>)`, and output file paths gain
|
|
38
|
+
* `-<theme>` before the extension (`tokens.css` → `tokens-dark.css`).
|
|
39
|
+
* Shared `base` files (and `base*` color-variant expansions) are omitted.
|
|
40
|
+
*/
|
|
41
|
+
declare function generatePluginDocuments(spec: Schema, config: Config): Promise<Record<string, GeneratedDocument>>;
|
|
42
|
+
/**
|
|
43
|
+
* Run plugin generators for each {@link GenerationRun} as a separate pass.
|
|
44
|
+
*
|
|
45
|
+
* Document records are shallow-merged in array order. Later runs replace
|
|
46
|
+
* earlier ones when output paths collide. Plugin `outputPath` values on each
|
|
47
|
+
* config should already be distinct (for example `generated/dark` vs
|
|
48
|
+
* `generated/light`).
|
|
49
|
+
*/
|
|
50
|
+
declare function generateAllPluginDocuments(runs: GenerationRun[]): Promise<Record<string, GeneratedDocument>>;
|
|
51
|
+
//#endregion
|
|
9
52
|
//#region src/lib/resolve-config.d.ts
|
|
10
53
|
/**
|
|
11
54
|
* Keep the first plugin for each {@link Plugin.name}.
|
|
@@ -17,15 +60,31 @@ declare function uniquePlugins(plugins: Plugin[]): Plugin[];
|
|
|
17
60
|
/**
|
|
18
61
|
* Loads the user configuration file for the project.
|
|
19
62
|
*
|
|
63
|
+
* Array exports (`defineConfig([...])`) resolve to one {@link Config} per
|
|
64
|
+
* item. Each item is a separate generation run.
|
|
65
|
+
*
|
|
66
|
+
* @param cwd - The current working directory.
|
|
67
|
+
* @param options - The options for the configuration.
|
|
68
|
+
* @returns Resolved configurations, one per exported config object.
|
|
69
|
+
*/
|
|
70
|
+
declare function resolveConfigs(cwd: string, options: Options): Promise<Config[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Loads the user configuration file for the project.
|
|
73
|
+
*
|
|
74
|
+
* When the file exports an array of configs, this returns the first resolved
|
|
75
|
+
* {@link Config}. Use {@link resolveConfigs} to run every array item.
|
|
76
|
+
*
|
|
20
77
|
* @param cwd - The current working directory.
|
|
21
78
|
* @param options - The options for the configuration.
|
|
22
|
-
* @returns The resolved configuration.
|
|
79
|
+
* @returns The first resolved configuration.
|
|
23
80
|
*/
|
|
24
81
|
declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
25
82
|
//#endregion
|
|
26
83
|
//#region src/config.d.ts
|
|
27
84
|
/**
|
|
28
|
-
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
85
|
+
* Type helper to make it easier to use `razorwind.config.ts` files. Accepts a
|
|
86
|
+
* {@link UserConfig} object, an array of those objects, or a function that
|
|
87
|
+
* returns either. Array items are independent generation runs.
|
|
29
88
|
*
|
|
30
89
|
* @example
|
|
31
90
|
* ```ts
|
|
@@ -35,13 +94,11 @@ declare function resolveConfig(cwd: string, options: Options): Promise<Config>;
|
|
|
35
94
|
* // Your configuration here
|
|
36
95
|
* });
|
|
37
96
|
*
|
|
38
|
-
* //
|
|
39
|
-
* export default defineConfig(
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* };
|
|
44
|
-
* });
|
|
97
|
+
* // Separate runs (e.g. dark vs light token sources and output paths)
|
|
98
|
+
* export default defineConfig([
|
|
99
|
+
* { name: "dark", tokensPath: "tokens/dark.json", plugins: [css()] },
|
|
100
|
+
* { name: "light", tokensPath: "tokens/light.json", plugins: [css()] }
|
|
101
|
+
* ]);
|
|
45
102
|
* ```
|
|
46
103
|
*/
|
|
47
104
|
declare function defineConfig(config: UserConfig): UserConfig;
|
|
@@ -104,6 +161,18 @@ declare function resolveSchemaMeta(cwd: string, config: UserConfig): Promise<Sch
|
|
|
104
161
|
*/
|
|
105
162
|
declare function normalizeUrl(value: unknown): string | undefined;
|
|
106
163
|
//#endregion
|
|
164
|
+
//#region src/lib/prepare.d.ts
|
|
165
|
+
/**
|
|
166
|
+
* Load tokens, extract, and validate for the current {@link Config} on
|
|
167
|
+
* `context.options`.
|
|
168
|
+
*/
|
|
169
|
+
declare function prepareSpec(context: ExecutionContext<Schema, Config, void>): Promise<Schema>;
|
|
170
|
+
/**
|
|
171
|
+
* Resolve config (including array exports) and prepare a {@link GenerationRun}
|
|
172
|
+
* per item. Each run loads tokens and runs extract/validate independently.
|
|
173
|
+
*/
|
|
174
|
+
declare function prepareGenerationRuns(context: ExecutionContext<Schema, Config, void>, options: Options): Promise<GenerationRun[]>;
|
|
175
|
+
//#endregion
|
|
107
176
|
//#region src/lib/write-documents.d.ts
|
|
108
177
|
/**
|
|
109
178
|
* Persist generator documents to disk.
|
|
@@ -133,6 +202,7 @@ type Generator<TOptions extends object = object> = GeneratorConfig<Schema, TOpti
|
|
|
133
202
|
declare module "@power-plant/core" {
|
|
134
203
|
interface Context {
|
|
135
204
|
sd: StyleDictionary;
|
|
205
|
+
generationRuns?: GenerationRun[];
|
|
136
206
|
}
|
|
137
207
|
}
|
|
138
208
|
/**
|
|
@@ -140,8 +210,10 @@ declare module "@power-plant/core" {
|
|
|
140
210
|
*
|
|
141
211
|
* Orchestrates configured {@link Plugin}s: extraction hooks, then
|
|
142
212
|
* `extract` → `validate` on input, then `generate`.
|
|
213
|
+
*
|
|
214
|
+
* Array `defineConfig([...])` exports run that pipeline once per item.
|
|
143
215
|
*/
|
|
144
216
|
declare const generator: import("@power-plant/core").GeneratorConfigObject<Schema, Options, any>;
|
|
145
217
|
//#endregion
|
|
146
|
-
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
|
|
218
|
+
export { type Config, DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, GenerationRun, type Generator, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, MONO_ROLES, type Options, type ParsedFontFilename, type Plugin, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type RenderFontCssOptions, type ResolveTokensPathOptions, type ResolvedTokensSource, SANS_ROLES, type SchemaMeta, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, type TokensParser, type TokensPreprocessor, type UserConfig, type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, type UserConfigParams, WEIGHT_FROM_SUFFIX, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, copyFontFiles, cssFontFamily, defineConfig, definePlugin, fontFamilyName, generateAllPluginDocuments, generatePluginDocuments, generator, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyFonts, isEmptyTokens, loadComponents, loadFonts, loadIcons, loadSchemaMetaFromPackageJson, loadTokens, loadTokensOrThrow, mergeFonts, nestFlatTokens, normalizeUrl as normalizeRepository, normalizeTokenTree, parseCssCustomProperties, parseCssFonts, parseFontFilename, pickFontByRole, prepareGenerationRuns, prepareSpec, prependFontCss, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, resolveConfig, resolveConfigs, resolveSchemaMeta, resolveTokensSource, schemaMetaFromConfig, schemaMetaFromPackageJson, styleDictionaryLogOptions, themeKeyFromPath, themesForGeneration, toGoogleFontsCssUrl, uniquePlugins, writeGeneratedDocuments };
|
|
147
219
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/lib/generate.ts","../src/lib/resolve-config.ts","../src/config.ts","../src/lib/components/load.ts","../src/lib/icons/load.ts","../src/lib/meta/load.ts","../src/lib/meta/normalize-url.ts","../src/lib/prepare.ts","../src/lib/write-documents.ts","../src/types/base.ts","../src/index.ts"],"mappings":""}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e,c as t,i as n,l as r,r as i,s as a}from"./schema-Btk_-NEI.mjs";import{_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as ee,l as te,m as ne,n as re,o as ie,p as ae,r as oe,s as se,t as ce,u as le,v as ue,y as de}from"./fonts-CUwsBEd5.mjs";import{C as m,S as fe,_ as pe,a as me,b as h,c as he,d as ge,f as _e,g as ve,h as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as g,u as Oe,v as ke,w as Ae,x as je,y as Me}from"./tokens-CsosSHvJ.mjs";import{definePlugin as Ne}from"./plugin.mjs";import{defineGenerator as Pe,defineSchema as Fe,useExecution as _}from"@power-plant/core";import{createDefu as v,defu as y}from"defu";import{existsSync as b}from"@stryke/fs/exists";import{isDirectory as x}from"@stryke/fs/is-file";import{readJsonFile as S}from"@stryke/fs/json";import{listFiles as Ie}from"@stryke/fs/list-files";import{appendPath as C}from"@stryke/path/append";import{findFileExtensionSafe as w,findFileName as T,findFolderName as E}from"@stryke/path/file-path-fns";import{joinPaths as D}from"@stryke/path/join";import{titleCase as O}from"@stryke/string-format/title-case";import{isSetObject as k}from"@stryke/type-checks/is-set-object";import{isSetString as A}from"@stryke/type-checks/is-set-string";import{mkdir as Le,readFile as j,readdir as M,writeFile as Re}from"node:fs/promises";import{dirname as ze,isAbsolute as N,resolve as P}from"node:path";import{getEnvPaths as Be}from"@stryke/env/get-env-paths";import{findFilePath as F}from"@stryke/path/find";import{replacePath as I}from"@stryke/path/replace";import{isFunction as Ve}from"@stryke/type-checks/is-function";import{loadConfig as L}from"c12";import{createJiti as He}from"jiti";import{existsSync as R}from"node:fs";import Ue from"node:os";var We=`0.0.47`;function z(e){return!!(A(e)||k(e)&&`url`in e&&A(e.url))}function B(e){if(A(e))return e;if(k(e)&&`url`in e&&A(e.url))return e.url}const Ge=t.partial(),V=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),H=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function Ke(e,t){return N(t)?t:P(e,t)}function qe(e){return Array.isArray(e)?e.filter(A):A(e)?[e]:[]}function U(e){let t=e.toLowerCase();if(V.has(t))return t}function Je(e){let t=w(e)?.toLowerCase();return!!(t&&V.has(t))}function W(e){if(!e)return;let t=a.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=a.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function G(e){if(!e)return;let t=r.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(A(t)){let e=T(t,{withExtension:!1})||t,i=r.safeParse({name:e,path:t});i.success&&n.push(i.data);continue}let e=r.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function K(e){if(!k(e))return;let{files:t,usage:n,...r}=e,i=Ge.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function Ye(e){return k(e)&&`path`in e}async function Xe(e){let t=D(e,`package.json`);if(!b(t))return;let n;try{n=await S(t)}catch{return}let r={};A(n.name)&&(r.name=n.name,r.title=n.name),A(n.description)&&(r.description=n.description),A(n.version)&&(r.version=n.version),A(n.homepage)&&(r.homepage=n.homepage);let i=B(n.repository);if(i&&(r.repository=i),k(n.dependencies)&&(r.dependencies=n.dependencies),k(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(A);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;Ye(a)?s=W(a):k(a)&&(o=K(a),`files`in a&&(s=W(a.files)),`usage`in a&&(c=G(a.usage)));let l=H(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function Ze(e){let t=D(e,`component.json`);if(!b(t))return;let n;try{n=await S(t)}catch{return}if(Ye(n)||Array.isArray(n)){let e=W(n);if(e)return{files:e}}if(!k(n))return;let r=K(n)??{},i=`files`in n?W(n.files):void 0,a=`usage`in n?G(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function Qe(e){try{return(await M(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&Je(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function $e(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=C(t.path,e),r=w(t.path)??``,i=t.language??U(r),a=t.name||T(t.path,{withExtension:!1})||t.path,o=t.content===void 0?b(n)?await j(n,`utf8`):void 0:t.content;return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=D(e,`usage`);if(!b(n)||!x(n))return;let r=await Qe(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=D(n,e),r=U(w(e)??``),i=T(e,{withExtension:!1})||e;return{name:i,title:O(i),path:t,content:await j(t,`utf8`),...r?{language:r}:{}}}))}async function et(e,t){let n=t??(await Ie(e)).filter(e=>T(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(w(t))?`component`:`file`,path:t,content:await j(C(t,e),`utf8`)}:{type:/[tj]sx$/.test(w(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await j(C(t.path,e),`utf8`):void 0,path:C(t.path,e)}))}async function tt(e){let n=await Xe(e),r=await Ze(e);if(!n&&!r)return;let i=H(r??{},n??{}),a=A(i.name)?i.name:E(e),o=A(i.title)?i.title:O(a),s=t.safeParse({...i,name:a,title:o});if(!s.success)return;let c=await $e(e,s.data.usage);return{...s.data,files:await et(e,s.data.files),...c?.length?{usage:c}:{}}}async function nt(e){let t={},n=qe(e.options.componentsPath);for(let r of n){let n=Ke(e.cwd,r);if(!(!b(n)||!x(n)))try{let e=await M(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await tt(D(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const rt=e.partial(),it=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),q=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function at(e,t){return N(t)?t:P(e,t)}function ot(e){return Array.isArray(e)?e.filter(A):A(e)?[e]:[]}function st(e){let t=e.toLowerCase();if(it.has(t))return t}function ct(e){let t=w(e)?.toLowerCase();return!!(t&&it.has(t))}function lt(e){return h.test(e)}async function J(e){try{return(await M(e,{withFileTypes:!0})).filter(e=>e.isFile()&&ct(e.name)).map(e=>e.name)}catch{return[]}}function Y(e){if(!e)return;let t=n.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let r=[];for(let t of e){let e=n.safeParse(t);e.success&&r.push(e.data)}return r.length>0?r:void 0}function ut(e){if(!k(e))return;let t=rt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function dt(e){return k(e)&&`path`in e}async function X(e,t,n){let r=C(e,t),i=st(w(e)??``)??`file`,a=i===`svg`?await j(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function ft(e){let t=D(e,`package.json`);if(!b(t))return;let n;try{n=await S(t)}catch{return}let r={};A(n.name)&&(r.name=n.name,r.title=n.name),A(n.description)&&(r.description=n.description),A(n.version)&&(r.version=n.version),A(n.homepage)&&(r.homepage=n.homepage);let i=B(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(A);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;dt(a)?s=Y(a):k(a)&&(o=ut(a),`files`in a&&(s=Y(a.files)));let c=q(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function pt(e){let t=D(e,`icon.json`);if(!b(t))return;let n;try{n=await S(t)}catch{return}if(dt(n)||Array.isArray(n)){let e=Y(n);if(e)return{files:e}}return ut(n)}async function mt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=C(t.path,e),r=w(t.path)??``,i=t.type??st(r)??`file`,a=t.content===void 0?i===`svg`?await j(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await J(e);return Promise.all(n.map(t=>X(t,e)))}async function ht(t){let n=await ft(t),r=await pt(t),i=await J(t);if(!n&&!r&&i.length===0)return;let a=q(r??{},n??{}),o=A(a.name)?a.name:E(t),s=A(a.title)?a.title:O(o),c=e.safeParse({...a,name:o,title:s});if(c.success)return{...c.data,files:await mt(t,c.data.files)}}function gt(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:O(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function _t(e,t,n){let r=await J(e);for(let i of r){let r=T(i,{withExtension:!1});r&>(n,r,await X(i,e,t))}}async function vt(e){let t={},n=ot(e.options.iconsPath);for(let r of n){let n=at(e.cwd,r);if(!(!b(n)||!x(n)))try{let e=await M(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=D(n,r.name);if(r.isDirectory()){if(lt(r.name)){await _t(e,r.name,t);continue}let n=await ht(e);if(n){let e=t[n.name];t[n.name]=e?q(n,e):n}continue}if(r.isFile()&&ct(r.name)){let e=T(r.name,{withExtension:!1});if(!e)continue;gt(t,e,await X(r.name,n))}}}catch{continue}}return t}function Z(e,t){let n=e[t];return A(n)?n:void 0}function yt(e){let t={};A(e.name)&&(t.name=e.name),A(e.description)&&(t.description=e.description),A(e.homepage)&&(t.homepage=e.homepage);let n=B(e.repository);n&&(t.repository=n),A(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(k(r)){let t=r,n=Z(t,`title`),a=Z(t,`name`),o=Z(t,`description`),s=Z(t,`homepage`),c=Z(t,`logo`),l=B(t.repository);a?i.name=a:A(e.name)&&(i.name=e.name),n?i.title=n:A(i.name)&&(i.title=O(i.name)),o?i.description=o:A(e.description)&&(i.description=e.description),s?i.homepage=s:z(e.homepage)?i.homepage=B(e.homepage):z(e.author)?i.homepage=B(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&z(e.maintainers[0])?i.homepage=B(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&z(e.contributors[0])?i.homepage=B(e.contributors[0]):z(e.bugs)&&(i.homepage=B(e.bugs)),c&&(i.logo=c),l?i.repository=l:z(e.repository)&&(i.repository=B(e.repository))}return y(i,t)}function Q(e){let t={};return A(e.name)&&(t.name=e.name),A(e.title)&&(t.title=e.title),A(e.description)&&(t.description=e.description),A(e.repository)&&(t.repository=e.repository),A(e.homepage)&&(t.homepage=e.homepage),A(e.logo)&&(t.logo=e.logo),t}async function bt(e){let t=D(e,`package.json`);if(!b(t))return{};let n;try{n=await S(t)}catch{return{}}return yt(n)}async function xt(e,t){let n=await bt(e),r=Q(t);return y(r,n)}function St(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const Ct=Ue.homedir();async function wt(e,t){let n=t.configFile&&R(I(t.configFile,e))?I(t.configFile,e):t.configFile&&R(t.configFile)?t.configFile:R(D(e,`razorwind.${t.mode}.ts`))?D(e,`razorwind.${t.mode}.ts`):R(D(e,`razorwind.${t.mode}.js`))?D(e,`razorwind.${t.mode}.js`):R(D(e,`razorwind.${t.mode}.mts`))?D(e,`razorwind.${t.mode}.mts`):R(D(e,`razorwind.${t.mode}.mjs`))?D(e,`razorwind.${t.mode}.mjs`):R(D(e,`razorwind.${t.mode}.cjs`))?D(e,`razorwind.${t.mode}.cjs`):R(D(e,`razorwind.${t.mode}.cts`))?D(e,`razorwind.${t.mode}.cts`):R(D(e,`razorwind.${t.mode}.json`))?D(e,`razorwind.${t.mode}.json`):R(D(e,`razorwind.${t.mode}.yaml`))?D(e,`razorwind.${t.mode}.yaml`):R(D(e,`razorwind.${t.mode}.yml`))?D(e,`razorwind.${t.mode}.yml`):R(D(e,`razorwind.config.ts`))?D(e,`razorwind.config.ts`):R(D(e,`razorwind.config.js`))?D(e,`razorwind.config.js`):R(D(e,`razorwind.config.mts`))?D(e,`razorwind.config.mts`):R(D(e,`razorwind.config.mjs`))?D(e,`razorwind.config.mjs`):R(D(e,`razorwind.config.cjs`))?D(e,`razorwind.config.cjs`):R(D(e,`razorwind.config.cts`))?D(e,`razorwind.config.cts`):R(D(e,`razorwind.config.json`))?D(e,`razorwind.config.json`):R(D(e,`razorwind.config.yaml`))?D(e,`razorwind.config.yaml`):R(D(e,`razorwind.config.yml`))?D(e,`razorwind.config.yml`):void 0,r=Be({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=He(e,i),o={};if(n){let r=N(n)?n:P(e,n),i=await a.import(r,{default:!0});if(i){let r={};Ve(i)?r=await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):(k(i)||Array.isArray(i))&&(r=i),(k(r)||Array.isArray(r))&&(o={...r,configFile:n})}}let[s,c,l]=await Promise.all([L({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),L({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),L({cwd:Ct,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=k(s?.config)?{...s.config}:{},d=n?N(n)?n:P(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&P(e,f)===d&&delete u.plugins;let p=y({cwd:e,envPaths:{...r,home:Ct}},t,o,u,k(c?.config)?{...c.config}:{},k(l?.config)?{...l.config}:{},{componentsPath:e,iconsPath:D(e,`assets/icons`),fontsPath:D(e,`assets/fonts`),plugins:[]});if(Array.isArray(p.componentsPath)){let t=p.componentsPath.filter(A).map(e=>F(e));p.componentsPath=t.length>0?t:e}else p.componentsPath=A(p.componentsPath)?F(p.componentsPath):e;if(Array.isArray(p.iconsPath)){let t=p.iconsPath.filter(A).map(e=>F(e));p.iconsPath=t.length>0?t:D(e,`assets/icons`)}else p.iconsPath=A(p.iconsPath)?F(p.iconsPath):D(e,`assets/icons`);if(Array.isArray(p.fontsPath)){let t=p.fontsPath.filter(A).map(e=>F(e));p.fontsPath=t.length>0?t:D(e,`assets/fonts`)}else p.fontsPath=A(p.fontsPath)?F(p.fontsPath):D(e,`assets/fonts`);return p.plugins=St(Array.isArray(p.plugins)?p.plugins:[]),p.verbose=t.verbose===!0||o.verbose===!0,p}async function $(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=N(e)?e:P(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await Le(ze(a),{recursive:!0}),await Re(a,o,`utf8`),n.push(a)}return n}function Tt(e){return e}const Et=Pe({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:We,tags:[`razorwind`,`dtcg`]},schema:Fe({schema:i}),input:async e=>{let t=_();if(t.options=await wt(t.cwd,e),t.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let n=t.options.tokens;(!n||g(n))&&(n=await Ce(t));let r={...await xt(t.cwd,t.options),tokens:n??{},components:y(t.options.components??{},await nt(t)??{}),icons:y(t.options.icons??{},await vt(t)??{}),fonts:y(t.options.fonts??{},await s(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))r=await e.extract(r,t.options);if(!r.tokens||g(r.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let e of t.options.plugins.filter(e=>e.validate))await e.validate(r,t.options);return r},output:async(e,t,n)=>{await $(n,_().cwd)},generator:async e=>{let t=_(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=y(i,n)}return n}});export{Me as DEFAULT_TOKEN_PATH_CANDIDATES,p as FONT_EXTENSIONS,f as FONT_FORMAT_FROM_EXTENSION,o as GENERIC_FALLBACK_FROM_ROLE,ue as MONO_ROLES,we as RAZORWIND_INFER_PREPROCESSOR,de as SANS_ROLES,h as THEME_BASENAME_PATTERN,je as TOKEN_DIRECTORY_GLOB,fe as TOKEN_FILE_EXTENSIONS,Ae as TYPE_PATH_HINTS,c as WEIGHT_FROM_SUFFIX,m as WINDIE_PARSERS,m as razorwindParsers,ne as copyFontFiles,se as cssFontFamily,Tt as defineConfig,Ne as definePlugin,l as fontFamilyName,Et as generator,De as getExtractionHooks,he as getRazorwindParserHooks,xe as getRazorwindPreprocessorHooks,ye as inferTypeFromPath,ve as inferValue,ce as isEmptyFonts,g as isEmptyTokens,nt as loadComponents,s as loadFonts,vt as loadIcons,bt as loadSchemaMetaFromPackageJson,Ce as loadTokens,Ee as loadTokensOrThrow,re as mergeFonts,pe as nestFlatTokens,B as normalizeRepository,ke as normalizeTokenTree,Se as parseCssCustomProperties,oe as parseCssFonts,ie as parseFontFilename,ee as pickFontByRole,te as prependFontCss,Oe as razorwindInferPreprocessor,ge as registerRazorwindHooks,_e as registerRazorwindParsers,le as renderFontCss,u as renderGoogleFontImports,d as renderLocalFontFaces,wt as resolveConfig,xt as resolveSchemaMeta,be as resolveTokensSource,Q as schemaMetaFromConfig,yt as schemaMetaFromPackageJson,Te as styleDictionaryLogOptions,me as themeKeyFromPath,ae as toGoogleFontsCssUrl,St as uniquePlugins,$ as writeGeneratedDocuments};
|
|
1
|
+
import{_ as e,c as t,d as n,f as r,h as i,s as a}from"./utils-CMqr6G7v.mjs";import{a as o,c as s,i as c,l,r as u,s as d}from"./schema-CXK5pVmJ.mjs";import{_ as f,a as p,b as ee,c as te,d as ne,f as re,g as ie,h as ae,i as oe,l as se,m as ce,n as le,o as ue,p as de,r as fe,s as pe,t as me,u as he,v as ge,y as _e}from"./fonts-BiuIJVev.mjs";import{C as m,E as ve,S as ye,T as be,_ as xe,a as Se,b as Ce,c as we,d as Te,f as Ee,g as De,h as Oe,i as ke,l as Ae,m as je,n as h,o as Me,p as Ne,r as Pe,s as Fe,t as g,u as Ie,v as Le,w as Re,x as ze,y as Be}from"./tokens-C_RYVqap.mjs";import{definePlugin as Ve}from"./plugin.mjs";import{defineGenerator as He,defineSchema as Ue,useExecution as _}from"@power-plant/core";import{createDefu as v,defu as y}from"defu";import{dirname as We,isAbsolute as b,resolve as x}from"node:path";import{titleCase as S}from"@stryke/string-format/title-case";import{existsSync as C}from"@stryke/fs/exists";import{isDirectory as w}from"@stryke/fs/is-file";import{readJsonFile as T}from"@stryke/fs/json";import{listFiles as Ge}from"@stryke/fs/list-files";import{appendPath as E}from"@stryke/path/append";import{findFileExtensionSafe as D,findFileName as O,findFolderName as k}from"@stryke/path/file-path-fns";import{joinPaths as A}from"@stryke/path/join";import{isSetObject as j}from"@stryke/type-checks/is-set-object";import{isSetString as M}from"@stryke/type-checks/is-set-string";import{mkdir as Ke,readFile as N,readdir as P,writeFile as qe}from"node:fs/promises";import{getEnvPaths as Je}from"@stryke/env/get-env-paths";import{findFilePath as F}from"@stryke/path/find";import{replacePath as I}from"@stryke/path/replace";import{isFunction as Ye}from"@stryke/type-checks/is-function";import{loadConfig as L}from"c12";import{createJiti as Xe}from"jiti";import{existsSync as R}from"node:fs";import Ze from"node:os";function z(t){let n=e(t),r=n.filter(e=>!i(e.id));return r.length===0||r.length===1&&n.length===1?[]:r}function Qe(e,t){let a=e.find(e=>e.id===r);return!a||i(t.id)?t.tokens:n(t.tokens,a.tokens)}function $e(e,n,r){return{...e,theme:n.id,title:t(e.title,n.id)??e.title,tokens:Qe(r,n)}}function et(e,n){let r=t(e.title,n.id);return r?{...e,title:r}:e}async function B(e,t){let n={};for(let r of t.plugins.filter(e=>e.generate)){let i=await r.generate(e,t);n=y(i,n)}return n}async function V(t,n){let r=e(t.tokens),i=z(t.tokens);if(i.length===0)return B(t,n);let o={};for(let e of i){let i=await B($e(t,e,r),et(n,e));o=y(a(i,e.id),o)}return o}async function tt(e){let t={};for(let n of e)Object.assign(t,await V(n.spec,n.config));return t}function H(e){return!!(M(e)||j(e)&&`url`in e&&M(e.url))}function U(e){if(M(e))return e;if(j(e)&&`url`in e&&M(e.url))return e.url}const nt=s.partial(),W=new Set([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]),rt=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function it(e,t){return b(t)?t:x(e,t)}function at(e){return Array.isArray(e)?e.filter(M):M(e)?[e]:[]}function ot(e){let t=e.toLowerCase();if(W.has(t))return t}function st(e){let t=D(e)?.toLowerCase();return!!(t&&W.has(t))}function G(e){if(!e)return;let t=d.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=d.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function ct(e){if(!e)return;let t=l.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){if(M(t)){let e=O(t,{withExtension:!1})||t,r=l.safeParse({name:e,path:t});r.success&&n.push(r.data);continue}let e=l.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function lt(e){if(!j(e))return;let{files:t,usage:n,...r}=e,i=nt.safeParse(r);if(i.success)return Object.keys(i.data).length>0?i.data:void 0}function ut(e){return j(e)&&`path`in e}async function dt(e){let t=A(e,`package.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}let r={};M(n.name)&&(r.name=n.name,r.title=n.name),M(n.description)&&(r.description=n.description),M(n.version)&&(r.version=n.version),M(n.homepage)&&(r.homepage=n.homepage);let i=U(n.repository);if(i&&(r.repository=i),j(n.dependencies)&&(r.dependencies=n.dependencies),j(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(M);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s,c;ut(a)?s=G(a):j(a)&&(o=lt(a),`files`in a&&(s=G(a.files)),`usage`in a&&(c=ct(a.usage)));let l=rt(o??{},r);return s?.length&&(l.files=s),c?.length&&(l.usage=c),Object.keys(l).length>0?l:void 0}async function ft(e){let t=A(e,`component.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}if(ut(n)||Array.isArray(n)){let e=G(n);if(e)return{files:e}}if(!j(n))return;let r=lt(n)??{},i=`files`in n?G(n.files):void 0,a=`usage`in n?ct(n.usage):void 0;return i?.length&&(r.files=i),a?.length&&(r.usage=a),Object.keys(r).length>0?r:void 0}async function pt(e){try{return(await P(e,{withFileTypes:!0})).filter(e=>e.isFile()&&!e.name.startsWith(`.`)&&st(e.name)).map(e=>e.name).toSorted((e,t)=>e.localeCompare(t))}catch{return[]}}async function mt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=E(t.path,e),r=D(t.path)??``,i=t.language??ot(r),a=t.name||O(t.path,{withExtension:!1})||t.path,o=t.content??(C(n)?await N(n,`utf8`):void 0);return{...t,name:a,path:n,...i?{language:i}:{},...o===void 0?{}:{content:o}}}));let n=A(e,`usage`);if(!C(n)||!w(n))return;let r=await pt(n);if(r.length!==0)return Promise.all(r.map(async e=>{let t=A(n,e),r=ot(D(e)??``),i=O(e,{withExtension:!1})||e;return{name:i,title:S(i),path:t,content:await N(t,`utf8`),...r?{language:r}:{}}}))}async function ht(e,t){let n=t??(await Ge(e)).filter(e=>O(e,{withExtension:!1})===`index`);return Promise.all(n.filter(Boolean).map(async t=>typeof t==`string`?{type:/[tj]sx$/.test(D(t))?`component`:`file`,path:t,content:await N(E(t,e),`utf8`)}:{type:/[tj]sx$/.test(D(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await N(E(t.path,e),`utf8`):void 0,path:E(t.path,e)}))}async function gt(e){let t=await dt(e),n=await ft(e);if(!t&&!n)return;let r=rt(n??{},t??{}),i=M(r.name)?r.name:k(e),a=M(r.title)?r.title:S(i),o=s.safeParse({...r,name:i,title:a});if(!o.success)return;let c=await mt(e,o.data.usage);return{...o.data,files:await ht(e,o.data.files),...c?.length?{usage:c}:{}}}async function _t(e){let t={},n=at(e.options.componentsPath);for(let r of n){let n=it(e.cwd,r);if(!(!C(n)||!w(n)))try{let e=await P(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await gt(A(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const vt=o.partial(),yt=new Set([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`]),K=v((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function bt(e,t){return b(t)?t:x(e,t)}function xt(e){return Array.isArray(e)?e.filter(M):M(e)?[e]:[]}function St(e){let t=e.toLowerCase();if(yt.has(t))return t}function Ct(e){let t=D(e)?.toLowerCase();return!!(t&&yt.has(t))}function wt(e){return Ce.test(e)}async function q(e){try{return(await P(e,{withFileTypes:!0})).filter(e=>e.isFile()&&Ct(e.name)).map(e=>e.name)}catch{return[]}}function J(e){if(!e)return;let t=c.safeParse(e);if(t.success)return[t.data];if(!Array.isArray(e))return;let n=[];for(let t of e){let e=c.safeParse(t);e.success&&n.push(e.data)}return n.length>0?n:void 0}function Tt(e){if(!j(e))return;let t=vt.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function Et(e){return j(e)&&`path`in e}async function Y(e,t,n){let r=E(e,t),i=St(D(e)??``)??`file`,a=i===`svg`?await N(r,`utf8`):void 0;return{path:r,type:i,...n?{theme:n}:{},...a===void 0?{}:{content:a}}}async function Dt(e){let t=A(e,`package.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}let r={};M(n.name)&&(r.name=n.name,r.title=n.name),M(n.description)&&(r.description=n.description),M(n.version)&&(r.version=n.version),M(n.homepage)&&(r.homepage=n.homepage);let i=U(n.repository);if(i&&(r.repository=i),Array.isArray(n.keywords)){let e=n.keywords.filter(M);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;Et(a)?s=J(a):j(a)&&(o=Tt(a),`files`in a&&(s=J(a.files)));let c=K(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function Ot(e){let t=A(e,`icon.json`);if(!C(t))return;let n;try{n=await T(t)}catch{return}if(Et(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Tt(n)}async function kt(e,t){if(t?.length)return Promise.all(t.map(async t=>{let n=E(t.path,e),r=D(t.path)??``,i=t.type??St(r)??`file`,a=t.content===void 0?i===`svg`?await N(n,`utf8`):void 0:t.content;return{...t,type:i,path:n,...a===void 0?{}:{content:a}}}));let n=await q(e);return Promise.all(n.map(t=>Y(t,e)))}async function At(e){let t=await Dt(e),n=await Ot(e),r=await q(e);if(!t&&!n&&r.length===0)return;let i=K(n??{},t??{}),a=M(i.name)?i.name:k(e),s=M(i.title)?i.title:S(a),c=o.safeParse({...i,name:a,title:s});if(c.success)return{...c.data,files:await kt(e,c.data.files)}}function jt(e,t,n){let r=e[t];if(!r){e[t]={name:t,title:S(t),files:[n]};return}let i=[...r.files??[]],a=i.findIndex(e=>e.path===n.path&&e.theme===n.theme);a>=0?i[a]=n:i.push(n),e[t]={...r,files:i}}async function Mt(e,t,n){let r=await q(e);for(let i of r){let r=O(i,{withExtension:!1});r&&jt(n,r,await Y(i,e,t))}}async function Nt(e){let t={},n=xt(e.options.iconsPath);for(let r of n){let n=bt(e.cwd,r);if(!(!C(n)||!w(n)))try{let e=await P(n,{withFileTypes:!0});for(let r of e){if(r.name.startsWith(`.`))continue;let e=A(n,r.name);if(r.isDirectory()){if(wt(r.name)){await Mt(e,r.name,t);continue}let n=await At(e);if(n){let e=t[n.name];t[n.name]=e?K(n,e):n}continue}if(r.isFile()&&Ct(r.name)){let e=O(r.name,{withExtension:!1});if(!e)continue;jt(t,e,await Y(r.name,n))}}}catch{continue}}return t}function X(e,t){let n=e[t];return M(n)?n:void 0}function Pt(e){let t={};M(e.name)&&(t.name=e.name),M(e.description)&&(t.description=e.description),M(e.homepage)&&(t.homepage=e.homepage);let n=U(e.repository);n&&(t.repository=n),M(e.logo)&&(t.logo=e.logo);let r=e.razorwind,i={};if(j(r)){let t=r,n=X(t,`title`),a=X(t,`name`),o=X(t,`description`),s=X(t,`homepage`),c=X(t,`logo`),l=U(t.repository);a?i.name=a:M(e.name)&&(i.name=e.name),n?i.title=n:M(i.name)&&(i.title=S(i.name)),o?i.description=o:M(e.description)&&(i.description=e.description),s?i.homepage=s:H(e.homepage)?i.homepage=U(e.homepage):H(e.author)?i.homepage=U(e.author):e.maintainers&&Array.isArray(e.maintainers)&&e.maintainers.length>0&&H(e.maintainers[0])?i.homepage=U(e.maintainers[0]):e.contributors&&Array.isArray(e.contributors)&&e.contributors.length>0&&H(e.contributors[0])?i.homepage=U(e.contributors[0]):H(e.bugs)&&(i.homepage=U(e.bugs)),c&&(i.logo=c),l?i.repository=l:H(e.repository)&&(i.repository=U(e.repository))}return y(i,t)}function Ft(e){let t={};return M(e.name)&&(t.name=e.name),M(e.title)&&(t.title=e.title),M(e.description)&&(t.description=e.description),M(e.repository)&&(t.repository=e.repository),M(e.homepage)&&(t.homepage=e.homepage),M(e.logo)&&(t.logo=e.logo),t}async function It(e){let t=A(e,`package.json`);if(!C(t))return{};let n;try{n=await T(t)}catch{return{}}return Pt(n)}async function Lt(e,t){let n=await It(e),r=Ft(t);return y(r,n)}function Rt(e){let t=new Set;return e.filter(e=>!e?.name||!t.has(e.name)&&(t.add(e.name),!0))}const zt=Ze.homedir();function Bt(e){return Array.isArray(e)?e.filter(e=>j(e)):[]}function Z(e){return Array.isArray(e)||!j(e)?{}:{...e}}const Vt=[`tokensPath`,`componentsPath`,`iconsPath`,`fontsPath`];function Ht(e,t){let n={...e};for(let e of Vt)t[e]!=null&&delete n[e];return n}function Ut(e,t,n,r){let i=y({cwd:e,envPaths:r.envPaths},Ht(t,n),n,r.workspaceLayer,r.environmentLayer,r.homeLayer,{componentsPath:e,iconsPath:A(e,`assets/icons`),fontsPath:A(e,`assets/fonts`),plugins:[]});if(Array.isArray(i.componentsPath)){let t=i.componentsPath.filter(M).map(e=>F(e));i.componentsPath=t.length>0?t:e}else i.componentsPath=M(i.componentsPath)?F(i.componentsPath):e;if(Array.isArray(i.iconsPath)){let t=i.iconsPath.filter(M).map(e=>F(e));i.iconsPath=t.length>0?t:A(e,`assets/icons`)}else i.iconsPath=M(i.iconsPath)?F(i.iconsPath):A(e,`assets/icons`);if(Array.isArray(i.fontsPath)){let t=i.fontsPath.filter(M).map(e=>F(e));i.fontsPath=t.length>0?t:A(e,`assets/fonts`)}else i.fontsPath=M(i.fontsPath)?F(i.fontsPath):A(e,`assets/fonts`);return i.plugins=Rt(Array.isArray(i.plugins)?i.plugins:[]),i.verbose=t.verbose===!0||n.verbose===!0,i}async function Q(e,t){let n=t.configFile&&R(I(t.configFile,e))?I(t.configFile,e):t.configFile&&R(t.configFile)?t.configFile:R(A(e,`razorwind.${t.mode}.ts`))?A(e,`razorwind.${t.mode}.ts`):R(A(e,`razorwind.${t.mode}.js`))?A(e,`razorwind.${t.mode}.js`):R(A(e,`razorwind.${t.mode}.mts`))?A(e,`razorwind.${t.mode}.mts`):R(A(e,`razorwind.${t.mode}.mjs`))?A(e,`razorwind.${t.mode}.mjs`):R(A(e,`razorwind.${t.mode}.cjs`))?A(e,`razorwind.${t.mode}.cjs`):R(A(e,`razorwind.${t.mode}.cts`))?A(e,`razorwind.${t.mode}.cts`):R(A(e,`razorwind.${t.mode}.json`))?A(e,`razorwind.${t.mode}.json`):R(A(e,`razorwind.${t.mode}.yaml`))?A(e,`razorwind.${t.mode}.yaml`):R(A(e,`razorwind.${t.mode}.yml`))?A(e,`razorwind.${t.mode}.yml`):R(A(e,`razorwind.config.ts`))?A(e,`razorwind.config.ts`):R(A(e,`razorwind.config.js`))?A(e,`razorwind.config.js`):R(A(e,`razorwind.config.mts`))?A(e,`razorwind.config.mts`):R(A(e,`razorwind.config.mjs`))?A(e,`razorwind.config.mjs`):R(A(e,`razorwind.config.cjs`))?A(e,`razorwind.config.cjs`):R(A(e,`razorwind.config.cts`))?A(e,`razorwind.config.cts`):R(A(e,`razorwind.config.json`))?A(e,`razorwind.config.json`):R(A(e,`razorwind.config.yaml`))?A(e,`razorwind.config.yaml`):R(A(e,`razorwind.config.yml`))?A(e,`razorwind.config.yml`):void 0,r=Je({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=Xe(e,i),o=[{}];if(n){let r=b(n)?n:x(e,n),i=await a.import(r,{default:!0});if(i){let r=i;if(r=Ye(i)?await Promise.resolve(i({cwd:e,mode:t.mode??`development`})):await Promise.resolve(i),Array.isArray(r)){let e=Bt(r);if(e.length===0)throw Error(`Razorwind config array is empty. Provide at least one configuration object.`);o=e.map(e=>({...e,configFile:n}))}else j(r)&&(o=[{...r,configFile:n}])}}let[s,c,l]=await Promise.all([L({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),L({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),L({cwd:zt,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=Z(s?.config),d=n?b(n)?n:x(e,n):void 0,f=typeof s?.configFile==`string`?s.configFile:void 0;d&&f&&x(e,f)===d&&delete u.plugins;let p={envPaths:{...r,home:zt},workspaceLayer:u,environmentLayer:Z(c?.config),homeLayer:Z(l?.config)};return o.map(n=>Ut(e,t,n,p))}async function Wt(e,t){let n=(await Q(e,t))[0];if(!n)throw Error(`Unable to resolve Razorwind configuration.`);return n}async function Gt(e){if(e.options.plugins.length===0)throw Error(`Razorwind will not generate any code - no plugins configured. Please add at least one plugin to the configuration.`);let t=e.options.tokens;(!t||g(t))&&(t=await h(e));let n={...await Lt(e.cwd,e.options),tokens:t??{},components:y(e.options.components??{},await _t(e)??{}),icons:y(e.options.icons??{},await Nt(e)??{}),fonts:y(e.options.fonts??{},await p(e)??{})};for(let t of e.options.plugins.filter(e=>e.extract))n=await t.extract(n,e.options);if(!n.tokens||g(n.tokens))throw Error(`Unable to load design tokens for the current workspace. Please ensure that Razorwind is configured correctly and that the tokens are available.`);for(let t of e.options.plugins.filter(e=>e.validate))await t.validate(n,e.options);return n}async function Kt(e,t){let n=await Q(e.cwd,t),r=[];for(let t of n)e.options=t,r.push({spec:await Gt(e),config:t});return r}async function $(e,t){let n=[];for(let[r,i]of Object.entries(e??{})){let e=i?.path||r;if(!e)continue;let a=b(e)?e:x(t,e),o=(i?.chunks??[]).map(e=>e.content??``).join(``);await Ke(We(a),{recursive:!0}),await qe(a,o,`utf8`),n.push(a)}return n}var qt=`0.0.49`;function Jt(e){return e}const Yt=He({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens, components, icons, and fonts.`,version:qt,tags:[`razorwind`,`dtcg`]},schema:Ue({schema:u}),input:async e=>{let t=_(),n=await Kt(t,e),r=n[0];if(!r)throw Error(`Unable to resolve Razorwind configuration.`);return t.generationRuns=n,t.options=r.config,r.spec},output:async(e,t,n)=>{await $(n,_().cwd)},generator:async e=>{let t=_();return tt(t.generationRuns&&t.generationRuns.length>0?t.generationRuns:[{spec:e,config:t.options}])}});export{Be as DEFAULT_TOKEN_PATH_CANDIDATES,ae as FONT_EXTENSIONS,ie as FONT_FORMAT_FROM_EXTENSION,f as GENERIC_FALLBACK_FROM_ROLE,ge as MONO_ROLES,Me as RAZORWIND_INFER_PREPROCESSOR,_e as SANS_ROLES,Ce as THEME_BASENAME_PATTERN,ze as TOKEN_DIRECTORY_GLOB,ye as TOKEN_FILE_EXTENSIONS,Re as TYPE_ALIASES,be as TYPE_PATH_HINTS,ee as WEIGHT_FROM_SUFFIX,m as WINDIE_PARSERS,m as razorwindParsers,ve as canonicalizeTokenType,ce as copyFontFiles,pe as cssFontFamily,Jt as defineConfig,Ve as definePlugin,te as fontFamilyName,tt as generateAllPluginDocuments,V as generatePluginDocuments,Yt as generator,Fe as getExtractionHooks,we as getRazorwindParserHooks,Ae as getRazorwindPreprocessorHooks,Oe as inferTypeFromPath,De as inferValue,me as isEmptyFonts,g as isEmptyTokens,_t as loadComponents,p as loadFonts,Nt as loadIcons,It as loadSchemaMetaFromPackageJson,h as loadTokens,Pe as loadTokensOrThrow,le as mergeFonts,xe as nestFlatTokens,U as normalizeRepository,Le as normalizeTokenTree,je as parseCssCustomProperties,fe as parseCssFonts,ue as parseFontFilename,oe as pickFontByRole,Kt as prepareGenerationRuns,Gt as prepareSpec,se as prependFontCss,Ie as razorwindInferPreprocessor,Te as registerRazorwindHooks,Ee as registerRazorwindParsers,he as renderFontCss,ne as renderGoogleFontImports,re as renderLocalFontFaces,Wt as resolveConfig,Q as resolveConfigs,Lt as resolveSchemaMeta,ke as resolveTokensSource,Ft as schemaMetaFromConfig,Pt as schemaMetaFromPackageJson,Ne as styleDictionaryLogOptions,Se as themeKeyFromPath,z as themesForGeneration,de as toGoogleFontsCssUrl,Rt as uniquePlugins,$ as writeGeneratedDocuments};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/lib/fonts/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../fonts-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../fonts-CkBPEFie.cjs");exports.FONT_EXTENSIONS=e.h,exports.FONT_FORMAT_FROM_EXTENSION=e.g,exports.GENERIC_FALLBACK_FROM_ROLE=e._,exports.MONO_ROLES=e.v,exports.SANS_ROLES=e.y,exports.WEIGHT_FROM_SUFFIX=e.b,exports.copyFontFiles=e.m,exports.cssFontFamily=e.s,exports.fontFamilyName=e.c,exports.isEmptyFonts=e.t,exports.loadFonts=e.a,exports.mergeFonts=e.n,exports.parseCssFonts=e.r,exports.parseFontFilename=e.o,exports.pickFontByRole=e.i,exports.prependFontCss=e.l,exports.renderFontCss=e.u,exports.renderGoogleFontImports=e.d,exports.renderLocalFontFaces=e.f,exports.toGoogleFontsCssUrl=e.p;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-
|
|
1
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-VmrytwDm.cjs";
|
|
2
2
|
export { FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, MONO_ROLES, type ParsedFontFilename, type RenderFontCssOptions, SANS_ROLES, WEIGHT_FROM_SUFFIX, copyFontFiles, cssFontFamily, fontFamilyName, isEmptyFonts, loadFonts, mergeFonts, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, toGoogleFontsCssUrl };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-
|
|
1
|
+
import { S as WEIGHT_FROM_SUFFIX, _ as FONT_EXTENSIONS, a as ParsedFontFilename, b as MONO_ROLES, c as RenderFontCssOptions, d as prependFontCss, f as renderFontCss, g as copyFontFiles, h as toGoogleFontsCssUrl, i as pickFontByRole, l as cssFontFamily, m as renderLocalFontFaces, n as mergeFonts, o as loadFonts, p as renderGoogleFontImports, r as parseCssFonts, s as parseFontFilename, t as isEmptyFonts, u as fontFamilyName, v as FONT_FORMAT_FROM_EXTENSION, x as SANS_ROLES, y as GENERIC_FALLBACK_FROM_ROLE } from "../../index-nRnX_NsH.mjs";
|
|
2
2
|
export { FONT_EXTENSIONS, FONT_FORMAT_FROM_EXTENSION, GENERIC_FALLBACK_FROM_ROLE, MONO_ROLES, type ParsedFontFilename, type RenderFontCssOptions, SANS_ROLES, WEIGHT_FROM_SUFFIX, copyFontFiles, cssFontFamily, fontFamilyName, isEmptyFonts, loadFonts, mergeFonts, parseCssFonts, parseFontFilename, pickFontByRole, prependFontCss, renderFontCss, renderGoogleFontImports, renderLocalFontFaces, toGoogleFontsCssUrl };
|
package/dist/lib/fonts/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,y}from"../../fonts-
|
|
1
|
+
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,y}from"../../fonts-BiuIJVev.mjs";export{s as FONT_EXTENSIONS,o as FONT_FORMAT_FROM_EXTENSION,e as GENERIC_FALLBACK_FROM_ROLE,v as MONO_ROLES,y as SANS_ROLES,n as WEIGHT_FROM_SUFFIX,u as copyFontFiles,h as cssFontFamily,r as fontFamilyName,g as isEmptyFonts,t as loadFonts,d as mergeFonts,m as parseCssFonts,f as parseFontFilename,c as pickFontByRole,l as prependFontCss,_ as renderFontCss,i as renderGoogleFontImports,a as renderLocalFontFaces,p as toGoogleFontsCssUrl};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-BjB6F0P1.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.y,exports.RAZORWIND_INFER_PREPROCESSOR=e.o,exports.THEME_BASENAME_PATTERN=e.b,exports.TOKEN_DIRECTORY_GLOB=e.x,exports.TOKEN_FILE_EXTENSIONS=e.S,exports.TYPE_ALIASES=e.w,exports.TYPE_PATH_HINTS=e.T,exports.WINDIE_PARSERS=e.C,exports.razorwindParsers=e.C,exports.canonicalizeTokenType=e.E,exports.getExtractionHooks=e.s,exports.getRazorwindParserHooks=e.c,exports.getRazorwindPreprocessorHooks=e.l,exports.inferTypeFromPath=e.h,exports.inferValue=e.g,exports.isEmptyTokens=e.t,exports.loadTokens=e.n,exports.loadTokensOrThrow=e.r,exports.nestFlatTokens=e._,exports.normalizeTokenTree=e.v,exports.parseCssCustomProperties=e.m,exports.razorwindInferPreprocessor=e.u,exports.registerRazorwindHooks=e.d,exports.registerRazorwindParsers=e.f,exports.resolveTokensSource=e.i,exports.styleDictionaryLogOptions=e.p,exports.themeKeyFromPath=e.a;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-
|
|
2
|
-
export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
|
|
1
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-D6x2Pe2v.cjs";
|
|
2
|
+
export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-
|
|
2
|
-
export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
|
|
1
|
+
import { A as TOKEN_FILE_EXTENSIONS, C as nestFlatTokens, D as RazorwindParserName, E as DEFAULT_TOKEN_PATH_CANDIDATES, M as TYPE_ALIASES, N as TYPE_PATH_HINTS, O as THEME_BASENAME_PATTERN, P as canonicalizeTokenType, S as inferValue, T as parseCssCustomProperties, _ as ResolvedTokensSource, a as getRazorwindParserHooks, b as InferredTokenType, c as registerRazorwindHooks, d as LoadTokensOptions, f as LoadedTokens, g as ResolveTokensPathOptions, h as loadTokensOrThrow, i as getExtractionHooks, j as TOKEN_PARSER_NAMES, k as TOKEN_DIRECTORY_GLOB, l as registerRazorwindParsers, m as loadTokens, n as RAZORWIND_INFER_PREPROCESSOR, o as getRazorwindPreprocessorHooks, p as isEmptyTokens, r as StyleDictionaryRegisterTarget, s as razorwindInferPreprocessor, t as ExtractionHooks, u as styleDictionaryLogOptions, v as resolveTokensSource, w as normalizeTokenTree, x as inferTypeFromPath, y as themeKeyFromPath } from "../../index-52XD5ztc.mjs";
|
|
2
|
+
export { DEFAULT_TOKEN_PATH_CANDIDATES, type ExtractionHooks, type InferredTokenType, type LoadTokensOptions, type LoadedTokens, RAZORWIND_INFER_PREPROCESSOR, type RazorwindParserName, type ResolveTokensPathOptions, type ResolvedTokensSource, type StyleDictionaryRegisterTarget, THEME_BASENAME_PATTERN, TOKEN_DIRECTORY_GLOB, TOKEN_FILE_EXTENSIONS, TYPE_ALIASES, TYPE_PATH_HINTS, TOKEN_PARSER_NAMES as WINDIE_PARSERS, TOKEN_PARSER_NAMES as razorwindParsers, canonicalizeTokenType, getExtractionHooks, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, isEmptyTokens, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, styleDictionaryLogOptions, themeKeyFromPath };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,
|
|
1
|
+
import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,w as C,x as w,y as T}from"../../tokens-C_RYVqap.mjs";export{T as DEFAULT_TOKEN_PATH_CANDIDATES,g as RAZORWIND_INFER_PREPROCESSOR,o as THEME_BASENAME_PATTERN,w as TOKEN_DIRECTORY_GLOB,n as TOKEN_FILE_EXTENSIONS,C as TYPE_ALIASES,r as TYPE_PATH_HINTS,e as WINDIE_PARSERS,e as razorwindParsers,t as canonicalizeTokenType,y as getExtractionHooks,s as getRazorwindParserHooks,p as getRazorwindPreprocessorHooks,d as inferTypeFromPath,u as inferValue,b as isEmptyTokens,h as loadTokens,v as loadTokensOrThrow,i as nestFlatTokens,S as normalizeTokenTree,m as parseCssCustomProperties,x as razorwindInferPreprocessor,c as registerRazorwindHooks,l as registerRazorwindParsers,f as resolveTokensSource,_ as styleDictionaryLogOptions,a as themeKeyFromPath};
|