@designid/tokens 1.1.0 → 1.1.2

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 (3) hide show
  1. package/bin/build.js +208 -186
  2. package/bin/watch.js +420 -11
  3. package/package.json +1 -1
package/bin/build.js CHANGED
@@ -1,39 +1,61 @@
1
1
  #!/usr/bin/env node
2
- var A2=Object.defineProperty;var W0=($,Y)=>{for(var X in Y)A2($,X,{get:Y[X],enumerable:!0,configurable:!0,set:(Z)=>Y[X]=()=>Z})};var F=($,Y)=>()=>($&&(Y=$($=0)),Y);var H0={};W0(H0,{transformColorValueAsync:()=>L2,transformColorValue:()=>x,transformColorToken:()=>O$,setAlpha:()=>q$,isColor:()=>b,initializeColorspace:()=>E2});import Q$ from"colorjs.io";async function K0(){if(Z$===null){let{colorspace:$}=await c();Z$=$||"hex"}return Z$}function B2(){return Z$||"hex"}async function E2(){await K0()}function q$($,Y){let X=new Q$($);if(Y||Y===0)X.alpha=Y/100;return x(X)}function G0($,Y){if(!$)return $;if(Y&&Y.type!=="color")return $;if(typeof $==="string")$=new Q$($);if(typeof $?.to!=="function")return $;let X=B2();try{switch(X){case"hex":return $.to("srgb").toString({format:"hex"});case"rgb":case"srgb":return $.to("srgb").toString();case"srgb-linear":return $.to("srgb-linear").toString();case"display-p3":case"p3":return $.to("p3").toString();case"a98rgb":case"a98-rgb":return $.to("a98rgb").toString();case"prophoto":case"prophoto-rgb":return $.to("prophoto").toString();case"rec2020":case"rec-2020":return $.to("rec2020").toString();case"xyz":case"xyz-d65":return $.to("xyz-d65").toString();case"xyz-d50":return $.to("xyz-d50").toString();case"lab":case"cielab":return $.to("lab").toString();case"lab-d65":return $.to("lab-d65").toString();case"oklab":return $.to("oklab").toString();case"lch":case"cielch":return $.to("lch").toString();case"oklch":return $.to("oklch").toString();case"hsl":return $.to("hsl").toString();case"hsv":case"hsb":return $.to("hsv").toString();case"hwb":return $.to("hwb").toString();case"luv":return $.to("luv").toString();case"lchuv":return $.to("lchuv").toString();case"jzazbz":return $.to("jzazbz").toString();case"jzczhz":return $.to("jzczhz").toString();case"ictcp":return $.to("ictcp").toString();default:return $.to(X).toString()}}catch(Z){return console.warn(`Unsupported colorspace '${X}', falling back to hex. Error:`,Z),$.to("srgb").toString({format:"hex"})}}async function L2($,Y){return await K0(),G0($,Y)}function x($,Y){return G0($,Y)}function O$($,Y,X,Z){try{if($=v(Y,Z),Y.$type==="color"&&Y.original?.$value&&Y.original?.$value!==Y.$value){if(p(Y.original.$value))$=k(Y.original.$value,X,Z,Y);else $=T(Y);if(!l(Z)&&Y.original?.$extensions?.mode?.[Z])$=Y.original.$extensions.mode[Z]}if(p($))$=k($,X,Z,Y);return x($)}catch{return $=v(Y,Z),x($)}}function b($){try{if($)return new Q$($),!0;return!1}catch{return!1}}var Z$=null;var s=F(()=>{S()});var I$=F(()=>{S()});function T($,Y){let{isIncludedOriginalValue:X=!1,fallbackValue:Z=null}=Y??{};if(X)return $?.original?.$value??$?.$value??$.value??Z;return $?.$value??$?.value??Z}function v($,Y){return Y&&($?.$extensions?.mode?.[Y]||typeof $?.$extensions?.mode?.[Y]==="number")?$.$extensions.mode[Y]:T($,{fallbackValue:$?.original?.$value??$?.$value??$?.value})??null}function z0($,Y){return Y.allTokens.find((X)=>X.path.join(".")===$)??null}function k($,Y,X,Z){let q=p($),U=null,K=$??T(Z),W=null;if(q){if(U=z0(q,Y),X&&U&&U?.$extensions?.mode?.[X]!==U.original?.$extensions?.mode?.[X])K=U.original?.$extensions?.mode?.[X],W=U.original?.$extensions?.alpha??W;else if(U?.$extensions?.mode?.[X])K=U.$extensions.mode[X],W=U.$extensions?.alpha??W;else if(U?.original?.$value)K=U?.original.$value??U?.$value,W=U?.original.$extensions?.alpha??W}if(K!==$&&p(K))K=k(K,Y,X,Z);if(K&&(W||Z?.$extensions?.alpha||W===0||Z?.original?.$extensions?.alpha===0))W=W??Z?.$extensions?.alpha??null,K=q$(K,W);return K=x(K,U??Z),K??$}function p($){if(typeof $!=="string")return null;let Y=/{[^}]+}/g,X=$.match(Y);if(X?.length!==1)return null;return X[0].slice(1,-1)}var N$=F(()=>{S()});import{spawnSync as Q2}from"child_process";import{existsSync as y,mkdirSync as O2,readFileSync as I2,unlinkSync as A0,writeFileSync as E4}from"fs";import{resolve as _4,join as P,basename as w4,normalize as Q4,relative as O4,sep as I4,dirname as B0}from"path";async function J2(){return`${(await g$()).$metaData?.tokenNamespace||"tokens"}.icons`}async function E0($){let X=P($,"designid.config.ts");if(y(P($,"designid.config.mjs")))A0(P($,"designid.config.mjs"));let Z=P($,"designid.config.js");if(y(Z))A0(Z);if(y(X)){let q=Q2("bun",["build",X,"--outfile ./designid.config.mjs","--minify","--target","node","--packages","external","--no-bundle"],{stdio:"inherit",cwd:$,shell:!0});if(q.status!==0)console.error("Failed to compile designid.config.mjs with bun."),process.exit(q.status??1);if(q.status===0)return new Promise((U)=>U(!0))}}async function t($="json"){let{tokenNamespace:Y}=await c();return`${Y}-design-system.tokens.svg${$==="d.ts"||$==="js"?".config":""}.${$}`}function a($){if(!y($))O2($,{recursive:!0})}async function V$($,Y=!1){let X=W$(),Z;if(X.endsWith(".json"))Z=JSON.parse(I2(X,"utf8").trim()??"{}");else if(X.endsWith(".ts"))if(typeof globalThis.Bun<"u"){if(Z=await import(X),Z.default)Z=Z.default}else{$=$??B0(X)+"/";let U=b$($);if(U&&(Y||!y(U)))await E0($);if(Z=await import(U),Z.default)Z=Z.default}else{$=$??B0(X)+"/";let q=b$($);if(q&&(Y||!y(q)))await E0($);if(Z=await import(q),Z.default)Z=Z.default}return Z}async function U$($=!1){let{baseDir:Y}=await n(),X=process.cwd(),q=P(X,Y),{buildDir:U,distDir:K}=await n();if($)try{a(P(q,U)),a(P(q,K))}catch(W){console.error("Error creating directories:",W)}return q}function b$($){return $?P($,"designid.config.mjs"):P(process.cwd(),"designid.config.mjs")}function W$(){let $=process.argv.find((W)=>W.startsWith("--config=")),[,Y]=$?.split("=")??[];if(Y)return Y;let X=process.cwd(),Z=b$(X),q=P(X,"designid.config.ts"),U=y(Z),K=y(q);if(U)return Z;else if(K)return q;throw console.error("Config file not found"),Error("Config file not found")}async function n($=!1){let Y=W$(),Z=(await V$(process.cwd(),$)).$paths;if(!Z)throw console.error("Project paths not found"),Error("Project paths not found");return{configFile:Y,...Z}}async function c(){let Y=(await V$(process.cwd())).$metaData;if(!Y)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!Y.colorspace)Y.colorspace="hex";if(!Y.fontNamespace)Y.fontNamespace=`${Y.dsNamespace}.font`;if(!Y?.tokens?.css?.mediaQuery?.match)Y={...Y??{},tokens:{...Y.tokens??{},css:{...Y.tokens?.css??{},mediaQuery:{...Y.tokens?.css?.mediaQuery??{},match:"[data-theme]"}}}};if(Y?.tokens?.css?.mediaQuery&&typeof Y.tokens.css.mediaQuery.separateThemeFiles!=="boolean")Y.tokens.css.mediaQuery.separateThemeFiles=!1;if(!Y.dsNamespace)Y.dsNamespace=Y.tokenNamespace;let X=await J2();return{...Y,icons:Y.icons??{objectPath:X},dsNamespace:Y.dsNamespace}}async function g$(){if(!x$){let $=W$();x$=await V$(process.cwd()),_0=$}return x$}async function T$(){if(!j$){let Y=(await g$()).$metaData;if(!Y)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!Y.dsNamespace)Y.dsNamespace=Y.tokenNamespace;let Z=`${Y.tokenNamespace||"tokens"}.icons`;j$={...Y,icons:Y.icons??{objectPath:Z},dsNamespace:Y.dsNamespace}}return j$}async function w0($=!1){if(!S$){let X=(await g$()).$paths;if(!X)throw console.error("Project paths not found"),Error("Project paths not found");S$={configFile:_0,...X}}return S$}async function m(){if(!P$){let{distDir:$,assets:Y,buildDir:X}=await w0(!0),{fontNamespace:Z,tokenNamespace:q,icons:U}=await T$(),K=await U$(),W=process.cwd(),H=P(W,$,"css");P$={distDir:$,assets:Y,fontNamespace:Z,__dirname:K,workspaceRoot:W,distCSSPath:H,buildDir:X,tokenNamespace:q,icons:U}}return P$}async function y$(){if(!D$){let{icons:$}=await T$();D$=$}return D$}var x$=null,_0=null,j$=null,S$=null,P$=null,D$=null;var K$=F(()=>{S()});function l($){return $===f$}var f$="light";var Q0=F(()=>{K$()});async function h$($){let Y=await y$();$=$.replace(/<\?xml[^>]*\?>\s*/,""),$=$.replace(/<!DOCTYPE [^>]*>\s*/,"");let X=$.match(/<svg[^>]*>/),Z=$.match(/viewBox="([\d\s.]+)"/),[q]=X??[],U=q;if(q&&U){let W=Y?.style?.fill,H=/id="[^"]*"/.test(q);if(!U.includes("xmlns="))U=U.replace("<svg",'<svg xmlns="http://www.w3.org/2000/svg"');if(!H&&W)U=U.replace("<svg",`<svg id="${W}"`);else if(H&&W)U=U.replace(/id="[^"]*"/,`id="${W}"`)}if(Z&&q&&U){let W=Z[1].split(" ").map(Number),H=W[2],G=W[3],z=Y?.size??24,A=H/G*z;$=$.replace(/height="[\d.]+px?"/,`height="${z}px"`),$=$.replace(/width="[\d.]+px?"/,`width="${A}px"`);let B=/width="[\d.]+(px)?"/.test(q),E=/height="[\d.]+(px)?"/.test(q);if(!B)U=U.replace("<svg",`<svg width="${A}px"`);else U=U.replace(/width="[\d.]+(px)?"/,`width="${A}px"`);if(!E)U=U.replace("<svg",`<svg height="${z}px"`);else U=U.replace(/height="[\d.]+(px)?"/,`height="${z}px"`);$=$.replace(q,U)}if(!$?.match(/data-style="([^"]*)"/)&&Y?.style?.type)$=$.replace("<svg ",`<svg data-style="${Y.style.type}" `);return $}var O0=F(()=>{S()});var M0=F(()=>{K$();S()});import{copyFileSync as F2,existsSync as x2,mkdirSync as N0,statSync as j2}from"fs";import{writeFile as S2}from"fs/promises";import{join as j,relative as P2}from"path";async function v$($,Y){try{let{assets:X,workspaceRoot:Z,distDir:q,__dirname:U}=await m(),K=X?.fonts?.sourceDir?j(U,X.fonts.sourceDir):null,W=j("assets","fonts"),H=j(Z,q),G=X?.fonts?.distDir?j(H,X.fonts.distDir.replace(/^\.\//,"")):j(H,W);if(!$||!K)return;let z="",A=Y&&X?.fonts?.distDir?j(Y,X.fonts.distDir.replace(/^\.\//,"")):G;for(let _ of $){if(!_)continue;if(z+=`/**** ${_.family} ${_.style} ****/
3
- `,_.linkHref){let O=await(await fetch(_.linkHref)).text();z+=`${O.replace(/\s+/g," ").replace(/:\s+/g,":")}
4
- `}else if(_?.src&&K){let J=_.directory??_.family.toLowerCase().replace(/\s+/g,"-"),O=j(K,J,_.src);try{if(!x2(O)||!j2(O).isFile()){console.warn(`Font file not found: ${O}`);continue}}catch{console.warn(`Error accessing font file: ${O}`);continue}try{N0(j(A,J),{recursive:!0}),F2(j(K,J,_.src),j(A,J,_.src))}catch(w){console.warn(`Error copying font file ${_.src}:`,w instanceof Error?w.message:w);continue}let Q;if(X?.fonts?.cssImportPath)Q=j(X.fonts.cssImportPath,J,_.src).replace(/\\/g,"/");else{let{distCSSPath:w}=await m(),I=Y?j(Y,"css"):w,N=P2(I,A);Q=j(N,J,_.src).replace(/\\/g,"/")}z+=`@font-face {
2
+ import{createRequire as XY}from"node:module";var t2=Object.create;var{getPrototypeOf:o2,defineProperty:f$,getOwnPropertyNames:e2}=Object;var $Y=Object.prototype.hasOwnProperty;var YY=($,X,Y)=>{Y=$!=null?t2(o2($)):{};let Z=X||!$||!$.__esModule?f$(Y,"default",{value:$,enumerable:!0}):Y;for(let q of e2($))if(!$Y.call(Z,q))f$(Z,q,{get:()=>$[q],enumerable:!0});return Z};var h$=($,X)=>{for(var Y in X)f$($,Y,{get:X[Y],enumerable:!0,configurable:!0,set:(Z)=>X[Y]=()=>Z})};var S=($,X)=>()=>($&&(X=$($=0)),X);var ZY=XY(import.meta.url);var T0={};h$(T0,{transformColorValueAsync:()=>WY,transformColorValue:()=>F,transformColorToken:()=>J$,setAlpha:()=>q$,isColor:()=>h,initializeColorspace:()=>UY});import v$ from"colorjs.io";async function V0(){if(I$===null){let{colorspace:$}=await b();I$=$||"hex"}return I$}function qY(){return I$||"hex"}async function UY(){await V0()}function q$($,X){let Y=new v$($);if(X||X===0)Y.alpha=X/100;return F(Y)}function g0($,X){if(!$)return $;if(X&&X.type!=="color")return $;if(typeof $==="string")$=new v$($);if(typeof $?.to!=="function")return $;let Y=qY();try{switch(Y){case"hex":return $.to("srgb").toString({format:"hex"});case"rgb":case"srgb":return $.to("srgb").toString();case"srgb-linear":return $.to("srgb-linear").toString();case"display-p3":case"p3":return $.to("p3").toString();case"a98rgb":case"a98-rgb":return $.to("a98rgb").toString();case"prophoto":case"prophoto-rgb":return $.to("prophoto").toString();case"rec2020":case"rec-2020":return $.to("rec2020").toString();case"xyz":case"xyz-d65":return $.to("xyz-d65").toString();case"xyz-d50":return $.to("xyz-d50").toString();case"lab":case"cielab":return $.to("lab").toString();case"lab-d65":return $.to("lab-d65").toString();case"oklab":return $.to("oklab").toString();case"lch":case"cielch":return $.to("lch").toString();case"oklch":return $.to("oklch").toString();case"hsl":return $.to("hsl").toString();case"hsv":case"hsb":return $.to("hsv").toString();case"hwb":return $.to("hwb").toString();case"luv":return $.to("luv").toString();case"lchuv":return $.to("lchuv").toString();case"jzazbz":return $.to("jzazbz").toString();case"jzczhz":return $.to("jzczhz").toString();case"ictcp":return $.to("ictcp").toString();default:return $.to(Y).toString()}}catch(Z){return console.warn(`Unsupported colorspace '${Y}', falling back to hex. Error:`,Z),$.to("srgb").toString({format:"hex"})}}async function WY($,X){return await V0(),g0($,X)}function F($,X){return g0($,X)}function J$($,X,Y,Z){try{if($=V(X,Z),X.$type==="color"&&X.original?.$value&&X.original?.$value!==X.$value){if(D(X.original.$value))$=T(X.original.$value,Y,Z,X);else $=P(X);if(!x(Z)&&X.original?.$extensions?.mode?.[Z])$=X.original.$extensions.mode[Z]}if(D($))$=T($,Y,Z,X);return F($)}catch{return $=V(X,Z),F($)}}function h($){try{if($)return new v$($),!0;return!1}catch{return!1}}var I$=null;var U$=S(()=>{g()});function y0($,X){let Y=$.$extensions?.delimiter?.character||" ",Z=V($,X)??{},q=$.$extensions?.sort??[],U=P($)??{};if(q.length>0)U=Object.keys(U).sort((K,W)=>{let H=q.indexOf(K),G=q.indexOf(W);return H-G}).reduce((K,W)=>{return K[W]=Z[W],K},{});return Object.keys(U).reduce((K,W)=>{let H=P(Z[W]);if(Z[W]?.$type==="color"||Z[W].$property==="color")H=F(H,Z[W]);return[...Array.isArray(K)?K:[K],H]},[]).join(Y).trim()}function KY($,X,Y,Z){return Object.keys(X??{}).reduce((U,K)=>{let W=X[K];if(typeof W==="string"||typeof W==="number")W={$value:W,$type:typeof W,value:W};if(W.$type=W.type||$?.original?.$value?.[K]?.type||W.$type||$.$type,!x(Z)&&d(W,"mode",{isIncludedOriginalValue:!0}))W.$value=V(W,Z);if(W?.$type==="composition"&&(typeof W.$value!=="string"||typeof W.$value!=="number"||D(W.$value))&&Object.keys(W).length>0){if(D(W.$value))return W.$value=T(W.$value,Y,Z,W),{...U,[K]:{...W,$property:K,$type:W.$type,$value:a(W,Y,Z)}};return{...U,[K]:{...W,$property:K,$type:W.$type,$value:a(W,Y,Z)}}}if(W?.$value){let G=T(W.$value,Y,Z,W);return{...U,[K]:{...W,$property:K,$type:W.$type,$value:G}}}return U},{})}function a($,X,Y){let Z=P($,{isIncludedOriginalValue:!0});if(typeof Z==="string"){if(D(Z)){if(Z=m$(Z,X,Y,$),!x(Y)&&d(Z,"mode",{isIncludedOriginalValue:!0}))Z.$value=V(Z,Y)}let q=t(Z);if(q&&(q?.length??0)>1)Z=n(Z,q,X,Y)}else if(Array.isArray(Z))Z=Z.map((q)=>{if(typeof q==="string"&&D(q))return T(q,X,Y,$);return q});if(!$.name)return Z;return $.$value=KY($,Z,X,Y),y0($,Y)}var p$=S(()=>{g()});function P($,X){let{isIncludedOriginalValue:Y=!1,fallbackValue:Z=null}=X??{};if(Y)return $?.original?.$value??$?.$value??$.value??Z;return $?.$value??$?.value??Z}function V($,X){return X&&($?.$extensions?.mode?.[X]||typeof $?.$extensions?.mode?.[X]==="number")?$.$extensions.mode[X]:P($,{fallbackValue:$?.original?.$value??$?.$value??$?.value})??null}function d($,X,{isIncludedOriginalValue:Y=!1}={}){let Z=!1;if(Y&&$?.original?.$extensions?.[X])Z=!0;if($?.$extensions?.[X])Z=!0;return Z}function d$($,X,Y){let Z=P($,{isIncludedOriginalValue:!0});if(!x(Y)&&d($,"mode",{isIncludedOriginalValue:!0}))Z=V($,Y);if(D(Z))return k$(Z,X,Y,$);return Z}function n($,X,Y,Z){let q=X.reduce((U,K)=>{let W=u$(K,Y);if(!W)return U;let H=P(W,{isIncludedOriginalValue:!0});if(D(H))H=T(`{${K}}`,Y,Z,W);return{...U,[K]:R$(W,H,Y,Z)}},{});return $?.replace(/\{([^}]+)\}/g,(U,K)=>{return q[K]!==void 0?q[K]:U})??null}function m$($,X,Y,Z){if(D($))return T($,X,Y,Z);return $}function u$($,X){return X.allTokens.find((Y)=>Y.path.join(".")===$)??null}function T($,X,Y,Z){let q=D($),U=null,K=$??P(Z),W=null;if(q){if(U=u$(q,X),Y&&U&&U?.$extensions?.mode?.[Y]!==U.original?.$extensions?.mode?.[Y])K=U.original?.$extensions?.mode?.[Y],W=U.original?.$extensions?.alpha??W;else if(U?.$extensions?.mode?.[Y])K=U.$extensions.mode[Y],W=U.$extensions?.alpha??W;else if(U?.original?.$value)K=U?.original.$value??U?.$value,W=U?.original.$extensions?.alpha??W}if(K!==$&&D(K))K=T(K,X,Y,Z);if(K&&(W||Z?.$extensions?.alpha||W===0||Z?.original?.$extensions?.alpha===0))W=W??Z?.$extensions?.alpha??null,K=q$(K,W);return K=F(K,U??Z),K??$}function k$($,X,Y,Z){let q=Z?.original?.$extensions?.mode?.[Y]??Z?.original?.$value,U=D(q);if(Y&&U){let K=X.allTokens.find((H)=>H.path.join(".")===U);if(!K)return $;let W=P(K);if(D(W))return k$(W,X,Y,K);if(K?.$extensions?.mode?.[Y])W=K.$extensions.mode[Y];if(W&&K?.$extensions?.alpha)W=q$(K.$value,K.$extensions.alpha);return F(W,K)??$}else if(q)return F(q,Z);return $}function D($){if(typeof $!=="string")return null;let X=/{[^}]+}/g,Y=$.match(X);if(Y?.length!==1)return null;return Y[0].slice(1,-1)}function t($){if(typeof $!=="string")return null;return[...$.matchAll(/\{([^}]+)\}/g)].map(([,Y])=>Y)??null}function o($){return $}function W$($){return $}var c$=S(()=>{g()});var W2={};h$(W2,{wrapThemeValue:()=>W0,wrapFormatCSSFile:()=>X2,typographyFileName:()=>l0,tokensFileName:()=>k0,removeDirectoryContents:()=>X0,readConfigFile:()=>Y$,namespaceUUID:()=>s0,iconsFileName:()=>r0,getTokenfileName:()=>a0,getRelativePath:()=>U2,getRelativeCSSPath:()=>q2,getRawTokensFileName:()=>e0,getProjectPaths:()=>r,getProjectModes:()=>q0,getProjectMetaData:()=>b,getProjectFonts:()=>EY,getLazyTokensConfig:()=>l$,getLazyProjectPaths:()=>U0,getLazyProjectModes:()=>K$,getLazyProjectMetaData:()=>L$,getLazyProjectFonts:()=>_Y,getLazyProjectData:()=>u,getLazyIcons:()=>j$,getJSDocHeader:()=>$2,getIconDestinationFileName:()=>$$,getFiles:()=>x$,getFileHeader:()=>Z0,getDistThemeFileDelimeter:()=>n0,getDistConfigFile:()=>M$,getDestinationFileName:()=>t0,getDefaultIconObjectPath:()=>i0,getCSSDestinationFileName:()=>o0,getBaseDirectory:()=>H$,getBaseConfigFile:()=>z$,generatedFileHeader:()=>e,filterTokensByType:()=>N$,createFileHeaderTitle:()=>G$,compileConfigFile:()=>Y0,combineCSSFiles:()=>Z2,checkAndCreateDirectory:()=>l,breakpointFileName:()=>c0});import{spawnSync as GY}from"child_process";import{existsSync as y,mkdirSync as HY,readFileSync as zY,unlinkSync as f0,writeFileSync as AY}from"fs";import{readdir as m0,rmdir as LY,unlink as BY}from"fs/promises";import{resolve as d0,join as R,basename as u0,normalize as h0,relative as v0,sep as r$,dirname as p0}from"path";async function i0(){return`${(await A$()).$metaData?.tokenNamespace||"tokens"}.icons`}async function Y0($){let Y=R($,"designid.config.ts");if(y(R($,"designid.config.mjs")))f0(R($,"designid.config.mjs"));let Z=R($,"designid.config.js");if(y(Z))f0(Z);if(y(Y)){let q=GY("bun",["build",Y,"--outfile ./designid.config.mjs","--minify","--target","node","--packages","external","--no-bundle"],{stdio:"inherit",cwd:$,shell:!0});if(q.status!==0)console.error("Failed to compile designid.config.mjs with bun."),process.exit(q.status??1);if(q.status===0)return new Promise((U)=>U(!0))}}async function X0($){try{if(y($)){let X=await m0($,{withFileTypes:!0});for(let Y of X){let Z=R($,Y.name);if(Y.isDirectory())await X0(Z),await LY(Z);else await BY(Z)}}}catch(X){console.error(`Error removing contents of ${$}:`,X)}}async function x$($){let X=await m0($,{withFileTypes:!0}),Y=await Promise.all(X.map((Z)=>{let q=d0($,Z.name);return Z.isDirectory()?x$(q):q}));return Array.prototype.concat(...Y)}async function s0($){let{dsNamespace:X,tokenNamespace:Y}=await b();return`${(X??Y).toUpperCase()}DesignSystem${$.charAt(0).toUpperCase()+$.slice(1)}Tokens`}function a0($,X="d.ts",Y){if(!$)return`tokens.${Y}.config.${X}`;return R($,`tokens.${Y}.config.${X}`)}function n0($,X){return $.length>1?`.${X}`:""}async function t0($="d.ts",X){let{tokenNamespace:Y}=await b();if(X)return`${Y}-design-system.${X}.tokens.config.${$}`;return`${Y}-design-system.tokens.config.${$}`}async function $$($="json"){let{tokenNamespace:X}=await b();return`${X}-design-system.tokens.svg${$==="d.ts"||$==="js"?".config":""}.${$}`}async function o0(){let{tokenNamespace:$}=await b();return`${$}-design-system.tokens.css`}async function e0(){let{tokenNamespace:$}=await b();return`${$}-design-system-raw.tokens.json`}async function Z0($){let{tokenNamespace:X}=await b();return`${X} | ${$}`}function $2($,X){return`/** @type {import("./${$}").${X}} */`}function G$($){return`/* ${Z0($)} */`}function l($){if(!y($))HY($,{recursive:!0})}async function Y$($,X=!1){let Y=z$(),Z;if(Y.endsWith(".json"))Z=JSON.parse(zY(Y,"utf8").trim()??"{}");else if(Y.endsWith(".ts"))if(typeof globalThis.Bun<"u"){if(Z=await import(Y),Z.default)Z=Z.default}else{$=$??p0(Y)+"/";let U=M$($);if(U&&(X||!y(U)))await Y0($);if(Z=await import(U),Z.default)Z=Z.default}else{$=$??p0(Y)+"/";let q=M$($);if(q&&(X||!y(q)))await Y0($);if(Z=await import(q),Z.default)Z=Z.default}return Z}async function H$($=!1){let{baseDir:X}=await r(),Y=process.cwd(),q=R(Y,X),{buildDir:U,distDir:K}=await r();if($)try{l(R(q,U)),l(R(q,K))}catch(W){console.error("Error creating directories:",W)}return q}function M$($){return $?R($,"designid.config.mjs"):R(process.cwd(),"designid.config.mjs")}function z$(){let $=process.argv.find((W)=>W.startsWith("--config=")),[,X]=$?.split("=")??[];if(X)return X;let Y=process.cwd(),Z=M$(Y),q=R(Y,"designid.config.ts"),U=y(Z),K=y(q);if(U)return Z;else if(K)return q;throw console.error("Config file not found"),Error("Config file not found")}async function r($=!1){let X=z$(),Z=(await Y$(process.cwd(),$)).$paths;if(!Z)throw console.error("Project paths not found"),Error("Project paths not found");return{configFile:X,...Z}}async function b(){let X=(await Y$(process.cwd())).$metaData;if(!X)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!X.colorspace)X.colorspace="hex";if(!X.fontNamespace)X.fontNamespace=`${X.dsNamespace}.font`;if(!X?.tokens?.css?.mediaQuery?.match)X={...X??{},tokens:{...X.tokens??{},css:{...X.tokens?.css??{},mediaQuery:{...X.tokens?.css?.mediaQuery??{},match:"[data-theme]"}}}};if(X?.tokens?.css?.mediaQuery&&typeof X.tokens.css.mediaQuery.separateThemeFiles!=="boolean")X.tokens.css.mediaQuery.separateThemeFiles=!1;if(!X.dsNamespace)X.dsNamespace=X.tokenNamespace;let Y=await i0();return{...X,icons:X.icons??{objectPath:Y},dsNamespace:X.dsNamespace}}async function q0(){return(await Y$(process.cwd())).$modes??{default:"light"}}async function A$(){if(!i$){let $=z$();i$=await Y$(process.cwd()),Y2=$}return i$}async function K$(){if(!s$)s$=(await A$()).$modes??{default:"light"};return s$}async function L$(){if(!a$){let X=(await A$()).$metaData;if(!X)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!X.dsNamespace)X.dsNamespace=X.tokenNamespace;let Z=`${X.tokenNamespace||"tokens"}.icons`;a$={...X,icons:X.icons??{objectPath:Z},dsNamespace:X.dsNamespace}}return a$}async function U0($=!1){if(!n$){let Y=(await A$()).$paths;if(!Y)throw console.error("Project paths not found"),Error("Project paths not found");n$={configFile:Y2,...Y}}return n$}async function u(){if(!t$){let{distDir:$,assets:X,buildDir:Y}=await U0(!0),{fontNamespace:Z,tokenNamespace:q,icons:U}=await L$(),K=await H$(),W=process.cwd(),H=R(W,$,"css");t$={distDir:$,assets:X,fontNamespace:Z,__dirname:K,workspaceRoot:W,distCSSPath:H,buildDir:Y,tokenNamespace:q,icons:U}}return t$}async function j$(){if(!o$){let{icons:$}=await L$();o$=$}return o$}async function l$(){if(!e$){let{tokens:$}=await L$();e$=$}return e$}async function EY(){return(await Y$(process.cwd())).$fonts??[]}async function _Y(){if(!$0)$0=(await A$()).$fonts??[];return $0}async function W0($){if(x($))return":root";let Y=(await b())?.tokens?.css?.mediaQuery?.match??"[data-theme]";if(Y.startsWith("[")&&Y.endsWith("]"))return`${Y.replace("]",`="${$}"]`)}`;else if(Y.startsWith(".")||Y.startsWith("#"))return`${Y}${$}`;else return`${Y}${$}`}async function X2($,X,Y,Z,q,U={}){let K;if(x(Y))K=X.allTokens;else K=$(X,Y);let H=(await b())?.tokens?.css?.mediaQuery?.separateThemeFiles?"Theme: "+Y:U.headerTitle??"",G=`${G$(H)}
3
+ ${e}`,A=x(Y)?`:root {
4
+ `:`@media (123prefers-color-scheme: ${Y}) {
5
+ :root {
6
+ `,z=`${G}
7
+
8
+ ${A}`;if(K.forEach((L)=>{if(N$(L,U,q))return;let B=F$(L,X,Y);if(U.transformValue)B=U.transformValue(B);B=W$(B),z+=`${!x(Y)?" ":" "}--${o(L.name)}: ${B};
9
+ `}),Array.isArray(Z)&&Z.length>1){let L=`
10
+ `;for(let B of Z){if(Y===B)continue;let E=await W0(B);L+=`${!x(Y)?" ":" "}&${E} {
11
+ `,$(X,B).forEach((J)=>{if(N$(J,U,q))return;let Q=F$(J,X,B);if(U.transformValue)Q=U.transformValue(Q);Q=W$(Q),L+=`${!x(Y)?" ":" "}--${o(J.name)}: ${Q};
12
+ `}),L+=`${!x(Y)?" ":" "}}
13
+
14
+ `}z+=L}return z+=!x(Y)?` }
15
+ `:`}
16
+ `,z+=!x(Y)?`}
17
+ `:"",z}function N$($,X,Y){let{namespace:Z}=X.filter??{};if(!$.$type)return!0;if(Z?.length&&$.path){let q=$.path.join("."),U=Z.some((W)=>q.startsWith(W)),K=X.filter?.isInclusion!==void 0&&X.filter.isInclusion;return U&&!K||!U&&K}if(X.filter?.isInclusion!==void 0&&X.filter.isInclusion===!1){if($.$type&&!Y.includes($.$type))return!0}else if(!$.$type||Y.includes($.$type))return!0;return!1}async function Z2(){let $=await q0(),{baseDir:X,distDir:Y}=await r(),Z=await x$(R(X,Y,"css")),q=R(X,Y,await o0()),U=e+`
18
+
19
+ `,K=[{name:r0,order:100},{name:k0,order:200},{name:l0,order:300},{name:c0,order:400}];if(Z=Z.sort((W,H)=>{let G=(A)=>{let z=u0(A,".css"),L=K.find((B)=>z.includes(B.name));for(let B in $)if(z.includes(B)){let E=$[B]===$.default?1:2;return L?L.order+E:0}return L?L.order:0};return G(W)-G(H)}),Z.forEach((W)=>{if(W.endsWith(".css")){let G=`@import url("${q2(W,X,Y)}");`;U+=G+`
20
+ `}}),!y(R(X,Y)))l(R(X,Y));AY(q,U)}function q2($,X,Y){let Z=d0(X,Y);return $.startsWith(Z)?$.slice(Z.length+1):$}function U2($,X,Y,Z){let q=h0($),U=u0(h0(X)),K=q.split(r$),W=K.lastIndexOf(U);if(U===".")return v0(Y,Z).split(r$).join("/");else if(W===-1)throw Error(`Base directory '${U}' not found in '${q}'`);let H=R(...K.slice(0,W+1)),G=R(H,Y),A=R(H,Z);return v0(G,A).split(r$).join("/")}var k0="tokens",c0="breakpoints",l0="typography",r0="icons",e=`/*
21
+ * This file is automatically generated.
22
+ * DO NOT EDIT THIS FILE DIRECTLY.
23
+ * Changes will be overwritten. Please update the source design tokens instead.
24
+ */`,i$=null,Y2=null,s$=null,a$=null,n$=null,t$=null,o$=null,e$=null,$0=null;var B$=S(()=>{g()});function x($){return $===K0}var K0="light";var K2=S(()=>{B$()});async function G0($){let X=await j$();$=$.replace(/<\?xml[^>]*\?>\s*/,""),$=$.replace(/<!DOCTYPE [^>]*>\s*/,"");let Y=$.match(/<svg[^>]*>/),Z=$.match(/viewBox="([\d\s.]+)"/),[q]=Y??[],U=q;if(q&&U){let W=X?.style?.fill,H=/id="[^"]*"/.test(q);if(!U.includes("xmlns="))U=U.replace("<svg",'<svg xmlns="http://www.w3.org/2000/svg"');if(!H&&W)U=U.replace("<svg",`<svg id="${W}"`);else if(H&&W)U=U.replace(/id="[^"]*"/,`id="${W}"`)}if(Z&&q&&U){let W=Z[1].split(" ").map(Number),H=W[2],G=W[3],A=X?.size??24,z=H/G*A;$=$.replace(/height="[\d.]+px?"/,`height="${A}px"`),$=$.replace(/width="[\d.]+px?"/,`width="${z}px"`);let L=/width="[\d.]+(px)?"/.test(q),B=/height="[\d.]+(px)?"/.test(q);if(!L)U=U.replace("<svg",`<svg width="${z}px"`);else U=U.replace(/width="[\d.]+(px)?"/,`width="${z}px"`);if(!B)U=U.replace("<svg",`<svg height="${A}px"`);else U=U.replace(/height="[\d.]+(px)?"/,`height="${A}px"`);$=$.replace(q,U)}if(!$?.match(/data-style="([^"]*)"/)&&X?.style?.type)$=$.replace("<svg ",`<svg data-style="${X.style.type}" `);return $}var G2=S(()=>{g()});var H2=S(()=>{B$();g()});import{copyFileSync as OY,existsSync as IY,mkdirSync as z2,statSync as JY}from"fs";import{writeFile as RY}from"fs/promises";import{join as C,relative as MY}from"path";async function H0($,X){try{let{assets:Y,workspaceRoot:Z,distDir:q,__dirname:U}=await u(),K=Y?.fonts?.sourceDir?C(U,Y.fonts.sourceDir):null,W=C("assets","fonts"),H=C(Z,q),G=Y?.fonts?.distDir?C(H,Y.fonts.distDir.replace(/^\.\//,"")):C(H,W);if(!$||!K)return;let A="",z=X&&Y?.fonts?.distDir?C(X,Y.fonts.distDir.replace(/^\.\//,"")):G;for(let _ of $){if(!_)continue;if(A+=`/**** ${_.family} ${_.style} ****/
25
+ `,_.linkHref){let Q=await(await fetch(_.linkHref)).text();A+=`${Q.replace(/\s+/g," ").replace(/:\s+/g,":")}
26
+ `}else if(_?.src&&K){let J=_.directory??_.family.toLowerCase().replace(/\s+/g,"-"),Q=C(K,J,_.src);try{if(!IY(Q)||!JY(Q).isFile()){console.warn(`Font file not found: ${Q}`);continue}}catch{console.warn(`Error accessing font file: ${Q}`);continue}try{z2(C(z,J),{recursive:!0}),OY(C(K,J,_.src),C(z,J,_.src))}catch(w){console.warn(`Error copying font file ${_.src}:`,w instanceof Error?w.message:w);continue}let O;if(Y?.fonts?.cssImportPath)O=C(Y.fonts.cssImportPath,J,_.src).replace(/\\/g,"/");else{let{distCSSPath:w}=await u(),I=X?C(X,"css"):w,j=MY(I,z);O=C(j,J,_.src).replace(/\\/g,"/")}A+=`@font-face {
5
27
  font-family: "${_.family}";
6
28
  font-style: ${_.faceStyle};
7
29
  font-weight: ${_.weight};
8
- src: url("${Q}") format("${_.format}");
30
+ src: url("${O}") format("${_.format}");
9
31
  }
10
- `}}let{distCSSPath:B}=await m(),E=Y?j(Y,"css"):B,L=`${E}/fonts.css`;N0(E,{recursive:!0}),await S2(L,z,{flag:"w",encoding:"utf-8"})}catch(X){console.error("Error appending typography tokens:",X)}}var p$=F(()=>{S()});function o($){if(typeof $!=="string"||!$.startsWith("{")||!$.endsWith("}"))return!1;let Y=$.slice(1,-1);return!Y.includes("{")&&!Y.includes("}")&&Y.trim()!==""}function e($){if(typeof $!=="string")return!1;let Y=/\{[^}]+\}/g,X=$.match(Y);return!!(X&&X.length>0&&$.length>X.join("").length)}function G$($){let Y=[],X=/\{[^}]+\}/g,Z=0,q;while((q=X.exec($))!==null){if(q.index>Z){let K=$.slice(Z,q.index);if(K)Y.push({type:"literal",value:K})}let U=q[0];if(U.startsWith("{#/"))Y.push({type:"reference",value:U,ref:{$ref:U.slice(2,-1)}});else Y.push({type:"reference",value:U,ref:U});Z=q.index+q[0].length}if(Z<$.length){let U=$.slice(Z);if(U)Y.push({type:"literal",value:U})}return Y}function F0($){return!!$.$extensions?.$mode}function x0($){return!!($.$extensions?.$generators&&Array.isArray($.$extensions.$generators))}function j0($){return!!($.$extensions?.$breakpoints&&typeof $.$extensions.$breakpoints==="object")}function S0($,Y){return`${$}${Y}`}function P0($){return typeof $==="object"&&$!==null&&"$value"in $}function D0($){return typeof $==="object"&&$!==null&&!("$value"in $)}var b0=()=>{};function C0($){if(typeof $!=="string")return!1;let Y=$.trim();return Y.startsWith("<svg")&&Y.includes("</svg>")}function V0($){if(typeof $!=="string")return!1;return $.startsWith("data:image/png;base64,")||$.startsWith("iVBORw0KGgo")}function g0($){if(typeof $!=="string")return!1;return $.startsWith("data:image/jpeg;base64,")||$.startsWith("data:image/jpg;base64,")||$.startsWith("/9j/")}function b2($){let Y=$.trim();return Y=Y.replace(/\s+/g," ").replace(/>\s+</g,"><").trim(),`data:image/svg+xml;base64,${Buffer.from(Y,"utf-8").toString("base64")}`}function C2($){if($.startsWith("data:image/png;base64,"))return $;return`data:image/png;base64,${$}`}function V2($){if($.startsWith("data:image/jpeg;base64,")||$.startsWith("data:image/jpg;base64,"))return $;return`data:image/jpeg;base64,${$}`}function $$($){if(!$||typeof $!=="string")return $;if($.startsWith("data:"))return $;if(C0($))return b2($);else if(V0($))return C2($);else if(g0($))return V2($);return $}function g2($){if(typeof $!=="string")return!1;return $.startsWith("data:image/svg+xml;")||$.startsWith("data:image/png;")||$.startsWith("data:image/jpeg;")||$.startsWith("data:image/jpg;")||$.startsWith("data:image/gif;")||$.startsWith("data:image/webp;")}function C($){return C0($)||V0($)||g0($)||g2($)}import{readFileSync as T2,readdirSync as y2,statSync as f2}from"fs";import{join as h2}from"path";import y0 from"colorjs.io";function d$($){let Y={};function X(Z){let q=y2(Z);for(let U of q){let K=h2(Z,U);if(f2(K).isDirectory())X(K);else if(U.endsWith(".tokens.json"))try{let H=T2(K,"utf-8");if(!H.trim())continue;let G=JSON.parse(H);f0(Y,G)}catch(H){console.warn(`Failed to load token file: ${K}`,H)}}}return X($),Y}function f0($,Y){for(let X in Y)if(Y[X]&&typeof Y[X]==="object"&&!Array.isArray(Y[X])){if(!$[X])$[X]={};f0($[X],Y[X])}else $[X]=Y[X]}function u$($,Y={}){let X=[];function Z(q,U=[]){for(let[K,W]of Object.entries(q)){if(K.startsWith("$"))continue;let H=[...U,K],G=H.join(".");if(P0(W)){let z={path:H,name:G,type:W.$type,value:W.$value,description:W.$description,extensions:W.$extensions?{mode:F0(W)?W.$extensions.$mode:W.$extensions.mode?W.$extensions.mode:void 0,generators:x0(W)?W.$extensions.$generators:W.$extensions.generators?W.$extensions.generators:void 0,breakpoints:j0(W)?W.$extensions.$breakpoints:W.$extensions.breakpoint?W.$extensions.breakpoint:void 0,...Object.fromEntries(Object.entries(W.$extensions).filter(([A])=>!["$mode","$generators","$breakpoints","mode","generators","breakpoint"].includes(A)))}:void 0,original:W};if(!Y.namespace||G.startsWith(Y.namespace))X.push(z)}else if(D0(W))Z(W,H)}}return Z($),X}function k$($,Y={}){let X=[...$],Z=new Map($.map((G)=>[G.name,G]));if(Y.generateModes||Y.generateDerivedTokens||Y.generateBreakpointTokens)for(let G of $){let z=T0(G,Y,Z);if(X.push(...z),Y.generateModes){for(let A of z)if(A.extensions?.mode&&!A.name.includes("#")){let B=T0(A,Y,Z);X.push(...B)}}}let q=Y.modes||[],U=q.length>0?q[0]:void 0,K={tokens:new Map(X.map((G)=>[G.name,G])),mode:Y.generateModes?U:void 0,options:Y,brokenReferences:[]},W=[];for(let G of X){let z=void 0;for(let E of q)if(G.name.endsWith(`#${E}`)){z=E;break}if(!z&&Y.generateModes)z=U;let A={...K,mode:z},B=v2(G,A);W.push(B)}if(Y.failOnBrokenReferences!==!1&&K.brokenReferences.length>0){let G=[...new Set(K.brokenReferences)],z=`Token reference${G.length>1?"s":""} not found:
11
- ${G.map((A)=>` - ${A}`).join(`
12
- `)}`;throw Error(z)}return W}function T0($,Y,X){let Z=[];if(Y.generateModes&&$.extensions?.mode){for(let[q,U]of Object.entries($.extensions.mode))if(U!==void 0)Z.push({...$,name:`${$.name}#${q}`,value:U,path:[...$.path,`#${q}`]})}if(Y.generateModes&&!$.extensions?.mode&&(Array.isArray($.value)||typeof $.value==="object"&&$.value!==null)){let q=!1,U=!1,K=(W)=>{if(typeof W!=="object"||W===null)return!1;if(W.$extensions?.mode)return!0;return Object.values(W).some((H)=>{if(typeof H==="object"&&H!==null)return K(H);return!1})};if(Array.isArray($.value))q=$.value.some((W)=>typeof W==="string"&&W.includes("{")||typeof W==="object"&&W!==null&&Object.values(W).some((H)=>typeof H==="string"&&H.includes("{"))),U=$.value.some((W)=>K(W));else q=Object.values($.value).some((W)=>typeof W==="string"&&W.includes("{")),U=K($.value);if(q||U){if(["color","shadow","border","background","surface","composition"].includes($.type)){let G;if(Array.isArray($.value))G=$.value.map((z)=>{if(typeof z==="string"&&z.startsWith("{")&&z.endsWith("}")){let A=z.slice(1,-1);if(!A.includes("#dark")&&!A.includes("@dark"))return`{${A}#dark}`;return z}else if(typeof z==="object"&&z!==null){let A={};for(let[B,E]of Object.entries(z))if(typeof E==="string"&&E.startsWith("{")&&E.endsWith("}")){let L=E.slice(1,-1),_=`${L}#dark`,J=X?.get(L),O=X?.has(_)||J?.extensions?.mode?.dark!==void 0||J&&(Array.isArray(J.value)||typeof J.value==="object"&&J.value!==null);if(!L.includes("#dark")&&!L.includes("@dark")&&O)A[B]=`{${_}}`;else A[B]=E}else A[B]=E;return A}return z});else if(typeof $.value==="object"&&$.value!==null){G={};let z=(A)=>{if(typeof A==="string"){if(A.startsWith("{")&&A.endsWith("}")){let B=A.slice(1,-1),E=`${B}#dark`,L=(J,O=new Set)=>{if(O.has(J))return!1;O.add(J);let Q=X?.get(J);if(!Q){let w=J.match(/^(.+)@([^@]+)$/);if(w){let[,I,N]=w,h=X?.get(I);if(h){if(h.extensions?.mode?.dark!==void 0)return!0;if(h.extensions?.generators)return!0;return L(I,O)}}return!1}if(Q.extensions?.mode?.dark!==void 0)return!0;if(X?.has(`${J}#dark`))return!0;if(typeof Q.value==="string"&&Q.value.startsWith("{")&&Q.value.endsWith("}")){let w=Q.value.slice(1,-1);return L(w,O)}if(Array.isArray(Q.value)||typeof Q.value==="object"&&Q.value!==null){let w=(I)=>{if(typeof I!=="object"||I===null)return!1;if(I.$extensions?.mode)return!0;return Object.values(I).some((N)=>{if(typeof N==="object"&&N!==null)return w(N);return!1})};if(Array.isArray(Q.value))return Q.value.some((I)=>typeof I==="string"&&I.includes("{")&&L(I.slice(1,-1),new Set(O))||typeof I==="object"&&I!==null&&(Object.values(I).some((N)=>typeof N==="string"&&N.includes("{")&&L(N.slice(1,-1),new Set(O)))||w(I)));else if(typeof Q.value==="object")return Object.values(Q.value).some((I)=>typeof I==="string"&&I.includes("{")&&L(I.slice(1,-1),new Set(O)))||w(Q.value)}return!1},_=L(B);if(!B.includes("#dark")&&!B.includes("@dark")&&_)return`{${E}}`}return A}if(typeof A==="object"&&A!==null){if(A.$extensions?.mode?.dark)return A.$extensions.mode.dark;let B={};for(let[E,L]of Object.entries(A))B[E]=z(L);return B}return A};for(let[A,B]of Object.entries($.value))G[A]=z(B)}Z.push({...$,name:`${$.name}#dark`,value:G,path:[...$.path,"#dark"],extensions:{...$.extensions,autoGenerated:!0}})}}}if(Y.generateModes&&!$.extensions?.mode&&typeof $.value==="string"&&$.value.startsWith("{")&&$.value.endsWith("}")){let q=$.value.slice(1,-1),U=(z,A=new Set)=>{if(A.has(z))return!1;A.add(z);let B=X?.get(z);if(!B){let E=z.match(/^(.+)@([^@]+)$/);if(E){let[,L,_]=E,J=X?.get(L);if(J){if(J.extensions?.mode?.dark!==void 0)return!0;if(J.extensions?.generators)return!0;return U(L,A)}}return!1}if(B.extensions?.mode?.dark!==void 0)return!0;if(X?.has(`${z}#dark`))return!0;if(typeof B.value==="string"&&B.value.startsWith("{")&&B.value.endsWith("}")){let E=B.value.slice(1,-1);return U(E,A)}if(Array.isArray(B.value)||typeof B.value==="object"&&B.value!==null){let E=(L)=>{if(typeof L!=="object"||L===null)return!1;if(L.$extensions?.mode)return!0;return Object.values(L).some((_)=>{if(typeof _==="object"&&_!==null)return E(_);return!1})};if(Array.isArray(B.value))return B.value.some((L)=>typeof L==="string"&&L.includes("{")&&U(L.slice(1,-1),new Set(A))||typeof L==="object"&&L!==null&&(Object.values(L).some((_)=>typeof _==="string"&&_.includes("{")&&U(_.slice(1,-1),new Set(A)))||E(L)));else if(typeof B.value==="object")return Object.values(B.value).some((L)=>typeof L==="string"&&L.includes("{")&&U(L.slice(1,-1),new Set(A)))||E(B.value)}return!1},K=U(q);if(["color","shadow","border","background","surface","composition"].includes($.type)&&K&&K&&!q.includes("#dark")&&!q.includes("@dark")){let z=`{${q}#dark}`;Z.push({...$,name:`${$.name}#dark`,value:z,path:[...$.path,"#dark"],extensions:{...$.extensions,autoGenerated:!0}})}}if(Y.generateDerivedTokens&&$.extensions?.generators)for(let q of $.extensions.generators)for(let[U,K]of Object.entries(q.value)){let W=S0($.name,U),{generators:H,...G}=$.extensions;Z.push({...$,name:W,value:$.value,path:[...$.path,U],extensions:{...G,generator:{type:q.type,value:K}}})}if(Y.generateBreakpointTokens&&$.extensions?.breakpoints)for(let[q,U]of Object.entries($.extensions.breakpoints)){let K=`${$.name}@${q.replace(/[^a-zA-Z0-9]/g,"_")}`,W=U.$value||U.value;if(W&&typeof W==="object"&&"$value"in W)W=W.$value;else if(!W&&typeof U==="object"){let{...z}=U;if(Object.keys(z).length>0)W=z}let H=U.$extensions||U.$extensions,G=U.$type;if(!G&&U.value&&typeof U.value==="object")G=U.value.$type;Z.push({...$,name:K,value:W,path:[...$.path,`@${q}`],type:G||$.type,extensions:{mediaQuery:q,...H?{mode:H.mode||H.$mode,generators:H.generators||H.$generators,...Object.fromEntries(Object.entries(H).filter(([z])=>!["mode","$mode","generators","$generators"].includes(z)))}:{}}})}return Z}function v2($,Y){let X=d($.value,Y),Z=$.type;if(typeof $.value==="string"&&o($.value)){let U=$.value.slice(1,-1),K=Y.tokens.get(U);if(K){if(["border","shadow","typography","composition"].includes(K.type))Z=K.type;else if(typeof K.value==="string"&&e(K.value)){let W=G$(K.value),H=new Set;for(let G of W)if(G.type==="reference"&&G.ref&&typeof G.ref==="string"){let z=G.ref.slice(1,-1),A=Y.tokens.get(z);if(A&&["border","shadow","typography","composition"].includes(A.type))H.add(A.type)}if(H.size===1)Z=Array.from(H)[0]}}}if(typeof $.value==="string"&&e($.value)){let U=G$($.value),K=new Set;for(let W of U)if(W.type==="reference"&&W.ref&&typeof W.ref==="string"){let H=W.ref.slice(1,-1),G=Y.tokens.get(H);if(G&&["border","shadow","typography","composition"].includes(G.type))K.add(G.type)}if(K.size===1)Z=Array.from(K)[0]}if(typeof X==="object"&&X!==null&&["border","shadow","typography","composition"].includes(Z))X=f(X,Y);if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)X=H$($.value,$.extensions.generator.type,$.extensions.generator.value,Y);let q=p2($.name,Y.options);if(Z==="color"&&typeof X==="string"&&b(X))X=x(X,$);if(typeof X==="string"&&C(X))X=$$(X);return{...$,type:Z,value:X,cssVar:q}}function f($,Y){if(typeof $==="string"){if(o($))return c$($,Y);else if(e($))return v0($,Y)}if(Array.isArray($))return $.map((X)=>f(X,Y));if(typeof $==="object"&&$!==null){if("$value"in $&&typeof $.$value==="string")return f($.$value,Y);if("value"in $&&typeof $.value==="string"&&"$type"in $){if(Y.mode&&$.$extensions?.mode?.[Y.mode])return f($.$extensions.mode[Y.mode],Y);return f($.value,Y)}if("value"in $&&typeof $.value==="object"&&"$type"in $){let Z=$.value,q=$.$extensions?.delimiter?.character||" ";if($.$type==="composition"&&Z&&typeof Z==="object")return Object.values(Z).map((K)=>f(K,Y)).join(q);return f($.value,Y)}let X={};for(let[Z,q]of Object.entries($))X[Z]=f(q,Y);return X}return $}function d($,Y){if(typeof $==="string"){if(e($))return v0($,Y);else if(o($))return c$($,Y)}else if(typeof $==="object"&&$!==null&&"$ref"in $)return h0($,Y);return $}function c$($,Y){let X=$.slice(1,-1),Z=Y.tokens.get(X),q=Y.options.modes||[];if(!Z){if(q.length>0){for(let W of q)if(X.endsWith(`@${W}`)){let H=X.slice(0,-W.length-1)+`#${W}`;if(Z=Y.tokens.get(H),Z)return m$(Z,Y);break}}let K=X.match(/#([^#@]+)$/);if(K){let W=X.substring(0,K.index),H=K[1];if(Z=Y.tokens.get(W),Z){if(Z.extensions?.mode?.[H]){let G=Z.extensions.mode[H],z=d(G,{...Y,mode:H});if(Z.extensions?.generator&&typeof Z.extensions.generator==="object"&&"type"in Z.extensions.generator&&"value"in Z.extensions.generator)z=H$(z,Z.extensions.generator.type,Z.extensions.generator.value,Y);if(Z.type==="color"&&typeof z==="string"&&b(z))z=x(z,Z);if(typeof z==="string"&&C(z))z=$$(z);return z}}}if(q.length>0)for(let W of q){let H=new RegExp(`(@[^@]+)@${W}$`);if(H.test(X)){let G=X.replace(H,`$1#${W}`);if(Z=Y.tokens.get(G),!Z){let z=G.match(/#([^#@]+)$/);if(z){let A=G.substring(0,z.index),B=z[1];if(Z=Y.tokens.get(A),Z&&Z.extensions?.mode?.[B]){let E=Z.extensions.mode[B],L=d(E,{...Y,mode:B});if(Z.extensions?.generator&&typeof Z.extensions.generator==="object"&&"type"in Z.extensions.generator&&"value"in Z.extensions.generator)L=H$(L,Z.extensions.generator.type,Z.extensions.generator.value,Y);if(Z.type==="color"&&typeof L==="string"&&b(L))L=x(L,Z);if(typeof L==="string"&&C(L))L=$$(L);return L}}}else return m$(Z,Y);break}}}if(!Z)return console.warn(`Token reference not found: ${$}`),Y.brokenReferences.push($),$;return m$(Z,Y)}function m$($,Y){let X;if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)X=H$($.value,$.extensions.generator.type,$.extensions.generator.value,Y);else if(Y.mode&&$.extensions?.mode?.[Y.mode])X=d($.extensions.mode[Y.mode],Y);else X=d($.value,Y);if($.type==="color"&&typeof X==="string"&&b(X))X=x(X,$);if(typeof X==="string"&&C(X))X=$$(X);return X}function h0($,Y){let Z=$.$ref.slice(2).replace(/\//g,"."),q=Y.tokens.get(Z);if(!q)return console.warn(`JSON Pointer reference not found: ${$.$ref}`),Y.brokenReferences.push($.$ref),$.$ref;return d(q.value,Y)}function v0($,Y){let X=G$($),Z=X.some((K)=>K.value.includes(",")),q=!0,U=[];for(let K of X){let W;if(K.type==="reference"&&K.ref){if(typeof K.ref==="string"&&o(K.ref)){W=c$(K.ref,Y);let H=K.ref.slice(1,-1),G=Y.tokens.get(H);if(!G||!["border","shadow","typography","composition"].includes(G.type))q=!1}else if(typeof K.ref==="object"&&"$ref"in K.ref)W=h0(K.ref,Y)}else if(W=K.value,K.value.trim()&&K.value.trim()!==",")q=!1;U.push(W)}if(Z&&q)return U.filter((K)=>typeof K==="object"&&K!==null&&typeof K!=="string");return U.map((K)=>String(K)).join("")}function H$($,Y,X,Z){let q=d($,Z);switch(Y){case"alpha":if(typeof q==="string")return m2(q,Number(X)/100);break;case"scale":if(typeof q==="string"&&q.match(/[\d.]+/))return d2(q,Number(X));break;case"hue":if(typeof q==="string")return u2(q,Number(X));break;default:return console.warn(`Unknown generator type: ${Y}`),q}return q}function p2($,Y,X){let Z=$.replace(/\./g,"-");Z=Z.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),Z=Z.replace(/@[^@#]*(?:screen|width|height|min|max|orientation).*$/i,""),Z=Z.replace(/#[^#]*$/,""),Z=Z.replace(/-@/g,"-").replace(/@/g,"-");let q=Z,U=!0,K=Y.prefix||"";if(Y.transformName){if(q=Y.transformName(Z),q=q.replace(/-+$/,""),q!==Z)U=!1}let W=U&&K?`${K}-${q}`:q,H=X?`-${X}`:"";return`--${W}${H}`.replace(/[^a-zA-Z0-9-_]/g,"-")}function m2($,Y){try{if(!b($))return $;let X=new y0($);return X.alpha=Y,x(X)}catch(X){return console.warn(`Failed to apply alpha to color "${$}": ${X}`),$}}function d2($,Y){let X=$.match(/([\d.]+)(\w+)/);if(X){let[,Z,q]=X;return`${parseFloat(Z)*Y}${q}`}return $}function u2($,Y){try{if(!b($))return $;let Z=new y0($).to("oklch");return Z.h=(Z.h+Y)%360,x(Z)}catch(X){return console.warn(`Failed to shift hue for color "${$}": ${X}`),$}}var l$=F(()=>{b0();s()});function i$($){if($.type==="typography"||$.type==="fontWeight"||$.type==="fontFamily")return!0;if($.type==="dimension"&&$.name.includes("typography"))return!0;if($.name.includes("typography")||$.name.includes("font"))return!0;return!1}function z$($,Y={}){let{rootSelector:X=":root",separateThemeFiles:Z=!1,generateMediaQueries:q=!1,customHeader:U,modes:K=["light","dark"]}=Y;if(Z)return c2($,Y);let W=new Map,H=new Map;for(let O of K)W.set(O,[]);let G=K.join("|"),z=new RegExp(`#(${G})$`);for(let O of $){if(typeof O.value==="string"&&C(O.value))continue;if(i$(O))continue;let Q=` ${O.cssVar}: ${D(O.value,O.type)};`;if(q&&O.name.includes("@media")){let I=B$(O);if(I){if(!H.has(I))H.set(I,[]);H.get(I).push(Q);continue}}let w=O.name.match(z);if(w){let I=w[1];if(!W.has(I))W.set(I,[]);W.get(I).push(Q)}else{let I=K[0]||"light";W.get(I).push(Q)}}let A="";if(U)A+=`${U}
32
+ `}}let{distCSSPath:L}=await u(),B=X?C(X,"css"):L,E=`${B}/fonts.css`;z2(B,{recursive:!0}),await RY(E,A,{flag:"w",encoding:"utf-8"})}catch(Y){console.error("Error appending typography tokens:",Y)}}var z0=S(()=>{g()});function E$($){if(typeof $!=="string"||!$.startsWith("{")||!$.endsWith("}"))return!1;let X=$.slice(1,-1);return!X.includes("{")&&!X.includes("}")&&X.trim()!==""}function _$($){if(typeof $!=="string")return!1;let X=/\{[^}]+\}/g,Y=$.match(X);return!!(Y&&Y.length>0&&$.length>Y.join("").length)}function S$($){let X=[],Y=/\{[^}]+\}/g,Z=0,q;while((q=Y.exec($))!==null){if(q.index>Z){let K=$.slice(Z,q.index);if(K)X.push({type:"literal",value:K})}let U=q[0];if(U.startsWith("{#/"))X.push({type:"reference",value:U,ref:{$ref:U.slice(2,-1)}});else X.push({type:"reference",value:U,ref:U});Z=q.index+q[0].length}if(Z<$.length){let U=$.slice(Z);if(U)X.push({type:"literal",value:U})}return X}function A2($){return!!$.$extensions?.$mode}function L2($){return!!($.$extensions?.$generators&&Array.isArray($.$extensions.$generators))}function B2($){return!!($.$extensions?.$breakpoints&&typeof $.$extensions.$breakpoints==="object")}function E2($,X){return`${$}${X}`}function _2($){return typeof $==="object"&&$!==null&&"$value"in $}function Q2($){return typeof $==="object"&&$!==null&&!("$value"in $)}var w2=()=>{};function O2($){if(typeof $!=="string")return!1;let X=$.trim();return X.startsWith("<svg")&&X.includes("</svg>")}function I2($){if(typeof $!=="string")return!1;return $.startsWith("data:image/png;base64,")||$.startsWith("iVBORw0KGgo")}function J2($){if(typeof $!=="string")return!1;return $.startsWith("data:image/jpeg;base64,")||$.startsWith("data:image/jpg;base64,")||$.startsWith("/9j/")}function FY($){let X=$.trim();return X=X.replace(/\s+/g," ").replace(/>\s+</g,"><").trim(),`data:image/svg+xml;base64,${Buffer.from(X,"utf-8").toString("base64")}`}function xY($){if($.startsWith("data:image/png;base64,"))return $;return`data:image/png;base64,${$}`}function jY($){if($.startsWith("data:image/jpeg;base64,")||$.startsWith("data:image/jpg;base64,"))return $;return`data:image/jpeg;base64,${$}`}function Q$($){if(!$||typeof $!=="string")return $;if($.startsWith("data:"))return $;if(O2($))return FY($);else if(I2($))return xY($);else if(J2($))return jY($);return $}function SY($){if(typeof $!=="string")return!1;return $.startsWith("data:image/svg+xml;")||$.startsWith("data:image/png;")||$.startsWith("data:image/jpeg;")||$.startsWith("data:image/jpg;")||$.startsWith("data:image/gif;")||$.startsWith("data:image/webp;")}function v($){return O2($)||I2($)||J2($)||SY($)}import{readFileSync as DY,readdirSync as PY,statSync as bY}from"fs";import{join as CY}from"path";import M2 from"colorjs.io";function L0($){let X={};function Y(Z){let q=PY(Z);for(let U of q){let K=CY(Z,U);if(bY(K).isDirectory())Y(K);else if(U.endsWith(".tokens.json"))try{let H=DY(K,"utf-8");if(!H.trim())continue;let G=JSON.parse(H);N2(X,G)}catch(H){console.warn(`Failed to load token file: ${K}`,H)}}}return Y($),X}function N2($,X){for(let Y in X)if(X[Y]&&typeof X[Y]==="object"&&!Array.isArray(X[Y])){if(!$[Y])$[Y]={};N2($[Y],X[Y])}else $[Y]=X[Y]}function B0($,X={}){let Y=[];function Z(q,U=[]){for(let[K,W]of Object.entries(q)){if(K.startsWith("$"))continue;let H=[...U,K],G=H.join(".");if(_2(W)){let A={path:H,name:G,type:W.$type,value:W.$value,description:W.$description,extensions:W.$extensions?{mode:A2(W)?W.$extensions.$mode:W.$extensions.mode?W.$extensions.mode:void 0,generators:L2(W)?W.$extensions.$generators:W.$extensions.generators?W.$extensions.generators:void 0,breakpoints:B2(W)?W.$extensions.$breakpoints:W.$extensions.breakpoint?W.$extensions.breakpoint:void 0,...Object.fromEntries(Object.entries(W.$extensions).filter(([z])=>!["$mode","$generators","$breakpoints","mode","generators","breakpoint"].includes(z)))}:void 0,original:W};if(!X.namespace||G.startsWith(X.namespace))Y.push(A)}else if(Q2(W))Z(W,H)}}return Z($),Y}function E0($,X={}){let Y=[...$],Z=new Map($.map((G)=>[G.name,G]));if(X.generateModes||X.generateDerivedTokens||X.generateBreakpointTokens)for(let G of $){let A=R2(G,X,Z);if(Y.push(...A),X.generateModes){for(let z of A)if(z.extensions?.mode&&!z.name.includes("#")){let L=R2(z,X,Z);Y.push(...L)}}}let q=X.modes||[],U=q.length>0?q[0]:void 0,K={tokens:new Map(Y.map((G)=>[G.name,G])),mode:X.generateModes?U:void 0,options:X,brokenReferences:[]},W=[];for(let G of Y){let A=void 0;for(let B of q)if(G.name.endsWith(`#${B}`)){A=B;break}if(!A&&X.generateModes)A=U;let z={...K,mode:A},L=VY(G,z);W.push(L)}if(X.failOnBrokenReferences!==!1&&K.brokenReferences.length>0){let G=[...new Set(K.brokenReferences)],A=`Token reference${G.length>1?"s":""} not found:
33
+ ${G.map((z)=>` - ${z}`).join(`
34
+ `)}`;throw Error(A)}return W}function R2($,X,Y){let Z=[];if(X.generateModes&&$.extensions?.mode){for(let[q,U]of Object.entries($.extensions.mode))if(U!==void 0)Z.push({...$,name:`${$.name}#${q}`,value:U,path:[...$.path,`#${q}`]})}if(X.generateModes&&!$.extensions?.mode&&(Array.isArray($.value)||typeof $.value==="object"&&$.value!==null)){let q=!1,U=!1,K=(W)=>{if(typeof W!=="object"||W===null)return!1;if(W.$extensions?.mode)return!0;return Object.values(W).some((H)=>{if(typeof H==="object"&&H!==null)return K(H);return!1})};if(Array.isArray($.value))q=$.value.some((W)=>typeof W==="string"&&W.includes("{")||typeof W==="object"&&W!==null&&Object.values(W).some((H)=>typeof H==="string"&&H.includes("{"))),U=$.value.some((W)=>K(W));else q=Object.values($.value).some((W)=>typeof W==="string"&&W.includes("{")),U=K($.value);if(q||U){if(["color","shadow","border","background","surface","composition"].includes($.type)){let G;if(Array.isArray($.value))G=$.value.map((A)=>{if(typeof A==="string"&&A.startsWith("{")&&A.endsWith("}")){let z=A.slice(1,-1);if(!z.includes("#dark")&&!z.includes("@dark"))return`{${z}#dark}`;return A}else if(typeof A==="object"&&A!==null){let z={};for(let[L,B]of Object.entries(A))if(typeof B==="string"&&B.startsWith("{")&&B.endsWith("}")){let E=B.slice(1,-1),_=`${E}#dark`,J=Y?.get(E),Q=Y?.has(_)||J?.extensions?.mode?.dark!==void 0||J&&(Array.isArray(J.value)||typeof J.value==="object"&&J.value!==null);if(!E.includes("#dark")&&!E.includes("@dark")&&Q)z[L]=`{${_}}`;else z[L]=B}else z[L]=B;return z}return A});else if(typeof $.value==="object"&&$.value!==null){G={};let A=(z)=>{if(typeof z==="string"){if(z.startsWith("{")&&z.endsWith("}")){let L=z.slice(1,-1),B=`${L}#dark`,E=(J,Q=new Set)=>{if(Q.has(J))return!1;Q.add(J);let O=Y?.get(J);if(!O){let w=J.match(/^(.+)@([^@]+)$/);if(w){let[,I,j]=w,c=Y?.get(I);if(c){if(c.extensions?.mode?.dark!==void 0)return!0;if(c.extensions?.generators)return!0;return E(I,Q)}}return!1}if(O.extensions?.mode?.dark!==void 0)return!0;if(Y?.has(`${J}#dark`))return!0;if(typeof O.value==="string"&&O.value.startsWith("{")&&O.value.endsWith("}")){let w=O.value.slice(1,-1);return E(w,Q)}if(Array.isArray(O.value)||typeof O.value==="object"&&O.value!==null){let w=(I)=>{if(typeof I!=="object"||I===null)return!1;if(I.$extensions?.mode)return!0;return Object.values(I).some((j)=>{if(typeof j==="object"&&j!==null)return w(j);return!1})};if(Array.isArray(O.value))return O.value.some((I)=>typeof I==="string"&&I.includes("{")&&E(I.slice(1,-1),new Set(Q))||typeof I==="object"&&I!==null&&(Object.values(I).some((j)=>typeof j==="string"&&j.includes("{")&&E(j.slice(1,-1),new Set(Q)))||w(I)));else if(typeof O.value==="object")return Object.values(O.value).some((I)=>typeof I==="string"&&I.includes("{")&&E(I.slice(1,-1),new Set(Q)))||w(O.value)}return!1},_=E(L);if(!L.includes("#dark")&&!L.includes("@dark")&&_)return`{${B}}`}return z}if(typeof z==="object"&&z!==null){if(z.$extensions?.mode?.dark)return z.$extensions.mode.dark;let L={};for(let[B,E]of Object.entries(z))L[B]=A(E);return L}return z};for(let[z,L]of Object.entries($.value))G[z]=A(L)}Z.push({...$,name:`${$.name}#dark`,value:G,path:[...$.path,"#dark"],extensions:{...$.extensions,autoGenerated:!0}})}}}if(X.generateModes&&!$.extensions?.mode&&typeof $.value==="string"&&$.value.startsWith("{")&&$.value.endsWith("}")){let q=$.value.slice(1,-1),U=(A,z=new Set)=>{if(z.has(A))return!1;z.add(A);let L=Y?.get(A);if(!L){let B=A.match(/^(.+)@([^@]+)$/);if(B){let[,E,_]=B,J=Y?.get(E);if(J){if(J.extensions?.mode?.dark!==void 0)return!0;if(J.extensions?.generators)return!0;return U(E,z)}}return!1}if(L.extensions?.mode?.dark!==void 0)return!0;if(Y?.has(`${A}#dark`))return!0;if(typeof L.value==="string"&&L.value.startsWith("{")&&L.value.endsWith("}")){let B=L.value.slice(1,-1);return U(B,z)}if(Array.isArray(L.value)||typeof L.value==="object"&&L.value!==null){let B=(E)=>{if(typeof E!=="object"||E===null)return!1;if(E.$extensions?.mode)return!0;return Object.values(E).some((_)=>{if(typeof _==="object"&&_!==null)return B(_);return!1})};if(Array.isArray(L.value))return L.value.some((E)=>typeof E==="string"&&E.includes("{")&&U(E.slice(1,-1),new Set(z))||typeof E==="object"&&E!==null&&(Object.values(E).some((_)=>typeof _==="string"&&_.includes("{")&&U(_.slice(1,-1),new Set(z)))||B(E)));else if(typeof L.value==="object")return Object.values(L.value).some((E)=>typeof E==="string"&&E.includes("{")&&U(E.slice(1,-1),new Set(z)))||B(L.value)}return!1},K=U(q);if(["color","shadow","border","background","surface","composition"].includes($.type)&&K&&K&&!q.includes("#dark")&&!q.includes("@dark")){let A=`{${q}#dark}`;Z.push({...$,name:`${$.name}#dark`,value:A,path:[...$.path,"#dark"],extensions:{...$.extensions,autoGenerated:!0}})}}if(X.generateDerivedTokens&&$.extensions?.generators)for(let q of $.extensions.generators)for(let[U,K]of Object.entries(q.value)){let W=E2($.name,U),{generators:H,...G}=$.extensions;Z.push({...$,name:W,value:$.value,path:[...$.path,U],extensions:{...G,generator:{type:q.type,value:K}}})}if(X.generateBreakpointTokens&&$.extensions?.breakpoints)for(let[q,U]of Object.entries($.extensions.breakpoints)){let K=`${$.name}@${q.replace(/[^a-zA-Z0-9]/g,"_")}`,W=U.$value||U.value;if(W&&typeof W==="object"&&"$value"in W)W=W.$value;else if(!W&&typeof U==="object"){let{...A}=U;if(Object.keys(A).length>0)W=A}let H=U.$extensions||U.$extensions,G=U.$type;if(!G&&U.value&&typeof U.value==="object")G=U.value.$type;Z.push({...$,name:K,value:W,path:[...$.path,`@${q}`],type:G||$.type,extensions:{mediaQuery:q,...H?{mode:H.mode||H.$mode,generators:H.generators||H.$generators,...Object.fromEntries(Object.entries(H).filter(([A])=>!["mode","$mode","generators","$generators"].includes(A)))}:{}}})}return Z}function VY($,X){let Y=i($.value,X),Z=$.type;if(typeof $.value==="string"&&E$($.value)){let U=$.value.slice(1,-1),K=X.tokens.get(U);if(K){if(["border","shadow","typography","composition"].includes(K.type))Z=K.type;else if(typeof K.value==="string"&&_$(K.value)){let W=S$(K.value),H=new Set;for(let G of W)if(G.type==="reference"&&G.ref&&typeof G.ref==="string"){let A=G.ref.slice(1,-1),z=X.tokens.get(A);if(z&&["border","shadow","typography","composition"].includes(z.type))H.add(z.type)}if(H.size===1)Z=Array.from(H)[0]}}}if(typeof $.value==="string"&&_$($.value)){let U=S$($.value),K=new Set;for(let W of U)if(W.type==="reference"&&W.ref&&typeof W.ref==="string"){let H=W.ref.slice(1,-1),G=X.tokens.get(H);if(G&&["border","shadow","typography","composition"].includes(G.type))K.add(G.type)}if(K.size===1)Z=Array.from(K)[0]}if(typeof Y==="object"&&Y!==null&&["border","shadow","typography","composition"].includes(Z))Y=k(Y,X);if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)Y=D$($.value,$.extensions.generator.type,$.extensions.generator.value,X);let q=gY($.name,X.options);if(Z==="color"&&typeof Y==="string"&&h(Y))Y=F(Y,$);if(typeof Y==="string"&&v(Y))Y=Q$(Y);return{...$,type:Z,value:Y,cssVar:q}}function k($,X){if(typeof $==="string"){if(E$($))return _0($,X);else if(_$($))return x2($,X)}if(Array.isArray($))return $.map((Y)=>k(Y,X));if(typeof $==="object"&&$!==null){if("$value"in $&&typeof $.$value==="string")return k($.$value,X);if("value"in $&&typeof $.value==="string"&&"$type"in $){if(X.mode&&$.$extensions?.mode?.[X.mode])return k($.$extensions.mode[X.mode],X);return k($.value,X)}if("value"in $&&typeof $.value==="object"&&"$type"in $){let Z=$.value,q=$.$extensions?.delimiter?.character||" ";if($.$type==="composition"&&Z&&typeof Z==="object")return Object.values(Z).map((K)=>k(K,X)).join(q);return k($.value,X)}let Y={};for(let[Z,q]of Object.entries($))Y[Z]=k(q,X);return Y}return $}function i($,X){if(typeof $==="string"){if(_$($))return x2($,X);else if(E$($))return _0($,X)}else if(typeof $==="object"&&$!==null&&"$ref"in $)return F2($,X);return $}function _0($,X){let Y=$.slice(1,-1),Z=X.tokens.get(Y),q=X.options.modes||[];if(!Z){if(q.length>0){for(let W of q)if(Y.endsWith(`@${W}`)){let H=Y.slice(0,-W.length-1)+`#${W}`;if(Z=X.tokens.get(H),Z)return A0(Z,X);break}}let K=Y.match(/#([^#@]+)$/);if(K){let W=Y.substring(0,K.index),H=K[1];if(Z=X.tokens.get(W),Z){if(Z.extensions?.mode?.[H]){let G=Z.extensions.mode[H],A=i(G,{...X,mode:H});if(Z.extensions?.generator&&typeof Z.extensions.generator==="object"&&"type"in Z.extensions.generator&&"value"in Z.extensions.generator)A=D$(A,Z.extensions.generator.type,Z.extensions.generator.value,X);if(Z.type==="color"&&typeof A==="string"&&h(A))A=F(A,Z);if(typeof A==="string"&&v(A))A=Q$(A);return A}}}if(q.length>0)for(let W of q){let H=new RegExp(`(@[^@]+)@${W}$`);if(H.test(Y)){let G=Y.replace(H,`$1#${W}`);if(Z=X.tokens.get(G),!Z){let A=G.match(/#([^#@]+)$/);if(A){let z=G.substring(0,A.index),L=A[1];if(Z=X.tokens.get(z),Z&&Z.extensions?.mode?.[L]){let B=Z.extensions.mode[L],E=i(B,{...X,mode:L});if(Z.extensions?.generator&&typeof Z.extensions.generator==="object"&&"type"in Z.extensions.generator&&"value"in Z.extensions.generator)E=D$(E,Z.extensions.generator.type,Z.extensions.generator.value,X);if(Z.type==="color"&&typeof E==="string"&&h(E))E=F(E,Z);if(typeof E==="string"&&v(E))E=Q$(E);return E}}}else return A0(Z,X);break}}}if(!Z)return console.warn(`Token reference not found: ${$}`),X.brokenReferences.push($),$;return A0(Z,X)}function A0($,X){let Y;if($.extensions?.generator&&typeof $.extensions.generator==="object"&&"type"in $.extensions.generator&&"value"in $.extensions.generator)Y=D$($.value,$.extensions.generator.type,$.extensions.generator.value,X);else if(X.mode&&$.extensions?.mode?.[X.mode])Y=i($.extensions.mode[X.mode],X);else Y=i($.value,X);if($.type==="color"&&typeof Y==="string"&&h(Y))Y=F(Y,$);if(typeof Y==="string"&&v(Y))Y=Q$(Y);return Y}function F2($,X){let Z=$.$ref.slice(2).replace(/\//g,"."),q=X.tokens.get(Z);if(!q)return console.warn(`JSON Pointer reference not found: ${$.$ref}`),X.brokenReferences.push($.$ref),$.$ref;return i(q.value,X)}function x2($,X){let Y=S$($),Z=Y.some((K)=>K.value.includes(",")),q=!0,U=[];for(let K of Y){let W;if(K.type==="reference"&&K.ref){if(typeof K.ref==="string"&&E$(K.ref)){W=_0(K.ref,X);let H=K.ref.slice(1,-1),G=X.tokens.get(H);if(!G||!["border","shadow","typography","composition"].includes(G.type))q=!1}else if(typeof K.ref==="object"&&"$ref"in K.ref)W=F2(K.ref,X)}else if(W=K.value,K.value.trim()&&K.value.trim()!==",")q=!1;U.push(W)}if(Z&&q)return U.filter((K)=>typeof K==="object"&&K!==null&&typeof K!=="string");return U.map((K)=>String(K)).join("")}function D$($,X,Y,Z){let q=i($,Z);switch(X){case"alpha":if(typeof q==="string")return TY(q,Number(Y)/100);break;case"scale":if(typeof q==="string"&&q.match(/[\d.]+/))return yY(q,Number(Y));break;case"hue":if(typeof q==="string")return fY(q,Number(Y));break;default:return console.warn(`Unknown generator type: ${X}`),q}return q}function gY($,X,Y){let Z=$.replace(/\./g,"-");Z=Z.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),Z=Z.replace(/@[^@#]*(?:screen|width|height|min|max|orientation).*$/i,""),Z=Z.replace(/#[^#]*$/,""),Z=Z.replace(/-@/g,"-").replace(/@/g,"-");let q=Z,U=!0,K=X.prefix||"";if(X.transformName){if(q=X.transformName(Z),q=q.replace(/-+$/,""),q!==Z)U=!1}let W=U&&K?`${K}-${q}`:q,H=Y?`-${Y}`:"";return`--${W}${H}`.replace(/[^a-zA-Z0-9-_]/g,"-")}function TY($,X){try{if(!h($))return $;let Y=new M2($);return Y.alpha=X,F(Y)}catch(Y){return console.warn(`Failed to apply alpha to color "${$}": ${Y}`),$}}function yY($,X){let Y=$.match(/([\d.]+)(\w+)/);if(Y){let[,Z,q]=Y;return`${parseFloat(Z)*X}${q}`}return $}function fY($,X){try{if(!h($))return $;let Z=new M2($).to("oklch");return Z.h=(Z.h+X)%360,F(Z)}catch(Y){return console.warn(`Failed to shift hue for color "${$}": ${Y}`),$}}var Q0=S(()=>{w2();U$()});function w0($){if($.type==="typography"||$.type==="fontWeight"||$.type==="fontFamily")return!0;if($.type==="dimension"&&$.name.includes("typography"))return!0;if($.name.includes("typography")||$.name.includes("font"))return!0;return!1}function P$($,X={}){let{rootSelector:Y=":root",separateThemeFiles:Z=!1,generateMediaQueries:q=!1,customHeader:U,modes:K=["light","dark"]}=X;if(Z)return vY($,X);let W=new Map,H=new Map;for(let Q of K)W.set(Q,[]);let G=K.join("|"),A=new RegExp(`#(${G})$`);for(let Q of $){if(typeof Q.value==="string"&&v(Q.value))continue;if(w0(Q))continue;let O=` ${Q.cssVar}: ${f(Q.value,Q.type)};`;if(q&&Q.name.includes("@media")){let I=C$(Q);if(I){if(!H.has(I))H.set(I,[]);H.get(I).push(O);continue}}let w=Q.name.match(A);if(w){let I=w[1];if(!W.has(I))W.set(I,[]);W.get(I).push(O)}else{let I=K[0]||"light";W.get(I).push(O)}}let z="";if(U)z+=`${U}
13
35
 
14
- `;let B=K[0]||"light",E=W.get(B)||[];if(E.length>0){E.sort(),A+=`${X} {
15
- ${E.join(`
36
+ `;let L=K[0]||"light",B=W.get(L)||[];if(B.length>0){B.sort(),z+=`${Y} {
37
+ ${B.join(`
16
38
  `)}
17
- `;for(let O of K){if(O===B)continue;let Q=W.get(O)||[];if(Q.length>0){Q.sort();let w=Y.themeSelector||"[data-theme]",I;if(w.startsWith("."))if(w===".")I=`.${O}`;else I=`${w}-${O}`;else if(w.startsWith("[")&&w.endsWith("]"))if(w.includes("="))I=w.replace(/="[^"]*"/,`="${O}"`);else I=w.replace("]",`="${O}"]`);else I=`${w}-${O}`;A+=`
39
+ `;for(let Q of K){if(Q===L)continue;let O=W.get(Q)||[];if(O.length>0){O.sort();let w=X.themeSelector||"[data-theme]",I;if(w.startsWith("."))if(w===".")I=`.${Q}`;else I=`${w}-${Q}`;else if(w.startsWith("[")&&w.endsWith("]"))if(w.includes("="))I=w.replace(/="[^"]*"/,`="${Q}"`);else I=w.replace("]",`="${Q}"]`);else I=`${w}-${Q}`;z+=`
18
40
  &${I} {
19
- ${Q.map((N)=>` ${N}`).join(`
41
+ ${O.map((j)=>` ${j}`).join(`
20
42
  `)}
21
43
  }
22
- `}}A+=`}
23
- `}if(q&&H.size>0)for(let[O,Q]of H)Q.sort(),A+=`
24
- ${O} {
25
- ${X} {
26
- ${Q.map((w)=>` ${w}`).join(`
44
+ `}}z+=`}
45
+ `}if(q&&H.size>0)for(let[Q,O]of H)O.sort(),z+=`
46
+ ${Q} {
47
+ ${Y} {
48
+ ${O.map((w)=>` ${w}`).join(`
27
49
  `)}
28
50
  }
29
51
  }
30
- `;let L=[{fileName:"tokens.css",content:A}],_=d0($,Y);L.push(..._);let J=k0($,Y);return L.push(...J),L}function k2($,Y){let X=[];for(let q of $){let K=` ${q.cssVar||A$(q,Y)}: ${D(q.value,q.type)};`;X.push(K)}let Z="";if(Y.customHeader)Z+=`${Y.customHeader}
52
+ `;let E=[{fileName:"tokens.css",content:z}],_=D2($,X);E.push(..._);let J=b2($,X);return E.push(...J),E}function hY($,X){let Y=[];for(let q of $){let K=` ${q.cssVar||b$(q,X)}: ${f(q.value,q.type)};`;Y.push(K)}let Z="";if(X.customHeader)Z+=`${X.customHeader}
31
53
 
32
- `;if(X.length>0)X.sort(),Z+=`${Y.rootSelector||":root"} {
33
- ${X.join(`
54
+ `;if(Y.length>0)Y.sort(),Z+=`${X.rootSelector||":root"} {
55
+ ${Y.join(`
34
56
  `)}
35
57
  }
36
- `;return{fileName:"theme.css",content:Z}}function c2($,Y){let X=[],Z=new Map,q=[],U=Y.modes||["light","dark"],K=new Set(U),W=U.join("|"),H=new RegExp(`#(${W})$`);for(let E of $){if(B$(E))continue;if(typeof E.value==="string"&&C(E.value))continue;if(i$(E))continue;let L=E.name.match(H);if(L){let _=L[1];if(K.has(_)){if(!Z.has(_))Z.set(_,[]);Z.get(_).push(E)}else q.push(E)}else q.push(E)}if(q.length>0){let E=z$(q,{...Y,separateThemeFiles:!1})[0];X.push({...E,fileName:"tokens.css"})}let G=U.length>0?U[0]:"default";for(let[E,L]of Z){let _=E===G?":root":`[data-theme="${E}"]`,J=k2(L,{...Y,separateThemeFiles:!1,rootSelector:_});X.push({...J,fileName:`tokens.${E}.css`,theme:E})}let z=l2($,Y);X.push(...z);let A=d0($,Y);X.push(...A);let B=k0($,Y);return X.push(...B),X}function l2($,Y){let X=new Map;for(let U of $){let K=B$(U);if(K){let W=U.name.match(/@(dark|light)$/),H=W?W[1]:"light";if(!X.has(K))X.set(K,new Map);let G=X.get(K);if(!G.has(H))G.set(H,[]);G.get(H).push(U)}}if(X.size===0)return[];let Z=`/**
58
+ `;return{fileName:"theme.css",content:Z}}function vY($,X){let Y=[],Z=new Map,q=[],U=X.modes||["light","dark"],K=new Set(U),W=U.join("|"),H=new RegExp(`#(${W})$`);for(let B of $){if(C$(B))continue;if(typeof B.value==="string"&&v(B.value))continue;if(w0(B))continue;let E=B.name.match(H);if(E){let _=E[1];if(K.has(_)){if(!Z.has(_))Z.set(_,[]);Z.get(_).push(B)}else q.push(B)}else q.push(B)}if(q.length>0){let B=P$(q,{...X,separateThemeFiles:!1})[0];Y.push({...B,fileName:"tokens.css"})}let G=U.length>0?U[0]:"default";for(let[B,E]of Z){let _=B===G?":root":`[data-theme="${B}"]`,J=hY(E,{...X,separateThemeFiles:!1,rootSelector:_});Y.push({...J,fileName:`tokens.${B}.css`,theme:B})}let A=pY($,X);Y.push(...A);let z=D2($,X);Y.push(...z);let L=b2($,X);return Y.push(...L),Y}function pY($,X){let Y=new Map;for(let U of $){let K=C$(U);if(K){let W=U.name.match(/@(dark|light)$/),H=W?W[1]:"light";if(!Y.has(K))Y.set(K,new Map);let G=Y.get(K);if(!G.has(H))G.set(H,[]);G.get(H).push(U)}}if(Y.size===0)return[];let Z=`/**
37
59
  * Design System Tokens - Responsive Breakpoints
38
60
  * Generated: ${new Date().toISOString()}
39
61
  *
@@ -41,53 +63,53 @@ ${X.join(`
41
63
  * Each media query section overrides tokens for specific screen sizes.
42
64
  */
43
65
 
44
- `,q=Array.from(X.keys()).sort();for(let U of q){let K=X.get(U);for(let[W,H]of K){let G=[];for(let z of H){let B=` ${z.cssVar||A$(z,Y)}: ${D(z.value,z.type)};`;G.push(B)}if(G.length>0)G.sort(),Z+=`${U} {
66
+ `,q=Array.from(Y.keys()).sort();for(let U of q){let K=Y.get(U);for(let[W,H]of K){let G=[];for(let A of H){let L=` ${A.cssVar||b$(A,X)}: ${f(A.value,A.type)};`;G.push(L)}if(G.length>0)G.sort(),Z+=`${U} {
45
67
  [data-theme="${W}"] {
46
68
  ${G.join(`
47
69
  `)}
48
70
  }
49
71
  }
50
72
 
51
- `}}return[{fileName:"tokens.breakpoints.css",content:Z.trim()}]}function d0($,Y){let X=new Map;for(let q of $)if(typeof q.value==="string"&&C(q.value)){let U=q.name.match(/@(dark|light)$/),K=U?U[1]:"light";if(!X.has(K))X.set(K,[]);X.get(K).push(q)}let Z=[];if(X.size===0)return[];if(X.size===1){let[q,U]=Array.from(X.entries())[0],K=p0(U,q,Y);Z.push({fileName:"tokens.icons.css",content:K})}else for(let[q,U]of X){let K=p0(U,q,Y);Z.push({fileName:`tokens.icons.${q}.css`,content:K})}return Z}function p0($,Y,X){let Z=`/**
52
- * Design System Tokens - Icons (${Y})
73
+ `}}return[{fileName:"tokens.breakpoints.css",content:Z.trim()}]}function D2($,X){let Y=new Map;for(let q of $)if(typeof q.value==="string"&&v(q.value)){let U=q.name.match(/@(dark|light)$/),K=U?U[1]:"light";if(!Y.has(K))Y.set(K,[]);Y.get(K).push(q)}let Z=[];if(Y.size===0)return[];if(Y.size===1){let[q,U]=Array.from(Y.entries())[0],K=j2(U,q,X);Z.push({fileName:"tokens.icons.css",content:K})}else for(let[q,U]of Y){let K=j2(U,q,X);Z.push({fileName:`tokens.icons.${q}.css`,content:K})}return Z}function j2($,X,Y){let Z=`/**
74
+ * Design System Tokens - Icons (${X})
53
75
  * Generated: ${new Date().toISOString()}
54
76
  *
55
77
  * This file contains CSS custom properties for icon tokens.
56
78
  * Icons are provided as data URIs for direct embedding.
57
79
  */
58
80
 
59
- `,q=[];for(let U of $){let W=` ${U.cssVar||A$(U,X)}: ${D(U.value,U.type)};`;q.push(W)}if(q.length>0){q.sort();let U=Y==="light"?":root":`[data-theme="${Y}"]`;Z+=`${U} {
81
+ `,q=[];for(let U of $){let W=` ${U.cssVar||b$(U,Y)}: ${f(U.value,U.type)};`;q.push(W)}if(q.length>0){q.sort();let U=X==="light"?":root":`[data-theme="${X}"]`;Z+=`${U} {
60
82
  ${q.join(`
61
83
  `)}
62
84
  }
63
- `}return Z}function A$($,Y){let Z=$.name.split("@")[0].replace(/\.$/,"").replace(/\.+/g,"."),q=u0(Z,Y.hooks);return`--${Y.prefix||X$}-${q.replace(/\./g,"-")}`}function u0($,Y,X){if(!Y?.shortenName?.enabled)return $;let Z=$;if(Y.shortenName.prefix)for(let q of Y.shortenName.prefix)Z=Z.replace(new RegExp(q.find,"g"),q.replace);if(Y.shortenName.suffix){for(let q of Y.shortenName.suffix)if(Z.endsWith(q.find))Z=Z.substring(0,Z.length-q.find.length)+q.replace}if(X&&X!=="light"){let q=`-${X}`;if(Z.endsWith(q))Z=Z.slice(0,-q.length)}return Z}function k0($,Y){let X=new Map,Z=Y.modes||[];for(let U of $)if(i$(U)){if(B$(U))continue;let W=Z.length>0?Z[0]:"default";if(U.name.includes("#")){let H=U.name.split("#"),G=H[H.length-1];if(Z.includes(G))W=G}if(!X.has(W))X.set(W,[]);X.get(W).push(U)}let q=[];for(let[U,K]of X.entries()){let W=i2(K,U,Y,Z);q.push({fileName:`tokens.typography.${U}.css`,content:W})}return q}function i2($,Y,X,Z){let q=`/**
64
- * Design System Tokens - Typography (${Y})
85
+ `}return Z}function b$($,X){let Z=$.name.split("@")[0].replace(/\.$/,"").replace(/\.+/g,"."),q=P2(Z,X.hooks);return`--${X.prefix||w$}-${q.replace(/\./g,"-")}`}function P2($,X,Y){if(!X?.shortenName?.enabled)return $;let Z=$;if(X.shortenName.prefix)for(let q of X.shortenName.prefix)Z=Z.replace(new RegExp(q.find,"g"),q.replace);if(X.shortenName.suffix){for(let q of X.shortenName.suffix)if(Z.endsWith(q.find))Z=Z.substring(0,Z.length-q.find.length)+q.replace}if(Y&&Y!=="light"){let q=`-${Y}`;if(Z.endsWith(q))Z=Z.slice(0,-q.length)}return Z}function b2($,X){let Y=new Map,Z=X.modes||[];for(let U of $)if(w0(U)){if(C$(U))continue;let W=Z.length>0?Z[0]:"default";if(U.name.includes("#")){let H=U.name.split("#"),G=H[H.length-1];if(Z.includes(G))W=G}if(!Y.has(W))Y.set(W,[]);Y.get(W).push(U)}let q=[];for(let[U,K]of Y.entries()){let W=mY(K,U,X,Z);q.push({fileName:`tokens.typography.${U}.css`,content:W})}return q}function mY($,X,Y,Z){let q=`/**
86
+ * Design System Tokens - Typography (${X})
65
87
  * Generated: ${new Date().toISOString()}
66
88
  *
67
89
  * This file contains CSS custom properties for typography tokens.
68
90
  * Includes fontSize, fontWeight, fontFamily, lineHeight, and typography compositions.
69
91
  */
70
92
 
71
- `,U=new Map;for(let K of $){let W="default";if(K.name.includes("@")){let H=K.name.split("@");for(let G of H)if(G.includes("screen_")||G.includes("min_width")||G.includes("max_width")){W=G.replace(/screen_and__/g,"").replace(/min_width__(\d+)px_/g,"min-width: $1px").replace(/max_width__(\d+)px_/g,"max-width: $1px").replace(/_/g," ");break}}if(!U.has(W))U.set(W,[]);U.get(W).push(K)}for(let[K,W]of U.entries()){let H=[];for(let G of W){let A=` ${G.cssVar||A$(G,X)}: ${D(G.value,G.type)};`;H.push(A)}if(H.length>0)if(K==="default"){let G=Y==="light"?":root":`[data-theme="${Y}"]`;H.sort(),q+=`${G} {
93
+ `,U=new Map;for(let K of $){let W="default";if(K.name.includes("@")){let H=K.name.split("@");for(let G of H)if(G.includes("screen_")||G.includes("min_width")||G.includes("max_width")){W=G.replace(/screen_and__/g,"").replace(/min_width__(\d+)px_/g,"min-width: $1px").replace(/max_width__(\d+)px_/g,"max-width: $1px").replace(/_/g," ");break}}if(!U.has(W))U.set(W,[]);U.get(W).push(K)}for(let[K,W]of U.entries()){let H=[];for(let G of W){let z=` ${G.cssVar||b$(G,Y)}: ${f(G.value,G.type)};`;H.push(z)}if(H.length>0)if(K==="default"){let G=X==="light"?":root":`[data-theme="${X}"]`;H.sort(),q+=`${G} {
72
94
  ${H.join(`
73
95
  `)}
74
96
  }
75
97
 
76
98
  `}else{let G=K.startsWith("(")?K:`(${K})`;q+=`@media ${G} {
77
- `;let z=Y==="light"?":root":`[data-theme="${Y}"]`;q+=` ${z} {
78
- ${H.sort().map((A)=>` ${A}`).join(`
99
+ `;let A=X==="light"?":root":`[data-theme="${X}"]`;q+=` ${A} {
100
+ ${H.sort().map((z)=>` ${z}`).join(`
79
101
  `)}
80
102
  }
81
103
  `,q+=`}
82
104
 
83
- `}}return q}function D($,Y){if($===null||$===void 0)return"";if(typeof $==="object"&&$!==null&&!Array.isArray($)){let Z=$;if(Z.$value!==void 0){if(typeof Z.$value==="string")return Z.$value;return D(Z.$value,Z.$type||Y)}}let X=String($);switch(Y){case"color":return r2(X);case"dimension":return s2(X);case"duration":return a2(X);case"fontFamily":return n2(X);case"fontWeight":return t2(X);case"cubicBezier":return o2($);case"shadow":return e2($);case"border":return $1($);case"typography":return X1($);case"composition":return r$($);default:if(X.startsWith("data:"))return`"${X}"`;return X}}function r2($){if($.startsWith("oklch(")||$.startsWith("rgb(")||$.startsWith("rgba(")||$.startsWith("hsl(")||$.startsWith("hsla(")||$.startsWith("#"))return $;return $}function s2($){if(/^\d+(\.\d+)?(px|rem|em|%|vh|vw|vmin|vmax)$/.test($))return $;if(/^\d+(\.\d+)?$/.test($))return`${$}rem`;return $}function a2($){if(/^\d+(\.\d+)?(s|ms)$/.test($))return $;if(/^\d+(\.\d+)?$/.test($))return`${$}ms`;return $}function n2($){if(($.includes(",")||$.includes(" "))&&!$.startsWith('"')&&!$.startsWith("'"))return`"${$}"`;return $}function t2($){return{thin:"100","extra-light":"200",light:"300",normal:"400",medium:"500","semi-bold":"600",bold:"700","extra-bold":"800",black:"900"}[$]||$}function o2($){if(Array.isArray($)&&$.length===4)return`cubic-bezier(${$.join(", ")})`;return String($)}function e2($){if(Array.isArray($))return $.map((Y)=>m0(Y)).join(", ");return m0($)}function m0($){if(typeof $==="object"&&$!==null){let Y=$,X=Y.color||"transparent";if(typeof X==="string"&&X.includes("{")&&X.includes("}")){console.warn(`Unresolved token reference in shadow color: ${X}`);let q=X.match(/\{([^}]+)\}/)?.[1];if(q)X=`var(${`--${X$}-${q.replace(/\./g,"-").replace(/@/g,"-")}`})`}let Z=[Y.offsetX||"0",Y.offsetY||"0",Y.blur||"0",Y.spread||"0",X];if(Y.inset)Z.unshift("inset");return Z.join(" ")}return String($)}function $1($){if(typeof $==="object"&&$!==null){let Y=$;return`${Y.width||"1px"} ${Y.style||"solid"} ${Y.color||"transparent"}`}return String($)}function X1($){if(typeof $==="object"&&$!==null){let Y=$,X=Y.fontWeight||"normal",Z=Y.fontSize||"1rem",q=Y.lineHeight||"normal",U=Y.fontFamily||"sans-serif";if(U.includes(" ")&&!U.startsWith('"')&&!U.startsWith("'"))U=`'${U}'`;let K;if(Z.includes("/"))K=Z;else K=`${Z}/${q}`;return`${X} ${K} ${U}`}return String($)}function r$($){if(typeof $!=="object"||$===null)return String($);if(Array.isArray($))return $.map((X)=>r$(X)).join(", ");let Y=$;if(Y.offsetX!==void 0&&Y.offsetY!==void 0)return c0(Y);if(Y.width!==void 0&&Y.style!==void 0&&Y.color!==void 0)return Y1(Y);if(Y.blur!==void 0||Y.saturate!==void 0||Y.brightness!==void 0)return Z1(Y);if(Y.fontSize!==void 0||Y.fontFamily!==void 0)return q1(Y);return U1(Y)}function c0($){let Y=[M($.offsetX)||"0",M($.offsetY)||"0",M($.blur)||"0",M($.spread)||"0",M($.color)||"transparent"];if($.inset&&M($.inset)==="true")Y.unshift("inset");return Y.join(" ")}function Y1($){let Y=M($.width)||"1px",X=M($.style)||"solid",Z=M($.color)||"transparent";return`${Y} ${X} ${Z}`}function Z1($){let Y=[];if($.blur)Y.push(M($.blur)||"blur(0)");if($.saturate)Y.push(M($.saturate)||"saturate(100%)");if($.brightness)Y.push(M($.brightness)||"brightness(100%)");if($.contrast)Y.push(M($.contrast)||"contrast(100%)");if($.hueRotate)Y.push(M($.hueRotate)||"hue-rotate(0deg)");return Y.join(" ")||"none"}function q1($){let Y=M($.fontWeight)||"normal",X=M($.fontSize)||"1rem",Z=M($.lineHeight),q=M($.fontFamily)||"sans-serif";if(q.includes(" ")&&!q.startsWith('"')&&!q.startsWith("'"))q=`'${q}'`;if(X.includes("/"))return`${Y} ${X} ${q}`;else return`${Y} ${X}/${Z||"normal"} ${q}`}function M($){if($===null||$===void 0)return"";if(typeof $==="string")return $;if(typeof $==="object"&&$.value!==void 0)return String($.value);return String($)}function U1($){let Y=[];for(let[,q]of Object.entries($)){let U=q;if(typeof q==="object"&&q!==null&&U.$value&&typeof U.$value==="object"){let K=U.$value;if(K.offsetX!==void 0&&K.offsetY!==void 0){let W=c0(K);if(W)Y.push(W)}else{let W=r$(K);if(W)Y.push(W)}}else{let K=M(q);if(K)Y.push(K)}}let Z=Y.some((q)=>/^\d/.test(q)&&q.includes(" "))?", ":" ";return Y.join(Z)||String($)}function B$($){if($.extensions?.mediaQuery&&typeof $.extensions.mediaQuery==="string"){let X=$.extensions.mediaQuery;if(X=X.replace(/\{universe\.foundation\.breakpoint\.screen\.width\.lg\}/g,"64rem"),!X.startsWith("@media"))X=`@media ${X}`;return X}let Y=$.name.match(/@(media[^@]+)/);if(Y)return`@${Y[1].replace(/_/g," ")}`;if($.name.includes("@screen_and__min_width__300px_"))return"@media screen and (min-width: 300px)";if($.name.includes("@screen_and__min_width__600px_"))return"@media screen and (min-width: 600px)";if($.name.includes("@")&&$.name.includes("_"))return"@media (unknown-breakpoint)";return null}function E$($){let Y=$?.$name||"Design System",X=$?.$version||"1.0.0",Z=new Date().toISOString();return`/**
84
- * ${Y} - CSS Custom Properties
85
- * Version: ${X}
105
+ `}}return q}function f($,X){if($===null||$===void 0)return"";if(typeof $==="object"&&$!==null&&!Array.isArray($)){let Z=$;if(Z.$value!==void 0){if(typeof Z.$value==="string")return Z.$value;return f(Z.$value,Z.$type||X)}}let Y=String($);switch(X){case"color":return dY(Y);case"dimension":return uY(Y);case"duration":return kY(Y);case"fontFamily":return cY(Y);case"fontWeight":return lY(Y);case"cubicBezier":return rY($);case"shadow":return iY($);case"border":return sY($);case"typography":return aY($);case"composition":return O0($);default:if(Y.startsWith("data:"))return`"${Y}"`;return Y}}function dY($){if($.startsWith("oklch(")||$.startsWith("rgb(")||$.startsWith("rgba(")||$.startsWith("hsl(")||$.startsWith("hsla(")||$.startsWith("#"))return $;return $}function uY($){if(/^\d+(\.\d+)?(px|rem|em|%|vh|vw|vmin|vmax)$/.test($))return $;if(/^\d+(\.\d+)?$/.test($))return`${$}rem`;return $}function kY($){if(/^\d+(\.\d+)?(s|ms)$/.test($))return $;if(/^\d+(\.\d+)?$/.test($))return`${$}ms`;return $}function cY($){if(($.includes(",")||$.includes(" "))&&!$.startsWith('"')&&!$.startsWith("'"))return`"${$}"`;return $}function lY($){return{thin:"100","extra-light":"200",light:"300",normal:"400",medium:"500","semi-bold":"600",bold:"700","extra-bold":"800",black:"900"}[$]||$}function rY($){if(Array.isArray($)&&$.length===4)return`cubic-bezier(${$.join(", ")})`;return String($)}function iY($){if(Array.isArray($))return $.map((X)=>S2(X)).join(", ");return S2($)}function S2($){if(typeof $==="object"&&$!==null){let X=$,Y=X.color||"transparent";if(typeof Y==="string"&&Y.includes("{")&&Y.includes("}")){console.warn(`Unresolved token reference in shadow color: ${Y}`);let q=Y.match(/\{([^}]+)\}/)?.[1];if(q)Y=`var(${`--${w$}-${q.replace(/\./g,"-").replace(/@/g,"-")}`})`}let Z=[X.offsetX||"0",X.offsetY||"0",X.blur||"0",X.spread||"0",Y];if(X.inset)Z.unshift("inset");return Z.join(" ")}return String($)}function sY($){if(typeof $==="object"&&$!==null){let X=$;return`${X.width||"1px"} ${X.style||"solid"} ${X.color||"transparent"}`}return String($)}function aY($){if(typeof $==="object"&&$!==null){let X=$,Y=X.fontWeight||"normal",Z=X.fontSize||"1rem",q=X.lineHeight||"normal",U=X.fontFamily||"sans-serif";if(U.includes(" ")&&!U.startsWith('"')&&!U.startsWith("'"))U=`'${U}'`;let K;if(Z.includes("/"))K=Z;else K=`${Z}/${q}`;return`${Y} ${K} ${U}`}return String($)}function O0($){if(typeof $!=="object"||$===null)return String($);if(Array.isArray($))return $.map((Y)=>O0(Y)).join(", ");let X=$;if(X.offsetX!==void 0&&X.offsetY!==void 0)return C2(X);if(X.width!==void 0&&X.style!==void 0&&X.color!==void 0)return nY(X);if(X.blur!==void 0||X.saturate!==void 0||X.brightness!==void 0)return tY(X);if(X.fontSize!==void 0||X.fontFamily!==void 0)return oY(X);return eY(X)}function C2($){let X=[N($.offsetX)||"0",N($.offsetY)||"0",N($.blur)||"0",N($.spread)||"0",N($.color)||"transparent"];if($.inset&&N($.inset)==="true")X.unshift("inset");return X.join(" ")}function nY($){let X=N($.width)||"1px",Y=N($.style)||"solid",Z=N($.color)||"transparent";return`${X} ${Y} ${Z}`}function tY($){let X=[];if($.blur)X.push(N($.blur)||"blur(0)");if($.saturate)X.push(N($.saturate)||"saturate(100%)");if($.brightness)X.push(N($.brightness)||"brightness(100%)");if($.contrast)X.push(N($.contrast)||"contrast(100%)");if($.hueRotate)X.push(N($.hueRotate)||"hue-rotate(0deg)");return X.join(" ")||"none"}function oY($){let X=N($.fontWeight)||"normal",Y=N($.fontSize)||"1rem",Z=N($.lineHeight),q=N($.fontFamily)||"sans-serif";if(q.includes(" ")&&!q.startsWith('"')&&!q.startsWith("'"))q=`'${q}'`;if(Y.includes("/"))return`${X} ${Y} ${q}`;else return`${X} ${Y}/${Z||"normal"} ${q}`}function N($){if($===null||$===void 0)return"";if(typeof $==="string")return $;if(typeof $==="object"&&$.value!==void 0)return String($.value);return String($)}function eY($){let X=[];for(let[,q]of Object.entries($)){let U=q;if(typeof q==="object"&&q!==null&&U.$value&&typeof U.$value==="object"){let K=U.$value;if(K.offsetX!==void 0&&K.offsetY!==void 0){let W=C2(K);if(W)X.push(W)}else{let W=O0(K);if(W)X.push(W)}}else{let K=N(q);if(K)X.push(K)}}let Z=X.some((q)=>/^\d/.test(q)&&q.includes(" "))?", ":" ";return X.join(Z)||String($)}function C$($){if($.extensions?.mediaQuery&&typeof $.extensions.mediaQuery==="string"){let Y=$.extensions.mediaQuery;if(Y=Y.replace(/\{universe\.foundation\.breakpoint\.screen\.width\.lg\}/g,"64rem"),!Y.startsWith("@media"))Y=`@media ${Y}`;return Y}let X=$.name.match(/@(media[^@]+)/);if(X)return`@${X[1].replace(/_/g," ")}`;if($.name.includes("@screen_and__min_width__300px_"))return"@media screen and (min-width: 300px)";if($.name.includes("@screen_and__min_width__600px_"))return"@media screen and (min-width: 600px)";if($.name.includes("@")&&$.name.includes("_"))return"@media (unknown-breakpoint)";return null}function V$($){let X=$?.$name||"Design System",Y=$?.$version||"1.0.0",Z=new Date().toISOString();return`/**
106
+ * ${X} - CSS Custom Properties
107
+ * Version: ${Y}
86
108
  * Generated: ${Z}
87
109
  *
88
110
  * This file contains CSS custom properties (CSS variables) generated from design tokens.
89
111
  * Do not edit this file directly - it will be overwritten.
90
- */`}function W1($){let Y=$.replace(/\r?\n|\r/g,"").replace(/\s+/g," ").trim();return`data:image/svg+xml;base64,${Buffer.from(Y,"utf8").toString("base64")}`}function s$($,Y={}){let{customHeader:X,objectPath:Z="universe.custom.path.icons"}=Y,q="--"+Z.replace(/\./g,"-"),U="";if(X)U+=X+`
112
+ */`}function $1($){let X=$.replace(/\r?\n|\r/g,"").replace(/\s+/g," ").trim();return`data:image/svg+xml;base64,${Buffer.from(X,"utf8").toString("base64")}`}function I0($,X={}){let{customHeader:Y,objectPath:Z="universe.custom.path.icons"}=X,q="--"+Z.replace(/\./g,"-"),U="";if(Y)U+=Y+`
91
113
 
92
114
  `;else U+=`/**
93
115
  * Icon CSS - Base64 Encoded SVG Icons as CSS Custom Properties
@@ -104,198 +126,198 @@ ${H.sort().map((A)=>` ${A}`).join(`
104
126
  */
105
127
 
106
128
  `;U+=`:root {
107
- `;let K=[...$].sort((W,H)=>W.name.localeCompare(H.name));for(let W of K){let H=W.name.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,""),G=`${q}-${W.category}-${H}`;if(Y.hooks?.shortenName?.enabled)G=u0(G,Y.hooks);let z=W1(W.value);U+=` ${G}: url("${z}");
129
+ `;let K=[...$].sort((W,H)=>W.name.localeCompare(H.name));for(let W of K){let H=W.name.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,""),G=`${q}-${W.category}-${H}`;if(X.hooks?.shortenName?.enabled)G=P2(G,X.hooks);let A=$1(W.value);U+=` ${G}: url("${A}");
108
130
  `}return U+=`}
109
- `,{fileName:"tokens.icons.css",content:U.trim()}}var L$=F(()=>{S()});import{readFileSync as K1}from"fs";import{join as l0}from"path";async function a$(){try{let{assets:$}=await n(!0),{icons:Y}=await c(),X=await U$(),Z=$?.icons?.distDir??"build",q=l0(X,Z),U=l0(q,"tokens",await t("json")),K=JSON.parse(K1(U,"utf8")),W=Y?.objectPath??"universe.icons",H=W.split("."),G=K;for(let A of H)if(G&&typeof G==="object"&&A in G)G=G[A];else throw Error(`Icon path ${W} not found in icons file`);let z=[];for(let[A,B]of Object.entries(G))if(typeof B==="object"&&B!==null){for(let[E,L]of Object.entries(B))if(typeof L==="object"&&L!==null){let _=L;z.push({name:E,category:A,value:_.$value||"",description:_.$description||"",style:_.$style||"",dimensions:_.$dimensions})}}return z}catch($){return console.warn("Could not load icon data:",$),[]}}async function n$($,Y={}){let{generateTypes:X=!0,generateConsts:Z=!0}=Y,q=Y.icons;if(!q)q=await a$();let U={...Y,icons:q},K=[];if(X)K.push({fileName:"tokens.types.ts",content:G1($,U),type:"types"});if(Z)K.push({fileName:"tokens.constants.ts",content:H1($,U),type:"constants"});return K.push({fileName:"index.ts",content:z1(K),type:"index"}),K}function G1($,Y){let{tokenInterface:X="DesignTokens",includeJSDoc:Z=!0,icons:q=[]}=Y,U=t$("Type Definitions");if(U+=A1($,Z),U+=B1($,Z),q.length>0)U+=E1(q,Z);return U+=L1($,X,Z),U+=w1($,Z),U}function H1($,Y){let{includeJSDoc:X=!0,icons:Z=[]}=Y,q=t$("Token Constants"),U="TokenPaths, CSSVariableNames";if(Z.length>0)U+=", IconNames, IconCategories, Icon";if(q+=`import type { ${U} } from './tokens.types';
131
+ `,{fileName:"tokens.icons.css",content:U.trim()}}var g$=S(()=>{g()});import{readFileSync as Y1}from"fs";import{join as V2}from"path";async function J0(){try{let{assets:$}=await r(!0),{icons:X}=await b(),Y=await H$(),Z=$?.icons?.distDir??"build",q=V2(Y,Z),U=V2(q,"tokens",await $$("json")),K=JSON.parse(Y1(U,"utf8")),W=X?.objectPath??"universe.icons",H=W.split("."),G=K;for(let z of H)if(G&&typeof G==="object"&&z in G)G=G[z];else throw Error(`Icon path ${W} not found in icons file`);let A=[];for(let[z,L]of Object.entries(G))if(typeof L==="object"&&L!==null){for(let[B,E]of Object.entries(L))if(typeof E==="object"&&E!==null){let _=E;A.push({name:B,category:z,value:_.$value||"",description:_.$description||"",style:_.$style||"",dimensions:_.$dimensions})}}return A}catch($){return console.warn("Could not load icon data:",$),[]}}async function R0($,X={}){let{generateTypes:Y=!0,generateConsts:Z=!0}=X,q=X.icons;if(!q)q=await J0();let U={...X,icons:q},K=[];if(Y)K.push({fileName:"tokens.types.ts",content:X1($,U),type:"types"});if(Z)K.push({fileName:"tokens.constants.ts",content:Z1($,U),type:"constants"});return K.push({fileName:"index.ts",content:q1(K),type:"index"}),K}function X1($,X){let{tokenInterface:Y="DesignTokens",includeJSDoc:Z=!0,icons:q=[]}=X,U=M0("Type Definitions");if(U+=U1($,Z),U+=W1($,Z),q.length>0)U+=K1(q,Z);return U+=G1($,Y,Z),U+=z1($,Z),U}function Z1($,X){let{includeJSDoc:Y=!0,icons:Z=[]}=X,q=M0("Token Constants"),U="TokenPaths, CSSVariableNames";if(Z.length>0)U+=", IconNames, IconCategories, Icon";if(q+=`import type { ${U} } from './tokens.types';
110
132
 
111
- `,q+=Q1($,X),q+=I1($,X),Z.length>0)q+=O1(Z,X);return q+=J1($,X),q}function z1($){let Y=t$("Main Export");if($.some((X)=>X.type==="types"))Y+=`export type * from './tokens.types';
112
- `;if($.some((X)=>X.type==="constants"))Y+=`export * from './tokens.constants';
113
- `;return Y+=`
114
- `,Y}function A1($,Y){let X=$.map((q)=>`"${q.name}"`).join(`
115
- | `),Z="";if(Y)Z+=`/**
133
+ `,q+=A1($,Y),q+=B1($,Y),Z.length>0)q+=L1(Z,Y);return q+=E1($,Y),q}function q1($){let X=M0("Main Export");if($.some((Y)=>Y.type==="types"))X+=`export type * from './tokens.types';
134
+ `;if($.some((Y)=>Y.type==="constants"))X+=`export * from './tokens.constants';
135
+ `;return X+=`
136
+ `,X}function U1($,X){let Y=$.map((q)=>`"${q.name}"`).join(`
137
+ | `),Z="";if(X)Z+=`/**
116
138
  * All available token paths as string literals
117
139
  */
118
140
  `;return Z+=`export type TokenPaths =
119
- | ${X};
141
+ | ${Y};
120
142
 
121
- `,Z}function B1($,Y){let X=R1($),Z="";for(let[q,U]of X){let K=`${N1(q)}TokenValue`,W=new Set(U.map((G)=>Y$(G.value))),H=Array.from(W).join(`
122
- | `);if(Y)Z+=`/**
143
+ `,Z}function W1($,X){let Y=_1($),Z="";for(let[q,U]of Y){let K=`${w1(q)}TokenValue`,W=new Set(U.map((G)=>O$(G.value))),H=Array.from(W).join(`
144
+ | `);if(X)Z+=`/**
123
145
  * Possible values for ${q} tokens
124
146
  */
125
147
  `;Z+=`export type ${K} =
126
148
  | ${H};
127
149
 
128
- `}return Z}function E1($,Y){let X="",Z=$.map((K)=>`"${K.name}"`).join(`
129
- | `);if(Y)X+=`/**
150
+ `}return Z}function K1($,X){let Y="",Z=$.map((K)=>`"${K.name}"`).join(`
151
+ | `);if(X)Y+=`/**
130
152
  * All available icon names as string literals
131
153
  */
132
- `;X+=`export type IconNames =
154
+ `;Y+=`export type IconNames =
133
155
  | ${Z};
134
156
 
135
157
  `;let U=[...new Set($.map((K)=>K.category))].map((K)=>`"${K}"`).join(`
136
- | `);if(Y)X+=`/**
158
+ | `);if(X)Y+=`/**
137
159
  * All available icon categories
138
160
  */
139
- `;if(X+=`export type IconCategories =
161
+ `;if(Y+=`export type IconCategories =
140
162
  | ${U};
141
163
 
142
- `,Y)X+=`/**
164
+ `,X)Y+=`/**
143
165
  * Icon data structure
144
166
  */
145
- `;return X+=`export interface Icon {
146
- `,X+=` /** Icon name */
147
- `,X+=` name: string;
148
- `,X+=` /** Icon category */
149
- `,X+=` category: string;
150
- `,X+=` /** SVG content */
151
- `,X+=` value: string;
152
- `,X+=` /** Icon description */
153
- `,X+=` description?: string;
154
- `,X+=` /** Icon style */
155
- `,X+=` style?: string;
156
- `,X+=` /** Icon dimensions */
157
- `,X+=` dimensions?: {
158
- `,X+=` width: number;
159
- `,X+=` height: number;
160
- `,X+=` };
161
- `,X+=`}
162
-
163
- `,X}function L1($,Y,X){let Z="";if(X)Z+=`/**
167
+ `;return Y+=`export interface Icon {
168
+ `,Y+=` /** Icon name */
169
+ `,Y+=` name: string;
170
+ `,Y+=` /** Icon category */
171
+ `,Y+=` category: string;
172
+ `,Y+=` /** SVG content */
173
+ `,Y+=` value: string;
174
+ `,Y+=` /** Icon description */
175
+ `,Y+=` description?: string;
176
+ `,Y+=` /** Icon style */
177
+ `,Y+=` style?: string;
178
+ `,Y+=` /** Icon dimensions */
179
+ `,Y+=` dimensions?: {
180
+ `,Y+=` width: number;
181
+ `,Y+=` height: number;
182
+ `,Y+=` };
183
+ `,Y+=`}
184
+
185
+ `,Y}function G1($,X,Y){let Z="";if(Y)Z+=`/**
164
186
  * Design tokens interface with all token paths and their values
165
187
  */
166
- `;Z+=`export interface ${Y} {
167
- `;for(let q of $){if(X&&q.description)Z+=` /** ${q.description} */
168
- `;Z+=` "${q.name}": ${Y$(q.value)};
188
+ `;Z+=`export interface ${X} {
189
+ `;for(let q of $){if(Y&&q.description)Z+=` /** ${q.description} */
190
+ `;Z+=` "${q.name}": ${O$(q.value)};
169
191
  `}return Z+=`}
170
192
 
171
- `,Z+=_1($,`${Y}Nested`,X),Z}function _1($,Y,X){let Z=M1($),q="";if(X)q+=`/**
193
+ `,Z+=H1($,`${X}Nested`,Y),Z}function H1($,X,Y){let Z=Q1($),q="";if(Y)q+=`/**
172
194
  * Design tokens interface with nested structure
173
195
  */
174
- `;return q+=`export interface ${Y} {
175
- `,q+=i0(Z,1),q+=`}
196
+ `;return q+=`export interface ${X} {
197
+ `,q+=g2(Z,1),q+=`}
176
198
 
177
- `,q}function w1($,Y){let Z=Array.from(new Set($.map((U)=>U.cssVar))).map((U)=>`"${U}"`).join(`
178
- | `),q="";if(Y)q+=`/**
199
+ `,q}function z1($,X){let Z=Array.from(new Set($.map((U)=>U.cssVar))).map((U)=>`"${U}"`).join(`
200
+ | `),q="";if(X)q+=`/**
179
201
  * All available CSS variable names
180
202
  */
181
203
  `;return q+=`export type CSSVariableNames =
182
204
  | ${Z};
183
205
 
184
- `,q}function Q1($,Y){let X="";if(Y)X+=`/**
206
+ `,q}function A1($,X){let Y="";if(X)Y+=`/**
185
207
  * Object containing all token values
186
208
  */
187
- `;X+=`export const tokenValues = {
188
- `;for(let Z of $){if(Y&&Z.description)X+=` /** ${Z.description} */
189
- `;X+=` "${Z.name}": ${JSON.stringify(Z.value)},
190
- `}return X+=`} as const;
209
+ `;Y+=`export const tokenValues = {
210
+ `;for(let Z of $){if(X&&Z.description)Y+=` /** ${Z.description} */
211
+ `;Y+=` "${Z.name}": ${JSON.stringify(Z.value)},
212
+ `}return Y+=`} as const;
191
213
 
192
- `,X}function O1($,Y){let X="";if(Y)X+=`/**
214
+ `,Y}function L1($,X){let Y="";if(X)Y+=`/**
193
215
  * Array of all available icons
194
216
  */
195
- `;X+=`export const icons: Icon[] = [
196
- `;for(let q of $){if(X+=` {
197
- `,X+=` name: "${q.name}",
198
- `,X+=` category: "${q.category}",
199
- `,X+=` value: ${JSON.stringify(q.value)},
200
- `,q.description)X+=` description: ${JSON.stringify(q.description)},
201
- `;if(q.style)X+=` style: "${q.style}",
202
- `;if(q.dimensions)X+=` dimensions: { width: ${q.dimensions.width}, height: ${q.dimensions.height} },
203
- `;X+=` },
204
- `}if(X+=`];
205
-
206
- `,Y)X+=`/**
217
+ `;Y+=`export const icons: Icon[] = [
218
+ `;for(let q of $){if(Y+=` {
219
+ `,Y+=` name: "${q.name}",
220
+ `,Y+=` category: "${q.category}",
221
+ `,Y+=` value: ${JSON.stringify(q.value)},
222
+ `,q.description)Y+=` description: ${JSON.stringify(q.description)},
223
+ `;if(q.style)Y+=` style: "${q.style}",
224
+ `;if(q.dimensions)Y+=` dimensions: { width: ${q.dimensions.width}, height: ${q.dimensions.height} },
225
+ `;Y+=` },
226
+ `}if(Y+=`];
227
+
228
+ `,X)Y+=`/**
207
229
  * Array of all icon names
208
230
  */
209
- `;X+=`export const iconNames: IconNames[] = [
210
- `;for(let q of $)X+=` "${q.name}",
211
- `;X+=`] as const;
231
+ `;Y+=`export const iconNames: IconNames[] = [
232
+ `;for(let q of $)Y+=` "${q.name}",
233
+ `;Y+=`] as const;
212
234
 
213
- `;let Z=[...new Set($.map((q)=>q.category))];if(Y)X+=`/**
235
+ `;let Z=[...new Set($.map((q)=>q.category))];if(X)Y+=`/**
214
236
  * Array of all icon categories
215
237
  */
216
- `;X+=`export const iconCategories: IconCategories[] = [
217
- `;for(let q of Z)X+=` "${q}",
218
- `;if(X+=`] as const;
238
+ `;Y+=`export const iconCategories: IconCategories[] = [
239
+ `;for(let q of Z)Y+=` "${q}",
240
+ `;if(Y+=`] as const;
219
241
 
220
- `,Y)X+=`/**
242
+ `,X)Y+=`/**
221
243
  * Get icon by name
222
244
  */
223
- `;if(X+=`export function getIcon(name: IconNames): Icon | undefined {
224
- `,X+=` return icons.find(icon => icon.name === name);
225
- `,X+=`}
245
+ `;if(Y+=`export function getIcon(name: IconNames): Icon | undefined {
246
+ `,Y+=` return icons.find(icon => icon.name === name);
247
+ `,Y+=`}
226
248
 
227
- `,Y)X+=`/**
249
+ `,X)Y+=`/**
228
250
  * Get icons by category
229
251
  */
230
- `;return X+=`export function getIconsByCategory(category: IconCategories): Icon[] {
231
- `,X+=` return icons.filter(icon => icon.category === category);
232
- `,X+=`}
252
+ `;return Y+=`export function getIconsByCategory(category: IconCategories): Icon[] {
253
+ `,Y+=` return icons.filter(icon => icon.category === category);
254
+ `,Y+=`}
233
255
 
234
- `,X}function I1($,Y){let X="";if(Y)X+=`/**
256
+ `,Y}function B1($,X){let Y="";if(X)Y+=`/**
235
257
  * Object mapping token paths to CSS variable names
236
258
  */
237
- `;X+=`export const cssVariableNames = {
238
- `;for(let Z of $)X+=` "${Z.name}": "${Z.cssVar}",
239
- `;return X+=`} as const;
259
+ `;Y+=`export const cssVariableNames = {
260
+ `;for(let Z of $)Y+=` "${Z.name}": "${Z.cssVar}",
261
+ `;return Y+=`} as const;
240
262
 
241
- `,X}function J1($,Y){let X="";if(Y)X+=`/**
263
+ `,Y}function E1($,X){let Y="";if(X)Y+=`/**
242
264
  * Get the value of a design token
243
265
  */
244
- `;if(X+=`export function getTokenValue<T extends TokenPaths>(tokenPath: T): typeof tokenValues[T] {
266
+ `;if(Y+=`export function getTokenValue<T extends TokenPaths>(tokenPath: T): typeof tokenValues[T] {
245
267
  return tokenValues[tokenPath];
246
268
  }
247
269
 
248
- `,Y)X+=`/**
270
+ `,X)Y+=`/**
249
271
  * Get the CSS variable name for a design token
250
272
  */
251
- `;if(X+=`export function getCSSVariableName<T extends TokenPaths>(tokenPath: T): typeof cssVariableNames[T] {
273
+ `;if(Y+=`export function getCSSVariableName<T extends TokenPaths>(tokenPath: T): typeof cssVariableNames[T] {
252
274
  return cssVariableNames[tokenPath];
253
275
  }
254
276
 
255
- `,Y)X+=`/**
277
+ `,X)Y+=`/**
256
278
  * Get a CSS var() reference for a design token
257
279
  */
258
- `;if(X+=`export function getCSSVariableReference<T extends TokenPaths>(tokenPath: T): string {
280
+ `;if(Y+=`export function getCSSVariableReference<T extends TokenPaths>(tokenPath: T): string {
259
281
  return \`var(\${cssVariableNames[tokenPath]})\`;
260
282
  }
261
283
 
262
- `,Y)X+=`/**
284
+ `,X)Y+=`/**
263
285
  * Check if a token path exists
264
286
  */
265
- `;return X+=`export function hasToken(tokenPath: string): tokenPath is TokenPaths {
287
+ `;return Y+=`export function hasToken(tokenPath: string): tokenPath is TokenPaths {
266
288
  return tokenPath in tokenValues;
267
289
  }
268
290
 
269
- `,X}function R1($){let Y=new Map;for(let X of $){if(!Y.has(X.type))Y.set(X.type,[]);Y.get(X.type).push(X)}return Y}function M1($){let Y={};for(let X of $){if(X.path.some((H)=>H.includes("@")||H.includes("#")||H.includes("-")||H.includes(".")))continue;let q=Y,U=[...X.path];for(let H=0;H<U.length-1;H++){let G=U[H];if(!q[G])q[G]={};q=q[G]}let K=U[U.length-1],W=Y$(X.value);q[K]=W}return Y}function i0($,Y){let X="",Z=" ".repeat(Y);for(let[q,U]of Object.entries($)){let K=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(q)?q:`"${q}"`;if(typeof U==="object"&&!Array.isArray(U))X+=`${Z}${K}: {
270
- `,X+=i0(U,Y+1),X+=`${Z}};
271
- `;else X+=`${Z}${K}: ${U};
272
- `}return X}function Y$($){if(typeof $==="string")return`"${$}"`;else if(typeof $==="number")return $.toString();else if(typeof $==="boolean")return $.toString();else if(Array.isArray($)){let Y=new Set($.map((Z)=>Y$(Z)));return`Array<${Array.from(Y).join(" | ")}>`}else if($===null)return"null";else if($===void 0)return"undefined";else if(typeof $==="object"&&$!==null)return`{ ${Object.entries($).map(([Z,q])=>`${Z}: ${Y$(q)}`).join("; ")} }`;else return"unknown"}function N1($){if(!$||typeof $!=="string")return"";return $.charAt(0).toUpperCase()+$.slice(1)}function t$($){let Y=new Date().toISOString();return`/**
291
+ `,Y}function _1($){let X=new Map;for(let Y of $){if(!X.has(Y.type))X.set(Y.type,[]);X.get(Y.type).push(Y)}return X}function Q1($){let X={};for(let Y of $){if(Y.path.some((H)=>H.includes("@")||H.includes("#")||H.includes("-")||H.includes(".")))continue;let q=X,U=[...Y.path];for(let H=0;H<U.length-1;H++){let G=U[H];if(!q[G])q[G]={};q=q[G]}let K=U[U.length-1],W=O$(Y.value);q[K]=W}return X}function g2($,X){let Y="",Z=" ".repeat(X);for(let[q,U]of Object.entries($)){let K=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(q)?q:`"${q}"`;if(typeof U==="object"&&!Array.isArray(U))Y+=`${Z}${K}: {
292
+ `,Y+=g2(U,X+1),Y+=`${Z}};
293
+ `;else Y+=`${Z}${K}: ${U};
294
+ `}return Y}function O$($){if(typeof $==="string")return`"${$}"`;else if(typeof $==="number")return $.toString();else if(typeof $==="boolean")return $.toString();else if(Array.isArray($)){let X=new Set($.map((Z)=>O$(Z)));return`Array<${Array.from(X).join(" | ")}>`}else if($===null)return"null";else if($===void 0)return"undefined";else if(typeof $==="object"&&$!==null)return`{ ${Object.entries($).map(([Z,q])=>`${Z}: ${O$(q)}`).join("; ")} }`;else return"unknown"}function w1($){if(!$||typeof $!=="string")return"";return $.charAt(0).toUpperCase()+$.slice(1)}function M0($){let X=new Date().toISOString();return`/**
273
295
  * ${$}
274
- * Generated: ${Y}
296
+ * Generated: ${X}
275
297
  *
276
298
  * This file is auto-generated from design tokens.
277
299
  * Do not edit this file directly - it will be overwritten.
278
300
  */
279
301
 
280
- `}var o$=F(()=>{S()});var X$="did";var S=F(()=>{s();I$();N$();s();K$();Q0();O0();M0();I$();N$();p$();l$();L$();o$();$0()});import{readFileSync as x1,mkdirSync as j1}from"fs";import{writeFile as s0,readdir as S1,mkdir as P1}from"fs/promises";import{resolve as D1,relative as a0,join as _$,dirname as b1}from"path";import C1 from"lodash";async function n0($){let Y=await S1($,{withFileTypes:!0}),X=await Promise.all(Y.map((Z)=>{let q=D1($,Z.name);return Z.isDirectory()?n0(q):q}));return Array.prototype.concat(...X)}async function Y0(){let{assets:$,icons:Y,tokenNamespace:X,__dirname:Z,buildDir:q}=await m(),U=_$(Z,$?.icons?.sourceDir??"icons"),K="build",W=$?.icons?.distDir??"build",H=_$(Z,W),G=_$(Z,q,"icons");if(!$?.icons?.sourceDir){console.warn("Skipping icon build: iconsDir is not defined in the project paths.");return}a(_$(Z,q));let z=(await n0(U)).filter((Q)=>Q.endsWith(".svg")),E=(await Promise.all(z.map(async(Q)=>{let w=x1(Q,"utf8").replace(/(\s+(?=(?:[^"]*"[^"]*")*[^"]*$))/g," ").trim()??"";w=await h$(w);let I=a0(U,Q).split("/").pop(),N=(w.match(/name="(.*?)"/)??[])[1]??I?.replace(".svg",""),h=(w.match(/data-style="(.*?)"/)??[])[1],G2=(w.match(/description="(.*?)"/)??[])[1],[U0]=w.match(/<svg[^>]*>/)??[],[,H2]=U0?.match(/width="([\d.]+)(px)?"/)??[],[,z2]=U0?.match(/height="([\d.]+)(px)?"/)??[];if(h!=="animated"&&h!=="custom")return{path:Q,folder:a0(U,Q).split("/").slice(0,-1).concat(N),file:I,style:h,content:w,name:N,dimensions:{width:Number(H2),height:Number(z2)},description:G2??""};return}))).filter((Q)=>Q!==void 0).reduce((Q,w)=>{if(w?.style!=="animated"&&w?.style!=="custom"&&w)X0(Q,w.folder.join("."),{$type:"icon",$name:w.name,$description:w.description,$style:w.style,$value:w.content,$dimensions:w.dimensions,...V1(Q,w.folder.join("."))});return Q},{}),L=Y?.objectPath??`${X}.icons`;Object.keys(E).forEach(async(Q)=>{let w=`${G}/${Q}`,I=`${w}/svg.${Q}.tokens.json`;await P1(w,{recursive:!0});let N=X0({},`${L}${L?".":""}${Q}`,E[Q]);await s0(I,JSON.stringify(N,null,2),{flag:"w",encoding:"utf-8"})});let _=`${H}/tokens/${await t("json")}`,J=b1(_);j1(J,{recursive:!0});let O=X0({},L,E);await s0(_,JSON.stringify(O,null,2),{flag:"w",encoding:"utf-8"})}var X0,V1,pX;var t0=F(()=>{S();({set:X0,get:V1}=C1);pX=Y0().catch(($)=>{console.error($),process.exit(1)})});function $2($,Y={}){let X=[],Z=Y.typescript?"ts":"js",q=Y.modes||[],U=$.filter((W)=>W.extensions?.mediaQuery||W.name.includes("@screen")||W.name.includes("@_")),K=$.filter((W)=>!W.extensions?.mediaQuery&&!W.name.includes("@screen")&&!W.name.includes("@_"));if(Y.separateThemeFiles&&q.length>0){let W=q.join("|"),H=new RegExp(`#(${W})$`),G=new Map;for(let z of q)G.set(z,[]);for(let z of K){let A=z.name.match(H);if(A){let B=A[1];G.get(B).push(z)}else{let B=q[0];G.get(B).push(z)}}for(let z of q){let A=G.get(z)||[];if(A.length>0){if(Y.typescript){let B=X2(A,z);X.push({fileName:`${z}.d.ts`,content:v1(B,Y,z),theme:z})}X.push({fileName:`${z}.${Z}`,content:e0(A,{...Y,theme:z}),theme:z})}}}else X.push({fileName:`tokens.${Z}`,content:e0(K,Y)});if(U.length>0)X.push({fileName:`breakpoints.${Z}`,content:g1(U,$,Y)});if(Y.separateThemeFiles&&X.length>1)X.push({fileName:`index.${Z}`,content:m1(X,Y)});return X}function g1($,Y,X={}){let{typescript:Z,includeJSDoc:q,moduleType:U="es",customHeader:K,modes:W=[]}=X,H=new Map(Y.map((B)=>[B.name,B])),G={};for(let B of $){let E=B.extensions?.mediaQuery||T1(B.name),L=W.length>0?W[0]:"default";for(let O of W)if(B.name.includes(`#${O}`)){L=O;break}if(typeof E==="string"&&E.includes("{")&&E.includes("}"))E=f1(E,H);if(!G[E])G[E]={};if(!G[E][L])G[E][L]={};let _=y1(B.name),J=h1(_,w$(B.value,H));G[E][L]={...G[E][L],...J}}let z=Object.keys(G).sort((B,E)=>{let L=o0(B),_=o0(E);return L-_}).reduce((B,E)=>{return B[E]=G[E],B},{}),A="";if(K)A+=`${K}
302
+ `}var N0=S(()=>{g()});function O1($,X,Y){let Z=P($,{isIncludedOriginalValue:!0}),q=V($,Y);if(!q||!d($,"mode",{isIncludedOriginalValue:!1}))q=Z;return R$($,q,X,Y)}function F$($,X,Y){let Z=O1($,X,Y),q=typeof Z==="string"?t(Z):null;if(q&&(q?.length??0)>=1)return n(Z,q,X,Y);else return I1($,X,Y)}function I1($,X,Y){return R$($,d$($,X,Y),X,Y)}function R$($,X,Y,Z){if(!$)return null;if($.$type==="color")X=J$(X,$,Y,Z);else if($.$type==="composition"||$.$type==="typography")X=a($,Y,Z);return X}var w$="did";var g=S(()=>{U$();p$();c$();U$();B$();K2();G2();H2();p$();c$();z0();Q0();g$();N0();x0()});import{readFileSync as J1,mkdirSync as R1}from"fs";import{writeFile as y2,readdir as M1,mkdir as N1}from"fs/promises";import{resolve as F1,relative as f2,join as T$,dirname as x1}from"path";import j1 from"lodash";async function h2($){let X=await M1($,{withFileTypes:!0}),Y=await Promise.all(X.map((Z)=>{let q=F1($,Z.name);return Z.isDirectory()?h2(q):q}));return Array.prototype.concat(...Y)}async function S0(){let{assets:$,icons:X,tokenNamespace:Y,__dirname:Z,buildDir:q}=await u(),U=T$(Z,$?.icons?.sourceDir??"icons"),K="build",W=$?.icons?.distDir??"build",H=T$(Z,W),G=T$(Z,q,"icons");if(!$?.icons?.sourceDir){console.warn("Skipping icon build: iconsDir is not defined in the project paths.");return}l(T$(Z,q));let A=(await h2(U)).filter((O)=>O.endsWith(".svg")),B=(await Promise.all(A.map(async(O)=>{let w=J1(O,"utf8").replace(/(\s+(?=(?:[^"]*"[^"]*")*[^"]*$))/g," ").trim()??"";w=await G0(w);let I=f2(U,O).split("/").pop(),j=(w.match(/name="(.*?)"/)??[])[1]??I?.replace(".svg",""),c=(w.match(/data-style="(.*?)"/)??[])[1],s2=(w.match(/description="(.*?)"/)??[])[1],[C0]=w.match(/<svg[^>]*>/)??[],[,a2]=C0?.match(/width="([\d.]+)(px)?"/)??[],[,n2]=C0?.match(/height="([\d.]+)(px)?"/)??[];if(c!=="animated"&&c!=="custom")return{path:O,folder:f2(U,O).split("/").slice(0,-1).concat(j),file:I,style:c,content:w,name:j,dimensions:{width:Number(a2),height:Number(n2)},description:s2??""};return}))).filter((O)=>O!==void 0).reduce((O,w)=>{if(w?.style!=="animated"&&w?.style!=="custom"&&w)j0(O,w.folder.join("."),{$type:"icon",$name:w.name,$description:w.description,$style:w.style,$value:w.content,$dimensions:w.dimensions,...S1(O,w.folder.join("."))});return O},{}),E=X?.objectPath??`${Y}.icons`;Object.keys(B).forEach(async(O)=>{let w=`${G}/${O}`,I=`${w}/svg.${O}.tokens.json`;await N1(w,{recursive:!0});let j=j0({},`${E}${E?".":""}${O}`,B[O]);await y2(I,JSON.stringify(j,null,2),{flag:"w",encoding:"utf-8"})});let _=`${H}/tokens/${await $$("json")}`,J=x1(_);R1(J,{recursive:!0});let Q=j0({},E,B);await y2(_,JSON.stringify(Q,null,2),{flag:"w",encoding:"utf-8"})}var j0,S1,LX;var v2=S(()=>{g();({set:j0,get:S1}=j1);LX=S0().catch(($)=>{console.error($),process.exit(1)})});function d2($,X={}){let Y=[],Z=X.typescript?"ts":"js",q=X.modes||[],U=$.filter((W)=>W.extensions?.mediaQuery||W.name.includes("@screen")||W.name.includes("@_")),K=$.filter((W)=>!W.extensions?.mediaQuery&&!W.name.includes("@screen")&&!W.name.includes("@_"));if(X.separateThemeFiles&&q.length>0){let W=q.join("|"),H=new RegExp(`#(${W})$`),G=new Map;for(let A of q)G.set(A,[]);for(let A of K){let z=A.name.match(H);if(z){let L=z[1];G.get(L).push(A)}else{let L=q[0];G.get(L).push(A)}}for(let A of q){let z=G.get(A)||[];if(z.length>0){if(X.typescript){let L=u2(z,A);Y.push({fileName:`${A}.d.ts`,content:g1(L,X,A),theme:A})}Y.push({fileName:`${A}.${Z}`,content:m2(z,{...X,theme:A}),theme:A})}}}else Y.push({fileName:`tokens.${Z}`,content:m2(K,X)});if(U.length>0)Y.push({fileName:`breakpoints.${Z}`,content:D1(U,$,X)});if(X.separateThemeFiles&&Y.length>1)Y.push({fileName:`index.${Z}`,content:y1(Y,X)});return Y}function D1($,X,Y={}){let{typescript:Z,includeJSDoc:q,moduleType:U="es",customHeader:K,modes:W=[]}=Y,H=new Map(X.map((L)=>[L.name,L])),G={};for(let L of $){let B=L.extensions?.mediaQuery||P1(L.name),E=W.length>0?W[0]:"default";for(let Q of W)if(L.name.includes(`#${Q}`)){E=Q;break}if(typeof B==="string"&&B.includes("{")&&B.includes("}"))B=C1(B,H);if(!G[B])G[B]={};if(!G[B][E])G[B][E]={};let _=b1(L.name),J=V1(_,y$(L.value,H));G[B][E]={...G[B][E],...J}}let A=Object.keys(G).sort((L,B)=>{let E=p2(L),_=p2(B);return E-_}).reduce((L,B)=>{return L[B]=G[B],L},{}),z="";if(K)z+=`${K}
281
303
 
282
- `;else A+=`/**
283
- `,A+=` * Design Tokens - Breakpoints
284
- `,A+=` * Auto-generated from design token definitions
285
- `,A+=` * Do not edit this file directly
286
- `,A+=` */
304
+ `;else z+=`/**
305
+ `,z+=` * Design Tokens - Breakpoints
306
+ `,z+=` * Auto-generated from design token definitions
307
+ `,z+=` * Do not edit this file directly
308
+ `,z+=` */
287
309
 
288
- `;if(Z)A+=Y2(z,q),A+=`
289
- `;if(U==="es"){if(Z)A+=`const breakpoints: Tokens = ${u(z,q,0)};
310
+ `;if(Z)z+=k2(A,q),z+=`
311
+ `;if(U==="es"){if(Z)z+=`const breakpoints: Tokens = ${s(A,q,0)};
290
312
 
291
- `;else A+=`const breakpoints = ${u(z,q,0)};
313
+ `;else z+=`const breakpoints = ${s(A,q,0)};
292
314
 
293
- `;A+=`export default breakpoints;
294
- `}else A+=`const breakpoints = ${u(z,q,0)};
315
+ `;z+=`export default breakpoints;
316
+ `}else z+=`const breakpoints = ${s(A,q,0)};
295
317
 
296
- `,A+=`module.exports = breakpoints;
297
- `,A+=`module.exports.default = breakpoints;
298
- `;return A}function T1($){if($.includes("@_max_width_")){let Y=$.match(/@_max_width___(.+?)__/);if(Y)return`screen and (max-width: {${Y[1].replace(/_/g,".")}})`}if($.includes("@_min_width_")){let Y=$.match(/@_min_width___(.+?)__/);if(Y)return`screen and (min-width: {${Y[1].replace(/_/g,".")}})`}return"screen"}function y1($){let Y=$.replace(/@_.*?__/,"").replace(/@screen.*/,"").replace(/#[^#]*$/,"").replace(/^universe\./,"");return Y=Y.replace(/_universe_foundation_breakpoint_screen_width_[^_]+__?$/,""),Y}function o0($){let Y=$.match(/(\d+(?:\.\d+)?)/);return Y?parseFloat(Y[1]):0}function f1($,Y){return $.replace(/\{([^}]+)\}/g,(X,Z)=>{let q=Y.get(Z);if(q){let U=q.value;if(typeof U==="object"&&U!==null&&"$value"in U)U=U.$value;return String(U)}return X})}function h1($,Y){let X=$.split("."),Z={},q=Z;for(let U=0;U<X.length-1;U++)q[X[U]]={},q=q[X[U]];return q[X[X.length-1]]=Y,Z}function e0($,Y={}){let{typescript:X,includeJSDoc:Z,moduleType:q="es",customHeader:U,theme:K}=Y,W="";if(U)W+=`${U}
318
+ `,z+=`module.exports = breakpoints;
319
+ `,z+=`module.exports.default = breakpoints;
320
+ `;return z}function P1($){if($.includes("@_max_width_")){let X=$.match(/@_max_width___(.+?)__/);if(X)return`screen and (max-width: {${X[1].replace(/_/g,".")}})`}if($.includes("@_min_width_")){let X=$.match(/@_min_width___(.+?)__/);if(X)return`screen and (min-width: {${X[1].replace(/_/g,".")}})`}return"screen"}function b1($){let X=$.replace(/@_.*?__/,"").replace(/@screen.*/,"").replace(/#[^#]*$/,"").replace(/^universe\./,"");return X=X.replace(/_universe_foundation_breakpoint_screen_width_[^_]+__?$/,""),X}function p2($){let X=$.match(/(\d+(?:\.\d+)?)/);return X?parseFloat(X[1]):0}function C1($,X){return $.replace(/\{([^}]+)\}/g,(Y,Z)=>{let q=X.get(Z);if(q){let U=q.value;if(typeof U==="object"&&U!==null&&"$value"in U)U=U.$value;return String(U)}return Y})}function V1($,X){let Y=$.split("."),Z={},q=Z;for(let U=0;U<Y.length-1;U++)q[Y[U]]={},q=q[Y[U]];return q[Y[Y.length-1]]=X,Z}function m2($,X={}){let{typescript:Y,includeJSDoc:Z,moduleType:q="es",customHeader:U,theme:K}=X,W="";if(U)W+=`${U}
299
321
 
300
322
  `;else W+=`/**
301
323
  `,W+=` * Design Tokens - ${K?`${K.charAt(0).toUpperCase()+K.slice(1)} Theme`:"All Tokens"}
@@ -303,28 +325,28 @@ ${H.sort().map((A)=>` ${A}`).join(`
303
325
  `,W+=` * Do not edit this file directly
304
326
  `,W+=` */
305
327
 
306
- `;let H=X2($,K);if(X)if(Y.separateThemeFiles&&K)W+=`import type { Tokens } from "./${K}.d";
328
+ `;let H=u2($,K);if(Y)if(X.separateThemeFiles&&K)W+=`import type { Tokens } from "./${K}.d";
307
329
 
308
- `;else W+=Y2(H,Z),W+=`
309
- `;if(q==="es"){if(X)W+=`const tokens: Tokens = ${u(H,Z,0)};
330
+ `;else W+=k2(H,Z),W+=`
331
+ `;if(q==="es"){if(Y)W+=`const tokens: Tokens = ${s(H,Z,0)};
310
332
 
311
- `;else W+=`const tokens = ${u(H,Z,0)};
333
+ `;else W+=`const tokens = ${s(H,Z,0)};
312
334
 
313
335
  `;W+=`export default tokens;
314
336
  `;let G=Object.keys(H);if(G.length>0){W+=`
315
337
  // Named exports for convenience
316
- `;for(let z of G)W+=`export const ${z} = tokens.${z};
317
- `}}else W+=`const tokens = ${u(H,Z,0)};
338
+ `;for(let A of G)W+=`export const ${A} = tokens.${A};
339
+ `}}else W+=`const tokens = ${s(H,Z,0)};
318
340
 
319
341
  `,W+=`module.exports = tokens;
320
342
  `,W+=`module.exports.default = tokens;
321
- `;return W}function X2($,Y){let X={},Z=new Map($.map((q)=>[q.name,q]));for(let q of $){let U=q.name;if(Y){if(U.includes(`#${Y}`))U=U.replace(`#${Y}`,"")}else U=U.replace(/#[^#]*$/,"");let K=U.split("."),W=X;for(let G=0;G<K.length-1;G++){let z=K[G];if(!W[z])W[z]={};W=W[z]}let H=K[K.length-1];W[H]=w$(q.value,Z)}return X}function w$($,Y){if(typeof $==="object"&&$!==null&&!Array.isArray($)){let X=$;if(X.color&&typeof X.color==="string"&&X.color.includes("{")&&X.color.includes("}")){let Z=D($,"shadow");if(typeof Z==="string"&&!Z.includes("{")){let q={...X},U=Z.split(" "),K=U[U.length-1];if(K&&K.startsWith("#"))q.color=K;else q.color=D(X.color,"color");return q}}}if(typeof $==="string"){if($.startsWith("{")&&$.endsWith("}")){let X=$.slice(1,-1),Z=Y.get(X);if(Z)return Z.value;let q=D($,"color");if(q!==$)return q}return $}if(Array.isArray($))return $.map((X)=>w$(X,Y));if(typeof $==="object"&&$!==null){let X={};for(let[Z,q]of Object.entries($))X[Z]=w$(q,Y);return X}return $}function Y2($,Y){let X="";if(Y)X+=`/**
343
+ `;return W}function u2($,X){let Y={},Z=new Map($.map((q)=>[q.name,q]));for(let q of $){let U=q.name;if(X){if(U.includes(`#${X}`))U=U.replace(`#${X}`,"")}else U=U.replace(/#[^#]*$/,"");let K=U.split("."),W=Y;for(let G=0;G<K.length-1;G++){let A=K[G];if(!W[A])W[A]={};W=W[A]}let H=K[K.length-1];W[H]=y$(q.value,Z)}return Y}function y$($,X){if(typeof $==="object"&&$!==null&&!Array.isArray($)){let Y=$;if(Y.color&&typeof Y.color==="string"&&Y.color.includes("{")&&Y.color.includes("}")){let Z=f($,"shadow");if(typeof Z==="string"&&!Z.includes("{")){let q={...Y},U=Z.split(" "),K=U[U.length-1];if(K&&K.startsWith("#"))q.color=K;else q.color=f(Y.color,"color");return q}}}if(typeof $==="string"){if($.startsWith("{")&&$.endsWith("}")){let Y=$.slice(1,-1),Z=X.get(Y);if(Z)return Z.value;let q=f($,"color");if(q!==$)return q}return $}if(Array.isArray($))return $.map((Y)=>y$(Y,X));if(typeof $==="object"&&$!==null){let Y={};for(let[Z,q]of Object.entries($))Y[Z]=y$(q,X);return Y}return $}function k2($,X){let Y="";if(X)Y+=`/**
322
344
  * Token object type definition
323
345
  */
324
- `;return X+=`type Tokens = ${Z0($,0)};
325
- `,X}function v1($,Y,X){let{customHeader:Z,includeJSDoc:q}=Y,U="";if(Z)U+=`${Z}
346
+ `;return Y+=`type Tokens = ${D0($,0)};
347
+ `,Y}function g1($,X,Y){let{customHeader:Z,includeJSDoc:q}=X,U="";if(Z)U+=`${Z}
326
348
 
327
- `;else{let K=X?` - ${X.charAt(0).toUpperCase()+X.slice(1)} Theme`:"";U+=`/**
349
+ `;else{let K=Y?` - ${Y.charAt(0).toUpperCase()+Y.slice(1)} Theme`:"";U+=`/**
328
350
  `,U+=` * Universe Design System Tokens - Type Definitions${K}
329
351
  `,U+=` * Auto-generated from design token definitions
330
352
  `,U+=` * Do not edit this file directly
@@ -333,39 +355,39 @@ ${H.sort().map((A)=>` ${A}`).join(`
333
355
  `}if(q)U+=`/**
334
356
  * Token object type definition
335
357
  */
336
- `;return U+=`export type Tokens = ${Z0($,0)};
337
- `,U}function Z0($,Y){if(typeof $!=="object"||$===null)return typeof $==="string"?"string":typeof $==="number"?"number":typeof $==="boolean"?"boolean":"any";let X=" ".repeat(Y+1),Z=Object.entries($);if(Z.length===0)return"{}";let q=`{
338
- `;for(let[U,K]of Z){let W=p1(U)?`"${U}"`:U;q+=`${X}${W}: ${Z0(K,Y+1)};
339
- `}return q+=" ".repeat(Y)+"}",q}function p1($){return $.startsWith("@")||$.includes(" ")||$.includes("-")||$.includes("(")||$.includes(")")||$.includes("@")||$.includes(":")||!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($)}function u($,Y,X=0){if(typeof $!=="object"||$===null)return JSON.stringify($);let Z=" ".repeat(X),q=" ".repeat(X+1),U=Object.entries($);if(U.length===0)return"{}";let K=`{
340
- `;for(let W=0;W<U.length;W++){let[H,G]=U[W],z=W===U.length-1;if(Y&&typeof G==="string")K+=`${q}/** Token value: ${JSON.stringify(G)} */
341
- `;let A=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)?H:JSON.stringify(H),B=u(G,Y,X+1);K+=`${q}${A}: ${B}${z?"":","}
342
- `}return K+=`${Z}}`,K}function m1($,Y){let X=Y.typescript?"ts":"js",{moduleType:Z="es",customHeader:q}=Y,U=(W)=>{return W.replace(/-([a-z])/g,(H,G)=>G.toUpperCase())},K="";if(q)K+=`${q}
358
+ `;return U+=`export type Tokens = ${D0($,0)};
359
+ `,U}function D0($,X){if(typeof $!=="object"||$===null)return typeof $==="string"?"string":typeof $==="number"?"number":typeof $==="boolean"?"boolean":"any";let Y=" ".repeat(X+1),Z=Object.entries($);if(Z.length===0)return"{}";let q=`{
360
+ `;for(let[U,K]of Z){let W=T1(U)?`"${U}"`:U;q+=`${Y}${W}: ${D0(K,X+1)};
361
+ `}return q+=" ".repeat(X)+"}",q}function T1($){return $.startsWith("@")||$.includes(" ")||$.includes("-")||$.includes("(")||$.includes(")")||$.includes("@")||$.includes(":")||!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($)}function s($,X,Y=0){if(typeof $!=="object"||$===null)return JSON.stringify($);let Z=" ".repeat(Y),q=" ".repeat(Y+1),U=Object.entries($);if(U.length===0)return"{}";let K=`{
362
+ `;for(let W=0;W<U.length;W++){let[H,G]=U[W],A=W===U.length-1;if(X&&typeof G==="string")K+=`${q}/** Token value: ${JSON.stringify(G)} */
363
+ `;let z=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)?H:JSON.stringify(H),L=s(G,X,Y+1);K+=`${q}${z}: ${L}${A?"":","}
364
+ `}return K+=`${Z}}`,K}function y1($,X){let Y=X.typescript?"ts":"js",{moduleType:Z="es",customHeader:q}=X,U=(W)=>{return W.replace(/-([a-z])/g,(H,G)=>G.toUpperCase())},K="";if(q)K+=`${q}
343
365
 
344
366
  `;else K+=`/**
345
367
  `,K+=` * Design Tokens - Index
346
368
  `,K+=` * Exports all token themes for convenient importing
347
369
  `,K+=` */
348
370
 
349
- `;if(Z==="es"){for(let W of $){if(W.fileName===`index.${X}`)continue;if(!W.fileName.endsWith(".d.ts"))continue;let H=W.fileName.replace(".d.ts",""),G=U(W.theme||H);K+=`export type { Tokens as ${G.charAt(0).toUpperCase()+G.slice(1)}Tokens } from './${H}.d';
371
+ `;if(Z==="es"){for(let W of $){if(W.fileName===`index.${Y}`)continue;if(!W.fileName.endsWith(".d.ts"))continue;let H=W.fileName.replace(".d.ts",""),G=U(W.theme||H);K+=`export type { Tokens as ${G.charAt(0).toUpperCase()+G.slice(1)}Tokens } from './${H}.d';
350
372
  `}K+=`
351
- `;for(let W of $){if(W.fileName===`index.${X}`)continue;if(W.fileName.endsWith(".d.ts"))continue;let H=W.fileName.replace(`.${X}`,""),G=U(W.theme||H);K+=`export { default as ${G} } from './${H}${Y.typescript?"":".js"}';
373
+ `;for(let W of $){if(W.fileName===`index.${Y}`)continue;if(W.fileName.endsWith(".d.ts"))continue;let H=W.fileName.replace(`.${Y}`,""),G=U(W.theme||H);K+=`export { default as ${G} } from './${H}${X.typescript?"":".js"}';
352
374
  `}K+=`
353
375
  // Convenience re-exports
354
- `,K+=`export { default } from './light${Y.typescript?"":".js"}';
355
- `}else{for(let W of $){if(W.fileName===`index.${X}`)continue;if(W.fileName.endsWith(".d.ts"))continue;let H=W.fileName.replace(`.${X}`,""),G=U(W.theme||H);K+=`exports.${G} = require('./${H}');
376
+ `,K+=`export { default } from './light${X.typescript?"":".js"}';
377
+ `}else{for(let W of $){if(W.fileName===`index.${Y}`)continue;if(W.fileName.endsWith(".d.ts"))continue;let H=W.fileName.replace(`.${Y}`,""),G=U(W.theme||H);K+=`exports.${G} = require('./${H}');
356
378
  `}K+=`
357
379
  // Default export points to light theme
358
380
  `,K+=`module.exports = require('./light');
359
- `}return K}var Z2=F(()=>{L$()});var q2={};W0(q2,{validateCSSFiles:()=>d1,printValidationResults:()=>u1});import{readFileSync as q0,existsSync as i}from"fs";import{join as V}from"path";function d1($,Y){let X={isValid:!0,errors:[],warnings:[],checks:[]},Z=V($,"css"),q=V(Z,"tokens.css"),U=i(q);if(X.checks.push({name:"CSS file exists: tokens.css",passed:U,message:U?void 0:"Missing required CSS file: tokens.css"}),!U)X.errors.push("Missing required CSS file: tokens.css"),X.isValid=!1;if(Y.$metaData?.tokens?.css?.mediaQuery?.separateThemeFiles??!1){let A=V(Z,"tokens.dark.css"),B=i(A);if(X.checks.push({name:"CSS file exists: tokens.dark.css",passed:B,message:B?void 0:"Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"}),!B)X.errors.push("Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"),X.isValid=!1}let W=V(Z,"tokens.breakpoints.css");if(i(W))X.checks.push({name:"CSS file exists: tokens.breakpoints.css",passed:!0,message:void 0});let G=Y.$metaData?.tokens?.css?.hooks?.shortenName;if(G?.enabled&&i(V(Z,"tokens.css"))){let A=q0(V(Z,"tokens.css"),"utf8");if(G.prefix)for(let{find:B,replace:E}of G.prefix){let L=`--${X$}-${B}`,_=`--${E}`,J=A.includes(L),O=A.includes(_);if(X.checks.push({name:`Prefix hook applied: ${B} → ${E}`,passed:!J&&O,message:J?`Old prefix "${L}" still found in CSS, should be "${_}"`:void 0}),J)X.errors.push(`Prefix transformation failed: "${L}" should be replaced with "${_}"`),X.isValid=!1}if(G.suffix)for(let{find:B,replace:E}of G.suffix){let _=new RegExp(`--[^:]+${B.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"g").test(A);if(X.checks.push({name:`Suffix hook applied: ${B} → ${E}`,passed:!_,message:_?`Old suffix "${B}" still found in CSS variable names`:void 0}),_)X.errors.push(`Suffix transformation failed: "${B}" should be removed/replaced with "${E}"`),X.isValid=!1}}if(i(V(Z,"tokens.css"))){let B=q0(V(Z,"tokens.css"),"utf8").match(/:\s*{[^}]+}/g);if(X.checks.push({name:"No unresolved token references",passed:!B,message:B?`Found unresolved references: ${B.join(", ")}`:void 0}),B)X.errors.push(`Unresolved token references found: ${B.join(", ")}`),X.isValid=!1}let z=["tokens.css","tokens.dark.css","tokens.breakpoints.css"];for(let A of z){let B=V(Z,A);if(i(B)){let E=q0(B,"utf8"),L=(E.match(/\{/g)||[]).length-(E.match(/\}/g)||[]).length;if(X.checks.push({name:`CSS syntax valid: ${A}`,passed:L===0,message:L!==0?`Mismatched braces in ${A}`:void 0}),L!==0)X.errors.push(`CSS syntax error in ${A}: mismatched braces`),X.isValid=!1}}return X}function u1($){console.log(`
381
+ `}return K}var c2=S(()=>{g$()});var l2={};h$(l2,{validateCSSFiles:()=>f1,printValidationResults:()=>h1});import{readFileSync as P0,existsSync as X$}from"fs";import{join as p}from"path";function f1($,X){let Y={isValid:!0,errors:[],warnings:[],checks:[]},Z=p($,"css"),q=p(Z,"tokens.css"),U=X$(q);if(Y.checks.push({name:"CSS file exists: tokens.css",passed:U,message:U?void 0:"Missing required CSS file: tokens.css"}),!U)Y.errors.push("Missing required CSS file: tokens.css"),Y.isValid=!1;if(X.$metaData?.tokens?.css?.mediaQuery?.separateThemeFiles??!1){let z=p(Z,"tokens.dark.css"),L=X$(z);if(Y.checks.push({name:"CSS file exists: tokens.dark.css",passed:L,message:L?void 0:"Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"}),!L)Y.errors.push("Missing required CSS file: tokens.dark.css (separateThemeFiles is enabled)"),Y.isValid=!1}let W=p(Z,"tokens.breakpoints.css");if(X$(W))Y.checks.push({name:"CSS file exists: tokens.breakpoints.css",passed:!0,message:void 0});let G=X.$metaData?.tokens?.css?.hooks?.shortenName;if(G?.enabled&&X$(p(Z,"tokens.css"))){let z=P0(p(Z,"tokens.css"),"utf8");if(G.prefix)for(let{find:L,replace:B}of G.prefix){let E=`--${w$}-${L}`,_=`--${B}`,J=z.includes(E),Q=z.includes(_);if(Y.checks.push({name:`Prefix hook applied: ${L} → ${B}`,passed:!J&&Q,message:J?`Old prefix "${E}" still found in CSS, should be "${_}"`:void 0}),J)Y.errors.push(`Prefix transformation failed: "${E}" should be replaced with "${_}"`),Y.isValid=!1}if(G.suffix)for(let{find:L,replace:B}of G.suffix){let _=new RegExp(`--[^:]+${L.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"g").test(z);if(Y.checks.push({name:`Suffix hook applied: ${L} → ${B}`,passed:!_,message:_?`Old suffix "${L}" still found in CSS variable names`:void 0}),_)Y.errors.push(`Suffix transformation failed: "${L}" should be removed/replaced with "${B}"`),Y.isValid=!1}}if(X$(p(Z,"tokens.css"))){let L=P0(p(Z,"tokens.css"),"utf8").match(/:\s*{[^}]+}/g);if(Y.checks.push({name:"No unresolved token references",passed:!L,message:L?`Found unresolved references: ${L.join(", ")}`:void 0}),L)Y.errors.push(`Unresolved token references found: ${L.join(", ")}`),Y.isValid=!1}let A=["tokens.css","tokens.dark.css","tokens.breakpoints.css"];for(let z of A){let L=p(Z,z);if(X$(L)){let B=P0(L,"utf8"),E=(B.match(/\{/g)||[]).length-(B.match(/\}/g)||[]).length;if(Y.checks.push({name:`CSS syntax valid: ${z}`,passed:E===0,message:E!==0?`Mismatched braces in ${z}`:void 0}),E!==0)Y.errors.push(`CSS syntax error in ${z}: mismatched braces`),Y.isValid=!1}}return Y}function h1($){console.log(`
360
382
 
361
- Build Validation Results:`),console.log("========================================================");for(let Y of $.checks){let X=Y.passed?"✓":"✗";if(console.log(` ${X} ${Y.name}`),Y.message)console.log(` ${Y.message}`)}if($.warnings.length>0){console.log(`
362
- ⚠️ Warnings:`);for(let Y of $.warnings)console.log(` ${Y}`)}if($.errors.length>0){console.log(`
363
- ❌ Errors:`);for(let Y of $.errors)console.log(` ${Y}`)}console.log(`
364
- Validation Summary:`),console.log(` - Checks: ${$.checks.filter((Y)=>Y.passed).length}/${$.checks.length} passed`),console.log(` - Errors: ${$.errors.length}`),console.log(` - Warnings: ${$.warnings.length}`),console.log(`
383
+ Build Validation Results:`),console.log("========================================================");for(let X of $.checks){let Y=X.passed?"✓":"✗";if(console.log(` ${Y} ${X.name}`),X.message)console.log(` ${X.message}`)}if($.warnings.length>0){console.log(`
384
+ ⚠️ Warnings:`);for(let X of $.warnings)console.log(` ${X}`)}if($.errors.length>0){console.log(`
385
+ ❌ Errors:`);for(let X of $.errors)console.log(` ${X}`)}console.log(`
386
+ Validation Summary:`),console.log(` - Checks: ${$.checks.filter((X)=>X.passed).length}/${$.checks.length} passed`),console.log(` - Errors: ${$.errors.length}`),console.log(` - Warnings: ${$.warnings.length}`),console.log(`
365
387
  ${$.isValid?"✅":"❌"} Build ${$.isValid?"passed":"failed"}`),console.log(`
366
388
  ========================================================
367
- `)}var U2=F(()=>{S()});import{writeFileSync as k1,mkdirSync as c1,existsSync as l1}from"fs";import{join as g,dirname as K2}from"path";function i1($,Y,X=!1,Z=!1){let q=[],U=[],K=[];for(let H of $)if(H.fileName.includes("breakpoint"))U.push(`@import url("./css/${H.fileName}");`);else K.push(`@import url("./css/${H.fileName}");`);if(q.push(...K),X)q.push('@import url("./css/tokens.icons.css");');if(Z)q.push('@import url("./css/fonts.css");');q.push(...U);let W=`/**
368
- * ${Y} Design System - Main CSS Entry Point
389
+ `)}var r2=S(()=>{g()});import{writeFileSync as v1,mkdirSync as p1,existsSync as m1}from"fs";import{join as m,dirname as b0}from"path";function d1($,X,Y=!1,Z=!1){let q=[],U=[],K=[];for(let H of $)if(H.fileName.includes("breakpoint"))U.push(`@import url("./css/${H.fileName}");`);else K.push(`@import url("./css/${H.fileName}");`);if(q.push(...K),Y)q.push('@import url("./css/tokens.icons.css");');if(Z)q.push('@import url("./css/fonts.css");');q.push(...U);let W=`/**
390
+ * ${X} Design System - Main CSS Entry Point
369
391
  * Generated: ${new Date().toISOString()}
370
392
  *
371
393
  * This file imports all generated CSS files for the design system.
@@ -376,18 +398,18 @@ ${$.isValid?"✅":"❌"} Build ${$.isValid?"passed":"failed"}`),console.log(`
376
398
 
377
399
  ${q.join(`
378
400
  `)}
379
- `;return{fileName:`${Y}.design-system.tokens.css`,content:W,theme:void 0}}async function r0($){let Y=Date.now(),X={tokenCount:0,cssFiles:[],typescriptFiles:[],javascriptFiles:[],jsonFiles:[],duration:0,warnings:[],errors:[]};try{R(`
380
- Starting token build process...`,$.verbose);let{initializeColorspace:Z}=await Promise.resolve().then(() => (s(),H0));await Z(),R("Loading token files...",$.verbose);let q=d$($.tokensDir);R("Parsing tokens...",$.verbose);let U=r1($.config),K=u$(q,U);if(R(`Found ${K.length} tokens`,$.verbose),X.tokenCount=K.length,K.length===0&&U.namespace){let G=Object.keys(q).filter((z)=>!z.startsWith("$"));if(G.length>0)X.warnings.push(`⚠️ No tokens found matching tokenNamespace "${U.namespace}". Found root keys: ${G.join(", ")}. Please check if your $metaData.tokenNamespace in designid.config.ts matches.`)}let W=k$(K,U);if(R(`Resolved ${W.length} tokens`,$.verbose),$.generateCSS!==!1){R(`
381
- Generating CSS files...`,$.verbose);let G=W2($.config,$.cssOptions),z=z$(W,G);for(let A of z){let B=g($.outputDir,"css",A.fileName);r(B,A.content),R(` ✓ ${A.fileName}`,$.verbose)}X.cssFiles=z}if($.generateCSS!==!1)try{await Y0(),R(`
382
- Generated icon tokens`,$.verbose)}catch(G){if($.verbose)console.warn("Could not build icon tokens:",G)}if($.generateCSS!==!1)try{let G=await a$();if(G.length>0){let z=W2($.config,$.cssOptions),A=s$(G,{customHeader:E$($.config),objectPath:$.config.$metaData?.icons?.objectPath||"universe.custom.path.icons",hooks:z.hooks}),B=g($.outputDir,"css",A.fileName);if(r(B,A.content),R(` ✓ Generated ${A.fileName}`,$.verbose),X.cssFiles)X.cssFiles.push(A);else X.cssFiles=[A]}}catch(G){if($.verbose)console.warn("Could not generate icon CSS:",G)}let H=!1;if($.generateCSS!==!1)try{let G=$.config.$fonts;if(G&&G.length>0){await v$(G,$.outputDir),R(" ✓ Generated fonts.css",$.verbose),H=!0;let z={fileName:"fonts.css",content:"Generated by appendTypographyTokens",theme:void 0};if(X.cssFiles)X.cssFiles.push(z);else X.cssFiles=[z]}}catch(G){if($.verbose)console.warn("Could not generate font CSS:",G)}if($.generateCSS!==!1&&X.cssFiles.length>0){let G=$.config.$metaData?.tokenNamespace||"tokens",z=X.cssFiles.some((E)=>E.fileName==="tokens.icons.css"),A=i1(X.cssFiles.filter((E)=>E.fileName!=="tokens.icons.css"&&E.fileName!=="fonts.css"),G,z,H),B=g($.outputDir,A.fileName);r(B,A.content),R(` ✓ Generated ${A.fileName}`,$.verbose),X.cssFiles.push(A)}if($.generateTypeScript!==!1){R(`
383
- Generating TypeScript files...`,$.verbose);let G=s1($.config,$.typescriptOptions),z=await n$(W,G);for(let A of z){let B=g($.outputDir,"typescript",A.fileName);r(B,A.content),R(` ✓ Generated ${A.fileName}`,$.verbose)}X.typescriptFiles=z}if($.generateJavaScript!==!1){R(`
384
- Generating JavaScript files...`,$.verbose);let G=a1($.config,$.javascriptOptions),z=$2(W,G);for(let A of z){let B=g($.outputDir,"js",A.fileName);r(B,A.content),R(` ✓ Generated ${A.fileName}`,$.verbose)}X.javascriptFiles=z}if($.generateJSON!==!1){R(`
385
- Generating JSON files...`,$.verbose);let G=n1(W,K,$.config);for(let z of G){let A=g($.outputDir,"json",z.fileName);r(A,z.content),R(` ✓ Generated ${z.fileName}`,$.verbose)}X.jsonFiles=G}X.duration=Date.now()-Y,R(`
386
- Build completed in ${X.duration}ms`,$.verbose)}catch(Z){let q=Z instanceof Error?Z.message:String(Z);X.errors.push(q),R(`❌ Build failed: ${q}`,$.verbose)}if($.validate!==!1){R(`
387
- Validating build output...`,$.verbose);let{validateCSSFiles:Z,printValidationResults:q}=await Promise.resolve().then(() => (U2(),q2)),U=Z($.outputDir,$.config);if($.verbose||!U.isValid)q(U);if(!U.isValid)X.errors.push(...U.errors)}return X}function r1($){let Y=$.$metaData,X=$.$modes?[...Object.values($.$modes)]:[];return{prefix:Y.dsNamespace||Y.tokenNamespace,namespace:Y.tokenNamespace,generateModes:!0,modes:X,generateDerivedTokens:!0,generateBreakpointTokens:!0,failOnBrokenReferences:!0,transformName:(Z)=>{let q=Y.tokens?.css?.hooks?.shortenName;if(q?.enabled){let U=Z;if(q.prefix)for(let{find:K,replace:W}of q.prefix){let H=K.replace(/\./g,"-").replace(/-$/,""),G=W.replace(/\./g,"-").replace(/-$/,"");U=U.replace(H,G)}if(q.suffix){for(let{find:K,replace:W}of q.suffix)if(U.endsWith(K))U=U.substring(0,U.length-K.length)+W}return U}return Z}}}function W2($,Y){let Z=$.$metaData.tokens?.css,q=$.$modes?[...Object.values($.$modes)]:["light","dark"];return{...Y,separateThemeFiles:Z?.mediaQuery?.separateThemeFiles??!1,rootSelector:":root",generateMediaQueries:!0,customHeader:E$($),themeSelector:Z?.mediaQuery?.match||"[data-theme]",modes:q,hooks:Z?.hooks}}function s1($,Y){let X=$.$metaData;return{...Y,tokenInterface:"DesignTokens",exportNamespace:X.dsNamespace||X.tokenNamespace,generateTypes:!0,generateConsts:!0,generateCSSVarMappings:!0,includeJSDoc:!0}}function a1($,Y){let X=$.$modes?[...Object.values($.$modes)]:["light","dark"];return{...Y,modes:X,typescript:!0,separateThemeFiles:!0,includeJSDoc:!1,moduleType:"es",customHeader:`/**
401
+ `;return{fileName:`${X}.design-system.tokens.css`,content:W,theme:void 0}}async function T2($){let X=Date.now(),Y={tokenCount:0,cssFiles:[],typescriptFiles:[],javascriptFiles:[],jsonFiles:[],duration:0,warnings:[],errors:[]};try{M(`
402
+ Starting token build process...`,$.verbose);let{initializeColorspace:Z}=await Promise.resolve().then(() => (U$(),T0));await Z(),M("Loading token files...",$.verbose);let q=L0($.tokensDir);M("Parsing tokens...",$.verbose);let U=u1($.config),K=B0(q,U);if(M(`Found ${K.length} tokens`,$.verbose),Y.tokenCount=K.length,K.length===0&&U.namespace){let G=Object.keys(q).filter((A)=>!A.startsWith("$"));if(G.length>0)Y.warnings.push(`⚠️ No tokens found matching tokenNamespace "${U.namespace}". Found root keys: ${G.join(", ")}. Please check if your $metaData.tokenNamespace in designid.config.ts matches.`)}let W=E0(K,U);if(M(`Resolved ${W.length} tokens`,$.verbose),$.generateCSS!==!1){M(`
403
+ Generating CSS files...`,$.verbose);let G=i2($.config,$.cssOptions),A=P$(W,G);for(let z of A){let L=m($.outputDir,"css",z.fileName);Z$(L,z.content),M(` ✓ ${z.fileName}`,$.verbose)}Y.cssFiles=A}if($.generateCSS!==!1)try{await S0(),M(`
404
+ Generated icon tokens`,$.verbose)}catch(G){if($.verbose)console.warn("Could not build icon tokens:",G)}if($.generateCSS!==!1)try{let G=await J0();if(G.length>0){let A=i2($.config,$.cssOptions),z=I0(G,{customHeader:V$($.config),objectPath:$.config.$metaData?.icons?.objectPath||"universe.custom.path.icons",hooks:A.hooks}),L=m($.outputDir,"css",z.fileName);if(Z$(L,z.content),M(` ✓ Generated ${z.fileName}`,$.verbose),Y.cssFiles)Y.cssFiles.push(z);else Y.cssFiles=[z]}}catch(G){if($.verbose)console.warn("Could not generate icon CSS:",G)}let H=!1;if($.generateCSS!==!1)try{let G=$.config.$fonts;if(G&&G.length>0){await H0(G,$.outputDir),M(" ✓ Generated fonts.css",$.verbose),H=!0;let A={fileName:"fonts.css",content:"Generated by appendTypographyTokens",theme:void 0};if(Y.cssFiles)Y.cssFiles.push(A);else Y.cssFiles=[A]}}catch(G){if($.verbose)console.warn("Could not generate font CSS:",G)}if($.generateCSS!==!1&&Y.cssFiles.length>0){let G=$.config.$metaData?.tokenNamespace||"tokens",A=Y.cssFiles.some((B)=>B.fileName==="tokens.icons.css"),z=d1(Y.cssFiles.filter((B)=>B.fileName!=="tokens.icons.css"&&B.fileName!=="fonts.css"),G,A,H),L=m($.outputDir,z.fileName);Z$(L,z.content),M(` ✓ Generated ${z.fileName}`,$.verbose),Y.cssFiles.push(z)}if($.generateTypeScript!==!1){M(`
405
+ Generating TypeScript files...`,$.verbose);let G=k1($.config,$.typescriptOptions),A=await R0(W,G);for(let z of A){let L=m($.outputDir,"typescript",z.fileName);Z$(L,z.content),M(` ✓ Generated ${z.fileName}`,$.verbose)}Y.typescriptFiles=A}if($.generateJavaScript!==!1){M(`
406
+ Generating JavaScript files...`,$.verbose);let G=c1($.config,$.javascriptOptions),A=d2(W,G);for(let z of A){let L=m($.outputDir,"js",z.fileName);Z$(L,z.content),M(` ✓ Generated ${z.fileName}`,$.verbose)}Y.javascriptFiles=A}if($.generateJSON!==!1){M(`
407
+ Generating JSON files...`,$.verbose);let G=l1(W,K,$.config);for(let A of G){let z=m($.outputDir,"json",A.fileName);Z$(z,A.content),M(` ✓ Generated ${A.fileName}`,$.verbose)}Y.jsonFiles=G}Y.duration=Date.now()-X,M(`
408
+ Build completed in ${Y.duration}ms`,$.verbose)}catch(Z){let q=Z instanceof Error?Z.message:String(Z);Y.errors.push(q),M(`❌ Build failed: ${q}`,$.verbose)}if($.validate!==!1){M(`
409
+ Validating build output...`,$.verbose);let{validateCSSFiles:Z,printValidationResults:q}=await Promise.resolve().then(() => (r2(),l2)),U=Z($.outputDir,$.config);if($.verbose||!U.isValid)q(U);if(!U.isValid)Y.errors.push(...U.errors)}return Y}function u1($){let X=$.$metaData,Y=$.$modes?[...Object.values($.$modes)]:[];return{prefix:X.dsNamespace||X.tokenNamespace,namespace:X.tokenNamespace,generateModes:!0,modes:Y,generateDerivedTokens:!0,generateBreakpointTokens:!0,failOnBrokenReferences:!0,transformName:(Z)=>{let q=X.tokens?.css?.hooks?.shortenName;if(q?.enabled){let U=Z;if(q.prefix)for(let{find:K,replace:W}of q.prefix){let H=K.replace(/\./g,"-").replace(/-$/,""),G=W.replace(/\./g,"-").replace(/-$/,"");U=U.replace(H,G)}if(q.suffix){for(let{find:K,replace:W}of q.suffix)if(U.endsWith(K))U=U.substring(0,U.length-K.length)+W}return U}return Z}}}function i2($,X){let Z=$.$metaData.tokens?.css,q=$.$modes?[...Object.values($.$modes)]:["light","dark"];return{...X,separateThemeFiles:Z?.mediaQuery?.separateThemeFiles??!1,rootSelector:":root",generateMediaQueries:!0,customHeader:V$($),themeSelector:Z?.mediaQuery?.match||"[data-theme]",modes:q,hooks:Z?.hooks}}function k1($,X){let Y=$.$metaData;return{...X,tokenInterface:"DesignTokens",exportNamespace:Y.dsNamespace||Y.tokenNamespace,generateTypes:!0,generateConsts:!0,generateCSSVarMappings:!0,includeJSDoc:!0}}function c1($,X){let Y=$.$modes?[...Object.values($.$modes)]:["light","dark"];return{...X,modes:Y,typescript:!0,separateThemeFiles:!0,includeJSDoc:!1,moduleType:"es",customHeader:`/**
388
410
  * ${$.$name}
389
411
  * Generated: ${new Date().toISOString()}
390
- */`}}function n1($,Y,X){let Z=[],q=JSON.stringify({$schema:"https://schemas.designtokens.org/design-tokens.schema.json",$name:X.$name,$version:X.$version,tokens:Y.reduce((W,H)=>{return W[H.name]={$type:H.type,$value:H.value,$description:H.description,$extensions:H.extensions},W},{})},null,2);Z.push({fileName:"tokens.raw.json",content:q});let U=JSON.stringify({$name:X.$name,$version:X.$version,tokens:$.reduce((W,H)=>{return W[H.name]={$type:H.type,$value:H.value,$description:H.description,cssVar:H.cssVar},W},{})},null,2);Z.push({fileName:"tokens.resolved.json",content:U});let K=JSON.stringify({$name:`${X.$name} - CSS Variables`,$version:X.$version,variables:$.reduce((W,H)=>{return W[H.cssVar]=H.value,W},{})},null,2);return Z.push({fileName:"css-variables.json",content:K}),Z}function r($,Y){let X=K2($);if(!l1(X))c1(X,{recursive:!0});k1($,Y,"utf-8")}function R($,Y){if(Y!==!1)console.log($)}async function e$($,Y){let Z=(await import($)).default,q=K2($),U=(H)=>{if(H.startsWith("../"))return g(q,H);return g(q,Z.$paths.baseDir,H)},K=g(q,Z.$paths.baseDir,Z.$paths.tokensDir),W=Y||U(Z.$paths.distDir);return r0({config:Z,tokensDir:K,outputDir:W,verbose:!0})}var $0=F(()=>{t0();L$();Z2();l$();o$();p$()});$0();import{existsSync as t1}from"fs";import{resolve as o1}from"path";function e1($){let Y={};for(let X=0;X<$.length;X++){let Z=$[X];switch(Z){case"--config":case"-c":Y.config=$[++X];break;case"--input":case"-i":Y.input=$[++X];break;case"--output":case"-o":Y.output=$[++X];break;case"--verbose":case"-v":Y.verbose=!0;break;case"--no-css":Y.css=!1;break;case"--no-typescript":Y.typescript=!1;break;case"--no-json":Y.json=!1;break;case"--help":case"-h":Y.help=!0;break;default:if(Z.startsWith("-"))console.warn(`Unknown option: ${Z}`);break}}return Y}function $4(){console.log(`
412
+ */`}}function l1($,X,Y){let Z=[],q=JSON.stringify({$schema:"https://schemas.designtokens.org/design-tokens.schema.json",$name:Y.$name,$version:Y.$version,tokens:X.reduce((W,H)=>{return W[H.name]={$type:H.type,$value:H.value,$description:H.description,$extensions:H.extensions},W},{})},null,2);Z.push({fileName:"tokens.raw.json",content:q});let U=JSON.stringify({$name:Y.$name,$version:Y.$version,tokens:$.reduce((W,H)=>{return W[H.name]={$type:H.type,$value:H.value,$description:H.description,cssVar:H.cssVar},W},{})},null,2);Z.push({fileName:"tokens.resolved.json",content:U});let K=JSON.stringify({$name:`${Y.$name} - CSS Variables`,$version:Y.$version,variables:$.reduce((W,H)=>{return W[H.cssVar]=H.value,W},{})},null,2);return Z.push({fileName:"css-variables.json",content:K}),Z}function Z$($,X){let Y=b0($);if(!m1(Y))p1(Y,{recursive:!0});v1($,X,"utf-8")}function M($,X){if(X!==!1)console.log($)}async function F0($,X){let Y=typeof globalThis.Bun<"u",Z=$,q=null;if($.endsWith(".ts")&&!Y){let{compileConfigFile:z,getDistConfigFile:L}=await Promise.resolve().then(() => (B$(),W2)),B=b0($);await z(B),Z=L(B),q=Z}let K=(await import(Z)).default,W=b0($),H=(z)=>{if(z.startsWith("../"))return m(W,z);return m(W,K.$paths.baseDir,z)},G=m(W,K.$paths.baseDir,K.$paths.tokensDir),A=X||H(K.$paths.distDir);try{return await T2({config:K,tokensDir:G,outputDir:A,verbose:!0})}finally{if(q){let{existsSync:z,unlinkSync:L}=await import("fs");if(z(q))try{L(q)}catch(B){}}}}var x0=S(()=>{v2();g$();c2();Q0();N0();z0()});x0();import{existsSync as r1}from"fs";import{resolve as i1}from"path";function s1($){let X={};for(let Y=0;Y<$.length;Y++){let Z=$[Y];switch(Z){case"--config":case"-c":X.config=$[++Y];break;case"--input":case"-i":X.input=$[++Y];break;case"--output":case"-o":X.output=$[++Y];break;case"--verbose":case"-v":X.verbose=!0;break;case"--no-css":X.css=!1;break;case"--no-typescript":X.typescript=!1;break;case"--no-json":X.json=!1;break;case"--help":case"-h":X.help=!0;break;default:if(Z.startsWith("-"))console.warn(`Unknown option: ${Z}`);break}}return X}function a1(){console.log(`
391
413
  Design Tokens Builder - W3C compliant token processor
392
414
 
393
415
  Usage: build-tokens [options]
@@ -421,11 +443,11 @@ Token Files:
421
443
  - Include $type and $value properties
422
444
  - Support token references with {token.path} syntax
423
445
  - Support extensions for modes, generators, and breakpoints
424
- `)}function X4($){let Y=[$,"./designid.config.ts","./designid.config.mjs","./designid.config.js","./tokens.config.ts","./tokens.config.js"].filter(Boolean);for(let X of Y){let Z=o1(X);if(t1(Z))return Z}throw Error(`Config file not found. Tried: ${Y.join(", ")}`)}async function Y4(){let $=e1(process.argv.slice(2));if($.help){$4();return}try{let Y=X4($.config);console.log(`Using config: ${Y}`);let X=await e$(Y,$.output);if(X.errors.length>0)console.log(`
425
- ❌ Build failed with ${X.errors.length} error${X.errors.length>1?"s":""}:`),X.errors.forEach((Z)=>console.log(` - ${Z}`)),process.exit(1);if(console.log(`Processed ${X.tokenCount} tokens`),console.log(`Duration: ${X.duration}ms`),console.log(`Build completed successfully!
426
- `),X.cssFiles.length>0)console.log(`
427
- Generated ${X.cssFiles.length} CSS files:`),X.cssFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(X.typescriptFiles.length>0)console.log(`
428
- Generated ${X.typescriptFiles.length} TypeScript files:`),X.typescriptFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(X.javascriptFiles.length>0)console.log(`
429
- Generated ${X.javascriptFiles.length} JavaScript files:`),X.javascriptFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(X.jsonFiles.length>0)console.log(`
430
- Generated ${X.jsonFiles.length} JSON files:`),X.jsonFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(X.warnings.length>0)console.log(`
431
- Warnings:`),X.warnings.forEach((Z)=>console.log(` - ${Z}`))}catch(Y){console.error("❌ Build failed:",Y),process.exit(1)}}if(import.meta.url===`file://${process.argv[1]}`)Y4().catch(($)=>{console.error("Unexpected error:",$),process.exit(1)});export{Y4 as runCLI};
446
+ `)}function n1($){let X=[$,"./designid.config.ts","./designid.config.mjs","./designid.config.js","./tokens.config.ts","./tokens.config.js"].filter(Boolean);for(let Y of X){let Z=i1(Y);if(r1(Z))return Z}throw Error(`Config file not found. Tried: ${X.join(", ")}`)}async function t1(){let $=s1(process.argv.slice(2));if($.help){a1();return}try{let X=n1($.config);console.log(`Using config: ${X}`);let Y=await F0(X,$.output);if(Y.errors.length>0)console.log(`
447
+ ❌ Build failed with ${Y.errors.length} error${Y.errors.length>1?"s":""}:`),Y.errors.forEach((Z)=>console.log(` - ${Z}`)),process.exit(1);if(console.log(`Processed ${Y.tokenCount} tokens`),console.log(`Duration: ${Y.duration}ms`),console.log(`Build completed successfully!
448
+ `),Y.cssFiles.length>0)console.log(`
449
+ Generated ${Y.cssFiles.length} CSS files:`),Y.cssFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(Y.typescriptFiles.length>0)console.log(`
450
+ Generated ${Y.typescriptFiles.length} TypeScript files:`),Y.typescriptFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(Y.javascriptFiles.length>0)console.log(`
451
+ Generated ${Y.javascriptFiles.length} JavaScript files:`),Y.javascriptFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(Y.jsonFiles.length>0)console.log(`
452
+ Generated ${Y.jsonFiles.length} JSON files:`),Y.jsonFiles.forEach((Z)=>console.log(` - ${Z.fileName}`));if(Y.warnings.length>0)console.log(`
453
+ Warnings:`),Y.warnings.forEach((Z)=>console.log(` - ${Z}`))}catch(X){console.error("❌ Build failed:",X),process.exit(1)}}var o1=process.argv[1]?.includes("tokens-build")||process.argv[1]?.endsWith("build.js")||import.meta.url===`file://${process.argv[1]}`;if(o1)t1().catch(($)=>{console.error("Unexpected error:",$),process.exit(1)});export{t1 as runCLI};