@razorwind/core 0.0.23 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/{config-BOmWwfIa.d.mts → config-CdWp8VAJ.d.mts} +15 -1
  2. package/dist/config-CdWp8VAJ.d.mts.map +1 -0
  3. package/dist/{config-BcEhyxmP.d.cts → config-DBWJv6wm.d.cts} +15 -1
  4. package/dist/config-DBWJv6wm.d.cts.map +1 -0
  5. package/dist/{index-yQ2P9IUB.d.cts → index-CH__zCuk.d.cts} +2 -2
  6. package/dist/{index-yQ2P9IUB.d.cts.map → index-CH__zCuk.d.cts.map} +1 -1
  7. package/dist/{index-DM0TInOt.d.mts → index-DLV7_d-V.d.mts} +2 -2
  8. package/dist/{index-DM0TInOt.d.mts.map → index-DLV7_d-V.d.mts.map} +1 -1
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.d.cts +3 -3
  11. package/dist/index.d.mts +3 -3
  12. package/dist/index.mjs +1 -1
  13. package/dist/lib/tokens/index.cjs +1 -1
  14. package/dist/lib/tokens/index.d.cts +1 -1
  15. package/dist/lib/tokens/index.d.mts +1 -1
  16. package/dist/lib/tokens/index.mjs +1 -1
  17. package/dist/{plugin-CjyRMcl1.d.mts → plugin-BRsuaaQR.d.mts} +2 -2
  18. package/dist/plugin-BRsuaaQR.d.mts.map +1 -0
  19. package/dist/{plugin-Cp5QsGlu.d.cts → plugin-C6HpaHMi.d.cts} +2 -2
  20. package/dist/{plugin-Cp5QsGlu.d.cts.map → plugin-C6HpaHMi.d.cts.map} +1 -1
  21. package/dist/plugin.d.cts +2 -2
  22. package/dist/plugin.d.mts +2 -2
  23. package/dist/tokens-B2J7nfiw.cjs +1 -0
  24. package/dist/tokens-krMC_bzy.mjs +2 -0
  25. package/dist/tokens-krMC_bzy.mjs.map +1 -0
  26. package/package.json +9 -9
  27. package/dist/config-BOmWwfIa.d.mts.map +0 -1
  28. package/dist/config-BcEhyxmP.d.cts.map +0 -1
  29. package/dist/plugin-CjyRMcl1.d.mts.map +0 -1
  30. package/dist/tokens-IRvI2l2K.cjs +0 -1
  31. package/dist/tokens-lbmSdrlF.mjs +0 -2
  32. package/dist/tokens-lbmSdrlF.mjs.map +0 -1
