@designid/tokens 1.2.9 → 1.2.10
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 +104 -104
- package/bin/editor.js +119 -119
- package/bin/watch.js +105 -105
- package/package.json +1 -1
package/bin/build.js
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as O0}from"node:module";var E0=Object.create;var{getPrototypeOf:L0,defineProperty:cX,getOwnPropertyNames:_0}=Object;var H0=Object.prototype.hasOwnProperty;var Q0=(X,Z,Y)=>{Y=X!=null?E0(L0(X)):{};let q=Z||!X||!X.__esModule?cX(Y,"default",{value:X,enumerable:!0}):Y;for(let $ of _0(X))if(!H0.call(q,$))cX(q,$,{get:()=>X[$],enumerable:!0});return q};var lX=(X,Z)=>{for(var Y in Z)cX(X,Y,{get:Z[Y],enumerable:!0,configurable:!0,set:(q)=>Z[Y]=()=>q})};var b=(X,Z)=>()=>(X&&(Z=X(X=0)),Z);var i=O0(import.meta.url);var lY={};lX(lY,{transformColorValueAsync:()=>w0,transformColorValue:()=>x,transformColorToken:()=>jX,setAlpha:()=>GX,isColor:()=>m,initializeColorspace:()=>I0});import rX from"colorjs.io";async function kY(){if(xX===null){let{colorspace:X}=await V();xX=X||"hex"}return xX}function J0(){return xX||"hex"}async function I0(){await kY()}function GX(X,Z){let Y=new rX(X);if(Z||Z===0)Y.alpha=Z/100;return x(Y)}function cY(X,Z){if(!X)return X;if(Z&&Z.type!=="color")return X;if(typeof X==="string")X=new rX(X);if(typeof X?.to!=="function")return X;let Y=J0();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 w0(X,Z){return await kY(),cY(X,Z)}function x(X,Z){return cY(X,Z)}function jX(X,Z,Y,q){try{if(X=y(Z,q),Z.$type==="color"&&Z.original?.$value&&Z.original?.$value!==Z.$value){if(D(Z.original.$value))X=f(Z.original.$value,Y,q,Z);else X=S(Z);if(!j(q)&&Z.original?.$extensions?.mode?.[q])X=Z.original.$extensions.mode[q]}if(D(X))X=f(X,Y,q,Z);return x(X)}catch{return X=y(Z,q),x(X)}}function m(X){try{if(X)return new rX(X),!0;return!1}catch{return!1}}var xX=null;var zX=b(()=>{g()});function rY(X,Z){let Y=X.$extensions?.delimiter?.character||" ",q=y(X,Z)??{},$=X.$extensions?.sort??[],U=S(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=S(q[K]);if(q[K]?.$type==="color"||q[K].$property==="color")z=x(z,q[K]);return[...Array.isArray(W)?W:[W],z]},[]).join(Y).trim()}function u(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(u(A,Z));else K.push(String(A))}return K.join(" ")}if(typeof W==="string"&&W.match(/^\{.+\}$/))return u(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 u(K,Z);return String(K)});return X}function R0(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,!j(q)&&k(K,"mode",{isIncludedOriginalValue:!0}))K.$value=y(K,q);if(K?.$type==="composition"&&(typeof K.$value!=="string"||typeof K.$value!=="number"||D(K.$value))&&Object.keys(K).length>0){if(D(K.$value))return K.$value=f(K.$value,Y,q,K),{...U,[W]:{...K,$property:W,$type:K.$type,$value:XX(K,Y,q)}};return{...U,[W]:{...K,$property:W,$type:K.$type,$value:XX(K,Y,q)}}}if(K?.$value){let G=f(K.$value,Y,q,K);return{...U,[W]:{...K,$property:W,$type:K.$type,$value:G}}}return U},{})}function XX(X,Z,Y){let q=S(X,{isIncludedOriginalValue:!0});if(typeof q==="string"){if(D(q)){if(q=sX(q,Z,Y,X),!j(Y)&&k(q,"mode",{isIncludedOriginalValue:!0}))q.$value=y(q,Y)}let $=ZX(q);if($&&($?.length??0)>1)q=YX(q,$,Z,Y)}else if(Array.isArray(q))q=q.map(($)=>{if(typeof $==="string"&&D($))return f($,Z,Y,X);return $});if(!X.name)return q;return X.$value=R0(X,q,Z,Y),rY(X,Y)}var bX=b(()=>{g()});function S(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 y(X,Z){return Z&&(X?.$extensions?.mode?.[Z]||typeof X?.$extensions?.mode?.[Z]==="number")?X.$extensions.mode[Z]:S(X,{fallbackValue:X?.original?.$value??X?.$value??X?.value})??null}function k(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 iX(X,Z,Y){let q=S(X,{isIncludedOriginalValue:!0});if(!j(Y)&&k(X,"mode",{isIncludedOriginalValue:!0}))q=y(X,Y);if(D(q))return nX(q,Z,Y,X);return q}function YX(X,Z,Y,q){let $=Z.reduce((U,W)=>{let K=aX(W,Y);if(!K)return U;let z=S(K,{isIncludedOriginalValue:!0});if(D(z))z=f(`{${W}}`,Y,q,K);return{...U,[W]:DX(K,z,Y,q)}},{});return X?.replace(/\{([^}]+)\}/g,(U,W)=>{return $[W]!==void 0?$[W]:U})??null}function sX(X,Z,Y,q){if(D(X))return f(X,Z,Y,q);return X}function aX(X,Z){return Z.allTokens.find((Y)=>Y.path.join(".")===X)??null}function f(X,Z,Y,q){let $=D(X),U=null,W=X??S(q),K=null;if($){if(U=aX($,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&&D(W))W=f(W,Z,Y,q);if(W&&(K||q?.$extensions?.alpha||K===0||q?.original?.$extensions?.alpha===0))K=K??q?.$extensions?.alpha??null,W=GX(W,K);return W=x(W,U??q),W??X}function nX(X,Z,Y,q){let $=q?.original?.$extensions?.mode?.[Y]??q?.original?.$value,U=D($);if(Y&&U){let W=Z.allTokens.find((z)=>z.path.join(".")===U);if(!W)return X;let K=S(W);if(D(K))return nX(K,Z,Y,W);if(W?.$extensions?.mode?.[Y])K=W.$extensions.mode[Y];if(K&&W?.$extensions?.alpha)K=GX(W.$value,W.$extensions.alpha);return x(K,W)??X}else if($)return x($,q);return X}function D(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 ZX(X){if(typeof X!=="string")return null;return[...X.matchAll(/\{([^}]+)\}/g)].map(([,Y])=>Y)??null}function qX(X){return X}function AX(X){return X}var tX=b(()=>{g()});var BZ={};lX(BZ,{wrapThemeValue:()=>_Y,wrapFormatCSSFile:()=>_Z,typographyFileName:()=>ZZ,tokensFileName:()=>XZ,removeDirectoryContents:()=>zY,readConfigFile:()=>KX,namespaceUUID:()=>UZ,iconsFileName:()=>qZ,getTokenfileName:()=>KZ,getRelativePath:()=>OZ,getRelativeCSSPath:()=>QZ,getRawTokensFileName:()=>AZ,getProjectPaths:()=>n,getProjectModes:()=>EY,getProjectMetaData:()=>V,getProjectFonts:()=>D0,getLazyTokensConfig:()=>oX,getLazyProjectPaths:()=>LY,getLazyProjectModes:()=>EX,getLazyProjectMetaData:()=>OX,getLazyProjectFonts:()=>S0,getLazyProjectData:()=>c,getLazyIcons:()=>TX,getJSDocHeader:()=>EZ,getIconDestinationFileName:()=>UX,getFiles:()=>VX,getFileHeader:()=>AY,getDistThemeFileDelimeter:()=>WZ,getDistConfigFile:()=>SX,getDestinationFileName:()=>GZ,getDefaultIconObjectPath:()=>$Z,getCSSDestinationFileName:()=>zZ,getBaseDirectory:()=>_X,getBaseConfigFile:()=>HX,generatedFileHeader:()=>$X,filterTokensByType:()=>PX,createFileHeaderTitle:()=>LX,compileConfigFile:()=>GY,combineCSSFiles:()=>HZ,checkAndCreateDirectory:()=>a,breakpointFileName:()=>YZ});import{spawnSync as M0}from"child_process";import{existsSync as h,mkdirSync as N0,readFileSync as F0,unlinkSync as sY,writeFileSync as x0}from"fs";import{readdir as tY,rmdir as j0,unlink as b0}from"fs/promises";import{resolve as oY,join as N,basename as eY,normalize as iY,relative as aY,sep as eX,dirname as nY}from"path";async function $Z(){return`${(await QX()).$metaData?.tokenNamespace||"tokens"}.icons`}async function GY(X){let Y=N(X,"designid.config.ts");if(h(N(X,"designid.config.mjs")))sY(N(X,"designid.config.mjs"));let q=N(X,"designid.config.js");if(h(q))sY(q);if(h(Y)){let $=M0("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 zY(X){try{if(h(X)){let Z=await tY(X,{withFileTypes:!0});for(let Y of Z){let q=N(X,Y.name);if(Y.isDirectory())await zY(q),await j0(q);else await b0(q)}}}catch(Z){console.error(`Error removing contents of ${X}:`,Z)}}async function VX(X){let Z=await tY(X,{withFileTypes:!0}),Y=await Promise.all(Z.map((q)=>{let $=oY(X,q.name);return q.isDirectory()?VX($):$}));return Array.prototype.concat(...Y)}async function UZ(X){let{dsNamespace:Z,tokenNamespace:Y}=await V();return`${(Z??Y).toUpperCase()}DesignSystem${X.charAt(0).toUpperCase()+X.slice(1)}Tokens`}function KZ(X,Z="d.ts",Y){if(!X)return`tokens.${Y}.config.${Z}`;return N(X,`tokens.${Y}.config.${Z}`)}function WZ(X,Z){return X.length>1?`.${Z}`:""}async function GZ(X="d.ts",Z){let{tokenNamespace:Y}=await V();if(Z)return`${Y}-design-system.${Z}.tokens.config.${X}`;return`${Y}-design-system.tokens.config.${X}`}async function UX(X="json"){let{tokenNamespace:Z}=await V();return`${Z}-design-system.tokens.svg${X==="d.ts"||X==="js"?".config":""}.${X}`}async function zZ(){let{tokenNamespace:X}=await V();return`${X}-design-system.tokens.css`}async function AZ(){let{tokenNamespace:X}=await V();return`${X}-design-system-raw.tokens.json`}async function AY(X){let{tokenNamespace:Z}=await V();return`${Z} | ${X}`}function EZ(X,Z){return`/** @type {import("./${X}").${Z}} */`}function LX(X){return`/* ${AY(X)} */`}function a(X){if(!h(X))N0(X,{recursive:!0})}async function KX(X,Z=!1){let Y=HX(),q;if(Y.endsWith(".json"))q=JSON.parse(F0(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??nY(Y)+"/";let U=SX(X);if(U&&(Z||!h(U)))await GY(X);if(q=await import(U),q.default)q=q.default}else{X=X??nY(Y)+"/";let $=SX(X);if($&&(Z||!h($)))await GY(X);if(q=await import($),q.default)q=q.default}return q}async function _X(X=!1){let{baseDir:Z}=await n(),Y=process.cwd(),$=N(Y,Z),{buildDir:U,distDir:W}=await n();if(X)try{a(N($,U)),a(N($,W))}catch(K){console.error("Error creating directories:",K)}return $}function SX(X){return X?N(X,"designid.config.mjs"):N(process.cwd(),"designid.config.mjs")}function HX(){let X=process.argv.find((K)=>K.startsWith("--config=")),[,Z]=X?.split("=")??[];if(Z)return Z;let Y=process.cwd(),q=SX(Y),$=N(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 n(X=!1){let Z=HX(),q=(await KX(process.cwd(),X)).$paths;if(!q)throw console.error("Project paths not found"),Error("Project paths not found");return{configFile:Z,...q}}async function V(){let Z=(await KX(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 $Z();return{...Z,icons:Z.icons??{objectPath:Y},dsNamespace:Z.dsNamespace}}async function EY(){return(await KX(process.cwd())).$modes??{default:"light"}}async function QX(){if(!XY){let X=HX();XY=await KX(process.cwd()),LZ=X}return XY}async function EX(){if(!YY)YY=(await QX()).$modes??{default:"light"};return YY}async function OX(){if(!ZY){let Z=(await QX()).$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`;ZY={...Z,icons:Z.icons??{objectPath:q},dsNamespace:Z.dsNamespace}}return ZY}async function LY(X=!1){if(!qY){let Y=(await QX()).$paths;if(!Y)throw console.error("Project paths not found"),Error("Project paths not found");qY={configFile:LZ,...Y}}return qY}async function c(){if(!$Y){let{distDir:X,assets:Z,buildDir:Y}=await LY(!0),{fontNamespace:q,tokenNamespace:$,icons:U}=await OX(),W=await _X(),K=process.cwd(),z=N(K,X,"css");$Y={distDir:X,assets:Z,fontNamespace:q,__dirname:W,workspaceRoot:K,distCSSPath:z,buildDir:Y,tokenNamespace:$,icons:U}}return $Y}async function TX(){if(!UY){let{icons:X}=await OX();UY=X}return UY}async function oX(){if(!KY){let{tokens:X}=await OX();KY=X}return KY}async function D0(){return(await KX(process.cwd())).$fonts??[]}async function S0(){if(!WY)WY=(await QX()).$fonts??[];return WY}async function _Y(X){if(j(X))return":root";let Y=(await V())?.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 _Z(X,Z,Y,q,$,U={}){let W;if(j(Y))W=Z.allTokens;else W=X(Z,Y);let z=(await V())?.tokens?.css?.mediaQuery?.separateThemeFiles?"Theme: "+Y:U.headerTitle??"",G=`${LX(z)}
|
|
3
|
-
${
|
|
2
|
+
import{createRequire as w0}from"node:module";var Q0=Object.create;var{getPrototypeOf:O0,defineProperty:rX,getOwnPropertyNames:B0}=Object;var J0=Object.prototype.hasOwnProperty;var I0=(X,Z,Y)=>{Y=X!=null?Q0(O0(X)):{};let q=Z||!X||!X.__esModule?rX(Y,"default",{value:X,enumerable:!0}):Y;for(let $ of B0(X))if(!J0.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=w0(import.meta.url);var sY={};sX(sY,{transformColorValueAsync:()=>F0,transformColorValue:()=>b,transformColorToken:()=>DX,setAlpha:()=>zX,isColor:()=>p,initializeColorspace:()=>N0});import iX from"colorjs.io";async function lY(){if(bX===null){let{colorspace:X}=await T();bX=X||"hex"}return bX}function M0(){return bX||"hex"}async function N0(){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=M0();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 F0(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 x0(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=x0(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:()=>V0,getLazyTokensConfig:()=>XY,getLazyProjectPaths:()=>HY,getLazyProjectModes:()=>LX,getLazyProjectMetaData:()=>BX,getLazyProjectFonts:()=>T0,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 j0}from"child_process";import{existsSync as v,mkdirSync as b0,readFileSync as D0,unlinkSync as aY,writeFileSync as S0}from"fs";import{readdir as eY,rmdir as P0,unlink as C0}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 $=j0("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 P0(q);else await C0(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))b0(X,{recursive:!0})}async function WX(X,Z=!1){let Y=QX(),q;if(Y.endsWith(".json"))q=JSON.parse(D0(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 V0(){return(await WX(process.cwd())).$fonts??[]}async function T0(){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
|
+
${UX}`,A=D(Y)?`:root {
|
|
4
4
|
`:`@media (123prefers-color-scheme: ${Y}) {
|
|
5
5
|
:root {
|
|
6
6
|
`,E=`${G}
|
|
7
7
|
|
|
8
|
-
${A}`;if(W.forEach((L)=>{if(
|
|
8
|
+
${A}`;if(W.forEach((L)=>{if(VX(L,U,$))return;let _=TX(L,Z,Y);if(U.transformValue)_=U.transformValue(_);_=EX(_),E+=`${!D(Y)?" ":" "}--${$X(L.name)}: ${_};
|
|
9
9
|
`}),Array.isArray(q)&&q.length>1){let L=`
|
|
10
|
-
`;for(let _ of q){if(Y===_)continue;let H=await
|
|
11
|
-
`,X(Z,_).forEach((B)=>{if(
|
|
12
|
-
`}),L+=`${!
|
|
10
|
+
`;for(let _ of q){if(Y===_)continue;let H=await QY(_);L+=`${!D(Y)?" ":" "}&${H} {
|
|
11
|
+
`,X(Z,_).forEach((B)=>{if(VX(B,U,$))return;let O=TX(B,Z,_);if(U.transformValue)O=U.transformValue(O);O=EX(O),L+=`${!D(Y)?" ":" "}--${$X(B.name)}: ${O};
|
|
12
|
+
`}),L+=`${!D(Y)?" ":" "}}
|
|
13
13
|
|
|
14
|
-
`}E+=L}return E+=!
|
|
14
|
+
`}E+=L}return E+=!D(Y)?` }
|
|
15
15
|
`:`}
|
|
16
|
-
`,E+=!
|
|
17
|
-
`:"",E}function
|
|
16
|
+
`,E+=!D(Y)?`}
|
|
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
|
-
`,W=[{name:
|
|
20
|
-
`}}),!
|
|
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));S0($,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
|
-
*/`,
|
|
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=y0(X,Z.style);return X}function y0(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 v0,mkdirSync as NZ,statSync as m0}from"fs";import{writeFile as p0}from"fs/promises";import{join as y,relative as d0}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=
|
|
26
|
+
`}else if(Q?.src&&W){let B=Q.directory??Q.family.toLowerCase().replace(/\s+/g,"-"),O=y(W,B,Q.src);try{if(!v0(O)||!m0(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=d0(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};
|
|
30
|
-
src: url("${
|
|
30
|
+
src: url("${J}") format("${Q.format}");
|
|
31
31
|
}
|
|
32
|
-
`}}let{distCSSPath:L}=await
|
|
32
|
+
`}}let{distCSSPath:L}=await l(),_=Z?y(Z,"css"):L,H=`${_}/fonts.css`;NZ(_,{recursive:!0}),await p0(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 k0(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 c0(X){if(X.startsWith("data:image/png;base64,"))return X;return`data:image/png;base64,${X}`}function l0(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 k0(X);else if(VZ(X))return c0(X);else if(TZ(X))return l0(X);return X}function r0(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)||r0(X)}import{readFileSync as s0,readdirSync as i0,statSync as a0}from"fs";import{join as n0}from"path";import gZ from"colorjs.io";function RY(X){let Z={};function Y(q){let $=i0(q);for(let U of $){let W=n0(q,U);if(a0(W).isDirectory())Y(W);else if(U.endsWith(".tokens.json"))try{let z=s0(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=t0(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 VZ(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 w=Y?.get(B);if(!w){let R=B.match(/^(.+)@([^@]+)$/);if(R){let[,J,I]=R,C=Y?.get(J);if(C){if(C.extensions?.mode?.dark!==void 0)return!0;if(C.extensions?.generators)return!0;return H(J,O)}}return!1}if(w.extensions?.mode?.dark!==void 0)return!0;if(Y?.has(`${B}#dark`))return!0;if(typeof w.value==="string"&&w.value.startsWith("{")&&w.value.endsWith("}")){let R=w.value.slice(1,-1);return H(R,O)}if(Array.isArray(w.value)||typeof w.value==="object"&&w.value!==null){let R=(J)=>{if(typeof J!=="object"||J===null)return!1;if(J.$extensions?.mode)return!0;return Object.values(J).some((I)=>{if(typeof I==="object"&&I!==null)return R(I);return!1})};if(Array.isArray(w.value))return w.value.some((J)=>typeof J==="string"&&J.includes("{")&&H(J.slice(1,-1),new Set(O))||typeof J==="object"&&J!==null&&(Object.values(J).some((I)=>typeof I==="string"&&I.includes("{")&&H(I.slice(1,-1),new Set(O)))||R(J)));else if(typeof w.value==="object")return Object.values(w.value).some((J)=>typeof J==="string"&&J.includes("{")&&H(J.slice(1,-1),new Set(O)))||R(w.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=xZ(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 s0(X,Z){let Y=t(X.value,Z),q=X.type;if(typeof X.value==="string"&&JX(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"&&IX(W.value)){let K=yX(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"&&IX(X.value)){let U=yX(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=l(Y,Z);if(X.extensions?.generator&&typeof X.extensions.generator==="object"&&"type"in X.extensions.generator&&"value"in X.extensions.generator)Y=gX(X.value,X.extensions.generator.type,X.extensions.generator.value,Z);let $=i0(X.name,Z.options);if(q==="color"&&typeof Y==="string"&&m(Y))Y=x(Y,X);if(typeof Y==="string"&&p(Y))Y=wX(Y);return{...X,type:q,value:Y,cssVar:$}}function l(X,Z){if(typeof X==="string"){if(JX(X))return MY(X,Z);else if(IX(X))return fZ(X,Z)}if(Array.isArray(X))return X.map((Y)=>l(Y,Z));if(typeof X==="object"&&X!==null){if("$value"in X&&typeof X.$value==="string")return l(X.$value,Z);if("value"in X&&typeof X.value==="string"&&"$type"in X){if(Z.mode&&X.$extensions?.mode?.[Z.mode])return l(X.$extensions.mode[Z.mode],Z);return l(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)=>l(W,Z)).join($);return l(X.value,Z)}let Y={};for(let[q,$]of Object.entries(X))Y[q]=l($,Z);return Y}return X}function t(X,Z){if(typeof X==="string"){if(IX(X))return fZ(X,Z);else if(JX(X))return MY(X,Z)}else if(typeof X==="object"&&X!==null&&"$ref"in X)return gZ(X,Z);return X}function MY(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 JY(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=t(G,{...Z,mode:z});if(q.extensions?.generator&&typeof q.extensions.generator==="object"&&"type"in q.extensions.generator&&"value"in q.extensions.generator)A=gX(A,q.extensions.generator.type,q.extensions.generator.value,Z);if(q.type==="color"&&typeof A==="string"&&m(A))A=x(A,q);if(typeof A==="string"&&p(A))A=wX(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=t(_,{...Z,mode:L});if(q.extensions?.generator&&typeof q.extensions.generator==="object"&&"type"in q.extensions.generator&&"value"in q.extensions.generator)H=gX(H,q.extensions.generator.type,q.extensions.generator.value,Z);if(q.type==="color"&&typeof H==="string"&&m(H))H=x(H,q);if(typeof H==="string"&&p(H))H=wX(H);return H}}}else return JY(q,Z);break}}}if(!q)return console.warn(`Token reference not found: ${X}`),Z.brokenReferences.push(X),X;return JY(q,Z)}function JY(X,Z){let Y;if(X.extensions?.generator&&typeof X.extensions.generator==="object"&&"type"in X.extensions.generator&&"value"in X.extensions.generator)Y=gX(X.value,X.extensions.generator.type,X.extensions.generator.value,Z);else if(Z.mode&&X.extensions?.mode?.[Z.mode])Y=t(X.extensions.mode[Z.mode],Z);else Y=t(X.value,Z);if(X.type==="color"&&typeof Y==="string"&&m(Y))Y=x(Y,X);if(typeof Y==="string"&&p(Y))Y=wX(Y);return Y}function gZ(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 t($.value,Z)}function fZ(X,Z){let Y=yX(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"&&JX(W.ref)){K=MY(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=gZ(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 gX(X,Z,Y,q){let $=t(X,q);switch(Z){case"alpha":if(typeof $==="string")return a0($,Number(Y)/100);break;case"scale":if(typeof $==="string"&&$.match(/[\d.]+/))return n0($,Number(Y));break;case"hue":if(typeof $==="string")return t0($,Number(Y));break;default:return console.warn(`Unknown generator type: ${Z}`),$}return $}function i0(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 a0(X,Z){try{if(!m(X))return X;let Y=new TZ(X);return Y.alpha=Z,x(Y)}catch(Y){return console.warn(`Failed to apply alpha to color "${X}": ${Y}`),X}}function n0(X,Z){let Y=X.match(/([\d.]+)(\w+)/);if(Y){let[,q,$]=Y;return`${parseFloat(q)*Z}${$}`}return X}function t0(X,Z){try{if(!m(X))return X;let q=new TZ(X).to("oklch");return q.h=(q.h+Z)%360,x(q)}catch(Y){return console.warn(`Failed to shift hue for color "${X}": ${Y}`),X}}var NY=b(()=>{DZ();zX()});function FY(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 r(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 fX(X,Z={}){let{rootSelector:Y=":root",separateThemeFiles:q=!1,generateMediaQueries:$=!1,customHeader:U,modes:W=["light","dark"]}=Z;if(q)return e0(X,Z);let K=new Map,z=new Map;for(let w of W)K.set(w,[]);let G=W.join("|"),A=new RegExp(`#(${G})$`);for(let w of X){if(typeof w.value==="string"&&p(w.value))continue;if(FY(w))continue;let R=` ${w.cssVar}: ${v(w.value,w.type)};`;if($&&w.name.includes("@media")){let I=vX(w);if(I){if(!z.has(I))z.set(I,[]);z.get(I).push(R);continue}}let J=w.name.match(A);if(J){let I=J[1];if(!K.has(I))K.set(I,[]);K.get(I).push(R)}else{let I=W[0]||"light";K.get(I).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 t0(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 $=o0(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 e0($,Number(Y)/100);break;case"scale":if(typeof $==="string"&&$.match(/[\d.]+/))return X1($,Number(Y));break;case"hue":if(typeof $==="string")return Y1($,Number(Y));break;default:return console.warn(`Unknown generator type: ${Z}`),$}return $}function o0(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 e0(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 X1(X,Z){let Y=X.match(/([\d.]+)(\w+)/);if(Y){let[,q,$]=Y;return`${parseFloat(q)*Z}${$}`}return X}function Y1(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 q1(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
|
-
`;let L=Z.defaultMode||W[0]||"light",_=Z.isHost||!1,H=K.get(L)||[];if(H.length>0){H.sort();let
|
|
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(`
|
|
38
38
|
`)}
|
|
39
|
-
`;for(let R of W){if(R===L)continue;let
|
|
39
|
+
`;for(let R of W){if(R===L)continue;let I=K.get(R)||[];if(I.length>0){I.sort();let w=s(R,L,_);if(_)E+=`}
|
|
40
40
|
|
|
41
|
-
${
|
|
42
|
-
${
|
|
41
|
+
${w} {
|
|
42
|
+
${I.join(`
|
|
43
43
|
`)}
|
|
44
|
-
`;else{let
|
|
45
|
-
${
|
|
46
|
-
${
|
|
44
|
+
`;else{let M=w.replace("[data-theme=","&[data-theme=");E+=`
|
|
45
|
+
${M} {
|
|
46
|
+
${I.map((N)=>` ${N}`).join(`
|
|
47
47
|
`)}
|
|
48
48
|
}
|
|
49
49
|
`}}}E+=`}
|
|
50
|
-
`}if($&&z.size>0){let
|
|
50
|
+
`}if($&&z.size>0){let J=s(L,L,_);for(let[R,I]of z)I.sort(),E+=`
|
|
51
51
|
${R} {
|
|
52
|
-
${
|
|
53
|
-
${
|
|
52
|
+
${J} {
|
|
53
|
+
${I.map((w)=>` ${w}`).join(`
|
|
54
54
|
`)}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
`}let Q=[{fileName:"tokens.css",content:E.endsWith(`
|
|
58
58
|
`)?E:`${E}
|
|
59
|
-
`}],B=
|
|
59
|
+
`}],B=uZ(X,Z);Q.push(...B);let O=kZ(X,Z);return Q.push(...O),Q}function Z1(X,Z){let Y=[];for(let $ of X){let W=` ${$.cssVar||mX($,Z)}: ${m($.value,$.type)};`;Y.push(W)}let q="";if(Z.customHeader)q+=`${Z.customHeader}
|
|
60
60
|
|
|
61
61
|
`;if(Y.length>0)Y.sort(),q+=`${Z.rootSelector||":root"} {
|
|
62
62
|
${Y.join(`
|
|
@@ -64,7 +64,7 @@ ${Y.join(`
|
|
|
64
64
|
}
|
|
65
65
|
`;return{fileName:"theme.css",content:q.endsWith(`
|
|
66
66
|
`)?q:`${q}
|
|
67
|
-
`}}function
|
|
67
|
+
`}}function q1(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=Z1(Q,{...Z,separateThemeFiles:!1,rootSelector:B});Y.push({...O,fileName:`tokens.${H}.css`,theme:H})}let E=$1(X,Z);Y.push(...E);let L=uZ(X,Z);Y.push(...L);let _=kZ(X,Z);return Y.push(..._),Y}function $1(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
|
*
|
|
@@ -72,7 +72,7 @@ ${Y.join(`
|
|
|
72
72
|
* Each media query section overrides tokens for specific screen sizes.
|
|
73
73
|
*/
|
|
74
74
|
|
|
75
|
-
`,$=Array.from(Y.keys()).sort();for(let U of $){let W=Y.get(U),K=Z.defaultMode||(Z.modes&&Z.modes.length>0?Z.modes[0]:"light"),z=Z.isHost||!1;for(let[G,A]of W){let E=[];for(let L of A){let H=` ${L.cssVar||
|
|
75
|
+
`,$=Array.from(Y.keys()).sort();for(let U of $){let W=Y.get(U),K=Z.defaultMode||(Z.modes&&Z.modes.length>0?Z.modes[0]:"light"),z=Z.isHost||!1;for(let[G,A]of W){let E=[];for(let L of A){let H=` ${L.cssVar||mX(L,Z)}: ${m(L.value,L.type)};`;E.push(H)}if(E.length>0){E.sort();let L=s(G,K,z);q+=`${U} {
|
|
76
76
|
${L} {
|
|
77
77
|
${E.join(`
|
|
78
78
|
`)}
|
|
@@ -80,11 +80,11 @@ ${E.join(`
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
`}}}return[{fileName:"tokens.breakpoints.css",content:q.trim()+`
|
|
83
|
-
`}]}function
|
|
83
|
+
`}]}function uZ(X,Z){let Y=new Map;for(let $ of X)if(typeof $.value==="string"&&d($.value)){let U=$.name.match(/@(dark|light)$/),W=U?U[1]:"light";if(!Y.has(W))Y.set(W,[]);Y.get(W).push($)}let q=[];if(Y.size===0)return[];if(Y.size===1){let[$,U]=Array.from(Y.entries())[0],W=mZ(U,$,Z);q.push({fileName:"tokens.icons.css",content:W.endsWith(`
|
|
84
84
|
`)?W:`${W}
|
|
85
|
-
`})}else for(let[$,U]of Y){let W=
|
|
85
|
+
`})}else for(let[$,U]of Y){let W=mZ(U,$,Z);q.push({fileName:`tokens.icons.${$}.css`,content:W.endsWith(`
|
|
86
86
|
`)?W:`${W}
|
|
87
|
-
`})}return q}function
|
|
87
|
+
`})}return q}function mZ(X,Z,Y){let q=`/**
|
|
88
88
|
* Design System Tokens - Icons (${Z})
|
|
89
89
|
* Generated: ${new Date().toISOString()}
|
|
90
90
|
*
|
|
@@ -92,14 +92,14 @@ ${E.join(`
|
|
|
92
92
|
* Icons are provided as data URIs for direct embedding.
|
|
93
93
|
*/
|
|
94
94
|
|
|
95
|
-
`,$=[];for(let U of X){let K=` ${U.cssVar||
|
|
95
|
+
`,$=[];for(let U of X){let K=` ${U.cssVar||mX(U,Y)}: ${m(U.value,U.type)};`;$.push(K)}if($.length>0){$.sort();let U=Y.defaultMode||"light",W=Y.isHost||!1,K=s(Z,U,W);q+=`${K} {
|
|
96
96
|
${$.join(`
|
|
97
97
|
`)}
|
|
98
98
|
}
|
|
99
99
|
`}return q+`
|
|
100
|
-
`}function
|
|
100
|
+
`}function mX(X,Z){let q=X.name.split("@")[0].replace(/\.$/,"").replace(/\.+/g,"."),$=bY(q,Z.hooks);return`--${Z.prefix||MX}-${$.replace(/\./g,"-")}`}function bY(X,Z,Y){if(!Z?.shortenName?.enabled)return X;let q=X;if(Z.shortenName.prefix)for(let $ of Z.shortenName.prefix)q=q.replace(new RegExp($.find,"g"),$.replace);if(Z.shortenName.suffix){for(let $ of Z.shortenName.suffix)if(q.endsWith($.find))q=q.substring(0,q.length-$.find.length)+$.replace}if(Y&&Y!=="light"){let $=`-${Y}`;if(q.endsWith($))q=q.slice(0,-$.length)}return q}function kZ(X,Z){let Y=new Map,q=Z.modes||[];for(let U of X)if(jY(U)){if(pX(U))continue;let K=q.length>0?q[0]:"default";if(U.name.includes("#")){let z=U.name.split("#"),G=z[z.length-1];if(q.includes(G))K=G}if(!Y.has(K))Y.set(K,[]);Y.get(K).push(U)}let $=[];for(let[U,W]of Y.entries()){let K=U1(W,U,Z,q);$.push({fileName:`tokens.typography.${U}.css`,content:K.endsWith(`
|
|
101
101
|
`)?K:`${K}
|
|
102
|
-
`})}return $}function
|
|
102
|
+
`})}return $}function U1(X,Z,Y,q){let $=`/**
|
|
103
103
|
* Design System Tokens - Typography (${Z})
|
|
104
104
|
* Generated: ${new Date().toISOString()}
|
|
105
105
|
*
|
|
@@ -107,7 +107,7 @@ ${$.join(`
|
|
|
107
107
|
* Includes fontSize, fontWeight, fontFamily, lineHeight, and typography compositions.
|
|
108
108
|
*/
|
|
109
109
|
|
|
110
|
-
`,U=new Map;for(let W of X){let K="default";if(W.name.includes("@")){let z=W.name.split("@");for(let G of z)if(G.includes("screen_")||G.includes("min_width")||G.includes("max_width")){K=G.replace(/screen_and__/g,"").replace(/min_width__(\d+)px_/g,"min-width: $1px").replace(/max_width__(\d+)px_/g,"max-width: $1px").replace(/_/g," ");break}}if(!U.has(K))U.set(K,[]);U.get(K).push(W)}for(let[W,K]of U.entries()){let z=[];for(let G of K){let E=` ${G.cssVar||
|
|
110
|
+
`,U=new Map;for(let W of X){let K="default";if(W.name.includes("@")){let z=W.name.split("@");for(let G of z)if(G.includes("screen_")||G.includes("min_width")||G.includes("max_width")){K=G.replace(/screen_and__/g,"").replace(/min_width__(\d+)px_/g,"min-width: $1px").replace(/max_width__(\d+)px_/g,"max-width: $1px").replace(/_/g," ");break}}if(!U.has(K))U.set(K,[]);U.get(K).push(W)}for(let[W,K]of U.entries()){let z=[];for(let G of K){let E=` ${G.cssVar||mX(G,Y)}: ${m(G.value,G.type)};`;z.push(E)}if(z.length>0){let G=Y.defaultMode||"light",A=Y.isHost||!1,E=s(Z,G,A);if(W==="default")z.sort(),$+=`${E} {
|
|
111
111
|
${z.join(`
|
|
112
112
|
`)}
|
|
113
113
|
}
|
|
@@ -120,14 +120,14 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
120
120
|
`,$+=`}
|
|
121
121
|
|
|
122
122
|
`}}}return $+`
|
|
123
|
-
`}function
|
|
123
|
+
`}function m(X,Z){if(X===null||X===void 0)return"";if(typeof X==="object"&&X!==null&&!Array.isArray(X)){let q=X;if(q.$value!==void 0){if(typeof q.$value==="string")return q.$value;return m(q.$value,q.$type||Z)}}let Y=String(X);switch(Z){case"color":return K1(Y);case"dimension":return W1(Y);case"duration":return G1(Y);case"fontFamily":return z1(Y);case"fontWeight":return A1(Y);case"cubicBezier":return E1(X);case"shadow":return L1(X);case"border":return _1(X);case"typography":return H1(X);case"composition":return DY(X);default:if(Y.startsWith("data:"))return`"${Y}"`;return Y}}function K1(X){if(X.startsWith("oklch(")||X.startsWith("rgb(")||X.startsWith("rgba(")||X.startsWith("hsl(")||X.startsWith("hsla(")||X.startsWith("#"))return X;return X}function W1(X){if(/^\d+(\.\d+)?(px|rem|em|%|vh|vw|vmin|vmax)$/.test(X))return X;if(/^\d+(\.\d+)?$/.test(X))return`${X}rem`;return X}function G1(X){if(/^\d+(\.\d+)?(s|ms)$/.test(X))return X;if(/^\d+(\.\d+)?$/.test(X))return`${X}ms`;return X}function z1(X){if((X.includes(",")||X.includes(" "))&&!X.startsWith('"')&&!X.startsWith("'"))return`"${X}"`;return X}function A1(X){return{thin:"100","extra-light":"200",light:"300",normal:"400",medium:"500","semi-bold":"600",bold:"700","extra-bold":"800",black:"900"}[X]||X}function E1(X){if(Array.isArray(X)&&X.length===4)return`cubic-bezier(${X.join(", ")})`;return String(X)}function L1(X){if(Array.isArray(X))return X.map((Z)=>pZ(Z)).join(", ");return pZ(X)}function pZ(X){if(typeof X==="object"&&X!==null){let Z=X,Y=Z.color||"transparent";if(typeof Y==="string"&&Y.includes("{")&&Y.includes("}")){console.warn(`Unresolved token reference in shadow color: ${Y}`);let $=Y.match(/\{([^}]+)\}/)?.[1];if($)Y=`var(${`--${MX}-${$.replace(/\./g,"-").replace(/@/g,"-")}`})`}let q=[Z.offsetX||"0",Z.offsetY||"0",Z.blur||"0",Z.spread||"0",Y];if(Z.inset)q.unshift("inset");return q.join(" ")}return String(X)}function _1(X){if(typeof X==="object"&&X!==null){let Z=X,Y=j(Z.width)||"1px",q=j(Z.style)||"solid",$=j(Z.color)||"transparent";return`${Y} ${q} ${$}`}return String(X)}function H1(X){if(typeof X==="object"&&X!==null){let Z=X,Y=Z.fontWeight||"normal",q=Z.fontSize||"1rem",$=Z.lineHeight||"normal",U=Z.fontFamily||"sans-serif";if(U.includes(" ")&&!U.startsWith('"')&&!U.startsWith("'"))U=`'${U}'`;let W;if(q.includes("/"))W=q;else W=`${q}/${$}`;return`${Y} ${W} ${U}`}return String(X)}function DY(X){if(typeof X!=="object"||X===null)return String(X);if(Array.isArray(X))return X.map((Y)=>DY(Y)).join(", ");let Z=X;if(Z.offsetX!==void 0&&Z.offsetY!==void 0)return cZ(Z);if(Z.width!==void 0&&Z.style!==void 0&&Z.color!==void 0){let Y=String(Z.width||"1px"),q=String(Z.style||"solid"),$=String(Z.color||"transparent");return`${Y} ${q} ${$}`}if(Z.blur!==void 0||Z.saturate!==void 0||Z.brightness!==void 0)return Q1(Z);if(Z.fontSize!==void 0||Z.fontFamily!==void 0)return O1(Z);return B1(Z)}function cZ(X){let Z=[j(X.offsetX)||"0",j(X.offsetY)||"0",j(X.blur)||"0",j(X.spread)||"0",j(X.color)||"transparent"];if(X.inset&&j(X.inset)==="true")Z.unshift("inset");return Z.join(" ")}function Q1(X){let Z=[];if(X.blur)Z.push(j(X.blur)||"blur(0)");if(X.saturate)Z.push(j(X.saturate)||"saturate(100%)");if(X.brightness)Z.push(j(X.brightness)||"brightness(100%)");if(X.contrast)Z.push(j(X.contrast)||"contrast(100%)");if(X.hueRotate)Z.push(j(X.hueRotate)||"hue-rotate(0deg)");return Z.join(" ")||"none"}function O1(X){let Z=j(X.fontWeight)||"normal",Y=j(X.fontSize)||"1rem",q=j(X.lineHeight),$=j(X.fontFamily)||"sans-serif";if($.includes(" ")&&!$.startsWith('"')&&!$.startsWith("'"))$=`'${$}'`;if(Y.includes("/"))return`${Z} ${Y} ${$}`;else if(q)return`${Z} ${Y}/${q} ${$}`;return`${Z} ${Y} ${$}`}function dZ(X,Z,Y){let q=X.match(/^\{(.+)\}$/);if(!q)return X;let U=q[1].replace(/\./g,"-");if(Y)U=bY(U,{shortenName:Y.$metaData?.tokens?.css?.hooks?.shortenName});return`var(--${U})`}function j(X,Z,Y){if(X===null||X===void 0)return"";if(typeof X==="string"){if(X.match(/^\{.+\}$/))return dZ(X,Z||"ds",Y);return X}if(typeof X==="object"&&X.value!==void 0){let q=String(X.value);if(q.match(/^\{.+\}$/))return dZ(q,Z||"ds",Y);return q}return String(X)}function B1(X){let Z=[];for(let[,$]of Object.entries(X)){let U=$;if(typeof $==="object"&&$!==null&&U.$value&&typeof U.$value==="object"){let W=U.$value;if(W.offsetX!==void 0&&W.offsetY!==void 0){let K=cZ(W);if(K)Z.push(K)}else{let K=DY(W);if(K)Z.push(K)}}else{let W=j($);if(W)Z.push(W)}}let q=Z.some(($)=>/^\d/.test($)&&$.includes(" "))?", ":" ";return Z.join(q)||String(X)}function pX(X){if(X.extensions?.mediaQuery&&typeof X.extensions.mediaQuery==="string"){let Y=X.extensions.mediaQuery;if(Y=Y.replace(/\{universe\.foundation\.breakpoint\.screen\.width\.lg\}/g,"64rem"),!Y.startsWith("@media"))Y=`@media ${Y}`;return Y}let Z=X.name.match(/@(media[^@]+)/);if(Z)return`@${Z[1].replace(/_/g," ")}`;if(X.name.includes("@screen_and__min_width__300px_"))return"@media screen and (min-width: 300px)";if(X.name.includes("@screen_and__min_width__600px_"))return"@media screen and (min-width: 600px)";if(X.name.includes("@")&&X.name.includes("_"))return"@media (unknown-breakpoint)";return null}function dX(X){let Z=X?.$name||"Design System",Y=X?.$version||"1.0.0",q=new Date().toISOString();return`/**
|
|
124
124
|
* ${Z} - CSS Custom Properties
|
|
125
125
|
* Version: ${Y}
|
|
126
126
|
* Generated: ${q}
|
|
127
127
|
*
|
|
128
128
|
* This file contains CSS custom properties (CSS variables) generated from design tokens.
|
|
129
129
|
* Do not edit this file directly - it will be overwritten.
|
|
130
|
-
*/`}function
|
|
130
|
+
*/`}function J1(X){let Z=X.replace(/\r?\n|\r/g,"").replace(/\s+/g," ").trim();return`data:image/svg+xml;base64,${Buffer.from(Z,"utf8").toString("base64")}`}function SY(X,Z={}){let{customHeader:Y,objectPath:q="universe.custom.path.icons",isHost:$=!1,defaultMode:U="light"}=Z,W="--"+q.replace(/\./g,"-"),K="";if(Y)K+=Y+`
|
|
131
131
|
|
|
132
132
|
`;else K+=`/**
|
|
133
133
|
* Icon CSS - Base64 Encoded SVG Icons as CSS Custom Properties
|
|
@@ -143,21 +143,21 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
143
143
|
* Do not edit this file directly - it will be overwritten.
|
|
144
144
|
*/
|
|
145
145
|
|
|
146
|
-
`;let z=
|
|
147
|
-
`;let G=[...X].sort((A,E)=>A.name.localeCompare(E.name));for(let A of G){let E=A.name.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,""),L=A.category?`${W}-${A.category}-${E}`:`${W}-${E}`;if(Z.hooks?.shortenName?.enabled)L=
|
|
146
|
+
`;let z=s(U,U,$);K+=`${z} {
|
|
147
|
+
`;let G=[...X].sort((A,E)=>A.name.localeCompare(E.name));for(let A of G){let E=A.name.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,""),L=A.category?`${W}-${A.category}-${E}`:`${W}-${E}`;if(Z.hooks?.shortenName?.enabled)L=bY(L,Z.hooks);let _=J1(A.value);K+=` ${L}: url("${_}");
|
|
148
148
|
`}return K+=`}
|
|
149
149
|
`,{fileName:"tokens.icons.css",content:K.trim()+`
|
|
150
|
-
`}}var
|
|
151
|
-
`}function
|
|
150
|
+
`}}var uX=S(()=>{f()});import{readFileSync as I1,existsSync as w1}from"fs";import{join as lZ,relative as R1}from"path";async function PY(){try{let{assets:X}=await t(!0),{icons:Z}=await T(),Y=await HX(),q=X?.icons?.distDir??"build",$=lZ(Y,q),U=lZ($,"tokens",await KX("json"));if(!w1(U)){let H=R1(process.cwd(),U);return console.log(`ℹ️ Icon data not found (skipping icon types): ${H}`),console.log(" Run icon build first if you need icon types generated."),[]}let W=JSON.parse(I1(U,"utf8")),K=Z?.objectPath??"universe.icons",z=K.split("."),G=W;for(let H of z)if(G&&typeof G==="object"&&H in G)G=G[H];else throw Error(`Icon path ${K} not found in icons file`);let A=[],E=Object.keys(G)[0],L=G[E];if(L&&typeof L==="object"&&"$value"in L){for(let[H,Q]of Object.entries(G))if(typeof Q==="object"&&Q!==null){let B=Q;if(H.startsWith("$"))continue;A.push({name:H,category:"",value:B.$value||"",description:B.$description||"",style:B.$style||"",dimensions:B.$extensions?.dimensions||B.$dimensions})}}else for(let[H,Q]of Object.entries(G))if(typeof Q==="object"&&Q!==null){for(let[B,O]of Object.entries(Q))if(typeof O==="object"&&O!==null){let J=O;if(B.startsWith("$"))continue;A.push({name:B,category:H,value:J.$value||"",description:J.$description||"",style:J.$style||"",dimensions:J.$extensions?.dimensions||J.$dimensions})}}return A}catch(X){if(X instanceof Error){if("code"in X&&X.code!=="ENOENT")console.warn(`⚠️ Could not load icon data: ${X.message}`)}return[]}}async function CY(X,Z={},Y){let{generateTypes:q=!0,generateConsts:$=!0}=Z,U=Z.icons;if(!U)U=await PY();let W={...Z,icons:U},K=[];if(q)K.push({fileName:"tokens.types.ts",content:M1(X,W),type:"types"});if($)K.push({fileName:"tokens.constants.ts",content:N1(X,W),type:"constants"});return K.push({fileName:"index.ts",content:F1(K,Y),type:"index"}),K}function M1(X,Z){let{tokenInterface:Y="DesignTokens",includeJSDoc:q=!0,icons:$=[]}=Z,U=VY("Type Definitions");if(U+=x1(X,q),U+=j1(X,q),$.length>0)U+=b1($,q);return U+=D1(X,Y,q),U+=P1(X,q),U+`
|
|
151
|
+
`}function N1(X,Z){let{includeJSDoc:Y=!0,icons:q=[]}=Z,$=VY("Token Constants"),U="TokenPaths, CSSVariableNames";if(q.length>0)U+=", IconNames, IconCategories, Icon";if($+=`import type { ${U} } from './tokens.types';
|
|
152
152
|
|
|
153
|
-
`,$+=
|
|
154
|
-
`}function
|
|
153
|
+
`,$+=C1(X,Y),$+=T1(X,Y),q.length>0)$+=V1(q,Y);return $+=y1(X,Y),$+`
|
|
154
|
+
`}function F1(X,Z){let Y=VY("Main Export");if(X.some((q)=>q.type==="types"))Y+=`export type * from './tokens.types';
|
|
155
155
|
`;if(X.some((q)=>q.type==="constants"))Y+=`export * from './tokens.constants';
|
|
156
|
-
`;if(Z)try{let q=
|
|
156
|
+
`;if(Z)try{let q=a("fs"),U=a("path").join(Z,"typescript","tokens.icons.ts");if(q.existsSync(U))Y+=`export type * from './tokens.icons';
|
|
157
157
|
`,Y+=`export * from './tokens.icons';
|
|
158
158
|
`}catch(q){}return Y+=`
|
|
159
159
|
`,Y+`
|
|
160
|
-
`}function
|
|
160
|
+
`}function x1(X,Z){let Y=X.map(($)=>`"${$.name}"`).join(`
|
|
161
161
|
| `),q="";if(Z)q+=`/**
|
|
162
162
|
* All available token paths as string literals
|
|
163
163
|
*/
|
|
@@ -165,7 +165,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
165
165
|
| ${Y};
|
|
166
166
|
|
|
167
167
|
`,q+`
|
|
168
|
-
`}function
|
|
168
|
+
`}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(`
|
|
169
169
|
| `);if(Z)q+=`/**
|
|
170
170
|
* Possible values for ${$} tokens
|
|
171
171
|
*/
|
|
@@ -173,7 +173,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
173
173
|
| ${z};
|
|
174
174
|
|
|
175
175
|
`}return q+`
|
|
176
|
-
`}function
|
|
176
|
+
`}function b1(X,Z){let Y="",q=X.map((W)=>`"${W.name}"`).join(`
|
|
177
177
|
| `);if(Z)Y+=`/**
|
|
178
178
|
* All available icon names as string literals
|
|
179
179
|
*/
|
|
@@ -209,23 +209,23 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
209
209
|
`,Y+=`}
|
|
210
210
|
|
|
211
211
|
`,Y+`
|
|
212
|
-
`}function
|
|
212
|
+
`}function D1(X,Z,Y){let q="";if(Y)q+=`/**
|
|
213
213
|
* Design tokens interface with all token paths and their values
|
|
214
214
|
*/
|
|
215
215
|
`;q+=`export interface ${Z} {
|
|
216
216
|
`;for(let $ of X){if(Y&&$.description)q+=` /** ${$.description} */
|
|
217
|
-
`;q+=` "${$.name}": ${
|
|
217
|
+
`;q+=` "${$.name}": ${NX($.value)};
|
|
218
218
|
`}return q+=`}
|
|
219
219
|
|
|
220
|
-
`,q+=
|
|
221
|
-
`}function
|
|
220
|
+
`,q+=S1(X,`${Z}Nested`,Y),q+`
|
|
221
|
+
`}function S1(X,Z,Y){let q=f1(X),$="";if(Y)$+=`/**
|
|
222
222
|
* Design tokens interface with nested structure
|
|
223
223
|
*/
|
|
224
224
|
`;return $+=`export interface ${Z} {
|
|
225
|
-
`,$+=
|
|
225
|
+
`,$+=rZ(q,1),$+=`}
|
|
226
226
|
|
|
227
227
|
`,$+`
|
|
228
|
-
`}function
|
|
228
|
+
`}function P1(X,Z){let q=Array.from(new Set(X.map((U)=>U.cssVar))).map((U)=>`"${U}"`).join(`
|
|
229
229
|
| `),$="";if(Z)$+=`/**
|
|
230
230
|
* All available CSS variable names
|
|
231
231
|
*/
|
|
@@ -233,7 +233,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
233
233
|
| ${q};
|
|
234
234
|
|
|
235
235
|
`,$+`
|
|
236
|
-
`}function
|
|
236
|
+
`}function C1(X,Z){let Y="";if(Z)Y+=`/**
|
|
237
237
|
* Object containing all token values
|
|
238
238
|
*/
|
|
239
239
|
`;Y+=`export const tokenValues = {
|
|
@@ -241,7 +241,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
241
241
|
`;Y+=` "${q.name}": ${JSON.stringify(q.value)},
|
|
242
242
|
`}return Y+=`} as const;
|
|
243
243
|
|
|
244
|
-
`,Y}function
|
|
244
|
+
`,Y}function V1(X,Z){let Y="";if(Z)Y+=`/**
|
|
245
245
|
* Array of all available icons
|
|
246
246
|
*/
|
|
247
247
|
`;Y+=`export const icons: Icon[] = [
|
|
@@ -284,7 +284,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
284
284
|
`,Y+=`}
|
|
285
285
|
|
|
286
286
|
`,Y+`
|
|
287
|
-
`}function
|
|
287
|
+
`}function T1(X,Z){let Y="";if(Z)Y+=`/**
|
|
288
288
|
* Object mapping token paths to CSS variable names
|
|
289
289
|
*/
|
|
290
290
|
`;Y+=`export const cssVariableNames = {
|
|
@@ -292,7 +292,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
292
292
|
`;return Y+=`} as const;
|
|
293
293
|
|
|
294
294
|
`,Y+`
|
|
295
|
-
`}function
|
|
295
|
+
`}function y1(X,Z){let Y="";if(Z)Y+=`/**
|
|
296
296
|
* Get the value of a design token
|
|
297
297
|
*/
|
|
298
298
|
`;if(Y+=`export function getTokenValue<T extends TokenPaths>(tokenPath: T): typeof tokenValues[T] {
|
|
@@ -321,10 +321,10 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
321
321
|
}
|
|
322
322
|
|
|
323
323
|
`,Y+`
|
|
324
|
-
`}function
|
|
325
|
-
`,Y+=
|
|
324
|
+
`}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 rZ(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}: {
|
|
325
|
+
`,Y+=rZ(U,Z+1),Y+=`${q}};
|
|
326
326
|
`;else Y+=`${q}${W}: ${U};
|
|
327
|
-
`}return Y}function
|
|
327
|
+
`}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`/**
|
|
328
328
|
* ${X}
|
|
329
329
|
* Generated: ${Z}
|
|
330
330
|
*
|
|
@@ -332,7 +332,7 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
332
332
|
* Do not edit this file directly - it will be overwritten.
|
|
333
333
|
*/
|
|
334
334
|
|
|
335
|
-
`}var
|
|
335
|
+
`}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 nZ}from"fs";import{writeFile as iZ,readdir as d1,mkdir as u1}from"fs/promises";import{resolve as k1,relative as aZ,join as kX,dirname as tZ}from"path";import c1 from"lodash";async function oZ(X){let Z=await d1(X,{withFileTypes:!0}),Y=await Promise.all(Z.map((q)=>{let $=k1(X,q.name);return q.isDirectory()?oZ($):$}));return Array.prototype.concat(...Y)}async function eZ(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 oZ(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=aZ(K,M).split("/").pop(),xX=(N.match(/name="(.*?)"/)??[])[1]??XX?.replace(".svg",""),lX=(N.match(/data-style="(.*?)"/)??[])[1],L0=(N.match(/description="(.*?)"/)??[])[1],[dY]=N.match(/<svg[^>]*>/)??[],[,_0]=dY?.match(/width="([\d.]+)(px)?"/)??[],[,H0]=dY?.match(/height="([\d.]+)(px)?"/)??[];if(lX!=="animated"&&lX!=="custom")return{path:M,folder:aZ(K,M).split("/").slice(0,-1).concat(xX),file:XX,style:lX,content:N,name:xX,dimensions:{width:Number(_0),height:Number(H0)},description:L0??""};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 iZ(XX,JSON.stringify(xX,null,2),{flag:"w",encoding:"utf-8"})});let R=`${A}/tokens/${await KX("json")}`,I=tZ(R);nZ(I,{recursive:!0});let w=fY({},B,Q);await iZ(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=`/**
|
|
336
336
|
* Icon Names Type Definition
|
|
337
337
|
* Generated: ${new Date().toISOString()}
|
|
338
338
|
*
|
|
@@ -341,12 +341,12 @@ ${z.sort().map((_)=>` ${_}`).join(`
|
|
|
341
341
|
*/
|
|
342
342
|
|
|
343
343
|
export const icons = [
|
|
344
|
-
${U.map((
|
|
344
|
+
${U.map((G)=>`'${G}'`).join(`,
|
|
345
345
|
`)}
|
|
346
346
|
] as const;
|
|
347
347
|
|
|
348
348
|
export type IconName = typeof icons[number];
|
|
349
|
-
`,K=$(Z,"typescript","tokens.icons.ts");q(K,W,"utf-8"),console.log(`✓ Generated ${U.length} icon names`)}catch(U){console.error("Failed to generate icon names:",U)}}var
|
|
349
|
+
`,K=$(Z,"typescript","tokens.icons.ts"),z=tZ(K);nZ(z,{recursive:!0}),q(K,W,"utf-8"),console.log(`✓ Generated ${U.length} icon names`)}catch(U){console.error("Failed to generate icon names:",U)}}var fY,l1;var X0=S(()=>{f();({set:fY,get:l1}=c1)});function q0(X,Z={}){let Y=[],q=Z.typescript?"ts":"js",$=Z.modes||[],U=X.filter((K)=>K.extensions?.mediaQuery||K.name.includes("@screen")||K.name.includes("@_")),W=X.filter((K)=>!K.extensions?.mediaQuery&&!K.name.includes("@screen")&&!K.name.includes("@_"));if(Z.separateThemeFiles&&$.length>0){let K=$.join("|"),z=new RegExp(`#(${K})$`),G=new Map;for(let A of $)G.set(A,[]);for(let A of W){let E=A.name.match(z);if(E){let L=E[1];G.get(L).push(A)}else{let L=$[0];G.get(L).push(A)}}for(let A of $){let E=G.get(A)||[];if(E.length>0){if(Z.typescript){let L=$0(E,A);Y.push({fileName:`${A}.d.ts`,content:o1(L,Z,A),theme:A})}Y.push({fileName:`${A}.${q}`,content:Z0(E,{...Z,theme:A}),theme:A})}}}else Y.push({fileName:`tokens.${q}`,content:Z0(W,Z)});if(U.length>0)Y.push({fileName:`breakpoints.${q}`,content:s1(U,X,Z)});if(Z.separateThemeFiles&&Y.length>1)Y.push({fileName:`index.${q}`,content:X2(Y,Z)});return Y}function s1(X,Z,Y={}){let{typescript:q,includeJSDoc:$,moduleType:U="es",customHeader:W,modes:K=[]}=Y,z=new Map(Z.map((L)=>[L.name,L])),G={};for(let L of X){let _=L.extensions?.mediaQuery||i1(L.name),H=K.length>0?K[0]:"default";for(let O of K)if(L.name.includes(`#${O}`)){H=O;break}if(typeof _==="string"&&_.includes("{")&&_.includes("}"))_=n1(_,z);if(!G[_])G[_]={};if(!G[_][H])G[_][H]={};let Q=a1(L.name),B=t1(Q,cX(L.value,z));G[_][H]={...G[_][H],...B}}let A=Object.keys(G).sort((L,_)=>{let H=Y0(L),Q=Y0(_);return H-Q}).reduce((L,_)=>{return L[_]=G[_],L},{}),E="";if(W)E+=`${W}
|
|
350
350
|
|
|
351
351
|
`;else E+=`/**
|
|
352
352
|
`,E+=` * Design Tokens - Breakpoints
|
|
@@ -354,17 +354,17 @@ export type IconName = typeof icons[number];
|
|
|
354
354
|
`,E+=` * Do not edit this file directly
|
|
355
355
|
`,E+=` */
|
|
356
356
|
|
|
357
|
-
`;if(q)E+=
|
|
358
|
-
`;if(U==="es"){if(q)E+=`const breakpoints: Tokens = ${
|
|
357
|
+
`;if(q)E+=U0(A,$),E+=`
|
|
358
|
+
`;if(U==="es"){if(q)E+=`const breakpoints: Tokens = ${e(A,$,0)};
|
|
359
359
|
|
|
360
|
-
`;else E+=`const breakpoints = ${
|
|
360
|
+
`;else E+=`const breakpoints = ${e(A,$,0)};
|
|
361
361
|
|
|
362
362
|
`;E+=`export default breakpoints;
|
|
363
|
-
`}else E+=`const breakpoints = ${
|
|
363
|
+
`}else E+=`const breakpoints = ${e(A,$,0)};
|
|
364
364
|
|
|
365
365
|
`,E+=`module.exports = breakpoints;
|
|
366
366
|
`,E+=`module.exports.default = breakpoints;
|
|
367
|
-
`;return E}function
|
|
367
|
+
`;return E}function i1(X){if(X.includes("@_max_width_")){let Z=X.match(/@_max_width___(.+?)__/);if(Z)return`screen and (max-width: {${Z[1].replace(/_/g,".")}})`}if(X.includes("@_min_width_")){let Z=X.match(/@_min_width___(.+?)__/);if(Z)return`screen and (min-width: {${Z[1].replace(/_/g,".")}})`}return"screen"}function a1(X){let Z=X.replace(/@_.*?__/,"").replace(/@screen.*/,"").replace(/#[^#]*$/,"").replace(/^universe\./,"");return Z=Z.replace(/_universe_foundation_breakpoint_screen_width_[^_]+__?$/,""),Z}function Y0(X){let Z=X.match(/(\d+(?:\.\d+)?)/);return Z?parseFloat(Z[1]):0}function n1(X,Z){return X.replace(/\{([^}]+)\}/g,(Y,q)=>{let $=Z.get(q);if($){let U=$.value;if(typeof U==="object"&&U!==null&&"$value"in U)U=U.$value;return String(U)}return Y})}function t1(X,Z){let Y=X.split("."),q={},$=q;for(let U=0;U<Y.length-1;U++)$[Y[U]]={},$=$[Y[U]];return $[Y[Y.length-1]]=Z,q}function Z0(X,Z={}){let{typescript:Y,includeJSDoc:q,moduleType:$="es",customHeader:U,theme:W}=Z,K="";if(U)K+=`${U}
|
|
368
368
|
|
|
369
369
|
`;else K+=`/**
|
|
370
370
|
`,K+=` * Design Tokens - ${W?`${W.charAt(0).toUpperCase()+W.slice(1)} Theme`:"All Tokens"}
|
|
@@ -372,27 +372,27 @@ export type IconName = typeof icons[number];
|
|
|
372
372
|
`,K+=` * Do not edit this file directly
|
|
373
373
|
`,K+=` */
|
|
374
374
|
|
|
375
|
-
`;let z
|
|
375
|
+
`;let z=$0(X,W);if(Y)if(Z.separateThemeFiles&&W)K+=`import type { Tokens } from "./${W}.d";
|
|
376
376
|
|
|
377
|
-
`;else K+=
|
|
378
|
-
`;if($==="es"){if(Y)K+=`const tokens: Tokens = ${
|
|
377
|
+
`;else K+=U0(z,q),K+=`
|
|
378
|
+
`;if($==="es"){if(Y)K+=`const tokens: Tokens = ${e(z,q,0)};
|
|
379
379
|
|
|
380
|
-
`;else K+=`const tokens = ${
|
|
380
|
+
`;else K+=`const tokens = ${e(z,q,0)};
|
|
381
381
|
|
|
382
382
|
`;K+=`export default tokens;
|
|
383
383
|
`;let G=Object.keys(z);if(G.length>0){K+=`
|
|
384
384
|
// Named exports for convenience
|
|
385
385
|
`;for(let A of G)K+=`export const ${A} = tokens.${A};
|
|
386
|
-
`}}else K+=`const tokens = ${
|
|
386
|
+
`}}else K+=`const tokens = ${e(z,q,0)};
|
|
387
387
|
|
|
388
388
|
`,K+=`module.exports = tokens;
|
|
389
389
|
`,K+=`module.exports.default = tokens;
|
|
390
390
|
`;return K+`
|
|
391
|
-
`}function
|
|
391
|
+
`}function $0(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 U0(X,Z){let Y="";if(Z)Y+=`/**
|
|
392
392
|
* Token object type definition
|
|
393
393
|
*/
|
|
394
|
-
`;return Y+=`type Tokens = ${
|
|
395
|
-
`,Y}function
|
|
394
|
+
`;return Y+=`type Tokens = ${hY(X,0)};
|
|
395
|
+
`,Y}function o1(X,Z,Y){let{customHeader:q,includeJSDoc:$}=Z,U="";if(q)U+=`${q}
|
|
396
396
|
|
|
397
397
|
`;else{let W=Y?` - ${Y.charAt(0).toUpperCase()+Y.slice(1)} Theme`:"";U+=`/**
|
|
398
398
|
`,U+=` * Universe Design System Tokens - Type Definitions${W}
|
|
@@ -403,14 +403,14 @@ export type IconName = typeof icons[number];
|
|
|
403
403
|
`}if($)U+=`/**
|
|
404
404
|
* Token object type definition
|
|
405
405
|
*/
|
|
406
|
-
`;return U+=`export type Tokens = ${
|
|
406
|
+
`;return U+=`export type Tokens = ${hY(X,0)};
|
|
407
407
|
`,U+`
|
|
408
|
-
`}function
|
|
409
|
-
`;for(let[U,W]of q){let K=
|
|
410
|
-
`}return $+=" ".repeat(Z)+"}",$}function
|
|
408
|
+
`}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 $=`{
|
|
409
|
+
`;for(let[U,W]of q){let K=e1(U)?`"${U}"`:U;$+=`${Y}${K}: ${hY(W,Z+1)};
|
|
410
|
+
`}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=`{
|
|
411
411
|
`;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)} */
|
|
412
|
-
`;let E=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(z)?z:JSON.stringify(z),L=
|
|
413
|
-
`}return W+=`${q}}`,W}function
|
|
412
|
+
`;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?"":","}
|
|
413
|
+
`}return W+=`${q}}`,W}function X2(X,Z){let Y=Z.typescript?"ts":"js",{moduleType:q="es",customHeader:$}=Z,U=(K)=>{return K.replace(/-([a-z])/g,(z,G)=>G.toUpperCase())},W="";if($)W+=`${$}
|
|
414
414
|
|
|
415
415
|
`;else W+=`/**
|
|
416
416
|
`,W+=` * Design Tokens - Index
|
|
@@ -428,7 +428,7 @@ export type IconName = typeof icons[number];
|
|
|
428
428
|
// Default export points to light theme
|
|
429
429
|
`,W+=`module.exports = require('./light');
|
|
430
430
|
`}return W+`
|
|
431
|
-
`}var
|
|
431
|
+
`}var K0=S(()=>{uX()});var W0={};sX(W0,{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(`
|
|
432
432
|
|
|
433
433
|
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(`
|
|
434
434
|
⚠️ Warnings:`);for(let Z of X.warnings)console.log(` ${Z}`)}if(X.errors.length>0){console.log(`
|
|
@@ -436,7 +436,7 @@ Build Validation Results:`),console.log("=======================================
|
|
|
436
436
|
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(`
|
|
437
437
|
${X.isValid?"✅":"❌"} Build ${X.isValid?"passed":"failed"}`),console.log(`
|
|
438
438
|
========================================================
|
|
439
|
-
`)}var
|
|
439
|
+
`)}var G0=S(()=>{f()});import{writeFileSync as q2,mkdirSync as $2,existsSync as pY,readFileSync as mY,readdirSync as U2,statSync as z0}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=`/**
|
|
440
440
|
* ${Z} Design System - Main CSS Entry Point
|
|
441
441
|
* Generated: ${new Date().toISOString()}
|
|
442
442
|
*
|
|
@@ -449,7 +449,7 @@ ${X.isValid?"✅":"❌"} Build ${X.isValid?"passed":"failed"}`),console.log(`
|
|
|
449
449
|
${$.join(`
|
|
450
450
|
`)}
|
|
451
451
|
`;return{fileName:`${Z}.design-system.tokens.css`,content:K+`
|
|
452
|
-
`,theme:void 0}}function
|
|
452
|
+
`,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=`/**
|
|
453
453
|
* ${Z} Design System - Raw/Inline CSS
|
|
454
454
|
* Generated: ${new Date().toISOString()}
|
|
455
455
|
*
|
|
@@ -464,29 +464,29 @@ ${z.join(`
|
|
|
464
464
|
|
|
465
465
|
`)}
|
|
466
466
|
`;return{fileName:`${Z}.design-system.tokens.raw.css`,content:L+`
|
|
467
|
-
`,theme:void 0}}function
|
|
467
|
+
`,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.
|
|
468
468
|
`+` Tokens dir: ${X}
|
|
469
469
|
Compositions dir: ${Z}
|
|
470
|
-
Please move compositions to a separate directory (e.g., './compositions')`};return{valid:!0}}function
|
|
471
|
-
`),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=
|
|
470
|
+
Please move compositions to a separate directory (e.g., './compositions')`};return{valid:!0}}function z2(X,Z){let Y=[];if(pY(X)){let q=z0(X);if(q.isDirectory())try{let $=U2(X);for(let U of $){if(!U.endsWith(".json"))continue;let W=V(X,U);if(z0(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 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 A2(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 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(` */
|
|
471
|
+
`),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(`
|
|
472
472
|
`);$.push({fileName:z,content:E+`
|
|
473
|
-
`,theme:void 0})}return $}async function
|
|
474
|
-
Starting token build process...`,X.verbose);let{initializeColorspace:q}=await Promise.resolve().then(() => (
|
|
475
|
-
Generating CSS files...`,X.verbose);let G=
|
|
476
|
-
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
|
|
477
|
-
Processing composition files...`,X.verbose);let O=
|
|
478
|
-
Generating TypeScript files...`,X.verbose);let G=
|
|
479
|
-
Generating JavaScript files...`,X.verbose);let G=
|
|
480
|
-
Generating JSON files...`,X.verbose);let G=
|
|
481
|
-
Build completed in ${Y.duration}ms`,X.verbose)}catch(q){let $=q instanceof Error?q.message:String(q);Y.errors.push($),
|
|
482
|
-
Validating build output...`,X.verbose);let{validateCSSFiles:q,printValidationResults:$}=await Promise.resolve().then(() => (
|
|
473
|
+
`,theme:void 0})}return $}async function sZ(X){let Z=Date.now(),Y={tokenCount:0,cssFiles:[],typescriptFiles:[],javascriptFiles:[],jsonFiles:[],duration:0,warnings:[],errors:[]};try{F(`
|
|
474
|
+
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(`
|
|
475
|
+
Generating CSS files...`,X.verbose);let G=E0(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 eZ(X.outputDir,X.config),F(`
|
|
476
|
+
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}),_=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(`
|
|
477
|
+
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(`
|
|
478
|
+
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(`
|
|
479
|
+
Generating JavaScript files...`,X.verbose);let G=H2(X.config,X.javascriptOptions),A=q0(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(`
|
|
480
|
+
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(`
|
|
481
|
+
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(`
|
|
482
|
+
Validating build output...`,X.verbose);let{validateCSSFiles:q,printValidationResults:$}=await Promise.resolve().then(() => (G0(),W0)),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 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 _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:`/**
|
|
483
483
|
* ${X.$name}
|
|
484
484
|
* Generated: ${new Date().toISOString()}
|
|
485
|
-
*/`}}function
|
|
485
|
+
*/`}}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:$+`
|
|
486
486
|
`});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+`
|
|
487
487
|
`});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+`
|
|
488
|
-
`}),q}function
|
|
489
|
-
`);return!0}catch(W){if(console.error("❌ Failed to compile config file"),W instanceof Error)console.error(W.message);throw W}}
|
|
488
|
+
`}),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 sZ({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(()=>{X0();uX();K0();xY();TY();IY();SX()});import{existsSync as O2}from"fs";import{resolve as B2}from"path";import{execSync as R0}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(R0(`bun build ${q} --outfile ${$} --minify --target node --packages external --no-bundle`,{stdio:Z?"inherit":"pipe"}),Z)console.log(`✅ Config compiled successfully
|
|
489
|
+
`);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(`
|
|
490
490
|
Design Tokens Builder - W3C compliant token processor
|
|
491
491
|
|
|
492
492
|
Usage: build-tokens [options]
|
|
@@ -520,11 +520,11 @@ Token Files:
|
|
|
520
520
|
- Include $type and $value properties
|
|
521
521
|
- Support token references with {token.path} syntax
|
|
522
522
|
- Support extensions for modes, generators, and breakpoints
|
|
523
|
-
`)}function
|
|
523
|
+
`)}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(`
|
|
524
524
|
❌ 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!
|
|
525
525
|
`),Y.cssFiles.length>0)console.log(`
|
|
526
526
|
Generated ${Y.cssFiles.length} CSS files:`),Y.cssFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.typescriptFiles.length>0)console.log(`
|
|
527
527
|
Generated ${Y.typescriptFiles.length} TypeScript files:`),Y.typescriptFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.javascriptFiles.length>0)console.log(`
|
|
528
528
|
Generated ${Y.javascriptFiles.length} JavaScript files:`),Y.javascriptFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.jsonFiles.length>0)console.log(`
|
|
529
529
|
Generated ${Y.jsonFiles.length} JSON files:`),Y.jsonFiles.forEach((q)=>console.log(` - ${q.fileName}`));if(Y.warnings.length>0)console.log(`
|
|
530
|
-
Warnings:`),Y.warnings.forEach((q)=>console.log(` - ${q}`))}catch(Z){console.error("❌ Build failed:",Z),process.exit(1)}}var
|
|
530
|
+
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};
|