@designid/tokens 1.2.11 → 1.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/build.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as R0}from"node:module";var O0=Object.create;var{getPrototypeOf:B0,defineProperty:rX,getOwnPropertyNames:J0}=Object;var I0=Object.prototype.hasOwnProperty;var w0=(X,Z,Y)=>{Y=X!=null?O0(B0(X)):{};let q=Z||!X||!X.__esModule?rX(Y,"default",{value:X,enumerable:!0}):Y;for(let $ of J0(X))if(!I0.call(q,$))rX(q,$,{get:()=>X[$],enumerable:!0});return q};var sX=(X,Z)=>{for(var Y in Z)rX(X,Y,{get:Z[Y],enumerable:!0,configurable:!0,set:(q)=>Z[Y]=()=>q})};var S=(X,Z)=>()=>(X&&(Z=X(X=0)),Z);var a=R0(import.meta.url);var sY={};sX(sY,{transformColorValueAsync:()=>x0,transformColorValue:()=>b,transformColorToken:()=>DX,setAlpha:()=>zX,isColor:()=>p,initializeColorspace:()=>F0});import iX from"colorjs.io";async function lY(){if(bX===null){let{colorspace:X}=await T();bX=X||"hex"}return bX}function N0(){return bX||"hex"}async function F0(){await lY()}function zX(X,Z){let Y=new iX(X);if(Z||Z===0)Y.alpha=Z/100;return b(Y)}function rY(X,Z){if(!X)return X;if(Z&&Z.type!=="color")return X;if(typeof X==="string")X=new iX(X);if(typeof X?.to!=="function")return X;let Y=N0();try{switch(Y){case"hex":return X.to("srgb").toString({format:"hex"});case"rgb":case"srgb":return X.to("srgb").toString();case"srgb-linear":return X.to("srgb-linear").toString();case"display-p3":case"p3":return X.to("p3").toString();case"a98rgb":case"a98-rgb":return X.to("a98rgb").toString();case"prophoto":case"prophoto-rgb":return X.to("prophoto").toString();case"rec2020":case"rec-2020":return X.to("rec2020").toString();case"xyz":case"xyz-d65":return X.to("xyz-d65").toString();case"xyz-d50":return X.to("xyz-d50").toString();case"lab":case"cielab":return X.to("lab").toString();case"lab-d65":return X.to("lab-d65").toString();case"oklab":return X.to("oklab").toString();case"lch":case"cielch":return X.to("lch").toString();case"oklch":return X.to("oklch").toString();case"hsl":return X.to("hsl").toString();case"hsv":case"hsb":return X.to("hsv").toString();case"hwb":return X.to("hwb").toString();case"luv":return X.to("luv").toString();case"lchuv":return X.to("lchuv").toString();case"jzazbz":return X.to("jzazbz").toString();case"jzczhz":return X.to("jzczhz").toString();case"ictcp":return X.to("ictcp").toString();default:return X.to(Y).toString()}}catch(q){return console.warn(`Unsupported colorspace '${Y}', falling back to hex. Error:`,q),X.to("srgb").toString({format:"hex"})}}async function x0(X,Z){return await lY(),rY(X,Z)}function b(X,Z){return rY(X,Z)}function DX(X,Z,Y,q){try{if(X=g(Z,q),Z.$type==="color"&&Z.original?.$value&&Z.original?.$value!==Z.$value){if(P(Z.original.$value))X=h(Z.original.$value,Y,q,Z);else X=C(Z);if(!D(q)&&Z.original?.$extensions?.mode?.[q])X=Z.original.$extensions.mode[q]}if(P(X))X=h(X,Y,q,Z);return b(X)}catch{return X=g(Z,q),b(X)}}function p(X){try{if(X)return new iX(X),!0;return!1}catch{return!1}}var bX=null;var AX=S(()=>{f()});function iY(X,Z){let Y=X.$extensions?.delimiter?.character||" ",q=g(X,Z)??{},$=X.$extensions?.sort??[],U=C(X)??{};if($.length>0)U=Object.keys(U).sort((W,K)=>{let z=$.indexOf(W),G=$.indexOf(K);return z-G}).reduce((W,K)=>{return W[K]=q[K],W},{});return Object.keys(U).reduce((W,K)=>{let z=C(q[K]);if(q[K]?.$type==="color"||q[K].$property==="color")z=b(z,q[K]);return[...Array.isArray(W)?W:[W],z]},[]).join(Y).trim()}function k(X,Z){let Y=($)=>{if($===void 0||$===null)return;if(typeof $==="object"&&"value"in $)return $.value;return $},q=X.match(/^\{(.+)\}$/);if(q){let $=q[1],U=Z.get($);if(U===void 0)return`/* Unknown token: ${$} */`;let W=Y(U);if(W===void 0)return`/* Unknown token: ${$} */`;if(typeof W==="object"&&W!==null){let K=[];for(let z in W){if(z.startsWith("$"))continue;let G=W[z],A=typeof G==="object"&&G?.value!==void 0?G.value:G;if(typeof A==="string"&&A.match(/^\{.+\}$/))K.push(k(A,Z));else K.push(String(A))}return K.join(" ")}if(typeof W==="string"&&W.match(/^\{.+\}$/))return k(W,Z);return String(W)}if(X.includes("{"))return X.replace(/\{([^}]+)\}/g,($,U)=>{let W=Z.get(U);if(W===void 0)return`/* Unknown token: ${U} */`;let K=Y(W);if(K===void 0)return`/* Unknown token: ${U} */`;if(typeof K==="object"&&K!==null)return`/* Cannot embed composite token: ${U} */`;if(typeof K==="string"&&K.match(/^\{.+\}$/))return k(K,Z);return String(K)});return X}function j0(X,Z,Y,q){return Object.keys(Z??{}).reduce((U,W)=>{let K=Z[W];if(typeof K==="string"||typeof K==="number")K={$value:K,$type:typeof K,value:K};if(K.$type=K.type||X?.original?.$value?.[W]?.type||K.$type||X.$type,!D(q)&&c(K,"mode",{isIncludedOriginalValue:!0}))K.$value=g(K,q);if(K?.$type==="composition"&&(typeof K.$value!=="string"||typeof K.$value!=="number"||P(K.$value))&&Object.keys(K).length>0){if(P(K.$value))return K.$value=h(K.$value,Y,q,K),{...U,[W]:{...K,$property:W,$type:K.$type,$value:YX(K,Y,q)}};return{...U,[W]:{...K,$property:W,$type:K.$type,$value:YX(K,Y,q)}}}if(K?.$value){let G=h(K.$value,Y,q,K);return{...U,[W]:{...K,$property:W,$type:K.$type,$value:G}}}return U},{})}function YX(X,Z,Y){let q=C(X,{isIncludedOriginalValue:!0});if(typeof q==="string"){if(P(q)){if(q=aX(q,Z,Y,X),!D(Y)&&c(q,"mode",{isIncludedOriginalValue:!0}))q.$value=g(q,Y)}let $=qX(q);if($&&($?.length??0)>1)q=ZX(q,$,Z,Y)}else if(Array.isArray(q))q=q.map(($)=>{if(typeof $==="string"&&P($))return h($,Z,Y,X);return $});if(!X.name)return q;return X.$value=j0(X,q,Z,Y),iY(X,Y)}var SX=S(()=>{f()});function C(X,Z){let{isIncludedOriginalValue:Y=!1,fallbackValue:q=null}=Z??{};if(Y)return X?.original?.$value??X?.$value??X.value??q;return X?.$value??X?.value??q}function g(X,Z){return Z&&(X?.$extensions?.mode?.[Z]||typeof X?.$extensions?.mode?.[Z]==="number")?X.$extensions.mode[Z]:C(X,{fallbackValue:X?.original?.$value??X?.$value??X?.value})??null}function c(X,Z,{isIncludedOriginalValue:Y=!1}={}){let q=!1;if(Y&&X?.original?.$extensions?.[Z])q=!0;if(X?.$extensions?.[Z])q=!0;return q}function nX(X,Z,Y){let q=C(X,{isIncludedOriginalValue:!0});if(!D(Y)&&c(X,"mode",{isIncludedOriginalValue:!0}))q=g(X,Y);if(P(q))return oX(q,Z,Y,X);return q}function ZX(X,Z,Y,q){let $=Z.reduce((U,W)=>{let K=tX(W,Y);if(!K)return U;let z=C(K,{isIncludedOriginalValue:!0});if(P(z))z=h(`{${W}}`,Y,q,K);return{...U,[W]:PX(K,z,Y,q)}},{});return X?.replace(/\{([^}]+)\}/g,(U,W)=>{return $[W]!==void 0?$[W]:U})??null}function aX(X,Z,Y,q){if(P(X))return h(X,Z,Y,q);return X}function tX(X,Z){return Z.allTokens.find((Y)=>Y.path.join(".")===X)??null}function h(X,Z,Y,q){let $=P(X),U=null,W=X??C(q),K=null;if($){if(U=tX($,Z),Y&&U&&U?.$extensions?.mode?.[Y]!==U.original?.$extensions?.mode?.[Y])W=U.original?.$extensions?.mode?.[Y],K=U.original?.$extensions?.alpha??K;else if(U?.$extensions?.mode?.[Y])W=U.$extensions.mode[Y],K=U.$extensions?.alpha??K;else if(U?.original?.$value)W=U?.original.$value??U?.$value,K=U?.original.$extensions?.alpha??K}if(W!==X&&P(W))W=h(W,Z,Y,q);if(W&&(K||q?.$extensions?.alpha||K===0||q?.original?.$extensions?.alpha===0))K=K??q?.$extensions?.alpha??null,W=zX(W,K);return W=b(W,U??q),W??X}function oX(X,Z,Y,q){let $=q?.original?.$extensions?.mode?.[Y]??q?.original?.$value,U=P($);if(Y&&U){let W=Z.allTokens.find((z)=>z.path.join(".")===U);if(!W)return X;let K=C(W);if(P(K))return oX(K,Z,Y,W);if(W?.$extensions?.mode?.[Y])K=W.$extensions.mode[Y];if(K&&W?.$extensions?.alpha)K=zX(W.$value,W.$extensions.alpha);return b(K,W)??X}else if($)return b($,q);return X}function P(X){if(typeof X!=="string")return null;let Z=/{[^}]+}/g,Y=X.match(Z);if(Y?.length!==1)return null;return Y[0].slice(1,-1)}function qX(X){if(typeof X!=="string")return null;return[...X.matchAll(/\{([^}]+)\}/g)].map(([,Y])=>Y)??null}function $X(X){return X}function EX(X){return X}var eX=S(()=>{f()});var IZ={};sX(IZ,{wrapThemeValue:()=>QY,wrapFormatCSSFile:()=>QZ,typographyFileName:()=>$Z,tokensFileName:()=>ZZ,removeDirectoryContents:()=>EY,readConfigFile:()=>WX,namespaceUUID:()=>WZ,iconsFileName:()=>UZ,getTokenfileName:()=>GZ,getRelativePath:()=>JZ,getRelativeCSSPath:()=>BZ,getRawTokensFileName:()=>LZ,getProjectPaths:()=>t,getProjectModes:()=>_Y,getProjectMetaData:()=>T,getProjectFonts:()=>T0,getLazyTokensConfig:()=>XY,getLazyProjectPaths:()=>HY,getLazyProjectModes:()=>LX,getLazyProjectMetaData:()=>BX,getLazyProjectFonts:()=>y0,getLazyProjectData:()=>l,getLazyIcons:()=>gX,getJSDocHeader:()=>_Z,getIconDestinationFileName:()=>KX,getFiles:()=>yX,getFileHeader:()=>LY,getDistThemeFileDelimeter:()=>zZ,getDistConfigFile:()=>CX,getDestinationFileName:()=>AZ,getDefaultIconObjectPath:()=>KZ,getCSSDestinationFileName:()=>EZ,getBaseDirectory:()=>HX,getBaseConfigFile:()=>QX,generatedFileHeader:()=>UX,filterTokensByType:()=>VX,createFileHeaderTitle:()=>_X,compileConfigFile:()=>AY,combineCSSFiles:()=>OZ,checkAndCreateDirectory:()=>n,breakpointFileName:()=>qZ});import{spawnSync as b0}from"child_process";import{existsSync as v,mkdirSync as D0,readFileSync as S0,unlinkSync as aY,writeFileSync as P0}from"fs";import{readdir as eY,rmdir as C0,unlink as V0}from"fs/promises";import{resolve as XZ,join as x,basename as YZ,normalize as nY,relative as tY,sep as YY,dirname as oY}from"path";async function KZ(){return`${(await OX()).$metaData?.tokenNamespace||"tokens"}.icons`}async function AY(X){let Y=x(X,"designid.config.ts");if(v(x(X,"designid.config.mjs")))aY(x(X,"designid.config.mjs"));let q=x(X,"designid.config.js");if(v(q))aY(q);if(v(Y)){let $=b0("bun",["build",Y,"--outfile ./designid.config.mjs","--minify","--target","node","--packages","external","--no-bundle"],{stdio:"inherit",cwd:X,shell:!0});if($.status!==0)console.error("Failed to compile designid.config.mjs with bun."),process.exit($.status??1);if($.status===0)return new Promise((U)=>U(!0))}}async function EY(X){try{if(v(X)){let Z=await eY(X,{withFileTypes:!0});for(let Y of Z){let q=x(X,Y.name);if(Y.isDirectory())await EY(q),await C0(q);else await V0(q)}}}catch(Z){console.error(`Error removing contents of ${X}:`,Z)}}async function yX(X){let Z=await eY(X,{withFileTypes:!0}),Y=await Promise.all(Z.map((q)=>{let $=XZ(X,q.name);return q.isDirectory()?yX($):$}));return Array.prototype.concat(...Y)}async function WZ(X){let{dsNamespace:Z,tokenNamespace:Y}=await T();return`${(Z??Y).toUpperCase()}DesignSystem${X.charAt(0).toUpperCase()+X.slice(1)}Tokens`}function GZ(X,Z="d.ts",Y){if(!X)return`tokens.${Y}.config.${Z}`;return x(X,`tokens.${Y}.config.${Z}`)}function zZ(X,Z){return X.length>1?`.${Z}`:""}async function AZ(X="d.ts",Z){let{tokenNamespace:Y}=await T();if(Z)return`${Y}-design-system.${Z}.tokens.config.${X}`;return`${Y}-design-system.tokens.config.${X}`}async function KX(X="json"){let{tokenNamespace:Z}=await T();return`${Z}-design-system.tokens.svg${X==="d.ts"||X==="js"?".config":""}.${X}`}async function EZ(){let{tokenNamespace:X}=await T();return`${X}-design-system.tokens.css`}async function LZ(){let{tokenNamespace:X}=await T();return`${X}-design-system-raw.tokens.json`}async function LY(X){let{tokenNamespace:Z}=await T();return`${Z} | ${X}`}function _Z(X,Z){return`/** @type {import("./${X}").${Z}} */`}function _X(X){return`/* ${LY(X)} */`}function n(X){if(!v(X))D0(X,{recursive:!0})}async function WX(X,Z=!1){let Y=QX(),q;if(Y.endsWith(".json"))q=JSON.parse(S0(Y,"utf8").trim()??"{}");else if(Y.endsWith(".ts"))if(typeof globalThis.Bun<"u"){if(q=await import(Y),q.default)q=q.default}else{X=X??oY(Y)+"/";let U=CX(X);if(U&&(Z||!v(U)))await AY(X);if(q=await import(U),q.default)q=q.default}else{X=X??oY(Y)+"/";let $=CX(X);if($&&(Z||!v($)))await AY(X);if(q=await import($),q.default)q=q.default}return q}async function HX(X=!1){let{baseDir:Z}=await t(),Y=process.cwd(),$=x(Y,Z),{buildDir:U,distDir:W}=await t();if(X)try{n(x($,U)),n(x($,W))}catch(K){console.error("Error creating directories:",K)}return $}function CX(X){return X?x(X,"designid.config.mjs"):x(process.cwd(),"designid.config.mjs")}function QX(){let X=process.argv.find((K)=>K.startsWith("--config=")),[,Z]=X?.split("=")??[];if(Z)return Z;let Y=process.cwd(),q=CX(Y),$=x(Y,"designid.config.ts"),U=v(q),W=v($);if(U)return q;else if(W)return $;throw console.error("Config file not found"),Error("Config file not found")}async function t(X=!1){let Z=QX(),q=(await WX(process.cwd(),X)).$paths;if(!q)throw console.error("Project paths not found"),Error("Project paths not found");return{configFile:Z,...q}}async function T(){let Z=(await WX(process.cwd())).$metaData;if(!Z)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!Z.colorspace)Z.colorspace="hex";if(!Z.fontNamespace)Z.fontNamespace=`${Z.dsNamespace}.font`;if(!Z?.tokens?.css?.mediaQuery?.match)Z={...Z??{},tokens:{...Z.tokens??{},css:{...Z.tokens?.css??{},mediaQuery:{...Z.tokens?.css?.mediaQuery??{},match:"[data-theme]"}}}};if(Z?.tokens?.css?.mediaQuery&&typeof Z.tokens.css.mediaQuery.separateThemeFiles!=="boolean")Z.tokens.css.mediaQuery.separateThemeFiles=!1;if(!Z.dsNamespace)Z.dsNamespace=Z.tokenNamespace;let Y=await KZ();return{...Z,icons:Z.icons??{objectPath:Y},dsNamespace:Z.dsNamespace}}async function _Y(){return(await WX(process.cwd())).$modes??{default:"light"}}async function OX(){if(!ZY){let X=QX();ZY=await WX(process.cwd()),HZ=X}return ZY}async function LX(){if(!qY)qY=(await OX()).$modes??{default:"light"};return qY}async function BX(){if(!$Y){let Z=(await OX()).$metaData;if(!Z)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!Z.dsNamespace)Z.dsNamespace=Z.tokenNamespace;let q=`${Z.tokenNamespace||"tokens"}.icons`;$Y={...Z,icons:Z.icons??{objectPath:q},dsNamespace:Z.dsNamespace}}return $Y}async function HY(X=!1){if(!UY){let Y=(await OX()).$paths;if(!Y)throw console.error("Project paths not found"),Error("Project paths not found");UY={configFile:HZ,...Y}}return UY}async function l(){if(!KY){let{distDir:X,assets:Z,buildDir:Y}=await HY(!0),{fontNamespace:q,tokenNamespace:$,icons:U}=await BX(),W=await HX(),K=process.cwd(),z=x(K,X,"css");KY={distDir:X,assets:Z,fontNamespace:q,__dirname:W,workspaceRoot:K,distCSSPath:z,buildDir:Y,tokenNamespace:$,icons:U}}return KY}async function gX(){if(!WY){let{icons:X}=await BX();WY=X}return WY}async function XY(){if(!GY){let{tokens:X}=await BX();GY=X}return GY}async function T0(){return(await WX(process.cwd())).$fonts??[]}async function y0(){if(!zY)zY=(await OX()).$fonts??[];return zY}async function QY(X){if(D(X))return":root";let Y=(await T())?.tokens?.css?.mediaQuery?.match??"[data-theme]";if(Y.startsWith("[")&&Y.endsWith("]"))return`${Y.replace("]",`="${X}"]`)}`;else if(Y.startsWith(".")||Y.startsWith("#"))return`${Y}${X}`;else return`${Y}${X}`}async function QZ(X,Z,Y,q,$,U={}){let W;if(D(Y))W=Z.allTokens;else W=X(Z,Y);let z=(await T())?.tokens?.css?.mediaQuery?.separateThemeFiles?"Theme: "+Y:U.headerTitle??"",G=`${_X(z)}
2
+ import{createRequire as R0}from"node:module";var O0=Object.create;var{getPrototypeOf:B0,defineProperty:rX,getOwnPropertyNames:J0}=Object;var I0=Object.prototype.hasOwnProperty;var w0=(X,Z,Y)=>{Y=X!=null?O0(B0(X)):{};let q=Z||!X||!X.__esModule?rX(Y,"default",{value:X,enumerable:!0}):Y;for(let $ of J0(X))if(!I0.call(q,$))rX(q,$,{get:()=>X[$],enumerable:!0});return q};var sX=(X,Z)=>{for(var Y in Z)rX(X,Y,{get:Z[Y],enumerable:!0,configurable:!0,set:(q)=>Z[Y]=()=>q})};var S=(X,Z)=>()=>(X&&(Z=X(X=0)),Z);var a=R0(import.meta.url);var sY={};sX(sY,{transformColorValueAsync:()=>x0,transformColorValue:()=>b,transformColorToken:()=>DX,setAlpha:()=>zX,isColor:()=>p,initializeColorspace:()=>F0});import iX from"colorjs.io";async function lY(){if(bX===null){let{colorspace:X}=await T();bX=X||"hex"}return bX}function N0(){return bX||"hex"}async function F0(){await lY()}function zX(X,Z){let Y=new iX(X);if(Z||Z===0)Y.alpha=Z/100;return b(Y)}function rY(X,Z){if(!X)return X;if(Z&&Z.type!=="color")return X;if(typeof X==="string")X=new iX(X);if(typeof X?.to!=="function")return X;let Y=N0();try{switch(Y){case"hex":return X.to("srgb").toString({format:"hex"});case"rgb":case"srgb":return X.to("srgb").toString();case"srgb-linear":return X.to("srgb-linear").toString();case"display-p3":case"p3":return X.to("p3").toString();case"a98rgb":case"a98-rgb":return X.to("a98rgb").toString();case"prophoto":case"prophoto-rgb":return X.to("prophoto").toString();case"rec2020":case"rec-2020":return X.to("rec2020").toString();case"xyz":case"xyz-d65":return X.to("xyz-d65").toString();case"xyz-d50":return X.to("xyz-d50").toString();case"lab":case"cielab":return X.to("lab").toString();case"lab-d65":return X.to("lab-d65").toString();case"oklab":return X.to("oklab").toString();case"lch":case"cielch":return X.to("lch").toString();case"oklch":return X.to("oklch").toString();case"hsl":return X.to("hsl").toString();case"hsv":case"hsb":return X.to("hsv").toString();case"hwb":return X.to("hwb").toString();case"luv":return X.to("luv").toString();case"lchuv":return X.to("lchuv").toString();case"jzazbz":return X.to("jzazbz").toString();case"jzczhz":return X.to("jzczhz").toString();case"ictcp":return X.to("ictcp").toString();default:return X.to(Y).toString()}}catch(q){return console.warn(`Unsupported colorspace '${Y}', falling back to hex. Error:`,q),X.to("srgb").toString({format:"hex"})}}async function x0(X,Z){return await lY(),rY(X,Z)}function b(X,Z){return rY(X,Z)}function DX(X,Z,Y,q){try{if(X=g(Z,q),Z.$type==="color"&&Z.original?.$value&&Z.original?.$value!==Z.$value){if(P(Z.original.$value))X=v(Z.original.$value,Y,q,Z);else X=C(Z);if(!D(q)&&Z.original?.$extensions?.mode?.[q])X=Z.original.$extensions.mode[q]}if(P(X))X=v(X,Y,q,Z);return b(X)}catch{return X=g(Z,q),b(X)}}function p(X){try{if(X)return new iX(X),!0;return!1}catch{return!1}}var bX=null;var AX=S(()=>{f()});function iY(X,Z){let Y=X.$extensions?.delimiter?.character||" ",q=g(X,Z)??{},$=X.$extensions?.sort??[],U=C(X)??{};if($.length>0)U=Object.keys(U).sort((W,K)=>{let z=$.indexOf(W),G=$.indexOf(K);return z-G}).reduce((W,K)=>{return W[K]=q[K],W},{});return Object.keys(U).reduce((W,K)=>{let z=C(q[K]);if(q[K]?.$type==="color"||q[K].$property==="color")z=b(z,q[K]);return[...Array.isArray(W)?W:[W],z]},[]).join(Y).trim()}function k(X,Z){let Y=($)=>{if($===void 0||$===null)return;if(typeof $==="object"&&"value"in $)return $.value;return $},q=X.match(/^\{(.+)\}$/);if(q){let $=q[1],U=Z.get($);if(U===void 0)return`/* Unknown token: ${$} */`;let W=Y(U);if(W===void 0)return`/* Unknown token: ${$} */`;if(typeof W==="object"&&W!==null){let K=[];for(let z in W){if(z.startsWith("$"))continue;let G=W[z],A=typeof G==="object"&&G?.value!==void 0?G.value:G;if(typeof A==="string"&&A.match(/^\{.+\}$/))K.push(k(A,Z));else K.push(String(A))}return K.join(" ")}if(typeof W==="string"&&W.match(/^\{.+\}$/))return k(W,Z);return String(W)}if(X.includes("{"))return X.replace(/\{([^}]+)\}/g,($,U)=>{let W=Z.get(U);if(W===void 0)return`/* Unknown token: ${U} */`;let K=Y(W);if(K===void 0)return`/* Unknown token: ${U} */`;if(typeof K==="object"&&K!==null)return`/* Cannot embed composite token: ${U} */`;if(typeof K==="string"&&K.match(/^\{.+\}$/))return k(K,Z);return String(K)});return X}function j0(X,Z,Y,q){return Object.keys(Z??{}).reduce((U,W)=>{let K=Z[W];if(typeof K==="string"||typeof K==="number")K={$value:K,$type:typeof K,value:K};if(K.$type=K.type||X?.original?.$value?.[W]?.type||K.$type||X.$type,!D(q)&&c(K,"mode",{isIncludedOriginalValue:!0}))K.$value=g(K,q);if(K?.$type==="composition"&&(typeof K.$value!=="string"||typeof K.$value!=="number"||P(K.$value))&&Object.keys(K).length>0){if(P(K.$value))return K.$value=v(K.$value,Y,q,K),{...U,[W]:{...K,$property:W,$type:K.$type,$value:YX(K,Y,q)}};return{...U,[W]:{...K,$property:W,$type:K.$type,$value:YX(K,Y,q)}}}if(K?.$value){let G=v(K.$value,Y,q,K);return{...U,[W]:{...K,$property:W,$type:K.$type,$value:G}}}return U},{})}function YX(X,Z,Y){let q=C(X,{isIncludedOriginalValue:!0});if(typeof q==="string"){if(P(q)){if(q=aX(q,Z,Y,X),!D(Y)&&c(q,"mode",{isIncludedOriginalValue:!0}))q.$value=g(q,Y)}let $=qX(q);if($&&($?.length??0)>1)q=ZX(q,$,Z,Y)}else if(Array.isArray(q))q=q.map(($)=>{if(typeof $==="string"&&P($))return v($,Z,Y,X);return $});if(!X.name)return q;return X.$value=j0(X,q,Z,Y),iY(X,Y)}var SX=S(()=>{f()});function C(X,Z){let{isIncludedOriginalValue:Y=!1,fallbackValue:q=null}=Z??{};if(Y)return X?.original?.$value??X?.$value??X.value??q;return X?.$value??X?.value??q}function g(X,Z){return Z&&(X?.$extensions?.mode?.[Z]||typeof X?.$extensions?.mode?.[Z]==="number")?X.$extensions.mode[Z]:C(X,{fallbackValue:X?.original?.$value??X?.$value??X?.value})??null}function c(X,Z,{isIncludedOriginalValue:Y=!1}={}){let q=!1;if(Y&&X?.original?.$extensions?.[Z])q=!0;if(X?.$extensions?.[Z])q=!0;return q}function nX(X,Z,Y){let q=C(X,{isIncludedOriginalValue:!0});if(!D(Y)&&c(X,"mode",{isIncludedOriginalValue:!0}))q=g(X,Y);if(P(q))return oX(q,Z,Y,X);return q}function ZX(X,Z,Y,q){let $=Z.reduce((U,W)=>{let K=tX(W,Y);if(!K)return U;let z=C(K,{isIncludedOriginalValue:!0});if(P(z))z=v(`{${W}}`,Y,q,K);return{...U,[W]:PX(K,z,Y,q)}},{});return X?.replace(/\{([^}]+)\}/g,(U,W)=>{return $[W]!==void 0?$[W]:U})??null}function aX(X,Z,Y,q){if(P(X))return v(X,Z,Y,q);return X}function tX(X,Z){return Z.allTokens.find((Y)=>Y.path.join(".")===X)??null}function v(X,Z,Y,q){let $=P(X),U=null,W=X??C(q),K=null;if($){if(U=tX($,Z),Y&&U&&U?.$extensions?.mode?.[Y]!==U.original?.$extensions?.mode?.[Y])W=U.original?.$extensions?.mode?.[Y],K=U.original?.$extensions?.alpha??K;else if(U?.$extensions?.mode?.[Y])W=U.$extensions.mode[Y],K=U.$extensions?.alpha??K;else if(U?.original?.$value)W=U?.original.$value??U?.$value,K=U?.original.$extensions?.alpha??K}if(W!==X&&P(W))W=v(W,Z,Y,q);if(W&&(K||q?.$extensions?.alpha||K===0||q?.original?.$extensions?.alpha===0))K=K??q?.$extensions?.alpha??null,W=zX(W,K);return W=b(W,U??q),W??X}function oX(X,Z,Y,q){let $=q?.original?.$extensions?.mode?.[Y]??q?.original?.$value,U=P($);if(Y&&U){let W=Z.allTokens.find((z)=>z.path.join(".")===U);if(!W)return X;let K=C(W);if(P(K))return oX(K,Z,Y,W);if(W?.$extensions?.mode?.[Y])K=W.$extensions.mode[Y];if(K&&W?.$extensions?.alpha)K=zX(W.$value,W.$extensions.alpha);return b(K,W)??X}else if($)return b($,q);return X}function P(X){if(typeof X!=="string")return null;let Z=/{[^}]+}/g,Y=X.match(Z);if(Y?.length!==1)return null;return Y[0].slice(1,-1)}function qX(X){if(typeof X!=="string")return null;return[...X.matchAll(/\{([^}]+)\}/g)].map(([,Y])=>Y)??null}function $X(X){return X}function EX(X){return X}var eX=S(()=>{f()});var IZ={};sX(IZ,{wrapThemeValue:()=>QY,wrapFormatCSSFile:()=>QZ,typographyFileName:()=>$Z,tokensFileName:()=>ZZ,removeDirectoryContents:()=>EY,readConfigFile:()=>WX,namespaceUUID:()=>WZ,iconsFileName:()=>UZ,getTokenfileName:()=>GZ,getRelativePath:()=>JZ,getRelativeCSSPath:()=>BZ,getRawTokensFileName:()=>LZ,getProjectPaths:()=>t,getProjectModes:()=>_Y,getProjectMetaData:()=>T,getProjectFonts:()=>T0,getLazyTokensConfig:()=>XY,getLazyProjectPaths:()=>HY,getLazyProjectModes:()=>LX,getLazyProjectMetaData:()=>BX,getLazyProjectFonts:()=>y0,getLazyProjectData:()=>l,getLazyIcons:()=>gX,getJSDocHeader:()=>_Z,getIconDestinationFileName:()=>KX,getFiles:()=>yX,getFileHeader:()=>LY,getDistThemeFileDelimeter:()=>zZ,getDistConfigFile:()=>CX,getDestinationFileName:()=>AZ,getDefaultIconObjectPath:()=>KZ,getCSSDestinationFileName:()=>EZ,getBaseDirectory:()=>HX,getBaseConfigFile:()=>QX,generatedFileHeader:()=>UX,filterTokensByType:()=>VX,createFileHeaderTitle:()=>_X,compileConfigFile:()=>AY,combineCSSFiles:()=>OZ,checkAndCreateDirectory:()=>n,breakpointFileName:()=>qZ});import{spawnSync as b0}from"child_process";import{existsSync as h,mkdirSync as D0,readFileSync as S0,unlinkSync as aY,writeFileSync as P0}from"fs";import{readdir as eY,rmdir as C0,unlink as V0}from"fs/promises";import{resolve as XZ,join as x,basename as YZ,normalize as nY,relative as tY,sep as YY,dirname as oY}from"path";async function KZ(){return`${(await OX()).$metaData?.tokenNamespace||"tokens"}.icons`}async function AY(X){let Y=x(X,"designid.config.ts");if(h(x(X,"designid.config.mjs")))aY(x(X,"designid.config.mjs"));let q=x(X,"designid.config.js");if(h(q))aY(q);if(h(Y)){let $=b0("bun",["build",Y,"--outfile ./designid.config.mjs","--minify","--target","node","--packages","external","--no-bundle"],{stdio:"inherit",cwd:X,shell:!0});if($.status!==0)console.error("Failed to compile designid.config.mjs with bun."),process.exit($.status??1);if($.status===0)return new Promise((U)=>U(!0))}}async function EY(X){try{if(h(X)){let Z=await eY(X,{withFileTypes:!0});for(let Y of Z){let q=x(X,Y.name);if(Y.isDirectory())await EY(q),await C0(q);else await V0(q)}}}catch(Z){console.error(`Error removing contents of ${X}:`,Z)}}async function yX(X){let Z=await eY(X,{withFileTypes:!0}),Y=await Promise.all(Z.map((q)=>{let $=XZ(X,q.name);return q.isDirectory()?yX($):$}));return Array.prototype.concat(...Y)}async function WZ(X){let{dsNamespace:Z,tokenNamespace:Y}=await T();return`${(Z??Y).toUpperCase()}DesignSystem${X.charAt(0).toUpperCase()+X.slice(1)}Tokens`}function GZ(X,Z="d.ts",Y){if(!X)return`tokens.${Y}.config.${Z}`;return x(X,`tokens.${Y}.config.${Z}`)}function zZ(X,Z){return X.length>1?`.${Z}`:""}async function AZ(X="d.ts",Z){let{tokenNamespace:Y}=await T();if(Z)return`${Y}-design-system.${Z}.tokens.config.${X}`;return`${Y}-design-system.tokens.config.${X}`}async function KX(X="json"){let{tokenNamespace:Z}=await T();return`${Z}-design-system.tokens.svg${X==="d.ts"||X==="js"?".config":""}.${X}`}async function EZ(){let{tokenNamespace:X}=await T();return`${X}-design-system.tokens.css`}async function LZ(){let{tokenNamespace:X}=await T();return`${X}-design-system-raw.tokens.json`}async function LY(X){let{tokenNamespace:Z}=await T();return`${Z} | ${X}`}function _Z(X,Z){return`/** @type {import("./${X}").${Z}} */`}function _X(X){return`/* ${LY(X)} */`}function n(X){if(!h(X))D0(X,{recursive:!0})}async function WX(X,Z=!1){let Y=QX(),q;if(Y.endsWith(".json"))q=JSON.parse(S0(Y,"utf8").trim()??"{}");else if(Y.endsWith(".ts"))if(typeof globalThis.Bun<"u"){if(q=await import(Y),q.default)q=q.default}else{X=X??oY(Y)+"/";let U=CX(X);if(U&&(Z||!h(U)))await AY(X);if(q=await import(U),q.default)q=q.default}else{X=X??oY(Y)+"/";let $=CX(X);if($&&(Z||!h($)))await AY(X);if(q=await import($),q.default)q=q.default}return q}async function HX(X=!1){let{baseDir:Z}=await t(),Y=process.cwd(),$=x(Y,Z),{buildDir:U,distDir:W}=await t();if(X)try{n(x($,U)),n(x($,W))}catch(K){console.error("Error creating directories:",K)}return $}function CX(X){return X?x(X,"designid.config.mjs"):x(process.cwd(),"designid.config.mjs")}function QX(){let X=process.argv.find((K)=>K.startsWith("--config=")),[,Z]=X?.split("=")??[];if(Z)return Z;let Y=process.cwd(),q=CX(Y),$=x(Y,"designid.config.ts"),U=h(q),W=h($);if(U)return q;else if(W)return $;throw console.error("Config file not found"),Error("Config file not found")}async function t(X=!1){let Z=QX(),q=(await WX(process.cwd(),X)).$paths;if(!q)throw console.error("Project paths not found"),Error("Project paths not found");return{configFile:Z,...q}}async function T(){let Z=(await WX(process.cwd())).$metaData;if(!Z)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!Z.colorspace)Z.colorspace="hex";if(!Z.fontNamespace)Z.fontNamespace=`${Z.dsNamespace}.font`;if(!Z?.tokens?.css?.mediaQuery?.match)Z={...Z??{},tokens:{...Z.tokens??{},css:{...Z.tokens?.css??{},mediaQuery:{...Z.tokens?.css?.mediaQuery??{},match:"[data-theme]"}}}};if(Z?.tokens?.css?.mediaQuery&&typeof Z.tokens.css.mediaQuery.separateThemeFiles!=="boolean")Z.tokens.css.mediaQuery.separateThemeFiles=!1;if(!Z.dsNamespace)Z.dsNamespace=Z.tokenNamespace;let Y=await KZ();return{...Z,icons:Z.icons??{objectPath:Y},dsNamespace:Z.dsNamespace}}async function _Y(){return(await WX(process.cwd())).$modes??{default:"light"}}async function OX(){if(!ZY){let X=QX();ZY=await WX(process.cwd()),HZ=X}return ZY}async function LX(){if(!qY)qY=(await OX()).$modes??{default:"light"};return qY}async function BX(){if(!$Y){let Z=(await OX()).$metaData;if(!Z)throw console.error("Project metaData not found"),Error("Project metaData not found");if(!Z.dsNamespace)Z.dsNamespace=Z.tokenNamespace;let q=`${Z.tokenNamespace||"tokens"}.icons`;$Y={...Z,icons:Z.icons??{objectPath:q},dsNamespace:Z.dsNamespace}}return $Y}async function HY(X=!1){if(!UY){let Y=(await OX()).$paths;if(!Y)throw console.error("Project paths not found"),Error("Project paths not found");UY={configFile:HZ,...Y}}return UY}async function l(){if(!KY){let{distDir:X,assets:Z,buildDir:Y}=await HY(!0),{fontNamespace:q,tokenNamespace:$,icons:U}=await BX(),W=await HX(),K=process.cwd(),z=x(K,X,"css");KY={distDir:X,assets:Z,fontNamespace:q,__dirname:W,workspaceRoot:K,distCSSPath:z,buildDir:Y,tokenNamespace:$,icons:U}}return KY}async function gX(){if(!WY){let{icons:X}=await BX();WY=X}return WY}async function XY(){if(!GY){let{tokens:X}=await BX();GY=X}return GY}async function T0(){return(await WX(process.cwd())).$fonts??[]}async function y0(){if(!zY)zY=(await OX()).$fonts??[];return zY}async function QY(X){if(D(X))return":root";let Y=(await T())?.tokens?.css?.mediaQuery?.match??"[data-theme]";if(Y.startsWith("[")&&Y.endsWith("]"))return`${Y.replace("]",`="${X}"]`)}`;else if(Y.startsWith(".")||Y.startsWith("#"))return`${Y}${X}`;else return`${Y}${X}`}async function QZ(X,Z,Y,q,$,U={}){let W;if(D(Y))W=Z.allTokens;else W=X(Z,Y);let z=(await T())?.tokens?.css?.mediaQuery?.separateThemeFiles?"Theme: "+Y:U.headerTitle??"",G=`${_X(z)}
3
3
  ${UX}`,A=D(Y)?`:root {
4
4
  `:`@media (123prefers-color-scheme: ${Y}) {
5
5
  :root {
@@ -17,13 +17,13 @@ ${A}`;if(W.forEach((L)=>{if(VX(L,U,$))return;let _=TX(L,Z,Y);if(U.transformValue
17
17
  `:"",E}function VX(X,Z,Y){let{namespace:q}=Z.filter??{};if(!X.$type)return!0;if(q?.length&&X.path){let $=X.path.join("."),U=q.some((K)=>$.startsWith(K)),W=Z.filter?.isInclusion!==void 0&&Z.filter.isInclusion;return U&&!W||!U&&W}if(Z.filter?.isInclusion!==void 0&&Z.filter.isInclusion===!1){if(X.$type&&!Y.includes(X.$type))return!0}else if(!X.$type||Y.includes(X.$type))return!0;return!1}async function OZ(){let X=await _Y(),{baseDir:Z,distDir:Y}=await t(),q=await yX(x(Z,Y,"css")),$=x(Z,Y,await EZ()),U=UX+`
18
18
 
19
19
  `,W=[{name:UZ,order:100},{name:ZZ,order:200},{name:$Z,order:300},{name:qZ,order:400}];if(q=q.sort((K,z)=>{let G=(A)=>{let E=YZ(A,".css"),L=W.find((_)=>E.includes(_.name));for(let _ in X)if(E.includes(_)){let H=X[_]===X.default?1:2;return L?L.order+H:0}return L?L.order:0};return G(K)-G(z)}),q.forEach((K)=>{if(K.endsWith(".css")){let G=`@import url("${BZ(K,Z,Y)}");`;U+=G+`
20
- `}}),!v(x(Z,Y)))n(x(Z,Y));P0($,U)}function BZ(X,Z,Y){let q=XZ(Z,Y);return X.startsWith(q)?X.slice(q.length+1):X}function JZ(X,Z,Y,q){let $=nY(X),U=YZ(nY(Z)),W=$.split(YY),K=W.lastIndexOf(U);if(U===".")return tY(Y,q).split(YY).join("/");else if(K===-1)throw Error(`Base directory '${U}' not found in '${$}'`);let z=x(...W.slice(0,K+1)),G=x(z,Y),A=x(z,q);return tY(G,A).split(YY).join("/")}var ZZ="tokens",qZ="breakpoints",$Z="typography",UZ="icons",UX=`/*
20
+ `}}),!h(x(Z,Y)))n(x(Z,Y));P0($,U)}function BZ(X,Z,Y){let q=XZ(Z,Y);return X.startsWith(q)?X.slice(q.length+1):X}function JZ(X,Z,Y,q){let $=nY(X),U=YZ(nY(Z)),W=$.split(YY),K=W.lastIndexOf(U);if(U===".")return tY(Y,q).split(YY).join("/");else if(K===-1)throw Error(`Base directory '${U}' not found in '${$}'`);let z=x(...W.slice(0,K+1)),G=x(z,Y),A=x(z,q);return tY(G,A).split(YY).join("/")}var ZZ="tokens",qZ="breakpoints",$Z="typography",UZ="icons",UX=`/*
21
21
  * This file is automatically generated.
22
22
  * DO NOT EDIT THIS FILE DIRECTLY.
23
23
  * Changes will be overwritten. Please update the source design tokens instead.
24
- */`,ZY=null,HZ=null,qY=null,$Y=null,UY=null,KY=null,WY=null,GY=null,zY=null;var JX=S(()=>{f()});function D(X){return X===OY}var OY="light";var wZ=S(()=>{JX()});async function BY(X){let Z=await gX();X=X.replace(/<\?xml[^>]*\?>\s*/,""),X=X.replace(/<!DOCTYPE [^>]*>\s*/,"");let Y=X.match(/<svg[^>]*>/),q=X.match(/viewBox="([\d\s.]+)"/),[$]=Y??[],U=$;if($&&U){let K=Z?.style?.fill||Z?.style?.stroke?.color,z=/id="[^"]*"/.test($);if(!U.includes("xmlns="))U=U.replace("<svg",'<svg xmlns="http://www.w3.org/2000/svg"');if(!z&&K)U=U.replace("<svg",`<svg id="${K}"`);else if(z&&K)U=U.replace(/id="[^"]*"/,`id="${K}"`)}if(q&&$&&U){let K=q[1].split(" ").map(Number),z=K[2],G=K[3],A=Z?.size??24,E=z/G*A;X=X.replace(/height="[\d.]+px?"/,`height="${A}px"`),X=X.replace(/width="[\d.]+px?"/,`width="${E}px"`);let L=/width="[\d.]+(px)?"/.test($),_=/height="[\d.]+(px)?"/.test($);if(!L)U=U.replace("<svg",`<svg width="${E}px"`);else U=U.replace(/width="[\d.]+(px)?"/,`width="${E}px"`);if(!_)U=U.replace("<svg",`<svg height="${A}px"`);else U=U.replace(/height="[\d.]+(px)?"/,`height="${A}px"`);X=X.replace($,U)}if(!X?.match(/data-style="([^"]*)"/)&&Z?.style?.type)X=X.replace("<svg ",`<svg data-style="${Z.style.type}" `);if(Z?.style?.type)X=g0(X,Z.style);return X}function g0(X,Z){switch(Z.type){case"mono":if(X=X.replace(/stroke="[^"]*"/g,""),X=X.replace(/stroke-width="[^"]*"/g,""),X=X.replace(/stroke-linecap="[^"]*"/g,""),X=X.replace(/stroke-linejoin="[^"]*"/g,""),X=X.replace(/fill="none"/g,'fill="currentColor"'),Z.fill&&!X.includes("fill="))X=X.replace("<svg",'<svg fill="currentColor"');else if(Z.fill)X=X.replace(/fill="(?!currentColor)[^"]*"/g,'fill="currentColor"');break;case"stroke":if(Z.stroke){let{color:q,width:$,linecap:U,linejoin:W}=Z.stroke;if(q){if(X=X.replace(/stroke="[^"]*"/g,'stroke="currentColor"'),!X.includes("stroke="))X=X.replace("<svg",'<svg stroke="currentColor"')}if($!==void 0){let K=typeof $==="number"?`${$}`:$;if(X=X.replace(/stroke-width="[^"]*"/g,`stroke-width="${K}"`),!X.includes("stroke-width="))X=X.replace("<svg",`<svg stroke-width="${K}"`)}if(U){if(X=X.replace(/stroke-linecap="[^"]*"/g,`stroke-linecap="${U}"`),!X.includes("stroke-linecap="))X=X.replace("<svg",`<svg stroke-linecap="${U}"`)}if(W){if(X=X.replace(/stroke-linejoin="[^"]*"/g,`stroke-linejoin="${W}"`),!X.includes("stroke-linejoin="))X=X.replace("<svg",`<svg stroke-linejoin="${W}"`)}if(!X.includes("fill="))X=X.replace("<svg",'<svg fill="none"')}break;case"fill":if(X=X.replace(/stroke="[^"]*"/g,""),X=X.replace(/stroke-width="[^"]*"/g,""),Z.fill){if(X=X.replace(/fill="[^"]*"/g,'fill="currentColor"'),!X.includes("fill="))X=X.replace("<svg",'<svg fill="currentColor"')}break;case"animated":case"custom":break;default:break}return X}var RZ=S(()=>{f()});var MZ=S(()=>{JX();f()});import{copyFileSync as v0,existsSync as m0,mkdirSync as NZ,statSync as p0}from"fs";import{writeFile as d0}from"fs/promises";import{join as y,relative as u0}from"path";async function JY(X,Z){try{let{assets:Y,workspaceRoot:q,distDir:$,__dirname:U}=await l(),W=Y?.fonts?.sourceDir?y(U,Y.fonts.sourceDir):null,K=y("assets","fonts"),z=y(q,$),G=Y?.fonts?.distDir?y(z,Y.fonts.distDir.replace(/^\.\//,"")):y(z,K);if(!X||!W)return;let A="",E=Z&&Y?.fonts?.distDir?y(Z,Y.fonts.distDir.replace(/^\.\//,"")):G;for(let Q of X){if(!Q)continue;if(A+=`/**** ${Q.family} ${Q.style} ****/
24
+ */`,ZY=null,HZ=null,qY=null,$Y=null,UY=null,KY=null,WY=null,GY=null,zY=null;var JX=S(()=>{f()});function D(X){return X===OY}var OY="light";var wZ=S(()=>{JX()});async function BY(X){let Z=await gX();X=X.replace(/<\?xml[^>]*\?>\s*/,""),X=X.replace(/<!DOCTYPE [^>]*>\s*/,"");let Y=X.match(/<svg[^>]*>/),q=X.match(/viewBox="([\d\s.]+)"/),[$]=Y??[],U=$;if($&&U){let K=Z?.style?.fill||Z?.style?.stroke?.color,z=/id="[^"]*"/.test($);if(!U.includes("xmlns="))U=U.replace("<svg",'<svg xmlns="http://www.w3.org/2000/svg"');if(!z&&K)U=U.replace("<svg",`<svg id="${K}"`);else if(z&&K)U=U.replace(/id="[^"]*"/,`id="${K}"`)}if(q&&$&&U){let K=q[1].split(" ").map(Number),z=K[2],G=K[3],A=Z?.size??24,E=z/G*A;X=X.replace(/height="[\d.]+px?"/,`height="${A}px"`),X=X.replace(/width="[\d.]+px?"/,`width="${E}px"`);let L=/width="[\d.]+(px)?"/.test($),_=/height="[\d.]+(px)?"/.test($);if(!L)U=U.replace("<svg",`<svg width="${E}px"`);else U=U.replace(/width="[\d.]+(px)?"/,`width="${E}px"`);if(!_)U=U.replace("<svg",`<svg height="${A}px"`);else U=U.replace(/height="[\d.]+(px)?"/,`height="${A}px"`);X=X.replace($,U)}if(!X?.match(/data-style="([^"]*)"/)&&Z?.style?.type)X=X.replace("<svg ",`<svg data-style="${Z.style.type}" `);if(Z?.style?.type)X=g0(X,Z.style);return X}function g0(X,Z){switch(Z.type){case"mono":if(X=X.replace(/stroke="[^"]*"/g,""),X=X.replace(/stroke-width="[^"]*"/g,""),X=X.replace(/stroke-linecap="[^"]*"/g,""),X=X.replace(/stroke-linejoin="[^"]*"/g,""),X=X.replace(/fill="none"/g,'fill="currentColor"'),Z.fill&&!X.includes("fill="))X=X.replace("<svg",'<svg fill="currentColor"');else if(Z.fill)X=X.replace(/fill="(?!currentColor)[^"]*"/g,'fill="currentColor"');break;case"stroke":if(Z.stroke){let{color:q,width:$,linecap:U,linejoin:W}=Z.stroke;if(q){if(X=X.replace(/stroke="[^"]*"/g,'stroke="currentColor"'),!X.includes("stroke="))X=X.replace("<svg",'<svg stroke="currentColor"')}if($!==void 0){let K=typeof $==="number"?`${$}`:$;if(X=X.replace(/stroke-width="[^"]*"/g,`stroke-width="${K}"`),!X.includes("stroke-width="))X=X.replace("<svg",`<svg stroke-width="${K}"`)}if(U){if(X=X.replace(/stroke-linecap="[^"]*"/g,`stroke-linecap="${U}"`),!X.includes("stroke-linecap="))X=X.replace("<svg",`<svg stroke-linecap="${U}"`)}if(W){if(X=X.replace(/stroke-linejoin="[^"]*"/g,`stroke-linejoin="${W}"`),!X.includes("stroke-linejoin="))X=X.replace("<svg",`<svg stroke-linejoin="${W}"`)}if(!X.includes("fill="))X=X.replace("<svg",'<svg fill="none"')}break;case"fill":if(X=X.replace(/stroke="[^"]*"/g,""),X=X.replace(/stroke-width="[^"]*"/g,""),Z.fill){if(X=X.replace(/fill="[^"]*"/g,'fill="currentColor"'),!X.includes("fill="))X=X.replace("<svg",'<svg fill="currentColor"')}break;case"animated":case"custom":break;default:break}return X}var RZ=S(()=>{f()});var MZ=S(()=>{JX();f()});import{copyFileSync as h0,existsSync as m0,mkdirSync as NZ,statSync as p0}from"fs";import{writeFile as d0}from"fs/promises";import{join as y,relative as u0}from"path";async function JY(X,Z){try{let{assets:Y,workspaceRoot:q,distDir:$,__dirname:U}=await l(),W=Y?.fonts?.sourceDir?y(U,Y.fonts.sourceDir):null,K=y("assets","fonts"),z=y(q,$),G=Y?.fonts?.distDir?y(z,Y.fonts.distDir.replace(/^\.\//,"")):y(z,K);if(!X||!W)return;let A="",E=Z&&Y?.fonts?.distDir?y(Z,Y.fonts.distDir.replace(/^\.\//,"")):G;for(let Q of X){if(!Q)continue;if(A+=`/**** ${Q.family} ${Q.style} ****/
25
25
  `,Q.linkHref){let O=await(await fetch(Q.linkHref)).text();A+=`${O.replace(/\s+/g," ").replace(/:\s+/g,":")}
26
- `}else if(Q?.src&&W){let B=Q.directory??Q.family.toLowerCase().replace(/\s+/g,"-"),O=y(W,B,Q.src);try{if(!m0(O)||!p0(O).isFile()){console.warn(`Font file not found: ${O}`);continue}}catch{console.warn(`Error accessing font file: ${O}`);continue}try{NZ(y(E,B),{recursive:!0}),v0(y(W,B,Q.src),y(E,B,Q.src))}catch(R){console.warn(`Error copying font file ${Q.src}:`,R instanceof Error?R.message:R);continue}let J;if(Y?.fonts?.cssImportPath)J=y(Y.fonts.cssImportPath,B,Q.src).replace(/\\/g,"/");else{let{distCSSPath:R}=await l(),I=Z?y(Z,"css"):R,w=u0(I,E);J=y(w,B,Q.src).replace(/\\/g,"/")}A+=`@font-face {
26
+ `}else if(Q?.src&&W){let B=Q.directory??Q.family.toLowerCase().replace(/\s+/g,"-"),O=y(W,B,Q.src);try{if(!m0(O)||!p0(O).isFile()){console.warn(`Font file not found: ${O}`);continue}}catch{console.warn(`Error accessing font file: ${O}`);continue}try{NZ(y(E,B),{recursive:!0}),h0(y(W,B,Q.src),y(E,B,Q.src))}catch(R){console.warn(`Error copying font file ${Q.src}:`,R instanceof Error?R.message:R);continue}let J;if(Y?.fonts?.cssImportPath)J=y(Y.fonts.cssImportPath,B,Q.src).replace(/\\/g,"/");else{let{distCSSPath:R}=await l(),I=Z?y(Z,"css"):R,w=u0(I,E);J=y(w,B,Q.src).replace(/\\/g,"/")}A+=`@font-face {
27
27
  font-family: "${Q.family}";
28
28
  font-style: ${Q.faceStyle};
29
29
  font-weight: ${Q.weight};
@@ -31,7 +31,7 @@ ${A}`;if(W.forEach((L)=>{if(VX(L,U,$))return;let _=TX(L,Z,Y);if(U.transformValue
31
31
  }
32
32
  `}}let{distCSSPath:L}=await l(),_=Z?y(Z,"css"):L,H=`${_}/fonts.css`;NZ(_,{recursive:!0}),await d0(H,A,{flag:"w",encoding:"utf-8"})}catch(Y){console.error("Error appending typography tokens:",Y)}}var IY=S(()=>{f()});function IX(X){if(typeof X!=="string"||!X.startsWith("{")||!X.endsWith("}"))return!1;let Z=X.slice(1,-1);return!Z.includes("{")&&!Z.includes("}")&&Z.trim()!==""}function wX(X){if(typeof X!=="string")return!1;let Z=/\{[^}]+\}/g,Y=X.match(Z);return!!(Y&&Y.length>0&&X.length>Y.join("").length)}function fX(X){let Z=[],Y=/\{[^}]+\}/g,q=0,$;while(($=Y.exec(X))!==null){if($.index>q){let W=X.slice(q,$.index);if(W)Z.push({type:"literal",value:W})}let U=$[0];if(U.startsWith("{#/"))Z.push({type:"reference",value:U,ref:{$ref:U.slice(2,-1)}});else Z.push({type:"reference",value:U,ref:U});q=$.index+$[0].length}if(q<X.length){let U=X.slice(q);if(U)Z.push({type:"literal",value:U})}return Z}function FZ(X){return!!X.$extensions?.$mode}function xZ(X){return!!(X.$extensions?.$generators&&Array.isArray(X.$extensions.$generators))}function jZ(X){return!!(X.$extensions?.$breakpoints&&typeof X.$extensions.$breakpoints==="object")}function bZ(X,Z){return`${X}${Z}`}function DZ(X){return typeof X==="object"&&X!==null&&"$value"in X}function SZ(X){return typeof X==="object"&&X!==null&&!("$value"in X)}var PZ=()=>{};function CZ(X){if(typeof X!=="string")return!1;let Z=X.trim();return Z.startsWith("<svg")&&Z.includes("</svg>")}function VZ(X){if(typeof X!=="string")return!1;return X.startsWith("data:image/png;base64,")||X.startsWith("iVBORw0KGgo")}function TZ(X){if(typeof X!=="string")return!1;return X.startsWith("data:image/jpeg;base64,")||X.startsWith("data:image/jpg;base64,")||X.startsWith("/9j/")}function c0(X){let Z=X.trim();return Z=Z.replace(/\s+/g," ").replace(/>\s+</g,"><").trim(),`data:image/svg+xml;base64,${Buffer.from(Z,"utf-8").toString("base64")}`}function l0(X){if(X.startsWith("data:image/png;base64,"))return X;return`data:image/png;base64,${X}`}function r0(X){if(X.startsWith("data:image/jpeg;base64,")||X.startsWith("data:image/jpg;base64,"))return X;return`data:image/jpeg;base64,${X}`}function RX(X){if(!X||typeof X!=="string")return X;if(X.startsWith("data:"))return X;if(CZ(X))return c0(X);else if(VZ(X))return l0(X);else if(TZ(X))return r0(X);return X}function s0(X){if(typeof X!=="string")return!1;return X.startsWith("data:image/svg+xml;")||X.startsWith("data:image/png;")||X.startsWith("data:image/jpeg;")||X.startsWith("data:image/jpg;")||X.startsWith("data:image/gif;")||X.startsWith("data:image/webp;")}function d(X){return CZ(X)||VZ(X)||TZ(X)||s0(X)}import{readFileSync as i0,readdirSync as a0,statSync as n0}from"fs";import{join as t0}from"path";import gZ from"colorjs.io";function RY(X){let Z={};function Y(q){let $=a0(q);for(let U of $){let W=t0(q,U);if(n0(W).isDirectory())Y(W);else if(U.endsWith(".tokens.json"))try{let z=i0(W,"utf-8");if(!z.trim())continue;let G=JSON.parse(z);fZ(Z,G)}catch(z){console.warn(`Failed to load token file: ${W}`,z)}}}return Y(X),Z}function fZ(X,Z){for(let Y in Z)if(Z[Y]&&typeof Z[Y]==="object"&&!Array.isArray(Z[Y])){if(!X[Y])X[Y]={};fZ(X[Y],Z[Y])}else X[Y]=Z[Y]}function MY(X,Z={}){let Y=[];function q($,U=[]){for(let[W,K]of Object.entries($)){if(W.startsWith("$"))continue;let z=[...U,W],G=z.join(".");if(DZ(K)){let A={path:z,name:G,type:K.$type,value:K.$value,description:K.$description,extensions:K.$extensions?{mode:FZ(K)?K.$extensions.$mode:K.$extensions.mode?K.$extensions.mode:void 0,generators:xZ(K)?K.$extensions.$generators:K.$extensions.generators?K.$extensions.generators:void 0,breakpoints:jZ(K)?K.$extensions.$breakpoints:K.$extensions.breakpoint?K.$extensions.breakpoint:void 0,...Object.fromEntries(Object.entries(K.$extensions).filter(([E])=>!["$mode","$generators","$breakpoints","mode","generators","breakpoint"].includes(E)))}:void 0,original:K};if(!Z.namespace||G.startsWith(Z.namespace))Y.push(A)}else if(SZ(K))q(K,z)}}return q(X),Y}function NY(X,Z={}){let Y=[...X],q=new Map(X.map((G)=>[G.name,G]));if(Z.generateModes||Z.generateDerivedTokens||Z.generateBreakpointTokens)for(let G of X){let A=yZ(G,Z,q);if(Y.push(...A),Z.generateModes){for(let E of A)if(E.extensions?.mode&&!E.name.includes("#")){let L=yZ(E,Z,q);Y.push(...L)}}}let $=Z.modes||[],U=$.length>0?$[0]:void 0,W={tokens:new Map(Y.map((G)=>[G.name,G])),mode:Z.generateModes?U:void 0,options:Z,brokenReferences:[]},K=[];for(let G of Y){let A=void 0;for(let _ of $)if(G.name.endsWith(`#${_}`)){A=_;break}if(!A&&Z.generateModes)A=U;let E={...W,mode:A},L=o0(G,E);K.push(L)}if(Z.failOnBrokenReferences!==!1&&W.brokenReferences.length>0){let G=[...new Set(W.brokenReferences)],A=`Token reference${G.length>1?"s":""} not found:
33
33
  ${G.map((E)=>` - ${E}`).join(`
34
- `)}`;throw Error(A)}return K}function yZ(X,Z,Y){let q=[];if(Z.generateModes&&X.extensions?.mode){for(let[$,U]of Object.entries(X.extensions.mode))if(U!==void 0)q.push({...X,name:`${X.name}#${$}`,value:U,path:[...X.path,`#${$}`]})}if(Z.generateModes&&!X.extensions?.mode&&(Array.isArray(X.value)||typeof X.value==="object"&&X.value!==null)){let $=!1,U=!1,W=(K)=>{if(typeof K!=="object"||K===null)return!1;if(K.$extensions?.mode)return!0;return Object.values(K).some((z)=>{if(typeof z==="object"&&z!==null)return W(z);return!1})};if(Array.isArray(X.value))$=X.value.some((K)=>typeof K==="string"&&K.includes("{")||typeof K==="object"&&K!==null&&Object.values(K).some((z)=>typeof z==="string"&&z.includes("{"))),U=X.value.some((K)=>W(K));else $=Object.values(X.value).some((K)=>typeof K==="string"&&K.includes("{")),U=W(X.value);if($||U){if(["color","shadow","border","background","surface","composition"].includes(X.type)){let G;if(Array.isArray(X.value))G=X.value.map((A)=>{if(typeof A==="string"&&A.startsWith("{")&&A.endsWith("}")){let E=A.slice(1,-1);if(!E.includes("#dark")&&!E.includes("@dark"))return`{${E}#dark}`;return A}else if(typeof A==="object"&&A!==null){let E={};for(let[L,_]of Object.entries(A))if(typeof _==="string"&&_.startsWith("{")&&_.endsWith("}")){let H=_.slice(1,-1),Q=`${H}#dark`,B=Y?.get(H),O=Y?.has(Q)||B?.extensions?.mode?.dark!==void 0||B&&(Array.isArray(B.value)||typeof B.value==="object"&&B.value!==null);if(!H.includes("#dark")&&!H.includes("@dark")&&O)E[L]=`{${Q}}`;else E[L]=_}else E[L]=_;return E}return A});else if(typeof X.value==="object"&&X.value!==null){G={};let A=(E)=>{if(typeof E==="string"){if(E.startsWith("{")&&E.endsWith("}")){let L=E.slice(1,-1),_=`${L}#dark`,H=(B,O=new Set)=>{if(O.has(B))return!1;O.add(B);let J=Y?.get(B);if(!J){let R=B.match(/^(.+)@([^@]+)$/);if(R){let[,I,w]=R,M=Y?.get(I);if(M){if(M.extensions?.mode?.dark!==void 0)return!0;if(M.extensions?.generators)return!0;return H(I,O)}}return!1}if(J.extensions?.mode?.dark!==void 0)return!0;if(Y?.has(`${B}#dark`))return!0;if(typeof J.value==="string"&&J.value.startsWith("{")&&J.value.endsWith("}")){let R=J.value.slice(1,-1);return H(R,O)}if(Array.isArray(J.value)||typeof J.value==="object"&&J.value!==null){let R=(I)=>{if(typeof I!=="object"||I===null)return!1;if(I.$extensions?.mode)return!0;return Object.values(I).some((w)=>{if(typeof w==="object"&&w!==null)return R(w);return!1})};if(Array.isArray(J.value))return J.value.some((I)=>typeof I==="string"&&I.includes("{")&&H(I.slice(1,-1),new Set(O))||typeof I==="object"&&I!==null&&(Object.values(I).some((w)=>typeof w==="string"&&w.includes("{")&&H(w.slice(1,-1),new Set(O)))||R(I)));else if(typeof J.value==="object")return Object.values(J.value).some((I)=>typeof I==="string"&&I.includes("{")&&H(I.slice(1,-1),new Set(O)))||R(J.value)}return!1},Q=H(L);if(!L.includes("#dark")&&!L.includes("@dark")&&Q)return`{${_}}`}return E}if(typeof E==="object"&&E!==null){if(E.$extensions?.mode?.dark)return E.$extensions.mode.dark;let L={};for(let[_,H]of Object.entries(E))L[_]=A(H);return L}return E};for(let[E,L]of Object.entries(X.value))G[E]=A(L)}q.push({...X,name:`${X.name}#dark`,value:G,path:[...X.path,"#dark"],extensions:{...X.extensions,autoGenerated:!0}})}}}if(Z.generateModes&&!X.extensions?.mode&&typeof X.value==="string"&&X.value.startsWith("{")&&X.value.endsWith("}")){let $=X.value.slice(1,-1),U=(A,E=new Set)=>{if(E.has(A))return!1;E.add(A);let L=Y?.get(A);if(!L){let _=A.match(/^(.+)@([^@]+)$/);if(_){let[,H,Q]=_,B=Y?.get(H);if(B){if(B.extensions?.mode?.dark!==void 0)return!0;if(B.extensions?.generators)return!0;return U(H,E)}}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 _=L.value.slice(1,-1);return U(_,E)}if(Array.isArray(L.value)||typeof L.value==="object"&&L.value!==null){let _=(H)=>{if(typeof H!=="object"||H===null)return!1;if(H.$extensions?.mode)return!0;return Object.values(H).some((Q)=>{if(typeof Q==="object"&&Q!==null)return _(Q);return!1})};if(Array.isArray(L.value))return L.value.some((H)=>typeof H==="string"&&H.includes("{")&&U(H.slice(1,-1),new Set(E))||typeof H==="object"&&H!==null&&(Object.values(H).some((Q)=>typeof Q==="string"&&Q.includes("{")&&U(Q.slice(1,-1),new Set(E)))||_(H)));else if(typeof L.value==="object")return Object.values(L.value).some((H)=>typeof H==="string"&&H.includes("{")&&U(H.slice(1,-1),new Set(E)))||_(L.value)}return!1},W=U($);if(["color","shadow","border","background","surface","composition"].includes(X.type)&&W&&W&&!$.includes("#dark")&&!$.includes("@dark")){let A=`{${$}#dark}`;q.push({...X,name:`${X.name}#dark`,value:A,path:[...X.path,"#dark"],extensions:{...X.extensions,autoGenerated:!0}})}}if(Z.generateDerivedTokens&&X.extensions?.generators)for(let $ of X.extensions.generators)for(let[U,W]of Object.entries($.value)){let K=bZ(X.name,U),{generators:z,...G}=X.extensions;q.push({...X,name:K,value:X.value,path:[...X.path,U],extensions:{...G,generator:{type:$.type,value:W}}})}if(Z.generateBreakpointTokens&&X.extensions?.breakpoints)for(let[$,U]of Object.entries(X.extensions.breakpoints)){let W=`${X.name}@${$.replace(/[^a-zA-Z0-9]/g,"_")}`,K=U.$value||U.value;if(K&&typeof K==="object"&&"$value"in K)K=K.$value;else if(!K&&typeof U==="object"){let{...A}=U;if(Object.keys(A).length>0)K=A}let z=U.$extensions||U.$extensions,G=U.$type;if(!G&&U.value&&typeof U.value==="object")G=U.value.$type;q.push({...X,name:W,value:K,path:[...X.path,`@${$}`],type:G||X.type,extensions:{mediaQuery:$,...z?{mode:z.mode||z.$mode,generators:z.generators||z.$generators,...Object.fromEntries(Object.entries(z).filter(([A])=>!["mode","$mode","generators","$generators"].includes(A)))}:{}}})}return q}function o0(X,Z){let Y=o(X.value,Z),q=X.type;if(typeof X.value==="string"&&IX(X.value)){let U=X.value.slice(1,-1),W=Z.tokens.get(U);if(W){if(["border","shadow","typography","composition"].includes(W.type))q=W.type;else if(typeof W.value==="string"&&wX(W.value)){let K=fX(W.value),z=new Set;for(let G of K)if(G.type==="reference"&&G.ref&&typeof G.ref==="string"){let A=G.ref.slice(1,-1),E=Z.tokens.get(A);if(E&&["border","shadow","typography","composition"].includes(E.type))z.add(E.type)}if(z.size===1)q=Array.from(z)[0]}}}if(typeof X.value==="string"&&wX(X.value)){let U=fX(X.value),W=new Set;for(let K of U)if(K.type==="reference"&&K.ref&&typeof K.ref==="string"){let z=K.ref.slice(1,-1),G=Z.tokens.get(z);if(G&&["border","shadow","typography","composition"].includes(G.type))W.add(G.type)}if(W.size===1)q=Array.from(W)[0]}if(typeof Y==="object"&&Y!==null&&["border","shadow","typography","composition"].includes(q))Y=r(Y,Z);if(X.extensions?.generator&&typeof X.extensions.generator==="object"&&"type"in X.extensions.generator&&"value"in X.extensions.generator)Y=hX(X.value,X.extensions.generator.type,X.extensions.generator.value,Z);let $=e0(X.name,Z.options);if(q==="color"&&typeof Y==="string"&&p(Y))Y=b(Y,X);if(typeof Y==="string"&&d(Y))Y=RX(Y);return{...X,type:q,value:Y,cssVar:$}}function r(X,Z){if(typeof X==="string"){if(IX(X))return FY(X,Z);else if(wX(X))return vZ(X,Z)}if(Array.isArray(X))return X.map((Y)=>r(Y,Z));if(typeof X==="object"&&X!==null){if("$value"in X&&typeof X.$value==="string")return r(X.$value,Z);if("value"in X&&typeof X.value==="string"&&"$type"in X){if(Z.mode&&X.$extensions?.mode?.[Z.mode])return r(X.$extensions.mode[Z.mode],Z);return r(X.value,Z)}if("value"in X&&typeof X.value==="object"&&"$type"in X){let q=X.value,$=X.$extensions?.delimiter?.character||" ";if(X.$type==="composition"&&q&&typeof q==="object")return Object.values(q).map((W)=>r(W,Z)).join($);return r(X.value,Z)}let Y={};for(let[q,$]of Object.entries(X))Y[q]=r($,Z);return Y}return X}function o(X,Z){if(typeof X==="string"){if(wX(X))return vZ(X,Z);else if(IX(X))return FY(X,Z)}else if(typeof X==="object"&&X!==null&&"$ref"in X)return hZ(X,Z);return X}function FY(X,Z){let Y=X.slice(1,-1),q=Z.tokens.get(Y),$=Z.options.modes||[];if(!q){if($.length>0){for(let K of $)if(Y.endsWith(`@${K}`)){let z=Y.slice(0,-K.length-1)+`#${K}`;if(q=Z.tokens.get(z),q)return wY(q,Z);break}}let W=Y.match(/#([^#@]+)$/);if(W){let K=Y.substring(0,W.index),z=W[1];if(q=Z.tokens.get(K),q){if(q.extensions?.mode?.[z]){let G=q.extensions.mode[z],A=o(G,{...Z,mode:z});if(q.extensions?.generator&&typeof q.extensions.generator==="object"&&"type"in q.extensions.generator&&"value"in q.extensions.generator)A=hX(A,q.extensions.generator.type,q.extensions.generator.value,Z);if(q.type==="color"&&typeof A==="string"&&p(A))A=b(A,q);if(typeof A==="string"&&d(A))A=RX(A);return A}}}if($.length>0)for(let K of $){let z=new RegExp(`(@[^@]+)@${K}$`);if(z.test(Y)){let G=Y.replace(z,`$1#${K}`);if(q=Z.tokens.get(G),!q){let A=G.match(/#([^#@]+)$/);if(A){let E=G.substring(0,A.index),L=A[1];if(q=Z.tokens.get(E),q&&q.extensions?.mode?.[L]){let _=q.extensions.mode[L],H=o(_,{...Z,mode:L});if(q.extensions?.generator&&typeof q.extensions.generator==="object"&&"type"in q.extensions.generator&&"value"in q.extensions.generator)H=hX(H,q.extensions.generator.type,q.extensions.generator.value,Z);if(q.type==="color"&&typeof H==="string"&&p(H))H=b(H,q);if(typeof H==="string"&&d(H))H=RX(H);return H}}}else return wY(q,Z);break}}}if(!q)return console.warn(`Token reference not found: ${X}`),Z.brokenReferences.push(X),X;return wY(q,Z)}function wY(X,Z){let Y;if(X.extensions?.generator&&typeof X.extensions.generator==="object"&&"type"in X.extensions.generator&&"value"in X.extensions.generator)Y=hX(X.value,X.extensions.generator.type,X.extensions.generator.value,Z);else if(Z.mode&&X.extensions?.mode?.[Z.mode])Y=o(X.extensions.mode[Z.mode],Z);else Y=o(X.value,Z);if(X.type==="color"&&typeof Y==="string"&&p(Y))Y=b(Y,X);if(typeof Y==="string"&&d(Y))Y=RX(Y);return Y}function hZ(X,Z){let q=X.$ref.slice(2).replace(/\//g,"."),$=Z.tokens.get(q);if(!$)return console.warn(`JSON Pointer reference not found: ${X.$ref}`),Z.brokenReferences.push(X.$ref),X.$ref;return o($.value,Z)}function vZ(X,Z){let Y=fX(X),q=Y.some((W)=>W.value.includes(",")),$=!0,U=[];for(let W of Y){let K;if(W.type==="reference"&&W.ref){if(typeof W.ref==="string"&&IX(W.ref)){K=FY(W.ref,Z);let z=W.ref.slice(1,-1),G=Z.tokens.get(z);if(!G||!["border","shadow","typography","composition"].includes(G.type))$=!1}else if(typeof W.ref==="object"&&"$ref"in W.ref)K=hZ(W.ref,Z)}else if(K=W.value,W.value.trim()&&W.value.trim()!==",")$=!1;U.push(K)}if(q&&$)return U.filter((W)=>typeof W==="object"&&W!==null&&typeof W!=="string");return U.map((W)=>String(W)).join("")}function hX(X,Z,Y,q){let $=o(X,q);switch(Z){case"alpha":if(typeof $==="string")return X1($,Number(Y)/100);break;case"scale":if(typeof $==="string"&&$.match(/[\d.]+/))return Y1($,Number(Y));break;case"hue":if(typeof $==="string")return Z1($,Number(Y));break;default:return console.warn(`Unknown generator type: ${Z}`),$}return $}function e0(X,Z,Y){let q=X.replace(/\./g,"-");q=q.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),q=q.replace(/@[^@#]*(?:screen|width|height|min|max|orientation).*$/i,""),q=q.replace(/#[^#]*$/,""),q=q.replace(/-@/g,"-").replace(/@/g,"-");let $=q,U=!0,W=Z.prefix||"";if(Z.transformName){if($=Z.transformName(q),$=$.replace(/-+$/,""),$!==q)U=!1}let K=U&&W?`${W}-${$}`:$,z=Y?`-${Y}`:"";return`--${K}${z}`.replace(/[^a-zA-Z0-9-_]/g,"-")}function X1(X,Z){try{if(!p(X))return X;let Y=new gZ(X);return Y.alpha=Z,b(Y)}catch(Y){return console.warn(`Failed to apply alpha to color "${X}": ${Y}`),X}}function Y1(X,Z){let Y=X.match(/([\d.]+)(\w+)/);if(Y){let[,q,$]=Y;return`${parseFloat(q)*Z}${$}`}return X}function Z1(X,Z){try{if(!p(X))return X;let q=new gZ(X).to("oklch");return q.h=(q.h+Z)%360,b(q)}catch(Y){return console.warn(`Failed to shift hue for color "${X}": ${Y}`),X}}var xY=S(()=>{PZ();AX()});function jY(X){if(X.type==="typography"||X.type==="fontWeight"||X.type==="fontFamily")return!0;if(X.type==="dimension"&&X.name.includes("typography"))return!0;if(X.name.includes("typography")||X.name.includes("font"))return!0;return!1}function s(X,Z,Y){if(Y){if(X===Z)return":host";return`:host([data-theme="${X}"])`}if(X===Z)return":root";return`[data-theme="${X}"]`}function vX(X,Z={}){let{rootSelector:Y=":root",separateThemeFiles:q=!1,generateMediaQueries:$=!1,customHeader:U,modes:W=["light","dark"]}=Z;if(q)return $1(X,Z);let K=new Map,z=new Map;for(let J of W)K.set(J,[]);let G=W.join("|"),A=new RegExp(`#(${G})$`);for(let J of X){if(typeof J.value==="string"&&d(J.value))continue;if(jY(J))continue;let R=` ${J.cssVar}: ${m(J.value,J.type)};`;if($&&J.name.includes("@media")){let w=pX(J);if(w){if(!z.has(w))z.set(w,[]);z.get(w).push(R);continue}}let I=J.name.match(A);if(I){let w=I[1];if(!K.has(w))K.set(w,[]);K.get(w).push(R)}else{let w=W[0]||"light";K.get(w).push(R)}}let E="";if(U)E+=`${U}
34
+ `)}`;throw Error(A)}return K}function yZ(X,Z,Y){let q=[];if(Z.generateModes&&X.extensions?.mode){for(let[$,U]of Object.entries(X.extensions.mode))if(U!==void 0)q.push({...X,name:`${X.name}#${$}`,value:U,path:[...X.path,`#${$}`]})}if(Z.generateModes&&!X.extensions?.mode&&(Array.isArray(X.value)||typeof X.value==="object"&&X.value!==null)){let $=!1,U=!1,W=(K)=>{if(typeof K!=="object"||K===null)return!1;if(K.$extensions?.mode)return!0;return Object.values(K).some((z)=>{if(typeof z==="object"&&z!==null)return W(z);return!1})};if(Array.isArray(X.value))$=X.value.some((K)=>typeof K==="string"&&K.includes("{")||typeof K==="object"&&K!==null&&Object.values(K).some((z)=>typeof z==="string"&&z.includes("{"))),U=X.value.some((K)=>W(K));else $=Object.values(X.value).some((K)=>typeof K==="string"&&K.includes("{")),U=W(X.value);if($||U){if(["color","shadow","border","background","surface","composition"].includes(X.type)){let G;if(Array.isArray(X.value))G=X.value.map((A)=>{if(typeof A==="string"&&A.startsWith("{")&&A.endsWith("}")){let E=A.slice(1,-1);if(!E.includes("#dark")&&!E.includes("@dark"))return`{${E}#dark}`;return A}else if(typeof A==="object"&&A!==null){let E={};for(let[L,_]of Object.entries(A))if(typeof _==="string"&&_.startsWith("{")&&_.endsWith("}")){let H=_.slice(1,-1),Q=`${H}#dark`,B=Y?.get(H),O=Y?.has(Q)||B?.extensions?.mode?.dark!==void 0||B&&(Array.isArray(B.value)||typeof B.value==="object"&&B.value!==null);if(!H.includes("#dark")&&!H.includes("@dark")&&O)E[L]=`{${Q}}`;else E[L]=_}else E[L]=_;return E}return A});else if(typeof X.value==="object"&&X.value!==null){G={};let A=(E)=>{if(typeof E==="string"){if(E.startsWith("{")&&E.endsWith("}")){let L=E.slice(1,-1),_=`${L}#dark`,H=(B,O=new Set)=>{if(O.has(B))return!1;O.add(B);let J=Y?.get(B);if(!J){let R=B.match(/^(.+)@([^@]+)$/);if(R){let[,I,w]=R,M=Y?.get(I);if(M){if(M.extensions?.mode?.dark!==void 0)return!0;if(M.extensions?.generators)return!0;return H(I,O)}}return!1}if(J.extensions?.mode?.dark!==void 0)return!0;if(Y?.has(`${B}#dark`))return!0;if(typeof J.value==="string"&&J.value.startsWith("{")&&J.value.endsWith("}")){let R=J.value.slice(1,-1);return H(R,O)}if(Array.isArray(J.value)||typeof J.value==="object"&&J.value!==null){let R=(I)=>{if(typeof I!=="object"||I===null)return!1;if(I.$extensions?.mode)return!0;return Object.values(I).some((w)=>{if(typeof w==="object"&&w!==null)return R(w);return!1})};if(Array.isArray(J.value))return J.value.some((I)=>typeof I==="string"&&I.includes("{")&&H(I.slice(1,-1),new Set(O))||typeof I==="object"&&I!==null&&(Object.values(I).some((w)=>typeof w==="string"&&w.includes("{")&&H(w.slice(1,-1),new Set(O)))||R(I)));else if(typeof J.value==="object")return Object.values(J.value).some((I)=>typeof I==="string"&&I.includes("{")&&H(I.slice(1,-1),new Set(O)))||R(J.value)}return!1},Q=H(L);if(!L.includes("#dark")&&!L.includes("@dark")&&Q)return`{${_}}`}return E}if(typeof E==="object"&&E!==null){if(E.$extensions?.mode?.dark)return E.$extensions.mode.dark;let L={};for(let[_,H]of Object.entries(E))L[_]=A(H);return L}return E};for(let[E,L]of Object.entries(X.value))G[E]=A(L)}q.push({...X,name:`${X.name}#dark`,value:G,path:[...X.path,"#dark"],extensions:{...X.extensions,autoGenerated:!0}})}}}if(Z.generateModes&&!X.extensions?.mode&&typeof X.value==="string"&&X.value.startsWith("{")&&X.value.endsWith("}")){let $=X.value.slice(1,-1),U=(A,E=new Set)=>{if(E.has(A))return!1;E.add(A);let L=Y?.get(A);if(!L){let _=A.match(/^(.+)@([^@]+)$/);if(_){let[,H,Q]=_,B=Y?.get(H);if(B){if(B.extensions?.mode?.dark!==void 0)return!0;if(B.extensions?.generators)return!0;return U(H,E)}}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 _=L.value.slice(1,-1);return U(_,E)}if(Array.isArray(L.value)||typeof L.value==="object"&&L.value!==null){let _=(H)=>{if(typeof H!=="object"||H===null)return!1;if(H.$extensions?.mode)return!0;return Object.values(H).some((Q)=>{if(typeof Q==="object"&&Q!==null)return _(Q);return!1})};if(Array.isArray(L.value))return L.value.some((H)=>typeof H==="string"&&H.includes("{")&&U(H.slice(1,-1),new Set(E))||typeof H==="object"&&H!==null&&(Object.values(H).some((Q)=>typeof Q==="string"&&Q.includes("{")&&U(Q.slice(1,-1),new Set(E)))||_(H)));else if(typeof L.value==="object")return Object.values(L.value).some((H)=>typeof H==="string"&&H.includes("{")&&U(H.slice(1,-1),new Set(E)))||_(L.value)}return!1},W=U($);if(["color","shadow","border","background","surface","composition"].includes(X.type)&&W&&W&&!$.includes("#dark")&&!$.includes("@dark")){let A=`{${$}#dark}`;q.push({...X,name:`${X.name}#dark`,value:A,path:[...X.path,"#dark"],extensions:{...X.extensions,autoGenerated:!0}})}}if(Z.generateDerivedTokens&&X.extensions?.generators)for(let $ of X.extensions.generators)for(let[U,W]of Object.entries($.value)){let K=bZ(X.name,U),{generators:z,...G}=X.extensions;q.push({...X,name:K,value:X.value,path:[...X.path,U],extensions:{...G,generator:{type:$.type,value:W}}})}if(Z.generateBreakpointTokens&&X.extensions?.breakpoints)for(let[$,U]of Object.entries(X.extensions.breakpoints)){let W=`${X.name}@${$.replace(/[^a-zA-Z0-9]/g,"_")}`,K=U.$value||U.value;if(K&&typeof K==="object"&&"$value"in K)K=K.$value;else if(!K&&typeof U==="object"){let{...A}=U;if(Object.keys(A).length>0)K=A}let z=U.$extensions||U.$extensions,G=U.$type;if(!G&&U.value&&typeof U.value==="object")G=U.value.$type;q.push({...X,name:W,value:K,path:[...X.path,`@${$}`],type:G||X.type,extensions:{mediaQuery:$,...z?{mode:z.mode||z.$mode,generators:z.generators||z.$generators,...Object.fromEntries(Object.entries(z).filter(([A])=>!["mode","$mode","generators","$generators"].includes(A)))}:{}}})}return q}function o0(X,Z){let Y=o(X.value,Z),q=X.type;if(typeof X.value==="string"&&IX(X.value)){let U=X.value.slice(1,-1),W=Z.tokens.get(U);if(W){if(["border","shadow","typography","composition"].includes(W.type))q=W.type;else if(typeof W.value==="string"&&wX(W.value)){let K=fX(W.value),z=new Set;for(let G of K)if(G.type==="reference"&&G.ref&&typeof G.ref==="string"){let A=G.ref.slice(1,-1),E=Z.tokens.get(A);if(E&&["border","shadow","typography","composition"].includes(E.type))z.add(E.type)}if(z.size===1)q=Array.from(z)[0]}}}if(typeof X.value==="string"&&wX(X.value)){let U=fX(X.value),W=new Set;for(let K of U)if(K.type==="reference"&&K.ref&&typeof K.ref==="string"){let z=K.ref.slice(1,-1),G=Z.tokens.get(z);if(G&&["border","shadow","typography","composition"].includes(G.type))W.add(G.type)}if(W.size===1)q=Array.from(W)[0]}if(typeof Y==="object"&&Y!==null&&["border","shadow","typography","composition"].includes(q))Y=r(Y,Z);if(X.extensions?.generator&&typeof X.extensions.generator==="object"&&"type"in X.extensions.generator&&"value"in X.extensions.generator)Y=vX(X.value,X.extensions.generator.type,X.extensions.generator.value,Z);let $=e0(X.name,Z.options);if(q==="color"&&typeof Y==="string"&&p(Y))Y=b(Y,X);if(typeof Y==="string"&&d(Y))Y=RX(Y);return{...X,type:q,value:Y,cssVar:$}}function r(X,Z){if(typeof X==="string"){if(IX(X))return FY(X,Z);else if(wX(X))return hZ(X,Z)}if(Array.isArray(X))return X.map((Y)=>r(Y,Z));if(typeof X==="object"&&X!==null){if("$value"in X&&typeof X.$value==="string")return r(X.$value,Z);if("value"in X&&typeof X.value==="string"&&"$type"in X){if(Z.mode&&X.$extensions?.mode?.[Z.mode])return r(X.$extensions.mode[Z.mode],Z);return r(X.value,Z)}if("value"in X&&typeof X.value==="object"&&"$type"in X){let q=X.value,$=X.$extensions?.delimiter?.character||" ";if(X.$type==="composition"&&q&&typeof q==="object")return Object.values(q).map((W)=>r(W,Z)).join($);return r(X.value,Z)}let Y={};for(let[q,$]of Object.entries(X))Y[q]=r($,Z);return Y}return X}function o(X,Z){if(typeof X==="string"){if(wX(X))return hZ(X,Z);else if(IX(X))return FY(X,Z)}else if(typeof X==="object"&&X!==null&&"$ref"in X)return vZ(X,Z);return X}function FY(X,Z){let Y=X.slice(1,-1),q=Z.tokens.get(Y),$=Z.options.modes||[];if(!q){if($.length>0){for(let K of $)if(Y.endsWith(`@${K}`)){let z=Y.slice(0,-K.length-1)+`#${K}`;if(q=Z.tokens.get(z),q)return wY(q,Z);break}}let W=Y.match(/#([^#@]+)$/);if(W){let K=Y.substring(0,W.index),z=W[1];if(q=Z.tokens.get(K),q){if(q.extensions?.mode?.[z]){let G=q.extensions.mode[z],A=o(G,{...Z,mode:z});if(q.extensions?.generator&&typeof q.extensions.generator==="object"&&"type"in q.extensions.generator&&"value"in q.extensions.generator)A=vX(A,q.extensions.generator.type,q.extensions.generator.value,Z);if(q.type==="color"&&typeof A==="string"&&p(A))A=b(A,q);if(typeof A==="string"&&d(A))A=RX(A);return A}}}if($.length>0)for(let K of $){let z=new RegExp(`(@[^@]+)@${K}$`);if(z.test(Y)){let G=Y.replace(z,`$1#${K}`);if(q=Z.tokens.get(G),!q){let A=G.match(/#([^#@]+)$/);if(A){let E=G.substring(0,A.index),L=A[1];if(q=Z.tokens.get(E),q&&q.extensions?.mode?.[L]){let _=q.extensions.mode[L],H=o(_,{...Z,mode:L});if(q.extensions?.generator&&typeof q.extensions.generator==="object"&&"type"in q.extensions.generator&&"value"in q.extensions.generator)H=vX(H,q.extensions.generator.type,q.extensions.generator.value,Z);if(q.type==="color"&&typeof H==="string"&&p(H))H=b(H,q);if(typeof H==="string"&&d(H))H=RX(H);return H}}}else return wY(q,Z);break}}}if(!q)return console.warn(`Token reference not found: ${X}`),Z.brokenReferences.push(X),X;return wY(q,Z)}function wY(X,Z){let Y;if(X.extensions?.generator&&typeof X.extensions.generator==="object"&&"type"in X.extensions.generator&&"value"in X.extensions.generator)Y=vX(X.value,X.extensions.generator.type,X.extensions.generator.value,Z);else if(Z.mode&&X.extensions?.mode?.[Z.mode])Y=o(X.extensions.mode[Z.mode],Z);else Y=o(X.value,Z);if(X.type==="color"&&typeof Y==="string"&&p(Y))Y=b(Y,X);if(typeof Y==="string"&&d(Y))Y=RX(Y);return Y}function vZ(X,Z){let q=X.$ref.slice(2).replace(/\//g,"."),$=Z.tokens.get(q);if(!$)return console.warn(`JSON Pointer reference not found: ${X.$ref}`),Z.brokenReferences.push(X.$ref),X.$ref;return o($.value,Z)}function hZ(X,Z){let Y=fX(X),q=Y.some((W)=>W.value.includes(",")),$=!0,U=[];for(let W of Y){let K;if(W.type==="reference"&&W.ref){if(typeof W.ref==="string"&&IX(W.ref)){K=FY(W.ref,Z);let z=W.ref.slice(1,-1),G=Z.tokens.get(z);if(!G||!["border","shadow","typography","composition"].includes(G.type))$=!1}else if(typeof W.ref==="object"&&"$ref"in W.ref)K=vZ(W.ref,Z)}else if(K=W.value,W.value.trim()&&W.value.trim()!==",")$=!1;U.push(K)}if(q&&$)return U.filter((W)=>typeof W==="object"&&W!==null&&typeof W!=="string");return U.map((W)=>String(W)).join("")}function vX(X,Z,Y,q){let $=o(X,q);switch(Z){case"alpha":if(typeof $==="string")return X1($,Number(Y)/100);break;case"scale":if(typeof $==="string"&&$.match(/[\d.]+/))return Y1($,Number(Y));break;case"hue":if(typeof $==="string")return Z1($,Number(Y));break;default:return console.warn(`Unknown generator type: ${Z}`),$}return $}function e0(X,Z,Y){let q=X.replace(/\./g,"-");q=q.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),q=q.replace(/@[^@#]*(?:screen|width|height|min|max|orientation).*$/i,""),q=q.replace(/#[^#]*$/,""),q=q.replace(/-@/g,"-").replace(/@/g,"-");let $=q,U=!0,W=Z.prefix||"";if(Z.transformName){if($=Z.transformName(q),$=$.replace(/-+$/,""),$!==q)U=!1}let K=U&&W?`${W}-${$}`:$,z=Y?`-${Y}`:"";return`--${K}${z}`.replace(/[^a-zA-Z0-9-_]/g,"-")}function X1(X,Z){try{if(!p(X))return X;let Y=new gZ(X);return Y.alpha=Z,b(Y)}catch(Y){return console.warn(`Failed to apply alpha to color "${X}": ${Y}`),X}}function Y1(X,Z){let Y=X.match(/([\d.]+)(\w+)/);if(Y){let[,q,$]=Y;return`${parseFloat(q)*Z}${$}`}return X}function Z1(X,Z){try{if(!p(X))return X;let q=new gZ(X).to("oklch");return q.h=(q.h+Z)%360,b(q)}catch(Y){return console.warn(`Failed to shift hue for color "${X}": ${Y}`),X}}var xY=S(()=>{PZ();AX()});function jY(X){if(X.type==="typography"||X.type==="fontWeight"||X.type==="fontFamily")return!0;if(X.type==="dimension"&&X.name.includes("typography"))return!0;if(X.name.includes("typography")||X.name.includes("font"))return!0;return!1}function s(X,Z,Y){if(Y){if(X===Z)return":host";return`:host([data-theme="${X}"])`}if(X===Z)return":root";return`[data-theme="${X}"]`}function hX(X,Z={}){let{rootSelector:Y=":root",separateThemeFiles:q=!1,generateMediaQueries:$=!1,customHeader:U,modes:W=["light","dark"]}=Z;if(q)return $1(X,Z);let K=new Map,z=new Map;for(let J of W)K.set(J,[]);let G=W.join("|"),A=new RegExp(`#(${G})$`);for(let J of X){if(typeof J.value==="string"&&d(J.value))continue;if(jY(J))continue;let R=` ${J.cssVar}: ${m(J.value,J.type)};`;if($&&J.name.includes("@media")){let w=pX(J);if(w){if(!z.has(w))z.set(w,[]);z.get(w).push(R);continue}}let I=J.name.match(A);if(I){let w=I[1];if(!K.has(w))K.set(w,[]);K.get(w).push(R)}else{let w=W[0]||"light";K.get(w).push(R)}}let E="";if(U)E+=`${U}
35
35
 
36
36
  `;let L=Z.defaultMode||W[0]||"light",_=Z.isHost||!1,H=K.get(L)||[];if(H.length>0){H.sort();let J=s(L,L,_);E+=`${J} {
37
37
  ${H.join(`
@@ -64,7 +64,7 @@ ${Y.join(`
64
64
  }
65
65
  `;return{fileName:"theme.css",content:q.endsWith(`
66
66
  `)?q:`${q}
67
- `}}function $1(X,Z){let Y=[],q=new Map,$=[],U=Z.modes||["light","dark"],W=new Set(U),K=U.join("|"),z=new RegExp(`#(${K})$`);for(let H of X){if(pX(H))continue;if(typeof H.value==="string"&&d(H.value))continue;if(jY(H))continue;let Q=H.name.match(z);if(Q){let B=Q[1];if(W.has(B)){if(!q.has(B))q.set(B,[]);q.get(B).push(H)}else $.push(H)}else $.push(H)}if($.length>0){let H=vX($,{...Z,separateThemeFiles:!1})[0];Y.push({...H,fileName:"tokens.css"})}let G=Z.defaultMode||(U.length>0?U[0]:"default"),A=Z.isHost||!1;for(let[H,Q]of q){let B=s(H,G,A),O=q1(Q,{...Z,separateThemeFiles:!1,rootSelector:B});Y.push({...O,fileName:`tokens.${H}.css`,theme:H})}let E=U1(X,Z);Y.push(...E);let L=kZ(X,Z);Y.push(...L);let _=cZ(X,Z);return Y.push(..._),Y}function U1(X,Z){let Y=new Map;for(let U of X){let W=pX(U);if(W){let K=U.name.match(/@(dark|light)$/),z=K?K[1]:"light";if(!Y.has(W))Y.set(W,new Map);let G=Y.get(W);if(!G.has(z))G.set(z,[]);G.get(z).push(U)}}if(Y.size===0)return[];let q=`/**
67
+ `}}function $1(X,Z){let Y=[],q=new Map,$=[],U=Z.modes||["light","dark"],W=new Set(U),K=U.join("|"),z=new RegExp(`#(${K})$`);for(let H of X){if(pX(H))continue;if(typeof H.value==="string"&&d(H.value))continue;if(jY(H))continue;let Q=H.name.match(z);if(Q){let B=Q[1];if(W.has(B)){if(!q.has(B))q.set(B,[]);q.get(B).push(H)}else $.push(H)}else $.push(H)}if($.length>0){let H=hX($,{...Z,separateThemeFiles:!1})[0];Y.push({...H,fileName:"tokens.css"})}let G=Z.defaultMode||(U.length>0?U[0]:"default"),A=Z.isHost||!1;for(let[H,Q]of q){let B=s(H,G,A),O=q1(Q,{...Z,separateThemeFiles:!1,rootSelector:B});Y.push({...O,fileName:`tokens.${H}.css`,theme:H})}let E=U1(X,Z);Y.push(...E);let L=kZ(X,Z);Y.push(...L);let _=cZ(X,Z);return Y.push(..._),Y}function U1(X,Z){let Y=new Map;for(let U of X){let W=pX(U);if(W){let K=U.name.match(/@(dark|light)$/),z=K?K[1]:"light";if(!Y.has(W))Y.set(W,new Map);let G=Y.get(W);if(!G.has(z))G.set(z,[]);G.get(z).push(U)}}if(Y.size===0)return[];let q=`/**
68
68
  * Design System Tokens - Responsive Breakpoints
69
69
  * Generated: ${new Date().toISOString()}
70
70
  *
@@ -168,7 +168,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
168
168
  | ${Y};
169
169
 
170
170
  `,q+`
171
- `}function j1(X,Z){let Y=g1(X),q="";for(let[$,U]of Y){let W=`${h1($)}TokenValue`,K=new Set(U.map((G)=>NX(G.value))),z=Array.from(K).join(`
171
+ `}function j1(X,Z){let Y=g1(X),q="";for(let[$,U]of Y){let W=`${v1($)}TokenValue`,K=new Set(U.map((G)=>NX(G.value))),z=Array.from(K).join(`
172
172
  | `);if(Z)q+=`/**
173
173
  * Possible values for ${$} tokens
174
174
  */
@@ -327,7 +327,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
327
327
  `}function g1(X){let Z=new Map;for(let Y of X){if(!Z.has(Y.type))Z.set(Y.type,[]);Z.get(Y.type).push(Y)}return Z}function f1(X){let Z={};for(let Y of X){if(Y.path.some((z)=>z.includes("@")||z.includes("#")||z.includes("-")||z.includes(".")))continue;let $=Z,U=[...Y.path];for(let z=0;z<U.length-1;z++){let G=U[z];if(!$[G])$[G]={};$=$[G]}let W=U[U.length-1],K=NX(Y.value);$[W]=K}return Z}function sZ(X,Z){let Y="",q=" ".repeat(Z);for(let[$,U]of Object.entries(X)){let W=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test($)?$:`"${$}"`;if(typeof U==="object"&&!Array.isArray(U))Y+=`${q}${W}: {
328
328
  `,Y+=sZ(U,Z+1),Y+=`${q}};
329
329
  `;else Y+=`${q}${W}: ${U};
330
- `}return Y}function NX(X){if(typeof X==="string")return`"${X}"`;else if(typeof X==="number")return X.toString();else if(typeof X==="boolean")return X.toString();else if(Array.isArray(X)){let Z=new Set(X.map((q)=>NX(q)));return`Array<${Array.from(Z).join(" | ")}>`}else if(X===null)return"null";else if(X===void 0)return"undefined";else if(typeof X==="object"&&X!==null)return`{ ${Object.entries(X).map(([q,$])=>`${q}: ${NX($)}`).join("; ")} }`;else return"unknown"}function h1(X){if(!X||typeof X!=="string")return"";return X.charAt(0).toUpperCase()+X.slice(1)}function VY(X){let Z=new Date().toISOString();return`/**
330
+ `}return Y}function NX(X){if(typeof X==="string")return`"${X}"`;else if(typeof X==="number")return X.toString();else if(typeof X==="boolean")return X.toString();else if(Array.isArray(X)){let Z=new Set(X.map((q)=>NX(q)));return`Array<${Array.from(Z).join(" | ")}>`}else if(X===null)return"null";else if(X===void 0)return"undefined";else if(typeof X==="object"&&X!==null)return`{ ${Object.entries(X).map(([q,$])=>`${q}: ${NX($)}`).join("; ")} }`;else return"unknown"}function v1(X){if(!X||typeof X!=="string")return"";return X.charAt(0).toUpperCase()+X.slice(1)}function VY(X){let Z=new Date().toISOString();return`/**
331
331
  * ${X}
332
332
  * Generated: ${Z}
333
333
  *
@@ -335,7 +335,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
335
335
  * Do not edit this file directly - it will be overwritten.
336
336
  */
337
337
 
338
- `}var TY=S(()=>{f()});function v1(X,Z,Y){let q=C(X,{isIncludedOriginalValue:!0}),$=g(X,Y);if(!$||!c(X,"mode",{isIncludedOriginalValue:!1}))$=q;return PX(X,$,Z,Y)}function TX(X,Z,Y){let q=v1(X,Z,Y),$=typeof q==="string"?qX(q):null;if($&&($?.length??0)>=1)return ZX(q,$,Z,Y);else return m1(X,Z,Y)}function m1(X,Z,Y){return PX(X,nX(X,Z,Y),Z,Y)}function PX(X,Z,Y,q){if(!X)return null;if(X.$type==="color")Z=DX(Z,X,Y,q);else if(X.$type==="composition"||X.$type==="typography")Z=YX(X,Y,q);return Z}var MX="did";var f=S(()=>{AX();SX();eX();AX();JX();wZ();RZ();MZ();SX();eX();IY();xY();uX();TY();gY()});import{readFileSync as p1,mkdirSync as tZ}from"fs";import{writeFile as aZ,readdir as d1,mkdir as u1}from"fs/promises";import{resolve as k1,relative as nZ,join as kX,dirname as oZ}from"path";import c1 from"lodash";async function eZ(X){let Z=await d1(X,{withFileTypes:!0}),Y=await Promise.all(Z.map((q)=>{let $=k1(X,q.name);return q.isDirectory()?eZ($):$}));return Array.prototype.concat(...Y)}async function X0(X,Z){if(!X)throw Error("outputDir is required for buildIcons");let{assets:Y,icons:q,tokenNamespace:$,__dirname:U,buildDir:W}=await l(),K=kX(U,Y?.icons?.sourceDir??"icons"),z="build",G=Y?.icons?.distDir??z,A=kX(U,G),E=kX(U,W,"icons");if(!Y?.icons?.sourceDir){console.warn("Skipping icon build: iconsDir is not defined in the project paths.");return}n(kX(U,W));let L=(await eZ(K)).filter((M)=>M.endsWith(".svg")),Q=(await Promise.all(L.map(async(M)=>{let N=p1(M,"utf8").replace(/(\s+(?=(?:[^"]*"[^"]*")*[^"]*$))/g," ").trim()??"";N=await BY(N);let XX=nZ(K,M).split("/").pop(),xX=(N.match(/name="(.*?)"/)??[])[1]??XX?.replace(".svg",""),lX=(N.match(/data-style="(.*?)"/)??[])[1],_0=(N.match(/description="(.*?)"/)??[])[1],[dY]=N.match(/<svg[^>]*>/)??[],[,H0]=dY?.match(/width="([\d.]+)(px)?"/)??[],[,Q0]=dY?.match(/height="([\d.]+)(px)?"/)??[];if(lX!=="animated"&&lX!=="custom")return{path:M,folder:nZ(K,M).split("/").slice(0,-1).concat(xX),file:XX,style:lX,content:N,name:xX,dimensions:{width:Number(H0),height:Number(Q0)},description:_0??""};return}))).filter((M)=>M!==void 0).reduce((M,N)=>{if(N?.style!=="animated"&&N?.style!=="custom"&&N)fY(M,N.folder.join("."),{$type:"icon",$name:N.name,$description:N.description,$style:N.style,$value:N.content,$extensions:{dimensions:N.dimensions},...l1(M,N.folder.join("."))});return M},{}),B=q?.objectPath??`${$}.icons`,J=Object.keys(Q).some((M)=>M.includes("."));Object.keys(Q).forEach(async(M)=>{let N,XX;if(J)N=`${E}/${M}`,XX=`${N}/svg.${M}.tokens.json`;else N=E,XX=`${E}/svg.${M}.tokens.json`;await u1(N,{recursive:!0});let xX=fY({},`${B}${B?".":""}${M}`,Q[M]);await aZ(XX,JSON.stringify(xX,null,2),{flag:"w",encoding:"utf-8"})});let R=`${A}/tokens/${await KX("json")}`,I=oZ(R);tZ(I,{recursive:!0});let w=fY({},B,Q);await aZ(R,JSON.stringify(w,null,2),{flag:"w",encoding:"utf-8"}),await r1(Q,X,Z)}async function r1(X,Z,Y){let{writeFileSync:q}=a("fs"),{join:$}=a("path");try{let U=Object.keys(X).sort(),W=`/**
338
+ `}var TY=S(()=>{f()});function h1(X,Z,Y){let q=C(X,{isIncludedOriginalValue:!0}),$=g(X,Y);if(!$||!c(X,"mode",{isIncludedOriginalValue:!1}))$=q;return PX(X,$,Z,Y)}function TX(X,Z,Y){let q=h1(X,Z,Y),$=typeof q==="string"?qX(q):null;if($&&($?.length??0)>=1)return ZX(q,$,Z,Y);else return m1(X,Z,Y)}function m1(X,Z,Y){return PX(X,nX(X,Z,Y),Z,Y)}function PX(X,Z,Y,q){if(!X)return null;if(X.$type==="color")Z=DX(Z,X,Y,q);else if(X.$type==="composition"||X.$type==="typography")Z=YX(X,Y,q);return Z}var MX="did";var f=S(()=>{AX();SX();eX();AX();JX();wZ();RZ();MZ();SX();eX();IY();xY();uX();TY();gY()});import{readFileSync as p1,mkdirSync as tZ}from"fs";import{writeFile as aZ,readdir as d1,mkdir as u1}from"fs/promises";import{resolve as k1,relative as nZ,join as kX,dirname as oZ}from"path";import c1 from"lodash";async function eZ(X){let Z=await d1(X,{withFileTypes:!0}),Y=await Promise.all(Z.map((q)=>{let $=k1(X,q.name);return q.isDirectory()?eZ($):$}));return Array.prototype.concat(...Y)}async function X0(X,Z){if(!X)throw Error("outputDir is required for buildIcons");let{assets:Y,icons:q,tokenNamespace:$,__dirname:U,buildDir:W}=await l(),K=kX(U,Y?.icons?.sourceDir??"icons"),z="build",G=Y?.icons?.distDir??z,A=kX(U,G),E=kX(U,W,"icons");if(!Y?.icons?.sourceDir){console.warn("Skipping icon build: iconsDir is not defined in the project paths.");return}n(kX(U,W));let L=(await eZ(K)).filter((M)=>M.endsWith(".svg")),Q=(await Promise.all(L.map(async(M)=>{let N=p1(M,"utf8").replace(/(\s+(?=(?:[^"]*"[^"]*")*[^"]*$))/g," ").trim()??"";N=await BY(N);let XX=nZ(K,M).split("/").pop(),xX=(N.match(/name="(.*?)"/)??[])[1]??XX?.replace(".svg",""),lX=(N.match(/data-style="(.*?)"/)??[])[1],_0=(N.match(/description="(.*?)"/)??[])[1],[dY]=N.match(/<svg[^>]*>/)??[],[,H0]=dY?.match(/width="([\d.]+)(px)?"/)??[],[,Q0]=dY?.match(/height="([\d.]+)(px)?"/)??[];if(lX!=="animated"&&lX!=="custom")return{path:M,folder:nZ(K,M).split("/").slice(0,-1).concat(xX),file:XX,style:lX,content:N,name:xX,dimensions:{width:Number(H0),height:Number(Q0)},description:_0??""};return}))).filter((M)=>M!==void 0).reduce((M,N)=>{if(N?.style!=="animated"&&N?.style!=="custom"&&N)fY(M,N.folder.join("."),{$type:"icon",$name:N.name,$description:N.description,$style:N.style,$value:N.content,$extensions:{dimensions:N.dimensions},...l1(M,N.folder.join("."))});return M},{}),B=q?.objectPath??`${$}.icons`,J=Object.keys(Q).some((M)=>M.includes("."));Object.keys(Q).forEach(async(M)=>{let N,XX;if(J)N=`${E}/${M}`,XX=`${N}/svg.${M}.tokens.json`;else N=E,XX=`${E}/svg.${M}.tokens.json`;await u1(N,{recursive:!0});let xX=fY({},`${B}${B?".":""}${M}`,Q[M]);await aZ(XX,JSON.stringify(xX,null,2),{flag:"w",encoding:"utf-8"})});let R=`${A}/tokens/${await KX("json")}`,I=oZ(R);tZ(I,{recursive:!0});let w=fY({},B,Q);await aZ(R,JSON.stringify(w,null,2),{flag:"w",encoding:"utf-8"}),await r1(Q,X,Z)}async function r1(X,Z,Y){let{writeFileSync:q}=a("fs"),{join:$}=a("path");try{let U=Object.keys(X).sort(),W=`/**
339
339
  * Icon Names Type Definition
340
340
  * Generated: ${new Date().toISOString()}
341
341
  *
@@ -394,7 +394,7 @@ export type IconName = typeof icons[number];
394
394
  `}function U0(X,Z){let Y={},q=new Map(X.map(($)=>[$.name,$]));for(let $ of X){let U=$.name;if(Z){if(U.includes(`#${Z}`))U=U.replace(`#${Z}`,"")}else U=U.replace(/#[^#]*$/,"");let W=U.split("."),K=Y;for(let G=0;G<W.length-1;G++){let A=W[G];if(!K[A])K[A]={};K=K[A]}let z=W[W.length-1];K[z]=cX($.value,q)}return Y}function cX(X,Z){if(typeof X==="object"&&X!==null&&!Array.isArray(X)){let Y=X;if(Y.color&&typeof Y.color==="string"&&Y.color.includes("{")&&Y.color.includes("}")){let q=m(X,"shadow");if(typeof q==="string"&&!q.includes("{")){let $={...Y},U=q.split(" "),W=U[U.length-1];if(W&&W.startsWith("#"))$.color=W;else $.color=m(Y.color,"color");return $}}}if(typeof X==="string"){if(X.startsWith("{")&&X.endsWith("}")){let Y=X.slice(1,-1),q=Z.get(Y);if(q)return q.value;let $=m(X,"color");if($!==X)return $}return X}if(Array.isArray(X))return X.map((Y)=>cX(Y,Z));if(typeof X==="object"&&X!==null){let Y={};for(let[q,$]of Object.entries(X))Y[q]=cX($,Z);return Y}return X}function K0(X,Z){let Y="";if(Z)Y+=`/**
395
395
  * Token object type definition
396
396
  */
397
- `;return Y+=`type Tokens = ${hY(X,0)};
397
+ `;return Y+=`type Tokens = ${vY(X,0)};
398
398
  `,Y}function o1(X,Z,Y){let{customHeader:q,includeJSDoc:$}=Z,U="";if(q)U+=`${q}
399
399
 
400
400
  `;else{let W=Y?` - ${Y.charAt(0).toUpperCase()+Y.slice(1)} Theme`:"";U+=`/**
@@ -406,10 +406,10 @@ export type IconName = typeof icons[number];
406
406
  `}if($)U+=`/**
407
407
  * Token object type definition
408
408
  */
409
- `;return U+=`export type Tokens = ${hY(X,0)};
409
+ `;return U+=`export type Tokens = ${vY(X,0)};
410
410
  `,U+`
411
- `}function hY(X,Z){if(typeof X!=="object"||X===null)return typeof X==="string"?"string":typeof X==="number"?"number":typeof X==="boolean"?"boolean":"any";let Y=" ".repeat(Z+1),q=Object.entries(X);if(q.length===0)return"{}";let $=`{
412
- `;for(let[U,W]of q){let K=e1(U)?`"${U}"`:U;$+=`${Y}${K}: ${hY(W,Z+1)};
411
+ `}function vY(X,Z){if(typeof X!=="object"||X===null)return typeof X==="string"?"string":typeof X==="number"?"number":typeof X==="boolean"?"boolean":"any";let Y=" ".repeat(Z+1),q=Object.entries(X);if(q.length===0)return"{}";let $=`{
412
+ `;for(let[U,W]of q){let K=e1(U)?`"${U}"`:U;$+=`${Y}${K}: ${vY(W,Z+1)};
413
413
  `}return $+=" ".repeat(Z)+"}",$}function e1(X){return X.startsWith("@")||X.includes(" ")||X.includes("-")||X.includes("(")||X.includes(")")||X.includes("@")||X.includes(":")||!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(X)}function e(X,Z,Y=0){if(typeof X!=="object"||X===null)return JSON.stringify(X);let q=" ".repeat(Y),$=" ".repeat(Y+1),U=Object.entries(X);if(U.length===0)return"{}";let W=`{
414
414
  `;for(let K=0;K<U.length;K++){let[z,G]=U[K],A=K===U.length-1;if(Z&&typeof G==="string")W+=`${$}/** Token value: ${JSON.stringify(G)} */
415
415
  `;let E=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(z)?z:JSON.stringify(z),L=e(G,Z,Y+1);W+=`${$}${E}: ${L}${A?"":","}
@@ -431,7 +431,7 @@ export type IconName = typeof icons[number];
431
431
  // Default export points to light theme
432
432
  `,W+=`module.exports = require('./light');
433
433
  `}return W+`
434
- `}var W0=S(()=>{uX()});var G0={};sX(G0,{validateCSSFiles:()=>Y2,printValidationResults:()=>Z2});import{readFileSync as vY,existsSync as GX}from"fs";import{join as u}from"path";function Y2(X,Z){let Y={isValid:!0,errors:[],warnings:[],checks:[]},q=u(X,"css"),$=u(q,"tokens.css"),U=GX($);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(Z.$metaData?.tokens?.css?.mediaQuery?.separateThemeFiles??!1){let E=u(q,"tokens.dark.css"),L=GX(E);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 K=u(q,"tokens.breakpoints.css");if(GX(K))Y.checks.push({name:"CSS file exists: tokens.breakpoints.css",passed:!0,message:void 0});let G=Z.$metaData?.tokens?.css?.hooks?.shortenName;if(G?.enabled&&GX(u(q,"tokens.css"))){let E=vY(u(q,"tokens.css"),"utf8");if(G.prefix)for(let{find:L,replace:_}of G.prefix){let H=`--${MX}-${L}`,Q=`--${_}`,B=E.includes(H),O=E.includes(Q);if(Y.checks.push({name:`Prefix hook applied: ${L} → ${_}`,passed:!B&&O,message:B?`Old prefix "${H}" still found in CSS, should be "${Q}"`:void 0}),B)Y.errors.push(`Prefix transformation failed: "${H}" should be replaced with "${Q}"`),Y.isValid=!1}if(G.suffix)for(let{find:L,replace:_}of G.suffix){let Q=new RegExp(`--[^:]+${L.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"g").test(E);if(Y.checks.push({name:`Suffix hook applied: ${L} → ${_}`,passed:!Q,message:Q?`Old suffix "${L}" still found in CSS variable names`:void 0}),Q)Y.errors.push(`Suffix transformation failed: "${L}" should be removed/replaced with "${_}"`),Y.isValid=!1}}if(GX(u(q,"tokens.css"))){let L=vY(u(q,"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 E of A){let L=u(q,E);if(GX(L)){let _=vY(L,"utf8"),H=(_.match(/\{/g)||[]).length-(_.match(/\}/g)||[]).length;if(Y.checks.push({name:`CSS syntax valid: ${E}`,passed:H===0,message:H!==0?`Mismatched braces in ${E}`:void 0}),H!==0)Y.errors.push(`CSS syntax error in ${E}: mismatched braces`),Y.isValid=!1}}return Y}function Z2(X){console.log(`
434
+ `}var W0=S(()=>{uX()});var G0={};sX(G0,{validateCSSFiles:()=>Y2,printValidationResults:()=>Z2});import{readFileSync as hY,existsSync as GX}from"fs";import{join as u}from"path";function Y2(X,Z){let Y={isValid:!0,errors:[],warnings:[],checks:[]},q=u(X,"css"),$=u(q,"tokens.css"),U=GX($);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(Z.$metaData?.tokens?.css?.mediaQuery?.separateThemeFiles??!1){let E=u(q,"tokens.dark.css"),L=GX(E);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 K=u(q,"tokens.breakpoints.css");if(GX(K))Y.checks.push({name:"CSS file exists: tokens.breakpoints.css",passed:!0,message:void 0});let G=Z.$metaData?.tokens?.css?.hooks?.shortenName;if(G?.enabled&&GX(u(q,"tokens.css"))){let E=hY(u(q,"tokens.css"),"utf8");if(G.prefix)for(let{find:L,replace:_}of G.prefix){let H=`--${MX}-${L}`,Q=`--${_}`,B=E.includes(H),O=E.includes(Q);if(Y.checks.push({name:`Prefix hook applied: ${L} → ${_}`,passed:!B&&O,message:B?`Old prefix "${H}" still found in CSS, should be "${Q}"`:void 0}),B)Y.errors.push(`Prefix transformation failed: "${H}" should be replaced with "${Q}"`),Y.isValid=!1}if(G.suffix)for(let{find:L,replace:_}of G.suffix){let Q=new RegExp(`--[^:]+${L.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:`,"g").test(E);if(Y.checks.push({name:`Suffix hook applied: ${L} → ${_}`,passed:!Q,message:Q?`Old suffix "${L}" still found in CSS variable names`:void 0}),Q)Y.errors.push(`Suffix transformation failed: "${L}" should be removed/replaced with "${_}"`),Y.isValid=!1}}if(GX(u(q,"tokens.css"))){let L=hY(u(q,"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 E of A){let L=u(q,E);if(GX(L)){let _=hY(L,"utf8"),H=(_.match(/\{/g)||[]).length-(_.match(/\}/g)||[]).length;if(Y.checks.push({name:`CSS syntax valid: ${E}`,passed:H===0,message:H!==0?`Mismatched braces in ${E}`:void 0}),H!==0)Y.errors.push(`CSS syntax error in ${E}: mismatched braces`),Y.isValid=!1}}return Y}function Z2(X){console.log(`
435
435
 
436
436
  Build Validation Results:`),console.log("========================================================");for(let Z of X.checks){let Y=Z.passed?"✓":"✗";if(console.log(` ${Y} ${Z.name}`),Z.message)console.log(` ${Z.message}`)}if(X.warnings.length>0){console.log(`
437
437
  ⚠️ Warnings:`);for(let Z of X.warnings)console.log(` ${Z}`)}if(X.errors.length>0){console.log(`
@@ -439,7 +439,7 @@ Build Validation Results:`),console.log("=======================================
439
439
  Validation Summary:`),console.log(` - Checks: ${X.checks.filter((Z)=>Z.passed).length}/${X.checks.length} passed`),console.log(` - Errors: ${X.errors.length}`),console.log(` - Warnings: ${X.warnings.length}`),console.log(`
440
440
  ${X.isValid?"✅":"❌"} Build ${X.isValid?"passed":"failed"}`),console.log(`
441
441
  ========================================================
442
- `)}var z0=S(()=>{f()});import{writeFileSync as q2,mkdirSync as $2,existsSync as pY,readFileSync as mY,readdirSync as U2,statSync as A0}from"fs";import{join as V,dirname as FX}from"path";function K2(X,Z,Y=!1,q=!1){let $=[],U=[],W=[];for(let z of X)if(z.fileName.includes("breakpoint"))U.push(`@import url("./css/${z.fileName}");`);else W.push(`@import url("./css/${z.fileName}");`);if($.push(...W),Y)$.push('@import url("./css/tokens.icons.css");');if(q)$.push('@import url("./css/fonts.css");');$.push(...U);let K=`/**
442
+ `)}var z0=S(()=>{f()});import{writeFileSync as q2,mkdirSync as $2,existsSync as mY,readFileSync as pY,readdirSync as U2,statSync as K2}from"fs";import{join as V,dirname as FX}from"path";function W2(X,Z,Y=!1,q=!1){let $=[],U=[],W=[];for(let z of X)if(z.fileName.includes("breakpoint"))U.push(`@import url("./css/${z.fileName}");`);else W.push(`@import url("./css/${z.fileName}");`);if($.push(...W),Y)$.push('@import url("./css/tokens.icons.css");');if(q)$.push('@import url("./css/fonts.css");');$.push(...U);let K=`/**
443
443
  * ${Z} Design System - Main CSS Entry Point
444
444
  * Generated: ${new Date().toISOString()}
445
445
  *
@@ -452,7 +452,7 @@ ${X.isValid?"✅":"❌"} Build ${X.isValid?"passed":"failed"}`),console.log(`
452
452
  ${$.join(`
453
453
  `)}
454
454
  `;return{fileName:`${Z}.design-system.tokens.css`,content:K+`
455
- `,theme:void 0}}function W2(X,Z,Y=!1,q=!1,$,U){let{readFileSync:W}=a("fs"),{join:K}=a("path"),z=[],G=(_)=>{try{let H=K($,"css",_);return W(H,"utf-8")}catch(H){return console.warn(`Could not read ${_}:`,H),""}},A=[];for(let _ of X){let H=G(_.fileName);if(!H)continue;if(_.fileName.includes("breakpoint"))A.push(H);else z.push(H)}let E=U?.$paths?.assets?.icons?.excludeFromRaw??!1;if(Y&&!E){let _=G("tokens.icons.css");if(_)z.push(_)}if(q){let _=G("fonts.css");if(_)z.push(_)}z.push(...A);let L=`/**
455
+ `,theme:void 0}}function G2(X,Z,Y=!1,q=!1,$,U){let{readFileSync:W}=a("fs"),{join:K}=a("path"),z=[],G=(_)=>{try{let H=K($,"css",_);return W(H,"utf-8")}catch(H){return console.warn(`Could not read ${_}:`,H),""}},A=[];for(let _ of X){let H=G(_.fileName);if(!H)continue;if(_.fileName.includes("breakpoint"))A.push(H);else z.push(H)}let E=U?.$paths?.assets?.icons?.excludeFromRaw??!1;if(Y&&!E){let _=G("tokens.icons.css");if(_)z.push(_)}if(q){let _=G("fonts.css");if(_)z.push(_)}z.push(...A);let L=`/**
456
456
  * ${Z} Design System - Raw/Inline CSS
457
457
  * Generated: ${new Date().toISOString()}
458
458
  *
@@ -467,29 +467,29 @@ ${z.join(`
467
467
 
468
468
  `)}
469
469
  `;return{fileName:`${Z}.design-system.tokens.raw.css`,content:L+`
470
- `,theme:void 0}}function G2(X,Z){let Y=X.replace(/\\/g,"/");if(Z.replace(/\\/g,"/").startsWith(Y))return{valid:!1,error:`⚠️ Compositions directory cannot be inside tokens directory.
470
+ `,theme:void 0}}function z2(X,Z){let Y=X.replace(/\\/g,"/");if(Z.replace(/\\/g,"/").startsWith(Y))return{valid:!1,error:`⚠️ Compositions directory cannot be inside tokens directory.
471
471
  `+` Tokens dir: ${X}
472
472
  Compositions dir: ${Z}
473
- Please move compositions to a separate directory (e.g., './compositions')`};return{valid:!0}}function z2(X,Z){let Y=[];if(pY(X)){let q=A0(X);if(q.isDirectory())try{let $=U2(X);for(let U of $){if(!U.endsWith(".json"))continue;let W=V(X,U);if(A0(W).isFile())try{let z=mY(W,"utf-8"),G=JSON.parse(z);if(Array.isArray(G))Y.push(...G);else Y.push(G)}catch(z){console.warn(`⚠️ Failed to parse composition file ${U}:`,z)}}}catch($){console.warn("⚠️ Failed to read compositions directory:",$)}else if(q.isFile()&&X.endsWith(".json"))try{let $=mY(X,"utf-8"),U=JSON.parse($);if(Array.isArray(U))Y.push(...U);else Y.push(U)}catch($){console.warn("⚠️ Failed to parse compositions file:",$)}}if(Z&&Y.length===0){let q=V(Z,"compositions.json");if(pY(q))try{let $=mY(q,"utf-8"),U=JSON.parse($);if(Array.isArray(U))Y.push(...U)}catch($){console.warn("⚠️ Failed to parse compositions.json:",$)}}return Y}function E0(X,Z){let Y=Z.$metaData?.tokens?.css?.hooks?.shortenName;if(!Y?.enabled)return X;let q=X;if(Y.prefix&&Array.isArray(Y.prefix))for(let $ of Y.prefix)q=q.replace(new RegExp($.find,"g"),$.replace);if(Y.suffix&&Array.isArray(Y.suffix)){for(let $ of Y.suffix)if(q.endsWith($.find))q=q.substring(0,q.length-$.find.length)+$.replace}return q}function A2(X,Z){let Y=X.match(/^\{(.+)\}$/);if(Y){let $=Y[1].replace(/\./g,"-");return $=E0($,Z),`var(--${$})`}return X.replace(/\{([^}]+)\}/g,(q,$)=>{let U=$.replace(/\./g,"-");return U=E0(U,Z),`var(--${U})`})}function E2(X,Z,Y,q){let $=[],U=X.filter((z)=>z.platform==="css");if(U.length===0)return $;let W=new Map,K="compositions.css";for(let z of U){let G=z.fileName||"";if(G.endsWith(".css"))G=G.slice(0,-4);let A=G?`${G}.css`:K;if(!W.has(A))W.set(A,[]);W.get(A).push(z)}for(let[z,G]of W.entries()){let A=[];if(A.push("/**"),A.push(" * Design System Compositions - Generated Styles"),A.push(" * DO NOT EDIT THIS FILE DIRECTLY"),A.push(" * Generated from composition definitions"),A.push(` * Namespace: ${Z.$metaData?.dsNamespace||"ds"}.${Z.$metaData?.tokenNamespace||"tokens"}`),A.push(` * File: ${z}`),A.push(` */
474
- `),G.length===0)A.push("/* No compositions defined */");else for(let L of G){A.push(`/* ${L.name} */`);let _=L.groupProperties,H=_&&(_.mediaQuery||_.parentSelector||_.containerQuery||_.customAtRule),Q="",B=[];if(H){if(_.customAtRule){let O=k(_.customAtRule,Y);A.push(`${O} {`),B.push("}"),Q=" "}if(_.mediaQuery){let O=k(_.mediaQuery,Y);A.push(`${Q}${O} {`),B.push("}"),Q+=" "}if(_.containerQuery){let O=k(_.containerQuery,Y);A.push(`${Q}${O} {`),B.push("}"),Q+=" "}if(_.parentSelector){let O=k(_.parentSelector,Y);A.push(`${Q}${O} {`),B.push("}"),Q+=" "}}A.push(`${Q}${L.selector} {`);for(let O of L.properties){let J=A2(O.token,Z);A.push(`${Q} ${O.property}: ${J};`)}A.push(`${Q}}`);while(B.length>0)Q=Q.slice(2),A.push(`${Q}${B.pop()}`);A.push("")}let E=A.join(`
473
+ Please move compositions to a separate directory (e.g., './compositions')`};return{valid:!0}}function L0(X,Z){try{let Y=U2(X,{withFileTypes:!0});for(let q of Y){let $=V(X,q.name);if(q.isDirectory())L0($,Z);else if(q.isFile()&&q.name.endsWith(".json"))try{let U=pY($,"utf-8"),W=JSON.parse(U);if(Array.isArray(W))Z.push(...W);else Z.push(W)}catch(U){console.warn(`⚠️ Failed to parse composition file ${$}:`,U)}}}catch(Y){console.warn(`⚠️ Failed to read directory ${X}:`,Y)}}function A2(X,Z){let Y=[];if(mY(X)){let q=K2(X);if(q.isDirectory())L0(X,Y);else if(q.isFile()&&X.endsWith(".json"))try{let $=pY(X,"utf-8"),U=JSON.parse($);if(Array.isArray(U))Y.push(...U);else Y.push(U)}catch($){console.warn("⚠️ Failed to parse compositions file:",$)}}if(Z&&Y.length===0){let q=V(Z,"compositions.json");if(mY(q))try{let $=pY(q,"utf-8"),U=JSON.parse($);if(Array.isArray(U))Y.push(...U)}catch($){console.warn("⚠️ Failed to parse compositions.json:",$)}}return Y}function A0(X,Z){let Y=Z.$metaData?.tokens?.css?.hooks?.shortenName;if(!Y?.enabled)return X;let q=X;if(Y.prefix&&Array.isArray(Y.prefix))for(let $ of Y.prefix)q=q.replace(new RegExp($.find,"g"),$.replace);if(Y.suffix&&Array.isArray(Y.suffix)){for(let $ of Y.suffix)if(q.endsWith($.find))q=q.substring(0,q.length-$.find.length)+$.replace}return q}function E2(X,Z){let Y=X.match(/^\{(.+)\}$/);if(Y){let $=Y[1].replace(/\./g,"-");return $=A0($,Z),`var(--${$})`}return X.replace(/\{([^}]+)\}/g,(q,$)=>{let U=$.replace(/\./g,"-");return U=A0(U,Z),`var(--${U})`})}function L2(X,Z,Y,q){let $=[],U=X.filter((z)=>z.platform==="css");if(U.length===0)return $;let W=new Map,K="compositions.css";for(let z of U){let G=z.fileName||"";if(G.endsWith(".css"))G=G.slice(0,-4);let A=G?`${G}.css`:K;if(!W.has(A))W.set(A,[]);W.get(A).push(z)}for(let[z,G]of W.entries()){let A=[];if(A.push("/**"),A.push(" * Design System Compositions - Generated Styles"),A.push(" * DO NOT EDIT THIS FILE DIRECTLY"),A.push(" * Generated from composition definitions"),A.push(` * Namespace: ${Z.$metaData?.dsNamespace||"ds"}.${Z.$metaData?.tokenNamespace||"tokens"}`),A.push(` * File: ${z}`),A.push(` */
474
+ `),G.length===0)A.push("/* No compositions defined */");else for(let L of G){A.push(`/* ${L.name} */`);let _=L.groupProperties,H=_&&(_.mediaQuery||_.parentSelector||_.containerQuery||_.customAtRule),Q="",B=[];if(H){if(_.customAtRule){let O=k(_.customAtRule,Y);A.push(`${O} {`),B.push("}"),Q=" "}if(_.mediaQuery){let O=k(_.mediaQuery,Y);A.push(`${Q}${O} {`),B.push("}"),Q+=" "}if(_.containerQuery){let O=k(_.containerQuery,Y);A.push(`${Q}${O} {`),B.push("}"),Q+=" "}if(_.parentSelector){let O=k(_.parentSelector,Y);A.push(`${Q}${O} {`),B.push("}"),Q+=" "}}A.push(`${Q}${L.selector} {`);for(let O of L.properties){let J=E2(O.token,Z);A.push(`${Q} ${O.property}: ${J};`)}A.push(`${Q}}`);while(B.length>0)Q=Q.slice(2),A.push(`${Q}${B.pop()}`);A.push("")}let E=A.join(`
475
475
  `);$.push({fileName:z,content:E+`
476
476
  `,theme:void 0})}return $}async function iZ(X){let Z=Date.now(),Y={tokenCount:0,cssFiles:[],typescriptFiles:[],javascriptFiles:[],jsonFiles:[],duration:0,warnings:[],errors:[]};try{F(`
477
- Starting token build process...`,X.verbose);let{initializeColorspace:q}=await Promise.resolve().then(() => (AX(),sY));await q(),F("Loading token files...",X.verbose);let $=RY(X.tokensDir);F("Parsing tokens...",X.verbose);let U=L2(X.config),W=MY($,U);if(F(`Found ${W.length} tokens`,X.verbose),Y.tokenCount=W.length,W.length===0&&U.namespace){let G=Object.keys($).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 K=NY(W,U);if(F(`Resolved ${K.length} tokens`,X.verbose),X.generateCSS!==!1){F(`
478
- Generating CSS files...`,X.verbose);let G=L0(X.config,X.cssOptions),A=vX(K,G);for(let E of A){let L=V(X.outputDir,"css",E.fileName);i(L,E.content),F(` ✓ ${E.fileName}`,X.verbose)}Y.cssFiles=A}if(X.generateCSS!==!1)try{await X0(X.outputDir,X.config),F(`
479
- Generated icon tokens`,X.verbose)}catch(G){if(X.verbose)console.warn("Could not build icon tokens:",G)}if(X.generateCSS!==!1)try{let G=await PY();if(G.length>0){let A=L0(X.config,X.cssOptions),E=X.config.$metaData?.modes?.isHost??!1,L=X.config.$modes?.default||"light",_=SY(G,{customHeader:dX(X.config),objectPath:X.config.$metaData?.icons?.objectPath||"universe.custom.path.icons",hooks:A.hooks,isHost:E,defaultMode:L}),H=V(X.outputDir,"css",_.fileName);if(i(H,_.content),F(` ✓ Generated ${_.fileName}`,X.verbose),Y.cssFiles)Y.cssFiles.push(_);else Y.cssFiles=[_]}}catch(G){if(X.verbose)console.warn("Could not generate icon CSS:",G)}let z=!1;if(X.generateCSS!==!1)try{let G=X.config.$fonts;if(G&&G.length>0){await JY(G,X.outputDir),F(" ✓ Generated fonts.css",X.verbose),z=!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(X.verbose)console.warn("Could not generate font CSS:",G)}if(X.generateCSS!==!1&&Y.cssFiles.length>0){let G=X.config.$metaData?.tokenNamespace||"tokens",A=Y.cssFiles.some((Q)=>Q.fileName==="tokens.icons.css"),E=X.config.$metaData?.modes?.isHost||!1,L=Y.cssFiles.filter((Q)=>{if(Q.fileName==="tokens.icons.css"||Q.fileName==="fonts.css")return!1;if(E&&Q.fileName.includes("composition"))return!1;return!0}),_=K2(L,G,A,z),H=V(X.outputDir,_.fileName);if(i(H,_.content),F(` ✓ Generated ${_.fileName}`,X.verbose),Y.cssFiles.push(_),E){let Q=W2(Y.cssFiles.filter((O)=>O.fileName!=="tokens.icons.css"&&O.fileName!=="fonts.css"&&!O.fileName.includes(".design-system.tokens.css")),G,A,z,X.outputDir,X.config),B=V(X.outputDir,Q.fileName);i(B,Q.content),F(` ✓ Generated ${Q.fileName} (raw/inline for web components)`,X.verbose),Y.cssFiles.push(Q)}}if(X.generateCSS!==!1&&X.config.$paths.compositionsDir)try{let G=X.config.$paths.baseDir,A=X.config.$paths.tokensDir,E=X.tokensDir,L=A.split("/").filter((O)=>O&&O!=="."&&O!=="..");for(let O=0;O<L.length;O++)E=FX(E);let _=G.split("/").filter((O)=>O&&O!=="."&&O!=="..");for(let O=0;O<_.length;O++)E=FX(E);let H=V(E,G,X.config.$paths.compositionsDir),Q=V(E,G);if(X.verbose)console.log(` Project root: ${E}`),console.log(` Base dir: ${Q}`),console.log(` Compositions dir: ${H}`);let B=G2(X.tokensDir,H);if(!B.valid)console.error(B.error),Y.errors.push(B.error);else{F(`
480
- Processing composition files...`,X.verbose);let O=z2(H,Q);if(O.length>0){F(` Found ${O.length} composition(s)`,X.verbose);let J=new Map;for(let I of K){let w=Array.isArray(I.path)?I.path.join("."):I.path;J.set(w,I)}let R=E2(O,X.config,J,X.outputDir);for(let I of R){let w=V(X.outputDir,"css",I.fileName);i(w,I.content),F(` ✓ Generated ${I.fileName}`,X.verbose),Y.cssFiles.push(I)}}else F(` No compositions found in ${H}`,X.verbose)}}catch(G){if(X.verbose)console.warn("Could not generate composition CSS:",G)}if(X.generateTypeScript!==!1){F(`
481
- Generating TypeScript files...`,X.verbose);let G=_2(X.config,X.typescriptOptions),A=await CY(K,G,X.outputDir);for(let E of A){let L=V(X.outputDir,"typescript",E.fileName);i(L,E.content),F(` ✓ Generated ${E.fileName}`,X.verbose)}Y.typescriptFiles=A}if(X.generateJavaScript!==!1){F(`
482
- Generating JavaScript files...`,X.verbose);let G=H2(X.config,X.javascriptOptions),A=$0(K,G);for(let E of A){let L=V(X.outputDir,"js",E.fileName);i(L,E.content),F(` ✓ Generated ${E.fileName}`,X.verbose)}Y.javascriptFiles=A}if(X.generateJSON!==!1){F(`
483
- Generating JSON files...`,X.verbose);let G=Q2(K,W,X.config);for(let A of G){let E=V(X.outputDir,"json",A.fileName);i(E,A.content),F(` ✓ Generated ${A.fileName}`,X.verbose)}Y.jsonFiles=G}Y.duration=Date.now()-Z,F(`
477
+ Starting token build process...`,X.verbose);let{initializeColorspace:q}=await Promise.resolve().then(() => (AX(),sY));await q(),F("Loading token files...",X.verbose);let $=RY(X.tokensDir);F("Parsing tokens...",X.verbose);let U=_2(X.config),W=MY($,U);if(F(`Found ${W.length} tokens`,X.verbose),Y.tokenCount=W.length,W.length===0&&U.namespace){let G=Object.keys($).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 K=NY(W,U);if(F(`Resolved ${K.length} tokens`,X.verbose),X.generateCSS!==!1){F(`
478
+ Generating CSS files...`,X.verbose);let G=E0(X.config,X.cssOptions),A=hX(K,G);for(let E of A){let L=V(X.outputDir,"css",E.fileName);i(L,E.content),F(` ✓ ${E.fileName}`,X.verbose)}Y.cssFiles=A}if(X.generateCSS!==!1)try{await X0(X.outputDir,X.config),F(`
479
+ Generated icon tokens`,X.verbose)}catch(G){if(X.verbose)console.warn("Could not build icon tokens:",G)}if(X.generateCSS!==!1)try{let G=await PY();if(G.length>0){let A=E0(X.config,X.cssOptions),E=X.config.$metaData?.modes?.isHost??!1,L=X.config.$modes?.default||"light",_=SY(G,{customHeader:dX(X.config),objectPath:X.config.$metaData?.icons?.objectPath||"universe.custom.path.icons",hooks:A.hooks,isHost:E,defaultMode:L}),H=V(X.outputDir,"css",_.fileName);if(i(H,_.content),F(` ✓ Generated ${_.fileName}`,X.verbose),Y.cssFiles)Y.cssFiles.push(_);else Y.cssFiles=[_]}}catch(G){if(X.verbose)console.warn("Could not generate icon CSS:",G)}let z=!1;if(X.generateCSS!==!1)try{let G=X.config.$fonts;if(G&&G.length>0){await JY(G,X.outputDir),F(" ✓ Generated fonts.css",X.verbose),z=!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(X.verbose)console.warn("Could not generate font CSS:",G)}if(X.generateCSS!==!1&&Y.cssFiles.length>0){let G=X.config.$metaData?.tokenNamespace||"tokens",A=Y.cssFiles.some((Q)=>Q.fileName==="tokens.icons.css"),E=X.config.$metaData?.modes?.isHost||!1,L=Y.cssFiles.filter((Q)=>{if(Q.fileName==="tokens.icons.css"||Q.fileName==="fonts.css")return!1;if(E&&Q.fileName.includes("composition"))return!1;return!0}),_=W2(L,G,A,z),H=V(X.outputDir,_.fileName);if(i(H,_.content),F(` ✓ Generated ${_.fileName}`,X.verbose),Y.cssFiles.push(_),E){let Q=G2(Y.cssFiles.filter((O)=>O.fileName!=="tokens.icons.css"&&O.fileName!=="fonts.css"&&!O.fileName.includes(".design-system.tokens.css")),G,A,z,X.outputDir,X.config),B=V(X.outputDir,Q.fileName);i(B,Q.content),F(` ✓ Generated ${Q.fileName} (raw/inline for web components)`,X.verbose),Y.cssFiles.push(Q)}}if(X.generateCSS!==!1&&X.config.$paths.compositionsDir)try{let G=X.config.$paths.baseDir,A=X.config.$paths.tokensDir,E=X.tokensDir,L=A.split("/").filter((O)=>O&&O!=="."&&O!=="..");for(let O=0;O<L.length;O++)E=FX(E);let _=G.split("/").filter((O)=>O&&O!=="."&&O!=="..");for(let O=0;O<_.length;O++)E=FX(E);let H=V(E,G,X.config.$paths.compositionsDir),Q=V(E,G);if(X.verbose)console.log(` Project root: ${E}`),console.log(` Base dir: ${Q}`),console.log(` Compositions dir: ${H}`);let B=z2(X.tokensDir,H);if(!B.valid)console.error(B.error),Y.errors.push(B.error);else{F(`
480
+ Processing composition files...`,X.verbose);let O=A2(H,Q);if(O.length>0){F(` Found ${O.length} composition(s)`,X.verbose);let J=new Map;for(let I of K){let w=Array.isArray(I.path)?I.path.join("."):I.path;J.set(w,I)}let R=L2(O,X.config,J,X.outputDir);for(let I of R){let w=V(X.outputDir,"css",I.fileName);i(w,I.content),F(` ✓ Generated ${I.fileName}`,X.verbose),Y.cssFiles.push(I)}}else F(` No compositions found in ${H}`,X.verbose)}}catch(G){if(X.verbose)console.warn("Could not generate composition CSS:",G)}if(X.generateTypeScript!==!1){F(`
481
+ Generating TypeScript files...`,X.verbose);let G=H2(X.config,X.typescriptOptions),A=await CY(K,G,X.outputDir);for(let E of A){let L=V(X.outputDir,"typescript",E.fileName);i(L,E.content),F(` ✓ Generated ${E.fileName}`,X.verbose)}Y.typescriptFiles=A}if(X.generateJavaScript!==!1){F(`
482
+ Generating JavaScript files...`,X.verbose);let G=Q2(X.config,X.javascriptOptions),A=$0(K,G);for(let E of A){let L=V(X.outputDir,"js",E.fileName);i(L,E.content),F(` ✓ Generated ${E.fileName}`,X.verbose)}Y.javascriptFiles=A}if(X.generateJSON!==!1){F(`
483
+ Generating JSON files...`,X.verbose);let G=O2(K,W,X.config);for(let A of G){let E=V(X.outputDir,"json",A.fileName);i(E,A.content),F(` ✓ Generated ${A.fileName}`,X.verbose)}Y.jsonFiles=G}Y.duration=Date.now()-Z,F(`
484
484
  Build completed in ${Y.duration}ms`,X.verbose)}catch(q){let $=q instanceof Error?q.message:String(q);Y.errors.push($),F(`❌ Build failed: ${$}`,X.verbose)}if(X.validate!==!1){F(`
485
- Validating build output...`,X.verbose);let{validateCSSFiles:q,printValidationResults:$}=await Promise.resolve().then(() => (z0(),G0)),U=q(X.outputDir,X.config);if(X.verbose||!U.isValid)$(U);if(!U.isValid)Y.errors.push(...U.errors)}return Y}function L2(X){let Z=X.$metaData,Y=X.$modes?[...Object.values(X.$modes)]:[];return{prefix:Z.dsNamespace||Z.tokenNamespace,namespace:Z.tokenNamespace,generateModes:!0,modes:Y,generateDerivedTokens:!0,generateBreakpointTokens:!0,failOnBrokenReferences:!0,transformName:(q)=>{let $=Z.tokens?.css?.hooks?.shortenName;if($?.enabled){let U=q;if($.prefix)for(let{find:W,replace:K}of $.prefix){let z=W.replace(/\./g,"-").replace(/-$/,""),G=K.replace(/\./g,"-").replace(/-$/,"");U=U.replace(z,G)}if($.suffix){for(let{find:W,replace:K}of $.suffix)if(U.endsWith(W))U=U.substring(0,U.length-W.length)+K}return U}return q}}}function L0(X,Z){let Y=X.$metaData,q=Y.tokens?.css,$=X.$modes?[...Object.values(X.$modes)]:["light","dark"],U=$.length>0?$[0]:"light",W=Y.modes?.isHost??!1;return{...Z,separateThemeFiles:q?.mediaQuery?.separateThemeFiles??!1,rootSelector:":root",generateMediaQueries:!0,customHeader:dX(X),themeSelector:q?.mediaQuery?.match||"[data-theme]",modes:$,defaultMode:U,isHost:W,hooks:q?.hooks}}function _2(X,Z){let Y=X.$metaData;return{...Z,tokenInterface:"DesignTokens",exportNamespace:Y.dsNamespace||Y.tokenNamespace,generateTypes:!0,generateConsts:!0,generateCSSVarMappings:!0,includeJSDoc:!0}}function H2(X,Z){let Y=X.$modes?[...Object.values(X.$modes)]:["light","dark"];return{...Z,modes:Y,typescript:!0,separateThemeFiles:!0,includeJSDoc:!1,moduleType:"es",customHeader:`/**
485
+ Validating build output...`,X.verbose);let{validateCSSFiles:q,printValidationResults:$}=await Promise.resolve().then(() => (z0(),G0)),U=q(X.outputDir,X.config);if(X.verbose||!U.isValid)$(U);if(!U.isValid)Y.errors.push(...U.errors)}return Y}function _2(X){let Z=X.$metaData,Y=X.$modes?[...Object.values(X.$modes)]:[];return{prefix:Z.dsNamespace||Z.tokenNamespace,namespace:Z.tokenNamespace,generateModes:!0,modes:Y,generateDerivedTokens:!0,generateBreakpointTokens:!0,failOnBrokenReferences:!0,transformName:(q)=>{let $=Z.tokens?.css?.hooks?.shortenName;if($?.enabled){let U=q;if($.prefix)for(let{find:W,replace:K}of $.prefix){let z=W.replace(/\./g,"-").replace(/-$/,""),G=K.replace(/\./g,"-").replace(/-$/,"");U=U.replace(z,G)}if($.suffix){for(let{find:W,replace:K}of $.suffix)if(U.endsWith(W))U=U.substring(0,U.length-W.length)+K}return U}return q}}}function E0(X,Z){let Y=X.$metaData,q=Y.tokens?.css,$=X.$modes?[...Object.values(X.$modes)]:["light","dark"],U=$.length>0?$[0]:"light",W=Y.modes?.isHost??!1;return{...Z,separateThemeFiles:q?.mediaQuery?.separateThemeFiles??!1,rootSelector:":root",generateMediaQueries:!0,customHeader:dX(X),themeSelector:q?.mediaQuery?.match||"[data-theme]",modes:$,defaultMode:U,isHost:W,hooks:q?.hooks}}function H2(X,Z){let Y=X.$metaData;return{...Z,tokenInterface:"DesignTokens",exportNamespace:Y.dsNamespace||Y.tokenNamespace,generateTypes:!0,generateConsts:!0,generateCSSVarMappings:!0,includeJSDoc:!0}}function Q2(X,Z){let Y=X.$modes?[...Object.values(X.$modes)]:["light","dark"];return{...Z,modes:Y,typescript:!0,separateThemeFiles:!0,includeJSDoc:!1,moduleType:"es",customHeader:`/**
486
486
  * ${X.$name}
487
487
  * Generated: ${new Date().toISOString()}
488
- */`}}function Q2(X,Z,Y){let q=[],$=JSON.stringify({$schema:"https://schemas.designtokens.org/design-tokens.schema.json",$name:Y.$name,$version:Y.$version,tokens:Z.reduce((K,z)=>{return K[z.name]={$type:z.type,$value:z.value,$description:z.description,$extensions:z.extensions},K},{})},null,2);q.push({fileName:"tokens.raw.json",content:$+`
488
+ */`}}function O2(X,Z,Y){let q=[],$=JSON.stringify({$schema:"https://schemas.designtokens.org/design-tokens.schema.json",$name:Y.$name,$version:Y.$version,tokens:Z.reduce((K,z)=>{return K[z.name]={$type:z.type,$value:z.value,$description:z.description,$extensions:z.extensions},K},{})},null,2);q.push({fileName:"tokens.raw.json",content:$+`
489
489
  `});let U=JSON.stringify({$name:Y.$name,$version:Y.$version,tokens:X.reduce((K,z)=>{return K[z.name]={$type:z.type,$value:z.value,$description:z.description,cssVar:z.cssVar},K},{})},null,2);q.push({fileName:"tokens.resolved.json",content:U+`
490
490
  `});let W=JSON.stringify({$name:`${Y.$name} - CSS Variables`,$version:Y.$version,variables:X.reduce((K,z)=>{return K[z.cssVar]=z.value,K},{})},null,2);return q.push({fileName:"css-variables.json",content:W+`
491
- `}),q}function i(X,Z){let Y=FX(X);if(!pY(Y))$2(Y,{recursive:!0});q2(X,Z,"utf-8")}function F(X,Z){if(Z!==!1)console.log(X)}async function yY(X,Z){let Y=typeof globalThis.Bun<"u",q=X,$=null;if(X.endsWith(".ts")&&!Y){let{compileConfigFile:E,getDistConfigFile:L}=await Promise.resolve().then(() => (JX(),IZ)),_=FX(X);await E(_),q=L(_),$=q}let W=(await import(q)).default,K=FX(X),z=(E)=>{if(E.startsWith("../"))return V(K,E);return V(K,W.$paths.baseDir,E)},G=V(K,W.$paths.baseDir,W.$paths.tokensDir),A=Z||z(W.$paths.distDir);try{return await iZ({config:W,tokensDir:G,outputDir:A,verbose:!0})}finally{if($){let{existsSync:E,unlinkSync:L}=await import("fs");if(E($))try{L($)}catch(_){}}}}var gY=S(()=>{Y0();uX();W0();xY();TY();IY();SX()});import{existsSync as O2}from"fs";import{resolve as B2}from"path";import{execSync as M0}from"child_process";import{existsSync as jX,statSync as uY}from"fs";import{resolve as kY}from"path";async function cY(X,Z=!1){let Y=process.cwd(),q=X||kY(Y,"designid.config.ts"),$=kY(Y,"designid.config.mjs");if(!jX(q))return!1;if(!(!jX($)||jX(q)&&jX($)&&uY(q).mtimeMs>uY($).mtimeMs)){if(Z)console.log("✓ Config file is up to date");return!1}if(Z)console.log("\uD83D\uDD04 Compiling config file...");try{if(M0(`bun build ${q} --outfile ${$} --minify --target node --packages external --no-bundle`,{stdio:Z?"inherit":"pipe"}),Z)console.log(`✅ Config compiled successfully
492
- `);return!0}catch(W){if(console.error("❌ Failed to compile config file"),W instanceof Error)console.error(W.message);throw W}}gY();function J2(X){let Z={};for(let Y=0;Y<X.length;Y++){let q=X[Y];switch(q){case"--config":case"-c":Z.config=X[++Y];break;case"--input":case"-i":Z.input=X[++Y];break;case"--output":case"-o":Z.output=X[++Y];break;case"--verbose":case"-v":Z.verbose=!0;break;case"--no-css":Z.css=!1;break;case"--no-typescript":Z.typescript=!1;break;case"--no-json":Z.json=!1;break;case"--help":case"-h":Z.help=!0;break;default:if(q.startsWith("-"))console.warn(`Unknown option: ${q}`);break}}return Z}function I2(){console.log(`
491
+ `}),q}function i(X,Z){let Y=FX(X);if(!mY(Y))$2(Y,{recursive:!0});q2(X,Z,"utf-8")}function F(X,Z){if(Z!==!1)console.log(X)}async function yY(X,Z){let Y=typeof globalThis.Bun<"u",q=X,$=null;if(X.endsWith(".ts")&&!Y){let{compileConfigFile:E,getDistConfigFile:L}=await Promise.resolve().then(() => (JX(),IZ)),_=FX(X);await E(_),q=L(_),$=q}let W=(await import(q)).default,K=FX(X),z=(E)=>{if(E.startsWith("../"))return V(K,E);return V(K,W.$paths.baseDir,E)},G=V(K,W.$paths.baseDir,W.$paths.tokensDir),A=Z||z(W.$paths.distDir);try{return await iZ({config:W,tokensDir:G,outputDir:A,verbose:!0})}finally{if($){let{existsSync:E,unlinkSync:L}=await import("fs");if(E($))try{L($)}catch(_){}}}}var gY=S(()=>{Y0();uX();W0();xY();TY();IY();SX()});import{existsSync as B2}from"fs";import{resolve as J2}from"path";import{execSync as M0}from"child_process";import{existsSync as jX,statSync as uY}from"fs";import{resolve as kY}from"path";async function cY(X,Z=!1){let Y=process.cwd(),q=X||kY(Y,"designid.config.ts"),$=kY(Y,"designid.config.mjs");if(!jX(q))return!1;if(!(!jX($)||jX(q)&&jX($)&&uY(q).mtimeMs>uY($).mtimeMs)){if(Z)console.log("✓ Config file is up to date");return!1}if(Z)console.log("\uD83D\uDD04 Compiling config file...");try{if(M0(`bun build ${q} --outfile ${$} --minify --target node --packages external --no-bundle`,{stdio:Z?"inherit":"pipe"}),Z)console.log(`✅ Config compiled successfully
492
+ `);return!0}catch(W){if(console.error("❌ Failed to compile config file"),W instanceof Error)console.error(W.message);throw W}}gY();function I2(X){let Z={};for(let Y=0;Y<X.length;Y++){let q=X[Y];switch(q){case"--config":case"-c":Z.config=X[++Y];break;case"--input":case"-i":Z.input=X[++Y];break;case"--output":case"-o":Z.output=X[++Y];break;case"--verbose":case"-v":Z.verbose=!0;break;case"--no-css":Z.css=!1;break;case"--no-typescript":Z.typescript=!1;break;case"--no-json":Z.json=!1;break;case"--help":case"-h":Z.help=!0;break;default:if(q.startsWith("-"))console.warn(`Unknown option: ${q}`);break}}return Z}function w2(){console.log(`
493
493
  Design Tokens Builder - W3C compliant token processor
494
494
 
495
495
  Usage: build-tokens [options]
@@ -523,11 +523,11 @@ Token Files:
523
523
  - Include $type and $value properties
524
524
  - Support token references with {token.path} syntax
525
525
  - Support extensions for modes, generators, and breakpoints
526
- `)}function w2(X){let Z=[X,"./designid.config.ts","./designid.config.mjs","./designid.config.js","./tokens.config.ts","./tokens.config.js"].filter(Boolean);for(let Y of Z){let q=B2(Y);if(O2(q))return q}throw Error(`Config file not found. Tried: ${Z.join(", ")}`)}async function R2(){let X=J2(process.argv.slice(2));if(X.help){I2();return}try{await cY(X.config,X.verbose);let Z=w2(X.config);console.log(`Using config: ${Z}`);let Y=await yY(Z,X.output);if(Y.errors.length>0)console.log(`
526
+ `)}function R2(X){let Z=[X,"./designid.config.ts","./designid.config.mjs","./designid.config.js","./tokens.config.ts","./tokens.config.js"].filter(Boolean);for(let Y of Z){let q=J2(Y);if(B2(q))return q}throw Error(`Config file not found. Tried: ${Z.join(", ")}`)}async function M2(){let X=I2(process.argv.slice(2));if(X.help){w2();return}try{await cY(X.config,X.verbose);let Z=R2(X.config);console.log(`Using config: ${Z}`);let Y=await yY(Z,X.output);if(Y.errors.length>0)console.log(`
527
527
  ❌ Build failed with ${Y.errors.length} error${Y.errors.length>1?"s":""}:`),Y.errors.forEach((q)=>console.log(` - ${q}`)),process.exit(1);if(console.log(`Processed ${Y.tokenCount} tokens`),console.log(`Duration: ${Y.duration}ms`),console.log(`Build completed successfully!
528
528
  `),Y.cssFiles.length>0)console.log(`
529
529
  Generated ${Y.cssFiles.length} CSS files:`),Y.cssFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.typescriptFiles.length>0)console.log(`
530
530
  Generated ${Y.typescriptFiles.length} TypeScript files:`),Y.typescriptFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.javascriptFiles.length>0)console.log(`
531
531
  Generated ${Y.javascriptFiles.length} JavaScript files:`),Y.javascriptFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.jsonFiles.length>0)console.log(`
532
532
  Generated ${Y.jsonFiles.length} JSON files:`),Y.jsonFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.warnings.length>0)console.log(`
533
- Warnings:`),Y.warnings.forEach((q)=>console.log(` - ${q}`))}catch(Z){console.error("❌ Build failed:",Z),process.exit(1)}}var M2=process.argv[1]?.includes("tokens-build")||process.argv[1]?.endsWith("build.js")||import.meta.url===`file://${process.argv[1]}`;if(M2)R2().catch((X)=>{console.error("Unexpected error:",X),process.exit(1)});export{R2 as runCLI};
533
+ Warnings:`),Y.warnings.forEach((q)=>console.log(` - ${q}`))}catch(Z){console.error("❌ Build failed:",Z),process.exit(1)}}var N2=process.argv[1]?.includes("tokens-build")||process.argv[1]?.endsWith("build.js")||import.meta.url===`file://${process.argv[1]}`;if(N2)M2().catch((X)=>{console.error("Unexpected error:",X),process.exit(1)});export{M2 as runCLI};