@@ -120,6 +120,20 @@ interface Options {
120
120
  * - `dimmed`
121
121
  * - `high-contrast`
122
122
  * - `hc`
123
+ * - `highContrast`
124
+ * - `protanopia`
125
+ * - `deuteranopia`
126
+ * - `tritanopia`
127
+ * - `achromatopsia`
128
+ * - `achromatomaly`
129
+ * - `monochrome`
130
+ * - `monochromatic`
131
+ * - `grayscale`
132
+ * - `greyscale`
133
+ * - `bw`
134
+ * - `black-and-white`
135
+ * - `black-white`
136
+ * - `blackWhite`
123
137
  * - `default`
124
138
  * - `base`
125
139
  * - `theme`
@@ -166,4 +180,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "plugins"> & {
166
180
  };
167
181
  //#endregion
168
182
  export { UserConfigFn as a, UserConfigParams as c, TokensPreprocessor as d, UserConfigExport as i, Plugin as l, Options as n, UserConfigFnObject as o, UserConfig as r, UserConfigFnPromise as s, Config as t, TokensParser as u };
169
- //# sourceMappingURL=config-BOmWwfIa.d.mts.map
183
+ //# sourceMappingURL=config-CdWp8VAJ.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-CdWp8VAJ.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -120,6 +120,20 @@ interface Options {
120
120
  * - `dimmed`
121
121
  * - `high-contrast`
122
122
  * - `hc`
123
+ * - `highContrast`
124
+ * - `protanopia`
125
+ * - `deuteranopia`
126
+ * - `tritanopia`
127
+ * - `achromatopsia`
128
+ * - `achromatomaly`
129
+ * - `monochrome`
130
+ * - `monochromatic`
131
+ * - `grayscale`
132
+ * - `greyscale`
133
+ * - `bw`
134
+ * - `black-and-white`
135
+ * - `black-white`
136
+ * - `blackWhite`
123
137
  * - `default`
124
138
  * - `base`
125
139
  * - `theme`
@@ -166,4 +180,4 @@ type Config = RequiredKeys<UserConfig, "componentsPath" | "plugins"> & {
166
180
  };
167
181
  //#endregion
168
182
  export { UserConfigFn as a, UserConfigParams as c, TokensPreprocessor as d, UserConfigExport as i, Plugin as l, Options as n, UserConfigFnObject as o, UserConfig as r, UserConfigFnPromise as s, Config as t, TokensParser as u };
169
- //# sourceMappingURL=config-BcEhyxmP.d.cts.map
183
+ //# sourceMappingURL=config-DBWJv6wm.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DBWJv6wm.d.cts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":";;;;;;;;;;;;;;;UAgCiB;EACf;EACA,SAAS;EACT,SAAS,qBAAqB;;;;;;;;;KAUpB;EAEN;EACA,eAAe,YAAY,uBAAuB;MAElD,YAAY,uBAAuB;;;;;;;;;UAUxB;;;;;;;EAOf;;;;;;EAOA,UAAU;;;;;;EAOV,gBAAgB;;;;;;;;EAShB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;;;;;;;;EASzD,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;;;;;;;;EASjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UCvF9B;;;;;;EAMf;;;;EAKA;;;;;;;;EASA;;;;;;EAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCA;;UAGe,mBAAmB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,SAAS,eAAe;EACjC,aAAa;EACb,UAAU;;UAGK;EACf;EACA;;KAGU,sBAAsB,QAAQ,eAAe;KAC7C,uBACV,QAAQ,qBACL,QAAQ,aAAa;KACd,gBACV,QAAQ,qBACL,aAAa,eAAe,QAAQ,aAAa;KAC1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aAAa;EAChC;EACA,UAAU;IACR"}
@@ -1,6 +1,6 @@
1
1
  import { t as Schema } from "./schema-C6-umW1r.cjs";
2
2
  import "./index-DW51mcvl.cjs";
3
- import { l as Plugin, t as Config } from "./config-BcEhyxmP.cjs";
3
+ import { l as Plugin, t as Config } from "./config-DBWJv6wm.cjs";
4
4
  import { Tokens } from "@power-plant/dtcg-schema";
5
5
  import { ExecutionContext } from "@power-plant/core";
6
6
  import { Hooks, Parser, PreprocessedTokens } from "style-dictionary/types";
@@ -166,4 +166,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
166
166
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
167
167
  //#endregion
168
168
  export { RazorwindParserName as C, TOKEN_PARSER_NAMES as D, TOKEN_FILE_EXTENSIONS as E, TYPE_PATH_HINTS as O, DEFAULT_TOKEN_PATH_CANDIDATES as S, TOKEN_DIRECTORY_GLOB as T, inferTypeFromPath as _, razorwindInferPreprocessor as a, normalizeTokenTree as b, LoadTokensOptions as c, loadTokensOrThrow as d, ResolveTokensPathOptions as f, InferredTokenType as g, themeKeyFromPath as h, getRazorwindPreprocessorHooks as i, LoadedTokens as l, resolveTokensSource as m, StyleDictionaryRegisterTarget as n, registerRazorwindHooks as o, ResolvedTokensSource as p, getRazorwindParserHooks as r, registerRazorwindParsers as s, RAZORWIND_INFER_PREPROCESSOR as t, loadTokens as u, inferValue as v, THEME_BASENAME_PATTERN as w, parseCssCustomProperties as x, nestFlatTokens as y };
169
- //# sourceMappingURL=index-yQ2P9IUB.d.cts.map
169
+ //# sourceMappingURL=index-CH__zCuk.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-yQ2P9IUB.d.cts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":";;;;;;;;cAmBa;KAOD,8BAA8B;;cAG7B;;;;;cAsBA;;cAyBA;;cAGA,wBAAsB;;cAItB,iBAAiB;;;;;;;iBCvDd,yBACd,mBACC;;;KCgCS;;;;iBAmEI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBAsPZ,mBACd,gBACA;;;;;;;;iBA2Cc,eACd,MAAM,0BACL;;;UC9Zc;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAyFc,oBACd,SAAS,2BACR;;;;iBAqFa,iBAAiB;;;UCzMhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;;;;;;;;;iBA2I7B,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;cClME;;UAGI;EACf,iBAAiB,QAAQ;EACzB,uBAAuB;IACrB;IACA,qBAAqB;;;;iBAyET,2BAA2B,YAAY;;;;;iBAavC,2BACd,YAAY,qBACX;;iBAKa,iCAAiC,YAC/C;;;;;;;;;;iBAgBc,uBACd,UAAS,UACT,SAAQ;;;;cA6CG,iCAAwB"}
1
+ {"version":3,"file":"index-CH__zCuk.d.cts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":";;;;;;;;cAmBa;KAOD,8BAA8B;;cAG7B;;;;;cAsBA;;cAyBA;;cAGA,wBAAsB;;cAItB,iBAAiB;;;;;;;iBCvDd,yBACd,mBACC;;;KCgCS;;;;iBAmEI,kBACd,iBACC;;;;iBAiBa,WACd,cACA;EACG;EAAgB,OAAO;;;;;iBAsPZ,mBACd,gBACA;;;;;;;;iBA2Cc,eACd,MAAM,0BACL;;;UC9Zc;;;;EAIf;;;;EAKA;;;;EAKA,gBAAgB;;UAGD;;;;;;;EAOf;;;;EAKA;;;;EAKA;;;;;;;;;iBAyFc,oBACd,SAAS,2BACR;;;;iBAqFa,iBAAiB;;;UCzMhB,0BAA0B;;;;;;EAMzC;;KAGU,eAAe,SAAS,eAAe;;;;;;;;;iBA2I7B,WACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;;;;;;;iBAsCW,kBACpB,SAAS,iBAAiB,QAAQ,gBACjC,QAAQ;;;;cClME;;UAGI;EACf,iBAAiB,QAAQ;EACzB,uBAAuB;IACrB;IACA,qBAAqB;;;;iBAyET,2BAA2B,YAAY;;;;;iBAavC,2BACd,YAAY,qBACX;;iBAKa,iCAAiC,YAC/C;;;;;;;;;;iBAgBc,uBACd,UAAS,UACT,SAAQ;;;;cA6CG,iCAAwB"}
@@ -1,6 +1,6 @@
1
1
  import { t as Schema } from "./schema-C6-umW1r.mjs";
2
2
  import "./index-BhVvIILv.mjs";
3
- import { l as Plugin, t as Config } from "./config-BOmWwfIa.mjs";
3
+ import { l as Plugin, t as Config } from "./config-CdWp8VAJ.mjs";
4
4
  import { ExecutionContext } from "@power-plant/core";
5
5
  import { Tokens } from "@power-plant/dtcg-schema";
6
6
  import { Hooks, Parser, PreprocessedTokens } from "style-dictionary/types";
@@ -166,4 +166,4 @@ declare function registerRazorwindHooks(plugins?: Plugin[], target?: StyleDictio
166
166
  declare const registerRazorwindParsers: typeof registerRazorwindHooks;
167
167
  //#endregion
168
168
  export { RazorwindParserName as C, TOKEN_PARSER_NAMES as D, TOKEN_FILE_EXTENSIONS as E, TYPE_PATH_HINTS as O, DEFAULT_TOKEN_PATH_CANDIDATES as S, TOKEN_DIRECTORY_GLOB as T, inferTypeFromPath as _, razorwindInferPreprocessor as a, normalizeTokenTree as b, LoadTokensOptions as c, loadTokensOrThrow as d, ResolveTokensPathOptions as f, InferredTokenType as g, themeKeyFromPath as h, getRazorwindPreprocessorHooks as i, LoadedTokens as l, resolveTokensSource as m, StyleDictionaryRegisterTarget as n, registerRazorwindHooks as o, ResolvedTokensSource as p, getRazorwindParserHooks as r, registerRazorwindParsers as s, RAZORWIND_INFER_PREPROCESSOR as t, loadTokens as u, inferValue as v, THEME_BASENAME_PATTERN as w, parseCssCustomProperties as x, nestFlatTokens as y };
169
- //# sourceMappingURL=index-DM0TInOt.d.mts.map
169
+ //# sourceMappingURL=index-DLV7_d-V.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DM0TInOt.d.mts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":""}
1
+ {"version":3,"file":"index-DLV7_d-V.d.mts","names":[],"sources":["../src/lib/tokens/constants.ts","../src/lib/tokens/css.ts","../src/lib/tokens/infer.ts","../src/lib/tokens/resolve-path.ts","../src/lib/tokens/load.ts","../src/lib/tokens/parsers.ts"],"mappings":""}
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-DWEhLYz4.cjs"),n=require("./tokens-IRvI2l2K.cjs"),r=require("./plugin.cjs");let i=require("@power-plant/core"),a=require("@stryke/type-checks/is-empty-object"),o=require("defu"),s=require("style-dictionary");s=e.t(s,1);let c=require("@stryke/fs/exists"),l=require("@stryke/fs/is-file"),u=require("@stryke/fs/json"),d=require("@stryke/fs/list-files"),f=require("@stryke/path/append"),p=require("@stryke/path/file-path-fns"),m=require("@stryke/path/join"),h=require("@stryke/string-format/title-case"),g=require("@stryke/type-checks/is-set-object"),_=require("@stryke/type-checks/is-set-string"),v=require("node:fs/promises"),y=require("node:path"),b=require("@stryke/env/get-env-paths"),x=require("@stryke/path/find"),S=require("@stryke/path/replace"),C=require("@stryke/type-checks/is-function"),w=require("c12"),T=require("jiti"),E=require("node:fs"),D=require("node:os");D=e.t(D,1);var O=`0.0.23`;const k=t.r.partial(),A=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function j(e,t){return(0,y.isAbsolute)(t)?t:(0,y.resolve)(e,t)}function M(e){return Array.isArray(e)?e.filter(_.isSetString):(0,_.isSetString)(e)?[e]:[]}function N(e){if((0,_.isSetString)(e))return e;if((0,g.isSetObject)(e)&&`url`in e&&(0,_.isSetString)(e.url))return e.url}function P(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 F(e){if(!(0,g.isSetObject)(e))return;let t=k.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function I(e){return(0,g.isSetObject)(e)&&`path`in e}async function L(e){let t=(0,m.joinPaths)(e,`package.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}let r={};(0,_.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,_.isSetString)(n.description)&&(r.description=n.description),(0,_.isSetString)(n.version)&&(r.version=n.version),(0,_.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=N(n.repository);if(i&&(r.repository=i),(0,g.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,g.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(_.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;I(a)?s=P(a):(0,g.isSetObject)(a)&&(o=F(a),`files`in a&&(s=P(a.files)));let l=A(o??{},r);return s?.length&&(l.files=s),Object.keys(l).length>0?l:void 0}async function R(e){let t=(0,m.joinPaths)(e,`component.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}if(I(n)||Array.isArray(n)){let e=P(n);if(e)return{files:e}}return F(n)}async function z(e){let n=await L(e),r=await R(e);if(!n&&!r)return;let i=A(r??{},n??{}),a=(0,_.isSetString)(i.name)?i.name:(0,p.findFolderName)(e),o=(0,_.isSetString)(i.title)?i.title:(0,h.titleCase)(a),s=t.r.safeParse({...i,name:a,title:o});if(s.success)return{...s.data,files:await Promise.all((s.data.files??(await(0,d.listFiles)(e)).filter(e=>(0,p.findFileName)(e,{withExtension:!1})===`index`))?.filter(Boolean)?.map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,v.readFile)((0,f.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,v.readFile)((0,f.appendPath)(t.path,e),`utf8`):void 0,path:(0,f.appendPath)(t.path,e)}))}}async function B(e){let t={},n=M(e.options.componentsPath);for(let r of n){let n=j(e.cwd,r);if(!(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n)))try{let e=await(0,v.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await z((0,m.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const V=D.default.homedir();async function H(e,t){let n=t.configFile&&(0,E.existsSync)((0,S.replacePath)(t.configFile,e))?(0,S.replacePath)(t.configFile,e):t.configFile&&(0,E.existsSync)(t.configFile)?t.configFile:(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.ts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.ts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.js`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.js`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.mts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.mts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.mjs`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.mjs`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.ts`))?(0,m.joinPaths)(e,`razorwind.config.ts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.js`))?(0,m.joinPaths)(e,`razorwind.config.js`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.mts`))?(0,m.joinPaths)(e,`razorwind.config.mts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.mjs`))?(0,m.joinPaths)(e,`razorwind.config.mjs`):void 0,r=(0,b.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,T.createJiti)(e,i),s={};if(n){let r=await a.import(a.esmResolve(n));if(r?.default){let i={};(0,C.isFunction)(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):((0,g.isSetObject)(r.default)||Array.isArray(r.default))&&(i=r.default),((0,g.isSetObject)(i)||Array.isArray(i))&&(s={...i,configFile:n})}}let[c,l,u]=await Promise.all([(0,w.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,w.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,w.loadConfig)({cwd:V,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=(0,o.defu)({cwd:e,envPaths:{...r,home:V}},t,s,(0,g.isSetObject)(c?.config)?{...c.config}:{},(0,g.isSetObject)(l?.config)?{...l.config}:{},(0,g.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,plugins:[]});if(Array.isArray(d.componentsPath)){let t=d.componentsPath.filter(_.isSetString).map(e=>(0,x.findFilePath)(e));d.componentsPath=t.length>0?t:e}else d.componentsPath=(0,_.isSetString)(d.componentsPath)?(0,x.findFilePath)(d.componentsPath):e;return Array.isArray(d.plugins)||(d.plugins=[]),d}function U(e){return e}const W=(0,i.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:O,tags:[`razorwind`,`dtcg`]},schema:(0,i.defineSchema)({schema:t.t}),input:async e=>{let t=(0,i.useExecution)();if(t.options=await H(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.`);n.l(t.options.plugins,s.default);let r=t.options.tokens;(!r||(0,a.isEmptyObject)(r))&&(r=await n.t(t));let c={tokens:r??{},components:(0,o.defu)(t.options.components??{},await B(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))c=await e.extract(c,t.options);if(!c.tokens||(0,a.isEmptyObject)(c.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(c,t.options);return c},generator:async e=>{let t=(0,i.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=n.g,exports.RAZORWIND_INFER_PREPROCESSOR=n.a,exports.THEME_BASENAME_PATTERN=n._,exports.TOKEN_DIRECTORY_GLOB=n.v,exports.TOKEN_FILE_EXTENSIONS=n.y,exports.TYPE_PATH_HINTS=n.x,exports.WINDIE_PARSERS=n.b,exports.razorwindParsers=n.b,exports.defineConfig=U,exports.definePlugin=r.definePlugin,exports.generator=W,exports.getRazorwindParserHooks=n.o,exports.getRazorwindPreprocessorHooks=n.s,exports.inferTypeFromPath=n.f,exports.inferValue=n.p,exports.loadComponents=B,exports.loadTokens=n.t,exports.loadTokensOrThrow=n.n,exports.nestFlatTokens=n.m,exports.normalizeTokenTree=n.h,exports.parseCssCustomProperties=n.d,exports.razorwindInferPreprocessor=n.c,exports.registerRazorwindHooks=n.l,exports.registerRazorwindParsers=n.u,exports.resolveConfig=H,exports.resolveTokensSource=n.r,exports.themeKeyFromPath=n.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./schema-DWEhLYz4.cjs"),n=require("./tokens-B2J7nfiw.cjs"),r=require("./plugin.cjs");let i=require("@power-plant/core"),a=require("@stryke/type-checks/is-empty-object"),o=require("defu"),s=require("style-dictionary");s=e.t(s,1);let c=require("@stryke/fs/exists"),l=require("@stryke/fs/is-file"),u=require("@stryke/fs/json"),d=require("@stryke/fs/list-files"),f=require("@stryke/path/append"),p=require("@stryke/path/file-path-fns"),m=require("@stryke/path/join"),h=require("@stryke/string-format/title-case"),g=require("@stryke/type-checks/is-set-object"),_=require("@stryke/type-checks/is-set-string"),v=require("node:fs/promises"),y=require("node:path"),b=require("@stryke/env/get-env-paths"),x=require("@stryke/path/find"),S=require("@stryke/path/replace"),C=require("@stryke/type-checks/is-function"),w=require("c12"),T=require("jiti"),E=require("node:fs"),D=require("node:os");D=e.t(D,1);var O=`0.0.25`;const k=t.r.partial(),A=(0,o.createDefu)((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function j(e,t){return(0,y.isAbsolute)(t)?t:(0,y.resolve)(e,t)}function M(e){return Array.isArray(e)?e.filter(_.isSetString):(0,_.isSetString)(e)?[e]:[]}function N(e){if((0,_.isSetString)(e))return e;if((0,g.isSetObject)(e)&&`url`in e&&(0,_.isSetString)(e.url))return e.url}function P(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 F(e){if(!(0,g.isSetObject)(e))return;let t=k.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function I(e){return(0,g.isSetObject)(e)&&`path`in e}async function L(e){let t=(0,m.joinPaths)(e,`package.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}let r={};(0,_.isSetString)(n.name)&&(r.name=n.name,r.title=n.name),(0,_.isSetString)(n.description)&&(r.description=n.description),(0,_.isSetString)(n.version)&&(r.version=n.version),(0,_.isSetString)(n.homepage)&&(r.homepage=n.homepage);let i=N(n.repository);if(i&&(r.repository=i),(0,g.isSetObject)(n.dependencies)&&(r.dependencies=n.dependencies),(0,g.isSetObject)(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(_.isSetString);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;I(a)?s=P(a):(0,g.isSetObject)(a)&&(o=F(a),`files`in a&&(s=P(a.files)));let l=A(o??{},r);return s?.length&&(l.files=s),Object.keys(l).length>0?l:void 0}async function R(e){let t=(0,m.joinPaths)(e,`component.json`);if(!(0,c.existsSync)(t))return;let n;try{n=await(0,u.readJsonFile)(t)}catch{return}if(I(n)||Array.isArray(n)){let e=P(n);if(e)return{files:e}}return F(n)}async function z(e){let n=await L(e),r=await R(e);if(!n&&!r)return;let i=A(r??{},n??{}),a=(0,_.isSetString)(i.name)?i.name:(0,p.findFolderName)(e),o=(0,_.isSetString)(i.title)?i.title:(0,h.titleCase)(a),s=t.r.safeParse({...i,name:a,title:o});if(s.success)return{...s.data,files:await Promise.all((s.data.files??(await(0,d.listFiles)(e)).filter(e=>(0,p.findFileName)(e,{withExtension:!1})===`index`))?.filter(Boolean)?.map(async t=>typeof t==`string`?{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t))?`component`:`file`,path:t,content:await(0,v.readFile)((0,f.appendPath)(t,e),`utf8`)}:{type:/[tj]sx$/.test((0,p.findFileExtensionSafe)(t.path))?`component`:`file`,...t,content:t.content?t.content:t.path?await(0,v.readFile)((0,f.appendPath)(t.path,e),`utf8`):void 0,path:(0,f.appendPath)(t.path,e)}))}}async function B(e){let t={},n=M(e.options.componentsPath);for(let r of n){let n=j(e.cwd,r);if(!(!(0,c.existsSync)(n)||!(0,l.isDirectory)(n)))try{let e=await(0,v.readdir)(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await z((0,m.joinPaths)(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const V=D.default.homedir();async function H(e,t){let n=t.configFile&&(0,E.existsSync)((0,S.replacePath)(t.configFile,e))?(0,S.replacePath)(t.configFile,e):t.configFile&&(0,E.existsSync)(t.configFile)?t.configFile:(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.ts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.ts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.js`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.js`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.mts`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.mts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.${t.mode}.config.mjs`))?(0,m.joinPaths)(e,`razorwind.${t.mode}.config.mjs`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.ts`))?(0,m.joinPaths)(e,`razorwind.config.ts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.js`))?(0,m.joinPaths)(e,`razorwind.config.js`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.mts`))?(0,m.joinPaths)(e,`razorwind.config.mts`):(0,E.existsSync)((0,m.joinPaths)(e,`razorwind.config.mjs`))?(0,m.joinPaths)(e,`razorwind.config.mjs`):void 0,r=(0,b.getEnvPaths)({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=(0,T.createJiti)(e,i),s={};if(n){let r=await a.import(a.esmResolve(n));if(r?.default){let i={};(0,C.isFunction)(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):((0,g.isSetObject)(r.default)||Array.isArray(r.default))&&(i=r.default),((0,g.isSetObject)(i)||Array.isArray(i))&&(s={...i,configFile:n})}}let[c,l,u]=await Promise.all([(0,w.loadConfig)({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),(0,w.loadConfig)({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),(0,w.loadConfig)({cwd:V,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),d=(0,o.defu)({cwd:e,envPaths:{...r,home:V}},t,s,(0,g.isSetObject)(c?.config)?{...c.config}:{},(0,g.isSetObject)(l?.config)?{...l.config}:{},(0,g.isSetObject)(u?.config)?{...u.config}:{},{componentsPath:e,plugins:[]});if(Array.isArray(d.componentsPath)){let t=d.componentsPath.filter(_.isSetString).map(e=>(0,x.findFilePath)(e));d.componentsPath=t.length>0?t:e}else d.componentsPath=(0,_.isSetString)(d.componentsPath)?(0,x.findFilePath)(d.componentsPath):e;return Array.isArray(d.plugins)||(d.plugins=[]),d}function U(e){return e}const W=(0,i.defineGenerator)({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:O,tags:[`razorwind`,`dtcg`]},schema:(0,i.defineSchema)({schema:t.t}),input:async e=>{let t=(0,i.useExecution)();if(t.options=await H(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.`);n.l(t.options.plugins,s.default);let r=t.options.tokens;(!r||(0,a.isEmptyObject)(r))&&(r=await n.t(t));let c={tokens:r??{},components:(0,o.defu)(t.options.components??{},await B(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))c=await e.extract(c,t.options);if(!c.tokens||(0,a.isEmptyObject)(c.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(c,t.options);return c},generator:async e=>{let t=(0,i.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=n.g,exports.RAZORWIND_INFER_PREPROCESSOR=n.a,exports.THEME_BASENAME_PATTERN=n._,exports.TOKEN_DIRECTORY_GLOB=n.v,exports.TOKEN_FILE_EXTENSIONS=n.y,exports.TYPE_PATH_HINTS=n.x,exports.WINDIE_PARSERS=n.b,exports.razorwindParsers=n.b,exports.defineConfig=U,exports.definePlugin=r.definePlugin,exports.generator=W,exports.getRazorwindParserHooks=n.o,exports.getRazorwindPreprocessorHooks=n.s,exports.inferTypeFromPath=n.f,exports.inferValue=n.p,exports.loadComponents=B,exports.loadTokens=n.t,exports.loadTokensOrThrow=n.n,exports.nestFlatTokens=n.m,exports.normalizeTokenTree=n.h,exports.parseCssCustomProperties=n.d,exports.razorwindInferPreprocessor=n.c,exports.registerRazorwindHooks=n.l,exports.registerRazorwindParsers=n.u,exports.resolveConfig=H,exports.resolveTokensSource=n.r,exports.themeKeyFromPath=n.i;
package/dist/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { a as Components, t as Schema } from "./schema-C6-umW1r.cjs";
2
2
  import "./index-DW51mcvl.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-BcEhyxmP.cjs";
4
- import { t as definePlugin } from "./plugin-Cp5QsGlu.cjs";
5
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-yQ2P9IUB.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-DBWJv6wm.cjs";
4
+ import { t as definePlugin } from "./plugin-C6HpaHMi.cjs";
5
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-CH__zCuk.cjs";
6
6
  import StyleDictionary from "style-dictionary";
7
7
  import { ExecutionContext, GeneratorConfig } from "@power-plant/core";
8
8
  //#region src/lib/resolve-config.d.ts
package/dist/index.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { a as Components, t as Schema } from "./schema-C6-umW1r.mjs";
2
2
  import "./index-BhVvIILv.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-BOmWwfIa.mjs";
4
- import { t as definePlugin } from "./plugin-CjyRMcl1.mjs";
5
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-DM0TInOt.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-CdWp8VAJ.mjs";
4
+ import { t as definePlugin } from "./plugin-BRsuaaQR.mjs";
5
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "./index-DLV7_d-V.mjs";
6
6
  import { ExecutionContext, GeneratorConfig } from "@power-plant/core";
7
7
  import StyleDictionary from "style-dictionary";
8
8
  //#region src/lib/resolve-config.d.ts
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{a as e,i as t,r as n}from"./schema-CzpHs4s7.mjs";import{_ as r,a as i,b as a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as ee,n as p,o as te,p as ne,r as re,s as m,t as h,u as g,v as _,x as v,y}from"./tokens-lbmSdrlF.mjs";import{definePlugin as b}from"./plugin.mjs";import{defineGenerator as x,defineSchema as S,useExecution as C}from"@power-plant/core";import{isEmptyObject as w}from"@stryke/type-checks/is-empty-object";import{createDefu as ie,defu as T}from"defu";import ae from"style-dictionary";import{existsSync as E}from"@stryke/fs/exists";import{isDirectory as oe}from"@stryke/fs/is-file";import{readJsonFile as D}from"@stryke/fs/json";import{listFiles as se}from"@stryke/fs/list-files";import{appendPath as O}from"@stryke/path/append";import{findFileExtensionSafe as k,findFileName as A,findFolderName as j}from"@stryke/path/file-path-fns";import{joinPaths as M}from"@stryke/path/join";import{titleCase as N}from"@stryke/string-format/title-case";import{isSetObject as P}from"@stryke/type-checks/is-set-object";import{isSetString as F}from"@stryke/type-checks/is-set-string";import{readFile as I,readdir as L}from"node:fs/promises";import{isAbsolute as R,resolve as z}from"node:path";import{getEnvPaths as B}from"@stryke/env/get-env-paths";import{findFilePath as V}from"@stryke/path/find";import{replacePath as H}from"@stryke/path/replace";import{isFunction as U}from"@stryke/type-checks/is-function";import{loadConfig as W}from"c12";import{createJiti as G}from"jiti";import{existsSync as K}from"node:fs";import ce from"node:os";var le=`0.0.23`;const ue=e.partial(),q=ie((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function de(e,t){return R(t)?t:z(e,t)}function fe(e){return Array.isArray(e)?e.filter(F):F(e)?[e]:[]}function pe(e){if(F(e))return e;if(P(e)&&`url`in e&&F(e.url))return e.url}function J(e){if(!e)return;let n=t.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function Y(e){if(!P(e))return;let t=ue.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function X(e){return P(e)&&`path`in e}async function me(e){let t=M(e,`package.json`);if(!E(t))return;let n;try{n=await D(t)}catch{return}let r={};F(n.name)&&(r.name=n.name,r.title=n.name),F(n.description)&&(r.description=n.description),F(n.version)&&(r.version=n.version),F(n.homepage)&&(r.homepage=n.homepage);let i=pe(n.repository);if(i&&(r.repository=i),P(n.dependencies)&&(r.dependencies=n.dependencies),P(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(F);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;X(a)?s=J(a):P(a)&&(o=Y(a),`files`in a&&(s=J(a.files)));let c=q(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function he(e){let t=M(e,`component.json`);if(!E(t))return;let n;try{n=await D(t)}catch{return}if(X(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Y(n)}async function ge(t){let n=await me(t),r=await he(t);if(!n&&!r)return;let i=q(r??{},n??{}),a=F(i.name)?i.name:j(t),o=F(i.title)?i.title:N(a),s=e.safeParse({...i,name:a,title:o});if(s.success)return{...s.data,files:await Promise.all((s.data.files??(await se(t)).filter(e=>A(e,{withExtension:!1})===`index`))?.filter(Boolean)?.map(async e=>typeof e==`string`?{type:/[tj]sx$/.test(k(e))?`component`:`file`,path:e,content:await I(O(e,t),`utf8`)}:{type:/[tj]sx$/.test(k(e.path))?`component`:`file`,...e,content:e.content?e.content:e.path?await I(O(e.path,t),`utf8`):void 0,path:O(e.path,t)}))}}async function Z(e){let t={},n=fe(e.options.componentsPath);for(let r of n){let n=de(e.cwd,r);if(!(!E(n)||!oe(n)))try{let e=await L(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await ge(M(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const Q=ce.homedir();async function $(e,t){let n=t.configFile&&K(H(t.configFile,e))?H(t.configFile,e):t.configFile&&K(t.configFile)?t.configFile:K(M(e,`razorwind.${t.mode}.config.ts`))?M(e,`razorwind.${t.mode}.config.ts`):K(M(e,`razorwind.${t.mode}.config.js`))?M(e,`razorwind.${t.mode}.config.js`):K(M(e,`razorwind.${t.mode}.config.mts`))?M(e,`razorwind.${t.mode}.config.mts`):K(M(e,`razorwind.${t.mode}.config.mjs`))?M(e,`razorwind.${t.mode}.config.mjs`):K(M(e,`razorwind.config.ts`))?M(e,`razorwind.config.ts`):K(M(e,`razorwind.config.js`))?M(e,`razorwind.config.js`):K(M(e,`razorwind.config.mts`))?M(e,`razorwind.config.mts`):K(M(e,`razorwind.config.mjs`))?M(e,`razorwind.config.mjs`):void 0,r=B({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=G(e,i),o={};if(n){let r=await a.import(a.esmResolve(n));if(r?.default){let i={};U(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):(P(r.default)||Array.isArray(r.default))&&(i=r.default),(P(i)||Array.isArray(i))&&(o={...i,configFile:n})}}let[s,c,l]=await Promise.all([W({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),W({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),W({cwd:Q,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=T({cwd:e,envPaths:{...r,home:Q}},t,o,P(s?.config)?{...s.config}:{},P(c?.config)?{...c.config}:{},P(l?.config)?{...l.config}:{},{componentsPath:e,plugins:[]});if(Array.isArray(u.componentsPath)){let t=u.componentsPath.filter(F).map(e=>V(e));u.componentsPath=t.length>0?t:e}else u.componentsPath=F(u.componentsPath)?V(u.componentsPath):e;return Array.isArray(u.plugins)||(u.plugins=[]),u}function _e(e){return e}const ve=x({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:le,tags:[`razorwind`,`dtcg`]},schema:S({schema:n}),input:async e=>{let t=C();if(t.options=await $(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.`);f(t.options.plugins,ae);let n=t.options.tokens;(!n||w(n))&&(n=await h(t));let r={tokens:n??{},components:T(t.options.components??{},await Z(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))r=await e.extract(r,t.options);if(!r.tokens||w(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},generator:async e=>{let t=C(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=T(i,n)}return n}});export{l as DEFAULT_TOKEN_PATH_CANDIDATES,i as RAZORWIND_INFER_PREPROCESSOR,r as THEME_BASENAME_PATTERN,_ as TOKEN_DIRECTORY_GLOB,y as TOKEN_FILE_EXTENSIONS,v as TYPE_PATH_HINTS,a as WINDIE_PARSERS,a as razorwindParsers,_e as defineConfig,b as definePlugin,ve as generator,te as getRazorwindParserHooks,m as getRazorwindPreprocessorHooks,c as inferTypeFromPath,ne as inferValue,Z as loadComponents,h as loadTokens,p as loadTokensOrThrow,ee as nestFlatTokens,u as normalizeTokenTree,s as parseCssCustomProperties,o as razorwindInferPreprocessor,f as registerRazorwindHooks,g as registerRazorwindParsers,$ as resolveConfig,re as resolveTokensSource,d as themeKeyFromPath};
1
+ import{a as e,i as t,r as n}from"./schema-CzpHs4s7.mjs";import{_ as r,a as i,b as a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as ee,n as p,o as te,p as ne,r as re,s as m,t as h,u as g,v as _,x as v,y}from"./tokens-krMC_bzy.mjs";import{definePlugin as b}from"./plugin.mjs";import{defineGenerator as x,defineSchema as S,useExecution as C}from"@power-plant/core";import{isEmptyObject as w}from"@stryke/type-checks/is-empty-object";import{createDefu as ie,defu as T}from"defu";import ae from"style-dictionary";import{existsSync as E}from"@stryke/fs/exists";import{isDirectory as oe}from"@stryke/fs/is-file";import{readJsonFile as D}from"@stryke/fs/json";import{listFiles as se}from"@stryke/fs/list-files";import{appendPath as O}from"@stryke/path/append";import{findFileExtensionSafe as k,findFileName as A,findFolderName as j}from"@stryke/path/file-path-fns";import{joinPaths as M}from"@stryke/path/join";import{titleCase as N}from"@stryke/string-format/title-case";import{isSetObject as P}from"@stryke/type-checks/is-set-object";import{isSetString as F}from"@stryke/type-checks/is-set-string";import{readFile as I,readdir as L}from"node:fs/promises";import{isAbsolute as R,resolve as z}from"node:path";import{getEnvPaths as B}from"@stryke/env/get-env-paths";import{findFilePath as V}from"@stryke/path/find";import{replacePath as H}from"@stryke/path/replace";import{isFunction as U}from"@stryke/type-checks/is-function";import{loadConfig as W}from"c12";import{createJiti as G}from"jiti";import{existsSync as K}from"node:fs";import ce from"node:os";var le=`0.0.25`;const ue=e.partial(),q=ie((e,t,n)=>Array.isArray(n)?(e[t]=n,!0):!1);function de(e,t){return R(t)?t:z(e,t)}function fe(e){return Array.isArray(e)?e.filter(F):F(e)?[e]:[]}function pe(e){if(F(e))return e;if(P(e)&&`url`in e&&F(e.url))return e.url}function J(e){if(!e)return;let n=t.safeParse(e);if(n.success)return[n.data];if(!Array.isArray(e))return;let r=[];for(let n of e){let e=t.safeParse(n);e.success&&r.push(e.data)}return r.length>0?r:void 0}function Y(e){if(!P(e))return;let t=ue.safeParse(e);if(t.success)return Object.keys(t.data).length>0?t.data:void 0}function X(e){return P(e)&&`path`in e}async function me(e){let t=M(e,`package.json`);if(!E(t))return;let n;try{n=await D(t)}catch{return}let r={};F(n.name)&&(r.name=n.name,r.title=n.name),F(n.description)&&(r.description=n.description),F(n.version)&&(r.version=n.version),F(n.homepage)&&(r.homepage=n.homepage);let i=pe(n.repository);if(i&&(r.repository=i),P(n.dependencies)&&(r.dependencies=n.dependencies),P(n.devDependencies)&&(r.devDependencies=n.devDependencies),Array.isArray(n.keywords)){let e=n.keywords.filter(F);e.length>0&&(r.tags=e)}let a=n.razorwind,o,s;X(a)?s=J(a):P(a)&&(o=Y(a),`files`in a&&(s=J(a.files)));let c=q(o??{},r);return s?.length&&(c.files=s),Object.keys(c).length>0?c:void 0}async function he(e){let t=M(e,`component.json`);if(!E(t))return;let n;try{n=await D(t)}catch{return}if(X(n)||Array.isArray(n)){let e=J(n);if(e)return{files:e}}return Y(n)}async function ge(t){let n=await me(t),r=await he(t);if(!n&&!r)return;let i=q(r??{},n??{}),a=F(i.name)?i.name:j(t),o=F(i.title)?i.title:N(a),s=e.safeParse({...i,name:a,title:o});if(s.success)return{...s.data,files:await Promise.all((s.data.files??(await se(t)).filter(e=>A(e,{withExtension:!1})===`index`))?.filter(Boolean)?.map(async e=>typeof e==`string`?{type:/[tj]sx$/.test(k(e))?`component`:`file`,path:e,content:await I(O(e,t),`utf8`)}:{type:/[tj]sx$/.test(k(e.path))?`component`:`file`,...e,content:e.content?e.content:e.path?await I(O(e.path,t),`utf8`):void 0,path:O(e.path,t)}))}}async function Z(e){let t={},n=fe(e.options.componentsPath);for(let r of n){let n=de(e.cwd,r);if(!(!E(n)||!oe(n)))try{let e=await L(n,{withFileTypes:!0});for(let r of e){if(!r.isDirectory()||r.name.startsWith(`.`))continue;let e=await ge(M(n,r.name));e&&(t[e.name]=e)}}catch{continue}}return t}const Q=ce.homedir();async function $(e,t){let n=t.configFile&&K(H(t.configFile,e))?H(t.configFile,e):t.configFile&&K(t.configFile)?t.configFile:K(M(e,`razorwind.${t.mode}.config.ts`))?M(e,`razorwind.${t.mode}.config.ts`):K(M(e,`razorwind.${t.mode}.config.js`))?M(e,`razorwind.${t.mode}.config.js`):K(M(e,`razorwind.${t.mode}.config.mts`))?M(e,`razorwind.${t.mode}.config.mts`):K(M(e,`razorwind.${t.mode}.config.mjs`))?M(e,`razorwind.${t.mode}.config.mjs`):K(M(e,`razorwind.config.ts`))?M(e,`razorwind.config.ts`):K(M(e,`razorwind.config.js`))?M(e,`razorwind.config.js`):K(M(e,`razorwind.config.mts`))?M(e,`razorwind.config.mts`):K(M(e,`razorwind.config.mjs`))?M(e,`razorwind.config.mjs`):void 0,r=B({orgId:`storm-software`,appId:`razorwind`,workspaceRoot:e}),i={fsCache:r.cache},a=G(e,i),o={};if(n){let r=await a.import(a.esmResolve(n));if(r?.default){let i={};U(r.default)?i=await Promise.resolve(r.default({cwd:e,mode:t.mode??`development`})):(P(r.default)||Array.isArray(r.default))&&(i=r.default),(P(i)||Array.isArray(i))&&(o={...i,configFile:n})}}let[s,c,l]=await Promise.all([W({cwd:e,name:`razorwind`,envName:t.mode,globalRc:!0,packageJson:`razorwind`,dotenv:!0,jitiOptions:i}),W({cwd:r.config,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i}),W({cwd:Q,name:`razorwind`,envName:t.mode,dotenv:!0,jitiOptions:i})]),u=T({cwd:e,envPaths:{...r,home:Q}},t,o,P(s?.config)?{...s.config}:{},P(c?.config)?{...c.config}:{},P(l?.config)?{...l.config}:{},{componentsPath:e,plugins:[]});if(Array.isArray(u.componentsPath)){let t=u.componentsPath.filter(F).map(e=>V(e));u.componentsPath=t.length>0?t:e}else u.componentsPath=F(u.componentsPath)?V(u.componentsPath):e;return Array.isArray(u.plugins)||(u.plugins=[]),u}function _e(e){return e}const ve=x({meta:{name:`razorwind`,title:`Razorwind`,description:`A generator that uses Razorwind to generate design system code from design tokens and components.`,version:le,tags:[`razorwind`,`dtcg`]},schema:S({schema:n}),input:async e=>{let t=C();if(t.options=await $(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.`);f(t.options.plugins,ae);let n=t.options.tokens;(!n||w(n))&&(n=await h(t));let r={tokens:n??{},components:T(t.options.components??{},await Z(t)??{})};for(let e of t.options.plugins.filter(e=>e.extract))r=await e.extract(r,t.options);if(!r.tokens||w(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},generator:async e=>{let t=C(),n={};for(let r of t.options.plugins.filter(e=>e.generate)){let i=await r.generate(e,t.options);n=T(i,n)}return n}});export{l as DEFAULT_TOKEN_PATH_CANDIDATES,i as RAZORWIND_INFER_PREPROCESSOR,r as THEME_BASENAME_PATTERN,_ as TOKEN_DIRECTORY_GLOB,y as TOKEN_FILE_EXTENSIONS,v as TYPE_PATH_HINTS,a as WINDIE_PARSERS,a as razorwindParsers,_e as defineConfig,b as definePlugin,ve as generator,te as getRazorwindParserHooks,m as getRazorwindPreprocessorHooks,c as inferTypeFromPath,ne as inferValue,Z as loadComponents,h as loadTokens,p as loadTokensOrThrow,ee as nestFlatTokens,u as normalizeTokenTree,s as parseCssCustomProperties,o as razorwindInferPreprocessor,f as registerRazorwindHooks,g as registerRazorwindParsers,$ as resolveConfig,re as resolveTokensSource,d as themeKeyFromPath};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-IRvI2l2K.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.g,exports.RAZORWIND_INFER_PREPROCESSOR=e.a,exports.THEME_BASENAME_PATTERN=e._,exports.TOKEN_DIRECTORY_GLOB=e.v,exports.TOKEN_FILE_EXTENSIONS=e.y,exports.TYPE_PATH_HINTS=e.x,exports.WINDIE_PARSERS=e.b,exports.razorwindParsers=e.b,exports.getRazorwindParserHooks=e.o,exports.getRazorwindPreprocessorHooks=e.s,exports.inferTypeFromPath=e.f,exports.inferValue=e.p,exports.loadTokens=e.t,exports.loadTokensOrThrow=e.n,exports.nestFlatTokens=e.m,exports.normalizeTokenTree=e.h,exports.parseCssCustomProperties=e.d,exports.razorwindInferPreprocessor=e.c,exports.registerRazorwindHooks=e.l,exports.registerRazorwindParsers=e.u,exports.resolveTokensSource=e.r,exports.themeKeyFromPath=e.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tokens-B2J7nfiw.cjs");exports.DEFAULT_TOKEN_PATH_CANDIDATES=e.g,exports.RAZORWIND_INFER_PREPROCESSOR=e.a,exports.THEME_BASENAME_PATTERN=e._,exports.TOKEN_DIRECTORY_GLOB=e.v,exports.TOKEN_FILE_EXTENSIONS=e.y,exports.TYPE_PATH_HINTS=e.x,exports.WINDIE_PARSERS=e.b,exports.razorwindParsers=e.b,exports.getRazorwindParserHooks=e.o,exports.getRazorwindPreprocessorHooks=e.s,exports.inferTypeFromPath=e.f,exports.inferValue=e.p,exports.loadTokens=e.t,exports.loadTokensOrThrow=e.n,exports.nestFlatTokens=e.m,exports.normalizeTokenTree=e.h,exports.parseCssCustomProperties=e.d,exports.razorwindInferPreprocessor=e.c,exports.registerRazorwindHooks=e.l,exports.registerRazorwindParsers=e.u,exports.resolveTokensSource=e.r,exports.themeKeyFromPath=e.i;
@@ -1,2 +1,2 @@
1
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-yQ2P9IUB.cjs";
1
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-CH__zCuk.cjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, 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, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, themeKeyFromPath };
@@ -1,2 +1,2 @@
1
- import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-DM0TInOt.mjs";
1
+ import { C as RazorwindParserName, D as TOKEN_PARSER_NAMES, E as TOKEN_FILE_EXTENSIONS, O as TYPE_PATH_HINTS, S as DEFAULT_TOKEN_PATH_CANDIDATES, T as TOKEN_DIRECTORY_GLOB, _ as inferTypeFromPath, a as razorwindInferPreprocessor, b as normalizeTokenTree, c as LoadTokensOptions, d as loadTokensOrThrow, f as ResolveTokensPathOptions, g as InferredTokenType, h as themeKeyFromPath, i as getRazorwindPreprocessorHooks, l as LoadedTokens, m as resolveTokensSource, n as StyleDictionaryRegisterTarget, o as registerRazorwindHooks, p as ResolvedTokensSource, r as getRazorwindParserHooks, s as registerRazorwindParsers, t as RAZORWIND_INFER_PREPROCESSOR, u as loadTokens, v as inferValue, w as THEME_BASENAME_PATTERN, x as parseCssCustomProperties, y as nestFlatTokens } from "../../index-DLV7_d-V.mjs";
2
2
  export { DEFAULT_TOKEN_PATH_CANDIDATES, 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, getRazorwindParserHooks, getRazorwindPreprocessorHooks, inferTypeFromPath, inferValue, loadTokens, loadTokensOrThrow, nestFlatTokens, normalizeTokenTree, parseCssCustomProperties, razorwindInferPreprocessor, registerRazorwindHooks, registerRazorwindParsers, resolveTokensSource, themeKeyFromPath };
@@ -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,x as y,y as b}from"../../tokens-lbmSdrlF.mjs";export{o as DEFAULT_TOKEN_PATH_CANDIDATES,t as RAZORWIND_INFER_PREPROCESSOR,e as THEME_BASENAME_PATTERN,v as TOKEN_DIRECTORY_GLOB,b as TOKEN_FILE_EXTENSIONS,y as TYPE_PATH_HINTS,n as WINDIE_PARSERS,n as razorwindParsers,f as getRazorwindParserHooks,h as getRazorwindPreprocessorHooks,a as inferTypeFromPath,p as inferValue,g as loadTokens,d as loadTokensOrThrow,u as nestFlatTokens,s as normalizeTokenTree,i as parseCssCustomProperties,r as razorwindInferPreprocessor,l as registerRazorwindHooks,_ as registerRazorwindParsers,m as resolveTokensSource,c as themeKeyFromPath};
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,x as y,y as b}from"../../tokens-krMC_bzy.mjs";export{o as DEFAULT_TOKEN_PATH_CANDIDATES,t as RAZORWIND_INFER_PREPROCESSOR,e as THEME_BASENAME_PATTERN,v as TOKEN_DIRECTORY_GLOB,b as TOKEN_FILE_EXTENSIONS,y as TYPE_PATH_HINTS,n as WINDIE_PARSERS,n as razorwindParsers,f as getRazorwindParserHooks,h as getRazorwindPreprocessorHooks,a as inferTypeFromPath,p as inferValue,g as loadTokens,d as loadTokensOrThrow,u as nestFlatTokens,s as normalizeTokenTree,i as parseCssCustomProperties,r as razorwindInferPreprocessor,l as registerRazorwindHooks,_ as registerRazorwindParsers,m as resolveTokensSource,c as themeKeyFromPath};
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-BOmWwfIa.mjs";
1
+ import { l as Plugin } from "./config-CdWp8VAJ.mjs";
2
2
  //#region src/plugin.d.ts
3
3
  /**
4
4
  * Type helper for Razorwind plugins (`parsers` / `preprocessors` + `extract` / `validate` / `generate`).
@@ -46,4 +46,4 @@ declare function definePlugin<TOptions>(factory: (options: TOptions) => Plugin,
46
46
  declare function definePlugin(plugin: Plugin, overrides?: Partial<Plugin>): Plugin;
47
47
  //#endregion
48
48
  export { definePlugin as t };
49
- //# sourceMappingURL=plugin-CjyRMcl1.d.mts.map
49
+ //# sourceMappingURL=plugin-BRsuaaQR.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-BRsuaaQR.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { l as Plugin } from "./config-BcEhyxmP.cjs";
1
+ import { l as Plugin } from "./config-DBWJv6wm.cjs";
2
2
  //#region src/plugin.d.ts
3
3
  /**
4
4
  * Type helper for Razorwind plugins (`parsers` / `preprocessors` + `extract` / `validate` / `generate`).
@@ -46,4 +46,4 @@ declare function definePlugin<TOptions>(factory: (options: TOptions) => Plugin,
46
46
  declare function definePlugin(plugin: Plugin, overrides?: Partial<Plugin>): Plugin;
47
47
  //#endregion
48
48
  export { definePlugin as t };
49
- //# sourceMappingURL=plugin-Cp5QsGlu.d.cts.map
49
+ //# sourceMappingURL=plugin-C6HpaHMi.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-Cp5QsGlu.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiEgB,aAAa,UAC3B,UAAU,SAAS,aAAa,QAChC,YAAY,QAAQ,WAClB,UAAU,aAAa;iBACX,aACd,QAAQ,QACR,YAAY,QAAQ,UACnB"}
1
+ {"version":3,"file":"plugin-C6HpaHMi.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiEgB,aAAa,UAC3B,UAAU,SAAS,aAAa,QAChC,YAAY,QAAQ,WAClB,UAAU,aAAa;iBACX,aACd,QAAQ,QACR,YAAY,QAAQ,UACnB"}
package/dist/plugin.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-BcEhyxmP.cjs";
2
- import { t as definePlugin } from "./plugin-Cp5QsGlu.cjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-DBWJv6wm.cjs";
2
+ import { t as definePlugin } from "./plugin-C6HpaHMi.cjs";
3
3
  export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
package/dist/plugin.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-BOmWwfIa.mjs";
2
- import { t as definePlugin } from "./plugin-CjyRMcl1.mjs";
1
+ import { d as TokensPreprocessor, l as Plugin, u as TokensParser } from "./config-CdWp8VAJ.mjs";
2
+ import { t as definePlugin } from "./plugin-BRsuaaQR.mjs";
3
3
  export { type Plugin, type TokensParser, type TokensPreprocessor, definePlugin };
@@ -0,0 +1 @@
1
+ const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils/index.cjs");let n=require("style-dictionary");n=e.t(n,1);let r=require("@stryke/fs/exists"),i=require("@stryke/fs/is-file"),a=require("@stryke/path/join"),o=require("@stryke/type-checks/is-set-string"),s=require("node:path"),c=require("@stryke/type-checks/is-function"),l=require("@stryke/fs/resolve"),u=require("fast-glob");u=e.t(u,1);let d=require("json5");d=e.t(d,1);let ee=require("smol-toml"),f=require("yaml");const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],h=m.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${h}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},te=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ne=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,re=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,ae=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,se=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,b=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,x=/^\{[^{}]+\}$/,S={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},C=new Set([`px`,`rem`]);function w(e){return Math.min(1,Math.max(0,e))}function T(e,t=100){let n=e.trim();if(n.endsWith(`%`))return w(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return w(r>1?r/255:r)}function ce(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function le(e){let t=ce(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function ue(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function E(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function D(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function O(e,n=[]){let r=D(n);if(typeof e==`string`){let t=e.trim();if(x.test(t))return{value:t,type:r};let i=t.match(b);if(i?.[1])return{value:ue(i[1]),type:r};if(te.test(t))return{value:le(t),type:`color`};let a=t.match(ne);if(a){let e=[T(a[1]),T(a[2]),T(a[3])],t=a[4]?a[4].endsWith(`%`)?w(Number.parseFloat(a[4])/100):w(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(re);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?w(Number.parseFloat(o[4])/100):w(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(ie);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?w(Number.parseFloat(s[4])/100):w(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(ae);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return C.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(oe);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(se);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=S[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t.isObject(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:C.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function de(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=O(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function k(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>k(e,[...n,String(t)]));if(!t.isObject(e))return e;if(E(e))return de(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=k(i,[...n,t])}if(!(`$type`in r)){let e=D(n);e&&n.length>0&&(r.$type=e)}return r}function A(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.isObject(i)?E(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=O(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.isObject(l)&&!E(l)?l.DEFAULT=c:a[o]=c}return k(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function j(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return A(t)}const M=`razorwind-infer`;function N(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return k(e)}function P(e){try{return N(d.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function F(e){try{return N((0,f.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function I(e){try{return N((0,ee.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const L=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>P(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>k(j(e))}];function R(){return Object.fromEntries(L.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function z(e){return k(e)}function B(){return{[M]:z}}function V(e=[],t=n.default){for(let e of L)t.registerParser(e);t.registerPreprocessor({name:M,preprocessor:z});let r=0,i=0;for(let n of e){for(let e of n.parsers??[])t.registerParser({name:e.name??`${n.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of n.preprocessors??[])t.registerPreprocessor((0,c.isFunction)(e)?{name:`${n.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${n.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=V;function H(e,t){return(0,s.isAbsolute)(t)?t:(0,s.resolve)(e,t)}function U(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function W(e){return m.includes(U(e))}function G(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function K(e){return(0,a.joinPaths)(e,_)}function me(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}function he(e,t){let n=H(e,t);if(!(0,r.existsSync)(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return(0,i.isDirectory)(n)?{resolvedPath:n,source:[K(n)],isStyleDictionaryConfig:!1}:G(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:n,fallbackPaths:a=[]}=e,o=me(n);if(o.length>0){let e=o.map(e=>he(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let n=H(t,e);if((0,r.existsSync)(n)){if((0,i.isDirectory)(n))return{resolvedPath:n,source:[K(n)],origin:`default`};if(G(n))return{resolvedPath:n,source:[],origin:`default`};if(W(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of a){if(!e)continue;let n=H(t,e);if(!(!(0,r.existsSync)(n)||(0,i.isDirectory)(n))&&(W(n)||U(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function ge(e){V(e.plugins,n.default)}function Y(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await(0,l.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function X(e,t){ge(e);let r=new n.default({...t,parsers:[...p,...t.parsers??[]],preprocessors:[M,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...R(),...t.hooks?.parsers},preprocessors:{...B(),...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Z(e,t){return t.length===0?{}:(await X(e,{source:t})).tokens}async function Q(e){return(await(0,u.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ve(e,t){let n=await Q(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=J(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Z(e,t);let a={};if(i.length>0){let t=await Z(e,i);Y(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Z(e,n);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&(0,r.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,s.basename)(t.resolvedPath))?(e.sd=await X(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ve(e.options,t.source):Z(e.options,t.source)}async function ye(e){let t=await $(e);if(Y(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(0,o.isSetString)(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return m}});
@@ -0,0 +1,2 @@
1
+ import{isObject as e}from"./utils/index.mjs";import t from"style-dictionary";import{existsSync as n}from"@stryke/fs/exists";import{isDirectory as r}from"@stryke/fs/is-file";import{joinPaths as i}from"@stryke/path/join";import{isSetString as a}from"@stryke/type-checks/is-set-string";import{basename as o,isAbsolute as s,resolve as c}from"node:path";import{isFunction as l}from"@stryke/type-checks/is-function";import{importModule as u}from"@stryke/fs/resolve";import d from"fast-glob";import ee from"json5";import{parse as te}from"smol-toml";import{parse as f}from"yaml";const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],ne=m.join(`,`),h=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],g=`**/*.{${ne}}`,_=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,v={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},re=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ie=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ae=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,oe=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,y=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,b=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,se=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ce=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,le=/^\{[^{}]+\}$/,ue={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},x=new Set([`px`,`rem`]);function S(e){return Math.min(1,Math.max(0,e))}function C(e,t=100){let n=e.trim();if(n.endsWith(`%`))return S(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return S(r>1?r/255:r)}function w(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function T(e){let t=w(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function E(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function D(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function O(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=v[n];if(r)return r}}function k(t,n=[]){let r=O(n);if(typeof t==`string`){let e=t.trim();if(le.test(e))return{value:e,type:r};let i=e.match(ce);if(i?.[1])return{value:E(i[1]),type:r};if(re.test(e))return{value:T(e),type:`color`};let a=e.match(ie);if(a){let e=[C(a[1]),C(a[2]),C(a[3])],t=a[4]?a[4].endsWith(`%`)?S(Number.parseFloat(a[4])/100):S(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=e.match(ae);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?S(Number.parseFloat(o[4])/100):S(Number.parseFloat(o[4]))}:{}},type:`color`};let s=e.match(oe);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?S(Number.parseFloat(s[4])/100):S(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=e.match(y);if(c){let t=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return x.has(t)?{value:{value:n,unit:t},type:`dimension`}:{value:e,type:r===`dimension`?void 0:r}}let l=e.match(b);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=e.match(se);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=ue[e.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?e.includes(`,`)?{value:e.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:e.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!e.startsWith(`{`)?{value:e,type:void 0}:{value:e,type:r}:{value:d,type:`fontWeight`}}if(typeof t==`number`)return r===`fontWeight`?{value:t,type:`fontWeight`}:r===`duration`?{value:{value:t,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:t,unit:`px`},type:`dimension`}:{value:t,type:r??`number`};if(Array.isArray(t))return t.length===4&&t.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:t,type:`cubicBezier`}:t.every(e=>typeof e==`string`)?{value:t,type:r??`fontFamily`}:{value:t,type:r};if(e(t)){if(`colorSpace`in t&&`components`in t)return{value:t,type:`color`};if(`value`in t&&`unit`in t){let e=String(t.unit).toLowerCase();return e===`ms`||e===`s`?{value:t,type:`duration`}:x.has(e)?{value:t,type:`dimension`}:{value:t,type:r}}}return{value:t,type:r}}function de(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=k(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function A(t,n=[]){if(Array.isArray(t))return t.map((e,t)=>A(e,[...n,String(t)]));if(!e(t))return t;if(D(t))return de(t,n);let r={};for(let[e,i]of Object.entries(t)){if(e.startsWith(`$`)){r[e]=i;continue}r[e]=A(i,[...n,e])}if(!(`$type`in r)){let e=O(n);e&&n.length>0&&(r.$type=e)}return r}function j(t){let n={};for(let[r,i]of Object.entries(t)){let t=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(t.length===0)continue;let a=n;for(let n=0;n<t.length-1;n++){let r=t[n],i=a[r];e(i)?D(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=t.at(-1),s=k(i,t),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];e(l)&&!D(l)?l.DEFAULT=c:a[o]=c}return A(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function M(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return j(t)}const N=`razorwind-infer`;function P(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return A(e)}function F(e){try{return P(ee.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function I(e){try{return P(f(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function L(e){try{return P(te(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const R=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>F(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>L(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>A(M(e))}];function z(){return Object.fromEntries(R.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function B(e){return A(e)}function V(){return{[N]:B}}function H(e=[],n=t){for(let e of R)n.registerParser(e);n.registerPreprocessor({name:N,preprocessor:B});let r=0,i=0;for(let t of e){for(let e of t.parsers??[])n.registerParser({name:e.name??`${t.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of t.preprocessors??[])n.registerPreprocessor(l(e)?{name:`${t.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${t.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=H;function U(e,t){return s(t)?t:c(e,t)}function W(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function G(e){return m.includes(W(e))}function K(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function q(e){return i(e,g)}function me(e){return Array.isArray(e)?e.filter(a):a(e)?[e]:[]}function he(e,t){let i=U(e,t);if(!n(i))throw Error(`tokensPath "${t}" does not exist (resolved: ${i}).`);return r(i)?{resolvedPath:i,source:[q(i)],isStyleDictionaryConfig:!1}:K(i)?{resolvedPath:i,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}function J(e){let{cwd:t,tokensPath:i,fallbackPaths:a=[]}=e,o=me(i);if(o.length>0){let e=o.map(e=>he(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of h){let i=U(t,e);if(n(i)){if(r(i))return{resolvedPath:i,source:[q(i)],origin:`default`};if(K(i))return{resolvedPath:i,source:[],origin:`default`};if(G(i))return{resolvedPath:i,source:[i],origin:`default`}}}for(let e of a){if(!e)continue;let i=U(t,e);if(!(!n(i)||r(i))&&(G(i)||W(i)===`css`))return{resolvedPath:i,source:[i],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(_)?.[1]?.toLowerCase()}function ge(e){H(e.plugins,t)}function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await u(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,n){ge(e);let r=new t({...n,parsers:[...p,...n.parsers??[]],preprocessors:[N,...n.preprocessors??[]],hooks:{...n.hooks,parsers:{...z(),...n.hooks?.parsers},preprocessors:{...V(),...n.hooks?.preprocessors}},usesDtcg:n.usesDtcg??!0,platforms:n.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function ve(e){return(await d(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ye(e,t){let n=await ve(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,n);return a}async function $(e){let t=J(e.options);return t.resolvedPath&&n(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(o(t.resolvedPath))?(e.sd=await Z(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ye(e.options,t.source):Q(e.options,t.source)}async function be(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:a(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}export{_,N as a,p as b,B as c,M as d,O as f,h as g,A as h,Y as i,H as l,j as m,be as n,z as o,k as p,J as r,V as s,$ as t,pe as u,g as v,v as x,m as y};
2
+ //# sourceMappingURL=tokens-krMC_bzy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-krMC_bzy.mjs","names":[],"sources":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/core",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "private": false,
5
5
  "description": "💨 Razorwind is a unified set of tools that make creating design systems a breeze.",
6
6
  "keywords": ["razorwind", "storm-software"],
@@ -122,13 +122,13 @@
122
122
  "@power-plant/dtcg-schema": "^0.0.1",
123
123
  "@power-plant/schema": "^0.0.65",
124
124
  "@power-plant/utils": "^0.0.53",
125
- "@stryke/env": "^0.20.117",
126
- "@stryke/fs": "^0.33.100",
127
- "@stryke/path": "^0.29.26",
128
- "@stryke/string-format": "^0.17.41",
129
- "@stryke/type-checks": "^0.6.32",
130
- "@stryke/types": "^0.12.27",
131
- "@stryke/url": "^0.4.50",
125
+ "@stryke/env": "^0.20.119",
126
+ "@stryke/fs": "^0.33.102",
127
+ "@stryke/path": "^0.29.28",
128
+ "@stryke/string-format": "^0.17.43",
129
+ "@stryke/type-checks": "^0.6.34",
130
+ "@stryke/types": "^0.12.29",
131
+ "@stryke/url": "^0.4.52",
132
132
  "c12": "^3.3.4",
133
133
  "defu": "^6.1.7",
134
134
  "fast-glob": "^3.3.3",
@@ -145,5 +145,5 @@
145
145
  "typescript": "^6.0.3"
146
146
  },
147
147
  "publishConfig": { "access": "public" },
148
- "gitHead": "2c23fda28cfa954a894442bc9c08de10a2e5e799"
148
+ "gitHead": "4cac94d47388e7e4d0739cde32600845340eaba2"
149
149
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-BOmWwfIa.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-BcEhyxmP.d.cts","names":[],"sources":["../src/types/plugin.ts","../src/types/config.ts"],"mappings":";;;;;;;;;;;;;;;UAgCiB;EACf;EACA,SAAS;EACT,SAAS,qBAAqB;;;;;;;;;KAUpB;EAEN;EACA,eAAe,YAAY,uBAAuB;MAElD,YAAY,uBAAuB;;;;;;;;;UAUxB;;;;;;;EAOf;;;;;;EAOA,UAAU;;;;;;EAOV,gBAAgB;;;;;;;;EAShB,WAAW,MAAM,QAAQ,QAAQ,WAAW,aAAa;;;;;;;;EASzD,YACE,MAAM,QACN,QAAQ,WACL,aAAa,eAAe;;;;;;;;EASjC,YAAY,MAAM,QAAQ,QAAQ,WAAW;;;;UCvF9B;;;;;;EAMf;;;;EAKA;;;;;;;;EASA;;;;;;EAOA;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BA;;UAGe,mBAAmB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,SAAS,eAAe;EACjC,aAAa;EACb,UAAU;;UAGK;EACf;EACA;;KAGU,sBAAsB,QAAQ,eAAe;KAC7C,uBACV,QAAQ,qBACL,QAAQ,aAAa;KACd,gBACV,QAAQ,qBACL,aAAa,eAAe,QAAQ,aAAa;KAC1C,mBACR,aACA,eACA,QAAQ,aAAa,gBACrB,qBACA,sBACA;KAEQ,SAAS,aAAa;EAChC;EACA,UAAU;IACR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-CjyRMcl1.d.mts","names":[],"sources":["../src/plugin.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils/index.cjs");let n=require("style-dictionary");n=e.t(n,1);let r=require("@stryke/fs/exists"),i=require("@stryke/fs/is-file"),a=require("@stryke/path/join"),o=require("@stryke/type-checks/is-set-string"),s=require("node:path"),c=require("@stryke/type-checks/is-function"),l=require("@stryke/fs/resolve"),u=require("fast-glob");u=e.t(u,1);let d=require("json5");d=e.t(d,1);let ee=require("smol-toml"),f=require("yaml");const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],h=m.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${h}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},te=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ne=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,re=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,ae=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,se=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,b=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,x=/^\{[^{}]+\}$/,S={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},C=new Set([`px`,`rem`]);function w(e){return Math.min(1,Math.max(0,e))}function T(e,t=100){let n=e.trim();if(n.endsWith(`%`))return w(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return w(r>1?r/255:r)}function ce(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function le(e){let t=ce(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function ue(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function E(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function D(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function O(e,n=[]){let r=D(n);if(typeof e==`string`){let t=e.trim();if(x.test(t))return{value:t,type:r};let i=t.match(b);if(i?.[1])return{value:ue(i[1]),type:r};if(te.test(t))return{value:le(t),type:`color`};let a=t.match(ne);if(a){let e=[T(a[1]),T(a[2]),T(a[3])],t=a[4]?a[4].endsWith(`%`)?w(Number.parseFloat(a[4])/100):w(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(re);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?w(Number.parseFloat(o[4])/100):w(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(ie);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?w(Number.parseFloat(s[4])/100):w(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(ae);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return C.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(oe);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(se);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=S[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t.isObject(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:C.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function de(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=O(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function k(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>k(e,[...n,String(t)]));if(!t.isObject(e))return e;if(E(e))return de(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=k(i,[...n,t])}if(!(`$type`in r)){let e=D(n);e&&n.length>0&&(r.$type=e)}return r}function A(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.isObject(i)?E(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=O(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.isObject(l)&&!E(l)?l.DEFAULT=c:a[o]=c}return k(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function j(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return A(t)}const M=`razorwind-infer`;function N(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return k(e)}function P(e){try{return N(d.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function F(e){try{return N((0,f.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function I(e){try{return N((0,ee.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const L=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>P(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>k(j(e))}];function R(){return Object.fromEntries(L.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function z(e){return k(e)}function B(){return{[M]:z}}function V(e=[],t=n.default){for(let e of L)t.registerParser(e);t.registerPreprocessor({name:M,preprocessor:z});let r=0,i=0;for(let n of e){for(let e of n.parsers??[])t.registerParser({name:e.name??`${n.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of n.preprocessors??[])t.registerPreprocessor((0,c.isFunction)(e)?{name:`${n.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${n.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=V;function H(e,t){return(0,s.isAbsolute)(t)?t:(0,s.resolve)(e,t)}function U(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function W(e){return m.includes(U(e))}function G(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function K(e){return(0,a.joinPaths)(e,_)}function me(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}function he(e,t){let n=H(e,t);if(!(0,r.existsSync)(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return(0,i.isDirectory)(n)?{resolvedPath:n,source:[K(n)],isStyleDictionaryConfig:!1}:G(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:n,fallbackPaths:a=[]}=e,o=me(n);if(o.length>0){let e=o.map(e=>he(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let n=H(t,e);if((0,r.existsSync)(n)){if((0,i.isDirectory)(n))return{resolvedPath:n,source:[K(n)],origin:`default`};if(G(n))return{resolvedPath:n,source:[],origin:`default`};if(W(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of a){if(!e)continue;let n=H(t,e);if(!(!(0,r.existsSync)(n)||(0,i.isDirectory)(n))&&(W(n)||U(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function ge(e){V(e.plugins,n.default)}function Y(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await(0,l.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function X(e,t){ge(e);let r=new n.default({...t,parsers:[...p,...t.parsers??[]],preprocessors:[M,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...R(),...t.hooks?.parsers},preprocessors:{...B(),...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}});return await r.hasInitialized,r}async function Z(e,t){return t.length===0?{}:(await X(e,{source:t})).tokens}async function Q(e){return(await(0,u.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ve(e,t){let n=await Q(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=J(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Z(e,t);let a={};if(i.length>0){let t=await Z(e,i);Y(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Z(e,n);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&(0,r.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,s.basename)(t.resolvedPath))?(e.sd=await X(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ve(e.options,t.source):Z(e.options,t.source)}async function ye(e){let t=await $(e);if(Y(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(0,o.isSetString)(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return m}});
@@ -1,2 +0,0 @@
1
- import{isObject as e}from"./utils/index.mjs";import t from"style-dictionary";import{existsSync as n}from"@stryke/fs/exists";import{isDirectory as r}from"@stryke/fs/is-file";import{joinPaths as i}from"@stryke/path/join";import{isSetString as a}from"@stryke/type-checks/is-set-string";import{basename as o,isAbsolute as s,resolve as c}from"node:path";import{isFunction as l}from"@stryke/type-checks/is-function";import{importModule as u}from"@stryke/fs/resolve";import d from"fast-glob";import ee from"json5";import{parse as te}from"smol-toml";import{parse as f}from"yaml";const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],ne=m.join(`,`),h=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],g=`**/*.{${ne}}`,_=/^(light|dark|dim|dimmed|high-contrast|hc|default|base|theme)([._-].+)?$/i,v={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},re=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ie=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ae=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,oe=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,y=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,b=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,se=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ce=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,le=/^\{[^{}]+\}$/,ue={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},x=new Set([`px`,`rem`]);function S(e){return Math.min(1,Math.max(0,e))}function C(e,t=100){let n=e.trim();if(n.endsWith(`%`))return S(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return S(r>1?r/255:r)}function w(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function T(e){let t=w(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function E(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function D(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function O(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=v[n];if(r)return r}}function k(t,n=[]){let r=O(n);if(typeof t==`string`){let e=t.trim();if(le.test(e))return{value:e,type:r};let i=e.match(ce);if(i?.[1])return{value:E(i[1]),type:r};if(re.test(e))return{value:T(e),type:`color`};let a=e.match(ie);if(a){let e=[C(a[1]),C(a[2]),C(a[3])],t=a[4]?a[4].endsWith(`%`)?S(Number.parseFloat(a[4])/100):S(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=e.match(ae);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?S(Number.parseFloat(o[4])/100):S(Number.parseFloat(o[4]))}:{}},type:`color`};let s=e.match(oe);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?S(Number.parseFloat(s[4])/100):S(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=e.match(y);if(c){let t=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return x.has(t)?{value:{value:n,unit:t},type:`dimension`}:{value:e,type:r===`dimension`?void 0:r}}let l=e.match(b);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=e.match(se);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=ue[e.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?e.includes(`,`)?{value:e.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:e.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!e.startsWith(`{`)?{value:e,type:void 0}:{value:e,type:r}:{value:d,type:`fontWeight`}}if(typeof t==`number`)return r===`fontWeight`?{value:t,type:`fontWeight`}:r===`duration`?{value:{value:t,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:t,unit:`px`},type:`dimension`}:{value:t,type:r??`number`};if(Array.isArray(t))return t.length===4&&t.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:t,type:`cubicBezier`}:t.every(e=>typeof e==`string`)?{value:t,type:r??`fontFamily`}:{value:t,type:r};if(e(t)){if(`colorSpace`in t&&`components`in t)return{value:t,type:`color`};if(`value`in t&&`unit`in t){let e=String(t.unit).toLowerCase();return e===`ms`||e===`s`?{value:t,type:`duration`}:x.has(e)?{value:t,type:`dimension`}:{value:t,type:r}}}return{value:t,type:r}}function de(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=k(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function A(t,n=[]){if(Array.isArray(t))return t.map((e,t)=>A(e,[...n,String(t)]));if(!e(t))return t;if(D(t))return de(t,n);let r={};for(let[e,i]of Object.entries(t)){if(e.startsWith(`$`)){r[e]=i;continue}r[e]=A(i,[...n,e])}if(!(`$type`in r)){let e=O(n);e&&n.length>0&&(r.$type=e)}return r}function j(t){let n={};for(let[r,i]of Object.entries(t)){let t=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(t.length===0)continue;let a=n;for(let n=0;n<t.length-1;n++){let r=t[n],i=a[r];e(i)?D(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=t.at(-1),s=k(i,t),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];e(l)&&!D(l)?l.DEFAULT=c:a[o]=c}return A(n)}const fe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function M(e){let t={},n=e.replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(fe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return j(t)}const N=`razorwind-infer`;function P(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return A(e)}function F(e){try{return P(ee.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function I(e){try{return P(f(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function L(e){try{return P(te(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const R=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>F(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>L(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>A(M(e))}];function z(){return Object.fromEntries(R.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function B(e){return A(e)}function V(){return{[N]:B}}function H(e=[],n=t){for(let e of R)n.registerParser(e);n.registerPreprocessor({name:N,preprocessor:B});let r=0,i=0;for(let t of e){for(let e of t.parsers??[])n.registerParser({name:e.name??`${t.name}-parser-${r}`,pattern:e.pattern,parser:({contents:t})=>e.parser(t)}),r++;for(let e of t.preprocessors??[])n.registerPreprocessor(l(e)?{name:`${t.name}-preprocessor-${i}`,preprocessor:e}:{name:e.name??`${t.name}-preprocessor-${i}`,preprocessor:e.preprocessor}),i++}}const pe=H;function U(e,t){return s(t)?t:c(e,t)}function W(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function G(e){return m.includes(W(e))}function K(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function q(e){return i(e,g)}function me(e){return Array.isArray(e)?e.filter(a):a(e)?[e]:[]}function he(e,t){let i=U(e,t);if(!n(i))throw Error(`tokensPath "${t}" does not exist (resolved: ${i}).`);return r(i)?{resolvedPath:i,source:[q(i)],isStyleDictionaryConfig:!1}:K(i)?{resolvedPath:i,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:i,source:[i],isStyleDictionaryConfig:!1}}function J(e){let{cwd:t,tokensPath:i,fallbackPaths:a=[]}=e,o=me(i);if(o.length>0){let e=o.map(e=>he(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of h){let i=U(t,e);if(n(i)){if(r(i))return{resolvedPath:i,source:[q(i)],origin:`default`};if(K(i))return{resolvedPath:i,source:[],origin:`default`};if(G(i))return{resolvedPath:i,source:[i],origin:`default`}}}for(let e of a){if(!e)continue;let i=U(t,e);if(!(!n(i)||r(i))&&(G(i)||W(i)===`css`))return{resolvedPath:i,source:[i],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(_)?.[1]?.toLowerCase()}function ge(e){H(e.plugins,t)}function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function _e(e){let t=await u(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,n){ge(e);let r=new t({...n,parsers:[...p,...n.parsers??[]],preprocessors:[N,...n.preprocessors??[]],hooks:{...n.hooks,parsers:{...z(),...n.hooks?.parsers},preprocessors:{...V(),...n.hooks?.preprocessors}},usesDtcg:n.usesDtcg??!0,platforms:n.platforms??{}});return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function ve(e){return(await d(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function ye(e,t){let n=await ve(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,n);return a}async function $(e){let t=J(e.options);return t.resolvedPath&&n(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(o(t.resolvedPath))?(e.sd=await Z(e.options,await _e(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?ye(e.options,t.source):Q(e.options,t.source)}async function be(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:a(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}export{_,N as a,p as b,B as c,M as d,O as f,h as g,A as h,Y as i,H as l,j as m,be as n,z as o,k as p,J as r,V as s,$ as t,pe as u,g as v,v as x,m as y};
2
- //# sourceMappingURL=tokens-lbmSdrlF.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens-lbmSdrlF.mjs","names":[],"sources":[],"mappings":""}