@apollion-dsi/tokens 7.3.0 → 7.5.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 +8 -0
- package/lib/build.cjs +13 -11
- package/lib/build.esm.js +13 -11
- package/lib/cli.mjs +14 -12
- package/lib/config-loader.cjs +2 -2
- package/lib/config-loader.esm.js +3 -3
- package/lib/config-schema.cjs +1 -1
- package/lib/config-schema.esm.js +1 -1
- package/package.json +8 -5
- package/src/build.ts +18 -8
- package/src/builders/layout.ts +13 -4
- package/src/config-schema-runtime.ts +10 -1
- package/src/config-schema.ts +26 -0
- package/src/ir.ts +38 -19
- package/src/renderers/css.ts +58 -1
- package/src/renderers/resolver.ts +39 -14
- package/src/set-plan.ts +38 -14
package/README.md
CHANGED
|
@@ -28,6 +28,8 @@ non-React stacks or standalone token builds, install it directly:
|
|
|
28
28
|
yarn add @apollion-dsi/tokens
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
The `apollion-tokens` CLI and the build API need Node.js 22 or newer.
|
|
32
|
+
|
|
31
33
|
## Documentation
|
|
32
34
|
|
|
33
35
|
- **Docs & token reference:** <https://www.apollion.com.br>
|
|
@@ -54,6 +56,12 @@ The build emits, per variant (light/dark):
|
|
|
54
56
|
(`alpha` only when below 1).
|
|
55
57
|
- `dimension` → `{ "value": <number>, "unit": "rem" }`.
|
|
56
58
|
- **`dist/ts/*.d.ts`** — typed token surfaces (hex / `rem` strings).
|
|
59
|
+
- **`dist/css/font.css`** — the text-size axis (`textSize`): `default` on `:root`,
|
|
60
|
+
every level (`smaller`/`default`/`larger`/`largest`) under `data-apollion-text-size`. Set the
|
|
61
|
+
attribute on `<html>` or any subtree to switch the text size at runtime. JSON
|
|
62
|
+
consumers compose `json/sets/font.<textSize>.json` via the resolver's
|
|
63
|
+
`textSize` modifier (the `font.<dimension>` sets are deprecated aliases of
|
|
64
|
+
`font.default`).
|
|
57
65
|
- **`dist/css/<brand>.<surface>.<dimension>.modes.css`** — opt-in
|
|
58
66
|
(`output.cssModes`): both modes in one file, scoped by
|
|
59
67
|
`html[data-apollion-mode]` (+ `prefers-color-scheme` fallback) — the CSS-only
|
package/lib/build.cjs
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
"use strict";var Y=Object.defineProperty;var qn=Object.getOwnPropertyDescriptor;var Xn=Object.getOwnPropertyNames;var Un=Object.prototype.hasOwnProperty;var i=(e,n)=>Y(e,"name",{value:n,configurable:!0});var Yn=(e,n)=>{for(var o in n)Y(e,o,{get:n[o],enumerable:!0})},Zn=(e,n,o,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Xn(n))!Un.call(e,t)&&t!==o&&Y(e,t,{get:()=>n[t],enumerable:!(r=qn(n,t))||r.enumerable});return e};var Qn=e=>Zn(Y({},"__esModule",{value:!0}),e);var Ko={};Yn(Ko,{build:()=>Bo,check:()=>zo});module.exports=Qn(Ko);var x=require("node:fs/promises"),Jn=require("node:os"),A=require("node:path");var te=require("culori");var H=require("@apollion-dsi/core/themes/border"),Fe=require("@apollion-dsi/core/themes/colors"),oe=require("@apollion-dsi/core/themes/depth"),C=require("@apollion-dsi/core/themes/font"),he=require("@apollion-dsi/core/themes/spacing"),_=require("culori");var Ve=require("@apollion-dsi/core/themes/breakpoints");function Me(e=Ve.defaultInputBreakpoints){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Me,"breakpointEntries");var Z=require("@apollion-dsi/core/themes/layout");function Ee(e=Z.defaultInputContainerSizes){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ee,"containerSizeEntries");function Ae(e=Z.defaultInputLayout){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(Ae,"layoutEntries");var $=require("@apollion-dsi/core/themes/motion");function Le(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.duration).map(o=>[o,{ms:e.duration[o],css:n.duration[o]}])}i(Le,"motionDurationEntries");function Oe(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.easing).map(o=>[o,{points:e.easing[o],css:n.easing[o]}])}i(Oe,"motionEasingEntries");function Ge(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.indicator).map(o=>[o,{ms:e.indicator[o],css:n.indicator[o]}])}i(Ge,"motionIndicatorEntries");function Ne(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.intent).map(o=>{let r=e.intent[o],t=typeof r.duration=="number"?null:r.duration,s=typeof r.duration=="number"?r.duration:e.duration[r.duration];return[o,{durationRef:t,duration:{ms:s,css:n.intent[o].duration},easingRef:r.easing,easing:{points:e.easing[r.easing],css:n.intent[o].easing}}]})}i(Ne,"motionIntentEntries");var je=require("@apollion-dsi/core/themes/dimension");function Q({multiplier:e=.25,alias:n},o){let r=o!==void 0?je.DIMENSION_MULTIPLIERS[o]:e;return(...t)=>t.map(s=>{let a=typeof s=="string"?n[s]:s;return`${r*a}rem`}).join(" ")}i(Q,"createSpacing");var ge={"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 ye(e){let n=Object.keys(ge).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(ye,"assertTokenMetaResolves");var eo=(0,_.converter)("oklch");function R(e){return typeof e.type=="string"&&"value"in e}i(R,"isToken");function v(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}i(v,"kebab");function Pe(e){return e.split(".").map(v).join(".")}i(Pe,"kebabPath");function E(e){return e.kind==="ref"?e.resolved.raw:e.raw}i(E,"rawValue");function ee(e,n){return Number(e.toFixed(n))||0}i(ee,"round");function be(e){let n=eo((0,_.parse)(e));if(!n)return{kind:"color",raw:e,components:[0,0,0],hex:"#000000"};let o=[ee(n.l,4),ee(n.c,4),ee(n.h??0,2)],r=(0,_.formatHex)(n)??"#000000";return n.alpha!==void 0&&n.alpha!==1?{kind:"color",raw:e,components:o,alpha:ee(n.alpha,4),hex:r}:{kind:"color",raw:e,components:o,hex:r}}i(be,"toColorValue");var _e=/^(-?(?:\d+\.?\d*|\.\d+))(px|rem)$/;function V(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(V,"toDimensionValue");function S(e){return{type:"color",value:be(e)}}i(S,"colorToken");function j(e){let n={};for(let[o,r]of Object.entries(e))n[o]=S(r);return n}i(j,"recordColorGroup");function Be(e){let n=(0,Fe.createReadableTextLayer)(e),o={};for(let[r,t]of Object.entries(n.palettes))o[r]=S(t);return o.neutral=j(n.neutral),o}i(Be,"buildReadableTextGroup");var no=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function ze(e){let n={};for(let o of no){let r=e[o];n[o]={base:S(r.base),dark:S(r.dark),action:S(r.action),active:S(r.active),light:S(r.light),onLight:S(r.onLight)}}return n.grayscale=j(e.grayscale),n.neutral=j(e.neutral),n.surface=j(e.surface),n.ink=j(e.ink),n.edge=j(e.edge),n.wash=j(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 He(e){let n=Q(he.defaultInputSpacing,e),o={};for(let r of Object.keys(he.defaultInputSpacing.alias))o[r]={type:"dimension",value:V(n(r))};return o}i(He,"buildSpacePrimitives");function Ke(){let e={};for(let[n,o]of Object.entries(H.defaultInputBorder.borderWidth))e[n]={type:"dimension",value:V(o)};return e}i(Ke,"buildBorderWidthPrimitives");function oo(e,n){return{color:ze(e),space:He(n),borderWidth:Ke()}}i(oo,"buildPrimitives");var We={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"},Je={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"},qe={hairline:"color.edge.hairline",border:"color.edge.border",strong:"color.edge.strong"};function ro(e,n){let o=e;for(let r of n.split(".").slice(1))if(o&&typeof o=="object"&&r in o)o=o[r];else return;return typeof o=="string"?o:void 0}i(ro,"lookupPrimitive");function P(e,n,o){let r={};for(let[t,s]of Object.entries(e)){let a=o[t],c=a?ro(n,a):void 0;r[t]=a&&c===s?{type:"color",value:{kind:"ref",path:a,resolved:be(s)}}:S(s)}return r}i(P,"colorRefGroup");var Xe={xs:"space.xs",sm:"space.small",md:"space.medium",lg:"space.large",xl:"space.xl",xxl:"space.xxl"},to={none:"border-width.none",thin:"border-width.thin",regular:"border-width.regular",great:"border-width.great",bold:"border-width.bold"};function io(e,n){let o=n.split("."),r=o[0]==="border-width"?"borderWidth":o[0],t=e[r];for(let s of o.slice(1))if(t&&!R(t)&&s in t)t=t[s];else return;return t&&R(t)&&t.value.kind==="dimension"?t.value.raw:void 0}i(io,"lookupDimensionPrimitive");function Re(e,n,o){let r={};for(let[t,s]of Object.entries(e)){let a=o[t],c=a?io(n,a):void 0;r[t]=a&&c===s?{type:"dimension",value:{kind:"ref",path:a,resolved:V(s)}}:{type:"dimension",value:V(s)}}return r}i(Re,"dimensionRefGroup");function Ue(e){let n={},o={};for(let[s,a]of Object.entries(H.defaultInputBorder.borderRadius))_e.test(a)?n[s]={type:"dimension",value:V(a)}:o[s]=a;let r=Re(H.defaultInputBorder.borderWidth,e,to),t={};for(let[s,a]of Object.entries(H.defaultInputBorder.borderStyle))t[s]={type:"strokeStyle",value:{kind:"strokeStyle",raw:a,style:a}};return{group:{radius:n,width:r,style:t},extensions:o}}i(Ue,"buildBorder");function Ye(e){let n=(0,C.createFont)(C.defaultInputFont,e),o={};for(let[c,u]of Object.entries(C.defaultInputFont.fontFamily)){let g=u.replace(/;\s*$/,"").trim();o[c]={type:"fontFamily",value:{kind:"fontFamily",raw:g,family:g}}}let r={};for(let[c,u]of Object.entries(n.fontSize))r[c]={type:"dimension",value:V(u)};let t={};for(let[c,u]of Object.entries(C.defaultInputFont.fontWeight))t[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:r,weight:t,lineHeight:s},extensions:a}}i(Ye,"buildFont");var so=/rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z]+$/;function ao(e){let n=e.trim(),o=n.startsWith("inset");o&&(n=n.slice(5).trim());let r=n.match(so),t=r?r[0]:"#000000",a=(r?n.slice(0,r.index).trim():n).split(/\s+/).filter(Boolean),c=i(u=>V(a[u]??"0px"),"dim");return{kind:"shadow",raw:e,shadow:{color:be(t),offsetX:c(0),offsetY:c(1),blur:c(2),spread:c(3),inset:o}}}i(ao,"parseShadow");function Ze(e){let n=(0,oe.createDeth)(e),o={};for(let r of Object.keys(oe.levelValues))o[r]={type:"shadow",value:ao(n(r))};return o}i(Ze,"buildShadow");function ne(e,n,o){let r={};for(let[t,s]of Object.entries(e)){let a=n?`${n}.${v(t)}`:v(t);if(R(s)){o.add(a);let c=ge[a];r[t]=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 r[t]=ne(s,a,o)}return r}i(ne,"decorateGroup");function co(e){let n=new Set,o=ne(e.primitives,"",n),r=ne(e.groups,"",n);return ye(n),{...e,primitives:o,groups:r}}i(co,"decorateMeta");function re(e,n){return ne(e,"",n)}i(re,"decorateSlice");function Qe(e,n,o){for(let[r,t]of Object.entries(e)){let s=n?`${n}.${v(r)}`:v(r);R(t)?o.add(s):Qe(t,s,o)}}i(Qe,"collectPaths");function en(e){let n=new Set;for(let o of e)Qe(o.groups,"",n);ye(n)}i(en,"assertSlicesMetaComplete");function nn(){let e={};for(let[n,o]of Me())e[n]={type:"dimension",value:V(o)};return e}i(nn,"buildBreakpoints");function on(){let e={};for(let[n,o]of Ee())e[n]={type:"dimension",value:V(o)};return e}i(on,"buildContainerSizes");function rn(){let e={};for(let[n,o]of Ae())e[n]={type:"dimension",value:V(o)};return e}i(rn,"buildLayoutConstants");function tn(){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 Le())o[a]=e(c);let r={};for(let[a,c]of Oe())r[a]=n(c);let t={};for(let[a,c]of Ge())t[a]=e(c);let s={};for(let[a,c]of Ne()){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:r,indicator:t,intent:s}}i(tn,"buildMotion");var sn={unit:"px",interval:"half-open [value, next) \u2014 min-width sets, ascending",cssVarsUsage:"informational only \u2014 var() is invalid inside a @media prelude"};function an(){let e=Ke(),o=Ue({borderWidth:e}),r={"com.apollion.breakpoint":sn};Object.keys(o.extensions).length>0&&(r["com.apollion.border"]={radius:o.extensions});let t=new Set;return{groups:re({"border-width":e,border:o.group,breakpoint:nn(),"container-size":on(),layout:rn(),motion:tn()},t),extensions:r}}i(an,"buildBaseIR");function cn(e){let n=Ye(e),o=new Set;return{groups:re({font:n.group},o),extensions:{"com.apollion.font":n.extensions}}}i(cn,"buildFontIR");function un(e,n){let o=ze(n),r=new Set;return{groups:re({color:o,bg:P(e.bg,n,We),text:P(e.text,n,Je),edge:P(e.edge,n,qe),tx:Be(n),shadow:Ze(n)},r),extensions:{}}}i(un,"buildColorIR");function ln(e,n){let o=He(n),r={space:o},t=new Set;return{groups:re({space:o,spacing:Re(e.spacing,r,Xe)},t),extensions:{}}}i(ln,"buildSpacingIR");function uo(e,n,o){let r={brand:o.brand,mode:o.mode,surface:o.surface,dimension:o.dimension},t=oo(n,o.dimension),s=Ue(t),a=Ye(o.dimension),c={"com.apollion.variant":r,"com.apollion.font":a.extensions,"com.apollion.breakpoint":sn};Object.keys(s.extensions).length>0&&(c["com.apollion.border"]={radius:s.extensions});let u={description:`Apollion DS tokens \u2014 DTCG 2025.10. Variant: ${r.brand}/${r.mode}/${r.surface}/${r.dimension}.`,meta:r,primitives:t,groups:{bg:P(e.bg,n,We),text:P(e.text,n,Je),edge:P(e.edge,n,qe),tx:Be(n),spacing:Re(e.spacing,t,Xe),border:s.group,breakpoint:nn(),"container-size":on(),layout:rn(),motion:tn(),font:a.group,shadow:Ze(n)},extensions:c};return co(u)}i(uo,"buildIR");var B=uo;var lo=(0,te.converter)("rgb"),dn="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function ke(e){if(e.value.kind==="color")return e.value;if(e.value.kind==="ref"&&e.value.resolved.kind==="color")return e.value.resolved}i(ke,"colorPayload");function Ie(e){return e.alpha===void 0}i(Ie,"isOpaqueColor");function pn(e){let n=lo((0,te.parse)(e.hex));if(!n)return"0 0 0";let o=i(r=>Math.min(255,Math.max(0,Math.round(r*255))),"channel");return`${o(n.r)} ${o(n.g)} ${o(n.b)}`}i(pn,"rgbTriplet");function K(e,n=[]){let o=new Map;for(let[r,t]of Object.entries(e)){let s=[...n,v(r)];if(R(t))o.set(s.join("-"),t);else for(let[a,c]of K(t,s))o.set(a,c)}return o}i(K,"flatTokens");function h(e,...n){let o=e[n[0]];for(let r of n.slice(1)){if(!o||R(o))return{};o=o[r]}return o&&!R(o)?o:{}}i(h,"groupAt");function fn(e){let n=[];for(let o of["bg","text","edge","tx"])for(let[r,t]of K(h(e.groups,o),[o])){let s=ke(t);s&&n.push({key:r,cssVar:`--apollion-${r}`,opaque:Ie(s)})}return n}i(fn,"colorEntries");function M(e,n){return[...K(e)].map(([o])=>[o,`var(--apollion-${[...n,o].join("-")})`])}i(M,"varEntries");function w(e,n,o){if(o.length!==0){e.push(` ${n}: {`);for(let[r,t]of o)e.push(` ${JSON.stringify(r)}: ${JSON.stringify(t)},`);e.push(" },")}}i(w,"pushScale");function mn(e){let n=[dn,"// Tailwind preset over the Apollion foundation tokens \u2014 requires dist/css/ vars in scope.","","const preset = {"," theme: {"," extend: {"],o=fn(e);n.push(" colors: {");for(let{key:r,cssVar:t,opaque:s}of o)s?n.push(` ${JSON.stringify(r)}: ${JSON.stringify(`rgb(var(${t}-rgb) / <alpha-value>)`)},`):(n.push(` // ${r} carries its own alpha \u2014 excluded from the <alpha-value> modifier form.`),n.push(` ${JSON.stringify(r)}: ${JSON.stringify(`var(${t})`)},`));return n.push(" },"),w(n,"screens",[...K(h(e.groups,"breakpoint"))].filter(([r])=>r!=="xs").map(([r,t])=>[r,E(t.value)])),w(n,"spacing",M(h(e.groups,"spacing"),["spacing"])),w(n,"borderRadius",M(h(e.groups,"border","radius"),["border","radius"])),w(n,"borderWidth",M(h(e.groups,"border","width"),["border","width"])),w(n,"fontFamily",M(h(e.groups,"font","family"),["font","family"])),w(n,"fontSize",M(h(e.groups,"font","size"),["font","size"])),w(n,"fontWeight",M(h(e.groups,"font","weight"),["font","weight"])),w(n,"lineHeight",M(h(e.groups,"font","lineHeight"),["font","line-height"])),w(n,"boxShadow",M(h(e.groups,"shadow"),["shadow"])),w(n,"transitionDuration",M(h(e.groups,"motion","duration"),["motion","duration"])),w(n,"transitionTimingFunction",M(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 ne=Object.defineProperty;var oo=Object.getOwnPropertyDescriptor;var to=Object.getOwnPropertyNames;var ro=Object.prototype.hasOwnProperty;var i=(e,n)=>ne(e,"name",{value:n,configurable:!0});var io=(e,n)=>{for(var o in n)ne(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&&ne(e,r,{get:()=>n[r],enumerable:!(t=oo(n,r))||t.enumerable});return e};var ao=e=>so(ne({},"__esModule",{value:!0}),e);var nt={};io(nt,{build:()=>Yo,check:()=>Qo});module.exports=ao(nt);var x=require("node:fs/promises"),no=require("node:os"),A=require("node:path");var ue=require("@apollion-dsi/core/themes/text-size");var ae=require("culori");var K=require("@apollion-dsi/core/themes/border"),He=require("@apollion-dsi/core/themes/colors"),ie=require("@apollion-dsi/core/themes/depth"),C=require("@apollion-dsi/core/themes/font"),Re=require("@apollion-dsi/core/themes/spacing"),Ke=require("@apollion-dsi/core/themes/text-size"),_=require("culori");var Le=require("@apollion-dsi/core/themes/breakpoints");function Oe(e=Le.defaultInputBreakpoints){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Oe,"breakpointEntries");var N=require("@apollion-dsi/core/themes/layout");function Ge(e=N.defaultInputContainerSizes){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ge,"containerSizeEntries");function je(e=N.defaultInputLayout){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(je,"layoutEntries");function Fe(e=N.defaultInputZIndex){return Object.entries(e)}i(Fe,"zIndexEntries");var $=require("@apollion-dsi/core/themes/motion");function ze(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.duration).map(o=>[o,{ms:e.duration[o],css:n.duration[o]}])}i(ze,"motionDurationEntries");function Ne(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.easing).map(o=>[o,{points:e.easing[o],css:n.easing[o]}])}i(Ne,"motionEasingEntries");function Pe(e=$.defaultInputMotion){let n=(0,$.createMotion)(e);return Object.keys(e.indicator).map(o=>[o,{ms:e.indicator[o],css:n.indicator[o]}])}i(Pe,"motionIndicatorEntries");function _e(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(_e,"motionIntentEntries");var Be=require("@apollion-dsi/core/themes/dimension");function oe({multiplier:e=.25,alias:n},o){let t=o!==void 0?Be.DIMENSION_MULTIPLIERS[o]:e;return(...r)=>r.map(s=>{let a=typeof s=="string"?n[s]:s;return`${t*a}rem`}).join(" ")}i(oe,"createSpacing");var he={"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 be(e){let n=Object.keys(he).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(be,"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 We(e){return e.split(".").map(T).join(".")}i(We,"kebabPath");function M(e){return e.kind==="ref"?e.resolved.raw:e.raw}i(M,"rawValue");function te(e,n){return Number(e.toFixed(n))||0}i(te,"round");function Ie(e){let n=co((0,_.parse)(e));if(!n)return{kind:"color",raw:e,components:[0,0,0],hex:"#000000"};let o=[te(n.l,4),te(n.c,4),te(n.h??0,2)],t=(0,_.formatHex)(n)??"#000000";return n.alpha!==void 0&&n.alpha!==1?{kind:"color",raw:e,components:o,alpha:te(n.alpha,4),hex:t}:{kind:"color",raw:e,components:o,hex:t}}i(Ie,"toColorValue");var Je=/^(-?(?:\d+\.?\d*|\.\d+))(px|rem)$/;function E(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(E,"toDimensionValue");function S(e){return{type:"color",value:Ie(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 Ue(e){let n=(0,He.createReadableTextLayer)(e),o={};for(let[t,r]of Object.entries(n.palettes))o[t]=S(r);return o.neutral=F(n.neutral),o}i(Ue,"buildReadableTextGroup");var uo=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function Xe(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(Xe,"buildColorPrimitives");function Ze(e){let n=oe(Re.defaultInputSpacing,e),o={};for(let t of Object.keys(Re.defaultInputSpacing.alias))o[t]={type:"dimension",value:E(n(t))};return o}i(Ze,"buildSpacePrimitives");function qe(){let e={};for(let[n,o]of Object.entries(K.defaultInputBorder.borderWidth))e[n]={type:"dimension",value:E(o)};return e}i(qe,"buildBorderWidthPrimitives");function lo(e,n){return{color:Xe(e),space:Ze(n),borderWidth:qe()}}i(lo,"buildPrimitives");var Ye={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"},Qe={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"},en={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:Ie(s)}}:S(s)}return t}i(P,"colorRefGroup");var nn={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 ke(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(ke,"dimensionRefGroup");function on(e){let n={},o={};for(let[s,a]of Object.entries(K.defaultInputBorder.borderRadius))Je.test(a)?n[s]={type:"dimension",value:E(a)}:o[s]=a;let t=ke(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(on,"buildBorder");function tn(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(tn,"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:Ie(r),offsetX:c(0),offsetY:c(1),blur:c(2),spread:c(3),inset:o}}}i(yo,"parseShadow");function rn(e){let n=(0,ie.createDeth)(e),o={};for(let t of Object.keys(ie.levelValues))o[t]={type:"shadow",value:yo(n(t))};return o}i(rn,"buildShadow");function re(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=he[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]=re(s,a,o)}return t}i(re,"decorateGroup");function ho(e){let n=new Set,o=re(e.primitives,"",n),t=re(e.groups,"",n);return be(n),{...e,primitives:o,groups:t}}i(ho,"decorateMeta");function se(e,n){return re(e,"",n)}i(se,"decorateSlice");function sn(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${T(t)}`:T(t);R(r)?o.add(s):sn(r,s,o)}}i(sn,"collectPaths");function an(e){let n=new Set;for(let o of e)sn(o.groups,"",n);be(n)}i(an,"assertSlicesMetaComplete");function cn(){let e={};for(let[n,o]of Oe())e[n]={type:"dimension",value:E(o)};return e}i(cn,"buildBreakpoints");function un(){let e={};for(let[n,o]of Ge())e[n]={type:"dimension",value:E(o)};return e}i(un,"buildContainerSizes");function ln(){let e={};for(let[n,o]of je())e[n]={type:"dimension",value:E(o)};return e}i(ln,"buildLayoutConstants");function dn(){let e={};for(let[n,o]of Fe())e[n]={type:"number",value:{kind:"number",raw:`${o}`,number:o}};return e}i(dn,"buildZIndex");function pn(){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 ze())o[a]=e(c);let t={};for(let[a,c]of Ne())t[a]=n(c);let r={};for(let[a,c]of Pe())r[a]=e(c);let s={};for(let[a,c]of _e()){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(pn,"buildMotion");var fn={unit:"px",interval:"half-open [value, next) \u2014 min-width sets, ascending",cssVarsUsage:"informational only \u2014 var() is invalid inside a @media prelude"};function mn(){let e=qe(),o=on({borderWidth:e}),t={"com.apollion.breakpoint":fn};Object.keys(o.extensions).length>0&&(t["com.apollion.border"]={radius:o.extensions});let r=new Set;return{groups:se({"border-width":e,border:o.group,breakpoint:cn(),"container-size":un(),layout:ln(),"z-index":dn(),motion:pn()},r),extensions:t}}i(mn,"buildBaseIR");function xe(e){let n=tn(e),o=new Set;return{groups:se({font:n.group},o),extensions:{"com.apollion.font":n.extensions}}}i(xe,"buildFontIR");function gn(e,n){let o=Xe(n),t=new Set;return{groups:se({color:o,bg:P(e.bg,n,Ye),text:P(e.text,n,Qe),edge:P(e.edge,n,en),tx:Ue(n),shadow:rn(n)},t),extensions:{}}}i(gn,"buildColorIR");function yn(e,n){let o=Ze(n),t={space:o},r=new Set;return{groups:se({space:o,spacing:ke(e.spacing,t,nn)},r),extensions:{}}}i(yn,"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=on(r),a=tn(Ke.DEFAULT_TEXT_SIZE),c={"com.apollion.variant":t,"com.apollion.font":a.extensions,"com.apollion.breakpoint":fn};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,Ye),text:P(e.text,n,Qe),edge:P(e.edge,n,en),tx:Ue(n),spacing:ke(e.spacing,r,nn),border:s.group,breakpoint:cn(),"container-size":un(),layout:ln(),"z-index":dn(),motion:pn(),font:a.group,shadow:rn(n)},extensions:c};return ho(u)}i(bo,"buildIR");var B=bo;var Ro=(0,ae.converter)("rgb"),hn="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function Se(e){if(e.value.kind==="color")return e.value;if(e.value.kind==="ref"&&e.value.resolved.kind==="color")return e.value.resolved}i(Se,"colorPayload");function Te(e){return e.alpha===void 0}i(Te,"isOpaqueColor");function bn(e){let n=Ro((0,ae.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(bn,"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 Rn(e){let n=[];for(let o of["bg","text","edge","tx"])for(let[t,r]of W(h(e.groups,o),[o])){let s=Se(r);s&&n.push({key:t,cssVar:`--apollion-${t}`,opaque:Te(s)})}return n}i(Rn,"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 In(e){let n=[hn,"// Tailwind preset over the Apollion foundation tokens \u2014 requires dist/css/ vars in scope.","","const preset = {"," theme: {"," extend: {"],o=Rn(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(In,"renderTailwindPreset");function kn(e){let n=i(r=>[...W(r).keys()],"keys"),o=i(r=>`[${r.map(s=>JSON.stringify(s)).join(", ")}]`,"list");return[hn,"// tailwind-merge extension for the generated preset \u2014 pass to extendTailwindMerge().","","export const twMergeExtension = {"," extend: {"," theme: {",` colors: ${o(Rn(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(kn,"renderTwMergeExtension");var ve="/* Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. */";function J(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,T(t)];R(r)?o.push(` --apollion-${s.join("-")}: ${M(r.value)};`):J(r,s,o)}}i(J,"emitVars");function ce(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,T(t)];if(!R(r)){ce(r,s,o);continue}let a=Se(r);a&&Te(a)&&o.push(` --apollion-${s.join("-")}-rgb: ${bn(a)};`)}}i(ce,"emitRgbVars");function De(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,T(t)];R(r)?r.type==="color"&&o.push(` @property --apollion-${s.join("-")} { syntax: '<color>'; inherits: true; initial-value: ${M(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=[ve,""];return a.push(`/* Variant: brand=${o} mode=${t} surface=${r} dimension=${s} */`,"",":root {"),J(e.groups,[],a),n.rgbCompanions&&(a.push(""," /* -rgb channel triplets \u2014 Tailwind <alpha-value> companions (opaque colour tokens only). */"),ce(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 Sn(e,n,o={}){let{attribute:t="data-apollion-mode",rgbCompanions:r}=o,{brand:s,surface:a,dimension:c}=e.meta,u=[ve,""],m=i((v,l,d)=>{u.push(`${v} {`,` color-scheme: ${d};`),J(l.groups,[],u),r&&ce(l.groups,[],u),u.push("}","")},"block");u.push(`/* Variant: brand=${s} surface=${a} dimension=${c} modes=light+dark (attribute ${t}) */`,""),m(`:root, html[${t}="light"]`,e,"light"),m(`html[${t}="dark"]`,n,"dark"),u.push("@media (prefers-color-scheme: dark) {"),u.push(` html:not([${t}]) {`," color-scheme: dark;");let I=[];J(n.groups,[],I),r&&ce(n.groups,[],I);for(let v of I)u.push(` ${v}`);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(Sn,"renderCssModes");function Tn(e,n={}){let{attribute:o=ue.TEXT_SIZE_ATTRIBUTE,defaultLevel:t=ue.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 m=u.groups.font;J(m.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
|
+
[${o}="${c}"]`,u);return r.join(`
|
|
7
|
+
`)}i(Tn,"renderCssTextSize");var Io="<!-- Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. -->";function we(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${t}`:t;R(r)?o.push([s,M(r.value)]):we(r,s,o)}}i(we,"flatten");function ko(e){return typeof e=="number"?String(e):`'${String(e).replace(/'/g,"''")}'`}i(ko,"yamlEscape");function xo(e){let{mode:n,surface:o,dimension:t}=e.meta;return`${n}.${o}.${t}`}i(xo,"variantKey");function vn(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=[];we(r.groups,"",s),o.push(` ${xo(r)}:`);for(let[a,c]of s)o.push(` ${a}: ${ko(c)}`)}o.push("---");let t=["",Io,"",`# 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=[];we(r.groups,"",u);let m=new Map;for(let[I,v]of u){let l=I.split(".")[0]??I,d=m.get(l)??[];d.push([I,v]),m.set(l,d)}for(let[I,v]of m){t.push(`### ${I}`,"","| Token | Value |","| --- | --- |");for(let[l,d]of v)t.push(`| \`${l}\` | \`${d}\` |`);t.push("")}}return`${o.join(`
|
|
6
8
|
`)}
|
|
7
|
-
${
|
|
8
|
-
`)}`}i(
|
|
9
|
-
`}i(
|
|
10
|
-
`}i(
|
|
11
|
-
`)}i(
|
|
12
|
-
`}i(En,"serializeManifest");var Do="json/sets",An="json/resolver.json";function le(e){return`${Do}/${e}.json`}i(le,"setFile");function wo(e,n,o){return`${e}.color.${n}.${o}`}i(wo,"colorSetName");function To(e){return`spacing.${e}`}i(To,"spacingSetName");function $o(e){return`font.${e}`}i($o,"fontSetName");function de(e,n){e.includes(n)||e.push(n)}i(de,"pushUnique");function Ln(e){let n=ce(e),o=[],r=[],t=[],s=[],a=new Set,c=[],u=new Set,g=[],k=new Set,D=[];for(let l of n){de(o,l.brand),de(r,l.mode),de(t,l.surface),de(s,l.dimension);let d=wo(l.brand,l.mode,l.surface);a.has(d)||(a.add(d),c.push({kind:"color",name:d,file:le(d),brand:l.brand,mode:l.mode,surface:l.surface}));let b=To(l.dimension);u.has(b)||(u.add(b),g.push({kind:"spacing",name:b,file:le(b),dimension:l.dimension}));let f=$o(l.dimension);k.has(f)||(k.add(f),D.push({kind:"font",name:f,file:le(f),dimension:l.dimension}))}return{base:{kind:"base",name:"base",file:le("base")},spacing:g,font:D,color:c,modifiers:{brand:o,mode:r,surface:t,dimension:s}}}i(Ln,"planSets");var zn=require("@apollion-dsi/core/themes/colors"),Ce=require("@apollion-dsi/core/themes/foundation"),Hn=require("@apollion-dsi/core/themes/semantic"),Kn=require("@apollion-dsi/core/themes/spacing"),Wn=require("@apollion-dsi/core/themes/surface");var y=require("culori");var X=(0,y.converter)("oklch"),Co=(0,y.converter)("rgb");function p(e,n,o){let r=(0,y.parse)(e),t=(0,y.parse)(n);if(!r||!t)return e;let s=(0,y.interpolate)([r,t],"oklch");return(0,y.formatHex)(s(o))??e}i(p,"mixOklch");function Vo(e){return e?typeof e=="string"?e:e.base:"#000"}i(Vo,"coerceToHex");var pe=1.3,Mo=.05,On=.04,G=i((e,n)=>{let o=(0,y.parse)(e),r=(0,y.parse)(n);return!o||!r?1:(0,y.wcagContrast)(o,r)},"contrastRatio"),J=i(e=>{let n=X((0,y.parse)(e));return n?n.l??0:null},"oklchLightness"),Eo=4.5;function q(e,n,o=Eo){let r=(0,y.parse)(n),t=X((0,y.parse)(e));if(!r||!t)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)(t)??e,u=(0,y.parse)(c);if(u&&(0,y.wcagContrast)(u,r)>=o)return c;let g=Math.min(1,Math.max(0,(t.l??0)+s));if(g===(t.l??0))break;t={...t,l:g}}return(0,y.formatHex)(t)??e}i(q,"readableColor");var Gn=i((e,n)=>{if(G(e,n)>=pe)return!0;let o=J(e),r=J(n);return o!==null&&r!==null&&Math.abs(o-r)>=Mo},"isPerceptibleState"),Te=i(e=>e?G("#fff",e)>G("#000",e):!1,"isDarkSurface");function Nn(e,n,o){let r=X((0,y.parse)(e));if(!r)return null;let t={...r,l:o??r.l??0},s=n?On:-On;for(let a=0;a<25;a+=1){let c=Math.min(1,Math.max(0,(t.l??0)+s));if(c===(t.l??0))break;t={...t,l:c};let u=(0,y.formatHex)(t);if(u&&G(e,u)>=pe)return u}return(0,y.formatHex)(t)??null}i(Nn,"derivePerceptibleState");function jn(e,n,o){let r=Nn(e,n,o);if(r&&G(e,r)>=pe)return r;let t=Nn(e,!n);return t&&G(e,t)>=pe?t:r??t}i(jn,"perceptibleStateFor");function T(e,n){let o=typeof e=="object"&&e!==null?e:void 0,r=Vo(e),t=n.deepDark,s=n.deepLight,a={base:r,dark:p(r,t,.6),action:p(r,t,.2),active:p(r,s,.6),light:p(r,s,.9),onLight:r};if((0,y.parse)(r)){let c=Te(n.baseLight),u=Gn(r,a.action);if(u||(a.action=jn(r,c)??a.action),!Gn(r,a.active)){let g=u?void 0:J(a.action)??void 0;a.active=jn(r,c,g)??a.active}}if(a.onLight=q(a.action,a.light),o){let c=o.action??a.action,u=o.light??a.light;return{base:r,dark:o.dark??a.dark,action:c,active:o.active??a.active,light:u,onLight:o.onLight??q(c,u)}}return a}i(T,"mountSingleColor");function Fn(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(Fn,"mountGreyscaleColors");function Pn(e){let n=e.deepLight,o=e.deepDark,r=typeof e.primary=="object"&&e.primary?e.primary.base:e.primary,t=i(a=>1/17*(a-1),"interpolation"),s=p(r,o,.5);return{0:p(s,n,t(18)),5:p(s,n,t(17.5)),10:p(s,n,t(17)),20:p(s,n,t(16)),30:p(s,n,t(15)),40:p(s,n,t(14)),50:p(s,n,t(13)),60:p(s,n,t(12)),70:p(s,n,t(11)),80:p(s,n,t(10)),90:p(s,n,t(9)),100:p(s,n,t(8)),110:p(s,n,t(7)),120:p(s,n,t(6)),130:p(s,n,t(5)),140:p(s,n,t(4)),150:p(s,n,t(3)),160:p(s,n,t(2)),170:s,180:p(s,o,.25)}}i(Pn,"mountNeutralColors");function z(e,n){let o=X((0,y.parse)(e));if(!o)return e;let r=Math.min(1,Math.max(0,(o.l??0)+n));return(0,y.formatHex)({...o,l:r})??e}i(z,"shiftLightness");function fe(e,n){let o=X((0,y.parse)(e));if(!o)return e;let r=o.l??0,t=n.min??0,s=n.max??1;return r>=t&&r<=s?e:(0,y.formatHex)({...o,l:Math.min(s,Math.max(t,r))})??e}i(fe,"clampLightness");function F(e,n){let o=Co((0,y.parse)(e));if(!o)return e;let r=Math.min(1,Math.max(0,n)),t=i(s=>Math.round((s??0)*255),"channel");return`rgba(${t(o.r)}, ${t(o.g)}, ${t(o.b)}, ${r})`}i(F,"toRgbaString");var m=require("@apollion-dsi/core/themes/colors");var Ao="#FFFFFF",$e="#000000";function Lo(e){return Te(e.baseLight)?"dark":"light"}i(Lo,"resolvePolarity");function Oo(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(Oo,"darkElevationBoostFactor");function _n(e,n,o){if(Math.abs((0,m.apcaContrast)(e,n))>=o)return e;let r=Math.abs((0,m.apcaContrast)("#ffffff",n))>=Math.abs((0,m.apcaContrast)("#000000",n)),t=e;for(let s=0;s<40;s+=1){let a=z(t,r?.02:-.02);if(a===t||(t=a,Math.abs((0,m.apcaContrast)(t,n))>=o))break}return t}i(_n,"ensureApca");function Go(e,n){let o=e.baseLight??Ao,r=n==="dark",t=r?fe(o,{min:m.HALATION_FLOORS.CANVAS_MIN_L}):o,s=z(t,m.LADDER_DELTAS.sunken),a=r?Oo(J(t)??0):0,c=i(u=>m.LADDER_DELTAS[u]+a*m.DARK_ELEVATION_BOOST[u],"delta");return{canvas:t,sunken:r?fe(s,{min:m.HALATION_FLOORS.CANVAS_MIN_L}):s,paper:z(t,c("paper")),raised:z(t,c("raised")),overlay:z(t,c("overlay")),scrim:r?e.deepLight??$e:e.neutral?.["180"]??e.baseDark??$e}}i(Go,"deriveSurface");function No(e,n){let o=e.baseDark??$e,r=fe(_n(q(o,n.paper,m.MIN_CONTRAST_AA),n.paper,m.INK_APCA_MIN.primary),{max:m.HALATION_FLOORS.INK_MAX_L}),t=i((s,a)=>_n(q(p(r,n.canvas,s),n.paper,m.MIN_CONTRAST_AA),n.paper,a),"tier");return{primary:r,secondary:t(m.INK_MIX.secondary,m.INK_APCA_MIN.secondary),muted:t(m.INK_MIX.muted,m.INK_APCA_MIN.muted),disabled:p(r,n.canvas,m.INK_MIX.disabled)}}i(No,"deriveInk");function jo(e){return{hairline:F(e.primary,m.EDGE_ALPHA.hairline),border:F(e.primary,m.EDGE_ALPHA.border),strong:F(e.primary,m.EDGE_ALPHA.strong)}}i(jo,"deriveEdge");function Fo(e,n){let o=m.WASH_ALPHA[n];return{hover:F(e.primary,o.hover),pressed:F(e.primary,o.pressed),selected:F(e.primary,o.selected)}}i(Fo,"deriveWash");function Po(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(Po,"applyOverride");function Bn(e,n){let o=Lo(e),r=Go(e,o),t=No(e,r),s={surface:r,ink:t,edge:jo(t),wash:Fo(t,o)};return Po(s,n?.[o])}i(Bn,"resolveSurfaceLadder");function _o(e){let n=Pn(e);return{baseDark:e.baseDark,baseLight:e.baseLight,deepDark:e.deepDark,deepLight:e.deepLight,transparent:e.transparent??"transparent",neutral:n,grayscale:Fn(e),...Bn({...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(_o,"composeColors");function N(e,n=Kn.defaultInputSpacing){let o=e.mode==="dark"?(0,zn.toDarkColors)(e.colors):e.colors,r=_o(o),t=Q(n,e.dimension),s=(0,Hn.createSemantic)({colors:r,spacing:t}),a=(0,Ce.createFoundation)(s);return e.surface==="negative"&&(a=(0,Ce.createFoundation)((0,Wn.invertForSurface)({semantic:s,colors:r},"negative").semantic)),{foundation:a,colors:r}}i(N,"buildVariantThemes");async function Bo(e){let{config:n,outDir:o,cwd:r=process.cwd(),verbose:t=!1}=e,s=ce(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,Jn.tmpdir)(),"apollion-tokens-"));try{let u=[],g=i(async(l,d)=>{await Ho(c,l,d),u.push({path:l,sha256:ue(d)}),t&&console.log(` \u2713 ${l}`)},"emit");if(a.json){let l=Ln(n),d=[],b=an();d.push(b),await g(l.base.file,In(b));for(let f of l.spacing){let I=s.find(U=>U.dimension===f.dimension),{foundation:L}=N(I),O=ln(L,f.dimension);d.push(O),await g(f.file,Sn(O,f.dimension))}for(let f of l.font){let I=cn(f.dimension);d.push(I),await g(f.file,vn(I,f.dimension))}for(let f of l.color){let I=s.find(me=>me.brand===f.brand&&me.mode===f.mode&&me.surface===f.surface),{foundation:L,colors:O}=N(I),U=un(L,O);d.push(U),await g(f.file,xn(U,f.brand,f.mode,f.surface))}en(d),await g(An,Dn(n,l))}if(a.css||a.ts)for(let l of s){let{foundation:d,colors:b}=N(l),f=B(d,b,l),I=$n(l);a.css&&await g(`css/${I}.css`,hn(f,{rgbCompanions:a.tailwind})),a.ts&&await g(`ts/${I}.d.ts`,Tn(f))}if(a.cssModes){let l=new Map;for(let d of s){let b=`${d.brand}.${d.surface}.${d.dimension}`,f=l.get(b)??{};f[d.mode]=d,l.set(b,f)}for(let[d,{light:b,dark:f}]of l){if(!b||!f)throw new Error(`apollion-tokens build: output.cssModes needs both modes for ${d} (config.modes)`);let I=N(b),L=N(f),O=bn(B(I.foundation,I.colors,b),B(L.foundation,L.colors,f),{rgbCompanions:a.tailwind});await g(`css/${d}.modes.css`,O)}}if(a.tailwind){let l=s[0],{foundation:d,colors:b}=N(l),f=B(d,b,l);await g("tailwind/preset.mjs",mn(f)),await g("tailwind/tw-merge.mjs",gn(f))}if(a.designMd){let l=[...new Set(s.map(d=>d.brand))];for(let d of l){let f=s.filter(I=>I.brand===d).map(I=>{let{foundation:L,colors:O}=N(I);return B(L,O,I)});await g(`design/${d}.design.md`,Rn(d,f))}}let k={configHash:we(n),files:u,gitCommit:Vn(r),buildEnv:Mn()},D=En(k);return await(0,x.writeFile)((0,A.join)(c,"manifest.json"),D),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),t&&console.log(`\u2713 ${u.length} files \u2192 ${o}`),{manifest:k,outDir:o}}catch(u){throw await(0,x.rm)(c,{recursive:!0,force:!0}).catch(()=>{}),u}}i(Bo,"build");async function zo(e){let{config:n,outDir:o}=e,r;try{r=JSON.parse(await(0,x.readFile)((0,A.join)(o,"manifest.json"),"utf8"))}catch{return!1}if(r.configHash!==we(n))return!1;for(let t of r.files){let s;try{s=await(0,x.readFile)((0,A.join)(o,t.path))}catch{return!1}if(ue(s)!==t.sha256)return!1}return!0}i(zo,"check");async function Ho(e,n,o){let r=(0,A.join)(e,n);await(0,x.mkdir)((0,A.dirname)(r),{recursive:!0}),await(0,x.writeFile)(r,o)}i(Ho,"writeAt");0&&(module.exports={build,check});
|
|
9
|
+
${t.join(`
|
|
10
|
+
`)}`}i(vn,"renderDesignMd");var wn=require("@apollion-dsi/core/themes/text-size");function Dn(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(Dn,"colorValue");function U(e){return{value:e.value,unit:e.unit}}i(U,"dimensionValue");function So(e){return{value:e.value,unit:e.unit}}i(So,"durationValue");function To(e){return[...e.points]}i(To,"cubicBezierValue");function vo(e){let n=e.shadow,o={color:Dn(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(vo,"shadowValue");function Do(e){switch(e.kind){case"ref":return`{${We(e.path)}}`;case"color":return Dn(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 vo(e);case"duration":return So(e);case"cubicBezier":return To(e)}}i(Do,"projectValue");function wo(e){let n={$value:Do(e.value),$type:e.type};return e.description!==void 0&&(n.$description=e.description),e.deprecated!==void 0&&(n.$deprecated=e.deprecated),n}i(wo,"projectToken");function $e(e){let n={};for(let[o,t]of Object.entries(e))n[T(o)]=R(t)?wo(t):$e(t);return n}i($e,"projectGroup");function X(e,n,o){let t=$e(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(X,"renderSet");function $n(e){return X(e,"Apollion DS \u2014 base set (axis-invariant: border, breakpoints, container sizes, layout, motion). DTCG 2025.10.")}i($n,"renderBaseSet");function Cn(e,n,o,t){return X(e,`Apollion DS \u2014 colour set. brand=${n} mode=${o} surface=${t}. DTCG 2025.10.`)}i(Cn,"renderColorSet");function En(e,n){return X(e,`Apollion DS \u2014 spacing set. dimension=${n}. DTCG 2025.10.`)}i(En,"renderSpacingSet");function Vn(e,n){return n.deprecatedDimension?X(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>.`):X(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:wn.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(Mn,"renderResolver");var $o="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function Co(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(Co,"emitDoc");function An(e,n,o){let t=" ".repeat(n);for(let[r,s]of Object.entries(e))R(s)?(Co(s,t,o),o.push(`${t}${JSON.stringify(r)}: ${JSON.stringify(M(s.value))},`)):(o.push(`${t}${r}: {`),An(s,n+1,o),o.push(`${t}},`))}i(An,"emitGroup");function Ln(e){let{brand:n,mode:o,surface:t,dimension:r}=e.meta,s=[$o,`// Variant: brand=${n} mode=${o} surface=${t} dimension=${r}`,"","export const tokens = {"];return An(e.groups,1,s),s.push("} as const;","","export type Tokens = typeof tokens;",""),s.join(`
|
|
13
|
+
`)}i(Ln,"renderTs");var Eo=["light","dark"],Vo=["positive","negative"],Mo=["compact","normal","spacious"],Ao=["smaller","default","larger","largest"];function le(e){let n=[...new Set(e.textSizes??Ao)];if(!n.includes("default"))throw new Error(`apollion-tokens: textSizes must include 'default' (got [${n.join(", ")}])`);return n}i(le,"resolveTextSizes");function de(e){let n=e.modes??Eo,o=e.surfaces??Vo,t=e.dimensions??Mo,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 m of o)for(let I of t)s.push({brand:a,colors:c,mode:u,surface:m,dimension:I});return s}i(de,"expandVariants");function On(e){return`${e.brand}.${e.mode}.${e.surface}.${e.dimension}`}i(On,"variantName");var Gn=require("node:crypto");function pe(e){return(0,Gn.createHash)("sha256").update(e).digest("hex")}i(pe,"sha256");function Ee(e){return pe(Ce(e))}i(Ee,"hashConfig");function Ce(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(Ce).join(",")}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${Ce(e[t])}`).join(",")}}`}i(Ce,"stableStringify");function jn(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(jn,"detectGitCommit");function Fn(){return{node:process.version,platform:`${process.platform}-${process.arch}`}}i(Fn,"buildEnv");function zn(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)}
|
|
14
|
+
`}i(zn,"serializeManifest");var Nn=require("@apollion-dsi/core/themes/text-size");var Lo="json/sets",Pn="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 fe(e,n){e.includes(n)||e.push(n)}i(fe,"pushUnique");function _n(e){let n=de(e),o=[],t=[],r=[],s=[],a=new Set,c=[],u=new Set,m=[],I=[...le(e)],v=I.map(l=>{let d=jo(l);return{kind:"font",name:d,file:Z(d),textSize:l}});for(let l of n){fe(o,l.brand),fe(t,l.mode),fe(r,l.surface),fe(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:Nn.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(_n,"planSets");var qn=require("@apollion-dsi/core/themes/colors"),Ae=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 me=1.3,Po=.05,Bn=.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 Hn=i((e,n)=>{if(G(e,n)>=me)return!0;let o=q(e),t=q(n);return o!==null&&t!==null&&Math.abs(o-t)>=Po},"isPerceptibleState"),Ve=i(e=>e?G("#fff",e)>G("#000",e):!1,"isDarkSurface");function Kn(e,n,o){let t=Q((0,y.parse)(e));if(!t)return null;let r={...t,l:o??t.l??0},s=n?Bn:-Bn;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)>=me)return u}return(0,y.formatHex)(r)??null}i(Kn,"derivePerceptibleState");function Wn(e,n,o){let t=Kn(e,n,o);if(t&&G(e,t)>=me)return t;let r=Kn(e,!n);return r&&G(e,r)>=me?r:t??r}i(Wn,"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=Ve(n.baseLight),u=Hn(t,a.action);if(u||(a.action=Wn(t,c)??a.action),!Hn(t,a.active)){let m=u?void 0:q(a.action)??void 0;a.active=Wn(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 Jn(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(Jn,"mountGreyscaleColors");function Un(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(Un,"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 ge(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(ge,"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",Me="#000000";function Ho(e){return Ve(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 Xn(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(Xn,"ensureApca");function Wo(e,n){let o=e.baseLight??Bo,t=n==="dark",r=t?ge(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?ge(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??Me:e.neutral?.["180"]??e.baseDark??Me}}i(Wo,"deriveSurface");function Jo(e,n){let o=e.baseDark??Me,t=ge(Xn(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)=>Xn(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 Zn(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(Zn,"resolveSurfaceLadder");function qo(e){let n=Un(e);return{baseDark:e.baseDark,baseLight:e.baseLight,deepDark:e.deepDark,deepLight:e.deepLight,transparent:e.transparent??"transparent",neutral:n,grayscale:Jn(e),...Zn({...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 j(e,n=Qn.defaultInputSpacing){let o=e.mode==="dark"?(0,qn.toDarkColors)(e.colors):e.colors,t=qo(o),r=oe(n,e.dimension),s=(0,Yn.createSemantic)({colors:t,spacing:r}),a=(0,Ae.createFoundation)(s);return e.surface==="negative"&&(a=(0,Ae.createFoundation)((0,eo.invertForSurface)({semantic:s,colors:t},"negative").semantic)),{foundation:a,colors:t}}i(j,"buildVariantThemes");async function Yo(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(0,x.mkdtemp)((0,A.join)((0,no.tmpdir)(),"apollion-tokens-"));try{let u=[],m=i(async(l,d)=>{await et(c,l,d),u.push({path:l,sha256:pe(d)}),r&&console.log(` \u2713 ${l}`)},"emit");if(a.json){let l=_n(n),d=[],b=mn();d.push(b),await m(l.base.file,$n(b));for(let g of l.spacing){let k=s.find(ee=>ee.dimension===g.dimension),{foundation:L}=j(k),O=yn(L,g.dimension);d.push(O),await m(g.file,En(O,g.dimension))}for(let g of l.font){let k=xe(g.textSize);d.push(k),await m(g.file,Vn(k,g))}for(let g of l.color){let k=s.find(ye=>ye.brand===g.brand&&ye.mode===g.mode&&ye.surface===g.surface),{foundation:L,colors:O}=j(k),ee=gn(L,O);d.push(ee),await m(g.file,Cn(ee,g.brand,g.mode,g.surface))}an(d),await m(Pn,Mn(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=On(l);a.css&&await m(`css/${k}.css`,xn(g,{rgbCompanions:a.tailwind})),a.ts&&await m(`ts/${k}.d.ts`,Ln(g))}if(a.css||a.cssModes){let l=le(n).map(d=>[d,xe(d)]);await m("css/font.css",Tn(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=Sn(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",In(g)),await m("tailwind/tw-merge.mjs",kn(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`,vn(d,g))}}let I={configHash:Ee(n),files:u,gitCommit:jn(t),buildEnv:Fn()},v=zn(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(Yo,"build");async function Qo(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!==Ee(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(pe(s)!==r.sha256)return!1}return!0}i(Qo,"check");async function et(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(et,"writeAt");0&&(module.exports={build,check});
|
package/lib/build.esm.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
var Xn=Object.defineProperty;var i=(e,n)=>Xn(e,"name",{value:n,configurable:!0}),Un=(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 Wn,mkdtemp as sr,readFile as Hn,rename as ar,rm as Kn,writeFile as Jn}from"node:fs/promises";import{tmpdir as cr}from"node:os";import{dirname as qn,join as K}from"node:path";import{converter as Ro,parse as ko}from"culori";import{defaultInputBorder as Y}from"@apollion-dsi/core/themes/border";import{createReadableTextLayer as no}from"@apollion-dsi/core/themes/colors";import{createDeth as oo,levelValues as ro}from"@apollion-dsi/core/themes/depth";import{createFont as to,defaultInputFont as A}from"@apollion-dsi/core/themes/font";import{defaultInputSpacing as Ge}from"@apollion-dsi/core/themes/spacing";import{converter as io,formatHex as so,parse as ao}from"culori";import{defaultInputBreakpoints as Yn}from"@apollion-dsi/core/themes/breakpoints";function Ce(e=Yn){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ce,"breakpointEntries");import{defaultInputContainerSizes as Zn,defaultInputLayout as Qn}from"@apollion-dsi/core/themes/layout";function Ve(e=Zn){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ve,"containerSizeEntries");function Me(e=Qn){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(Me,"layoutEntries");import{createMotion as J,defaultInputMotion as q}from"@apollion-dsi/core/themes/motion";function Ee(e=q){let n=J(e);return Object.keys(e.duration).map(o=>[o,{ms:e.duration[o],css:n.duration[o]}])}i(Ee,"motionDurationEntries");function Ae(e=q){let n=J(e);return Object.keys(e.easing).map(o=>[o,{points:e.easing[o],css:n.easing[o]}])}i(Ae,"motionEasingEntries");function Le(e=q){let n=J(e);return Object.keys(e.indicator).map(o=>[o,{ms:e.indicator[o],css:n.indicator[o]}])}i(Le,"motionIndicatorEntries");function Oe(e=q){let n=J(e);return Object.keys(e.intent).map(o=>{let r=e.intent[o],t=typeof r.duration=="number"?null:r.duration,s=typeof r.duration=="number"?r.duration:e.duration[r.duration];return[o,{durationRef:t,duration:{ms:s,css:n.intent[o].duration},easingRef:r.easing,easing:{points:e.easing[r.easing],css:n.intent[o].easing}}]})}i(Oe,"motionIntentEntries");import{DIMENSION_MULTIPLIERS as eo}from"@apollion-dsi/core/themes/dimension";function X({multiplier:e=.25,alias:n},o){let r=o!==void 0?eo[o]:e;return(...t)=>t.map(s=>{let a=typeof s=="string"?n[s]:s;return`${r*a}rem`}).join(" ")}i(X,"createSpacing");var pe={"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 fe(e){let n=Object.keys(pe).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(fe,"assertTokenMetaResolves");var co=io("oklch");function h(e){return typeof e.type=="string"&&"value"in e}i(h,"isToken");function I(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}i(I,"kebab");function Ne(e){return e.split(".").map(I).join(".")}i(Ne,"kebabPath");function $(e){return e.kind==="ref"?e.resolved.raw:e.raw}i($,"rawValue");function U(e,n){return Number(e.toFixed(n))||0}i(U,"round");function me(e){let n=co(ao(e));if(!n)return{kind:"color",raw:e,components:[0,0,0],hex:"#000000"};let o=[U(n.l,4),U(n.c,4),U(n.h??0,2)],r=so(n)??"#000000";return n.alpha!==void 0&&n.alpha!==1?{kind:"color",raw:e,components:o,alpha:U(n.alpha,4),hex:r}:{kind:"color",raw:e,components:o,hex:r}}i(me,"toColorValue");var je=/^(-?(?:\d+\.?\d*|\.\d+))(px|rem)$/;function w(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(w,"toDimensionValue");function k(e){return{type:"color",value:me(e)}}i(k,"colorToken");function L(e){let n={};for(let[o,r]of Object.entries(e))n[o]=k(r);return n}i(L,"recordColorGroup");function Fe(e){let n=no(e),o={};for(let[r,t]of Object.entries(n.palettes))o[r]=k(t);return o.neutral=L(n.neutral),o}i(Fe,"buildReadableTextGroup");var uo=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function Pe(e){let n={};for(let o of uo){let r=e[o];n[o]={base:k(r.base),dark:k(r.dark),action:k(r.action),active:k(r.active),light:k(r.light),onLight:k(r.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=k(e.baseDark??"#000000"),n.baseLight=k(e.baseLight??"#ffffff"),n.deepDark=k(e.deepDark??"#000000"),n.deepLight=k(e.deepLight??"#ffffff"),n}i(Pe,"buildColorPrimitives");function _e(e){let n=X(Ge,e),o={};for(let r of Object.keys(Ge.alias))o[r]={type:"dimension",value:w(n(r))};return o}i(_e,"buildSpacePrimitives");function Be(){let e={};for(let[n,o]of Object.entries(Y.borderWidth))e[n]={type:"dimension",value:w(o)};return e}i(Be,"buildBorderWidthPrimitives");function lo(e,n){return{color:Pe(e),space:_e(n),borderWidth:Be()}}i(lo,"buildPrimitives");var ze={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"},He={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"},Ke={hairline:"color.edge.hairline",border:"color.edge.border",strong:"color.edge.strong"};function po(e,n){let o=e;for(let r of n.split(".").slice(1))if(o&&typeof o=="object"&&r in o)o=o[r];else return;return typeof o=="string"?o:void 0}i(po,"lookupPrimitive");function N(e,n,o){let r={};for(let[t,s]of Object.entries(e)){let a=o[t],c=a?po(n,a):void 0;r[t]=a&&c===s?{type:"color",value:{kind:"ref",path:a,resolved:me(s)}}:k(s)}return r}i(N,"colorRefGroup");var We={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("."),r=o[0]==="border-width"?"borderWidth":o[0],t=e[r];for(let s of o.slice(1))if(t&&!h(t)&&s in t)t=t[s];else return;return t&&h(t)&&t.value.kind==="dimension"?t.value.raw:void 0}i(mo,"lookupDimensionPrimitive");function ge(e,n,o){let r={};for(let[t,s]of Object.entries(e)){let a=o[t],c=a?mo(n,a):void 0;r[t]=a&&c===s?{type:"dimension",value:{kind:"ref",path:a,resolved:w(s)}}:{type:"dimension",value:w(s)}}return r}i(ge,"dimensionRefGroup");function Je(e){let n={},o={};for(let[s,a]of Object.entries(Y.borderRadius))je.test(a)?n[s]={type:"dimension",value:w(a)}:o[s]=a;let r=ge(Y.borderWidth,e,fo),t={};for(let[s,a]of Object.entries(Y.borderStyle))t[s]={type:"strokeStyle",value:{kind:"strokeStyle",raw:a,style:a}};return{group:{radius:n,width:r,style:t},extensions:o}}i(Je,"buildBorder");function qe(e){let n=to(A,e),o={};for(let[c,u]of Object.entries(A.fontFamily)){let m=u.replace(/;\s*$/,"").trim();o[c]={type:"fontFamily",value:{kind:"fontFamily",raw:m,family:m}}}let r={};for(let[c,u]of Object.entries(n.fontSize))r[c]={type:"dimension",value:w(u)};let t={};for(let[c,u]of Object.entries(A.fontWeight))t[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:r,weight:t,lineHeight:s},extensions:a}}i(qe,"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 r=n.match(go),t=r?r[0]:"#000000",a=(r?n.slice(0,r.index).trim():n).split(/\s+/).filter(Boolean),c=i(u=>w(a[u]??"0px"),"dim");return{kind:"shadow",raw:e,shadow:{color:me(t),offsetX:c(0),offsetY:c(1),blur:c(2),spread:c(3),inset:o}}}i(yo,"parseShadow");function Xe(e){let n=oo(e),o={};for(let r of Object.keys(ro))o[r]={type:"shadow",value:yo(n(r))};return o}i(Xe,"buildShadow");function Z(e,n,o){let r={};for(let[t,s]of Object.entries(e)){let a=n?`${n}.${I(t)}`:I(t);if(h(s)){o.add(a);let c=pe[a];r[t]=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 r[t]=Z(s,a,o)}return r}i(Z,"decorateGroup");function ho(e){let n=new Set,o=Z(e.primitives,"",n),r=Z(e.groups,"",n);return fe(n),{...e,primitives:o,groups:r}}i(ho,"decorateMeta");function Q(e,n){return Z(e,"",n)}i(Q,"decorateSlice");function Ue(e,n,o){for(let[r,t]of Object.entries(e)){let s=n?`${n}.${I(r)}`:I(r);h(t)?o.add(s):Ue(t,s,o)}}i(Ue,"collectPaths");function Ye(e){let n=new Set;for(let o of e)Ue(o.groups,"",n);fe(n)}i(Ye,"assertSlicesMetaComplete");function Ze(){let e={};for(let[n,o]of Ce())e[n]={type:"dimension",value:w(o)};return e}i(Ze,"buildBreakpoints");function Qe(){let e={};for(let[n,o]of Ve())e[n]={type:"dimension",value:w(o)};return e}i(Qe,"buildContainerSizes");function en(){let e={};for(let[n,o]of Me())e[n]={type:"dimension",value:w(o)};return e}i(en,"buildLayoutConstants");function nn(){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 Ee())o[a]=e(c);let r={};for(let[a,c]of Ae())r[a]=n(c);let t={};for(let[a,c]of Le())t[a]=e(c);let s={};for(let[a,c]of Oe()){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:r,indicator:t,intent:s}}i(nn,"buildMotion");var on={unit:"px",interval:"half-open [value, next) \u2014 min-width sets, ascending",cssVarsUsage:"informational only \u2014 var() is invalid inside a @media prelude"};function rn(){let e=Be(),o=Je({borderWidth:e}),r={"com.apollion.breakpoint":on};Object.keys(o.extensions).length>0&&(r["com.apollion.border"]={radius:o.extensions});let t=new Set;return{groups:Q({"border-width":e,border:o.group,breakpoint:Ze(),"container-size":Qe(),layout:en(),motion:nn()},t),extensions:r}}i(rn,"buildBaseIR");function tn(e){let n=qe(e),o=new Set;return{groups:Q({font:n.group},o),extensions:{"com.apollion.font":n.extensions}}}i(tn,"buildFontIR");function sn(e,n){let o=Pe(n),r=new Set;return{groups:Q({color:o,bg:N(e.bg,n,ze),text:N(e.text,n,He),edge:N(e.edge,n,Ke),tx:Fe(n),shadow:Xe(n)},r),extensions:{}}}i(sn,"buildColorIR");function an(e,n){let o=_e(n),r={space:o},t=new Set;return{groups:Q({space:o,spacing:ge(e.spacing,r,We)},t),extensions:{}}}i(an,"buildSpacingIR");function bo(e,n,o){let r={brand:o.brand,mode:o.mode,surface:o.surface,dimension:o.dimension},t=lo(n,o.dimension),s=Je(t),a=qe(o.dimension),c={"com.apollion.variant":r,"com.apollion.font":a.extensions,"com.apollion.breakpoint":on};Object.keys(s.extensions).length>0&&(c["com.apollion.border"]={radius:s.extensions});let u={description:`Apollion DS tokens \u2014 DTCG 2025.10. Variant: ${r.brand}/${r.mode}/${r.surface}/${r.dimension}.`,meta:r,primitives:t,groups:{bg:N(e.bg,n,ze),text:N(e.text,n,He),edge:N(e.edge,n,Ke),tx:Fe(n),spacing:ge(e.spacing,t,We),border:s.group,breakpoint:Ze(),"container-size":Qe(),layout:en(),motion:nn(),font:a.group,shadow:Xe(n)},extensions:c};return ho(u)}i(bo,"buildIR");var j=bo;var Io=Ro("rgb"),cn="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function ye(e){if(e.value.kind==="color")return e.value;if(e.value.kind==="ref"&&e.value.resolved.kind==="color")return e.value.resolved}i(ye,"colorPayload");function he(e){return e.alpha===void 0}i(he,"isOpaqueColor");function un(e){let n=Io(ko(e.hex));if(!n)return"0 0 0";let o=i(r=>Math.min(255,Math.max(0,Math.round(r*255))),"channel");return`${o(n.r)} ${o(n.g)} ${o(n.b)}`}i(un,"rgbTriplet");function P(e,n=[]){let o=new Map;for(let[r,t]of Object.entries(e)){let s=[...n,I(r)];if(h(t))o.set(s.join("-"),t);else for(let[a,c]of P(t,s))o.set(a,c)}return o}i(P,"flatTokens");function g(e,...n){let o=e[n[0]];for(let r of n.slice(1)){if(!o||h(o))return{};o=o[r]}return o&&!h(o)?o:{}}i(g,"groupAt");function ln(e){let n=[];for(let o of["bg","text","edge","tx"])for(let[r,t]of P(g(e.groups,o),[o])){let s=ye(t);s&&n.push({key:r,cssVar:`--apollion-${r}`,opaque:he(s)})}return n}i(ln,"colorEntries");function T(e,n){return[...P(e)].map(([o])=>[o,`var(--apollion-${[...n,o].join("-")})`])}i(T,"varEntries");function v(e,n,o){if(o.length!==0){e.push(` ${n}: {`);for(let[r,t]of o)e.push(` ${JSON.stringify(r)}: ${JSON.stringify(t)},`);e.push(" },")}}i(v,"pushScale");function dn(e){let n=[cn,"// Tailwind preset over the Apollion foundation tokens \u2014 requires dist/css/ vars in scope.","","const preset = {"," theme: {"," extend: {"],o=ln(e);n.push(" colors: {");for(let{key:r,cssVar:t,opaque:s}of o)s?n.push(` ${JSON.stringify(r)}: ${JSON.stringify(`rgb(var(${t}-rgb) / <alpha-value>)`)},`):(n.push(` // ${r} carries its own alpha \u2014 excluded from the <alpha-value> modifier form.`),n.push(` ${JSON.stringify(r)}: ${JSON.stringify(`var(${t})`)},`));return n.push(" },"),v(n,"screens",[...P(g(e.groups,"breakpoint"))].filter(([r])=>r!=="xs").map(([r,t])=>[r,$(t.value)])),v(n,"spacing",T(g(e.groups,"spacing"),["spacing"])),v(n,"borderRadius",T(g(e.groups,"border","radius"),["border","radius"])),v(n,"borderWidth",T(g(e.groups,"border","width"),["border","width"])),v(n,"fontFamily",T(g(e.groups,"font","family"),["font","family"])),v(n,"fontSize",T(g(e.groups,"font","size"),["font","size"])),v(n,"fontWeight",T(g(e.groups,"font","weight"),["font","weight"])),v(n,"lineHeight",T(g(e.groups,"font","lineHeight"),["font","line-height"])),v(n,"boxShadow",T(g(e.groups,"shadow"),["shadow"])),v(n,"transitionDuration",T(g(e.groups,"motion","duration"),["motion","duration"])),v(n,"transitionTimingFunction",T(g(e.groups,"motion","easing"),["motion","easing"])),n.push(" },"," },","};","","export default preset;",""),n.join(`
|
|
2
|
-
`)}i(
|
|
3
|
-
`)}i(
|
|
4
|
-
`)}i(
|
|
5
|
-
`)}i(
|
|
1
|
+
var Qn=Object.defineProperty;var i=(e,n)=>Qn(e,"name",{value:n,configurable:!0}),eo=(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 Zn,mkdtemp as bt,readFile as Un,rename as Rt,rm as Xn,writeFile as qn}from"node:fs/promises";import{tmpdir as It}from"node:os";import{dirname as Yn,join as U}from"node:path";import{DEFAULT_TEXT_SIZE as $o,TEXT_SIZE_ATTRIBUTE as Co}from"@apollion-dsi/core/themes/text-size";import{converter as vo,parse as Do}from"culori";import{defaultInputBorder as ee}from"@apollion-dsi/core/themes/border";import{createReadableTextLayer as so}from"@apollion-dsi/core/themes/colors";import{createDeth as ao,levelValues as co}from"@apollion-dsi/core/themes/depth";import{createFont as uo,defaultInputFont as A}from"@apollion-dsi/core/themes/font";import{defaultInputSpacing as Ne}from"@apollion-dsi/core/themes/spacing";import{DEFAULT_TEXT_SIZE as lo}from"@apollion-dsi/core/themes/text-size";import{converter as po,formatHex as fo,parse as mo}from"culori";import{defaultInputBreakpoints as no}from"@apollion-dsi/core/themes/breakpoints";function Me(e=no){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Me,"breakpointEntries");import{defaultInputContainerSizes as oo,defaultInputLayout as to,defaultInputZIndex as ro}from"@apollion-dsi/core/themes/layout";function Ae(e=oo){return Object.entries(e.values).map(([n,o])=>[n,`${o}px`])}i(Ae,"containerSizeEntries");function Le(e=to){return[["page-max-width",`${e.pageMaxWidth}px`]]}i(Le,"layoutEntries");function Oe(e=ro){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 io}from"@apollion-dsi/core/themes/dimension";function Y({multiplier:e=.25,alias:n},o){let t=o!==void 0?io[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 go=po("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=go(mo(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=fo(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=so(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 yo=["main","opposite","complementary","primary","secondary","tertiary","success","danger","warning","information"];function He(e){let n={};for(let o of yo){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 ho(e,n){return{color:He(e),space:Ke(n),borderWidth:We()}}i(ho,"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 bo(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(bo,"lookupPrimitive");function j(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?bo(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"},Ro={none:"border-width.none",thin:"border-width.thin",regular:"border-width.regular",great:"border-width.great",bold:"border-width.bold"};function Io(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(Io,"lookupDimensionPrimitive");function ye(e,n,o){let t={};for(let[r,s]of Object.entries(e)){let a=o[r],c=a?Io(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,Ro),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=uo(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 ko=/rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z]+$/;function xo(e){let n=e.trim(),o=n.startsWith("inset");o&&(n=n.slice(5).trim());let t=n.match(ko),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(xo,"parseShadow");function Qe(e){let n=ao(e),o={};for(let t of Object.keys(co))o[t]={type:"shadow",value:xo(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 So(e){let n=new Set,o=ne(e.primitives,"",n),t=ne(e.groups,"",n);return me(n),{...e,primitives:o,groups:t}}i(So,"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 To(e,n,o){let t={brand:o.brand,mode:o.mode,surface:o.surface,dimension:o.dimension},r=ho(n,o.dimension),s=qe(r),a=Ye(lo),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 So(u)}i(To,"buildIR");var F=To;var wo=vo("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=wo(Do(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(gn,"renderTailwindPreset");function yn(e){let n=i(r=>[...N(r).keys()],"keys"),o=i(r=>`[${r.map(s=>JSON.stringify(s)).join(", ")}]`,"list");return[pn,"// tailwind-merge extension for the generated preset \u2014 pass to extendTailwindMerge().","","export const twMergeExtension = {"," extend: {"," theme: {",` colors: ${o(mn(e).map(r=>r.key))},`,` spacing: ${o(n(g(e.groups,"spacing")))},`,` borderRadius: ${o(n(g(e.groups,"border","radius")))},`,` borderWidth: ${o(n(g(e.groups,"border","width")))},`," },"," classGroups: {",` 'font-family': [{ font: ${o(n(g(e.groups,"font","family")))} }],`,` 'font-size': [{ text: ${o(n(g(e.groups,"font","size")))} }],`,` 'font-weight': [{ font: ${o(n(g(e.groups,"font","weight")))} }],`,` leading: [{ leading: ${o(n(g(e.groups,"font","lineHeight")))} }],`,` shadow: [{ shadow: ${o(n(g(e.groups,"shadow")))} }],`," },"," },","};",""].join(`
|
|
3
|
+
`)}i(yn,"renderTwMergeExtension");var Ie="/* Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. */";function P(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,k(t)];h(r)?o.push(` --apollion-${s.join("-")}: ${$(r.value)};`):P(r,s,o)}}i(P,"emitVars");function te(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,k(t)];if(!h(r)){te(r,s,o);continue}let a=be(r);a&&Re(a)&&o.push(` --apollion-${s.join("-")}-rgb: ${fn(a)};`)}}i(te,"emitRgbVars");function ke(e,n,o){for(let[t,r]of Object.entries(e)){let s=[...n,k(t)];h(r)?r.type==="color"&&o.push(` @property --apollion-${s.join("-")} { syntax: '<color>'; inherits: true; initial-value: ${$(r.value)}; }`):ke(r,s,o)}}i(ke,"emitProperties");function hn(e,n={}){let{brand:o,mode:t,surface:r,dimension:s}=e.meta,a=[Ie,""];return a.push(`/* Variant: brand=${o} mode=${t} surface=${r} dimension=${s} */`,"",":root {"),P(e.groups,[],a),n.rgbCompanions&&(a.push(""," /* -rgb channel triplets \u2014 Tailwind <alpha-value> companions (opaque colour tokens only). */"),te(e.groups,[],a)),a.push("}",""),a.push("@supports (background: paint(squircle)) or (color: oklch(0% 0 0)) {"),ke(e.groups,[],a),a.push("}",""),a.join(`
|
|
4
|
+
`)}i(hn,"renderCss");function bn(e,n,o={}){let{attribute:t="data-apollion-mode",rgbCompanions:r}=o,{brand:s,surface:a,dimension:c}=e.meta,u=[Ie,""],f=i((S,l,d)=>{u.push(`${S} {`,` color-scheme: ${d};`),P(l.groups,[],u),r&&te(l.groups,[],u),u.push("}","")},"block");u.push(`/* Variant: brand=${s} surface=${a} dimension=${c} modes=light+dark (attribute ${t}) */`,""),f(`:root, html[${t}="light"]`,e,"light"),f(`html[${t}="dark"]`,n,"dark"),u.push("@media (prefers-color-scheme: dark) {"),u.push(` html:not([${t}]) {`," color-scheme: dark;");let b=[];P(n.groups,[],b),r&&te(n.groups,[],b);for(let S of b)u.push(` ${S}`);return u.push(" }","}",""),u.push("@supports (background: paint(squircle)) or (color: oklch(0% 0 0)) {"),ke(e.groups,[],u),u.push("}",""),u.join(`
|
|
5
|
+
`)}i(bn,"renderCssModes");function Rn(e,n={}){let{attribute:o=Co,defaultLevel:t=$o}=n,r=[Ie,""];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 f=u.groups.font;P(f.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
|
+
[${o}="${c}"]`,u);return r.join(`
|
|
7
|
+
`)}i(Rn,"renderCssTextSize");var Eo="<!-- Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs. -->";function xe(e,n,o){for(let[t,r]of Object.entries(e)){let s=n?`${n}.${t}`:t;h(r)?o.push([s,$(r.value)]):xe(r,s,o)}}i(xe,"flatten");function Vo(e){return typeof e=="number"?String(e):`'${String(e).replace(/'/g,"''")}'`}i(Vo,"yamlEscape");function Mo(e){let{mode:n,surface:o,dimension:t}=e.meta;return`${n}.${o}.${t}`}i(Mo,"variantKey");function In(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=[];xe(r.groups,"",s),o.push(` ${Mo(r)}:`);for(let[a,c]of s)o.push(` ${a}: ${Vo(c)}`)}o.push("---");let t=["",Eo,"",`# 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=[];xe(r.groups,"",u);let f=new Map;for(let[b,S]of u){let l=b.split(".")[0]??b,d=f.get(l)??[];d.push([b,S]),f.set(l,d)}for(let[b,S]of f){t.push(`### ${b}`,"","| Token | Value |","| --- | --- |");for(let[l,d]of S)t.push(`| \`${l}\` | \`${d}\` |`);t.push("")}}return`${o.join(`
|
|
6
8
|
`)}
|
|
7
|
-
${
|
|
8
|
-
`)}`}i(
|
|
9
|
-
`}i(
|
|
10
|
-
`}i(
|
|
11
|
-
`)}i(
|
|
12
|
-
`}i($n,"serializeManifest");var Go="json/sets",Cn="json/resolver.json";function ie(e){return`${Go}/${e}.json`}i(ie,"setFile");function No(e,n,o){return`${e}.color.${n}.${o}`}i(No,"colorSetName");function jo(e){return`spacing.${e}`}i(jo,"spacingSetName");function Fo(e){return`font.${e}`}i(Fo,"fontSetName");function se(e,n){e.includes(n)||e.push(n)}i(se,"pushUnique");function Vn(e){let n=re(e),o=[],r=[],t=[],s=[],a=new Set,c=[],u=new Set,m=[],b=new Set,S=[];for(let l of n){se(o,l.brand),se(r,l.mode),se(t,l.surface),se(s,l.dimension);let d=No(l.brand,l.mode,l.surface);a.has(d)||(a.add(d),c.push({kind:"color",name:d,file:ie(d),brand:l.brand,mode:l.mode,surface:l.surface}));let y=jo(l.dimension);u.has(y)||(u.add(y),m.push({kind:"spacing",name:y,file:ie(y),dimension:l.dimension}));let f=Fo(l.dimension);b.has(f)||(b.add(f),S.push({kind:"font",name:f,file:ie(f),dimension:l.dimension}))}return{base:{kind:"base",name:"base",file:ie("base")},spacing:m,font:S,color:c,modifiers:{brand:o,mode:r,surface:t,dimension:s}}}i(Vn,"planSets");import{toDarkColors as nr}from"@apollion-dsi/core/themes/colors";import{createFoundation as zn}from"@apollion-dsi/core/themes/foundation";import{createSemantic as or}from"@apollion-dsi/core/themes/semantic";import{defaultInputSpacing as rr}from"@apollion-dsi/core/themes/spacing";import{invertForSurface as tr}from"@apollion-dsi/core/themes/surface";import{converter as On,formatHex as O,interpolate as Po,parse as x,wcagContrast as Gn}from"culori";var H=On("oklch"),_o=On("rgb");function p(e,n,o){let r=x(e),t=x(n);if(!r||!t)return e;let s=Po([r,t],"oklch");return O(s(o))??e}i(p,"mixOklch");function Bo(e){return e?typeof e=="string"?e:e.base:"#000"}i(Bo,"coerceToHex");var ae=1.3,zo=.05,Mn=.04,M=i((e,n)=>{let o=x(e),r=x(n);return!o||!r?1:Gn(o,r)},"contrastRatio"),B=i(e=>{let n=H(x(e));return n?n.l??0:null},"oklchLightness"),Ho=4.5;function z(e,n,o=Ho){let r=x(n),t=H(x(e));if(!r||!t)return e;let s=M("#fff",n)>=M("#000",n)?.04:-.04;for(let a=0;a<25;a+=1){let c=O(t)??e,u=x(c);if(u&&Gn(u,r)>=o)return c;let m=Math.min(1,Math.max(0,(t.l??0)+s));if(m===(t.l??0))break;t={...t,l:m}}return O(t)??e}i(z,"readableColor");var En=i((e,n)=>{if(M(e,n)>=ae)return!0;let o=B(e),r=B(n);return o!==null&&r!==null&&Math.abs(o-r)>=zo},"isPerceptibleState"),Se=i(e=>e?M("#fff",e)>M("#000",e):!1,"isDarkSurface");function An(e,n,o){let r=H(x(e));if(!r)return null;let t={...r,l:o??r.l??0},s=n?Mn:-Mn;for(let a=0;a<25;a+=1){let c=Math.min(1,Math.max(0,(t.l??0)+s));if(c===(t.l??0))break;t={...t,l:c};let u=O(t);if(u&&M(e,u)>=ae)return u}return O(t)??null}i(An,"derivePerceptibleState");function Ln(e,n,o){let r=An(e,n,o);if(r&&M(e,r)>=ae)return r;let t=An(e,!n);return t&&M(e,t)>=ae?t:r??t}i(Ln,"perceptibleStateFor");function D(e,n){let o=typeof e=="object"&&e!==null?e:void 0,r=Bo(e),t=n.deepDark,s=n.deepLight,a={base:r,dark:p(r,t,.6),action:p(r,t,.2),active:p(r,s,.6),light:p(r,s,.9),onLight:r};if(x(r)){let c=Se(n.baseLight),u=En(r,a.action);if(u||(a.action=Ln(r,c)??a.action),!En(r,a.active)){let m=u?void 0:B(a.action)??void 0;a.active=Ln(r,c,m)??a.active}}if(a.onLight=z(a.action,a.light),o){let c=o.action??a.action,u=o.light??a.light;return{base:r,dark:o.dark??a.dark,action:c,active:o.active??a.active,light:u,onLight:o.onLight??z(c,u)}}return a}i(D,"mountSingleColor");function Nn(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(Nn,"mountGreyscaleColors");function jn(e){let n=e.deepLight,o=e.deepDark,r=typeof e.primary=="object"&&e.primary?e.primary.base:e.primary,t=i(a=>1/17*(a-1),"interpolation"),s=p(r,o,.5);return{0:p(s,n,t(18)),5:p(s,n,t(17.5)),10:p(s,n,t(17)),20:p(s,n,t(16)),30:p(s,n,t(15)),40:p(s,n,t(14)),50:p(s,n,t(13)),60:p(s,n,t(12)),70:p(s,n,t(11)),80:p(s,n,t(10)),90:p(s,n,t(9)),100:p(s,n,t(8)),110:p(s,n,t(7)),120:p(s,n,t(6)),130:p(s,n,t(5)),140:p(s,n,t(4)),150:p(s,n,t(3)),160:p(s,n,t(2)),170:s,180:p(s,o,.25)}}i(jn,"mountNeutralColors");function F(e,n){let o=H(x(e));if(!o)return e;let r=Math.min(1,Math.max(0,(o.l??0)+n));return O({...o,l:r})??e}i(F,"shiftLightness");function ce(e,n){let o=H(x(e));if(!o)return e;let r=o.l??0,t=n.min??0,s=n.max??1;return r>=t&&r<=s?e:O({...o,l:Math.min(s,Math.max(t,r))})??e}i(ce,"clampLightness");function G(e,n){let o=_o(x(e));if(!o)return e;let r=Math.min(1,Math.max(0,n)),t=i(s=>Math.round((s??0)*255),"channel");return`rgba(${t(o.r)}, ${t(o.g)}, ${t(o.b)}, ${r})`}i(G,"toRgbaString");import{apcaContrast as ue,DARK_BOOST_TAPER_MAX_L as ve,DARK_ELEVATION_BOOST as Ko,EDGE_ALPHA as De,HALATION_FLOORS as le,INK_APCA_MIN as we,INK_MIX as Te,LADDER_DELTAS as Fn,MIN_CONTRAST_AA as Pn,WASH_ALPHA as Wo}from"@apollion-dsi/core/themes/colors";var Jo="#FFFFFF",$e="#000000";function qo(e){return Se(e.baseLight)?"dark":"light"}i(qo,"resolvePolarity");function Xo(e){let n=le.CANVAS_MIN_L;return e<=n?1:e>=ve?0:(ve-e)/(ve-n)}i(Xo,"darkElevationBoostFactor");function _n(e,n,o){if(Math.abs(ue(e,n))>=o)return e;let r=Math.abs(ue("#ffffff",n))>=Math.abs(ue("#000000",n)),t=e;for(let s=0;s<40;s+=1){let a=F(t,r?.02:-.02);if(a===t||(t=a,Math.abs(ue(t,n))>=o))break}return t}i(_n,"ensureApca");function Uo(e,n){let o=e.baseLight??Jo,r=n==="dark",t=r?ce(o,{min:le.CANVAS_MIN_L}):o,s=F(t,Fn.sunken),a=r?Xo(B(t)??0):0,c=i(u=>Fn[u]+a*Ko[u],"delta");return{canvas:t,sunken:r?ce(s,{min:le.CANVAS_MIN_L}):s,paper:F(t,c("paper")),raised:F(t,c("raised")),overlay:F(t,c("overlay")),scrim:r?e.deepLight??$e:e.neutral?.["180"]??e.baseDark??$e}}i(Uo,"deriveSurface");function Yo(e,n){let o=e.baseDark??$e,r=ce(_n(z(o,n.paper,Pn),n.paper,we.primary),{max:le.INK_MAX_L}),t=i((s,a)=>_n(z(p(r,n.canvas,s),n.paper,Pn),n.paper,a),"tier");return{primary:r,secondary:t(Te.secondary,we.secondary),muted:t(Te.muted,we.muted),disabled:p(r,n.canvas,Te.disabled)}}i(Yo,"deriveInk");function Zo(e){return{hairline:G(e.primary,De.hairline),border:G(e.primary,De.border),strong:G(e.primary,De.strong)}}i(Zo,"deriveEdge");function Qo(e,n){let o=Wo[n];return{hover:G(e.primary,o.hover),pressed:G(e.primary,o.pressed),selected:G(e.primary,o.selected)}}i(Qo,"deriveWash");function er(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(er,"applyOverride");function Bn(e,n){let o=qo(e),r=Uo(e,o),t=Yo(e,r),s={surface:r,ink:t,edge:Zo(t),wash:Qo(t,o)};return er(s,n?.[o])}i(Bn,"resolveSurfaceLadder");function ir(e){let n=jn(e);return{baseDark:e.baseDark,baseLight:e.baseLight,deepDark:e.deepDark,deepLight:e.deepLight,transparent:e.transparent??"transparent",neutral:n,grayscale:Nn(e),...Bn({...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(ir,"composeColors");function E(e,n=rr){let o=e.mode==="dark"?nr(e.colors):e.colors,r=ir(o),t=X(n,e.dimension),s=or({colors:r,spacing:t}),a=zn(s);return e.surface==="negative"&&(a=zn(tr({semantic:s,colors:r},"negative").semantic)),{foundation:a,colors:r}}i(E,"buildVariantThemes");async function Bt(e){let{config:n,outDir:o,cwd:r=process.cwd(),verbose:t=!1}=e,s=re(n),a=n.output??{};if(s.length===0)throw new Error("apollion-tokens build: no variants (config.brands is empty)");let c=await sr(K(cr(),"apollion-tokens-"));try{let u=[],m=i(async(l,d)=>{await ur(c,l,d),u.push({path:l,sha256:te(d)}),t&&console.log(` \u2713 ${l}`)},"emit");if(a.json){let l=Vn(n),d=[],y=rn();d.push(y),await m(l.base.file,bn(y));for(let f of l.spacing){let R=s.find(W=>W.dimension===f.dimension),{foundation:C}=E(R),V=an(C,f.dimension);d.push(V),await m(f.file,kn(V,f.dimension))}for(let f of l.font){let R=tn(f.dimension);d.push(R),await m(f.file,In(R,f.dimension))}for(let f of l.color){let R=s.find(de=>de.brand===f.brand&&de.mode===f.mode&&de.surface===f.surface),{foundation:C,colors:V}=E(R),W=sn(C,V);d.push(W),await m(f.file,Rn(W,f.brand,f.mode,f.surface))}Ye(d),await m(Cn,xn(n,l))}if(a.css||a.ts)for(let l of s){let{foundation:d,colors:y}=E(l),f=j(d,y,l),R=Dn(l);a.css&&await m(`css/${R}.css`,mn(f,{rgbCompanions:a.tailwind})),a.ts&&await m(`ts/${R}.d.ts`,vn(f))}if(a.cssModes){let l=new Map;for(let d of s){let y=`${d.brand}.${d.surface}.${d.dimension}`,f=l.get(y)??{};f[d.mode]=d,l.set(y,f)}for(let[d,{light:y,dark:f}]of l){if(!y||!f)throw new Error(`apollion-tokens build: output.cssModes needs both modes for ${d} (config.modes)`);let R=E(y),C=E(f),V=gn(j(R.foundation,R.colors,y),j(C.foundation,C.colors,f),{rgbCompanions:a.tailwind});await m(`css/${d}.modes.css`,V)}}if(a.tailwind){let l=s[0],{foundation:d,colors:y}=E(l),f=j(d,y,l);await m("tailwind/preset.mjs",dn(f)),await m("tailwind/tw-merge.mjs",pn(f))}if(a.designMd){let l=[...new Set(s.map(d=>d.brand))];for(let d of l){let f=s.filter(R=>R.brand===d).map(R=>{let{foundation:C,colors:V}=E(R);return j(C,V,R)});await m(`design/${d}.design.md`,yn(d,f))}}let b={configHash:xe(n),files:u,gitCommit:wn(r),buildEnv:Tn()},S=$n(b);return await Jn(K(c,"manifest.json"),S),await Kn(o,{recursive:!0,force:!0}),await Wn(qn(o),{recursive:!0}),await ar(c,o),t&&console.log(`\u2713 ${u.length} files \u2192 ${o}`),{manifest:b,outDir:o}}catch(u){throw await Kn(c,{recursive:!0,force:!0}).catch(()=>{}),u}}i(Bt,"build");async function zt(e){let{config:n,outDir:o}=e,r;try{r=JSON.parse(await Hn(K(o,"manifest.json"),"utf8"))}catch{return!1}if(r.configHash!==xe(n))return!1;for(let t of r.files){let s;try{s=await Hn(K(o,t.path))}catch{return!1}if(te(s)!==t.sha256)return!1}return!0}i(zt,"check");async function ur(e,n,o){let r=K(e,n);await Wn(qn(r),{recursive:!0}),await Jn(r,o)}i(ur,"writeAt");export{Bt as build,zt as check};
|
|
9
|
+
${t.join(`
|
|
10
|
+
`)}`}i(In,"renderDesignMd");import{DEFAULT_TEXT_SIZE as Fo}from"@apollion-dsi/core/themes/text-size";function kn(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(kn,"colorValue");function _(e){return{value:e.value,unit:e.unit}}i(_,"dimensionValue");function Ao(e){return{value:e.value,unit:e.unit}}i(Ao,"durationValue");function Lo(e){return[...e.points]}i(Lo,"cubicBezierValue");function Oo(e){let n=e.shadow,o={color:kn(n.color),offsetX:_(n.offsetX),offsetY:_(n.offsetY),blur:_(n.blur),spread:_(n.spread)};return n.inset&&(o.inset=!0),o}i(Oo,"shadowValue");function Go(e){switch(e.kind){case"ref":return`{${Pe(e.path)}}`;case"color":return kn(e);case"dimension":return _(e);case"fontFamily":return e.family;case"fontWeight":return e.weight;case"number":return e.number;case"strokeStyle":return e.style;case"shadow":return Oo(e);case"duration":return Ao(e);case"cubicBezier":return Lo(e)}}i(Go,"projectValue");function jo(e){let n={$value:Go(e.value),$type:e.type};return e.description!==void 0&&(n.$description=e.description),e.deprecated!==void 0&&(n.$deprecated=e.deprecated),n}i(jo,"projectToken");function Se(e){let n={};for(let[o,t]of Object.entries(e))n[k(o)]=h(t)?jo(t):Se(t);return n}i(Se,"projectGroup");function B(e,n,o){let t=Se(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(B,"renderSet");function xn(e){return B(e,"Apollion DS \u2014 base set (axis-invariant: border, breakpoints, container sizes, layout, motion). DTCG 2025.10.")}i(xn,"renderBaseSet");function Sn(e,n,o,t){return B(e,`Apollion DS \u2014 colour set. brand=${n} mode=${o} surface=${t}. DTCG 2025.10.`)}i(Sn,"renderColorSet");function Tn(e,n){return B(e,`Apollion DS \u2014 spacing set. dimension=${n}. DTCG 2025.10.`)}i(Tn,"renderSpacingSet");function vn(e,n){return n.deprecatedDimension?B(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>.`):B(e,`Apollion DS \u2014 font set. textSize=${n.textSize}. DTCG 2025.10.`)}i(vn,"renderFontSet");function Dn(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:Fo}],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(Dn,"renderResolver");var zo="// Generated by apollion-tokens build \u2014 DO NOT EDIT. See apollion.config.mjs.";function No(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(No,"emitDoc");function wn(e,n,o){let t=" ".repeat(n);for(let[r,s]of Object.entries(e))h(s)?(No(s,t,o),o.push(`${t}${JSON.stringify(r)}: ${JSON.stringify($(s.value))},`)):(o.push(`${t}${r}: {`),wn(s,n+1,o),o.push(`${t}},`))}i(wn,"emitGroup");function $n(e){let{brand:n,mode:o,surface:t,dimension:r}=e.meta,s=[zo,`// 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(`
|
|
13
|
+
`)}i($n,"renderTs");var Po=["light","dark"],_o=["positive","negative"],Bo=["compact","normal","spacious"],Ho=["smaller","default","larger","largest"];function re(e){let n=[...new Set(e.textSizes??Ho)];if(!n.includes("default"))throw new Error(`apollion-tokens: textSizes must include 'default' (got [${n.join(", ")}])`);return n}i(re,"resolveTextSizes");function ie(e){let n=e.modes??Po,o=e.surfaces??_o,t=e.dimensions??Bo,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 f of o)for(let b of t)s.push({brand:a,colors:c,mode:u,surface:f,dimension:b});return s}i(ie,"expandVariants");function Cn(e){return`${e.brand}.${e.mode}.${e.surface}.${e.dimension}`}i(Cn,"variantName");import{createHash as Ko}from"node:crypto";function se(e){return Ko("sha256").update(e).digest("hex")}i(se,"sha256");function ve(e){return se(Te(e))}i(ve,"hashConfig");function Te(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(Te).join(",")}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${Te(e[t])}`).join(",")}}`}i(Te,"stableStringify");function En(e){try{let{execSync:n}=eo("node:child_process");return n("git rev-parse --short HEAD",{cwd:e,stdio:["ignore","pipe","ignore"],encoding:"utf8"}).trim()}catch{return""}}i(En,"detectGitCommit");function Vn(){return{node:process.version,platform:`${process.platform}-${process.arch}`}}i(Vn,"buildEnv");function Mn(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)}
|
|
14
|
+
`}i(Mn,"serializeManifest");import{DEFAULT_TEXT_SIZE as Wo}from"@apollion-dsi/core/themes/text-size";var Jo="json/sets",An="json/resolver.json";function H(e){return`${Jo}/${e}.json`}i(H,"setFile");function Uo(e,n,o){return`${e}.color.${n}.${o}`}i(Uo,"colorSetName");function Xo(e){return`spacing.${e}`}i(Xo,"spacingSetName");function Zo(e){return`font.${e}`}i(Zo,"fontSetName");function qo(e){return`font.${e}`}i(qo,"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=Zo(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=Uo(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=Xo(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=qo(l);S.push({kind:"font",name:d,file:H(d),textSize:Wo,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{toDarkColors as ft}from"@apollion-dsi/core/themes/colors";import{createFoundation as Jn}from"@apollion-dsi/core/themes/foundation";import{createSemantic as mt}from"@apollion-dsi/core/themes/semantic";import{defaultInputSpacing as gt}from"@apollion-dsi/core/themes/spacing";import{invertForSurface as yt}from"@apollion-dsi/core/themes/surface";import{converter as zn,formatHex as O,interpolate as Yo,parse as x,wcagContrast as Nn}from"culori";var J=zn("oklch"),Qo=zn("rgb");function p(e,n,o){let t=x(e),r=x(n);if(!t||!r)return e;let s=Yo([t,r],"oklch");return O(s(o))??e}i(p,"mixOklch");function et(e){return e?typeof e=="string"?e:e.base:"#000"}i(et,"coerceToHex");var ce=1.3,nt=.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"),ot=4.5;function W(e,n,o=ot){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)>=nt},"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=et(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=Qo(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 tt,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 rt}from"@apollion-dsi/core/themes/colors";var it="#FFFFFF",Ve="#000000";function st(e){return De(e.baseLight)?"dark":"light"}i(st,"resolvePolarity");function at(e){let n=de.CANVAS_MIN_L;return e<=n?1:e>=we?0:(we-e)/(we-n)}i(at,"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 ct(e,n){let o=e.baseLight??it,t=n==="dark",r=t?ue(o,{min:de.CANVAS_MIN_L}):o,s=z(r,Bn.sunken),a=t?at(K(r)??0):0,c=i(u=>Bn[u]+a*tt[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(ct,"deriveSurface");function ut(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(ut,"deriveInk");function lt(e){return{hairline:G(e.primary,$e.hairline),border:G(e.primary,$e.border),strong:G(e.primary,$e.strong)}}i(lt,"deriveEdge");function dt(e,n){let o=rt[n];return{hover:G(e.primary,o.hover),pressed:G(e.primary,o.pressed),selected:G(e.primary,o.selected)}}i(dt,"deriveWash");function pt(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(pt,"applyOverride");function Wn(e,n){let o=st(e),t=ct(e,o),r=ut(e,t),s={surface:t,ink:r,edge:lt(r),wash:dt(r,o)};return pt(s,n?.[o])}i(Wn,"resolveSurfaceLadder");function ht(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(ht,"composeColors");function M(e,n=gt){let o=e.mode==="dark"?ft(e.colors):e.colors,t=ht(o),r=Y(n,e.dimension),s=mt({colors:t,spacing:r}),a=Jn(s);return e.surface==="negative"&&(a=Jn(yt({semantic:s,colors:t},"negative").semantic)),{foundation:a,colors:t}}i(M,"buildVariantThemes");async function ri(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 bt(U(It(),"apollion-tokens-"));try{let u=[],f=i(async(l,d)=>{await kt(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 qn(U(c,"manifest.json"),S),await Xn(o,{recursive:!0,force:!0}),await Zn(Yn(o),{recursive:!0}),await Rt(c,o),r&&console.log(`\u2713 ${u.length} files \u2192 ${o}`),{manifest:b,outDir:o}}catch(u){throw await Xn(c,{recursive:!0,force:!0}).catch(()=>{}),u}}i(ri,"build");async function ii(e){let{config:n,outDir:o}=e,t;try{t=JSON.parse(await Un(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 Un(U(o,r.path))}catch{return!1}if(se(s)!==r.sha256)return!1}return!0}i(ii,"check");async function kt(e,n,o){let t=U(e,n);await Zn(Yn(t),{recursive:!0}),await qn(t,o)}i(kt,"writeAt");export{ri as build,ii as check};
|