@greensight/gts 1.0.0-beta.6 → 1.0.0-beta.7
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/index.cjs +37 -47
- package/index.mjs +496 -510
- package/modules/utilities/types.d.ts +15 -1
- package/modules/utilities/types.d.ts.map +1 -1
- package/modules/utilities/utils.d.ts +1 -16
- package/modules/utilities/utils.d.ts.map +1 -1
- package/package.json +1 -1
package/index.cjs
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var Te=Object.defineProperty;var ve=(r,e,o)=>e in r?Te(r,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[e]=o;var w=(r,e,o)=>ve(r,typeof e!="symbol"?e+"":e,o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("path"),je=require("ts-import"),F=require("node:fs"),k=require("node:fs/promises"),C=require("node:path"),p=class p{static resolveReadPath(e){if(!e||!e.trim())throw new Error("File path must be a non-empty string");return C.resolve(p.baseDir,e)}static resolveWritePath(e,o){const t=C.resolve(p.baseDir,o??"");return{targetDir:t,targetPath:C.resolve(t,e)}}static handleReadError(e,o){throw e.code==="ENOENT"?new Error(`File not found: ${o}`):new Error(`Failed to read file "${o}": ${e.message??String(e)}`)}static async read(e,o="utf8"){const t=p.resolveReadPath(e);try{return await k.readFile(t,{encoding:o})}catch(s){p.handleReadError(s,t)}}static async readBuffer(e){const o=p.resolveReadPath(e);try{return await k.readFile(o)}catch(t){p.handleReadError(t,o)}}static async readJson(e){const o=p.resolveReadPath(e);try{const t=await k.readFile(o,{encoding:"utf8"});try{return JSON.parse(t)}catch(s){throw new Error(`Failed to parse JSON from "${o}": ${s.message}`)}}catch(t){p.handleReadError(t,o)}}static async write(e,o="",t={}){const{directory:s,overwrite:n=!0}=t,{targetDir:a,targetPath:i}=p.resolveWritePath(e,s);if(!n&&F.existsSync(i))throw new Error(`File ${i} already exists`);return await k.mkdir(a,{recursive:!0}),await k.writeFile(i,o,{encoding:"utf8"}),i}static async writeWithExtension(e,o,t="",s){const n=o.startsWith(".")?o:`.${o}`,a=`${e}${n}`;return p.write(a,t,s)}static exists(e){const o=p.resolveReadPath(e);return F.existsSync(o)}static async delete(e,o){const{targetPath:t}=p.resolveWritePath(e,o);F.existsSync(t)&&await k.rm(t,{recursive:!0,force:!0})}};w(p,"baseDir",process.cwd());let d=p;const S=class S{static async create(){if(d.exists(S.configFileName))throw new Error("The file already exists");await d.write(S.configFileName,"",{overwrite:!1})}async load(){try{const e=await je.tsImport.compile(`${$.resolve(process.cwd(),S.configFileName)}`);if(!e)throw new Error("gts.config.ts must default-export a configuration object");return e.default}catch(e){console.error("Cannot find module gts.config.ts",e)}}};w(S,"configFileName","gts.config.ts");let M=S;const Me=r=>{const e=new URLSearchParams;return Object.keys(r).forEach(o=>{Array.isArray(r[o])?r[o].forEach(t=>e.append(`${o}[]`,t)):e.append(o,r[o])}),e},Ne=(r,e=50)=>{const o=[];for(let t=0;t<r.length;t+=e)o.push(r.slice(t,t+e));return o};class O{constructor(e,o){w(this,"figmaToken");w(this,"fileId");w(this,"onTimeMeasureHandler");this.figmaToken=e,this.fileId=o}setOnTimeMeasureHandler(e){this.onTimeMeasureHandler=e}static async returnJSON(e){const o=await e.json();if(!e.ok){let t="Request failed";throw new Error(t)}return o}async performControlledRequest(e,{params:o={},timeout:t=3e4,abortController:s=new AbortController}={}){var b;if(!this.figmaToken||!this.fileId)throw new Error("figmaToken and fileId are required in gts.config.ts");const n=Object.entries(o).reduce((f,[h,m])=>typeof m<"u"?{...f,[h]:m}:f,{}),a=`https://api.figma.com/v1${e}${n&&Object.keys(n).length?`?${Me(n)}`:""}`;console.log("endpoinWithParams=",a);const i=setTimeout(()=>s.abort(),t),l={"Content-Type":"application/json",...this.figmaToken&&{"X-Figma-Token":this.figmaToken}},u={method:"GET",headers:l,signal:s.signal},c=performance.now(),y=await fetch(`${a}`,u);clearTimeout(i);const g=performance.now()-c;return(b=this.onTimeMeasureHandler)==null||b.call(this,a,l,g),y}async request(e,o){var s;const t=await this.performControlledRequest(e,{...o});return(s=t.headers.get("content-type"))!=null&&s.includes("application/json")?O.returnJSON(t):t}async getComponents(){return this.request(`/files/${this.fileId}/components`)}async getStyles(){return this.request(`/files/${this.fileId}/styles`)}async getNodes(e){const o=Ne(e).map(n=>this.request(`/files/${this.fileId}/nodes`,{params:{ids:n.join(",")}})),t=await Promise.all(o);return{...t[0],nodes:t.reduce((n,a)=>({...n,...a.nodes}),{})}}}const Z=(r,e)=>{const o=Array.isArray(e)?e:e.split(".");let t=r;for(const s of o){if(t==null||typeof t!="object")return;t=t[s]}return t},X=(r,e)=>{if(!e||typeof e!="object")return r;if(!r||typeof r!="object")return e;const o={...r};for(const t in e)e.hasOwnProperty(t)&&(typeof e[t]=="object"&&e[t]!==null&&typeof o[t]=="object"&&o[t]!==null?o[t]=X(o[t],e[t]):o[t]=e[t]);return o};function x(r,e){if(r===e)return!0;if(r==null||e==null)return r===e;if(typeof r!=typeof e)return!1;if(r instanceof Date&&e instanceof Date)return r.getTime()===e.getTime();if(r instanceof RegExp&&e instanceof RegExp)return r.toString()===e.toString();if(Array.isArray(r)&&Array.isArray(e)){if(r.length!==e.length)return!1;for(let o=0;o<r.length;o++)if(!x(r[o],e[o]))return!1;return!0}if(typeof r=="object"&&typeof e=="object"){const o=Object.keys(r),t=Object.keys(e);if(o.length!==t.length)return!1;for(const s of o)if(!t.includes(s)||!x(r[s],e[s]))return!1;return!0}return!1}const A={color:{},effect:{},text:{},grid:{}};class Y{constructor(e){w(this,"tokensDir");w(this,"manifestPath");w(this,"variables");w(this,"styles");w(this,"loaded",!1);this.tokensDir=e||"",this.manifestPath=$.join(this.tokensDir,"manifest.json")}isLoaded(){return this.loaded&&!!this.variables&&!!this.styles}normalizeKey(e){const o=e.trim();return o&&o.replace(/[-_\s]+/g," ").split(" ").filter(t=>t.length).map((t,s)=>{const n=t.charAt(0),a=t.slice(1);return s===0?t.toLowerCase():n.toUpperCase()+a}).join("")}parseVariableString(e){if(typeof e!="string")return e;const o=/^\{(.+)\}$/,t=e.match(o);if(t){const s=t[1].trim();return`{${this.normalizeKey(s)}}`}return e}createVariableFileList(e){return Object.entries(e).flatMap(([o,t])=>Object.entries(t.modes).flatMap(([s,n])=>n.map(a=>({fileName:a,modeName:this.normalizeKey(s.trim()),collectionName:o}))))}parseValue(e){return e&&(typeof e=="string"?this.parseVariableString(e):typeof e!="object"?e:Array.isArray(e)?e.map(o=>this.parseValue(o)):Object.entries(e).reduce((o,[t,s])=>({...o,[t]:this.parseValue(s)}),{}))}getTokensFromFile(e,o){return Object.entries(e).reduce((t,[s,n])=>"$type"in n&&"$value"in n?{...t,[this.normalizeKey(s)]:{type:n.$type,description:n.$description,value:o?{[this.normalizeKey(o)]:this.parseValue(n.$value)}:this.parseValue(n.$value)}}:{...t,[this.normalizeKey(s)]:this.getTokensFromFile(n,o)},{})}processTokensFile(e,o,t){const s=this.normalizeKey(t),n=this.getTokensFromFile(e,o);return{[s]:n}}async loadVariableFiles(e){return Promise.all(e.map(async({fileName:o,modeName:t,collectionName:s})=>{try{const n=$.join(this.tokensDir,o),a=await d.readJson(n);return this.processTokensFile(a,t,s)}catch(n){return console.warn(`Failed to load variable file: ${$.join(this.tokensDir,o)}`,n),{}}}))}mergeVariables(e){return e.reduce((o,t)=>X(o,t),{})}async loadTokenVariables(e){try{const o=this.createVariableFileList(e),t=await this.loadVariableFiles(o);return this.mergeVariables(t)}catch(o){throw new Error(`Failed to load token variables from ${this.tokensDir}: ${o}`)}}createStyleFileList(e){return Object.entries(e).flatMap(([o,t])=>(t==null?void 0:t.map(s=>({styleType:o,fileName:s})))||[])}async loadStyleFiles(e){return(await Promise.all(e.map(async({styleType:t,fileName:s})=>{try{const n=$.join(this.tokensDir,s),a=await d.readJson(n);return{styleType:t,styleTokens:a}}catch(n){return console.warn(`Failed to load style file: ${$.join(this.tokensDir,s)}`,n),{styleType:t,styleTokens:{}}}}))).reduce((t,s)=>({...t,[s.styleType]:this.getTokensFromFile(s.styleTokens,"")}),{...A})}async loadStyles(e){if(!e)return{...A};const o=this.createStyleFileList(e);return await this.loadStyleFiles(o)}async load(){if(this.loaded)return;const e=await d.readJson(this.manifestPath);if(!e)throw new Error(`Failed to load manifest file from: ${this.manifestPath}`);this.variables=await this.loadTokenVariables(e.collections),this.styles=await this.loadStyles(e.styles),this.loaded=!0}getVariables(){if(!this.loaded||!this.variables)throw new Error("Tokens not loaded. Call load() first.");return this.variables}getStyles(){if(!this.loaded||!this.styles)throw new Error("Tokens not loaded. Call load() first.");return this.styles}isVariableReference(e){return typeof e!="string"?!1:/^\{.+\}$/.test(e)}getVariablePath(e){return e.slice(1,-1)}resolveVariableValue(e){if(typeof e=="object")return Object.keys(e).reduce((o,t)=>{const s=e[t],n=this.resolveVariableValueString(s,t);return n&&(o[t]=n),o},{})}resolveVariableValueString(e,o){if(!this.isVariableReference(e))return e;const t=this.getVariablePath(e),s=this.getToken(t,o);if(s)return this.resolveVariableValueString(s,o)}getToken(e,o){if(!this.loaded||!this.variables)throw new Error("Tokens not loaded. Call load() first.");for(const t of Object.values(this.variables)){const s=Z(t,e);if(s!=null&&s.value&&typeof s.value=="object"){if(o)return s.value[o];{const n=Object.keys(s.value)[0];return s.value[n]}}}}}const Fe=async()=>{const e=await new M().load();if(!e)throw new Error('Failed to load gts.config.ts. Run "npx gts-init" to create it, or ensure the file exists and default-exports a valid configuration.');const{figmaToken:o,fileId:t,modules:s,manifest:n}=e,a=new O(o,t),i=new Y(n);n&&d.exists(n)&&await i.load(),await Promise.all(s.map(l=>l.executor({figmaApiClient:a,tokenManagerClient:i})))},Ce=async()=>{await M.create(),console.log("\x1B[32m%s\x1B[0m","✔️ Configuration file created gts.config.ts")},_=["xxxl","xxl","xl","lg","md","sm","xs","xxs","xxxs"],Ve=r=>parseInt(r.value,10),xe=r=>r.reduce((e,o)=>({...e,[o.name]:Ve(o)}),{}),Pe=async(r,e)=>{await d.delete(r,e)},Oe=async(r,e,o)=>{await d.write(r,e,{directory:o})},V=async(r,e,o)=>{await Pe(r,o),await Oe(r,e,o)},Ee=r=>{const e=r.map(({name:o,value:t})=>` --${o}: ${t};`);return e.length?`.breakpoint-variables {
|
|
2
2
|
${e.join(`
|
|
3
3
|
`)}
|
|
4
4
|
}
|
|
5
|
-
`:""},
|
|
5
|
+
`:""},Be=r=>{var t;const e=r.map(({name:s,value:n})=>` ${s}: ${n}`),o=(t=r.at(-1))==null?void 0:t.name;return!e.length||!o?"":`$breakpointList: (
|
|
6
6
|
${e.join(`,
|
|
7
7
|
`)}
|
|
8
8
|
);
|
|
9
9
|
|
|
10
|
-
$defaultBreakpoint: '${
|
|
11
|
-
`},
|
|
12
|
-
`),
|
|
13
|
-
`);return`${
|
|
14
|
-
${
|
|
15
|
-
}`},
|
|
10
|
+
$defaultBreakpoint: '${o}';
|
|
11
|
+
`},Ue=r=>[`const breakpoints = ${JSON.stringify(r,null,4)} as const;`,"","const BREAKPOINTS_NAMES = Object.keys(breakpoints);","","type BreakpointsKeysType = keyof typeof breakpoints;","type AllowMedia = 'all' | BreakpointsKeysType;","","export { breakpoints, BREAKPOINTS_NAMES };","export type { BreakpointsKeysType, AllowMedia };",""].join(`
|
|
12
|
+
`),Ke=async({breakpointTokens:r,dir:e})=>{const o=xe(r),t=Ee(r),s=Be(r),n=Ue(o);await Promise.all([V("styles.css",t,e),V("styles.scss",s,e),V("index.ts",n,e)])},Re=(r,e)=>{const o=Object.keys(r).filter(n=>!isNaN(Number(n))).sort((n,a)=>Number(n)-Number(a));if(o.length>e.length)throw new Error(`Not enough breakpoint names provided. Found ${o.length} breakpoints in data, but only ${e.length} names specified: ${e.join(", ")}`);const s=Object.keys(r).filter(n=>isNaN(Number(n)));if(s.length>0)throw new Error(`Found non-numeric breakpoint keys in grid data: ${s.join(", ")}. All breakpoint keys must be numeric values.`);return o.map((n,a)=>({name:e[e.length-1-a]||`bp-${n}`,value:n}))},Ae=({input:r={},output:{dir:e}})=>({name:"breakpoints/tokenManager",executor:async({tokenManagerClient:o})=>{try{console.log("[breakpoints/tokenManager] Generating breakpoints from TokenManager...");const{names:t=_}=r;if(!o.isLoaded())throw new Error("TokenManager is not loaded. Tokens must be loaded before using this module.");const s=o.getStyles();if(!s.grid)throw new Error("No grid styles found in TokenManager. Grid tokens must be loaded.");console.log("[breakpoints/tokenManager] Extracting breakpoints from grid styles...");const n=Re(s.grid,t);if(!n.length){console.warn("[breakpoints/tokenManager] No breakpoints found in grid styles.");return}console.log(`[breakpoints/tokenManager] Found ${n.length} breakpoints: ${n.map(a=>a.name).join(", ")}`),console.log(`[breakpoints/tokenManager] Writing files to ${e}...`),await Ke({breakpointTokens:n,dir:e}),console.log("[breakpoints/tokenManager] ✅ Successfully generated breakpoint files")}catch(t){const s=t instanceof Error?t.message:String(t);throw console.error("[breakpoints/tokenManager] ❌ Failed to generate breakpoints:",s),t instanceof Error&&t.stack&&console.error("[breakpoints/tokenManager] Stack trace:",t.stack),t}}}),De="styles.css",Le="index.ts",D=(r,e)=>{if(!e.length)return"";const o=e.map(t=>` ${t}`).join(`
|
|
13
|
+
`);return`${r} {
|
|
14
|
+
${o}
|
|
15
|
+
}`},Ie=r=>`.${r.replace(/\s+/g,"-").toLowerCase()}`,ee=r=>`--cl-${r}`,We=r=>r.reduce((e,o)=>{const t=ee(o.name);return typeof o.value=="object"?Object.entries(o.value).forEach(([s,n])=>{e[s]||(e[s]=[]),e[s].push(`${t}: ${n};`)}):e.root.push(`${t}: ${o.value};`),e},{root:[]}),ze=r=>{const e=D(".color-variables",r.root),o=Object.entries(r).reduce((t,[s,n])=>{if(s==="root"||!n.length)return t;const a=D(Ie(`${s}-color-variables`),n);return a&&t.push(a),t},[]).join(`
|
|
16
16
|
|
|
17
|
-
`);return[e,
|
|
17
|
+
`);return[e,o].filter(Boolean).join(`
|
|
18
18
|
|
|
19
|
-
`)},
|
|
20
|
-
${
|
|
19
|
+
`)},Ge=r=>`${`const colors = {
|
|
20
|
+
${r.map(t=>` '${t.name}': 'var(${ee(t.name)})'`).join(`,
|
|
21
21
|
`)}
|
|
22
22
|
} as const;`}
|
|
23
23
|
|
|
24
24
|
type ColorsKeysType = keyof typeof colors;
|
|
25
25
|
|
|
26
26
|
export { colors, type ColorsKeysType };
|
|
27
|
-
`,
|
|
27
|
+
`,qe=async({tsContent:r,cssContent:e,dir:o})=>{await d.delete(o);const t=d.write(Le,r,{directory:o}),s=d.write(De,e,{directory:o});await Promise.all([t,s])},Je=async({colorTokens:r,dir:e})=>{const o=We(r),t=ze(o),s=Ge(r);await qe({tsContent:s,cssContent:t,dir:e})},N=r=>r.reduce((e,o)=>{const t=Number((o.position*100).toFixed(1));return[...e,`${o.color}${t>0&&t<100?` ${t}%`:""}`]},[]).join(", "),He=r=>{const e=N(r.stops);return`linear-gradient(${r.angle}deg, ${e})`},Qe=r=>`radial-gradient(circle, ${N(r.stops)})`,Ze=r=>{const e=N(r.stops);return`conic-gradient(from ${r.angle}deg, ${e})`},Xe=r=>{const e=N(r.stops);return`linear-gradient(${r.angle}deg, ${e})`},L=r=>typeof r=="string"?r:r.type==="linear"?He(r):r.type==="radial"?Qe(r):r.type==="conic"?Ze(r):r.type==="diamond"?Xe(r):"",te=(r,e)=>Object.keys(r).reduce((o,t)=>{const s=r[t],n=e?`${e}-${t}`:t;if(s&&typeof s=="object"&&"type"in s&&"value"in s){const i=Object.keys(s.value),l=i.length>1?s.value:s.value[i[0]],u=typeof l=="object"?Object.keys(l).reduce((y,g)=>({...y,[g]:L(l[g])}),{}):L(l),c={[n]:u};return{...o,...c}}const a=te(s,n);return{...o,...a}},{}),re=(r,e)=>Object.keys(r).reduce((o,t)=>{const s=r[t];if(s.type&&s.type!=="color")return o;if(s.type&&s.value){const a=typeof s.value=="string"?e.resolveVariableValueString(s.value,t):e.resolveVariableValue(s.value);return a?{...o,[t]:{...s,value:a}}:o}const n=re(s,e);return n?{...o,[t]:n}:o},{}),Ye=({input:r={},output:{dir:e}})=>({name:"colors/tokenManager",executor:async({tokenManagerClient:o})=>{try{console.log("[colors/tokenManager] Generating colors from TokenManager...");const{includeVariables:t,includeStyles:s=!0}=r;if(!(t!=null&&t.length)&&!s)throw new Error("Either includeVariables or includeStyles must be enabled");if(!o.isLoaded())throw new Error("TokenManager is not loaded. Tokens must be loaded before using this module.");const n=[],a=o.getVariables();if(s){const l=o.getStyles();console.log("[colors/tokenManager] Processing styles for colors..."),l.color&&n.push(l.color)}if(t!=null&&t.length){console.log(`[colors/tokenManager] Processing ${t.length} variable groups...`);const l=t.map(u=>a[u]).filter(Boolean);n.push(...l)}const i=n.map(l=>re(l,o)).flatMap(l=>Object.entries(te(l,"")).reduce((u,[c,y])=>[...u,{name:c,value:y}],[]));if(i.length===0){console.warn("[colors/tokenManager] No color tokens generated");return}console.log(`[colors/tokenManager] Generated ${i.length} color tokens`),console.log(`[colors/tokenManager] Writing files to ${e}...`),await Je({colorTokens:i,dir:e}),console.log("[colors/tokenManager] ✅ Successfully generated color files")}catch(t){const s=t instanceof Error?t.message:String(t);throw console.error("[colors/tokenManager] ❌ Failed to generate colors:",s),t instanceof Error&&t.stack&&console.error("[colors/tokenManager] Stack trace:",t.stack),t}}}),_e=r=>` @media (width <= ${r.breakpoint}px) {
|
|
28
28
|
.container {
|
|
29
|
-
padding-left: ${
|
|
30
|
-
padding-right: ${
|
|
29
|
+
padding-left: ${r.offset};
|
|
30
|
+
padding-right: ${r.offset};
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.containerTablet {
|
|
34
|
-
padding-left: ${
|
|
35
|
-
padding-right: ${
|
|
34
|
+
padding-left: ${r.offset};
|
|
35
|
+
padding-right: ${r.offset};
|
|
36
36
|
}
|
|
37
|
-
}`,
|
|
37
|
+
}`,et=(r,e)=>{const o=e||"components",t=r.map(s=>_e(s)).join(`
|
|
38
38
|
|
|
39
|
-
`);return`@layer ${
|
|
40
|
-
${
|
|
41
|
-
}`},
|
|
39
|
+
`);return`@layer ${o} {
|
|
40
|
+
${t}
|
|
41
|
+
}`},tt=()=>`import styles from './styles.module.css';
|
|
42
42
|
|
|
43
43
|
export const conatinerClassName = styles.container;
|
|
44
44
|
export const conatinerTabletClassName = styles.containerTablet;
|
|
45
|
-
`,I=async(
|
|
46
|
-
`);return`${
|
|
47
|
-
${
|
|
48
|
-
}`},
|
|
45
|
+
`,I=async(r,e,o)=>{await d.delete(r,o),await d.write(r,e,{directory:o})},rt=async({containerTokens:r,dir:e,layer:o})=>{const t=et(r,o),s=tt();await I("styles.module.css",t,e),await I("index.ts",s,e)},ot=r=>{const e=r.trim().toLowerCase();return e==="0"||e==="0px"},st=(r,e)=>Object.keys(r).filter(n=>!isNaN(Number(n))).sort((n,a)=>Number(a)-Number(n)).reduce((n,a)=>{const i=r[a];if(!i||!("value"in i)||!Array.isArray(i.value))return n;const l=i.value.find(c=>c.pattern==="columns");if(!(l!=null&&l.offset))return n;const u=e.resolveVariableValueString(l.offset);return!u||typeof u!="string"||ot(u)?n:[...n,{breakpoint:Number(a),offset:u}]},[]).reduce((n,a)=>{const i=n[n.length-1];return i&&x(i.offset,a.offset)||n.push(a),n},[]),nt=({input:r={},output:{dir:e}})=>({name:"container/tokenManager",executor:async({tokenManagerClient:o})=>{try{console.log("[container/tokenManager] Generating container styles...");const{layer:t}=r;if(!o.isLoaded())throw new Error("TokenManager is not loaded. Tokens must be loaded before using this module.");console.log("[container/tokenManager] Extracting container tokens...");const s=o.getStyles();if(!s.grid)throw new Error("No grid styles found in TokenManager. Grid tokens must be loaded.");const n=st(s.grid,o);if(!n.length){console.warn("[container/tokenManager] No container tokens found.");return}console.log(`[container/tokenManager] Found ${n.length} container tokens: ${n.map(a=>a.breakpoint).join(", ")}`),console.log(`[container/tokenManager] Writing files to ${e}...`),await rt({containerTokens:n,dir:e,layer:t}),console.log("[container/tokenManager] ✅ Successfully generated container files")}catch(t){const s=t instanceof Error?t.message:String(t);throw console.error("[container/tokenManager] ❌ Failed to generate container:",s),t instanceof Error&&t.stack&&console.error("[container/tokenManager] Stack trace:",t.stack),t}}}),at="styles.css",it="index.ts",W=(r,e)=>{if(!e.length)return"";const o=e.map(t=>` ${t}`).join(`
|
|
46
|
+
`);return`${r} {
|
|
47
|
+
${o}
|
|
48
|
+
}`},lt=r=>`.${r.replace(/\s+/g,"-").toLowerCase()}`,oe=r=>`--${r}`,ct=({offsetX:r,offsetY:e,blur:o,spread:t,color:s})=>`${r} ${e} ${o} ${t} ${s}`,ut=r=>r.reduce((e,o)=>{const t=oe(o.name);return typeof o.value!="object"?(e.root.push(`${t}: ${o.value};`),e):Object.entries(o.value).reduce((s,[n,a])=>{const i=s[n]??[];return{...s,[n]:[...i,`${t}: ${a};`]}},e)},{root:[]}),dt=r=>{const e=W(".shadow-variables",r.root),o=Object.entries(r).reduce((t,[s,n])=>{if(s==="root"||!n.length)return t;const a=W(lt(`${s}-shadow-variables`),n);return a&&t.push(a),t},[]).join(`
|
|
49
49
|
|
|
50
|
-
`);return[e,
|
|
50
|
+
`);return[e,o].filter(Boolean).join(`
|
|
51
51
|
|
|
52
|
-
`)},
|
|
53
|
-
${
|
|
52
|
+
`)},yt=r=>`${`const shadows = {
|
|
53
|
+
${r.map(t=>` '${t.name}': 'var(${oe(t.name)})'`).join(`,
|
|
54
54
|
`)}
|
|
55
55
|
} as const;`}
|
|
56
56
|
|
|
57
57
|
type ShadowsKeysType = keyof typeof shadows;
|
|
58
58
|
|
|
59
59
|
export { shadows, type ShadowsKeysType };
|
|
60
|
-
`,
|
|
61
|
-
`);return`${
|
|
62
|
-
${
|
|
63
|
-
}`},
|
|
60
|
+
`,gt=async({tsContent:r,cssContent:e,dir:o})=>{await d.delete(o);const t=d.write(it,r,{directory:o}),s=d.write(at,e,{directory:o});await Promise.all([t,s])},ft=async({shadowTokens:r,dir:e})=>{const o=ut(r),t=dt(o),s=yt(r);await gt({tsContent:s,cssContent:t,dir:e})},se=(r,e)=>Object.keys(r).reduce((o,t)=>{const s=r[t],n=e?`${e}-${t}`:t;if(s&&typeof s=="object"&&"type"in s&&"value"in s){const i={[n]:s.value.map(ct).join(", ")};return{...o,...i}}const a=se(s,n);return{...o,...a}},{}),pt=({input:r={},output:{dir:e}})=>({name:"shadows/tokenManager",executor:async({tokenManagerClient:o})=>{try{console.log("[shadows/tokenManager] Generating shadows from TokenManager...");const{includeStyles:t=!0}=r;if(!t)throw new Error("includeStyles must be enabled for shadows generation");if(!o.isLoaded())throw new Error("TokenManager is not loaded. Tokens must be loaded before using this module.");const s=[];if(t){const a=o.getStyles();console.log("[shadows/tokenManager] Processing styles for shadows..."),a.effect&&s.push(a.effect)}const n=s.flatMap(a=>Object.entries(se(a,"")).reduce((i,[l,u])=>[...i,{name:l,value:u}],[]));if(n.length===0){console.warn("[shadows/tokenManager] No shadow tokens generated");return}console.log(`[shadows/tokenManager] Generated ${n.length} shadow tokens`),console.log(`[shadows/tokenManager] Writing files to ${e}...`),await ft({shadowTokens:n,dir:e}),console.log("[shadows/tokenManager] ✅ Successfully generated shadow files")}catch(t){const s=t instanceof Error?t.message:String(t);throw console.error("[shadows/tokenManager] ❌ Failed to generate shadows:",s),t instanceof Error&&t.stack&&console.error("[shadows/tokenManager] Stack trace:",t.stack),t}}}),ht="styles.module.css",bt="index.ts",mt="typography.ts",z="sans-serif",G=(r,e)=>{if(!e.length)return"";const o=e.map(t=>` ${t}`).join(`
|
|
61
|
+
`);return`${r} {
|
|
62
|
+
${o}
|
|
63
|
+
}`},ne=(r,e)=>{if(typeof r!="string")return r;const o=e[r]??r;return o.trim().toLowerCase().endsWith(z)?o:`${o}, ${z}`},q=(r,e)=>typeof r.fontFamily!="string"?r:{...r,fontFamily:ne(r.fontFamily,e)},v=(r,e)=>{const o={};return Object.entries(r).forEach(([t,s])=>{const n=t==="fontFamily"?ne(s,e):s,a=t.replace(/([A-Z])/g,"-$1").toLowerCase();o[a]=n}),o},wt=(r,e,o)=>{const t=Object.keys(r.breakpoints),s=v(r.base,o);return t.reduce((n,a,i)=>{const l=v(r.breakpoints[a],o);return i?[...n,{breakpoint:Number(e[a]),css:l}]:[{breakpoint:null,css:{...s,...l}}]},[{breakpoint:null,css:s}])},ae=()=>({base:{},breakpoints:{}}),P=(r,e,o,t)=>{Object.keys(t).length&&(r.breakpoints[e]||(r.breakpoints[e]={}),r.breakpoints[e][o]={...r.breakpoints[e][o],...t})},j=(r,e,o,t)=>{wt(e.value,o,t).forEach(({breakpoint:n,css:a})=>{if(n===null){r.base[e.name]=a;return}P(r,n,e.name,a)})},ie=r=>{const e=J(r.base),o=Object.keys(r.breakpoints).map(Number).sort((t,s)=>s-t).reduce((t,s)=>{const n=r.breakpoints[s];return t+`@media (max-width: ${s}px) { ${J(n)} }`},"");return e+o},kt=(r,e,o)=>{const t=r.reduce((s,n)=>(j(s,n,e,o),s),ae());return ie(t)},J=r=>Object.keys(r).reduce((e,o)=>{const t=r[o],s=Object.keys(t).map(n=>`${n}: ${t[n]}`).join(";");return e+`.typo-${o} { ${s} }`},""),H=r=>{if(typeof r=="number")return Number.isFinite(r)?r:null;const e=Number.parseFloat(r);return Number.isFinite(e)?e:null},Q=r=>{if(typeof r=="number")return r/16;const e=r.trim().toLowerCase();if(e.endsWith("rem"))return H(e);if(e.endsWith("px")){const o=H(e);return o===null?null:o/16}return null},$t=r=>{const{minValueRem:e,maxValueRem:o,minVwRem:t,maxVwRem:s}=r,n=o-e;return`calc(${e}rem + ((100vw - ${t}rem) / (${s}rem - ${t}rem)) * ${n}rem)`},St=(r,e,o,t)=>{const s=["font-size","line-height"],n=Object.entries(e.value.breakpoints).map(([f,h])=>{const m=Number.parseInt(o[f],10);return{breakpointName:f,width:m,typography:h}}).filter(f=>Number.isFinite(f.width)).sort((f,h)=>h.width-f.width);if(n.length<2){j(r,e,o,t);return}const a=n[0],i=n[n.length-1];if(a.width<=i.width){j(r,e,o,t);return}const l=v(e.value.base,t),u=v(a.typography,t),c=v(i.typography,t),y=a.width/16,g=i.width/16;if(y===g){j(r,e,o,t);return}r.base[e.name]={...l,...u};const b=s.reduce((f,h)=>{const m=u[h],T=c[h];if(m===void 0||T===void 0||m===T)return f;const K=Q(m),R=Q(T);return K===null||R===null?f:{...f,[h]:$t({minValueRem:R,maxValueRem:K,minVwRem:g,maxVwRem:y})}},{});P(r,a.width,e.name,b),P(r,i.width,e.name,c)},Tt=(r,e,o,t)=>{if(!t)return kt(r,e,o);const s=r.reduce((n,a)=>(St(n,a,e,o),n),ae());return ie(s)},vt=r=>r.length?`import styles from './styles.module.css';
|
|
64
64
|
import { typography } from './typography';
|
|
65
65
|
|
|
66
66
|
type TypographyKeysType = keyof typeof typography;
|
|
@@ -68,9 +68,9 @@ type TypographyKeysType = keyof typeof typography;
|
|
|
68
68
|
const getTypographyClass = (typographyKey: TypographyKeysType) => styles[\`typo-\${typographyKey}\`];
|
|
69
69
|
|
|
70
70
|
export { typography, getTypographyClass, type TypographyKeysType };
|
|
71
|
-
`:"",
|
|
72
|
-
${
|
|
73
|
-
base: ${JSON.stringify(
|
|
71
|
+
`:"",jt=(r,e)=>r.length?`const typography = {
|
|
72
|
+
${r.map(t=>{const s=q(t.value.base,e),n=Object.entries(t.value.breakpoints).reduce((a,[i,l])=>({...a,[i]:q(l,e)}),{});return` '${t.name}': {
|
|
73
|
+
base: ${JSON.stringify(s,null,8).replace(/\n/g,`
|
|
74
74
|
`)},
|
|
75
75
|
breakpoints: ${JSON.stringify(n,null,8).replace(/\n/g,`
|
|
76
76
|
`)}
|
|
@@ -79,21 +79,11 @@ ${t.map(r=>{const o=J(r.value.base,e),n=Object.entries(r.value.breakpoints).redu
|
|
|
79
79
|
} as const;
|
|
80
80
|
|
|
81
81
|
export { typography };
|
|
82
|
-
`:"",
|
|
82
|
+
`:"",Mt=async({indexTSContent:r,typographyTSContent:e,cssContent:o,dir:t})=>{await d.delete(t);const s=d.write(bt,r,{directory:t}),n=d.write(mt,e,{directory:t}),a=d.write(ht,o,{directory:t});await Promise.all([s,n,a])},Nt=async({typographyTokens:r,dir:e,breakpoints:o,fontFamily:t,fluid:s})=>{const n=Tt(r,o,t,s),a=jt(r,t),i=vt(r);await Mt({indexTSContent:i,typographyTSContent:a,cssContent:n,dir:e})},le=(r,e,o)=>Object.keys(r).reduce((t,s)=>{const n=r[s];if(typeof n!="object"||Array.isArray(n))return t;if(!("type"in n)||!("value"in n))return{...t,[s]:le(n,e,o)};if(n.type!=="typography")return t;const a=n.value,i=Object.entries(a).reduce((l,[u,c])=>{const y=Object.keys(o.breakpoints);if(y.length)y.forEach(g=>{const b=e.resolveVariableValueString(c,g);b&&(b===c?l.base={...l.base,[u]:b}:l.breakpoints[g]={...l.breakpoints[g],[u]:b})});else{const g=e.resolveVariableValueString(c);g&&(l.base={...l.base,[u]:g})}return l},{base:{},breakpoints:{}});return{...t,[s]:{type:"typography",value:i}}},{}),ce=(r,e)=>Object.keys(r).reduce((o,t)=>{const s=e?`${e}-${t}`:t,n=r[t];if(!("type"in n)||!("value"in n))return{...o,...ce(n,s)};const a=n.value;return{...o,[s]:a}},{}),Ft=({input:r,output:{dir:e}})=>({name:"typography/tokenManager",executor:async({tokenManagerClient:o})=>{try{console.log("[typography/tokenManager] Generating typography from TokenManager...");const{breakpoints:t,fontFamily:s}=r,n=r.fluid??!0;if(!o.isLoaded())throw new Error("TokenManager is not loaded. Tokens must be loaded before using this module.");const a=[],i=o.getStyles();console.log("[typography/tokenManager] Processing styles for typography..."),i.text&&a.push(i.text);const l=a.reduce((c,y)=>({...c,...le(y,o,{breakpoints:r.breakpoints})}),{}),u=Object.entries(ce(l)).map(([c,y])=>({name:c,value:y}));if(u.length===0){console.warn("[typography/tokenManager] No typography tokens generated");return}console.log(`[typography/tokenManager] Generated ${u.length} typography tokens`),console.log(`[typography/tokenManager] Writing files to ${e}...`),await Nt({typographyTokens:u,dir:e,breakpoints:t,fontFamily:s||{},fluid:n}),console.log("[typography/tokenManager] ✅ Successfully generated typography files")}catch(t){const s=t instanceof Error?t.message:String(t);throw console.error("[typography/tokenManager] ❌ Failed to generate typography:",s),t instanceof Error&&t.stack&&console.error("[typography/tokenManager] Stack trace:",t.stack),t}}}),Ct=r=>typeof r=="object"&&r!==null&&"type"in r&&"value"in r,Vt=r=>typeof r=="object"&&r!==null&&!Array.isArray(r),ue=r=>r.trim().split(".").map(e=>e.trim()).filter(Boolean),de=(r,e)=>{const o=ue(e);if(!o.length)throw new Error("variablePath must contain at least one segment");const t=Z(r,o);if(t===void 0)throw new Error(`Variables subtree not found at path: ${o.join(".")}`);return t},ye=(r,e,o)=>{if(!r)return[];if(Ct(r)){if(r.type!=="dimension")return[];const t=r.value,s=Object.keys(t).reduce((n,a)=>{const i=t[a],l=o.resolveVariableValueString(i,a);return{...n,[a]:l??i}},{});return[{flatName:e,resolvedByMode:s}]}return Vt(r)?Object.keys(r).flatMap(t=>{const s=r[t],n=e?`${e}-${t}`:t;return ye(s,n,o)}):[]},ge=(r,e)=>ye(r,"",e),fe=(r,e)=>typeof e=="string"?r===e:e.test(r),pe=(r,e)=>e!=null&&e.length?r.filter(o=>e.some(t=>fe(o.flatName,t))):r,he=r=>Object.keys(r).map(e=>({mode:e,widthPx:Number.parseInt(r[e],10)})).filter(e=>Number.isFinite(e.widthPx)).sort((e,o)=>o.widthPx-e.widthPx),E=r=>{const e=ue(r);if(!e.length)throw new Error("variablePath must contain at least one segment");const o=e[e.length-1];return{variablesClassName:`${o}-variables`,variableNamePrefix:o}},be=(r,e)=>{const t=E(r.variablePath).variableNamePrefix,s=e.variablesClassName??`${t}-variables`;return{variableNamePrefix:t,variablesClassName:s}},B=(r,e)=>`${E(r).variableNamePrefix}-${e}`,xt=(r,e)=>`--${B(r,e)}`,Pt=r=>`--${r}`,U=(r,e,o)=>{const t=B(r.variablePath,o);if(!e.parseCssVariableName)return t;const s=e.parseCssVariableName({variablePath:r.variablePath,flatName:o,defaultName:t});return s.trim()?s:t},Ot=(r,e)=>Object.keys(e).reduce((o,t)=>{const s=Number(t);return{...o,[s]:{...o[s],...e[s]}}},{...r}),me=(r,e,o)=>{const{breakpoints:t}=e,s=U(e,o,r.flatName),n=Pt(s),a=he(t);if(Object.keys(t).length===0||a.length===0){const c=Object.values(r.resolvedByMode)[0]??"";return{base:{[n]:c},byBreakpoint:{}}}const i=a.filter(c=>c.mode in r.resolvedByMode);if(i.length===0){const c=Object.values(r.resolvedByMode)[0]??"";return{base:{[n]:c},byBreakpoint:{}}}if(i.length===1){const c=i[0],y=r.resolvedByMode[c.mode]??"";return{base:{[n]:y},byBreakpoint:{}}}const l=r.resolvedByMode[i[0].mode]??"",u=i.slice(1).reduce((c,y,g)=>{const b=i[g].mode,f=r.resolvedByMode[b],h=r.resolvedByMode[y.mode];if(h===void 0||h===f)return c;const m=y.widthPx,T=c[m]??{};return{...c,[m]:{...T,[n]:h}}},{});return{base:{[n]:l},byBreakpoint:u}},Et=(r,e,o)=>r.reduce((t,s)=>{const{base:n,byBreakpoint:a}=me(s,e,o);return{base:{...t.base,...n},breakpoints:Ot(t.breakpoints,a)}},{base:{},breakpoints:{}}),we=(r,e,o)=>{if(!r.length)return"";const{variablesClassName:t}=be(e,o),s=Et(r,e,o),n=Object.keys(s.base).map(l=>` ${l}: ${s.base[l]};`),a=G(`.${t}`,n),i=Object.keys(s.breakpoints).map(Number).sort((l,u)=>u-l).map(l=>{const u=s.breakpoints[l],c=Object.keys(u).map(g=>` ${g}: ${u[g]};`),y=G(`.${t}`,c);return`@media (max-width: ${l}px) {
|
|
83
83
|
${y}
|
|
84
84
|
}`}).filter(Boolean).join(`
|
|
85
85
|
|
|
86
86
|
`);return i?`${a}
|
|
87
87
|
|
|
88
|
-
${i}`:a},
|
|
89
|
-
|
|
90
|
-
`)}`}).join(`,
|
|
91
|
-
`)}
|
|
92
|
-
} as const;
|
|
93
|
-
|
|
94
|
-
export { utilities };
|
|
95
|
-
`:`const utilities = {} as const;
|
|
96
|
-
|
|
97
|
-
export { utilities };
|
|
98
|
-
`},Ut=(t,e,s)=>t.reduce((r,o)=>({...r,[o.flatName]:U(e,s,o.flatName)}),{}),Se=(t,e,s)=>{const r=Ut(t,e,s);return["import { utilities } from './utilities';","","type UtilitiesKeysType = keyof typeof utilities;","",`const utilityVariableNameByKey = ${JSON.stringify(r,null,4)} as const;`,"","const getUtilityCssVariableName = (key: UtilitiesKeysType): string =>"," `--${utilityVariableNameByKey[key]}`;","","const getUtilityCssVar = (key: UtilitiesKeysType): string =>"," `var(${getUtilityCssVariableName(key)})`;","","export {"," utilities,"," getUtilityCssVariableName,"," getUtilityCssVar,"," type UtilitiesKeysType,","};",""].join(`
|
|
99
|
-
`)},At="styles.css",Dt="utilities.ts",Kt="index.ts",Te=async({dir:t,globalCss:e,utilitiesTs:s,indexTs:r})=>{await d.delete(t),await Promise.all([d.write(At,e,{directory:t}),d.write(Dt,s,{directory:t}),d.write(Kt,r,{directory:t})])},ve=async({tokens:t,input:e,output:s})=>{const{dir:r}=s,o=ke(t,e,s),n=$e(t,e),a=Se(t,e,s);await Te({dir:r,globalCss:o,utilitiesTs:n,indexTs:a})},Lt=({input:t,output:e})=>({name:"utilities/tokenManager",executor:async({tokenManagerClient:s})=>{var r;try{if(console.log("[utilities/tokenManager] Generating utility classes from TokenManager..."),!s.isLoaded())throw new Error("TokenManager is not loaded. Tokens must be loaded before using this module.");const o=s.getVariables(),n=ye(o,t.variablePath),a=fe(n,s),i=he(a,t.include);if(!i.length){a.length&&((r=t.include)!=null&&r.length)?console.warn(`[utilities/tokenManager] No tokens left after include filter (${a.length} at path "${t.variablePath}")`):console.warn(`[utilities/tokenManager] No dimension tokens found at path "${t.variablePath}"`);return}console.log(`[utilities/tokenManager] Resolved ${i.length} utility token(s)`),console.log(`[utilities/tokenManager] Writing files to ${e.dir}...`),await ve({tokens:i,input:t,output:e}),console.log("[utilities/tokenManager] ✅ Successfully generated utility files")}catch(o){const n=o instanceof Error?o.message:String(o);throw console.error("[utilities/tokenManager] ❌ Failed to generate utilities:",n),o instanceof Error&&o.stack&&console.error("[utilities/tokenManager] Stack trace:",o.stack),o}}});exports.BREAKPOINTS_NAMES=ee;exports.TokenManager=_;exports.breakpointsFromTokenManager=Le;exports.buildUtilitiesDataTSContent=$e;exports.buildUtilitiesGlobalStylesCSS=ke;exports.buildUtilitiesIndexTSContent=Se;exports.colorsFromTokenManager=et;exports.containerFromTokenManager=it;exports.deriveUtilityNamingFromVariablePath=B;exports.filterResolvedUtilitiesByInclude=he;exports.generate=Ve;exports.generateUtilitiesFiles=ve;exports.getSortedBreakpointModes=E;exports.getUtilityCssVariableName=Pt;exports.getUtilityCssVariableNameWithoutDashes=R;exports.getVariablesSubtree=ye;exports.init=xe;exports.resolveUtilitiesSubtree=fe;exports.resolveUtilityCssVariableNameWithoutDashes=U;exports.resolveUtilityNaming=be;exports.shadowsFromTokenManager=bt;exports.splitUtilityTokenForMedia=me;exports.typographyFromTokenManager=Vt;exports.utilitiesFromTokenManager=Lt;exports.utilityFlatNameMatchesIncludePattern=pe;exports.utilityTokenToSerializableData=we;exports.writeUtilitiesFiles=Te;
|
|
88
|
+
${i}`:a},Bt=r=>{const e=r.split("-").map(o=>o.trim()).filter(Boolean);return e[e.length-1]??r},Ut=(r,e,o)=>{const t=Bt(o);if(!e.parseUtilityKey)return t;const s=e.parseUtilityKey({variablePath:r.variablePath,flatName:o,defaultKey:t});return s.trim()?s:t},Kt=(r,e,o)=>r.reduce((t,s)=>{const n=Ut(e,o,s.flatName),a=t[n];if(a&&a!==s.flatName)throw new Error(`Utility key collision: "${n}" is generated for both "${a}" and "${s.flatName}"`);return{...t,[n]:s.flatName}},{}),ke=(r,e,o)=>{var l;const t=Kt(r,e,o),s=Object.keys(t).reduce((u,c)=>{const y=t[c];return{...u,[c]:U(e,o,y)}},{}),n=JSON.stringify(s,null,4),i=((l=o.getUtilityCssVarFunctionName)==null?void 0:l.trim())||"getUtilityCssVar";return[`const utilityVariableNameByKey = ${n} as const;`,"","type UtilitiesKeysType = keyof typeof utilityVariableNameByKey;","","const getUtilityCssVariableName = (key: UtilitiesKeysType): string =>"," `--${utilityVariableNameByKey[key]}`;","",`const ${i} = (key: UtilitiesKeysType): string =>`," `var(${getUtilityCssVariableName(key)})`;","","export {"," getUtilityCssVariableName,",` ${i},`," type UtilitiesKeysType,","};",""].join(`
|
|
89
|
+
`)},Rt="styles.css",At="index.ts",$e=async({dir:r,globalCss:e,indexTs:o})=>{await d.delete(r),await Promise.all([d.write(Rt,e,{directory:r}),d.write(At,o,{directory:r})])},Se=async({tokens:r,input:e,output:o})=>{const{dir:t}=o,s=we(r,e,o),n=ke(r,e,o);await $e({dir:t,globalCss:s,indexTs:n})},Dt=({input:r,output:e})=>({name:"utilities/tokenManager",executor:async({tokenManagerClient:o})=>{var t;try{if(console.log("[utilities/tokenManager] Generating utility classes from TokenManager..."),!o.isLoaded())throw new Error("TokenManager is not loaded. Tokens must be loaded before using this module.");const s=o.getVariables(),n=de(s,r.variablePath),a=ge(n,o),i=pe(a,r.include);if(!i.length){a.length&&((t=r.include)!=null&&t.length)?console.warn(`[utilities/tokenManager] No tokens left after include filter (${a.length} at path "${r.variablePath}")`):console.warn(`[utilities/tokenManager] No dimension tokens found at path "${r.variablePath}"`);return}console.log(`[utilities/tokenManager] Resolved ${i.length} utility token(s)`),console.log(`[utilities/tokenManager] Writing files to ${e.dir}...`),await Se({tokens:i,input:r,output:e}),console.log("[utilities/tokenManager] ✅ Successfully generated utility files")}catch(s){const n=s instanceof Error?s.message:String(s);throw console.error("[utilities/tokenManager] ❌ Failed to generate utilities:",n),s instanceof Error&&s.stack&&console.error("[utilities/tokenManager] Stack trace:",s.stack),s}}});exports.BREAKPOINTS_NAMES=_;exports.TokenManager=Y;exports.breakpointsFromTokenManager=Ae;exports.buildUtilitiesGlobalStylesCSS=we;exports.buildUtilitiesIndexTSContent=ke;exports.colorsFromTokenManager=Ye;exports.containerFromTokenManager=nt;exports.deriveUtilityNamingFromVariablePath=E;exports.filterResolvedUtilitiesByInclude=pe;exports.generate=Fe;exports.generateUtilitiesFiles=Se;exports.getSortedBreakpointModes=he;exports.getUtilityCssVariableName=xt;exports.getUtilityCssVariableNameWithoutDashes=B;exports.getVariablesSubtree=de;exports.init=Ce;exports.resolveUtilitiesSubtree=ge;exports.resolveUtilityCssVariableNameWithoutDashes=U;exports.resolveUtilityNaming=be;exports.shadowsFromTokenManager=pt;exports.splitUtilityTokenForMedia=me;exports.typographyFromTokenManager=Ft;exports.utilitiesFromTokenManager=Dt;exports.utilityFlatNameMatchesIncludePattern=fe;exports.writeUtilitiesFiles=$e;
|