@apollion-dsi/tokens 7.9.0 → 7.11.0
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/README.md +4 -0
- package/lib/build.cjs +12 -11
- package/lib/build.esm.js +12 -11
- package/lib/cli.mjs +15 -14
- package/lib/config-loader.cjs +1 -1
- package/lib/config-loader.esm.js +2 -2
- package/package.json +1 -1
- package/src/build.ts +64 -35
- package/src/config-schema-runtime.ts +1 -0
- package/src/config-schema.ts +6 -0
- package/src/renderers/tokens-studio.ts +264 -0
package/README.md
CHANGED
|
@@ -70,6 +70,10 @@ The build emits, per variant (light/dark):
|
|
|
70
70
|
a Tailwind preset mapping foundation tokens over `var(--apollion-*)`, plus a
|
|
71
71
|
matching tailwind-merge extension. Its `screens` scale carries **literal px**
|
|
72
72
|
(custom properties are invalid inside a `@media` prelude).
|
|
73
|
+
- **`dist/tokens-studio/`** — opt-in (`output.tokensStudio`): the token sets
|
|
74
|
+
in the Tokens Studio for Figma format plus `$themes.json` (one theme group
|
|
75
|
+
per axis: base, dimension, textSize, color) and `$metadata.json`. Point
|
|
76
|
+
the plugin's folder sync at it.
|
|
73
77
|
|
|
74
78
|
## Breakpoint tokens
|
|
75
79
|
|
package/lib/build.cjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
"use strict";var oe=Object.defineProperty;var oo=Object.getOwnPropertyDescriptor;var to=Object.getOwnPropertyNames;var ro=Object.prototype.hasOwnProperty;var i=(e,n)=>oe(e,"name",{value:n,configurable:!0});var io=(e,n)=>{for(var o in n)oe(e,o,{get:n[o],enumerable:!0})},so=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of to(n))!ro.call(e,r)&&r!==o&&oe(e,r,{get:()=>n[r],enumerable:!(t=oo(n,r))||t.enumerable});return e};var ao=e=>so(oe({},"__esModule",{value:!0}),e);var ot={};io(ot,{build:()=>Qo,check:()=>et});module.exports=ao(ot);var x=require("node:fs/promises"),no=require("node:os"),A=require("node:path");var le=require("@apollion-dsi/core/themes/text-size");var ce=require("culori");var K=require("@apollion-dsi/core/themes/border"),Ke=require("@apollion-dsi/core/themes/colors"),se=require("@apollion-dsi/core/themes/depth"),C=require("@apollion-dsi/core/themes/font"),Ie=require("@apollion-dsi/core/themes/spacing"),We=require("@apollion-dsi/core/themes/text-size"),_=require("culori");var Oe=require("@apollion-dsi/core/themes/breakpoints");function Ge(e=Oe.defaultInputBreakpoints){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ge,"breakpointEntries");var N=require("@apollion-dsi/core/themes/layout");function je(e=N.defaultInputContainerSizes){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(je,"containerSizeEntries");function Fe(e=N.defaultInputLayout){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(Fe,"layoutEntries");function ze(e=N.defaultInputZIndex){return Object.entries(e)}i(ze,"zIndexEntries");var $=require("@apollion-dsi/core/themes/motion");function Ne(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.duration).map(o=>[o,{ms:e.duration[o],css:n.duration[o]}])}i(Ne,"motionDurationEntries");function Pe(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.easing).map(o=>[o,{points:e.easing[o],css:n.easing[o]}])}i(Pe,"motionEasingEntries");function _e(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.indicator).map(o=>[o,{ms:e.indicator[o],css:n.indicator[o]}])}i(_e,"motionIndicatorEntries");function Be(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.intent).map(o=>{let t=e.intent[o],r=typeof t.duration=="number"?null:t.duration,s=typeof t.duration=="number"?t.duration:e.duration[t.duration];return[o,{durationRef:r,duration:{ms:s,css:n.intent[o].duration},easingRef:t.easing,easing:{points:e.easing[t.easing],css:n.intent[o].easing}}]})}i(Be,"motionIntentEntries");var He=require("@apollion-dsi/core/themes/dimension");function te({multiplier:e=.25,alias:n},o){let t=o!==void 0?He.DIMENSION_MULTIPLIERS[o]:e;return(...r)=>r.map(s=>{let a=typeof s=="string"?n[s]:s;return`${t*a}rem`}).join(" ")}i(te,"createSpacing");var be={"bg.primary":{description:"Primary action surface \u2014 the brand\u2019s dominant call-to-action background."},"bg.secondary":{description:"Secondary action surface \u2014 supporting actions paired with the primary."},"bg.danger":{description:"Destructive / error surface \u2014 irreversible or failing actions."},"bg.success":{description:"Positive confirmation surface \u2014 completed or healthy states."},"bg.info":{description:"Informational surface \u2014 neutral, non-blocking notices.",deprecated:"Use bg.information once the foundation role is renamed (tracked for S6)."},"bg.canvas":{description:"Page ground \u2014 the theme canvas (never pure black in dark)."},"bg.paper":{description:"Component ground (cards, inputs, tables) \u2014 lighter than the canvas in both modes; the dark step is widened for near-black grounds so cards stay separated on LCD/SDR panels (ADR-026)."},"bg.overlay":{description:"Top of the elevation ladder \u2014 modal / dialog panels."},"text.primary":{description:"Primary neutral ink \u2014 AA + APCA Lc \u2265 75 over bg.paper and bg.canvas."},"text.muted":{description:"Muted neutral ink \u2014 AA + APCA Lc \u2265 45 over bg.paper."},"edge.border":{description:"Default control outline \u2014 primary ink at 20 % alpha, legible on any ground."},"edge.hairline":{description:"Dividers and card outlines \u2014 primary ink at 10 % alpha."},"text.on-primary":{description:"Text/icon colour with guaranteed contrast over bg.primary."},"text.on-danger":{description:"Text/icon colour with guaranteed contrast over bg.danger."},"space.medium":{description:"Base spacing step (1rem at normal density) \u2014 the layout rhythm unit."},"space.large":{description:"Comfortable spacing step \u2014 section padding and card gutters."},"spacing.md":{description:"Medium foundation spacing alias \u2014 references the space.medium primitive."},"spacing.lg":{description:"Large foundation spacing alias \u2014 references the space.large primitive."},"border.radius.md":{description:"Default card corner radius."},"border.width.thin":{description:"Hairline border \u2014 dividers and default input outlines."},"border.width.regular":{description:"Standard emphasis border \u2014 focused/active controls."}};function Re(e){let n=Object.keys(be).filter(o=>!e.has(o));if(n.length>0)throw new Error(`token-meta: ${n.length} stale TOKEN_META key(s) resolve to no IR node: ${n.join(", ")}. Update src/token-meta.ts to match the current IR paths.`)}i(Re,"assertTokenMetaResolves");var co=(0,_.converter)("oklch");function R(e){return typeof e.type=="string"&&"value"in e}i(R,"isToken");function T(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}i(T,"kebab");function Je(e){return e.split(".").map(T).join(".")}i(Je,"kebabPath");function M(e){return e.kind==="ref"?e.resolved.raw:e.raw}i(M,"rawValue");function re(e,n){return Number(e.toFixed(n))||0}i(re,"round");function ke(e){let n=co((0,_.parse)(e));if(!n)return{kind:"color",raw:e,components:[0,0,0],hex:"#000000"};let o=[re(n.l,4),re(n.c,4),re(n.h??0,2)],t=(0,_.formatHex)(n)??"#000000";return n.alpha!==void 0&&n.alpha!==1?{kind:"color",raw:e,components:o,alpha:re(n.alpha,4),hex:t}:{kind:"color",raw:e,components:o,hex:t}}i(ke,"toColorValue");var Ue=/^(-?(?:\d+\.?\d*|\.\d+))(px|rem)$/;function E(e){let n=Ue.exec(e.trim());if(n)return{kind:"dimension",raw:e,value:Number(n[1]),unit:n[2]};let o=Number.parseFloat(e);return{kind:"dimension",raw:e,value:Number.isFinite(o)?o:0,unit:"rem"}}i(E,"toDimensionValue");function S(e){return{type:"color",value:ke(e)}}i(S,"colorToken");function F(e){let n={};for(let[o,t]of Object.entries(e))n[o]=S(t);return n}i(F,"recordColorGroup");function Xe(e){let n=(0,Ke.createReadableTextLayer)(e),o={};for(let[t,r]of Object.entries(n.palettes))o[t]=S(r);return o.neutral=F(n.neutral),o}i(Xe,"buildReadableTextGroup");var uo=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function Ze(e){let n={};for(let o of uo){let t=e[o];n[o]={base:S(t.base),dark:S(t.dark),action:S(t.action),active:S(t.active),light:S(t.light),onLight:S(t.onLight)}}return n.grayscale=F(e.grayscale),n.neutral=F(e.neutral),n.surface=F(e.surface),n.ink=F(e.ink),n.edge=F(e.edge),n.wash=F(e.wash),n.baseDark=S(e.baseDark??"#000000"),n.baseLight=S(e.baseLight??"#ffffff"),n.deepDark=S(e.deepDark??"#000000"),n.deepLight=S(e.deepLight??"#ffffff"),n}i(Ze,"buildColorPrimitives");function qe(e){let n=te(Ie.defaultInputSpacing,e),o={};for(let t of Object.keys(Ie.defaultInputSpacing.alias))o[t]={type:"dimension",value:E(n(t))};return o}i(qe,"buildSpacePrimitives");function Ye(){let e={};for(let[n,o]of Object.entries(K.defaultInputBorder.borderWidth))e[n]={type:"dimension",value:E(o)};return e}i(Ye,"buildBorderWidthPrimitives");function lo(e,n){return{color:Ze(e),space:qe(n),borderWidth:Ye()}}i(lo,"buildPrimitives");var Qe={primary:"color.primary.base",secondary:"color.secondary.base",tertiary:"color.tertiary.base",success:"color.success.base",danger:"color.danger.base",warning:"color.warning.base",info:"color.information.base",canvas:"color.surface.canvas",sunken:"color.surface.sunken",paper:"color.surface.paper",raised:"color.surface.raised",overlay:"color.surface.overlay"},en={onPrimary:"color.baseLight",onSecondary:"color.baseLight",onTertiary:"color.baseDark",onSuccess:"color.baseLight",onDanger:"color.baseLight",onWarning:"color.baseDark",onInfo:"color.baseLight",primary:"color.ink.primary",secondary:"color.ink.secondary",muted:"color.ink.muted",disabled:"color.ink.disabled"},nn={hairline:"color.edge.hairline",border:"color.edge.border",strong:"color.edge.strong"};function po(e,n){let o=e;for(let t of n.split(".").slice(1))if(o&&typeof o=="object"&&t in o)o=o[t];else return;return typeof o=="string"?o:void 0}i(po,"lookupPrimitive");function P(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?po(n,a):void 0;t[r]=a&&c===s?{type:"color",value:{kind:"ref",path:a,resolved:ke(s)}}:S(s)}return t}i(P,"colorRefGroup");var on={xs:"space.xs",sm:"space.small",md:"space.medium",lg:"space.large",xl:"space.xl",xxl:"space.xxl"},fo={none:"border-width.none",thin:"border-width.thin",regular:"border-width.regular",great:"border-width.great",bold:"border-width.bold"};function mo(e,n){let o=n.split("."),t=o[0]==="border-width"?"borderWidth":o[0],r=e[t];for(let s of o.slice(1))if(r&&!R(r)&&s in r)r=r[s];else return;return r&&R(r)&&r.value.kind==="dimension"?r.value.raw:void 0}i(mo,"lookupDimensionPrimitive");function xe(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?mo(n,a):void 0;t[r]=a&&c===s?{type:"dimension",value:{kind:"ref",path:a,resolved:E(s)}}:{type:"dimension",value:E(s)}}return t}i(xe,"dimensionRefGroup");function tn(e){let n={},o={};for(let[s,a]of Object.entries(K.defaultInputBorder.borderRadius))Ue.test(a)?n[s]={type:"dimension",value:E(a)}:o[s]=a;let t=xe(K.defaultInputBorder.borderWidth,e,fo),r={};for(let[s,a]of Object.entries(K.defaultInputBorder.borderStyle))r[s]={type:"strokeStyle",value:{kind:"strokeStyle",raw:a,style:a}};return{group:{radius:n,width:t,style:r},extensions:o}}i(tn,"buildBorder");function rn(e){let n=(0,C.createFont)(C.defaultInputFont,{textSize:e}),o={};for(let[c,u]of Object.entries(C.defaultInputFont.fontFamily)){let m=u.replace(/;\s*$/,"").trim();o[c]={type:"fontFamily",value:{kind:"fontFamily",raw:m,family:m}}}let t={};for(let[c,u]of Object.entries(n.fontSize))t[c]={type:"dimension",value:E(u)};let r={};for(let[c,u]of Object.entries(C.defaultInputFont.fontWeight))r[c]={type:"fontWeight",value:{kind:"fontWeight",raw:`${u}`,weight:u}};let s={};for(let[c,u]of Object.entries(C.defaultInputFont.lineHeight))s[c]={type:"number",value:{kind:"number",raw:`${u}`,number:u}};let a={letterSpacing:C.defaultInputFont.letterSpacing,textTransform:C.defaultInputFont.textTransform,fontStyle:C.defaultInputFont.fontStyle};return{group:{family:o,size:t,weight:r,lineHeight:s},extensions:a}}i(rn,"buildFont");var go=/rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z]+$/;function yo(e){let n=e.trim(),o=n.startsWith("inset");o&&(n=n.slice(5).trim());let t=n.match(go),r=t?t[0]:"#000000",a=(t?n.slice(0,t.index).trim():n).split(/\s+/).filter(Boolean),c=i(u=>E(a[u]??"0px"),"dim");return{kind:"shadow",raw:e,shadow:{color:ke(r),offsetX:c(0),offsetY:c(1),blur:c(2),spread:c(3),inset:o}}}i(yo,"parseShadow");function sn(e){let n=(0,se.createDeth)(e),o={};for(let t of Object.keys(se.levelValues))o[t]={type:"shadow",value:yo(n(t))};return o}i(sn,"buildShadow");function ie(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=n?`${n}.${T(r)}`:T(r);if(R(s)){o.add(a);let c=be[a];t[r]=c&&(c.description!==void 0||c.deprecated!==void 0)?{...s,...c.description!==void 0?{description:c.description}:{},...c.deprecated!==void 0?{deprecated:c.deprecated}:{}}:s}else t[r]=ie(s,a,o)}return t}i(ie,"decorateGroup");function ho(e){let n=new Set,o=ie(e.primitives,"",n),t=ie(e.groups,"",n);return Re(n),{...e,primitives:o,groups:t}}i(ho,"decorateMeta");function ae(e,n){return ie(e,"",n)}i(ae,"decorateSlice");function an(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${T(t)}`:T(t);R(r)?o.add(s):an(r,s,o)}}i(an,"collectPaths");function cn(e){let n=new Set;for(let o of e)an(o.groups,"",n);Re(n)}i(cn,"assertSlicesMetaComplete");function un(){let e={};for(let[n,o]of Ge())e[n]={type:"dimension",value:E(o)};return e}i(un,"buildBreakpoints");function ln(){let e={};for(let[n,o]of je())e[n]={type:"dimension",value:E(o)};return e}i(ln,"buildContainerSizes");function dn(){let e={};for(let[n,o]of Fe())e[n]={type:"dimension",value:E(o)};return e}i(dn,"buildLayoutConstants");function pn(){let e={};for(let[n,o]of ze())e[n]={type:"number",value:{kind:"number",raw:`${o}`,number:o}};return e}i(pn,"buildZIndex");function fn(){let e=i(a=>({type:"duration",value:{kind:"duration",raw:a.css,value:a.ms,unit:"ms"}}),"durationToken"),n=i(a=>({type:"cubicBezier",value:{kind:"cubicBezier",raw:a.css,points:a.points}}),"easingToken"),o={};for(let[a,c]of Ne())o[a]=e(c);let t={};for(let[a,c]of Pe())t[a]=n(c);let r={};for(let[a,c]of _e())r[a]=e(c);let s={};for(let[a,c]of Be()){let u=e(c.duration).value;s[a]={duration:c.durationRef?{type:"duration",value:{kind:"ref",path:`motion.duration.${c.durationRef}`,resolved:u}}:e(c.duration),easing:{type:"cubicBezier",value:{kind:"ref",path:`motion.easing.${c.easingRef}`,resolved:n(c.easing).value}}}}return{duration:o,easing:t,indicator:r,intent:s}}i(fn,"buildMotion");var mn={unit:"px",interval:"half-open [value, next) \u2014 min-width sets, ascending",cssVarsUsage:"informational only \u2014 var() is invalid inside a @media prelude"};function gn(){let e=Ye(),o=tn({borderWidth:e}),t={"com.apollion.breakpoint":mn};Object.keys(o.extensions).length>0&&(t["com.apollion.border"]={radius:o.extensions});let r=new Set;return{groups:ae({"border-width":e,border:o.group,breakpoint:un(),"container-size":ln(),layout:dn(),"z-index":pn(),motion:fn()},r),extensions:t}}i(gn,"buildBaseIR");function Se(e){let n=rn(e),o=new Set;return{groups:ae({font:n.group},o),extensions:{"com.apollion.font":n.extensions}}}i(Se,"buildFontIR");function yn(e,n){let o=Ze(n),t=new Set;return{groups:ae({color:o,bg:P(e.bg,n,Qe),text:P(e.text,n,en),edge:P(e.edge,n,nn),tx:Xe(n),shadow:sn(n)},t),extensions:{}}}i(yn,"buildColorIR");function hn(e,n){let o=qe(n),t={space:o},r=new Set;return{groups:ae({space:o,spacing:xe(e.spacing,t,on)},r),extensions:{}}}i(hn,"buildSpacingIR");function bo(e,n,o){let t={brand:o.brand,mode:o.mode,surface:o.surface,dimension:o.dimension},r=lo(n,o.dimension),s=tn(r),a=rn(We.DEFAULT_TEXT_SIZE),c={"com.apollion.variant":t,"com.apollion.font":a.extensions,"com.apollion.breakpoint":mn};Object.keys(s.extensions).length>0&&(c["com.apollion.border"]={radius:s.extensions});let u={description:`Apollion DS tokens \u2014 DTCG 2025.10. Variant: ${t.brand}/${t.mode}/${t.surface}/${t.dimension}.`,meta:t,primitives:r,groups:{bg:P(e.bg,n,Qe),text:P(e.text,n,en),edge:P(e.edge,n,nn),tx:Xe(n),spacing:xe(e.spacing,r,on),border:s.group,breakpoint:un(),"container-size":ln(),layout:dn(),"z-index":pn(),motion:fn(),font:a.group,shadow:sn(n)},extensions:c};return ho(u)}i(bo,"buildIR");var B=bo;var Ro=(0,ce.converter)("rgb"),bn="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function Te(e){if(e.value.kind==="color")return e.value;if(e.value.kind==="ref"&&e.value.resolved.kind==="color")return e.value.resolved}i(Te,"colorPayload");function ve(e){return e.alpha===void 0}i(ve,"isOpaqueColor");function Rn(e){let n=Ro((0,ce.parse)(e.hex));if(!n)return"0 0 0";let o=i(t=>Math.min(255,Math.max(0,Math.round(t*255))),"channel");return`${o(n.r)} ${o(n.g)} ${o(n.b)}`}i(Rn,"rgbTriplet");function W(e,n=[]){let o=new Map;for(let[t,r]of Object.entries(e)){let s=[...n,T(t)];if(R(r))o.set(s.join("-"),r);else for(let[a,c]of W(r,s))o.set(a,c)}return o}i(W,"flatTokens");function h(e,...n){let o=e[n[0]];for(let t of n.slice(1)){if(!o||R(o))return{};o=o[t]}return o&&!R(o)?o:{}}i(h,"groupAt");function In(e){let n=[];for(let o of["bg","text","edge","tx"])for(let[t,r]of W(h(e.groups,o),[o])){let s=Te(r);s&&n.push({key:t,cssVar:`--apollion-${t}`,opaque:ve(s)})}return n}i(In,"colorEntries");function V(e,n){return[...W(e)].map(([o])=>[o,`var(--apollion-${[...n,o].join("-")})`])}i(V,"varEntries");function D(e,n,o){if(o.length!==0){e.push(` ${n}: {`);for(let[t,r]of o)e.push(` ${JSON.stringify(t)}: ${JSON.stringify(r)},`);e.push(" },")}}i(D,"pushScale");function kn(e){let n=[bn,"// Tailwind preset over the Apollion foundation tokens \u2014 requires dist/css/ vars in scope.","","const preset = {"," theme: {"," extend: {"],o=In(e);n.push(" colors: {");for(let{key:t,cssVar:r,opaque:s}of o)s?n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`rgb(var(${r}-rgb) / <alpha-value>)`)},`):(n.push(` // ${t} carries its own alpha \u2014 excluded from the <alpha-value> modifier form.`),n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`var(${r})`)},`));return n.push(" },"),D(n,"screens",[...W(h(e.groups,"breakpoint"))].filter(([t])=>t!=="xs").map(([t,r])=>[t,M(r.value)])),D(n,"spacing",V(h(e.groups,"spacing"),["spacing"])),D(n,"borderRadius",V(h(e.groups,"border","radius"),["border","radius"])),D(n,"borderWidth",V(h(e.groups,"border","width"),["border","width"])),D(n,"fontFamily",V(h(e.groups,"font","family"),["font","family"])),D(n,"fontSize",V(h(e.groups,"font","size"),["font","size"])),D(n,"fontWeight",V(h(e.groups,"font","weight"),["font","weight"])),D(n,"lineHeight",V(h(e.groups,"font","lineHeight"),["font","line-height"])),D(n,"boxShadow",V(h(e.groups,"shadow"),["shadow"])),D(n,"transitionDuration",V(h(e.groups,"motion","duration"),["motion","duration"])),D(n,"transitionTimingFunction",V(h(e.groups,"motion","easing"),["motion","easing"])),n.push(" },"," },","};","","export default preset;",""),n.join(`
|
|
2
|
-
`)}i(
|
|
3
|
-
`)}i(
|
|
4
|
-
`)}i(
|
|
5
|
-
`)}i(
|
|
1
|
+
"use strict";var re=Object.defineProperty;var go=Object.getOwnPropertyDescriptor;var yo=Object.getOwnPropertyNames;var ho=Object.prototype.hasOwnProperty;var i=(e,n)=>re(e,"name",{value:n,configurable:!0});var bo=(e,n)=>{for(var o in n)re(e,o,{get:n[o],enumerable:!0})},Ro=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of yo(n))!ho.call(e,r)&&r!==o&&re(e,r,{get:()=>n[r],enumerable:!(t=go(n,r))||t.enumerable});return e};var ko=e=>Ro(re({},"__esModule",{value:!0}),e);var xt={};bo(xt,{build:()=>Rt,check:()=>kt});module.exports=ko(xt);var I=require("node:fs/promises"),mo=require("node:os"),A=require("node:path");var fe=require("@apollion-dsi/core/themes/text-size");var le=require("culori");var H=require("@apollion-dsi/core/themes/border"),Ye=require("@apollion-dsi/core/themes/colors"),ce=require("@apollion-dsi/core/themes/depth"),C=require("@apollion-dsi/core/themes/font"),we=require("@apollion-dsi/core/themes/spacing"),Qe=require("@apollion-dsi/core/themes/text-size"),N=require("culori");var _e=require("@apollion-dsi/core/themes/breakpoints");function Be(e=_e.defaultInputBreakpoints){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Be,"breakpointEntries");var F=require("@apollion-dsi/core/themes/layout");function He(e=F.defaultInputContainerSizes){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(He,"containerSizeEntries");function Ke(e=F.defaultInputLayout){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(Ke,"layoutEntries");function We(e=F.defaultInputZIndex){return Object.entries(e)}i(We,"zIndexEntries");var v=require("@apollion-dsi/core/themes/motion");function Ue(e=v.defaultInputMotion){let n=(0,v.createMotion)(e);return Object.keys(e.duration).map(o=>[o,{ms:e.duration[o],css:n.duration[o]}])}i(Ue,"motionDurationEntries");function Je(e=v.defaultInputMotion){let n=(0,v.createMotion)(e);return Object.keys(e.easing).map(o=>[o,{points:e.easing[o],css:n.easing[o]}])}i(Je,"motionEasingEntries");function Xe(e=v.defaultInputMotion){let n=(0,v.createMotion)(e);return Object.keys(e.indicator).map(o=>[o,{ms:e.indicator[o],css:n.indicator[o]}])}i(Xe,"motionIndicatorEntries");function Ze(e=v.defaultInputMotion){let n=(0,v.createMotion)(e);return Object.keys(e.intent).map(o=>{let t=e.intent[o],r=typeof t.duration=="number"?null:t.duration,s=typeof t.duration=="number"?t.duration:e.duration[t.duration];return[o,{durationRef:r,duration:{ms:s,css:n.intent[o].duration},easingRef:t.easing,easing:{points:e.easing[t.easing],css:n.intent[o].easing}}]})}i(Ze,"motionIntentEntries");var qe=require("@apollion-dsi/core/themes/dimension");function ie({multiplier:e=.25,alias:n},o){let t=o!==void 0?qe.DIMENSION_MULTIPLIERS[o]:e;return(...r)=>r.map(s=>{let a=typeof s=="string"?n[s]:s;return`${t*a}rem`}).join(" ")}i(ie,"createSpacing");var xe={"bg.primary":{description:"Primary action surface \u2014 the brand\u2019s dominant call-to-action background."},"bg.secondary":{description:"Secondary action surface \u2014 supporting actions paired with the primary."},"bg.danger":{description:"Destructive / error surface \u2014 irreversible or failing actions."},"bg.success":{description:"Positive confirmation surface \u2014 completed or healthy states."},"bg.info":{description:"Informational surface \u2014 neutral, non-blocking notices.",deprecated:"Use bg.information once the foundation role is renamed (tracked for S6)."},"bg.canvas":{description:"Page ground \u2014 the theme canvas (never pure black in dark)."},"bg.paper":{description:"Component ground (cards, inputs, tables) \u2014 lighter than the canvas in both modes; the dark step is widened for near-black grounds so cards stay separated on LCD/SDR panels (ADR-026)."},"bg.overlay":{description:"Top of the elevation ladder \u2014 modal / dialog panels."},"text.primary":{description:"Primary neutral ink \u2014 AA + APCA Lc \u2265 75 over bg.paper and bg.canvas."},"text.muted":{description:"Muted neutral ink \u2014 AA + APCA Lc \u2265 45 over bg.paper."},"edge.border":{description:"Default control outline \u2014 primary ink at 20 % alpha, legible on any ground."},"edge.hairline":{description:"Dividers and card outlines \u2014 primary ink at 10 % alpha."},"text.on-primary":{description:"Text/icon colour with guaranteed contrast over bg.primary."},"text.on-danger":{description:"Text/icon colour with guaranteed contrast over bg.danger."},"space.medium":{description:"Base spacing step (1rem at normal density) \u2014 the layout rhythm unit."},"space.large":{description:"Comfortable spacing step \u2014 section padding and card gutters."},"spacing.md":{description:"Medium foundation spacing alias \u2014 references the space.medium primitive."},"spacing.lg":{description:"Large foundation spacing alias \u2014 references the space.large primitive."},"border.radius.md":{description:"Default card corner radius."},"border.width.thin":{description:"Hairline border \u2014 dividers and default input outlines."},"border.width.regular":{description:"Standard emphasis border \u2014 focused/active controls."}};function Te(e){let n=Object.keys(xe).filter(o=>!e.has(o));if(n.length>0)throw new Error(`token-meta: ${n.length} stale TOKEN_META key(s) resolve to no IR node: ${n.join(", ")}. Update src/token-meta.ts to match the current IR paths.`)}i(Te,"assertTokenMetaResolves");var So=(0,N.converter)("oklch");function b(e){return typeof e.type=="string"&&"value"in e}i(b,"isToken");function S(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}i(S,"kebab");function ue(e){return e.split(".").map(S).join(".")}i(ue,"kebabPath");function M(e){return e.kind==="ref"?e.resolved.raw:e.raw}i(M,"rawValue");function se(e,n){return Number(e.toFixed(n))||0}i(se,"round");function De(e){let n=So((0,N.parse)(e));if(!n)return{kind:"color",raw:e,components:[0,0,0],hex:"#000000"};let o=[se(n.l,4),se(n.c,4),se(n.h??0,2)],t=(0,N.formatHex)(n)??"#000000";return n.alpha!==void 0&&n.alpha!==1?{kind:"color",raw:e,components:o,alpha:se(n.alpha,4),hex:t}:{kind:"color",raw:e,components:o,hex:t}}i(De,"toColorValue");var en=/^(-?(?:\d+\.?\d*|\.\d+))(px|rem)$/;function E(e){let n=en.exec(e.trim());if(n)return{kind:"dimension",raw:e,value:Number(n[1]),unit:n[2]};let o=Number.parseFloat(e);return{kind:"dimension",raw:e,value:Number.isFinite(o)?o:0,unit:"rem"}}i(E,"toDimensionValue");function x(e){return{type:"color",value:De(e)}}i(x,"colorToken");function G(e){let n={};for(let[o,t]of Object.entries(e))n[o]=x(t);return n}i(G,"recordColorGroup");function nn(e){let n=(0,Ye.createReadableTextLayer)(e),o={};for(let[t,r]of Object.entries(n.palettes))o[t]=x(r);return o.neutral=G(n.neutral),o}i(nn,"buildReadableTextGroup");var Io=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function on(e){let n={};for(let o of Io){let t=e[o];n[o]={base:x(t.base),dark:x(t.dark),action:x(t.action),active:x(t.active),light:x(t.light),onLight:x(t.onLight)}}return n.grayscale=G(e.grayscale),n.neutral=G(e.neutral),n.surface=G(e.surface),n.ink=G(e.ink),n.edge=G(e.edge),n.wash=G(e.wash),n.baseDark=x(e.baseDark??"#000000"),n.baseLight=x(e.baseLight??"#ffffff"),n.deepDark=x(e.deepDark??"#000000"),n.deepLight=x(e.deepLight??"#ffffff"),n}i(on,"buildColorPrimitives");function tn(e){let n=ie(we.defaultInputSpacing,e),o={};for(let t of Object.keys(we.defaultInputSpacing.alias))o[t]={type:"dimension",value:E(n(t))};return o}i(tn,"buildSpacePrimitives");function rn(){let e={};for(let[n,o]of Object.entries(H.defaultInputBorder.borderWidth))e[n]={type:"dimension",value:E(o)};return e}i(rn,"buildBorderWidthPrimitives");function xo(e,n){return{color:on(e),space:tn(n),borderWidth:rn()}}i(xo,"buildPrimitives");var sn={primary:"color.primary.base",secondary:"color.secondary.base",tertiary:"color.tertiary.base",success:"color.success.base",danger:"color.danger.base",warning:"color.warning.base",info:"color.information.base",canvas:"color.surface.canvas",sunken:"color.surface.sunken",paper:"color.surface.paper",raised:"color.surface.raised",overlay:"color.surface.overlay"},an={onPrimary:"color.baseLight",onSecondary:"color.baseLight",onTertiary:"color.baseDark",onSuccess:"color.baseLight",onDanger:"color.baseLight",onWarning:"color.baseDark",onInfo:"color.baseLight",primary:"color.ink.primary",secondary:"color.ink.secondary",muted:"color.ink.muted",disabled:"color.ink.disabled"},cn={hairline:"color.edge.hairline",border:"color.edge.border",strong:"color.edge.strong"};function To(e,n){let o=e;for(let t of n.split(".").slice(1))if(o&&typeof o=="object"&&t in o)o=o[t];else return;return typeof o=="string"?o:void 0}i(To,"lookupPrimitive");function z(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?To(n,a):void 0;t[r]=a&&c===s?{type:"color",value:{kind:"ref",path:a,resolved:De(s)}}:x(s)}return t}i(z,"colorRefGroup");var un={xs:"space.xs",sm:"space.small",md:"space.medium",lg:"space.large",xl:"space.xl",xxl:"space.xxl"},wo={none:"border-width.none",thin:"border-width.thin",regular:"border-width.regular",great:"border-width.great",bold:"border-width.bold"};function Do(e,n){let o=n.split("."),t=o[0]==="border-width"?"borderWidth":o[0],r=e[t];for(let s of o.slice(1))if(r&&!b(r)&&s in r)r=r[s];else return;return r&&b(r)&&r.value.kind==="dimension"?r.value.raw:void 0}i(Do,"lookupDimensionPrimitive");function $e(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?Do(n,a):void 0;t[r]=a&&c===s?{type:"dimension",value:{kind:"ref",path:a,resolved:E(s)}}:{type:"dimension",value:E(s)}}return t}i($e,"dimensionRefGroup");function dn(e){let n={},o={};for(let[s,a]of Object.entries(H.defaultInputBorder.borderRadius))en.test(a)?n[s]={type:"dimension",value:E(a)}:o[s]=a;let t=$e(H.defaultInputBorder.borderWidth,e,wo),r={};for(let[s,a]of Object.entries(H.defaultInputBorder.borderStyle))r[s]={type:"strokeStyle",value:{kind:"strokeStyle",raw:a,style:a}};return{group:{radius:n,width:t,style:r},extensions:o}}i(dn,"buildBorder");function ln(e){let n=(0,C.createFont)(C.defaultInputFont,{textSize:e}),o={};for(let[c,u]of Object.entries(C.defaultInputFont.fontFamily)){let p=u.replace(/;\s*$/,"").trim();o[c]={type:"fontFamily",value:{kind:"fontFamily",raw:p,family:p}}}let t={};for(let[c,u]of Object.entries(n.fontSize))t[c]={type:"dimension",value:E(u)};let r={};for(let[c,u]of Object.entries(C.defaultInputFont.fontWeight))r[c]={type:"fontWeight",value:{kind:"fontWeight",raw:`${u}`,weight:u}};let s={};for(let[c,u]of Object.entries(C.defaultInputFont.lineHeight))s[c]={type:"number",value:{kind:"number",raw:`${u}`,number:u}};let a={letterSpacing:C.defaultInputFont.letterSpacing,textTransform:C.defaultInputFont.textTransform,fontStyle:C.defaultInputFont.fontStyle};return{group:{family:o,size:t,weight:r,lineHeight:s},extensions:a}}i(ln,"buildFont");var $o=/rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z]+$/;function vo(e){let n=e.trim(),o=n.startsWith("inset");o&&(n=n.slice(5).trim());let t=n.match($o),r=t?t[0]:"#000000",a=(t?n.slice(0,t.index).trim():n).split(/\s+/).filter(Boolean),c=i(u=>E(a[u]??"0px"),"dim");return{kind:"shadow",raw:e,shadow:{color:De(r),offsetX:c(0),offsetY:c(1),blur:c(2),spread:c(3),inset:o}}}i(vo,"parseShadow");function pn(e){let n=(0,ce.createDeth)(e),o={};for(let t of Object.keys(ce.levelValues))o[t]={type:"shadow",value:vo(n(t))};return o}i(pn,"buildShadow");function ae(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=n?`${n}.${S(r)}`:S(r);if(b(s)){o.add(a);let c=xe[a];t[r]=c&&(c.description!==void 0||c.deprecated!==void 0)?{...s,...c.description!==void 0?{description:c.description}:{},...c.deprecated!==void 0?{deprecated:c.deprecated}:{}}:s}else t[r]=ae(s,a,o)}return t}i(ae,"decorateGroup");function Co(e){let n=new Set,o=ae(e.primitives,"",n),t=ae(e.groups,"",n);return Te(n),{...e,primitives:o,groups:t}}i(Co,"decorateMeta");function de(e,n){return ae(e,"",n)}i(de,"decorateSlice");function fn(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${S(t)}`:S(t);b(r)?o.add(s):fn(r,s,o)}}i(fn,"collectPaths");function mn(e){let n=new Set;for(let o of e)fn(o.groups,"",n);Te(n)}i(mn,"assertSlicesMetaComplete");function gn(){let e={};for(let[n,o]of Be())e[n]={type:"dimension",value:E(o)};return e}i(gn,"buildBreakpoints");function yn(){let e={};for(let[n,o]of He())e[n]={type:"dimension",value:E(o)};return e}i(yn,"buildContainerSizes");function hn(){let e={};for(let[n,o]of Ke())e[n]={type:"dimension",value:E(o)};return e}i(hn,"buildLayoutConstants");function bn(){let e={};for(let[n,o]of We())e[n]={type:"number",value:{kind:"number",raw:`${o}`,number:o}};return e}i(bn,"buildZIndex");function Rn(){let e=i(a=>({type:"duration",value:{kind:"duration",raw:a.css,value:a.ms,unit:"ms"}}),"durationToken"),n=i(a=>({type:"cubicBezier",value:{kind:"cubicBezier",raw:a.css,points:a.points}}),"easingToken"),o={};for(let[a,c]of Ue())o[a]=e(c);let t={};for(let[a,c]of Je())t[a]=n(c);let r={};for(let[a,c]of Xe())r[a]=e(c);let s={};for(let[a,c]of Ze()){let u=e(c.duration).value;s[a]={duration:c.durationRef?{type:"duration",value:{kind:"ref",path:`motion.duration.${c.durationRef}`,resolved:u}}:e(c.duration),easing:{type:"cubicBezier",value:{kind:"ref",path:`motion.easing.${c.easingRef}`,resolved:n(c.easing).value}}}}return{duration:o,easing:t,indicator:r,intent:s}}i(Rn,"buildMotion");var kn={unit:"px",interval:"half-open [value, next) \u2014 min-width sets, ascending",cssVarsUsage:"informational only \u2014 var() is invalid inside a @media prelude"};function Sn(){let e=rn(),o=dn({borderWidth:e}),t={"com.apollion.breakpoint":kn};Object.keys(o.extensions).length>0&&(t["com.apollion.border"]={radius:o.extensions});let r=new Set;return{groups:de({"border-width":e,border:o.group,breakpoint:gn(),"container-size":yn(),layout:hn(),"z-index":bn(),motion:Rn()},r),extensions:t}}i(Sn,"buildBaseIR");function ve(e){let n=ln(e),o=new Set;return{groups:de({font:n.group},o),extensions:{"com.apollion.font":n.extensions}}}i(ve,"buildFontIR");function In(e,n){let o=on(n),t=new Set;return{groups:de({color:o,bg:z(e.bg,n,sn),text:z(e.text,n,an),edge:z(e.edge,n,cn),tx:nn(n),shadow:pn(n)},t),extensions:{}}}i(In,"buildColorIR");function xn(e,n){let o=tn(n),t={space:o},r=new Set;return{groups:de({space:o,spacing:$e(e.spacing,t,un)},r),extensions:{}}}i(xn,"buildSpacingIR");function Eo(e,n,o){let t={brand:o.brand,mode:o.mode,surface:o.surface,dimension:o.dimension},r=xo(n,o.dimension),s=dn(r),a=ln(Qe.DEFAULT_TEXT_SIZE),c={"com.apollion.variant":t,"com.apollion.font":a.extensions,"com.apollion.breakpoint":kn};Object.keys(s.extensions).length>0&&(c["com.apollion.border"]={radius:s.extensions});let u={description:`Apollion DS tokens \u2014 DTCG 2025.10. Variant: ${t.brand}/${t.mode}/${t.surface}/${t.dimension}.`,meta:t,primitives:r,groups:{bg:z(e.bg,n,sn),text:z(e.text,n,an),edge:z(e.edge,n,cn),tx:nn(n),spacing:$e(e.spacing,r,un),border:s.group,breakpoint:gn(),"container-size":yn(),layout:hn(),"z-index":bn(),motion:Rn(),font:a.group,shadow:pn(n)},extensions:c};return Co(u)}i(Eo,"buildIR");var P=Eo;var Vo=(0,le.converter)("rgb"),Tn="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function Ce(e){if(e.value.kind==="color")return e.value;if(e.value.kind==="ref"&&e.value.resolved.kind==="color")return e.value.resolved}i(Ce,"colorPayload");function Ee(e){return e.alpha===void 0}i(Ee,"isOpaqueColor");function wn(e){let n=Vo((0,le.parse)(e.hex));if(!n)return"0 0 0";let o=i(t=>Math.min(255,Math.max(0,Math.round(t*255))),"channel");return`${o(n.r)} ${o(n.g)} ${o(n.b)}`}i(wn,"rgbTriplet");function K(e,n=[]){let o=new Map;for(let[t,r]of Object.entries(e)){let s=[...n,S(t)];if(b(r))o.set(s.join("-"),r);else for(let[a,c]of K(r,s))o.set(a,c)}return o}i(K,"flatTokens");function R(e,...n){let o=e[n[0]];for(let t of n.slice(1)){if(!o||b(o))return{};o=o[t]}return o&&!b(o)?o:{}}i(R,"groupAt");function Dn(e){let n=[];for(let o of["bg","text","edge","tx"])for(let[t,r]of K(R(e.groups,o),[o])){let s=Ce(r);s&&n.push({key:t,cssVar:`--apollion-${t}`,opaque:Ee(s)})}return n}i(Dn,"colorEntries");function V(e,n){return[...K(e)].map(([o])=>[o,`var(--apollion-${[...n,o].join("-")})`])}i(V,"varEntries");function w(e,n,o){if(o.length!==0){e.push(` ${n}: {`);for(let[t,r]of o)e.push(` ${JSON.stringify(t)}: ${JSON.stringify(r)},`);e.push(" },")}}i(w,"pushScale");function $n(e){let n=[Tn,"// Tailwind preset over the Apollion foundation tokens \u2014 requires dist/css/ vars in scope.","","const preset = {"," theme: {"," extend: {"],o=Dn(e);n.push(" colors: {");for(let{key:t,cssVar:r,opaque:s}of o)s?n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`rgb(var(${r}-rgb) / <alpha-value>)`)},`):(n.push(` // ${t} carries its own alpha \u2014 excluded from the <alpha-value> modifier form.`),n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`var(${r})`)},`));return n.push(" },"),w(n,"screens",[...K(R(e.groups,"breakpoint"))].filter(([t])=>t!=="xs").map(([t,r])=>[t,M(r.value)])),w(n,"spacing",V(R(e.groups,"spacing"),["spacing"])),w(n,"borderRadius",V(R(e.groups,"border","radius"),["border","radius"])),w(n,"borderWidth",V(R(e.groups,"border","width"),["border","width"])),w(n,"fontFamily",V(R(e.groups,"font","family"),["font","family"])),w(n,"fontSize",V(R(e.groups,"font","size"),["font","size"])),w(n,"fontWeight",V(R(e.groups,"font","weight"),["font","weight"])),w(n,"lineHeight",V(R(e.groups,"font","lineHeight"),["font","line-height"])),w(n,"boxShadow",V(R(e.groups,"shadow"),["shadow"])),w(n,"transitionDuration",V(R(e.groups,"motion","duration"),["motion","duration"])),w(n,"transitionTimingFunction",V(R(e.groups,"motion","easing"),["motion","easing"])),n.push(" },"," },","};","","export default preset;",""),n.join(`
|
|
2
|
+
`)}i($n,"renderTailwindPreset");function vn(e){let n=i(r=>[...K(r).keys()],"keys"),o=i(r=>`[${r.map(s=>JSON.stringify(s)).join(", ")}]`,"list");return[Tn,"// tailwind-merge extension for the generated preset \u2014 pass to extendTailwindMerge().","","export const twMergeExtension = {"," extend: {"," theme: {",` colors: ${o(Dn(e).map(r=>r.key))},`,` spacing: ${o(n(R(e.groups,"spacing")))},`,` borderRadius: ${o(n(R(e.groups,"border","radius")))},`,` borderWidth: ${o(n(R(e.groups,"border","width")))},`," },"," classGroups: {",` 'font-family': [{ font: ${o(n(R(e.groups,"font","family")))} }],`,` 'font-size': [{ text: ${o(n(R(e.groups,"font","size")))} }],`,` 'font-weight': [{ font: ${o(n(R(e.groups,"font","weight")))} }],`,` leading: [{ leading: ${o(n(R(e.groups,"font","lineHeight")))} }],`,` shadow: [{ shadow: ${o(n(R(e.groups,"shadow")))} }],`," },"," },","};",""].join(`
|
|
3
|
+
`)}i(vn,"renderTwMergeExtension");var Ve="/* Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. */";function W(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,S(t)];b(r)?o.push(` --apollion-${s.join("-")}: ${M(r.value)};`):W(r,s,o)}}i(W,"emitVars");function pe(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,S(t)];if(!b(r)){pe(r,s,o);continue}let a=Ce(r);a&&Ee(a)&&o.push(` --apollion-${s.join("-")}-rgb: ${wn(a)};`)}}i(pe,"emitRgbVars");function Me(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,S(t)];b(r)?r.type==="color"&&o.push(` @property --apollion-${s.join("-")} { syntax: '<color>'; inherits: true; initial-value: ${M(r.value)}; }`):Me(r,s,o)}}i(Me,"emitProperties");function Cn(e,n={}){let{brand:o,mode:t,surface:r,dimension:s}=e.meta,a=[Ve,""];return a.push(`/* Variant: brand=${o} mode=${t} surface=${r} dimension=${s} */`,"",":root {"),W(e.groups,[],a),n.rgbCompanions&&(a.push(""," /* -rgb channel triplets \u2014 Tailwind <alpha-value> companions (opaque colour tokens only). */"),pe(e.groups,[],a)),a.push("}",""),a.push("@supports (background: paint(squircle)) or (color: oklch(0% 0 0)) {"),Me(e.groups,[],a),a.push("}",""),a.join(`
|
|
4
|
+
`)}i(Cn,"renderCss");function En(e,n,o={}){let{attribute:t="data-apollion-mode",rgbCompanions:r}=o,{brand:s,surface:a,dimension:c}=e.meta,u=[Ve,""],p=i((T,d,l)=>{u.push(`${T} {`,` color-scheme: ${l};`),W(d.groups,[],u),r&&pe(d.groups,[],u),u.push("}","")},"block");u.push(`/* Variant: brand=${s} surface=${a} dimension=${c} modes=light+dark (attribute ${t}) */`,""),p(`:root, html[${t}="light"]`,e,"light"),p(`html[${t}="dark"]`,n,"dark"),u.push("@media (prefers-color-scheme: dark) {"),u.push(` html:not([${t}]) {`," color-scheme: dark;");let k=[];W(n.groups,[],k),r&&pe(n.groups,[],k);for(let T of k)u.push(` ${T}`);return u.push(" }","}",""),u.push("@supports (background: paint(squircle)) or (color: oklch(0% 0 0)) {"),Me(e.groups,[],u),u.push("}",""),u.join(`
|
|
5
|
+
`)}i(En,"renderCssModes");function Vn(e,n={}){let{attribute:o=fe.TEXT_SIZE_ATTRIBUTE,defaultLevel:t=fe.DEFAULT_TEXT_SIZE}=n,r=[Ve,""];r.push(`/* Text size (ADR-030): levels=${e.map(([c])=>c).join("+")} default=${t} (attribute ${o}) */`,"");let s=i((c,u)=>{r.push(`${c} {`);let p=u.groups.font;W(p.size,["font","size"],r),r.push("}","")},"block"),a=e.find(([c])=>c===t);a&&s(":root",a[1]);for(let[c,u]of e)s(`:root[${o}="${c}"],
|
|
6
6
|
[${o}="${c}"]`,u);return r.join(`
|
|
7
|
-
`)}i(
|
|
7
|
+
`)}i(Vn,"renderCssTextSize");var Mo="<!-- Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. -->";function Ae(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${t}`:t;b(r)?o.push([s,M(r.value)]):Ae(r,s,o)}}i(Ae,"flatten");function Ao(e){return typeof e=="number"?String(e):`'${String(e).replace(/'/g,"''")}'`}i(Ao,"yamlEscape");function Oo(e){let{mode:n,surface:o,dimension:t}=e.meta;return`${n}.${o}.${t}`}i(Oo,"variantKey");function Mn(e,n){if(n.length===0)throw new Error(`renderDesignMd: no variants for brand "${e}"`);let o=["---",`brand: '${e}'`,"generator: apollion-tokens","variants:"];for(let r of n){let s=[];Ae(r.groups,"",s),o.push(` ${Oo(r)}:`);for(let[a,c]of s)o.push(` ${a}: ${Ao(c)}`)}o.push("---");let t=["",Mo,"",`# Design.md \u2014 ${e}`,"","Resolved design-token values for this brand, one section per variant.","Consumption rules (which token to reach for, layer boundaries) live in the","package `llms.txt`; this file carries the values those rules reference.","Regenerate with `apollion-tokens build` \u2014 never edit.",""];for(let r of n){let{mode:s,surface:a,dimension:c}=r.meta;t.push(`## Variant \`${s} \xB7 ${a} \xB7 ${c}\``,"");let u=[];Ae(r.groups,"",u);let p=new Map;for(let[k,T]of u){let d=k.split(".")[0]??k,l=p.get(d)??[];l.push([k,T]),p.set(d,l)}for(let[k,T]of p){t.push(`### ${k}`,"","| Token | Value |","| --- | --- |");for(let[d,l]of T)t.push(`| \`${d}\` | \`${l}\` |`);t.push("")}}return`${o.join(`
|
|
8
8
|
`)}
|
|
9
9
|
${t.join(`
|
|
10
|
-
`)}`}i(
|
|
11
|
-
`}i(
|
|
12
|
-
`}i(
|
|
13
|
-
`)}i(
|
|
14
|
-
`}i(Nn,"serializeManifest");var Pn=require("@apollion-dsi/core/themes/text-size");var Lo="json/sets",_n="json/resolver.json";function Z(e){return`${Lo}/${e}.json`}i(Z,"setFile");function Oo(e,n,o){return`${e}.color.${n}.${o}`}i(Oo,"colorSetName");function Go(e){return`spacing.${e}`}i(Go,"spacingSetName");function jo(e){return`font.${e}`}i(jo,"fontSetName");function Fo(e){return`font.${e}`}i(Fo,"legacyFontSetName");function me(e,n){e.includes(n)||e.push(n)}i(me,"pushUnique");function Bn(e){let n=pe(e),o=[],t=[],r=[],s=[],a=new Set,c=[],u=new Set,m=[],I=[...de(e)],v=I.map(l=>{let d=jo(l);return{kind:"font",name:d,file:Z(d),textSize:l}});for(let l of n){me(o,l.brand),me(t,l.mode),me(r,l.surface),me(s,l.dimension);let d=Oo(l.brand,l.mode,l.surface);a.has(d)||(a.add(d),c.push({kind:"color",name:d,file:Z(d),brand:l.brand,mode:l.mode,surface:l.surface}));let b=Go(l.dimension);u.has(b)||(u.add(b),m.push({kind:"spacing",name:b,file:Z(b),dimension:l.dimension}))}for(let l of s){let d=Fo(l);v.push({kind:"font",name:d,file:Z(d),textSize:Pn.DEFAULT_TEXT_SIZE,deprecatedDimension:l})}return{base:{kind:"base",name:"base",file:Z("base")},spacing:m,font:v,color:c,modifiers:{brand:o,mode:t,surface:r,dimension:s,textSize:I}}}i(Bn,"planSets");var ee=require("@apollion-dsi/core/themes/colors"),Le=require("@apollion-dsi/core/themes/foundation"),Yn=require("@apollion-dsi/core/themes/semantic"),Qn=require("@apollion-dsi/core/themes/spacing"),eo=require("@apollion-dsi/core/themes/surface");var y=require("culori");var Q=(0,y.converter)("oklch"),zo=(0,y.converter)("rgb");function p(e,n,o){let t=(0,y.parse)(e),r=(0,y.parse)(n);if(!t||!r)return e;let s=(0,y.interpolate)([t,r],"oklch");return(0,y.formatHex)(s(o))??e}i(p,"mixOklch");function No(e){return e?typeof e=="string"?e:e.base:"#000"}i(No,"coerceToHex");var ge=1.3,Po=.05,Hn=.04,G=i((e,n)=>{let o=(0,y.parse)(e),t=(0,y.parse)(n);return!o||!t?1:(0,y.wcagContrast)(o,t)},"contrastRatio"),q=i(e=>{let n=Q((0,y.parse)(e));return n?n.l??0:null},"oklchLightness"),_o=4.5;function Y(e,n,o=_o){let t=(0,y.parse)(n),r=Q((0,y.parse)(e));if(!t||!r)return e;let s=G("#fff",n)>=G("#000",n)?.04:-.04;for(let a=0;a<25;a+=1){let c=(0,y.formatHex)(r)??e,u=(0,y.parse)(c);if(u&&(0,y.wcagContrast)(u,t)>=o)return c;let m=Math.min(1,Math.max(0,(r.l??0)+s));if(m===(r.l??0))break;r={...r,l:m}}return(0,y.formatHex)(r)??e}i(Y,"readableColor");var Kn=i((e,n)=>{if(G(e,n)>=ge)return!0;let o=q(e),t=q(n);return o!==null&&t!==null&&Math.abs(o-t)>=Po},"isPerceptibleState"),Me=i(e=>e?G("#fff",e)>G("#000",e):!1,"isDarkSurface");function Wn(e,n,o){let t=Q((0,y.parse)(e));if(!t)return null;let r={...t,l:o??t.l??0},s=n?Hn:-Hn;for(let a=0;a<25;a+=1){let c=Math.min(1,Math.max(0,(r.l??0)+s));if(c===(r.l??0))break;r={...r,l:c};let u=(0,y.formatHex)(r);if(u&&G(e,u)>=ge)return u}return(0,y.formatHex)(r)??null}i(Wn,"derivePerceptibleState");function Jn(e,n,o){let t=Wn(e,n,o);if(t&&G(e,t)>=ge)return t;let r=Wn(e,!n);return r&&G(e,r)>=ge?r:t??r}i(Jn,"perceptibleStateFor");function w(e,n){let o=typeof e=="object"&&e!==null?e:void 0,t=No(e),r=n.deepDark,s=n.deepLight,a={base:t,dark:p(t,r,.6),action:p(t,r,.2),active:p(t,s,.6),light:p(t,s,.9),onLight:t};if((0,y.parse)(t)){let c=Me(n.baseLight),u=Kn(t,a.action);if(u||(a.action=Jn(t,c)??a.action),!Kn(t,a.active)){let m=u?void 0:q(a.action)??void 0;a.active=Jn(t,c,m)??a.active}}if(a.onLight=Y(a.action,a.light),o){let c=o.action??a.action,u=o.light??a.light;return{base:t,dark:o.dark??a.dark,action:c,active:o.active??a.active,light:u,onLight:o.onLight??Y(c,u)}}return a}i(w,"mountSingleColor");function Un(e){let n=e.deepLight,o=e.deepDark;return{0:n,5:p(n,o,.05),10:p(n,o,.1),20:p(n,o,.2),30:p(n,o,.3),40:p(n,o,.4),50:p(n,o,.5),60:p(n,o,.6),70:p(n,o,.7),80:p(n,o,.8),90:p(n,o,.9),100:p(n,o,1)}}i(Un,"mountGreyscaleColors");function Xn(e){let n=e.deepLight,o=e.deepDark,t=typeof e.primary=="object"&&e.primary?e.primary.base:e.primary,r=i(a=>1/17*(a-1),"interpolation"),s=p(t,o,.5);return{0:p(s,n,r(18)),5:p(s,n,r(17.5)),10:p(s,n,r(17)),20:p(s,n,r(16)),30:p(s,n,r(15)),40:p(s,n,r(14)),50:p(s,n,r(13)),60:p(s,n,r(12)),70:p(s,n,r(11)),80:p(s,n,r(10)),90:p(s,n,r(9)),100:p(s,n,r(8)),110:p(s,n,r(7)),120:p(s,n,r(6)),130:p(s,n,r(5)),140:p(s,n,r(4)),150:p(s,n,r(3)),160:p(s,n,r(2)),170:s,180:p(s,o,.25)}}i(Xn,"mountNeutralColors");function H(e,n){let o=Q((0,y.parse)(e));if(!o)return e;let t=Math.min(1,Math.max(0,(o.l??0)+n));return(0,y.formatHex)({...o,l:t})??e}i(H,"shiftLightness");function ye(e,n){let o=Q((0,y.parse)(e));if(!o)return e;let t=o.l??0,r=n.min??0,s=n.max??1;return t>=r&&t<=s?e:(0,y.formatHex)({...o,l:Math.min(s,Math.max(r,t))})??e}i(ye,"clampLightness");function z(e,n){let o=zo((0,y.parse)(e));if(!o)return e;let t=Math.min(1,Math.max(0,n)),r=i(s=>Math.round((s??0)*255),"channel");return`rgba(${r(o.r)}, ${r(o.g)}, ${r(o.b)}, ${t})`}i(z,"toRgbaString");var f=require("@apollion-dsi/core/themes/colors");var Bo="#FFFFFF",Ae="#000000";function Ho(e){return Me(e.baseLight)?"dark":"light"}i(Ho,"resolvePolarity");function Ko(e){let n=f.HALATION_FLOORS.CANVAS_MIN_L;return e<=n?1:e>=f.DARK_BOOST_TAPER_MAX_L?0:(f.DARK_BOOST_TAPER_MAX_L-e)/(f.DARK_BOOST_TAPER_MAX_L-n)}i(Ko,"darkElevationBoostFactor");function Zn(e,n,o){if(Math.abs((0,f.apcaContrast)(e,n))>=o)return e;let t=Math.abs((0,f.apcaContrast)("#ffffff",n))>=Math.abs((0,f.apcaContrast)("#000000",n)),r=e;for(let s=0;s<40;s+=1){let a=H(r,t?.02:-.02);if(a===r||(r=a,Math.abs((0,f.apcaContrast)(r,n))>=o))break}return r}i(Zn,"ensureApca");function Wo(e,n){let o=e.baseLight??Bo,t=n==="dark",r=t?ye(o,{min:f.HALATION_FLOORS.CANVAS_MIN_L}):o,s=H(r,f.LADDER_DELTAS.sunken),a=t?Ko(q(r)??0):0,c=i(u=>f.LADDER_DELTAS[u]+a*f.DARK_ELEVATION_BOOST[u],"delta");return{canvas:r,sunken:t?ye(s,{min:f.HALATION_FLOORS.CANVAS_MIN_L}):s,paper:H(r,c("paper")),raised:H(r,c("raised")),overlay:H(r,c("overlay")),scrim:t?e.deepLight??Ae:e.neutral?.["180"]??e.baseDark??Ae}}i(Wo,"deriveSurface");function Jo(e,n){let o=e.baseDark??Ae,t=ye(Zn(Y(o,n.paper,f.MIN_CONTRAST_AA),n.paper,f.INK_APCA_MIN.primary),{max:f.HALATION_FLOORS.INK_MAX_L}),r=i((s,a)=>Zn(Y(p(t,n.canvas,s),n.paper,f.MIN_CONTRAST_AA),n.paper,a),"tier");return{primary:t,secondary:r(f.INK_MIX.secondary,f.INK_APCA_MIN.secondary),muted:r(f.INK_MIX.muted,f.INK_APCA_MIN.muted),disabled:p(t,n.canvas,f.INK_MIX.disabled)}}i(Jo,"deriveInk");function Uo(e){return{hairline:z(e.primary,f.EDGE_ALPHA.hairline),border:z(e.primary,f.EDGE_ALPHA.border),strong:z(e.primary,f.EDGE_ALPHA.strong)}}i(Uo,"deriveEdge");function Xo(e,n){let o=f.WASH_ALPHA[n];return{hover:z(e.primary,o.hover),pressed:z(e.primary,o.pressed),selected:z(e.primary,o.selected)}}i(Xo,"deriveWash");function Zo(e,n){return n?{surface:{...e.surface,...n.surface},ink:{...e.ink,...n.ink},edge:{...e.edge,...n.edge},wash:{...e.wash,...n.wash}}:e}i(Zo,"applyOverride");function qn(e,n){let o=Ho(e),t=Wo(e,o),r=Jo(e,t),s={surface:t,ink:r,edge:Uo(r),wash:Xo(r,o)};return Zo(s,n?.[o])}i(qn,"resolveSurfaceLadder");function qo(e){let n=Xn(e);return{baseDark:e.baseDark,baseLight:e.baseLight,deepDark:e.deepDark,deepLight:e.deepLight,transparent:e.transparent??"transparent",neutral:n,grayscale:Un(e),...qn({...e,neutral:n},e.ladder),main:w(e.main,e),opposite:w(e.opposite,e),complementary:w(e.complementary,e),danger:w(e.danger,e),information:w(e.information,e),success:w(e.success,e),warning:w(e.warning,e),primary:w(e.primary,e),secondary:w(e.secondary,e),tertiary:w(e.tertiary,e)}}i(qo,"composeColors");function Yo(e){return{...e,baseLight:e.baseLight??ee.defaultInputColors.baseLight,baseDark:e.baseDark??ee.defaultInputColors.baseDark}}i(Yo,"withContrastDefaults");function j(e,n=Qn.defaultInputSpacing){let o=Yo(e.colors),t=e.mode==="dark"?(0,ee.toDarkColors)(o):o,r=qo(t),s=te(n,e.dimension),a=(0,Yn.createSemantic)({colors:r,spacing:s}),c=(0,Le.createFoundation)(a);return e.surface==="negative"&&(c=(0,Le.createFoundation)((0,eo.invertForSurface)({semantic:a,colors:r},"negative").semantic)),{foundation:c,colors:r}}i(j,"buildVariantThemes");async function Qo(e){let{config:n,outDir:o,cwd:t=process.cwd(),verbose:r=!1}=e,s=pe(n),a=n.output??{};if(s.length===0)throw new Error("apollion-tokens build: no variants (config.brands is empty)");let c=await(0,x.mkdtemp)((0,A.join)((0,no.tmpdir)(),"apollion-tokens-"));try{let u=[],m=i(async(l,d)=>{await nt(c,l,d),u.push({path:l,sha256:fe(d)}),r&&console.log(` \u2713 ${l}`)},"emit");if(a.json){let l=Bn(n),d=[],b=gn();d.push(b),await m(l.base.file,Cn(b));for(let g of l.spacing){let k=s.find(ne=>ne.dimension===g.dimension),{foundation:L}=j(k),O=hn(L,g.dimension);d.push(O),await m(g.file,Vn(O,g.dimension))}for(let g of l.font){let k=Se(g.textSize);d.push(k),await m(g.file,Mn(k,g))}for(let g of l.color){let k=s.find(he=>he.brand===g.brand&&he.mode===g.mode&&he.surface===g.surface),{foundation:L,colors:O}=j(k),ne=yn(L,O);d.push(ne),await m(g.file,En(ne,g.brand,g.mode,g.surface))}cn(d),await m(_n,An(n,l))}if(a.css||a.ts)for(let l of s){let{foundation:d,colors:b}=j(l),g=B(d,b,l),k=Gn(l);a.css&&await m(`css/${k}.css`,Sn(g,{rgbCompanions:a.tailwind})),a.ts&&await m(`ts/${k}.d.ts`,On(g))}if(a.css||a.cssModes){let l=de(n).map(d=>[d,Se(d)]);await m("css/font.css",vn(l))}if(a.cssModes){let l=new Map;for(let d of s){let b=`${d.brand}.${d.surface}.${d.dimension}`,g=l.get(b)??{};g[d.mode]=d,l.set(b,g)}for(let[d,{light:b,dark:g}]of l){if(!b||!g)throw new Error(`apollion-tokens build: output.cssModes needs both modes for ${d} (config.modes)`);let k=j(b),L=j(g),O=Tn(B(k.foundation,k.colors,b),B(L.foundation,L.colors,g),{rgbCompanions:a.tailwind});await m(`css/${d}.modes.css`,O)}}if(a.tailwind){let l=s[0],{foundation:d,colors:b}=j(l),g=B(d,b,l);await m("tailwind/preset.mjs",kn(g)),await m("tailwind/tw-merge.mjs",xn(g))}if(a.designMd){let l=[...new Set(s.map(d=>d.brand))];for(let d of l){let g=s.filter(k=>k.brand===d).map(k=>{let{foundation:L,colors:O}=j(k);return B(L,O,k)});await m(`design/${d}.design.md`,Dn(d,g))}}let I={configHash:Ve(n),files:u,gitCommit:Fn(t),buildEnv:zn()},v=Nn(I);return await(0,x.writeFile)((0,A.join)(c,"manifest.json"),v),await(0,x.rm)(o,{recursive:!0,force:!0}),await(0,x.mkdir)((0,A.dirname)(o),{recursive:!0}),await(0,x.rename)(c,o),r&&console.log(`\u2713 ${u.length} files \u2192 ${o}`),{manifest:I,outDir:o}}catch(u){throw await(0,x.rm)(c,{recursive:!0,force:!0}).catch(()=>{}),u}}i(Qo,"build");async function et(e){let{config:n,outDir:o}=e,t;try{t=JSON.parse(await(0,x.readFile)((0,A.join)(o,"manifest.json"),"utf8"))}catch{return!1}if(t.configHash!==Ve(n))return!1;for(let r of t.files){let s;try{s=await(0,x.readFile)((0,A.join)(o,r.path))}catch{return!1}if(fe(s)!==r.sha256)return!1}return!0}i(et,"check");async function nt(e,n,o){let t=(0,A.join)(e,n);await(0,x.mkdir)((0,A.dirname)(t),{recursive:!0}),await(0,x.writeFile)(t,o)}i(nt,"writeAt");0&&(module.exports={build,check});
|
|
10
|
+
`)}`}i(Mn,"renderDesignMd");var On=require("@apollion-dsi/core/themes/text-size");function An(e){return e.alpha!==void 0?{colorSpace:"oklch",components:[...e.components],alpha:e.alpha,hex:e.hex}:{colorSpace:"oklch",components:[...e.components],hex:e.hex}}i(An,"colorValue");function U(e){return{value:e.value,unit:e.unit}}i(U,"dimensionValue");function Lo(e){return{value:e.value,unit:e.unit}}i(Lo,"durationValue");function Go(e){return[...e.points]}i(Go,"cubicBezierValue");function jo(e){let n=e.shadow,o={color:An(n.color),offsetX:U(n.offsetX),offsetY:U(n.offsetY),blur:U(n.blur),spread:U(n.spread)};return n.inset&&(o.inset=!0),o}i(jo,"shadowValue");function Fo(e){switch(e.kind){case"ref":return`{${ue(e.path)}}`;case"color":return An(e);case"dimension":return U(e);case"fontFamily":return e.family;case"fontWeight":return e.weight;case"number":return e.number;case"strokeStyle":return e.style;case"shadow":return jo(e);case"duration":return Lo(e);case"cubicBezier":return Go(e)}}i(Fo,"projectValue");function zo(e){let n={$value:Fo(e.value),$type:e.type};return e.description!==void 0&&(n.$description=e.description),e.deprecated!==void 0&&(n.$deprecated=e.deprecated),n}i(zo,"projectToken");function Oe(e){let n={};for(let[o,t]of Object.entries(e))n[S(o)]=b(t)?zo(t):Oe(t);return n}i(Oe,"projectGroup");function J(e,n,o){let t=Oe(e.groups);if(o)for(let s of Object.keys(t))t[s]={$deprecated:o,...t[s]};let r={$description:n,...t};return Object.keys(e.extensions).length>0&&(r.$extensions=e.extensions),`${JSON.stringify(r,null,2)}
|
|
11
|
+
`}i(J,"renderSet");function Ln(e){return J(e,"Apollion DS \u2014 base set (axis-invariant: border, breakpoints, container sizes, layout, motion). DTCG 2025.10.")}i(Ln,"renderBaseSet");function Gn(e,n,o,t){return J(e,`Apollion DS \u2014 colour set. brand=${n} mode=${o} surface=${t}. DTCG 2025.10.`)}i(Gn,"renderColorSet");function jn(e,n){return J(e,`Apollion DS \u2014 spacing set. dimension=${n}. DTCG 2025.10.`)}i(jn,"renderSpacingSet");function Fn(e,n){return n.deprecatedDimension?J(e,`Apollion DS \u2014 font set. DEPRECATED alias of font.${n.textSize} (dimension=${n.deprecatedDimension} no longer scales type, ADR-030; removed at the next major). DTCG 2025.10.`,`Alias of font.${n.textSize} \u2014 dimension no longer scales type (ADR-030). Use font.<textSize>.`):J(e,`Apollion DS \u2014 font set. textSize=${n.textSize}. DTCG 2025.10.`)}i(Fn,"renderFontSet");function zn(e,n){let{modifiers:o}=n,t=[{name:"brand",values:[...o.brand],default:o.brand[0]},{name:"mode",values:[...o.mode],default:o.mode[0]},{name:"surface",values:[...o.surface],default:o.surface[0]},{name:"dimension",values:[...o.dimension],default:o.dimension[0]},{name:"textSize",values:[...o.textSize],default:On.DEFAULT_TEXT_SIZE}],r=n.font.filter(c=>c.deprecatedDimension),a={name:"apollion-tokens",description:"Apollion DS token resolver \u2014 DTCG 2025.10. Compose the base set with the colour set for the chosen brand/mode/surface, the spacing set for the chosen dimension and the font set for the chosen textSize. NOTE: mode is a topology placeholder in this release (dark resolves identically to light until S6).",sets:[{name:n.base.name,source:n.base.file},...n.spacing.map(c=>({name:c.name,source:c.file})),...n.font.map(c=>({name:c.name,source:c.file})),...n.color.map(c=>({name:c.name,source:c.file}))],modifiers:t,$extensions:{"com.apollion.resolver":{composition:{always:[n.base.name],byModifier:{color:"${brand}.color.${mode}.${surface}",spacing:"spacing.${dimension}",font:"font.${textSize}"}},deprecatedSets:Object.fromEntries(r.map(c=>[c.name,`font.${c.textSize}`])),modeIsPlaceholder:!0}}};return`${JSON.stringify(a,null,2)}
|
|
12
|
+
`}i(zn,"renderResolver");var ge="tokens-studio",Le=i(e=>`${JSON.stringify(e,null,2)}
|
|
13
|
+
`,"json"),X=i(e=>`${Number(e.toFixed(4))}`,"num"),No=i(e=>Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,"0"),"hexByte");function Nn(e){return e.alpha!==void 0&&e.alpha<1?`${e.hex}${No(e.alpha)}`:e.hex}i(Nn,"color");function Pn(e){return`${X(e.value)}${e.unit}`}i(Pn,"dimension");function me(e){return e.unit==="px"?X(e.value):Pn(e)}i(me,"shadowLength");function Po(e){let{shadow:n}=e;return{x:me(n.offsetX),y:me(n.offsetY),blur:me(n.blur),spread:me(n.spread),color:Nn(n.color),type:n.inset?"innerShadow":"dropShadow"}}i(Po,"shadow");var _=i((e,...n)=>n.some(o=>e===o||e.startsWith(`${o}.`)),"startsWith");function _o(e,n){switch(e.type){case"color":return"color";case"dimension":return _(n,"font.size")?"fontSizes":_(n,"border-width","border.width")?"borderWidth":_(n,"border.radius")?"borderRadius":_(n,"space","spacing")?"spacing":_(n,"breakpoint","container-size","layout")?"sizing":"dimension";case"fontFamily":return"fontFamilies";case"fontWeight":return"fontWeights";case"number":return _(n,"font.line-height")?"lineHeights":"number";case"shadow":return"boxShadow";default:return"other"}}i(_o,"tokensStudioType");function Bo(e,n){switch(e.kind){case"ref":return`{${ue(e.path)}}`;case"color":return Nn(e);case"dimension":return Pn(e);case"fontFamily":return e.family;case"fontWeight":return e.weight;case"number":return n==="lineHeights"?`${X(e.number*100)}%`:e.number;case"shadow":return Po(e);case"strokeStyle":return e.style;default:return e.raw}}i(Bo,"tokensStudioValue");function Ho(e){if(e.deprecated===void 0||e.deprecated===!1)return e.description;let n=typeof e.deprecated=="string"?`Deprecated: ${e.deprecated}`:"Deprecated.";return e.description?`${e.description} ${n}`:n}i(Ho,"description");function Ko(e,n){let o=_o(e,n),t={value:Bo(e.value,o),type:o},r=Ho(e);return r!==void 0&&(t.description=r),t}i(Ko,"projectToken");function _n(e,n=""){let o={};for(let[t,r]of Object.entries(e)){let s=S(t),a=n?`${n}.${s}`:s;o[s]=b(r)?Ko(r,a):_n(r,a)}return o}i(_n,"projectTokensStudioGroup");function Wo(e){if(typeof e=="number")return`${X(e*100)}%`;let n=/^(-?[\d.]+)em$/.exec(e.trim());return n?`${X(Number(n[1])*100)}%`:e}i(Wo,"letterSpacing");function Uo(e){let n={};return e.letterSpacing&&(n["letter-spacing"]=Object.fromEntries(Object.entries(e.letterSpacing).map(([o,t])=>[S(o),{value:Wo(t),type:"letterSpacing"}]))),e.textTransform&&(n["text-case"]=Object.fromEntries(Object.entries(e.textTransform).map(([o,t])=>[S(o),{value:t,type:"textCase"}]))),n}i(Uo,"fontExtensionTokens");function Z(e){let n=_n(e.groups),o=e.extensions["com.apollion.font"];return o&&n.font&&(n.font={...n.font,...Uo(o)}),Le(n)}i(Z,"renderTokensStudioSet");function Ge(e){return`color/${e.brand}/${e.mode}/${e.surface}`}i(Ge,"tokensStudioColorSetName");function Bn(e){return[{name:"base",group:"base",theme:"base"},...e.spacing.map(n=>({name:`spacing/${n.dimension}`,group:"dimension",theme:n.dimension})),...e.font.filter(n=>!n.deprecatedDimension).map(n=>({name:`font/${n.textSize}`,group:"textSize",theme:n.textSize})),...e.color.map(n=>({name:Ge(n),group:"color",theme:`${n.brand} / ${n.mode} / ${n.surface}`}))]}i(Bn,"planTokensStudioSets");function q(e){return`${ge}/${e}.json`}i(q,"tokensStudioSetFile");function Hn(e){let n=Bn(e).map(o=>({id:o.name.replace(/\//g,"-"),name:o.theme,group:o.group,selectedTokenSets:{[o.name]:"enabled"}}));return Le(n)}i(Hn,"renderTokensStudioThemes");function Kn(e){return Le({tokenSetOrder:Bn(e).map(n=>n.name)})}i(Kn,"renderTokensStudioMetadata");var Jo="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function Xo(e,n,o){let t=[];if(e.description!==void 0&&t.push(e.description),e.deprecated===!0?t.push("@deprecated"):typeof e.deprecated=="string"&&t.push(`@deprecated ${e.deprecated}`),t.length!==0){o.push(`${n}/**`);for(let r of t)o.push(`${n} * ${r.replace(/\*\//g,"*\\/")}`);o.push(`${n} */`)}}i(Xo,"emitDoc");function Wn(e,n,o){let t=" ".repeat(n);for(let[r,s]of Object.entries(e))b(s)?(Xo(s,t,o),o.push(`${t}${JSON.stringify(r)}: ${JSON.stringify(M(s.value))},`)):(o.push(`${t}${r}: {`),Wn(s,n+1,o),o.push(`${t}},`))}i(Wn,"emitGroup");function Un(e){let{brand:n,mode:o,surface:t,dimension:r}=e.meta,s=[Jo,`// Variant: brand=${n} mode=${o} surface=${t} dimension=${r}`,"","export const tokens = {"];return Wn(e.groups,1,s),s.push("} as const;","","export type Tokens = typeof tokens;",""),s.join(`
|
|
14
|
+
`)}i(Un,"renderTs");var Zo=["light","dark"],qo=["positive","negative"],Yo=["compact","normal","spacious"],Qo=["smaller","default","larger","largest"];function ye(e){let n=[...new Set(e.textSizes??Qo)];if(!n.includes("default"))throw new Error(`apollion-tokens: textSizes must include 'default' (got [${n.join(", ")}])`);return n}i(ye,"resolveTextSizes");function he(e){let n=e.modes??Zo,o=e.surfaces??qo,t=e.dimensions??Yo,r=Object.entries(e.brands).sort(([a],[c])=>a.localeCompare(c)),s=[];for(let[a,c]of r)for(let u of n)for(let p of o)for(let k of t)s.push({brand:a,colors:c,mode:u,surface:p,dimension:k});return s}i(he,"expandVariants");function Jn(e){return`${e.brand}.${e.mode}.${e.surface}.${e.dimension}`}i(Jn,"variantName");var Xn=require("node:crypto");function be(e){return(0,Xn.createHash)("sha256").update(e).digest("hex")}i(be,"sha256");function Fe(e){return be(je(e))}i(Fe,"hashConfig");function je(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(je).join(",")}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${je(e[t])}`).join(",")}}`}i(je,"stableStringify");function Zn(e){try{let{execSync:n}=require("node:child_process");return n("git rev-parse --short HEAD",{cwd:e,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim()}catch{return""}}i(Zn,"detectGitCommit");function qn(){return{node:process.version,platform:`${process.platform}-${process.arch}`}}i(qn,"buildEnv");function Yn(e){let n=[...e.files].sort((t,r)=>t.path.localeCompare(r.path)),o={configHash:e.configHash,files:n,gitCommit:e.gitCommit,buildEnv:e.buildEnv};return`${JSON.stringify(o,null,2)}
|
|
15
|
+
`}i(Yn,"serializeManifest");var Qn=require("@apollion-dsi/core/themes/text-size");var et="json/sets",eo="json/resolver.json";function Y(e){return`${et}/${e}.json`}i(Y,"setFile");function nt(e,n,o){return`${e}.color.${n}.${o}`}i(nt,"colorSetName");function ot(e){return`spacing.${e}`}i(ot,"spacingSetName");function tt(e){return`font.${e}`}i(tt,"fontSetName");function rt(e){return`font.${e}`}i(rt,"legacyFontSetName");function Re(e,n){e.includes(n)||e.push(n)}i(Re,"pushUnique");function no(e){let n=he(e),o=[],t=[],r=[],s=[],a=new Set,c=[],u=new Set,p=[],k=[...ye(e)],T=k.map(d=>{let l=tt(d);return{kind:"font",name:l,file:Y(l),textSize:d}});for(let d of n){Re(o,d.brand),Re(t,d.mode),Re(r,d.surface),Re(s,d.dimension);let l=nt(d.brand,d.mode,d.surface);a.has(l)||(a.add(l),c.push({kind:"color",name:l,file:Y(l),brand:d.brand,mode:d.mode,surface:d.surface}));let h=ot(d.dimension);u.has(h)||(u.add(h),p.push({kind:"spacing",name:h,file:Y(h),dimension:d.dimension}))}for(let d of s){let l=rt(d);T.push({kind:"font",name:l,file:Y(l),textSize:Qn.DEFAULT_TEXT_SIZE,deprecatedDimension:d})}return{base:{kind:"base",name:"base",file:Y("base")},spacing:p,font:T,color:c,modifiers:{brand:o,mode:t,surface:r,dimension:s,textSize:k}}}i(no,"planSets");var oe=require("@apollion-dsi/core/themes/colors"),Pe=require("@apollion-dsi/core/themes/foundation"),lo=require("@apollion-dsi/core/themes/semantic"),po=require("@apollion-dsi/core/themes/spacing"),fo=require("@apollion-dsi/core/themes/surface");var y=require("culori");var ne=(0,y.converter)("oklch"),it=(0,y.converter)("rgb");function f(e,n,o){let t=(0,y.parse)(e),r=(0,y.parse)(n);if(!t||!r)return e;let s=(0,y.interpolate)([t,r],"oklch");return(0,y.formatHex)(s(o))??e}i(f,"mixOklch");function st(e){return e?typeof e=="string"?e:e.base:"#000"}i(st,"coerceToHex");var ke=1.3,at=.05,oo=.04,O=i((e,n)=>{let o=(0,y.parse)(e),t=(0,y.parse)(n);return!o||!t?1:(0,y.wcagContrast)(o,t)},"contrastRatio"),Q=i(e=>{let n=ne((0,y.parse)(e));return n?n.l??0:null},"oklchLightness"),ct=4.5;function ee(e,n,o=ct){let t=(0,y.parse)(n),r=ne((0,y.parse)(e));if(!t||!r)return e;let s=O("#fff",n)>=O("#000",n)?.04:-.04;for(let a=0;a<25;a+=1){let c=(0,y.formatHex)(r)??e,u=(0,y.parse)(c);if(u&&(0,y.wcagContrast)(u,t)>=o)return c;let p=Math.min(1,Math.max(0,(r.l??0)+s));if(p===(r.l??0))break;r={...r,l:p}}return(0,y.formatHex)(r)??e}i(ee,"readableColor");var to=i((e,n)=>{if(O(e,n)>=ke)return!0;let o=Q(e),t=Q(n);return o!==null&&t!==null&&Math.abs(o-t)>=at},"isPerceptibleState"),ze=i(e=>e?O("#fff",e)>O("#000",e):!1,"isDarkSurface");function ro(e,n,o){let t=ne((0,y.parse)(e));if(!t)return null;let r={...t,l:o??t.l??0},s=n?oo:-oo;for(let a=0;a<25;a+=1){let c=Math.min(1,Math.max(0,(r.l??0)+s));if(c===(r.l??0))break;r={...r,l:c};let u=(0,y.formatHex)(r);if(u&&O(e,u)>=ke)return u}return(0,y.formatHex)(r)??null}i(ro,"derivePerceptibleState");function io(e,n,o){let t=ro(e,n,o);if(t&&O(e,t)>=ke)return t;let r=ro(e,!n);return r&&O(e,r)>=ke?r:t??r}i(io,"perceptibleStateFor");function D(e,n){let o=typeof e=="object"&&e!==null?e:void 0,t=st(e),r=n.deepDark,s=n.deepLight,a={base:t,dark:f(t,r,.6),action:f(t,r,.2),active:f(t,s,.6),light:f(t,s,.9),onLight:t};if((0,y.parse)(t)){let c=ze(n.baseLight),u=to(t,a.action);if(u||(a.action=io(t,c)??a.action),!to(t,a.active)){let p=u?void 0:Q(a.action)??void 0;a.active=io(t,c,p)??a.active}}if(a.onLight=ee(a.action,a.light),o){let c=o.action??a.action,u=o.light??a.light;return{base:t,dark:o.dark??a.dark,action:c,active:o.active??a.active,light:u,onLight:o.onLight??ee(c,u)}}return a}i(D,"mountSingleColor");function so(e){let n=e.deepLight,o=e.deepDark;return{0:n,5:f(n,o,.05),10:f(n,o,.1),20:f(n,o,.2),30:f(n,o,.3),40:f(n,o,.4),50:f(n,o,.5),60:f(n,o,.6),70:f(n,o,.7),80:f(n,o,.8),90:f(n,o,.9),100:f(n,o,1)}}i(so,"mountGreyscaleColors");function ao(e){let n=e.deepLight,o=e.deepDark,t=typeof e.primary=="object"&&e.primary?e.primary.base:e.primary,r=i(a=>1/17*(a-1),"interpolation"),s=f(t,o,.5);return{0:f(s,n,r(18)),5:f(s,n,r(17.5)),10:f(s,n,r(17)),20:f(s,n,r(16)),30:f(s,n,r(15)),40:f(s,n,r(14)),50:f(s,n,r(13)),60:f(s,n,r(12)),70:f(s,n,r(11)),80:f(s,n,r(10)),90:f(s,n,r(9)),100:f(s,n,r(8)),110:f(s,n,r(7)),120:f(s,n,r(6)),130:f(s,n,r(5)),140:f(s,n,r(4)),150:f(s,n,r(3)),160:f(s,n,r(2)),170:s,180:f(s,o,.25)}}i(ao,"mountNeutralColors");function B(e,n){let o=ne((0,y.parse)(e));if(!o)return e;let t=Math.min(1,Math.max(0,(o.l??0)+n));return(0,y.formatHex)({...o,l:t})??e}i(B,"shiftLightness");function Se(e,n){let o=ne((0,y.parse)(e));if(!o)return e;let t=o.l??0,r=n.min??0,s=n.max??1;return t>=r&&t<=s?e:(0,y.formatHex)({...o,l:Math.min(s,Math.max(r,t))})??e}i(Se,"clampLightness");function j(e,n){let o=it((0,y.parse)(e));if(!o)return e;let t=Math.min(1,Math.max(0,n)),r=i(s=>Math.round((s??0)*255),"channel");return`rgba(${r(o.r)}, ${r(o.g)}, ${r(o.b)}, ${t})`}i(j,"toRgbaString");var m=require("@apollion-dsi/core/themes/colors");var ut="#FFFFFF",Ne="#000000";function dt(e){return ze(e.baseLight)?"dark":"light"}i(dt,"resolvePolarity");function lt(e){let n=m.HALATION_FLOORS.CANVAS_MIN_L;return e<=n?1:e>=m.DARK_BOOST_TAPER_MAX_L?0:(m.DARK_BOOST_TAPER_MAX_L-e)/(m.DARK_BOOST_TAPER_MAX_L-n)}i(lt,"darkElevationBoostFactor");function co(e,n,o){if(Math.abs((0,m.apcaContrast)(e,n))>=o)return e;let t=Math.abs((0,m.apcaContrast)("#ffffff",n))>=Math.abs((0,m.apcaContrast)("#000000",n)),r=e;for(let s=0;s<40;s+=1){let a=B(r,t?.02:-.02);if(a===r||(r=a,Math.abs((0,m.apcaContrast)(r,n))>=o))break}return r}i(co,"ensureApca");function pt(e,n){let o=e.baseLight??ut,t=n==="dark",r=t?Se(o,{min:m.HALATION_FLOORS.CANVAS_MIN_L}):o,s=B(r,m.LADDER_DELTAS.sunken),a=t?lt(Q(r)??0):0,c=i(u=>m.LADDER_DELTAS[u]+a*m.DARK_ELEVATION_BOOST[u],"delta");return{canvas:r,sunken:t?Se(s,{min:m.HALATION_FLOORS.CANVAS_MIN_L}):s,paper:B(r,c("paper")),raised:B(r,c("raised")),overlay:B(r,c("overlay")),scrim:t?e.deepLight??Ne:e.neutral?.["180"]??e.baseDark??Ne}}i(pt,"deriveSurface");function ft(e,n){let o=e.baseDark??Ne,t=Se(co(ee(o,n.paper,m.MIN_CONTRAST_AA),n.paper,m.INK_APCA_MIN.primary),{max:m.HALATION_FLOORS.INK_MAX_L}),r=i((s,a)=>co(ee(f(t,n.canvas,s),n.paper,m.MIN_CONTRAST_AA),n.paper,a),"tier");return{primary:t,secondary:r(m.INK_MIX.secondary,m.INK_APCA_MIN.secondary),muted:r(m.INK_MIX.muted,m.INK_APCA_MIN.muted),disabled:f(t,n.canvas,m.INK_MIX.disabled)}}i(ft,"deriveInk");function mt(e){return{hairline:j(e.primary,m.EDGE_ALPHA.hairline),border:j(e.primary,m.EDGE_ALPHA.border),strong:j(e.primary,m.EDGE_ALPHA.strong)}}i(mt,"deriveEdge");function gt(e,n){let o=m.WASH_ALPHA[n];return{hover:j(e.primary,o.hover),pressed:j(e.primary,o.pressed),selected:j(e.primary,o.selected)}}i(gt,"deriveWash");function yt(e,n){return n?{surface:{...e.surface,...n.surface},ink:{...e.ink,...n.ink},edge:{...e.edge,...n.edge},wash:{...e.wash,...n.wash}}:e}i(yt,"applyOverride");function uo(e,n){let o=dt(e),t=pt(e,o),r=ft(e,t),s={surface:t,ink:r,edge:mt(r),wash:gt(r,o)};return yt(s,n?.[o])}i(uo,"resolveSurfaceLadder");function ht(e){let n=ao(e);return{baseDark:e.baseDark,baseLight:e.baseLight,deepDark:e.deepDark,deepLight:e.deepLight,transparent:e.transparent??"transparent",neutral:n,grayscale:so(e),...uo({...e,neutral:n},e.ladder),main:D(e.main,e),opposite:D(e.opposite,e),complementary:D(e.complementary,e),danger:D(e.danger,e),information:D(e.information,e),success:D(e.success,e),warning:D(e.warning,e),primary:D(e.primary,e),secondary:D(e.secondary,e),tertiary:D(e.tertiary,e)}}i(ht,"composeColors");function bt(e){return{...e,baseLight:e.baseLight??oe.defaultInputColors.baseLight,baseDark:e.baseDark??oe.defaultInputColors.baseDark}}i(bt,"withContrastDefaults");function L(e,n=po.defaultInputSpacing){let o=bt(e.colors),t=e.mode==="dark"?(0,oe.toDarkColors)(o):o,r=ht(t),s=ie(n,e.dimension),a=(0,lo.createSemantic)({colors:r,spacing:s}),c=(0,Pe.createFoundation)(a);return e.surface==="negative"&&(c=(0,Pe.createFoundation)((0,fo.invertForSurface)({semantic:a,colors:r},"negative").semantic)),{foundation:c,colors:r}}i(L,"buildVariantThemes");async function Rt(e){let{config:n,outDir:o,cwd:t=process.cwd(),verbose:r=!1}=e,s=he(n),a=n.output??{};if(s.length===0)throw new Error("apollion-tokens build: no variants (config.brands is empty)");let c=await(0,I.mkdtemp)((0,A.join)((0,mo.tmpdir)(),"apollion-tokens-"));try{let u=[],p=i(async(d,l)=>{await It(c,d,l),u.push({path:d,sha256:be(l)}),r&&console.log(` \u2713 ${d}`)},"emit");if(a.json||a.tokensStudio){let d=no(n),l=St(d,s);if(mn([l.base,...l.spacing,...l.font,...l.color]),a.json){await p(d.base.file,Ln(l.base));for(let[h,g]of d.spacing.entries())await p(g.file,jn(l.spacing[h],g.dimension));for(let[h,g]of d.font.entries())await p(g.file,Fn(l.font[h],g));for(let[h,g]of d.color.entries())await p(g.file,Gn(l.color[h],g.brand,g.mode,g.surface));await p(eo,zn(n,d))}if(a.tokensStudio){await p(q("base"),Z(l.base));for(let[h,g]of d.spacing.entries())await p(q(`spacing/${g.dimension}`),Z(l.spacing[h]));for(let[h,g]of d.font.entries())g.deprecatedDimension||await p(q(`font/${g.textSize}`),Z(l.font[h]));for(let[h,g]of d.color.entries())await p(q(Ge(g)),Z(l.color[h]));await p(`${ge}/$themes.json`,Hn(d)),await p(`${ge}/$metadata.json`,Kn(d))}}if(a.css||a.ts)for(let d of s){let{foundation:l,colors:h}=L(d),g=P(l,h,d),$=Jn(d);a.css&&await p(`css/${$}.css`,Cn(g,{rgbCompanions:a.tailwind})),a.ts&&await p(`ts/${$}.d.ts`,Un(g))}if(a.css||a.cssModes){let d=ye(n).map(l=>[l,ve(l)]);await p("css/font.css",Vn(d))}if(a.cssModes){let d=new Map;for(let l of s){let h=`${l.brand}.${l.surface}.${l.dimension}`,g=d.get(h)??{};g[l.mode]=l,d.set(h,g)}for(let[l,{light:h,dark:g}]of d){if(!h||!g)throw new Error(`apollion-tokens build: output.cssModes needs both modes for ${l} (config.modes)`);let $=L(h),te=L(g),Ie=En(P($.foundation,$.colors,h),P(te.foundation,te.colors,g),{rgbCompanions:a.tailwind});await p(`css/${l}.modes.css`,Ie)}}if(a.tailwind){let d=s[0],{foundation:l,colors:h}=L(d),g=P(l,h,d);await p("tailwind/preset.mjs",$n(g)),await p("tailwind/tw-merge.mjs",vn(g))}if(a.designMd){let d=[...new Set(s.map(l=>l.brand))];for(let l of d){let g=s.filter($=>$.brand===l).map($=>{let{foundation:te,colors:Ie}=L($);return P(te,Ie,$)});await p(`design/${l}.design.md`,Mn(l,g))}}let k={configHash:Fe(n),files:u,gitCommit:Zn(t),buildEnv:qn()},T=Yn(k);return await(0,I.writeFile)((0,A.join)(c,"manifest.json"),T),await(0,I.rm)(o,{recursive:!0,force:!0}),await(0,I.mkdir)((0,A.dirname)(o),{recursive:!0}),await(0,I.rename)(c,o),r&&console.log(`\u2713 ${u.length} files \u2192 ${o}`),{manifest:k,outDir:o}}catch(u){throw await(0,I.rm)(c,{recursive:!0,force:!0}).catch(()=>{}),u}}i(Rt,"build");async function kt(e){let{config:n,outDir:o}=e,t;try{t=JSON.parse(await(0,I.readFile)((0,A.join)(o,"manifest.json"),"utf8"))}catch{return!1}if(t.configHash!==Fe(n))return!1;for(let r of t.files){let s;try{s=await(0,I.readFile)((0,A.join)(o,r.path))}catch{return!1}if(be(s)!==r.sha256)return!1}return!0}i(kt,"check");function St(e,n){let o=e.spacing.map(s=>{let a=n.find(c=>c.dimension===s.dimension);return xn(L(a).foundation,s.dimension)}),t=e.font.map(s=>ve(s.textSize)),r=e.color.map(s=>{let a=n.find(p=>p.brand===s.brand&&p.mode===s.mode&&p.surface===s.surface),{foundation:c,colors:u}=L(a);return In(c,u)});return{base:Sn(),spacing:o,font:t,color:r}}i(St,"buildSetSlices");async function It(e,n,o){let t=(0,A.join)(e,n);await(0,I.mkdir)((0,A.dirname)(t),{recursive:!0}),await(0,I.writeFile)(t,o)}i(It,"writeAt");0&&(module.exports={build,check});
|
package/lib/build.esm.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
var eo=Object.defineProperty;var i=(e,n)=>eo(e,"name",{value:n,configurable:!0}),no=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{mkdir as qn,mkdtemp as It,readFile as Xn,rename as kt,rm as Zn,writeFile as Yn}from"node:fs/promises";import{tmpdir as xt}from"node:os";import{dirname as Qn,join as U}from"node:path";import{DEFAULT_TEXT_SIZE as Co,TEXT_SIZE_ATTRIBUTE as Eo}from"@apollion-dsi/core/themes/text-size";import{converter as Do,parse as wo}from"culori";import{defaultInputBorder as ee}from"@apollion-dsi/core/themes/border";import{createReadableTextLayer as ao}from"@apollion-dsi/core/themes/colors";import{createDeth as co,levelValues as uo}from"@apollion-dsi/core/themes/depth";import{createFont as lo,defaultInputFont as A}from"@apollion-dsi/core/themes/font";import{defaultInputSpacing as Ne}from"@apollion-dsi/core/themes/spacing";import{DEFAULT_TEXT_SIZE as po}from"@apollion-dsi/core/themes/text-size";import{converter as fo,formatHex as mo,parse as go}from"culori";import{defaultInputBreakpoints as oo}from"@apollion-dsi/core/themes/breakpoints";function Me(e=oo){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Me,"breakpointEntries");import{defaultInputContainerSizes as to,defaultInputLayout as ro,defaultInputZIndex as io}from"@apollion-dsi/core/themes/layout";function Ae(e=to){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ae,"containerSizeEntries");function Le(e=ro){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(Le,"layoutEntries");function Oe(e=io){return Object.entries(e)}i(Oe,"zIndexEntries");import{createMotion as Z,defaultInputMotion as q}from"@apollion-dsi/core/themes/motion";function Ge(e=q){let n=Z(e);return Object.keys(e.duration).map(o=>[o,{ms:e.duration[o],css:n.duration[o]}])}i(Ge,"motionDurationEntries");function je(e=q){let n=Z(e);return Object.keys(e.easing).map(o=>[o,{points:e.easing[o],css:n.easing[o]}])}i(je,"motionEasingEntries");function Fe(e=q){let n=Z(e);return Object.keys(e.indicator).map(o=>[o,{ms:e.indicator[o],css:n.indicator[o]}])}i(Fe,"motionIndicatorEntries");function ze(e=q){let n=Z(e);return Object.keys(e.intent).map(o=>{let t=e.intent[o],r=typeof t.duration=="number"?null:t.duration,s=typeof t.duration=="number"?t.duration:e.duration[t.duration];return[o,{durationRef:r,duration:{ms:s,css:n.intent[o].duration},easingRef:t.easing,easing:{points:e.easing[t.easing],css:n.intent[o].easing}}]})}i(ze,"motionIntentEntries");import{DIMENSION_MULTIPLIERS as so}from"@apollion-dsi/core/themes/dimension";function Y({multiplier:e=.25,alias:n},o){let t=o!==void 0?so[o]:e;return(...r)=>r.map(s=>{let a=typeof s=="string"?n[s]:s;return`${t*a}rem`}).join(" ")}i(Y,"createSpacing");var fe={"bg.primary":{description:"Primary action surface \u2014 the brand\u2019s dominant call-to-action background."},"bg.secondary":{description:"Secondary action surface \u2014 supporting actions paired with the primary."},"bg.danger":{description:"Destructive / error surface \u2014 irreversible or failing actions."},"bg.success":{description:"Positive confirmation surface \u2014 completed or healthy states."},"bg.info":{description:"Informational surface \u2014 neutral, non-blocking notices.",deprecated:"Use bg.information once the foundation role is renamed (tracked for S6)."},"bg.canvas":{description:"Page ground \u2014 the theme canvas (never pure black in dark)."},"bg.paper":{description:"Component ground (cards, inputs, tables) \u2014 lighter than the canvas in both modes; the dark step is widened for near-black grounds so cards stay separated on LCD/SDR panels (ADR-026)."},"bg.overlay":{description:"Top of the elevation ladder \u2014 modal / dialog panels."},"text.primary":{description:"Primary neutral ink \u2014 AA + APCA Lc \u2265 75 over bg.paper and bg.canvas."},"text.muted":{description:"Muted neutral ink \u2014 AA + APCA Lc \u2265 45 over bg.paper."},"edge.border":{description:"Default control outline \u2014 primary ink at 20 % alpha, legible on any ground."},"edge.hairline":{description:"Dividers and card outlines \u2014 primary ink at 10 % alpha."},"text.on-primary":{description:"Text/icon colour with guaranteed contrast over bg.primary."},"text.on-danger":{description:"Text/icon colour with guaranteed contrast over bg.danger."},"space.medium":{description:"Base spacing step (1rem at normal density) \u2014 the layout rhythm unit."},"space.large":{description:"Comfortable spacing step \u2014 section padding and card gutters."},"spacing.md":{description:"Medium foundation spacing alias \u2014 references the space.medium primitive."},"spacing.lg":{description:"Large foundation spacing alias \u2014 references the space.large primitive."},"border.radius.md":{description:"Default card corner radius."},"border.width.thin":{description:"Hairline border \u2014 dividers and default input outlines."},"border.width.regular":{description:"Standard emphasis border \u2014 focused/active controls."}};function me(e){let n=Object.keys(fe).filter(o=>!e.has(o));if(n.length>0)throw new Error(`token-meta: ${n.length} stale TOKEN_META key(s) resolve to no IR node: ${n.join(", ")}. Update src/token-meta.ts to match the current IR paths.`)}i(me,"assertTokenMetaResolves");var yo=fo("oklch");function h(e){return typeof e.type=="string"&&"value"in e}i(h,"isToken");function k(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}i(k,"kebab");function Pe(e){return e.split(".").map(k).join(".")}i(Pe,"kebabPath");function $(e){return e.kind==="ref"?e.resolved.raw:e.raw}i($,"rawValue");function Q(e,n){return Number(e.toFixed(n))||0}i(Q,"round");function ge(e){let n=yo(go(e));if(!n)return{kind:"color",raw:e,components:[0,0,0],hex:"#000000"};let o=[Q(n.l,4),Q(n.c,4),Q(n.h??0,2)],t=mo(n)??"#000000";return n.alpha!==void 0&&n.alpha!==1?{kind:"color",raw:e,components:o,alpha:Q(n.alpha,4),hex:t}:{kind:"color",raw:e,components:o,hex:t}}i(ge,"toColorValue");var _e=/^(-?(?:\d+\.?\d*|\.\d+))(px|rem)$/;function D(e){let n=_e.exec(e.trim());if(n)return{kind:"dimension",raw:e,value:Number(n[1]),unit:n[2]};let o=Number.parseFloat(e);return{kind:"dimension",raw:e,value:Number.isFinite(o)?o:0,unit:"rem"}}i(D,"toDimensionValue");function I(e){return{type:"color",value:ge(e)}}i(I,"colorToken");function L(e){let n={};for(let[o,t]of Object.entries(e))n[o]=I(t);return n}i(L,"recordColorGroup");function Be(e){let n=ao(e),o={};for(let[t,r]of Object.entries(n.palettes))o[t]=I(r);return o.neutral=L(n.neutral),o}i(Be,"buildReadableTextGroup");var ho=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function He(e){let n={};for(let o of ho){let t=e[o];n[o]={base:I(t.base),dark:I(t.dark),action:I(t.action),active:I(t.active),light:I(t.light),onLight:I(t.onLight)}}return n.grayscale=L(e.grayscale),n.neutral=L(e.neutral),n.surface=L(e.surface),n.ink=L(e.ink),n.edge=L(e.edge),n.wash=L(e.wash),n.baseDark=I(e.baseDark??"#000000"),n.baseLight=I(e.baseLight??"#ffffff"),n.deepDark=I(e.deepDark??"#000000"),n.deepLight=I(e.deepLight??"#ffffff"),n}i(He,"buildColorPrimitives");function Ke(e){let n=Y(Ne,e),o={};for(let t of Object.keys(Ne.alias))o[t]={type:"dimension",value:D(n(t))};return o}i(Ke,"buildSpacePrimitives");function We(){let e={};for(let[n,o]of Object.entries(ee.borderWidth))e[n]={type:"dimension",value:D(o)};return e}i(We,"buildBorderWidthPrimitives");function bo(e,n){return{color:He(e),space:Ke(n),borderWidth:We()}}i(bo,"buildPrimitives");var Je={primary:"color.primary.base",secondary:"color.secondary.base",tertiary:"color.tertiary.base",success:"color.success.base",danger:"color.danger.base",warning:"color.warning.base",info:"color.information.base",canvas:"color.surface.canvas",sunken:"color.surface.sunken",paper:"color.surface.paper",raised:"color.surface.raised",overlay:"color.surface.overlay"},Ue={onPrimary:"color.baseLight",onSecondary:"color.baseLight",onTertiary:"color.baseDark",onSuccess:"color.baseLight",onDanger:"color.baseLight",onWarning:"color.baseDark",onInfo:"color.baseLight",primary:"color.ink.primary",secondary:"color.ink.secondary",muted:"color.ink.muted",disabled:"color.ink.disabled"},Xe={hairline:"color.edge.hairline",border:"color.edge.border",strong:"color.edge.strong"};function Ro(e,n){let o=e;for(let t of n.split(".").slice(1))if(o&&typeof o=="object"&&t in o)o=o[t];else return;return typeof o=="string"?o:void 0}i(Ro,"lookupPrimitive");function j(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?Ro(n,a):void 0;t[r]=a&&c===s?{type:"color",value:{kind:"ref",path:a,resolved:ge(s)}}:I(s)}return t}i(j,"colorRefGroup");var Ze={xs:"space.xs",sm:"space.small",md:"space.medium",lg:"space.large",xl:"space.xl",xxl:"space.xxl"},Io={none:"border-width.none",thin:"border-width.thin",regular:"border-width.regular",great:"border-width.great",bold:"border-width.bold"};function ko(e,n){let o=n.split("."),t=o[0]==="border-width"?"borderWidth":o[0],r=e[t];for(let s of o.slice(1))if(r&&!h(r)&&s in r)r=r[s];else return;return r&&h(r)&&r.value.kind==="dimension"?r.value.raw:void 0}i(ko,"lookupDimensionPrimitive");function ye(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?ko(n,a):void 0;t[r]=a&&c===s?{type:"dimension",value:{kind:"ref",path:a,resolved:D(s)}}:{type:"dimension",value:D(s)}}return t}i(ye,"dimensionRefGroup");function qe(e){let n={},o={};for(let[s,a]of Object.entries(ee.borderRadius))_e.test(a)?n[s]={type:"dimension",value:D(a)}:o[s]=a;let t=ye(ee.borderWidth,e,Io),r={};for(let[s,a]of Object.entries(ee.borderStyle))r[s]={type:"strokeStyle",value:{kind:"strokeStyle",raw:a,style:a}};return{group:{radius:n,width:t,style:r},extensions:o}}i(qe,"buildBorder");function Ye(e){let n=lo(A,{textSize:e}),o={};for(let[c,u]of Object.entries(A.fontFamily)){let f=u.replace(/;\s*$/,"").trim();o[c]={type:"fontFamily",value:{kind:"fontFamily",raw:f,family:f}}}let t={};for(let[c,u]of Object.entries(n.fontSize))t[c]={type:"dimension",value:D(u)};let r={};for(let[c,u]of Object.entries(A.fontWeight))r[c]={type:"fontWeight",value:{kind:"fontWeight",raw:`${u}`,weight:u}};let s={};for(let[c,u]of Object.entries(A.lineHeight))s[c]={type:"number",value:{kind:"number",raw:`${u}`,number:u}};let a={letterSpacing:A.letterSpacing,textTransform:A.textTransform,fontStyle:A.fontStyle};return{group:{family:o,size:t,weight:r,lineHeight:s},extensions:a}}i(Ye,"buildFont");var xo=/rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z]+$/;function So(e){let n=e.trim(),o=n.startsWith("inset");o&&(n=n.slice(5).trim());let t=n.match(xo),r=t?t[0]:"#000000",a=(t?n.slice(0,t.index).trim():n).split(/\s+/).filter(Boolean),c=i(u=>D(a[u]??"0px"),"dim");return{kind:"shadow",raw:e,shadow:{color:ge(r),offsetX:c(0),offsetY:c(1),blur:c(2),spread:c(3),inset:o}}}i(So,"parseShadow");function Qe(e){let n=co(e),o={};for(let t of Object.keys(uo))o[t]={type:"shadow",value:So(n(t))};return o}i(Qe,"buildShadow");function ne(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=n?`${n}.${k(r)}`:k(r);if(h(s)){o.add(a);let c=fe[a];t[r]=c&&(c.description!==void 0||c.deprecated!==void 0)?{...s,...c.description!==void 0?{description:c.description}:{},...c.deprecated!==void 0?{deprecated:c.deprecated}:{}}:s}else t[r]=ne(s,a,o)}return t}i(ne,"decorateGroup");function To(e){let n=new Set,o=ne(e.primitives,"",n),t=ne(e.groups,"",n);return me(n),{...e,primitives:o,groups:t}}i(To,"decorateMeta");function oe(e,n){return ne(e,"",n)}i(oe,"decorateSlice");function en(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${k(t)}`:k(t);h(r)?o.add(s):en(r,s,o)}}i(en,"collectPaths");function nn(e){let n=new Set;for(let o of e)en(o.groups,"",n);me(n)}i(nn,"assertSlicesMetaComplete");function on(){let e={};for(let[n,o]of Me())e[n]={type:"dimension",value:D(o)};return e}i(on,"buildBreakpoints");function tn(){let e={};for(let[n,o]of Ae())e[n]={type:"dimension",value:D(o)};return e}i(tn,"buildContainerSizes");function rn(){let e={};for(let[n,o]of Le())e[n]={type:"dimension",value:D(o)};return e}i(rn,"buildLayoutConstants");function sn(){let e={};for(let[n,o]of Oe())e[n]={type:"number",value:{kind:"number",raw:`${o}`,number:o}};return e}i(sn,"buildZIndex");function an(){let e=i(a=>({type:"duration",value:{kind:"duration",raw:a.css,value:a.ms,unit:"ms"}}),"durationToken"),n=i(a=>({type:"cubicBezier",value:{kind:"cubicBezier",raw:a.css,points:a.points}}),"easingToken"),o={};for(let[a,c]of Ge())o[a]=e(c);let t={};for(let[a,c]of je())t[a]=n(c);let r={};for(let[a,c]of Fe())r[a]=e(c);let s={};for(let[a,c]of ze()){let u=e(c.duration).value;s[a]={duration:c.durationRef?{type:"duration",value:{kind:"ref",path:`motion.duration.${c.durationRef}`,resolved:u}}:e(c.duration),easing:{type:"cubicBezier",value:{kind:"ref",path:`motion.easing.${c.easingRef}`,resolved:n(c.easing).value}}}}return{duration:o,easing:t,indicator:r,intent:s}}i(an,"buildMotion");var cn={unit:"px",interval:"half-open [value, next) \u2014 min-width sets, ascending",cssVarsUsage:"informational only \u2014 var() is invalid inside a @media prelude"};function un(){let e=We(),o=qe({borderWidth:e}),t={"com.apollion.breakpoint":cn};Object.keys(o.extensions).length>0&&(t["com.apollion.border"]={radius:o.extensions});let r=new Set;return{groups:oe({"border-width":e,border:o.group,breakpoint:on(),"container-size":tn(),layout:rn(),"z-index":sn(),motion:an()},r),extensions:t}}i(un,"buildBaseIR");function he(e){let n=Ye(e),o=new Set;return{groups:oe({font:n.group},o),extensions:{"com.apollion.font":n.extensions}}}i(he,"buildFontIR");function ln(e,n){let o=He(n),t=new Set;return{groups:oe({color:o,bg:j(e.bg,n,Je),text:j(e.text,n,Ue),edge:j(e.edge,n,Xe),tx:Be(n),shadow:Qe(n)},t),extensions:{}}}i(ln,"buildColorIR");function dn(e,n){let o=Ke(n),t={space:o},r=new Set;return{groups:oe({space:o,spacing:ye(e.spacing,t,Ze)},r),extensions:{}}}i(dn,"buildSpacingIR");function vo(e,n,o){let t={brand:o.brand,mode:o.mode,surface:o.surface,dimension:o.dimension},r=bo(n,o.dimension),s=qe(r),a=Ye(po),c={"com.apollion.variant":t,"com.apollion.font":a.extensions,"com.apollion.breakpoint":cn};Object.keys(s.extensions).length>0&&(c["com.apollion.border"]={radius:s.extensions});let u={description:`Apollion DS tokens \u2014 DTCG 2025.10. Variant: ${t.brand}/${t.mode}/${t.surface}/${t.dimension}.`,meta:t,primitives:r,groups:{bg:j(e.bg,n,Je),text:j(e.text,n,Ue),edge:j(e.edge,n,Xe),tx:Be(n),spacing:ye(e.spacing,r,Ze),border:s.group,breakpoint:on(),"container-size":tn(),layout:rn(),"z-index":sn(),motion:an(),font:a.group,shadow:Qe(n)},extensions:c};return To(u)}i(vo,"buildIR");var F=vo;var $o=Do("rgb"),pn="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function be(e){if(e.value.kind==="color")return e.value;if(e.value.kind==="ref"&&e.value.resolved.kind==="color")return e.value.resolved}i(be,"colorPayload");function Re(e){return e.alpha===void 0}i(Re,"isOpaqueColor");function fn(e){let n=$o(wo(e.hex));if(!n)return"0 0 0";let o=i(t=>Math.min(255,Math.max(0,Math.round(t*255))),"channel");return`${o(n.r)} ${o(n.g)} ${o(n.b)}`}i(fn,"rgbTriplet");function N(e,n=[]){let o=new Map;for(let[t,r]of Object.entries(e)){let s=[...n,k(t)];if(h(r))o.set(s.join("-"),r);else for(let[a,c]of N(r,s))o.set(a,c)}return o}i(N,"flatTokens");function g(e,...n){let o=e[n[0]];for(let t of n.slice(1)){if(!o||h(o))return{};o=o[t]}return o&&!h(o)?o:{}}i(g,"groupAt");function mn(e){let n=[];for(let o of["bg","text","edge","tx"])for(let[t,r]of N(g(e.groups,o),[o])){let s=be(r);s&&n.push({key:t,cssVar:`--apollion-${t}`,opaque:Re(s)})}return n}i(mn,"colorEntries");function w(e,n){return[...N(e)].map(([o])=>[o,`var(--apollion-${[...n,o].join("-")})`])}i(w,"varEntries");function T(e,n,o){if(o.length!==0){e.push(` ${n}: {`);for(let[t,r]of o)e.push(` ${JSON.stringify(t)}: ${JSON.stringify(r)},`);e.push(" },")}}i(T,"pushScale");function gn(e){let n=[pn,"// Tailwind preset over the Apollion foundation tokens \u2014 requires dist/css/ vars in scope.","","const preset = {"," theme: {"," extend: {"],o=mn(e);n.push(" colors: {");for(let{key:t,cssVar:r,opaque:s}of o)s?n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`rgb(var(${r}-rgb) / <alpha-value>)`)},`):(n.push(` // ${t} carries its own alpha \u2014 excluded from the <alpha-value> modifier form.`),n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`var(${r})`)},`));return n.push(" },"),T(n,"screens",[...N(g(e.groups,"breakpoint"))].filter(([t])=>t!=="xs").map(([t,r])=>[t,$(r.value)])),T(n,"spacing",w(g(e.groups,"spacing"),["spacing"])),T(n,"borderRadius",w(g(e.groups,"border","radius"),["border","radius"])),T(n,"borderWidth",w(g(e.groups,"border","width"),["border","width"])),T(n,"fontFamily",w(g(e.groups,"font","family"),["font","family"])),T(n,"fontSize",w(g(e.groups,"font","size"),["font","size"])),T(n,"fontWeight",w(g(e.groups,"font","weight"),["font","weight"])),T(n,"lineHeight",w(g(e.groups,"font","lineHeight"),["font","line-height"])),T(n,"boxShadow",w(g(e.groups,"shadow"),["shadow"])),T(n,"transitionDuration",w(g(e.groups,"motion","duration"),["motion","duration"])),T(n,"transitionTimingFunction",w(g(e.groups,"motion","easing"),["motion","easing"])),n.push(" },"," },","};","","export default preset;",""),n.join(`
|
|
2
|
-
`)}i(
|
|
3
|
-
`)}i(
|
|
4
|
-
`)}i(
|
|
5
|
-
`)}i(
|
|
1
|
+
var fo=Object.defineProperty;var i=(e,n)=>fo(e,"name",{value:n,configurable:!0}),mo=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{mkdir as uo,mkdtemp as Nt,readFile as ao,rename as Pt,rm as co,writeFile as lo}from"node:fs/promises";import{tmpdir as _t}from"node:os";import{dirname as po,join as Z}from"node:path";import{DEFAULT_TEXT_SIZE as Po,TEXT_SIZE_ATTRIBUTE as _o}from"@apollion-dsi/core/themes/text-size";import{converter as Fo,parse as zo}from"culori";import{defaultInputBorder as oe}from"@apollion-dsi/core/themes/border";import{createReadableTextLayer as ko}from"@apollion-dsi/core/themes/colors";import{createDeth as So,levelValues as Io}from"@apollion-dsi/core/themes/depth";import{createFont as xo,defaultInputFont as V}from"@apollion-dsi/core/themes/font";import{defaultInputSpacing as Ue}from"@apollion-dsi/core/themes/spacing";import{DEFAULT_TEXT_SIZE as To}from"@apollion-dsi/core/themes/text-size";import{converter as wo,formatHex as Do,parse as $o}from"culori";import{defaultInputBreakpoints as go}from"@apollion-dsi/core/themes/breakpoints";function ze(e=go){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(ze,"breakpointEntries");import{defaultInputContainerSizes as yo,defaultInputLayout as ho,defaultInputZIndex as bo}from"@apollion-dsi/core/themes/layout";function Ne(e=yo){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ne,"containerSizeEntries");function Pe(e=ho){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(Pe,"layoutEntries");function _e(e=bo){return Object.entries(e)}i(_e,"zIndexEntries");import{createMotion as Y,defaultInputMotion as Q}from"@apollion-dsi/core/themes/motion";function Be(e=Q){let n=Y(e);return Object.keys(e.duration).map(o=>[o,{ms:e.duration[o],css:n.duration[o]}])}i(Be,"motionDurationEntries");function He(e=Q){let n=Y(e);return Object.keys(e.easing).map(o=>[o,{points:e.easing[o],css:n.easing[o]}])}i(He,"motionEasingEntries");function Ke(e=Q){let n=Y(e);return Object.keys(e.indicator).map(o=>[o,{ms:e.indicator[o],css:n.indicator[o]}])}i(Ke,"motionIndicatorEntries");function We(e=Q){let n=Y(e);return Object.keys(e.intent).map(o=>{let t=e.intent[o],r=typeof t.duration=="number"?null:t.duration,s=typeof t.duration=="number"?t.duration:e.duration[t.duration];return[o,{durationRef:r,duration:{ms:s,css:n.intent[o].duration},easingRef:t.easing,easing:{points:e.easing[t.easing],css:n.intent[o].easing}}]})}i(We,"motionIntentEntries");import{DIMENSION_MULTIPLIERS as Ro}from"@apollion-dsi/core/themes/dimension";function ee({multiplier:e=.25,alias:n},o){let t=o!==void 0?Ro[o]:e;return(...r)=>r.map(s=>{let a=typeof s=="string"?n[s]:s;return`${t*a}rem`}).join(" ")}i(ee,"createSpacing");var be={"bg.primary":{description:"Primary action surface \u2014 the brand\u2019s dominant call-to-action background."},"bg.secondary":{description:"Secondary action surface \u2014 supporting actions paired with the primary."},"bg.danger":{description:"Destructive / error surface \u2014 irreversible or failing actions."},"bg.success":{description:"Positive confirmation surface \u2014 completed or healthy states."},"bg.info":{description:"Informational surface \u2014 neutral, non-blocking notices.",deprecated:"Use bg.information once the foundation role is renamed (tracked for S6)."},"bg.canvas":{description:"Page ground \u2014 the theme canvas (never pure black in dark)."},"bg.paper":{description:"Component ground (cards, inputs, tables) \u2014 lighter than the canvas in both modes; the dark step is widened for near-black grounds so cards stay separated on LCD/SDR panels (ADR-026)."},"bg.overlay":{description:"Top of the elevation ladder \u2014 modal / dialog panels."},"text.primary":{description:"Primary neutral ink \u2014 AA + APCA Lc \u2265 75 over bg.paper and bg.canvas."},"text.muted":{description:"Muted neutral ink \u2014 AA + APCA Lc \u2265 45 over bg.paper."},"edge.border":{description:"Default control outline \u2014 primary ink at 20 % alpha, legible on any ground."},"edge.hairline":{description:"Dividers and card outlines \u2014 primary ink at 10 % alpha."},"text.on-primary":{description:"Text/icon colour with guaranteed contrast over bg.primary."},"text.on-danger":{description:"Text/icon colour with guaranteed contrast over bg.danger."},"space.medium":{description:"Base spacing step (1rem at normal density) \u2014 the layout rhythm unit."},"space.large":{description:"Comfortable spacing step \u2014 section padding and card gutters."},"spacing.md":{description:"Medium foundation spacing alias \u2014 references the space.medium primitive."},"spacing.lg":{description:"Large foundation spacing alias \u2014 references the space.large primitive."},"border.radius.md":{description:"Default card corner radius."},"border.width.thin":{description:"Hairline border \u2014 dividers and default input outlines."},"border.width.regular":{description:"Standard emphasis border \u2014 focused/active controls."}};function Re(e){let n=Object.keys(be).filter(o=>!e.has(o));if(n.length>0)throw new Error(`token-meta: ${n.length} stale TOKEN_META key(s) resolve to no IR node: ${n.join(", ")}. Update src/token-meta.ts to match the current IR paths.`)}i(Re,"assertTokenMetaResolves");var vo=wo("oklch");function y(e){return typeof e.type=="string"&&"value"in e}i(y,"isToken");function R(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}i(R,"kebab");function re(e){return e.split(".").map(R).join(".")}i(re,"kebabPath");function v(e){return e.kind==="ref"?e.resolved.raw:e.raw}i(v,"rawValue");function ne(e,n){return Number(e.toFixed(n))||0}i(ne,"round");function ke(e){let n=vo($o(e));if(!n)return{kind:"color",raw:e,components:[0,0,0],hex:"#000000"};let o=[ne(n.l,4),ne(n.c,4),ne(n.h??0,2)],t=Do(n)??"#000000";return n.alpha!==void 0&&n.alpha!==1?{kind:"color",raw:e,components:o,alpha:ne(n.alpha,4),hex:t}:{kind:"color",raw:e,components:o,hex:t}}i(ke,"toColorValue");var Je=/^(-?(?:\d+\.?\d*|\.\d+))(px|rem)$/;function D(e){let n=Je.exec(e.trim());if(n)return{kind:"dimension",raw:e,value:Number(n[1]),unit:n[2]};let o=Number.parseFloat(e);return{kind:"dimension",raw:e,value:Number.isFinite(o)?o:0,unit:"rem"}}i(D,"toDimensionValue");function k(e){return{type:"color",value:ke(e)}}i(k,"colorToken");function M(e){let n={};for(let[o,t]of Object.entries(e))n[o]=k(t);return n}i(M,"recordColorGroup");function Xe(e){let n=ko(e),o={};for(let[t,r]of Object.entries(n.palettes))o[t]=k(r);return o.neutral=M(n.neutral),o}i(Xe,"buildReadableTextGroup");var Co=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function Ze(e){let n={};for(let o of Co){let t=e[o];n[o]={base:k(t.base),dark:k(t.dark),action:k(t.action),active:k(t.active),light:k(t.light),onLight:k(t.onLight)}}return n.grayscale=M(e.grayscale),n.neutral=M(e.neutral),n.surface=M(e.surface),n.ink=M(e.ink),n.edge=M(e.edge),n.wash=M(e.wash),n.baseDark=k(e.baseDark??"#000000"),n.baseLight=k(e.baseLight??"#ffffff"),n.deepDark=k(e.deepDark??"#000000"),n.deepLight=k(e.deepLight??"#ffffff"),n}i(Ze,"buildColorPrimitives");function qe(e){let n=ee(Ue,e),o={};for(let t of Object.keys(Ue.alias))o[t]={type:"dimension",value:D(n(t))};return o}i(qe,"buildSpacePrimitives");function Ye(){let e={};for(let[n,o]of Object.entries(oe.borderWidth))e[n]={type:"dimension",value:D(o)};return e}i(Ye,"buildBorderWidthPrimitives");function Eo(e,n){return{color:Ze(e),space:qe(n),borderWidth:Ye()}}i(Eo,"buildPrimitives");var Qe={primary:"color.primary.base",secondary:"color.secondary.base",tertiary:"color.tertiary.base",success:"color.success.base",danger:"color.danger.base",warning:"color.warning.base",info:"color.information.base",canvas:"color.surface.canvas",sunken:"color.surface.sunken",paper:"color.surface.paper",raised:"color.surface.raised",overlay:"color.surface.overlay"},en={onPrimary:"color.baseLight",onSecondary:"color.baseLight",onTertiary:"color.baseDark",onSuccess:"color.baseLight",onDanger:"color.baseLight",onWarning:"color.baseDark",onInfo:"color.baseLight",primary:"color.ink.primary",secondary:"color.ink.secondary",muted:"color.ink.muted",disabled:"color.ink.disabled"},nn={hairline:"color.edge.hairline",border:"color.edge.border",strong:"color.edge.strong"};function Vo(e,n){let o=e;for(let t of n.split(".").slice(1))if(o&&typeof o=="object"&&t in o)o=o[t];else return;return typeof o=="string"?o:void 0}i(Vo,"lookupPrimitive");function L(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?Vo(n,a):void 0;t[r]=a&&c===s?{type:"color",value:{kind:"ref",path:a,resolved:ke(s)}}:k(s)}return t}i(L,"colorRefGroup");var on={xs:"space.xs",sm:"space.small",md:"space.medium",lg:"space.large",xl:"space.xl",xxl:"space.xxl"},Mo={none:"border-width.none",thin:"border-width.thin",regular:"border-width.regular",great:"border-width.great",bold:"border-width.bold"};function Ao(e,n){let o=n.split("."),t=o[0]==="border-width"?"borderWidth":o[0],r=e[t];for(let s of o.slice(1))if(r&&!y(r)&&s in r)r=r[s];else return;return r&&y(r)&&r.value.kind==="dimension"?r.value.raw:void 0}i(Ao,"lookupDimensionPrimitive");function Se(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?Ao(n,a):void 0;t[r]=a&&c===s?{type:"dimension",value:{kind:"ref",path:a,resolved:D(s)}}:{type:"dimension",value:D(s)}}return t}i(Se,"dimensionRefGroup");function tn(e){let n={},o={};for(let[s,a]of Object.entries(oe.borderRadius))Je.test(a)?n[s]={type:"dimension",value:D(a)}:o[s]=a;let t=Se(oe.borderWidth,e,Mo),r={};for(let[s,a]of Object.entries(oe.borderStyle))r[s]={type:"strokeStyle",value:{kind:"strokeStyle",raw:a,style:a}};return{group:{radius:n,width:t,style:r},extensions:o}}i(tn,"buildBorder");function rn(e){let n=xo(V,{textSize:e}),o={};for(let[c,u]of Object.entries(V.fontFamily)){let p=u.replace(/;\s*$/,"").trim();o[c]={type:"fontFamily",value:{kind:"fontFamily",raw:p,family:p}}}let t={};for(let[c,u]of Object.entries(n.fontSize))t[c]={type:"dimension",value:D(u)};let r={};for(let[c,u]of Object.entries(V.fontWeight))r[c]={type:"fontWeight",value:{kind:"fontWeight",raw:`${u}`,weight:u}};let s={};for(let[c,u]of Object.entries(V.lineHeight))s[c]={type:"number",value:{kind:"number",raw:`${u}`,number:u}};let a={letterSpacing:V.letterSpacing,textTransform:V.textTransform,fontStyle:V.fontStyle};return{group:{family:o,size:t,weight:r,lineHeight:s},extensions:a}}i(rn,"buildFont");var Oo=/rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z]+$/;function Lo(e){let n=e.trim(),o=n.startsWith("inset");o&&(n=n.slice(5).trim());let t=n.match(Oo),r=t?t[0]:"#000000",a=(t?n.slice(0,t.index).trim():n).split(/\s+/).filter(Boolean),c=i(u=>D(a[u]??"0px"),"dim");return{kind:"shadow",raw:e,shadow:{color:ke(r),offsetX:c(0),offsetY:c(1),blur:c(2),spread:c(3),inset:o}}}i(Lo,"parseShadow");function sn(e){let n=So(e),o={};for(let t of Object.keys(Io))o[t]={type:"shadow",value:Lo(n(t))};return o}i(sn,"buildShadow");function te(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=n?`${n}.${R(r)}`:R(r);if(y(s)){o.add(a);let c=be[a];t[r]=c&&(c.description!==void 0||c.deprecated!==void 0)?{...s,...c.description!==void 0?{description:c.description}:{},...c.deprecated!==void 0?{deprecated:c.deprecated}:{}}:s}else t[r]=te(s,a,o)}return t}i(te,"decorateGroup");function Go(e){let n=new Set,o=te(e.primitives,"",n),t=te(e.groups,"",n);return Re(n),{...e,primitives:o,groups:t}}i(Go,"decorateMeta");function ie(e,n){return te(e,"",n)}i(ie,"decorateSlice");function an(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${R(t)}`:R(t);y(r)?o.add(s):an(r,s,o)}}i(an,"collectPaths");function cn(e){let n=new Set;for(let o of e)an(o.groups,"",n);Re(n)}i(cn,"assertSlicesMetaComplete");function un(){let e={};for(let[n,o]of ze())e[n]={type:"dimension",value:D(o)};return e}i(un,"buildBreakpoints");function dn(){let e={};for(let[n,o]of Ne())e[n]={type:"dimension",value:D(o)};return e}i(dn,"buildContainerSizes");function ln(){let e={};for(let[n,o]of Pe())e[n]={type:"dimension",value:D(o)};return e}i(ln,"buildLayoutConstants");function pn(){let e={};for(let[n,o]of _e())e[n]={type:"number",value:{kind:"number",raw:`${o}`,number:o}};return e}i(pn,"buildZIndex");function fn(){let e=i(a=>({type:"duration",value:{kind:"duration",raw:a.css,value:a.ms,unit:"ms"}}),"durationToken"),n=i(a=>({type:"cubicBezier",value:{kind:"cubicBezier",raw:a.css,points:a.points}}),"easingToken"),o={};for(let[a,c]of Be())o[a]=e(c);let t={};for(let[a,c]of He())t[a]=n(c);let r={};for(let[a,c]of Ke())r[a]=e(c);let s={};for(let[a,c]of We()){let u=e(c.duration).value;s[a]={duration:c.durationRef?{type:"duration",value:{kind:"ref",path:`motion.duration.${c.durationRef}`,resolved:u}}:e(c.duration),easing:{type:"cubicBezier",value:{kind:"ref",path:`motion.easing.${c.easingRef}`,resolved:n(c.easing).value}}}}return{duration:o,easing:t,indicator:r,intent:s}}i(fn,"buildMotion");var mn={unit:"px",interval:"half-open [value, next) \u2014 min-width sets, ascending",cssVarsUsage:"informational only \u2014 var() is invalid inside a @media prelude"};function gn(){let e=Ye(),o=tn({borderWidth:e}),t={"com.apollion.breakpoint":mn};Object.keys(o.extensions).length>0&&(t["com.apollion.border"]={radius:o.extensions});let r=new Set;return{groups:ie({"border-width":e,border:o.group,breakpoint:un(),"container-size":dn(),layout:ln(),"z-index":pn(),motion:fn()},r),extensions:t}}i(gn,"buildBaseIR");function Ie(e){let n=rn(e),o=new Set;return{groups:ie({font:n.group},o),extensions:{"com.apollion.font":n.extensions}}}i(Ie,"buildFontIR");function yn(e,n){let o=Ze(n),t=new Set;return{groups:ie({color:o,bg:L(e.bg,n,Qe),text:L(e.text,n,en),edge:L(e.edge,n,nn),tx:Xe(n),shadow:sn(n)},t),extensions:{}}}i(yn,"buildColorIR");function hn(e,n){let o=qe(n),t={space:o},r=new Set;return{groups:ie({space:o,spacing:Se(e.spacing,t,on)},r),extensions:{}}}i(hn,"buildSpacingIR");function jo(e,n,o){let t={brand:o.brand,mode:o.mode,surface:o.surface,dimension:o.dimension},r=Eo(n,o.dimension),s=tn(r),a=rn(To),c={"com.apollion.variant":t,"com.apollion.font":a.extensions,"com.apollion.breakpoint":mn};Object.keys(s.extensions).length>0&&(c["com.apollion.border"]={radius:s.extensions});let u={description:`Apollion DS tokens \u2014 DTCG 2025.10. Variant: ${t.brand}/${t.mode}/${t.surface}/${t.dimension}.`,meta:t,primitives:r,groups:{bg:L(e.bg,n,Qe),text:L(e.text,n,en),edge:L(e.edge,n,nn),tx:Xe(n),spacing:Se(e.spacing,r,on),border:s.group,breakpoint:un(),"container-size":dn(),layout:ln(),"z-index":pn(),motion:fn(),font:a.group,shadow:sn(n)},extensions:c};return Go(u)}i(jo,"buildIR");var G=jo;var No=Fo("rgb"),bn="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function xe(e){if(e.value.kind==="color")return e.value;if(e.value.kind==="ref"&&e.value.resolved.kind==="color")return e.value.resolved}i(xe,"colorPayload");function Te(e){return e.alpha===void 0}i(Te,"isOpaqueColor");function Rn(e){let n=No(zo(e.hex));if(!n)return"0 0 0";let o=i(t=>Math.min(255,Math.max(0,Math.round(t*255))),"channel");return`${o(n.r)} ${o(n.g)} ${o(n.b)}`}i(Rn,"rgbTriplet");function z(e,n=[]){let o=new Map;for(let[t,r]of Object.entries(e)){let s=[...n,R(t)];if(y(r))o.set(s.join("-"),r);else for(let[a,c]of z(r,s))o.set(a,c)}return o}i(z,"flatTokens");function h(e,...n){let o=e[n[0]];for(let t of n.slice(1)){if(!o||y(o))return{};o=o[t]}return o&&!y(o)?o:{}}i(h,"groupAt");function kn(e){let n=[];for(let o of["bg","text","edge","tx"])for(let[t,r]of z(h(e.groups,o),[o])){let s=xe(r);s&&n.push({key:t,cssVar:`--apollion-${t}`,opaque:Te(s)})}return n}i(kn,"colorEntries");function $(e,n){return[...z(e)].map(([o])=>[o,`var(--apollion-${[...n,o].join("-")})`])}i($,"varEntries");function x(e,n,o){if(o.length!==0){e.push(` ${n}: {`);for(let[t,r]of o)e.push(` ${JSON.stringify(t)}: ${JSON.stringify(r)},`);e.push(" },")}}i(x,"pushScale");function Sn(e){let n=[bn,"// Tailwind preset over the Apollion foundation tokens \u2014 requires dist/css/ vars in scope.","","const preset = {"," theme: {"," extend: {"],o=kn(e);n.push(" colors: {");for(let{key:t,cssVar:r,opaque:s}of o)s?n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`rgb(var(${r}-rgb) / <alpha-value>)`)},`):(n.push(` // ${t} carries its own alpha \u2014 excluded from the <alpha-value> modifier form.`),n.push(` ${JSON.stringify(t)}: ${JSON.stringify(`var(${r})`)},`));return n.push(" },"),x(n,"screens",[...z(h(e.groups,"breakpoint"))].filter(([t])=>t!=="xs").map(([t,r])=>[t,v(r.value)])),x(n,"spacing",$(h(e.groups,"spacing"),["spacing"])),x(n,"borderRadius",$(h(e.groups,"border","radius"),["border","radius"])),x(n,"borderWidth",$(h(e.groups,"border","width"),["border","width"])),x(n,"fontFamily",$(h(e.groups,"font","family"),["font","family"])),x(n,"fontSize",$(h(e.groups,"font","size"),["font","size"])),x(n,"fontWeight",$(h(e.groups,"font","weight"),["font","weight"])),x(n,"lineHeight",$(h(e.groups,"font","lineHeight"),["font","line-height"])),x(n,"boxShadow",$(h(e.groups,"shadow"),["shadow"])),x(n,"transitionDuration",$(h(e.groups,"motion","duration"),["motion","duration"])),x(n,"transitionTimingFunction",$(h(e.groups,"motion","easing"),["motion","easing"])),n.push(" },"," },","};","","export default preset;",""),n.join(`
|
|
2
|
+
`)}i(Sn,"renderTailwindPreset");function In(e){let n=i(r=>[...z(r).keys()],"keys"),o=i(r=>`[${r.map(s=>JSON.stringify(s)).join(", ")}]`,"list");return[bn,"// tailwind-merge extension for the generated preset \u2014 pass to extendTailwindMerge().","","export const twMergeExtension = {"," extend: {"," theme: {",` colors: ${o(kn(e).map(r=>r.key))},`,` spacing: ${o(n(h(e.groups,"spacing")))},`,` borderRadius: ${o(n(h(e.groups,"border","radius")))},`,` borderWidth: ${o(n(h(e.groups,"border","width")))},`," },"," classGroups: {",` 'font-family': [{ font: ${o(n(h(e.groups,"font","family")))} }],`,` 'font-size': [{ text: ${o(n(h(e.groups,"font","size")))} }],`,` 'font-weight': [{ font: ${o(n(h(e.groups,"font","weight")))} }],`,` leading: [{ leading: ${o(n(h(e.groups,"font","lineHeight")))} }],`,` shadow: [{ shadow: ${o(n(h(e.groups,"shadow")))} }],`," },"," },","};",""].join(`
|
|
3
|
+
`)}i(In,"renderTwMergeExtension");var we="/* Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. */";function N(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,R(t)];y(r)?o.push(` --apollion-${s.join("-")}: ${v(r.value)};`):N(r,s,o)}}i(N,"emitVars");function se(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,R(t)];if(!y(r)){se(r,s,o);continue}let a=xe(r);a&&Te(a)&&o.push(` --apollion-${s.join("-")}-rgb: ${Rn(a)};`)}}i(se,"emitRgbVars");function De(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,R(t)];y(r)?r.type==="color"&&o.push(` @property --apollion-${s.join("-")} { syntax: '<color>'; inherits: true; initial-value: ${v(r.value)}; }`):De(r,s,o)}}i(De,"emitProperties");function xn(e,n={}){let{brand:o,mode:t,surface:r,dimension:s}=e.meta,a=[we,""];return a.push(`/* Variant: brand=${o} mode=${t} surface=${r} dimension=${s} */`,"",":root {"),N(e.groups,[],a),n.rgbCompanions&&(a.push(""," /* -rgb channel triplets \u2014 Tailwind <alpha-value> companions (opaque colour tokens only). */"),se(e.groups,[],a)),a.push("}",""),a.push("@supports (background: paint(squircle)) or (color: oklch(0% 0 0)) {"),De(e.groups,[],a),a.push("}",""),a.join(`
|
|
4
|
+
`)}i(xn,"renderCss");function Tn(e,n,o={}){let{attribute:t="data-apollion-mode",rgbCompanions:r}=o,{brand:s,surface:a,dimension:c}=e.meta,u=[we,""],p=i((I,d,l)=>{u.push(`${I} {`,` color-scheme: ${l};`),N(d.groups,[],u),r&&se(d.groups,[],u),u.push("}","")},"block");u.push(`/* Variant: brand=${s} surface=${a} dimension=${c} modes=light+dark (attribute ${t}) */`,""),p(`:root, html[${t}="light"]`,e,"light"),p(`html[${t}="dark"]`,n,"dark"),u.push("@media (prefers-color-scheme: dark) {"),u.push(` html:not([${t}]) {`," color-scheme: dark;");let b=[];N(n.groups,[],b),r&&se(n.groups,[],b);for(let I of b)u.push(` ${I}`);return u.push(" }","}",""),u.push("@supports (background: paint(squircle)) or (color: oklch(0% 0 0)) {"),De(e.groups,[],u),u.push("}",""),u.join(`
|
|
5
|
+
`)}i(Tn,"renderCssModes");function wn(e,n={}){let{attribute:o=_o,defaultLevel:t=Po}=n,r=[we,""];r.push(`/* Text size (ADR-030): levels=${e.map(([c])=>c).join("+")} default=${t} (attribute ${o}) */`,"");let s=i((c,u)=>{r.push(`${c} {`);let p=u.groups.font;N(p.size,["font","size"],r),r.push("}","")},"block"),a=e.find(([c])=>c===t);a&&s(":root",a[1]);for(let[c,u]of e)s(`:root[${o}="${c}"],
|
|
6
6
|
[${o}="${c}"]`,u);return r.join(`
|
|
7
|
-
`)}i(
|
|
7
|
+
`)}i(wn,"renderCssTextSize");var Bo="<!-- Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. -->";function $e(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${t}`:t;y(r)?o.push([s,v(r.value)]):$e(r,s,o)}}i($e,"flatten");function Ho(e){return typeof e=="number"?String(e):`'${String(e).replace(/'/g,"''")}'`}i(Ho,"yamlEscape");function Ko(e){let{mode:n,surface:o,dimension:t}=e.meta;return`${n}.${o}.${t}`}i(Ko,"variantKey");function Dn(e,n){if(n.length===0)throw new Error(`renderDesignMd: no variants for brand "${e}"`);let o=["---",`brand: '${e}'`,"generator: apollion-tokens","variants:"];for(let r of n){let s=[];$e(r.groups,"",s),o.push(` ${Ko(r)}:`);for(let[a,c]of s)o.push(` ${a}: ${Ho(c)}`)}o.push("---");let t=["",Bo,"",`# Design.md \u2014 ${e}`,"","Resolved design-token values for this brand, one section per variant.","Consumption rules (which token to reach for, layer boundaries) live in the","package `llms.txt`; this file carries the values those rules reference.","Regenerate with `apollion-tokens build` \u2014 never edit.",""];for(let r of n){let{mode:s,surface:a,dimension:c}=r.meta;t.push(`## Variant \`${s} \xB7 ${a} \xB7 ${c}\``,"");let u=[];$e(r.groups,"",u);let p=new Map;for(let[b,I]of u){let d=b.split(".")[0]??b,l=p.get(d)??[];l.push([b,I]),p.set(d,l)}for(let[b,I]of p){t.push(`### ${b}`,"","| Token | Value |","| --- | --- |");for(let[d,l]of I)t.push(`| \`${d}\` | \`${l}\` |`);t.push("")}}return`${o.join(`
|
|
8
8
|
`)}
|
|
9
9
|
${t.join(`
|
|
10
|
-
`)}`}i(
|
|
11
|
-
`}i(
|
|
12
|
-
`}i(
|
|
13
|
-
`)}i(
|
|
14
|
-
`}i(Mn,"serializeManifest");import{DEFAULT_TEXT_SIZE as Jo}from"@apollion-dsi/core/themes/text-size";var Uo="json/sets",An="json/resolver.json";function H(e){return`${Uo}/${e}.json`}i(H,"setFile");function Xo(e,n,o){return`${e}.color.${n}.${o}`}i(Xo,"colorSetName");function Zo(e){return`spacing.${e}`}i(Zo,"spacingSetName");function qo(e){return`font.${e}`}i(qo,"fontSetName");function Yo(e){return`font.${e}`}i(Yo,"legacyFontSetName");function ae(e,n){e.includes(n)||e.push(n)}i(ae,"pushUnique");function Ln(e){let n=ie(e),o=[],t=[],r=[],s=[],a=new Set,c=[],u=new Set,f=[],b=[...re(e)],S=b.map(l=>{let d=qo(l);return{kind:"font",name:d,file:H(d),textSize:l}});for(let l of n){ae(o,l.brand),ae(t,l.mode),ae(r,l.surface),ae(s,l.dimension);let d=Xo(l.brand,l.mode,l.surface);a.has(d)||(a.add(d),c.push({kind:"color",name:d,file:H(d),brand:l.brand,mode:l.mode,surface:l.surface}));let y=Zo(l.dimension);u.has(y)||(u.add(y),f.push({kind:"spacing",name:y,file:H(y),dimension:l.dimension}))}for(let l of s){let d=Yo(l);S.push({kind:"font",name:d,file:H(d),textSize:Jo,deprecatedDimension:l})}return{base:{kind:"base",name:"base",file:H("base")},spacing:f,font:S,color:c,modifiers:{brand:o,mode:t,surface:r,dimension:s,textSize:b}}}i(Ln,"planSets");import{defaultInputColors as Jn,toDarkColors as mt}from"@apollion-dsi/core/themes/colors";import{createFoundation as Un}from"@apollion-dsi/core/themes/foundation";import{createSemantic as gt}from"@apollion-dsi/core/themes/semantic";import{defaultInputSpacing as yt}from"@apollion-dsi/core/themes/spacing";import{invertForSurface as ht}from"@apollion-dsi/core/themes/surface";import{converter as zn,formatHex as O,interpolate as Qo,parse as x,wcagContrast as Nn}from"culori";var J=zn("oklch"),et=zn("rgb");function p(e,n,o){let t=x(e),r=x(n);if(!t||!r)return e;let s=Qo([t,r],"oklch");return O(s(o))??e}i(p,"mixOklch");function nt(e){return e?typeof e=="string"?e:e.base:"#000"}i(nt,"coerceToHex");var ce=1.3,ot=.05,On=.04,V=i((e,n)=>{let o=x(e),t=x(n);return!o||!t?1:Nn(o,t)},"contrastRatio"),K=i(e=>{let n=J(x(e));return n?n.l??0:null},"oklchLightness"),tt=4.5;function W(e,n,o=tt){let t=x(n),r=J(x(e));if(!t||!r)return e;let s=V("#fff",n)>=V("#000",n)?.04:-.04;for(let a=0;a<25;a+=1){let c=O(r)??e,u=x(c);if(u&&Nn(u,t)>=o)return c;let f=Math.min(1,Math.max(0,(r.l??0)+s));if(f===(r.l??0))break;r={...r,l:f}}return O(r)??e}i(W,"readableColor");var Gn=i((e,n)=>{if(V(e,n)>=ce)return!0;let o=K(e),t=K(n);return o!==null&&t!==null&&Math.abs(o-t)>=ot},"isPerceptibleState"),De=i(e=>e?V("#fff",e)>V("#000",e):!1,"isDarkSurface");function jn(e,n,o){let t=J(x(e));if(!t)return null;let r={...t,l:o??t.l??0},s=n?On:-On;for(let a=0;a<25;a+=1){let c=Math.min(1,Math.max(0,(r.l??0)+s));if(c===(r.l??0))break;r={...r,l:c};let u=O(r);if(u&&V(e,u)>=ce)return u}return O(r)??null}i(jn,"derivePerceptibleState");function Fn(e,n,o){let t=jn(e,n,o);if(t&&V(e,t)>=ce)return t;let r=jn(e,!n);return r&&V(e,r)>=ce?r:t??r}i(Fn,"perceptibleStateFor");function v(e,n){let o=typeof e=="object"&&e!==null?e:void 0,t=nt(e),r=n.deepDark,s=n.deepLight,a={base:t,dark:p(t,r,.6),action:p(t,r,.2),active:p(t,s,.6),light:p(t,s,.9),onLight:t};if(x(t)){let c=De(n.baseLight),u=Gn(t,a.action);if(u||(a.action=Fn(t,c)??a.action),!Gn(t,a.active)){let f=u?void 0:K(a.action)??void 0;a.active=Fn(t,c,f)??a.active}}if(a.onLight=W(a.action,a.light),o){let c=o.action??a.action,u=o.light??a.light;return{base:t,dark:o.dark??a.dark,action:c,active:o.active??a.active,light:u,onLight:o.onLight??W(c,u)}}return a}i(v,"mountSingleColor");function Pn(e){let n=e.deepLight,o=e.deepDark;return{0:n,5:p(n,o,.05),10:p(n,o,.1),20:p(n,o,.2),30:p(n,o,.3),40:p(n,o,.4),50:p(n,o,.5),60:p(n,o,.6),70:p(n,o,.7),80:p(n,o,.8),90:p(n,o,.9),100:p(n,o,1)}}i(Pn,"mountGreyscaleColors");function _n(e){let n=e.deepLight,o=e.deepDark,t=typeof e.primary=="object"&&e.primary?e.primary.base:e.primary,r=i(a=>1/17*(a-1),"interpolation"),s=p(t,o,.5);return{0:p(s,n,r(18)),5:p(s,n,r(17.5)),10:p(s,n,r(17)),20:p(s,n,r(16)),30:p(s,n,r(15)),40:p(s,n,r(14)),50:p(s,n,r(13)),60:p(s,n,r(12)),70:p(s,n,r(11)),80:p(s,n,r(10)),90:p(s,n,r(9)),100:p(s,n,r(8)),110:p(s,n,r(7)),120:p(s,n,r(6)),130:p(s,n,r(5)),140:p(s,n,r(4)),150:p(s,n,r(3)),160:p(s,n,r(2)),170:s,180:p(s,o,.25)}}i(_n,"mountNeutralColors");function z(e,n){let o=J(x(e));if(!o)return e;let t=Math.min(1,Math.max(0,(o.l??0)+n));return O({...o,l:t})??e}i(z,"shiftLightness");function ue(e,n){let o=J(x(e));if(!o)return e;let t=o.l??0,r=n.min??0,s=n.max??1;return t>=r&&t<=s?e:O({...o,l:Math.min(s,Math.max(r,t))})??e}i(ue,"clampLightness");function G(e,n){let o=et(x(e));if(!o)return e;let t=Math.min(1,Math.max(0,n)),r=i(s=>Math.round((s??0)*255),"channel");return`rgba(${r(o.r)}, ${r(o.g)}, ${r(o.b)}, ${t})`}i(G,"toRgbaString");import{apcaContrast as le,DARK_BOOST_TAPER_MAX_L as we,DARK_ELEVATION_BOOST as rt,EDGE_ALPHA as $e,HALATION_FLOORS as de,INK_APCA_MIN as Ce,INK_MIX as Ee,LADDER_DELTAS as Bn,MIN_CONTRAST_AA as Hn,WASH_ALPHA as it}from"@apollion-dsi/core/themes/colors";var st="#FFFFFF",Ve="#000000";function at(e){return De(e.baseLight)?"dark":"light"}i(at,"resolvePolarity");function ct(e){let n=de.CANVAS_MIN_L;return e<=n?1:e>=we?0:(we-e)/(we-n)}i(ct,"darkElevationBoostFactor");function Kn(e,n,o){if(Math.abs(le(e,n))>=o)return e;let t=Math.abs(le("#ffffff",n))>=Math.abs(le("#000000",n)),r=e;for(let s=0;s<40;s+=1){let a=z(r,t?.02:-.02);if(a===r||(r=a,Math.abs(le(r,n))>=o))break}return r}i(Kn,"ensureApca");function ut(e,n){let o=e.baseLight??st,t=n==="dark",r=t?ue(o,{min:de.CANVAS_MIN_L}):o,s=z(r,Bn.sunken),a=t?ct(K(r)??0):0,c=i(u=>Bn[u]+a*rt[u],"delta");return{canvas:r,sunken:t?ue(s,{min:de.CANVAS_MIN_L}):s,paper:z(r,c("paper")),raised:z(r,c("raised")),overlay:z(r,c("overlay")),scrim:t?e.deepLight??Ve:e.neutral?.["180"]??e.baseDark??Ve}}i(ut,"deriveSurface");function lt(e,n){let o=e.baseDark??Ve,t=ue(Kn(W(o,n.paper,Hn),n.paper,Ce.primary),{max:de.INK_MAX_L}),r=i((s,a)=>Kn(W(p(t,n.canvas,s),n.paper,Hn),n.paper,a),"tier");return{primary:t,secondary:r(Ee.secondary,Ce.secondary),muted:r(Ee.muted,Ce.muted),disabled:p(t,n.canvas,Ee.disabled)}}i(lt,"deriveInk");function dt(e){return{hairline:G(e.primary,$e.hairline),border:G(e.primary,$e.border),strong:G(e.primary,$e.strong)}}i(dt,"deriveEdge");function pt(e,n){let o=it[n];return{hover:G(e.primary,o.hover),pressed:G(e.primary,o.pressed),selected:G(e.primary,o.selected)}}i(pt,"deriveWash");function ft(e,n){return n?{surface:{...e.surface,...n.surface},ink:{...e.ink,...n.ink},edge:{...e.edge,...n.edge},wash:{...e.wash,...n.wash}}:e}i(ft,"applyOverride");function Wn(e,n){let o=at(e),t=ut(e,o),r=lt(e,t),s={surface:t,ink:r,edge:dt(r),wash:pt(r,o)};return ft(s,n?.[o])}i(Wn,"resolveSurfaceLadder");function bt(e){let n=_n(e);return{baseDark:e.baseDark,baseLight:e.baseLight,deepDark:e.deepDark,deepLight:e.deepLight,transparent:e.transparent??"transparent",neutral:n,grayscale:Pn(e),...Wn({...e,neutral:n},e.ladder),main:v(e.main,e),opposite:v(e.opposite,e),complementary:v(e.complementary,e),danger:v(e.danger,e),information:v(e.information,e),success:v(e.success,e),warning:v(e.warning,e),primary:v(e.primary,e),secondary:v(e.secondary,e),tertiary:v(e.tertiary,e)}}i(bt,"composeColors");function Rt(e){return{...e,baseLight:e.baseLight??Jn.baseLight,baseDark:e.baseDark??Jn.baseDark}}i(Rt,"withContrastDefaults");function M(e,n=yt){let o=Rt(e.colors),t=e.mode==="dark"?mt(o):o,r=bt(t),s=Y(n,e.dimension),a=gt({colors:r,spacing:s}),c=Un(a);return e.surface==="negative"&&(c=Un(ht({semantic:a,colors:r},"negative").semantic)),{foundation:c,colors:r}}i(M,"buildVariantThemes");async function si(e){let{config:n,outDir:o,cwd:t=process.cwd(),verbose:r=!1}=e,s=ie(n),a=n.output??{};if(s.length===0)throw new Error("apollion-tokens build: no variants (config.brands is empty)");let c=await It(U(xt(),"apollion-tokens-"));try{let u=[],f=i(async(l,d)=>{await St(c,l,d),u.push({path:l,sha256:se(d)}),r&&console.log(` \u2713 ${l}`)},"emit");if(a.json){let l=Ln(n),d=[],y=un();d.push(y),await f(l.base.file,xn(y));for(let m of l.spacing){let R=s.find(X=>X.dimension===m.dimension),{foundation:C}=M(R),E=dn(C,m.dimension);d.push(E),await f(m.file,Tn(E,m.dimension))}for(let m of l.font){let R=he(m.textSize);d.push(R),await f(m.file,vn(R,m))}for(let m of l.color){let R=s.find(pe=>pe.brand===m.brand&&pe.mode===m.mode&&pe.surface===m.surface),{foundation:C,colors:E}=M(R),X=ln(C,E);d.push(X),await f(m.file,Sn(X,m.brand,m.mode,m.surface))}nn(d),await f(An,Dn(n,l))}if(a.css||a.ts)for(let l of s){let{foundation:d,colors:y}=M(l),m=F(d,y,l),R=Cn(l);a.css&&await f(`css/${R}.css`,hn(m,{rgbCompanions:a.tailwind})),a.ts&&await f(`ts/${R}.d.ts`,$n(m))}if(a.css||a.cssModes){let l=re(n).map(d=>[d,he(d)]);await f("css/font.css",Rn(l))}if(a.cssModes){let l=new Map;for(let d of s){let y=`${d.brand}.${d.surface}.${d.dimension}`,m=l.get(y)??{};m[d.mode]=d,l.set(y,m)}for(let[d,{light:y,dark:m}]of l){if(!y||!m)throw new Error(`apollion-tokens build: output.cssModes needs both modes for ${d} (config.modes)`);let R=M(y),C=M(m),E=bn(F(R.foundation,R.colors,y),F(C.foundation,C.colors,m),{rgbCompanions:a.tailwind});await f(`css/${d}.modes.css`,E)}}if(a.tailwind){let l=s[0],{foundation:d,colors:y}=M(l),m=F(d,y,l);await f("tailwind/preset.mjs",gn(m)),await f("tailwind/tw-merge.mjs",yn(m))}if(a.designMd){let l=[...new Set(s.map(d=>d.brand))];for(let d of l){let m=s.filter(R=>R.brand===d).map(R=>{let{foundation:C,colors:E}=M(R);return F(C,E,R)});await f(`design/${d}.design.md`,In(d,m))}}let b={configHash:ve(n),files:u,gitCommit:En(t),buildEnv:Vn()},S=Mn(b);return await Yn(U(c,"manifest.json"),S),await Zn(o,{recursive:!0,force:!0}),await qn(Qn(o),{recursive:!0}),await kt(c,o),r&&console.log(`\u2713 ${u.length} files \u2192 ${o}`),{manifest:b,outDir:o}}catch(u){throw await Zn(c,{recursive:!0,force:!0}).catch(()=>{}),u}}i(si,"build");async function ai(e){let{config:n,outDir:o}=e,t;try{t=JSON.parse(await Xn(U(o,"manifest.json"),"utf8"))}catch{return!1}if(t.configHash!==ve(n))return!1;for(let r of t.files){let s;try{s=await Xn(U(o,r.path))}catch{return!1}if(se(s)!==r.sha256)return!1}return!0}i(ai,"check");async function St(e,n,o){let t=U(e,n);await qn(Qn(t),{recursive:!0}),await Yn(t,o)}i(St,"writeAt");export{si as build,ai as check};
|
|
10
|
+
`)}`}i(Dn,"renderDesignMd");import{DEFAULT_TEXT_SIZE as qo}from"@apollion-dsi/core/themes/text-size";function $n(e){return e.alpha!==void 0?{colorSpace:"oklch",components:[...e.components],alpha:e.alpha,hex:e.hex}:{colorSpace:"oklch",components:[...e.components],hex:e.hex}}i($n,"colorValue");function P(e){return{value:e.value,unit:e.unit}}i(P,"dimensionValue");function Wo(e){return{value:e.value,unit:e.unit}}i(Wo,"durationValue");function Uo(e){return[...e.points]}i(Uo,"cubicBezierValue");function Jo(e){let n=e.shadow,o={color:$n(n.color),offsetX:P(n.offsetX),offsetY:P(n.offsetY),blur:P(n.blur),spread:P(n.spread)};return n.inset&&(o.inset=!0),o}i(Jo,"shadowValue");function Xo(e){switch(e.kind){case"ref":return`{${re(e.path)}}`;case"color":return $n(e);case"dimension":return P(e);case"fontFamily":return e.family;case"fontWeight":return e.weight;case"number":return e.number;case"strokeStyle":return e.style;case"shadow":return Jo(e);case"duration":return Wo(e);case"cubicBezier":return Uo(e)}}i(Xo,"projectValue");function Zo(e){let n={$value:Xo(e.value),$type:e.type};return e.description!==void 0&&(n.$description=e.description),e.deprecated!==void 0&&(n.$deprecated=e.deprecated),n}i(Zo,"projectToken");function ve(e){let n={};for(let[o,t]of Object.entries(e))n[R(o)]=y(t)?Zo(t):ve(t);return n}i(ve,"projectGroup");function _(e,n,o){let t=ve(e.groups);if(o)for(let s of Object.keys(t))t[s]={$deprecated:o,...t[s]};let r={$description:n,...t};return Object.keys(e.extensions).length>0&&(r.$extensions=e.extensions),`${JSON.stringify(r,null,2)}
|
|
11
|
+
`}i(_,"renderSet");function vn(e){return _(e,"Apollion DS \u2014 base set (axis-invariant: border, breakpoints, container sizes, layout, motion). DTCG 2025.10.")}i(vn,"renderBaseSet");function Cn(e,n,o,t){return _(e,`Apollion DS \u2014 colour set. brand=${n} mode=${o} surface=${t}. DTCG 2025.10.`)}i(Cn,"renderColorSet");function En(e,n){return _(e,`Apollion DS \u2014 spacing set. dimension=${n}. DTCG 2025.10.`)}i(En,"renderSpacingSet");function Vn(e,n){return n.deprecatedDimension?_(e,`Apollion DS \u2014 font set. DEPRECATED alias of font.${n.textSize} (dimension=${n.deprecatedDimension} no longer scales type, ADR-030; removed at the next major). DTCG 2025.10.`,`Alias of font.${n.textSize} \u2014 dimension no longer scales type (ADR-030). Use font.<textSize>.`):_(e,`Apollion DS \u2014 font set. textSize=${n.textSize}. DTCG 2025.10.`)}i(Vn,"renderFontSet");function Mn(e,n){let{modifiers:o}=n,t=[{name:"brand",values:[...o.brand],default:o.brand[0]},{name:"mode",values:[...o.mode],default:o.mode[0]},{name:"surface",values:[...o.surface],default:o.surface[0]},{name:"dimension",values:[...o.dimension],default:o.dimension[0]},{name:"textSize",values:[...o.textSize],default:qo}],r=n.font.filter(c=>c.deprecatedDimension),a={name:"apollion-tokens",description:"Apollion DS token resolver \u2014 DTCG 2025.10. Compose the base set with the colour set for the chosen brand/mode/surface, the spacing set for the chosen dimension and the font set for the chosen textSize. NOTE: mode is a topology placeholder in this release (dark resolves identically to light until S6).",sets:[{name:n.base.name,source:n.base.file},...n.spacing.map(c=>({name:c.name,source:c.file})),...n.font.map(c=>({name:c.name,source:c.file})),...n.color.map(c=>({name:c.name,source:c.file}))],modifiers:t,$extensions:{"com.apollion.resolver":{composition:{always:[n.base.name],byModifier:{color:"${brand}.color.${mode}.${surface}",spacing:"spacing.${dimension}",font:"font.${textSize}"}},deprecatedSets:Object.fromEntries(r.map(c=>[c.name,`font.${c.textSize}`])),modeIsPlaceholder:!0}}};return`${JSON.stringify(a,null,2)}
|
|
12
|
+
`}i(Mn,"renderResolver");var ce="tokens-studio",Ce=i(e=>`${JSON.stringify(e,null,2)}
|
|
13
|
+
`,"json"),B=i(e=>`${Number(e.toFixed(4))}`,"num"),Yo=i(e=>Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,"0"),"hexByte");function An(e){return e.alpha!==void 0&&e.alpha<1?`${e.hex}${Yo(e.alpha)}`:e.hex}i(An,"color");function On(e){return`${B(e.value)}${e.unit}`}i(On,"dimension");function ae(e){return e.unit==="px"?B(e.value):On(e)}i(ae,"shadowLength");function Qo(e){let{shadow:n}=e;return{x:ae(n.offsetX),y:ae(n.offsetY),blur:ae(n.blur),spread:ae(n.spread),color:An(n.color),type:n.inset?"innerShadow":"dropShadow"}}i(Qo,"shadow");var j=i((e,...n)=>n.some(o=>e===o||e.startsWith(`${o}.`)),"startsWith");function et(e,n){switch(e.type){case"color":return"color";case"dimension":return j(n,"font.size")?"fontSizes":j(n,"border-width","border.width")?"borderWidth":j(n,"border.radius")?"borderRadius":j(n,"space","spacing")?"spacing":j(n,"breakpoint","container-size","layout")?"sizing":"dimension";case"fontFamily":return"fontFamilies";case"fontWeight":return"fontWeights";case"number":return j(n,"font.line-height")?"lineHeights":"number";case"shadow":return"boxShadow";default:return"other"}}i(et,"tokensStudioType");function nt(e,n){switch(e.kind){case"ref":return`{${re(e.path)}}`;case"color":return An(e);case"dimension":return On(e);case"fontFamily":return e.family;case"fontWeight":return e.weight;case"number":return n==="lineHeights"?`${B(e.number*100)}%`:e.number;case"shadow":return Qo(e);case"strokeStyle":return e.style;default:return e.raw}}i(nt,"tokensStudioValue");function ot(e){if(e.deprecated===void 0||e.deprecated===!1)return e.description;let n=typeof e.deprecated=="string"?`Deprecated: ${e.deprecated}`:"Deprecated.";return e.description?`${e.description} ${n}`:n}i(ot,"description");function tt(e,n){let o=et(e,n),t={value:nt(e.value,o),type:o},r=ot(e);return r!==void 0&&(t.description=r),t}i(tt,"projectToken");function Ln(e,n=""){let o={};for(let[t,r]of Object.entries(e)){let s=R(t),a=n?`${n}.${s}`:s;o[s]=y(r)?tt(r,a):Ln(r,a)}return o}i(Ln,"projectTokensStudioGroup");function rt(e){if(typeof e=="number")return`${B(e*100)}%`;let n=/^(-?[\d.]+)em$/.exec(e.trim());return n?`${B(Number(n[1])*100)}%`:e}i(rt,"letterSpacing");function it(e){let n={};return e.letterSpacing&&(n["letter-spacing"]=Object.fromEntries(Object.entries(e.letterSpacing).map(([o,t])=>[R(o),{value:rt(t),type:"letterSpacing"}]))),e.textTransform&&(n["text-case"]=Object.fromEntries(Object.entries(e.textTransform).map(([o,t])=>[R(o),{value:t,type:"textCase"}]))),n}i(it,"fontExtensionTokens");function H(e){let n=Ln(e.groups),o=e.extensions["com.apollion.font"];return o&&n.font&&(n.font={...n.font,...it(o)}),Ce(n)}i(H,"renderTokensStudioSet");function Ee(e){return`color/${e.brand}/${e.mode}/${e.surface}`}i(Ee,"tokensStudioColorSetName");function Gn(e){return[{name:"base",group:"base",theme:"base"},...e.spacing.map(n=>({name:`spacing/${n.dimension}`,group:"dimension",theme:n.dimension})),...e.font.filter(n=>!n.deprecatedDimension).map(n=>({name:`font/${n.textSize}`,group:"textSize",theme:n.textSize})),...e.color.map(n=>({name:Ee(n),group:"color",theme:`${n.brand} / ${n.mode} / ${n.surface}`}))]}i(Gn,"planTokensStudioSets");function K(e){return`${ce}/${e}.json`}i(K,"tokensStudioSetFile");function jn(e){let n=Gn(e).map(o=>({id:o.name.replace(/\//g,"-"),name:o.theme,group:o.group,selectedTokenSets:{[o.name]:"enabled"}}));return Ce(n)}i(jn,"renderTokensStudioThemes");function Fn(e){return Ce({tokenSetOrder:Gn(e).map(n=>n.name)})}i(Fn,"renderTokensStudioMetadata");var st="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function at(e,n,o){let t=[];if(e.description!==void 0&&t.push(e.description),e.deprecated===!0?t.push("@deprecated"):typeof e.deprecated=="string"&&t.push(`@deprecated ${e.deprecated}`),t.length!==0){o.push(`${n}/**`);for(let r of t)o.push(`${n} * ${r.replace(/\*\//g,"*\\/")}`);o.push(`${n} */`)}}i(at,"emitDoc");function zn(e,n,o){let t=" ".repeat(n);for(let[r,s]of Object.entries(e))y(s)?(at(s,t,o),o.push(`${t}${JSON.stringify(r)}: ${JSON.stringify(v(s.value))},`)):(o.push(`${t}${r}: {`),zn(s,n+1,o),o.push(`${t}},`))}i(zn,"emitGroup");function Nn(e){let{brand:n,mode:o,surface:t,dimension:r}=e.meta,s=[st,`// Variant: brand=${n} mode=${o} surface=${t} dimension=${r}`,"","export const tokens = {"];return zn(e.groups,1,s),s.push("} as const;","","export type Tokens = typeof tokens;",""),s.join(`
|
|
14
|
+
`)}i(Nn,"renderTs");var ct=["light","dark"],ut=["positive","negative"],dt=["compact","normal","spacious"],lt=["smaller","default","larger","largest"];function ue(e){let n=[...new Set(e.textSizes??lt)];if(!n.includes("default"))throw new Error(`apollion-tokens: textSizes must include 'default' (got [${n.join(", ")}])`);return n}i(ue,"resolveTextSizes");function de(e){let n=e.modes??ct,o=e.surfaces??ut,t=e.dimensions??dt,r=Object.entries(e.brands).sort(([a],[c])=>a.localeCompare(c)),s=[];for(let[a,c]of r)for(let u of n)for(let p of o)for(let b of t)s.push({brand:a,colors:c,mode:u,surface:p,dimension:b});return s}i(de,"expandVariants");function Pn(e){return`${e.brand}.${e.mode}.${e.surface}.${e.dimension}`}i(Pn,"variantName");import{createHash as pt}from"node:crypto";function le(e){return pt("sha256").update(e).digest("hex")}i(le,"sha256");function Me(e){return le(Ve(e))}i(Me,"hashConfig");function Ve(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(Ve).join(",")}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${Ve(e[t])}`).join(",")}}`}i(Ve,"stableStringify");function _n(e){try{let{execSync:n}=mo("node:child_process");return n("git rev-parse --short HEAD",{cwd:e,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim()}catch{return""}}i(_n,"detectGitCommit");function Bn(){return{node:process.version,platform:`${process.platform}-${process.arch}`}}i(Bn,"buildEnv");function Hn(e){let n=[...e.files].sort((t,r)=>t.path.localeCompare(r.path)),o={configHash:e.configHash,files:n,gitCommit:e.gitCommit,buildEnv:e.buildEnv};return`${JSON.stringify(o,null,2)}
|
|
15
|
+
`}i(Hn,"serializeManifest");import{DEFAULT_TEXT_SIZE as ft}from"@apollion-dsi/core/themes/text-size";var mt="json/sets",Kn="json/resolver.json";function W(e){return`${mt}/${e}.json`}i(W,"setFile");function gt(e,n,o){return`${e}.color.${n}.${o}`}i(gt,"colorSetName");function yt(e){return`spacing.${e}`}i(yt,"spacingSetName");function ht(e){return`font.${e}`}i(ht,"fontSetName");function bt(e){return`font.${e}`}i(bt,"legacyFontSetName");function pe(e,n){e.includes(n)||e.push(n)}i(pe,"pushUnique");function Wn(e){let n=de(e),o=[],t=[],r=[],s=[],a=new Set,c=[],u=new Set,p=[],b=[...ue(e)],I=b.map(d=>{let l=ht(d);return{kind:"font",name:l,file:W(l),textSize:d}});for(let d of n){pe(o,d.brand),pe(t,d.mode),pe(r,d.surface),pe(s,d.dimension);let l=gt(d.brand,d.mode,d.surface);a.has(l)||(a.add(l),c.push({kind:"color",name:l,file:W(l),brand:d.brand,mode:d.mode,surface:d.surface}));let g=yt(d.dimension);u.has(g)||(u.add(g),p.push({kind:"spacing",name:g,file:W(g),dimension:d.dimension}))}for(let d of s){let l=bt(d);I.push({kind:"font",name:l,file:W(l),textSize:ft,deprecatedDimension:d})}return{base:{kind:"base",name:"base",file:W("base")},spacing:p,font:I,color:c,modifiers:{brand:o,mode:t,surface:r,dimension:s,textSize:b}}}i(Wn,"planSets");import{defaultInputColors as io,toDarkColors as Ot}from"@apollion-dsi/core/themes/colors";import{createFoundation as so}from"@apollion-dsi/core/themes/foundation";import{createSemantic as Lt}from"@apollion-dsi/core/themes/semantic";import{defaultInputSpacing as Gt}from"@apollion-dsi/core/themes/spacing";import{invertForSurface as jt}from"@apollion-dsi/core/themes/surface";import{converter as qn,formatHex as A,interpolate as Rt,parse as S,wcagContrast as Yn}from"culori";var X=qn("oklch"),kt=qn("rgb");function f(e,n,o){let t=S(e),r=S(n);if(!t||!r)return e;let s=Rt([t,r],"oklch");return A(s(o))??e}i(f,"mixOklch");function St(e){return e?typeof e=="string"?e:e.base:"#000"}i(St,"coerceToHex");var fe=1.3,It=.05,Un=.04,C=i((e,n)=>{let o=S(e),t=S(n);return!o||!t?1:Yn(o,t)},"contrastRatio"),U=i(e=>{let n=X(S(e));return n?n.l??0:null},"oklchLightness"),xt=4.5;function J(e,n,o=xt){let t=S(n),r=X(S(e));if(!t||!r)return e;let s=C("#fff",n)>=C("#000",n)?.04:-.04;for(let a=0;a<25;a+=1){let c=A(r)??e,u=S(c);if(u&&Yn(u,t)>=o)return c;let p=Math.min(1,Math.max(0,(r.l??0)+s));if(p===(r.l??0))break;r={...r,l:p}}return A(r)??e}i(J,"readableColor");var Jn=i((e,n)=>{if(C(e,n)>=fe)return!0;let o=U(e),t=U(n);return o!==null&&t!==null&&Math.abs(o-t)>=It},"isPerceptibleState"),Ae=i(e=>e?C("#fff",e)>C("#000",e):!1,"isDarkSurface");function Xn(e,n,o){let t=X(S(e));if(!t)return null;let r={...t,l:o??t.l??0},s=n?Un:-Un;for(let a=0;a<25;a+=1){let c=Math.min(1,Math.max(0,(r.l??0)+s));if(c===(r.l??0))break;r={...r,l:c};let u=A(r);if(u&&C(e,u)>=fe)return u}return A(r)??null}i(Xn,"derivePerceptibleState");function Zn(e,n,o){let t=Xn(e,n,o);if(t&&C(e,t)>=fe)return t;let r=Xn(e,!n);return r&&C(e,r)>=fe?r:t??r}i(Zn,"perceptibleStateFor");function T(e,n){let o=typeof e=="object"&&e!==null?e:void 0,t=St(e),r=n.deepDark,s=n.deepLight,a={base:t,dark:f(t,r,.6),action:f(t,r,.2),active:f(t,s,.6),light:f(t,s,.9),onLight:t};if(S(t)){let c=Ae(n.baseLight),u=Jn(t,a.action);if(u||(a.action=Zn(t,c)??a.action),!Jn(t,a.active)){let p=u?void 0:U(a.action)??void 0;a.active=Zn(t,c,p)??a.active}}if(a.onLight=J(a.action,a.light),o){let c=o.action??a.action,u=o.light??a.light;return{base:t,dark:o.dark??a.dark,action:c,active:o.active??a.active,light:u,onLight:o.onLight??J(c,u)}}return a}i(T,"mountSingleColor");function Qn(e){let n=e.deepLight,o=e.deepDark;return{0:n,5:f(n,o,.05),10:f(n,o,.1),20:f(n,o,.2),30:f(n,o,.3),40:f(n,o,.4),50:f(n,o,.5),60:f(n,o,.6),70:f(n,o,.7),80:f(n,o,.8),90:f(n,o,.9),100:f(n,o,1)}}i(Qn,"mountGreyscaleColors");function eo(e){let n=e.deepLight,o=e.deepDark,t=typeof e.primary=="object"&&e.primary?e.primary.base:e.primary,r=i(a=>1/17*(a-1),"interpolation"),s=f(t,o,.5);return{0:f(s,n,r(18)),5:f(s,n,r(17.5)),10:f(s,n,r(17)),20:f(s,n,r(16)),30:f(s,n,r(15)),40:f(s,n,r(14)),50:f(s,n,r(13)),60:f(s,n,r(12)),70:f(s,n,r(11)),80:f(s,n,r(10)),90:f(s,n,r(9)),100:f(s,n,r(8)),110:f(s,n,r(7)),120:f(s,n,r(6)),130:f(s,n,r(5)),140:f(s,n,r(4)),150:f(s,n,r(3)),160:f(s,n,r(2)),170:s,180:f(s,o,.25)}}i(eo,"mountNeutralColors");function F(e,n){let o=X(S(e));if(!o)return e;let t=Math.min(1,Math.max(0,(o.l??0)+n));return A({...o,l:t})??e}i(F,"shiftLightness");function me(e,n){let o=X(S(e));if(!o)return e;let t=o.l??0,r=n.min??0,s=n.max??1;return t>=r&&t<=s?e:A({...o,l:Math.min(s,Math.max(r,t))})??e}i(me,"clampLightness");function O(e,n){let o=kt(S(e));if(!o)return e;let t=Math.min(1,Math.max(0,n)),r=i(s=>Math.round((s??0)*255),"channel");return`rgba(${r(o.r)}, ${r(o.g)}, ${r(o.b)}, ${t})`}i(O,"toRgbaString");import{apcaContrast as ge,DARK_BOOST_TAPER_MAX_L as Oe,DARK_ELEVATION_BOOST as Tt,EDGE_ALPHA as Le,HALATION_FLOORS as ye,INK_APCA_MIN as Ge,INK_MIX as je,LADDER_DELTAS as no,MIN_CONTRAST_AA as oo,WASH_ALPHA as wt}from"@apollion-dsi/core/themes/colors";var Dt="#FFFFFF",Fe="#000000";function $t(e){return Ae(e.baseLight)?"dark":"light"}i($t,"resolvePolarity");function vt(e){let n=ye.CANVAS_MIN_L;return e<=n?1:e>=Oe?0:(Oe-e)/(Oe-n)}i(vt,"darkElevationBoostFactor");function to(e,n,o){if(Math.abs(ge(e,n))>=o)return e;let t=Math.abs(ge("#ffffff",n))>=Math.abs(ge("#000000",n)),r=e;for(let s=0;s<40;s+=1){let a=F(r,t?.02:-.02);if(a===r||(r=a,Math.abs(ge(r,n))>=o))break}return r}i(to,"ensureApca");function Ct(e,n){let o=e.baseLight??Dt,t=n==="dark",r=t?me(o,{min:ye.CANVAS_MIN_L}):o,s=F(r,no.sunken),a=t?vt(U(r)??0):0,c=i(u=>no[u]+a*Tt[u],"delta");return{canvas:r,sunken:t?me(s,{min:ye.CANVAS_MIN_L}):s,paper:F(r,c("paper")),raised:F(r,c("raised")),overlay:F(r,c("overlay")),scrim:t?e.deepLight??Fe:e.neutral?.["180"]??e.baseDark??Fe}}i(Ct,"deriveSurface");function Et(e,n){let o=e.baseDark??Fe,t=me(to(J(o,n.paper,oo),n.paper,Ge.primary),{max:ye.INK_MAX_L}),r=i((s,a)=>to(J(f(t,n.canvas,s),n.paper,oo),n.paper,a),"tier");return{primary:t,secondary:r(je.secondary,Ge.secondary),muted:r(je.muted,Ge.muted),disabled:f(t,n.canvas,je.disabled)}}i(Et,"deriveInk");function Vt(e){return{hairline:O(e.primary,Le.hairline),border:O(e.primary,Le.border),strong:O(e.primary,Le.strong)}}i(Vt,"deriveEdge");function Mt(e,n){let o=wt[n];return{hover:O(e.primary,o.hover),pressed:O(e.primary,o.pressed),selected:O(e.primary,o.selected)}}i(Mt,"deriveWash");function At(e,n){return n?{surface:{...e.surface,...n.surface},ink:{...e.ink,...n.ink},edge:{...e.edge,...n.edge},wash:{...e.wash,...n.wash}}:e}i(At,"applyOverride");function ro(e,n){let o=$t(e),t=Ct(e,o),r=Et(e,t),s={surface:t,ink:r,edge:Vt(r),wash:Mt(r,o)};return At(s,n?.[o])}i(ro,"resolveSurfaceLadder");function Ft(e){let n=eo(e);return{baseDark:e.baseDark,baseLight:e.baseLight,deepDark:e.deepDark,deepLight:e.deepLight,transparent:e.transparent??"transparent",neutral:n,grayscale:Qn(e),...ro({...e,neutral:n},e.ladder),main:T(e.main,e),opposite:T(e.opposite,e),complementary:T(e.complementary,e),danger:T(e.danger,e),information:T(e.information,e),success:T(e.success,e),warning:T(e.warning,e),primary:T(e.primary,e),secondary:T(e.secondary,e),tertiary:T(e.tertiary,e)}}i(Ft,"composeColors");function zt(e){return{...e,baseLight:e.baseLight??io.baseLight,baseDark:e.baseDark??io.baseDark}}i(zt,"withContrastDefaults");function E(e,n=Gt){let o=zt(e.colors),t=e.mode==="dark"?Ot(o):o,r=Ft(t),s=ee(n,e.dimension),a=Lt({colors:r,spacing:s}),c=so(a);return e.surface==="negative"&&(c=so(jt({semantic:a,colors:r},"negative").semantic)),{foundation:c,colors:r}}i(E,"buildVariantThemes");async function Vi(e){let{config:n,outDir:o,cwd:t=process.cwd(),verbose:r=!1}=e,s=de(n),a=n.output??{};if(s.length===0)throw new Error("apollion-tokens build: no variants (config.brands is empty)");let c=await Nt(Z(_t(),"apollion-tokens-"));try{let u=[],p=i(async(d,l)=>{await Ht(c,d,l),u.push({path:d,sha256:le(l)}),r&&console.log(` \u2713 ${d}`)},"emit");if(a.json||a.tokensStudio){let d=Wn(n),l=Bt(d,s);if(cn([l.base,...l.spacing,...l.font,...l.color]),a.json){await p(d.base.file,vn(l.base));for(let[g,m]of d.spacing.entries())await p(m.file,En(l.spacing[g],m.dimension));for(let[g,m]of d.font.entries())await p(m.file,Vn(l.font[g],m));for(let[g,m]of d.color.entries())await p(m.file,Cn(l.color[g],m.brand,m.mode,m.surface));await p(Kn,Mn(n,d))}if(a.tokensStudio){await p(K("base"),H(l.base));for(let[g,m]of d.spacing.entries())await p(K(`spacing/${m.dimension}`),H(l.spacing[g]));for(let[g,m]of d.font.entries())m.deprecatedDimension||await p(K(`font/${m.textSize}`),H(l.font[g]));for(let[g,m]of d.color.entries())await p(K(Ee(m)),H(l.color[g]));await p(`${ce}/$themes.json`,jn(d)),await p(`${ce}/$metadata.json`,Fn(d))}}if(a.css||a.ts)for(let d of s){let{foundation:l,colors:g}=E(d),m=G(l,g,d),w=Pn(d);a.css&&await p(`css/${w}.css`,xn(m,{rgbCompanions:a.tailwind})),a.ts&&await p(`ts/${w}.d.ts`,Nn(m))}if(a.css||a.cssModes){let d=ue(n).map(l=>[l,Ie(l)]);await p("css/font.css",wn(d))}if(a.cssModes){let d=new Map;for(let l of s){let g=`${l.brand}.${l.surface}.${l.dimension}`,m=d.get(g)??{};m[l.mode]=l,d.set(g,m)}for(let[l,{light:g,dark:m}]of d){if(!g||!m)throw new Error(`apollion-tokens build: output.cssModes needs both modes for ${l} (config.modes)`);let w=E(g),q=E(m),he=Tn(G(w.foundation,w.colors,g),G(q.foundation,q.colors,m),{rgbCompanions:a.tailwind});await p(`css/${l}.modes.css`,he)}}if(a.tailwind){let d=s[0],{foundation:l,colors:g}=E(d),m=G(l,g,d);await p("tailwind/preset.mjs",Sn(m)),await p("tailwind/tw-merge.mjs",In(m))}if(a.designMd){let d=[...new Set(s.map(l=>l.brand))];for(let l of d){let m=s.filter(w=>w.brand===l).map(w=>{let{foundation:q,colors:he}=E(w);return G(q,he,w)});await p(`design/${l}.design.md`,Dn(l,m))}}let b={configHash:Me(n),files:u,gitCommit:_n(t),buildEnv:Bn()},I=Hn(b);return await lo(Z(c,"manifest.json"),I),await co(o,{recursive:!0,force:!0}),await uo(po(o),{recursive:!0}),await Pt(c,o),r&&console.log(`\u2713 ${u.length} files \u2192 ${o}`),{manifest:b,outDir:o}}catch(u){throw await co(c,{recursive:!0,force:!0}).catch(()=>{}),u}}i(Vi,"build");async function Mi(e){let{config:n,outDir:o}=e,t;try{t=JSON.parse(await ao(Z(o,"manifest.json"),"utf8"))}catch{return!1}if(t.configHash!==Me(n))return!1;for(let r of t.files){let s;try{s=await ao(Z(o,r.path))}catch{return!1}if(le(s)!==r.sha256)return!1}return!0}i(Mi,"check");function Bt(e,n){let o=e.spacing.map(s=>{let a=n.find(c=>c.dimension===s.dimension);return hn(E(a).foundation,s.dimension)}),t=e.font.map(s=>Ie(s.textSize)),r=e.color.map(s=>{let a=n.find(p=>p.brand===s.brand&&p.mode===s.mode&&p.surface===s.surface),{foundation:c,colors:u}=E(a);return yn(c,u)});return{base:gn(),spacing:o,font:t,color:r}}i(Bt,"buildSetSlices");async function Ht(e,n,o){let t=Z(e,n);await uo(po(t),{recursive:!0}),await lo(t,o)}i(Ht,"writeAt");export{Vi as build,Mi as check};
|