@vcp-dev/contracts 0.10.14 → 0.10.15
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/dist/colorway-distinctness.js +1 -1
- package/dist/design-token-block.d.ts +9 -0
- package/dist/design-token-block.js +2 -2
- package/dist/design-tokens.d.ts +8 -0
- package/dist/design-tokens.js +1 -1
- package/dist/index.d.ts +211 -0
- package/dist/index.js +6 -6
- package/dist/launcher-prompt-templates.d.ts +10 -0
- package/dist/site-design-notes.d.ts +14 -0
- package/dist/site-edit-operation.d.ts +1 -1
- package/dist/site-edit-render-document.d.ts +1 -1
- package/dist/site-edit-source.d.ts +3 -3
- package/dist/site-edit-version.d.ts +1 -1
- package/dist/step6-design.d.ts +61 -2
- package/dist/step6-gpt-design.d.ts +15 -0
- package/dist/type-weight.d.ts +29 -0
- package/dist/workspace-design-apply.d.ts +15 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{converter as ge,differenceCiede2000 as pe}from"culori";import{converter as ce,formatHex as Oe,parse as g,wcagContrast as w}from"culori";var y=ce("oklch"),M=4.5,U=7,e={paper:"oklch(0.92 0.008 250)",cream:"oklch(0.90 0.035 85)",sand:"oklch(0.75 0.05 78)",stone:"oklch(0.60 0.02 75)",ash:"oklch(0.60 0.012 250)",slate:"oklch(0.45 0.025 250)",charcoal:"oklch(0.30 0.015 255)",ink:"oklch(0.25 0.04 260)",sky:"oklch(0.72 0.12 230)",blue:"oklch(0.58 0.17 250)","medical blue":"oklch(0.58 0.12 235)",indigo:"oklch(0.50 0.18 280)",navy:"oklch(0.40 0.10 258)",ocean:"oklch(0.55 0.13 220)","slate blue":"oklch(0.46 0.06 245)",teal:"oklch(0.60 0.12 195)","soft aqua":"oklch(0.78 0.07 190)",mint:"oklch(0.78 0.10 165)",sage:"oklch(0.65 0.05 145)",green:"oklch(0.58 0.15 145)","clinical green":"oklch(0.62 0.12 155)",emerald:"oklch(0.60 0.16 155)",forest:"oklch(0.45 0.10 145)",olive:"oklch(0.58 0.08 115)",lime:"oklch(0.72 0.17 130)",yellow:"oklch(0.82 0.15 100)",gold:"oklch(0.72 0.14 85)",amber:"oklch(0.70 0.16 70)",orange:"oklch(0.66 0.18 55)",coral:"oklch(0.68 0.16 32)",terracotta:"oklch(0.55 0.12 42)",rust:"oklch(0.50 0.13 38)",brown:"oklch(0.45 0.07 55)",rose:"oklch(0.65 0.16 18)",red:"oklch(0.58 0.20 25)",crimson:"oklch(0.52 0.20 22)",wine:"oklch(0.42 0.13 18)",pink:"oklch(0.72 0.14 0)",magenta:"oklch(0.60 0.22 345)",lavender:"oklch(0.72 0.08 295)",violet:"oklch(0.58 0.19 295)",purple:"oklch(0.52 0.19 305)",plum:"oklch(0.45 0.13 325)",electric:"oklch(0.62 0.23 285)","clean white":"oklch(0.97 0.01 245)","cool gray":"oklch(0.62 0.02 245)",zinc:"oklch(0.60 0.012 250)",gray:"oklch(0.60 0.012 250)",grey:"oklch(0.60 0.012 250)",neutral:"oklch(0.60 0.005 250)",gunmetal:"oklch(0.30 0.015 255)"},le={\u84DD:e.blue,\u84DD\u8272:e.blue,\u5929\u84DD:e.sky,\u5929\u84DD\u8272:e.sky,\u6D45\u84DD:e.sky,\u6E56\u84DD:e.ocean,\u6D77\u84DD:e.ocean,\u6DF1\u84DD:e.navy,\u85CF\u84DD:e.navy,\u85CF\u9752:e.navy,\u6D77\u519B\u84DD:e.navy,\u6DF1\u6D77\u519B\u84DD:e.navy,\u5348\u591C\u84DD:e.navy,\u975B\u84DD:e.indigo,\u975B\u9752:e.indigo,\u94A2\u84DD:e["slate blue"],\u9752:e.teal,\u9752\u8272:e.teal,\u84DD\u7EFF:e.teal,\u7EFF:e.green,\u7EFF\u8272:e.green,\u6D45\u7EFF:e.mint,\u8584\u8377\u7EFF:e.mint,\u8349\u7EFF:e.lime,\u6A44\u6984\u7EFF:e.olive,\u58A8\u7EFF:e.forest,\u6DF1\u7EFF:e.forest,\u68EE\u6797\u7EFF:e.forest,\u7FE0\u7EFF:e.emerald,\u7956\u6BCD\u7EFF:e.emerald,\u9EC4:e.yellow,\u9EC4\u8272:e.yellow,\u91D1:e.gold,\u91D1\u8272:e.gold,\u91D1\u9EC4:e.gold,\u7425\u73C0:e.amber,\u7425\u73C0\u8272:e.amber,\u6A59:e.orange,\u6A59\u8272:e.orange,\u6A58\u8272:e.orange,\u6A58\u9EC4:e.orange,\u6D3B\u529B\u6A59:e.orange,\u6696\u6A59:e.orange,\u73CA\u745A:e.coral,\u73CA\u745A\u6A59:e.coral,\u9676\u571F:e.terracotta,\u8D64\u9676:e.terracotta,\u9508\u7EA2:e.rust,\u68D5:e.brown,\u68D5\u8272:e.brown,\u8910\u8272:e.brown,\u5496\u5561\u8272:e.brown,\u7EA2:e.red,\u7EA2\u8272:e.red,\u6731\u7EA2:e.red,\u7EEF\u7EA2:e.crimson,\u6DF1\u7EA2:e.crimson,\u9152\u7EA2:e.wine,\u73AB\u7470:e.rose,\u73AB\u7EA2:e.rose,\u7C89:e.pink,\u7C89\u8272:e.pink,\u7C89\u7EA2:e.pink,\u6D0B\u7EA2:e.magenta,\u54C1\u7EA2:e.magenta,\u7D2B:e.purple,\u7D2B\u8272:e.purple,\u6DE1\u7D2B:e.lavender,\u85B0\u8863\u8349:e.lavender,\u7D2B\u7F57\u5170:e.violet,\u6885\u7EA2:e.plum,\u7070:e.gray,\u7070\u8272:e.gray,\u6D45\u7070:e.gray,\u6DE1\u7070:e.gray,\u51B7\u7070:e["cool gray"],\u51B7\u7070\u767D:e["cool gray"],\u6696\u7070:e.stone,\u6DF1\u7070:e.slate,\u77F3\u58A8\u7070:e.slate,\u77F3\u677F\u7070:e.slate,\u70AD\u7070:e.charcoal,\u70AD\u9ED1:e.charcoal,\u58A8:e.ink,\u58A8\u8272:e.ink,\u9ED1:e.ink,\u9ED1\u8272:e.ink,\u767D:e["clean white"],\u767D\u8272:e["clean white"],\u7C73\u767D:e.cream,\u7C73\u8272:e.cream,\u8C61\u7259\u767D:e.cream,\u5976\u6CB9\u767D:e.cream,\u6C99\u8272:e.sand},K={...e,...le};function j(o){let t=o.colorSeeds??{primary:"slate",accent:"blue",neutral:"zinc"},n=o.surfaceMode,r=v(t.primary||"slate"),c=i(r),a=v(t.accent||"blue"),s=i(a),m=t.neutral?v(t.neutral):he(r),h=u(m.h),l=S(m)?0:1,d,f,p,A,R,I;n==="dark"?(d=i({mode:"oklch",l:.14,c:.03*l,h}),f=i({mode:"oklch",l:.95,c:.02*l,h}),p=i({mode:"oklch",l:.2,c:.04*l,h}),A=i({mode:"oklch",l:.29,c:.05*l,h}),R=i({mode:"oklch",l:.78,c:.02*l,h}),I=i({mode:"oklch",l:.35,c:.06*l,h})):(d=i({mode:"oklch",l:.98,c:.01*l,h}),f=i({mode:"oklch",l:.2,c:.02*l,h}),p=i({mode:"oklch",l:.96,c:.015*l,h}),A=i({mode:"oklch",l:.92,c:.02*l,h}),R=i({mode:"oklch",l:.43,c:.02*l,h}),I=i({mode:"oklch",l:.84,c:.025*l,h}));let N=S(r),X=S(a),E=l===0,O=l===0,k=o.imagePalette;if(k){let x=typeof k.background=="string"&&C(k.background),D=x&&ke(k.background,n);if(x&&D){let T=v(k.background);d=i(T),E=S(T)}if(D&&typeof k.card=="string"&&C(k.card)&&(p=i(v(k.card))),D&&typeof k.muted=="string"&&C(k.muted)&&(A=i(v(k.muted))),typeof k.foreground=="string"&&C(k.foreground)){let T=v(k.foreground);f=$(i(T),d,M,E),O=S(T)}else x&&D&&(f=b(d,E),O=E);typeof k.border=="string"&&C(k.border)&&(I=me(i(v(k.border)),d))}if(typeof t.foreground=="string"&&C(t.foreground)){let x=v(t.foreground);f=$(i(x),d,M,E),O=S(x)}let H=n!=="dark",B=i({mode:"oklch",l:.96,c:.02*l,h}),P=i({mode:"oklch",l:.2,c:.02*l,h}),Y={"--background":d,"--foreground":f,"--card":p,"--card-foreground":f,"--muted":A,"--muted-foreground":R,"--border":I,"--input":I,"--ring":s,"--primary":c,"--primary-foreground":b(c,N),"--primary-hover":V(c,H),"--accent":s,"--accent-foreground":b(s,X),"--accent-ink":_(s,d,E),"--accent-subtle":de(s,H),"--accent-hover":V(s,H),"--overlay-on-dark":B,"--overlay-on-light":P,"--overlay-on-dark-accent-ink":_(s,P),"--overlay-on-light-accent-ink":_(s,B),"--overlay-on-dark-muted":F(P,h,U,L*l),"--overlay-on-light-muted":F(B,h,U,L*l)},Q=f,Z=b(f,O),ee=F(f,h,M,L*l,O),oe=_(s,f,O),G=y(g(c)??c),te=u(G?.h),ne=F(c,te,M,G&&S(G)?0:L,N),re=_(s,c,N);return ae({...Y,...{"--surface-inverse":Q,"--surface-inverse-foreground":Z,"--surface-inverse-muted":ee,"--surface-inverse-accent-ink":oe,"--surface-primary-muted":ne,"--surface-primary-accent-ink":re}},t)}function ae(o,t){let n=i({mode:"oklch",l:.58,c:.22,h:28}),r=i({mode:"oklch",l:.6,c:.14,h:150}),c=i({mode:"oklch",l:.75,c:.15,h:75}),a={...o,"--popover":"var(--card)","--popover-foreground":"var(--card-foreground)","--secondary":"var(--muted)","--secondary-foreground":"var(--foreground)","--destructive":n,"--destructive-foreground":b(n),"--success":r,"--success-foreground":b(r),"--warning":c,"--warning-foreground":b(c)},[s,m]=se(t,a);return a["--supporting-0"]=s,a["--supporting-1"]=m,fe(a["--accent"]).forEach((l,d)=>{a[`--chart-${d+1}`]=l}),a}function se(o,t){let c=(o.supporting??[]).filter(s=>!!(s&&s.trim())).slice(0,2).map(s=>i(v(s))),a=[t["--primary"],t["--accent"]];for(;c.length<2;)c.push(a[c.length]);return[c[0],c[1]]}function C(o){let t=(o??"").trim();if(!t||t.startsWith("#")&&!/^#[0-9A-Fa-f]{3,8}$/.test(t))return!1;let n=K[t.toLowerCase()]??t;return!!g(n)}function v(o,t="paper"){let n=(o??"").trim();if(!n)return v(t);let r=K[n.toLowerCase()]??n,c=g(r);if(c){let a=y(c);if(a)return a}return ie(n)}function ie(o){let t=2166136261,n=o.toLowerCase();for(let s=0;s<n.length;s++)t^=n.charCodeAt(s),t=Math.imul(t,16777619)>>>0;let r=t%360,c=.08+(t>>>9)%9/100;return{mode:"oklch",l:.52+(t>>>18)%16/100,c,h:r}}function he(o){return S(o)?{mode:"oklch",l:.6,c:0}:{mode:"oklch",l:.6,c:.02,h:u(o.h)}}var L=.02,ue=.002;function S(o){return typeof o.h!="number"||!Number.isFinite(o.h)||u(o.c)<ue}function V(o,t){let n=y(g(o)??o);if(!n)return o;let r=t?-.06:.06,c=Math.max(.06,Math.min(.97,u(n.l)+r));return i({mode:"oklch",l:c,c:u(n.c),h:u(n.h)})}function de(o,t){let n=y(g(o)??o),r=u(n?.h),c=Math.min(u(n?.c),t?.05:.06);return i({mode:"oklch",l:t?.95:.24,c,h:r})}function fe(o){let t=y(g(o)??o),n=u(t?.h),r=Math.max(.12,Math.min(u(t?.c),.16));return[0,72,144,216,288].map(c=>i({mode:"oklch",l:.62,c:r,h:(n+c)%360}))}function b(o,t){let n=g(o),r=n?y(n):void 0,c=u(r?.h),a=t??(!r||S(r))?0:1,s={mode:"oklch",l:.99,c:.01*a,h:c},m={mode:"oklch",l:.18,c:.02*a,h:c},h=w(n??o,s),l=w(n??o,m);return i(h>=l?s:m)}function $(o,t,n,r){let c=y(g(o)??o);if(!c)return b(t,r);if(w(o,t)>=n)return i(c);let a=y(g(t)??t),m=(a?u(a.l)>=.5:!0)?-.02:.02,h=u(c.l),l=u(c.c),d=u(c.h);for(let f=1;f<=50;f++){let p=h+m*f;if(p<=0||p>=1)break;let A={mode:"oklch",l:p,c:l,h:d};if(w(A,t)>=n)return i(A)}return b(t,r)}var z=1.3;function me(o,t){let n=y(g(o)??o);if(!n)return o;if(w(o,t)>=z)return i(n);let r=y(g(t)??t),a=(r?u(r.l)>=.5:!0)?-.03:.03,s=u(n.l),m=u(n.c),h=u(n.h);for(let l=1;l<=40;l++){let d=s+a*l;if(d<=0||d>=1)break;let f={mode:"oklch",l:d,c:m,h};if(w(f,t)>=z)return i(f)}return o}function ke(o,t){let n=y(g(o)??o);if(!n)return!1;let r=u(n.l)>=.5;return t==="dark"?!r:r}function _(o,t,n){let r=y(g(o)??o);if(!r)return o;let c=u(r.h),a=u(r.c),s=u(r.l),m=y(g(t)??t),l=(m?u(m.l)>=.5:!0)?-.02:.02;for(let d=0;d<=50;d++){let f=s+l*d;if(f<=0||f>=1)break;let p={mode:"oklch",l:f,c:a,h:c};if(w(p,t)>=M)return i(p)}return b(t,n)}function F(o,t,n=M,r=L,c){let a=y(g(o)??o),m=(a?u(a.l):.5)>=.5,h=m?.75:.35,l=m?-.02:.02;for(let d=0;d<=50;d++){let f=h+l*d;if(f<=0||f>=1)break;let p={mode:"oklch",l:f,c:r,h:t};if(w(p,o)>=n)return i(p)}return b(o,c)}function u(o){return typeof o=="number"&&Number.isFinite(o)?o:0}function i(o){let t=u(o.l),n=u(o.c),r=u(o.h);return`oklch(${t.toFixed(2)} ${n.toFixed(2)} ${r.toFixed(2)})`}var ye=10,q=25,ve=ge("oklch"),be=pe();function Se(o){return typeof o.colorSeeds?.primary=="string"&&o.colorSeeds.primary.trim().length>0}function J(o){let t=ve(o);return t&&typeof t.h=="number"?t.h:void 0}function W(o){let t=0;for(let n=0;n<o.length;n+=1)for(let r=n+1;r<o.length;r+=1){let c=o[n],a=o[r];if(c===void 0||a===void 0)continue;let s=Math.abs(c-a)%360,m=s>180?360-s:s;m>t&&(t=m)}return t}function we(o){let t=0,n=1/0;for(let r=0;r<o.length;r+=1)for(let c=r+1;c<o.length;c+=1){let a=be(o[r],o[c]);a>t&&(t=a),a<n&&(n=a)}return{max:t,min:n===1/0?0:n}}function Ie(o){let t=o.filter(Se);if(t.length<2)return{minBackgroundDeltaE:null,tooSimilar:!1,insufficient:!0};let n=t.map(l=>l.surfaceMode??"light"),r=t.map((l,d)=>j({colorSeeds:l.colorSeeds,surfaceMode:n[d]})),c=we(r.map(l=>l["--background"])),a=W(r.map(l=>J(l["--primary"]))),s=W(r.map(l=>J(l["--accent"]))),h=!(new Set(n).size===1)||c.max>=ye||a>=q||s>=q;return{minBackgroundDeltaE:c.min,tooSimilar:!h,insufficient:!1}}export{Ie as measureColorwayDistinctness};
|
|
1
|
+
import{converter as ge,differenceCiede2000 as pe}from"culori";import{converter as ce,formatHex as Ee,parse as g,wcagContrast as w}from"culori";var y=ce("oklch"),M=4.5,U=7,e={paper:"oklch(0.92 0.008 250)",cream:"oklch(0.90 0.035 85)",sand:"oklch(0.75 0.05 78)",stone:"oklch(0.60 0.02 75)",ash:"oklch(0.60 0.012 250)",slate:"oklch(0.45 0.025 250)",charcoal:"oklch(0.30 0.015 255)",ink:"oklch(0.25 0.04 260)",sky:"oklch(0.72 0.12 230)",blue:"oklch(0.58 0.17 250)","medical blue":"oklch(0.58 0.12 235)",indigo:"oklch(0.50 0.18 280)",navy:"oklch(0.40 0.10 258)",ocean:"oklch(0.55 0.13 220)","slate blue":"oklch(0.46 0.06 245)",teal:"oklch(0.60 0.12 195)","soft aqua":"oklch(0.78 0.07 190)",mint:"oklch(0.78 0.10 165)",sage:"oklch(0.65 0.05 145)",green:"oklch(0.58 0.15 145)","clinical green":"oklch(0.62 0.12 155)",emerald:"oklch(0.60 0.16 155)",forest:"oklch(0.45 0.10 145)",olive:"oklch(0.58 0.08 115)",lime:"oklch(0.72 0.17 130)",yellow:"oklch(0.82 0.15 100)",gold:"oklch(0.72 0.14 85)",amber:"oklch(0.70 0.16 70)",orange:"oklch(0.66 0.18 55)",coral:"oklch(0.68 0.16 32)",terracotta:"oklch(0.55 0.12 42)",rust:"oklch(0.50 0.13 38)",brown:"oklch(0.45 0.07 55)",rose:"oklch(0.65 0.16 18)",red:"oklch(0.58 0.20 25)",crimson:"oklch(0.52 0.20 22)",wine:"oklch(0.42 0.13 18)",pink:"oklch(0.72 0.14 0)",magenta:"oklch(0.60 0.22 345)",lavender:"oklch(0.72 0.08 295)",violet:"oklch(0.58 0.19 295)",purple:"oklch(0.52 0.19 305)",plum:"oklch(0.45 0.13 325)",electric:"oklch(0.62 0.23 285)","clean white":"oklch(0.97 0.01 245)","cool gray":"oklch(0.62 0.02 245)",zinc:"oklch(0.60 0.012 250)",gray:"oklch(0.60 0.012 250)",grey:"oklch(0.60 0.012 250)",neutral:"oklch(0.60 0.005 250)",gunmetal:"oklch(0.30 0.015 255)"},le={\u84DD:e.blue,\u84DD\u8272:e.blue,\u5929\u84DD:e.sky,\u5929\u84DD\u8272:e.sky,\u6D45\u84DD:e.sky,\u6E56\u84DD:e.ocean,\u6D77\u84DD:e.ocean,\u6DF1\u84DD:e.navy,\u85CF\u84DD:e.navy,\u85CF\u9752:e.navy,\u6D77\u519B\u84DD:e.navy,\u6DF1\u6D77\u519B\u84DD:e.navy,\u5348\u591C\u84DD:e.navy,\u975B\u84DD:e.indigo,\u975B\u9752:e.indigo,\u94A2\u84DD:e["slate blue"],\u9752:e.teal,\u9752\u8272:e.teal,\u84DD\u7EFF:e.teal,\u7EFF:e.green,\u7EFF\u8272:e.green,\u6D45\u7EFF:e.mint,\u8584\u8377\u7EFF:e.mint,\u8349\u7EFF:e.lime,\u6A44\u6984\u7EFF:e.olive,\u58A8\u7EFF:e.forest,\u6DF1\u7EFF:e.forest,\u68EE\u6797\u7EFF:e.forest,\u7FE0\u7EFF:e.emerald,\u7956\u6BCD\u7EFF:e.emerald,\u9EC4:e.yellow,\u9EC4\u8272:e.yellow,\u91D1:e.gold,\u91D1\u8272:e.gold,\u91D1\u9EC4:e.gold,\u7425\u73C0:e.amber,\u7425\u73C0\u8272:e.amber,\u6A59:e.orange,\u6A59\u8272:e.orange,\u6A58\u8272:e.orange,\u6A58\u9EC4:e.orange,\u6D3B\u529B\u6A59:e.orange,\u6696\u6A59:e.orange,\u73CA\u745A:e.coral,\u73CA\u745A\u6A59:e.coral,\u9676\u571F:e.terracotta,\u8D64\u9676:e.terracotta,\u9508\u7EA2:e.rust,\u68D5:e.brown,\u68D5\u8272:e.brown,\u8910\u8272:e.brown,\u5496\u5561\u8272:e.brown,\u7EA2:e.red,\u7EA2\u8272:e.red,\u6731\u7EA2:e.red,\u7EEF\u7EA2:e.crimson,\u6DF1\u7EA2:e.crimson,\u9152\u7EA2:e.wine,\u73AB\u7470:e.rose,\u73AB\u7EA2:e.rose,\u7C89:e.pink,\u7C89\u8272:e.pink,\u7C89\u7EA2:e.pink,\u6D0B\u7EA2:e.magenta,\u54C1\u7EA2:e.magenta,\u7D2B:e.purple,\u7D2B\u8272:e.purple,\u6DE1\u7D2B:e.lavender,\u85B0\u8863\u8349:e.lavender,\u7D2B\u7F57\u5170:e.violet,\u6885\u7EA2:e.plum,\u7070:e.gray,\u7070\u8272:e.gray,\u6D45\u7070:e.gray,\u6DE1\u7070:e.gray,\u51B7\u7070:e["cool gray"],\u51B7\u7070\u767D:e["cool gray"],\u6696\u7070:e.stone,\u6DF1\u7070:e.slate,\u77F3\u58A8\u7070:e.slate,\u77F3\u677F\u7070:e.slate,\u70AD\u7070:e.charcoal,\u70AD\u9ED1:e.charcoal,\u58A8:e.ink,\u58A8\u8272:e.ink,\u9ED1:e.ink,\u9ED1\u8272:e.ink,\u767D:e["clean white"],\u767D\u8272:e["clean white"],\u7C73\u767D:e.cream,\u7C73\u8272:e.cream,\u8C61\u7259\u767D:e.cream,\u5976\u6CB9\u767D:e.cream,\u6C99\u8272:e.sand},K={...e,...le};function j(o){let t=o.colorSeeds??{primary:"slate",accent:"blue",neutral:"zinc"},n=o.surfaceMode,r=v(t.primary||"slate"),c=i(r),a=v(t.accent||"blue"),s=i(a),m=t.neutral?v(t.neutral):he(r),h=u(m.h),l=S(m)?0:1,d,f,p,A,R,I;n==="dark"?(d=i({mode:"oklch",l:.14,c:.03*l,h}),f=i({mode:"oklch",l:.95,c:.02*l,h}),p=i({mode:"oklch",l:.2,c:.04*l,h}),A=i({mode:"oklch",l:.29,c:.05*l,h}),R=i({mode:"oklch",l:.78,c:.02*l,h}),I=i({mode:"oklch",l:.35,c:.06*l,h})):(d=i({mode:"oklch",l:.98,c:.01*l,h}),f=i({mode:"oklch",l:.2,c:.02*l,h}),p=i({mode:"oklch",l:.96,c:.015*l,h}),A=i({mode:"oklch",l:.92,c:.02*l,h}),R=i({mode:"oklch",l:.43,c:.02*l,h}),I=i({mode:"oklch",l:.84,c:.025*l,h}));let N=S(r),X=S(a),x=l===0,E=l===0,k=o.imagePalette;if(k){let C=typeof k.background=="string"&&O(k.background),D=C&&ke(k.background,n);if(C&&D){let T=v(k.background);d=i(T),x=S(T)}if(D&&typeof k.card=="string"&&O(k.card)&&(p=i(v(k.card))),D&&typeof k.muted=="string"&&O(k.muted)&&(A=i(v(k.muted))),typeof k.foreground=="string"&&O(k.foreground)){let T=v(k.foreground);f=$(i(T),d,M,x),E=S(T)}else C&&D&&(f=b(d,x),E=x);typeof k.border=="string"&&O(k.border)&&(I=me(i(v(k.border)),d))}if(typeof t.foreground=="string"&&O(t.foreground)){let C=v(t.foreground);f=$(i(C),d,M,x),E=S(C)}let H=n!=="dark",B=i({mode:"oklch",l:.96,c:.02*l,h}),P=i({mode:"oklch",l:.2,c:.02*l,h}),Y={"--background":d,"--foreground":f,"--card":p,"--card-foreground":f,"--muted":A,"--muted-foreground":R,"--border":I,"--input":I,"--ring":s,"--primary":c,"--primary-foreground":b(c,N),"--primary-hover":V(c,H),"--accent":s,"--accent-foreground":b(s,X),"--accent-ink":L(s,d,x),"--accent-subtle":de(s,H),"--accent-hover":V(s,H),"--overlay-on-dark":B,"--overlay-on-light":P,"--overlay-on-dark-accent-ink":L(s,P),"--overlay-on-light-accent-ink":L(s,B),"--overlay-on-dark-muted":F(P,h,U,_*l),"--overlay-on-light-muted":F(B,h,U,_*l)},Q=f,Z=b(f,E),ee=F(f,h,M,_*l,E),oe=L(s,f,E),G=y(g(c)??c),te=u(G?.h),ne=F(c,te,M,G&&S(G)?0:_,N),re=L(s,c,N);return ae({...Y,...{"--surface-inverse":Q,"--surface-inverse-foreground":Z,"--surface-inverse-muted":ee,"--surface-inverse-accent-ink":oe,"--surface-primary-muted":ne,"--surface-primary-accent-ink":re}},t)}function ae(o,t){let n=i({mode:"oklch",l:.58,c:.22,h:28}),r=i({mode:"oklch",l:.6,c:.14,h:150}),c=i({mode:"oklch",l:.75,c:.15,h:75}),a={...o,"--popover":"var(--card)","--popover-foreground":"var(--card-foreground)","--secondary":"var(--muted)","--secondary-foreground":"var(--foreground)","--destructive":n,"--destructive-foreground":b(n),"--success":r,"--success-foreground":b(r),"--warning":c,"--warning-foreground":b(c)},[s,m]=se(t,a);return a["--supporting-0"]=s,a["--supporting-1"]=m,fe(a["--accent"]).forEach((l,d)=>{a[`--chart-${d+1}`]=l}),a}function se(o,t){let c=(o.supporting??[]).filter(s=>!!(s&&s.trim())).slice(0,2).map(s=>i(v(s))),a=[t["--primary"],t["--accent"]];for(;c.length<2;)c.push(a[c.length]);return[c[0],c[1]]}function O(o){let t=(o??"").trim();if(!t||t.startsWith("#")&&!/^#[0-9A-Fa-f]{3,8}$/.test(t))return!1;let n=K[t.toLowerCase()]??t;return!!g(n)}function v(o,t="paper"){let n=(o??"").trim();if(!n)return v(t);let r=K[n.toLowerCase()]??n,c=g(r);if(c){let a=y(c);if(a)return a}return ie(n)}function ie(o){let t=2166136261,n=o.toLowerCase();for(let s=0;s<n.length;s++)t^=n.charCodeAt(s),t=Math.imul(t,16777619)>>>0;let r=t%360,c=.08+(t>>>9)%9/100;return{mode:"oklch",l:.52+(t>>>18)%16/100,c,h:r}}function he(o){return S(o)?{mode:"oklch",l:.6,c:0}:{mode:"oklch",l:.6,c:.02,h:u(o.h)}}var _=.02,ue=.002;function S(o){return typeof o.h!="number"||!Number.isFinite(o.h)||u(o.c)<ue}function V(o,t){let n=y(g(o)??o);if(!n)return o;let r=t?-.06:.06,c=Math.max(.06,Math.min(.97,u(n.l)+r));return i({mode:"oklch",l:c,c:u(n.c),h:u(n.h)})}function de(o,t){let n=y(g(o)??o),r=u(n?.h),c=Math.min(u(n?.c),t?.05:.06);return i({mode:"oklch",l:t?.95:.24,c,h:r})}function fe(o){let t=y(g(o)??o),n=u(t?.h),r=Math.max(.12,Math.min(u(t?.c),.16));return[0,72,144,216,288].map(c=>i({mode:"oklch",l:.62,c:r,h:(n+c)%360}))}function b(o,t){let n=g(o),r=n?y(n):void 0,c=u(r?.h),a=t??(!r||S(r))?0:1,s={mode:"oklch",l:.99,c:.01*a,h:c},m={mode:"oklch",l:.18,c:.02*a,h:c},h=w(n??o,s),l=w(n??o,m);return i(h>=l?s:m)}function $(o,t,n,r){let c=y(g(o)??o);if(!c)return b(t,r);if(w(o,t)>=n)return i(c);let a=y(g(t)??t),m=(a?u(a.l)>=.5:!0)?-.02:.02,h=u(c.l),l=u(c.c),d=u(c.h);for(let f=1;f<=50;f++){let p=h+m*f;if(p<=0||p>=1)break;let A={mode:"oklch",l:p,c:l,h:d};if(w(A,t)>=n)return i(A)}return b(t,r)}var z=1.3;function me(o,t){let n=y(g(o)??o);if(!n)return o;if(w(o,t)>=z)return i(n);let r=y(g(t)??t),a=(r?u(r.l)>=.5:!0)?-.03:.03,s=u(n.l),m=u(n.c),h=u(n.h);for(let l=1;l<=40;l++){let d=s+a*l;if(d<=0||d>=1)break;let f={mode:"oklch",l:d,c:m,h};if(w(f,t)>=z)return i(f)}return o}function ke(o,t){let n=y(g(o)??o);if(!n)return!1;let r=u(n.l)>=.5;return t==="dark"?!r:r}function L(o,t,n){let r=y(g(o)??o);if(!r)return o;let c=u(r.h),a=u(r.c),s=u(r.l),m=y(g(t)??t),l=(m?u(m.l)>=.5:!0)?-.02:.02;for(let d=0;d<=50;d++){let f=s+l*d;if(f<=0||f>=1)break;let p={mode:"oklch",l:f,c:a,h:c};if(w(p,t)>=M)return i(p)}return b(t,n)}function F(o,t,n=M,r=_,c){let a=y(g(o)??o),m=(a?u(a.l):.5)>=.5,h=m?.75:.35,l=m?-.02:.02;for(let d=0;d<=50;d++){let f=h+l*d;if(f<=0||f>=1)break;let p={mode:"oklch",l:f,c:r,h:t};if(w(p,o)>=n)return i(p)}return b(o,c)}function u(o){return typeof o=="number"&&Number.isFinite(o)?o:0}function i(o){let t=u(o.l),n=u(o.c),r=u(o.h);return`oklch(${t.toFixed(2)} ${n.toFixed(2)} ${r.toFixed(2)})`}var ye=10,q=25,ve=ge("oklch"),be=pe();function Se(o){return typeof o.colorSeeds?.primary=="string"&&o.colorSeeds.primary.trim().length>0}function J(o){let t=ve(o);return t&&typeof t.h=="number"?t.h:void 0}function W(o){let t=0;for(let n=0;n<o.length;n+=1)for(let r=n+1;r<o.length;r+=1){let c=o[n],a=o[r];if(c===void 0||a===void 0)continue;let s=Math.abs(c-a)%360,m=s>180?360-s:s;m>t&&(t=m)}return t}function we(o){let t=0,n=1/0;for(let r=0;r<o.length;r+=1)for(let c=r+1;c<o.length;c+=1){let a=be(o[r],o[c]);a>t&&(t=a),a<n&&(n=a)}return{max:t,min:n===1/0?0:n}}function Ie(o){let t=o.filter(Se);if(t.length<2)return{minBackgroundDeltaE:null,tooSimilar:!1,insufficient:!0};let n=t.map(l=>l.surfaceMode??"light"),r=t.map((l,d)=>j({colorSeeds:l.colorSeeds,surfaceMode:n[d]})),c=we(r.map(l=>l["--background"])),a=W(r.map(l=>J(l["--primary"]))),s=W(r.map(l=>J(l["--accent"]))),h=!(new Set(n).size===1)||c.max>=ye||a>=q||s>=q;return{minBackgroundDeltaE:c.min,tooSimilar:!h,insufficient:!1}}export{Ie as measureColorwayDistinctness};
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* 供 `apps/agent` 与子站服务共用;子站的错误码 / 降级语义保留在原文件的包装层。
|
|
18
18
|
*/
|
|
19
19
|
import { type PaletteInputs } from "./site-design-notes.js";
|
|
20
|
+
import type { WeightStyleId } from "./type-weight.js";
|
|
20
21
|
export declare const GLOBAL_DESIGN_TOKENS_START = "/* <cms-builder:global-design-tokens> */";
|
|
21
22
|
export declare const GLOBAL_DESIGN_TOKENS_END = "/* </cms-builder:global-design-tokens> */";
|
|
22
23
|
export type DesignTokenBlockErrorCode = "DESIGN_TOKEN_BLOCK_MISSING" | "DESIGN_TOKEN_UNKNOWN" | "DESIGN_TOKEN_UNSAFE_VALUE";
|
|
@@ -115,5 +116,13 @@ export interface GlobalsDesignValues {
|
|
|
115
116
|
/** Whether the design notes carried a parsable palette-inputs block at all. */
|
|
116
117
|
paletteInputsPresent: boolean;
|
|
117
118
|
notesLines: string[] | null;
|
|
119
|
+
/**
|
|
120
|
+
* The weight style tier recorded in the design notes' `type-inputs` line —
|
|
121
|
+
* ONLY when the token block also has `--site-weight-display` (the site
|
|
122
|
+
* actually has weight tokens to apply the tier to). `null` when either is
|
|
123
|
+
* missing; never reverse-derived from the token values themselves (方案
|
|
124
|
+
* 「对齐决定」#2).
|
|
125
|
+
*/
|
|
126
|
+
weightStyle: WeightStyleId | null;
|
|
118
127
|
}
|
|
119
128
|
export declare function readGlobalsDesignValues(css: string): GlobalsDesignValues | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{converter as
|
|
2
|
-
`).map(
|
|
1
|
+
import{converter as R,formatHex as G,parse as B,wcagContrast as ue}from"culori";var de=R("oklch");var t={paper:"oklch(0.92 0.008 250)",cream:"oklch(0.90 0.035 85)",sand:"oklch(0.75 0.05 78)",stone:"oklch(0.60 0.02 75)",ash:"oklch(0.60 0.012 250)",slate:"oklch(0.45 0.025 250)",charcoal:"oklch(0.30 0.015 255)",ink:"oklch(0.25 0.04 260)",sky:"oklch(0.72 0.12 230)",blue:"oklch(0.58 0.17 250)","medical blue":"oklch(0.58 0.12 235)",indigo:"oklch(0.50 0.18 280)",navy:"oklch(0.40 0.10 258)",ocean:"oklch(0.55 0.13 220)","slate blue":"oklch(0.46 0.06 245)",teal:"oklch(0.60 0.12 195)","soft aqua":"oklch(0.78 0.07 190)",mint:"oklch(0.78 0.10 165)",sage:"oklch(0.65 0.05 145)",green:"oklch(0.58 0.15 145)","clinical green":"oklch(0.62 0.12 155)",emerald:"oklch(0.60 0.16 155)",forest:"oklch(0.45 0.10 145)",olive:"oklch(0.58 0.08 115)",lime:"oklch(0.72 0.17 130)",yellow:"oklch(0.82 0.15 100)",gold:"oklch(0.72 0.14 85)",amber:"oklch(0.70 0.16 70)",orange:"oklch(0.66 0.18 55)",coral:"oklch(0.68 0.16 32)",terracotta:"oklch(0.55 0.12 42)",rust:"oklch(0.50 0.13 38)",brown:"oklch(0.45 0.07 55)",rose:"oklch(0.65 0.16 18)",red:"oklch(0.58 0.20 25)",crimson:"oklch(0.52 0.20 22)",wine:"oklch(0.42 0.13 18)",pink:"oklch(0.72 0.14 0)",magenta:"oklch(0.60 0.22 345)",lavender:"oklch(0.72 0.08 295)",violet:"oklch(0.58 0.19 295)",purple:"oklch(0.52 0.19 305)",plum:"oklch(0.45 0.13 325)",electric:"oklch(0.62 0.23 285)","clean white":"oklch(0.97 0.01 245)","cool gray":"oklch(0.62 0.02 245)",zinc:"oklch(0.60 0.012 250)",gray:"oklch(0.60 0.012 250)",grey:"oklch(0.60 0.012 250)",neutral:"oklch(0.60 0.005 250)",gunmetal:"oklch(0.30 0.015 255)"},$={\u84DD:t.blue,\u84DD\u8272:t.blue,\u5929\u84DD:t.sky,\u5929\u84DD\u8272:t.sky,\u6D45\u84DD:t.sky,\u6E56\u84DD:t.ocean,\u6D77\u84DD:t.ocean,\u6DF1\u84DD:t.navy,\u85CF\u84DD:t.navy,\u85CF\u9752:t.navy,\u6D77\u519B\u84DD:t.navy,\u6DF1\u6D77\u519B\u84DD:t.navy,\u5348\u591C\u84DD:t.navy,\u975B\u84DD:t.indigo,\u975B\u9752:t.indigo,\u94A2\u84DD:t["slate blue"],\u9752:t.teal,\u9752\u8272:t.teal,\u84DD\u7EFF:t.teal,\u7EFF:t.green,\u7EFF\u8272:t.green,\u6D45\u7EFF:t.mint,\u8584\u8377\u7EFF:t.mint,\u8349\u7EFF:t.lime,\u6A44\u6984\u7EFF:t.olive,\u58A8\u7EFF:t.forest,\u6DF1\u7EFF:t.forest,\u68EE\u6797\u7EFF:t.forest,\u7FE0\u7EFF:t.emerald,\u7956\u6BCD\u7EFF:t.emerald,\u9EC4:t.yellow,\u9EC4\u8272:t.yellow,\u91D1:t.gold,\u91D1\u8272:t.gold,\u91D1\u9EC4:t.gold,\u7425\u73C0:t.amber,\u7425\u73C0\u8272:t.amber,\u6A59:t.orange,\u6A59\u8272:t.orange,\u6A58\u8272:t.orange,\u6A58\u9EC4:t.orange,\u6D3B\u529B\u6A59:t.orange,\u6696\u6A59:t.orange,\u73CA\u745A:t.coral,\u73CA\u745A\u6A59:t.coral,\u9676\u571F:t.terracotta,\u8D64\u9676:t.terracotta,\u9508\u7EA2:t.rust,\u68D5:t.brown,\u68D5\u8272:t.brown,\u8910\u8272:t.brown,\u5496\u5561\u8272:t.brown,\u7EA2:t.red,\u7EA2\u8272:t.red,\u6731\u7EA2:t.red,\u7EEF\u7EA2:t.crimson,\u6DF1\u7EA2:t.crimson,\u9152\u7EA2:t.wine,\u73AB\u7470:t.rose,\u73AB\u7EA2:t.rose,\u7C89:t.pink,\u7C89\u8272:t.pink,\u7C89\u7EA2:t.pink,\u6D0B\u7EA2:t.magenta,\u54C1\u7EA2:t.magenta,\u7D2B:t.purple,\u7D2B\u8272:t.purple,\u6DE1\u7D2B:t.lavender,\u85B0\u8863\u8349:t.lavender,\u7D2B\u7F57\u5170:t.violet,\u6885\u7EA2:t.plum,\u7070:t.gray,\u7070\u8272:t.gray,\u6D45\u7070:t.gray,\u6DE1\u7070:t.gray,\u51B7\u7070:t["cool gray"],\u51B7\u7070\u767D:t["cool gray"],\u6696\u7070:t.stone,\u6DF1\u7070:t.slate,\u77F3\u58A8\u7070:t.slate,\u77F3\u677F\u7070:t.slate,\u70AD\u7070:t.charcoal,\u70AD\u9ED1:t.charcoal,\u58A8:t.ink,\u58A8\u8272:t.ink,\u9ED1:t.ink,\u9ED1\u8272:t.ink,\u767D:t["clean white"],\u767D\u8272:t["clean white"],\u7C73\u767D:t.cream,\u7C73\u8272:t.cream,\u8C61\u7259\u767D:t.cream,\u5976\u6CB9\u767D:t.cream,\u6C99\u8272:t.sand},he={...t,...$};function I(e){let n=B(e.trim());return n?G(n)??null:null}var g={Inter:{import:"Inter"},"Inter Tight":{import:"Inter_Tight"},"DM Sans":{import:"DM_Sans"},"Source Sans 3":{import:"Source_Sans_3"},"Libre Franklin":{import:"Libre_Franklin"},Montserrat:{import:"Montserrat"},Archivo:{import:"Archivo"},"Space Grotesk":{import:"Space_Grotesk"},Manrope:{import:"Manrope"},"IBM Plex Sans":{import:"IBM_Plex_Sans"},Oswald:{import:"Oswald"},"Roboto Condensed":{import:"Roboto_Condensed"},"Bebas Neue":{import:"Bebas_Neue",weights:["400"]},"Playfair Display":{import:"Playfair_Display"},Lora:{import:"Lora"},Fraunces:{import:"Fraunces"},"Cormorant Garamond":{import:"Cormorant_Garamond"},"JetBrains Mono":{import:"JetBrains_Mono"},"IBM Plex Mono":{import:"IBM_Plex_Mono",weights:["400","500","600","700"]},"Noto Sans SC":{import:"Noto_Sans_SC",download:!1},"Noto Serif SC":{import:"Noto_Serif_SC",download:!1}};var pe=g.Inter;function N(e){return e.trim().replace(/\s+/g,"_").toLowerCase()}var K=(()=>{let e=new Map;for(let[n,o]of Object.entries(g))e.set(N(n),o),e.set(N(o.import),o);return e})();var W=(()=>{let e=new Map;for(let[n,o]of Object.entries(g))e.set(o.import,n);return e})();function _(e){if(typeof e!="string"||e.trim().length===0)return"Inter";let n=K.get(N(e));return n?W.get(n.import)??"Inter":"Inter"}var me=Object.keys(g);var ge=new Set(["Playfair Display","Lora","Fraunces","Cormorant Garamond","Noto Serif SC"].map(e=>e.toLowerCase())),ke=new Set(["JetBrains Mono","IBM Plex Mono"].map(e=>e.toLowerCase()));import{z as k}from"zod";import{z as U}from"zod";var Y=["light","standard","bold"],O=U.enum(Y);var H={light:{display:300,heading:400,title:400,ui:400,button:400,body:400,strong:600},standard:{display:600,heading:500,title:500,ui:400,button:500,body:400,strong:600},bold:{display:700,heading:700,title:700,ui:400,button:600,body:400,strong:700}},be=Object.keys(H.standard).map(e=>`--site-weight-${e}`);function h(e,n){let o=[];for(let a=e;a<=n;a+=100)o.push(a);return o}var Ie={"Source Sans 3":h(200,900),"Space Grotesk":h(300,700),Manrope:h(200,800),"IBM Plex Sans":h(100,700),Oswald:h(200,700),"Bebas Neue":[400],"Playfair Display":h(400,900),Lora:h(400,700),"Cormorant Garamond":h(300,700),"JetBrains Mono":h(100,800),"IBM Plex Mono":[400,500,600,700],"DM Sans":h(100,1e3)};function T(e){return e.trim().replace(/\s+/g,"_").toLowerCase()}var Ne=new Set(Object.entries(g).flatMap(([e,n])=>[T(e),T(n.import)]));var M="/* <cms-builder:site-design-notes>",E="</cms-builder:site-design-notes> */",x="palette-inputs: ",A="type-inputs: ",m=k.string().min(1).max(40),V=k.object({primarySource:k.enum(["user","derived"]),neutral:m.optional(),foreground:m.optional(),supporting:k.array(m).max(4).optional(),imagePalette:k.object({background:m.optional(),foreground:m.optional(),card:m.optional(),muted:m.optional(),border:m.optional()}).optional()}),j=k.object({weightStyle:O});function z(e){let n=e.indexOf(M),o=e.indexOf(E,n+1);return n===-1||o===-1?null:{start:n,end:o+E.length}}function J(e){try{let n=JSON.parse(e),o=V.safeParse(n);return o.success?o.data:null}catch{return null}}function X(e){try{let n=JSON.parse(e),o=j.safeParse(n);return o.success?o.data:void 0}catch{return}}function L(e){let n=z(e);if(!n)return null;let o=e.slice(n.start+M.length,n.end-E.length),a=[],r=null,i;for(let c of o.split(`
|
|
2
|
+
`).map(l=>l.trim()).filter(Boolean))c.startsWith(x)?r=J(c.slice(x.length)):c.startsWith(A)?i=X(c.slice(A.length)):a.push(c);return{lines:a,paletteInputs:r,...i?{typeInputs:i}:{}}}var S="/* <cms-builder:global-design-tokens> */",y="/* </cms-builder:global-design-tokens> */",d=class extends Error{constructor(n,o){super(`${n}: ${o}`),this.code=n,this.name="DesignTokenBlockError"}};function Z(e){let n=[],o=0;for(;o<e.length;){let a=e.indexOf(S,o),r=e.indexOf(y,o);if(a<0){if(r>=0)throw new d("DESIGN_TOKEN_BLOCK_MISSING","a closing global-design-tokens marker appears without a matching opening marker.");break}if(r<0||r<a)throw new d("DESIGN_TOKEN_BLOCK_MISSING","a global-design-tokens region is opened but never closed.");let i=a+S.length,c=e.indexOf(S,i);if(c>=0&&c<r)throw new d("DESIGN_TOKEN_BLOCK_MISSING","global-design-tokens regions are nested; refusing to guess the intended boundaries.");n.push({bodyStart:i,bodyEnd:r}),o=r+y.length}if(n.length===0)throw new d("DESIGN_TOKEN_BLOCK_MISSING","app/globals.css does not contain a cms-builder:global-design-tokens region.");return n}var q=/^--[A-Za-z0-9_-]+/;function Q(e){return e===void 0||e==="{"||e==="}"||e===";"||/\s/.test(e)}function F(e,n,o){let a=[],r=n,i=0;for(;r<o;){let c=e[r];if(c==="/"&&e[r+1]==="*"){let l=e.indexOf("*/",r+2);r=l<0||l>=o?o:l+2;continue}if(c==='"'||c==="'"){r=D(e,r,o);continue}if(c==="("){i+=1,r+=1;continue}if(c===")"){i=Math.max(0,i-1),r+=1;continue}if(c==="-"&&i===0&&e[r+1]==="-"&&Q(r===0?void 0:e[r-1])){let l=q.exec(e.slice(r,o));if(l){let f=l[0],u=r+f.length;for(;u<o&&(e[u]===" "||e[u]===" ");)u+=1;if(e[u]===":"){for(u+=1;u<o&&(e[u]===" "||e[u]===" ");)u+=1;let s=u,p=ee(e,s,o),w=e.slice(s,p).trimEnd();a.push({name:f,value:w.trim(),valueStart:s,valueEnd:s+w.length}),r=p;continue}}}r+=1}return a}function D(e,n,o){let a=e[n],r=n+1;for(;r<o;){let i=e[r];if(i==="\\"){r+=2;continue}if(i===a)return r+1;r+=1}return o}function ee(e,n,o){let a=n,r=0;for(;a<o;){let i=e[a];if(i==="\\"){a+=2;continue}if(i==='"'||i==="'"){a=D(e,a,o);continue}if(i==="/"&&e[a+1]==="*"){let c=e.indexOf("*/",a+2);a=c<0||c>=o?o:c+2;continue}if(i==="(")r+=1;else if(i===")")r=Math.max(0,r-1);else if(r===0&&(i===";"||i==="}"))return a;a+=1}return o}function C(e){return Z(e).flatMap(n=>F(e,n.bodyStart,n.bodyEnd))}function te(e){return new Set(F(e,0,e.length).map(n=>n.name))}var ne=/[;{}]|\/\*|\*\/|[\r\n]/;function oe(e,n){if(n.trim().length===0)throw new d("DESIGN_TOKEN_UNSAFE_VALUE",`refusing to write an empty declaration value for ${e}.`);if(ne.test(n))throw new d("DESIGN_TOKEN_UNSAFE_VALUE",`refusing to write a declaration value for ${e} that contains a declaration or block terminator, a comment marker, or a newline.`)}function re(e){let n=new Map;for(let o of C(e))n.set(o.name,o.value);return n}function Le(e,n,o={}){let a=C(e),r=new Set(a.map(s=>s.name)),i=new Set,c=new Set,l=[],f=null;for(let s of n.keys())if(!r.has(s)){if(o.derivedKeys?.has(s)!==!0){l.push(s);continue}f??=te(e),f.has(s)?c.add(s):i.add(s)}if(l.length>0)throw new d("DESIGN_TOKEN_UNKNOWN",`refusing to add token names that the shared derivation never produces: ${l.join(", ")}`);for(let[s,p]of n)r.has(s)&&oe(s,p);for(let s of i)o.onOutOfScopeToken?.(s);for(let s of c)o.onUnwritableToken?.(s);let u=e;for(let s=a.length-1;s>=0;s-=1){let p=a[s],b=n.get(p.name);b!==void 0&&(u=u.slice(0,p.valueStart)+b+u.slice(p.valueEnd))}return u}function ae(e){let n=e.indexOf(S),o=e.indexOf(y);return n!==-1&&o!==-1&&o>n}var P=/(color-scheme:\s*)(light|dark)(\s*;)/;function ie(e){let n=e.indexOf(S),o=e.indexOf(y);return n!==-1&&o>n?e.slice(n,o):null}function ce(e){let o=ie(e)?.match(P);return o?o[2]:null}function ve(e,n){let o=e.indexOf(S),a=e.indexOf(y);if(o===-1||a===-1||a<o)throw new d("DESIGN_TOKEN_BLOCK_MISSING","globals.css has no design token block");let r=e.slice(o,a);return e.slice(0,o)+r.replace(P,`$1${n}$3`)+e.slice(a)}var se=/["']([^"']+)["']/;function v(e){return e?.match(se)?.[1]??null}function Fe(e){if(!ae(e))return null;let n;try{n=re(e)}catch(f){if(f instanceof d)return null;throw f}let o=I(n.get("--primary")??"")?.toLowerCase()??null,a=I(n.get("--accent")??"")?.toLowerCase()??null,r=v(n.get("--site-font-heading")),i=v(n.get("--site-font-sans")),c=L(e),l=c?.paletteInputs??null;return{primary:o,accent:a,...l?.foreground!==void 0?{foreground:l.foreground}:{},...l?.neutral!==void 0?{neutral:l.neutral}:{},...l?.supporting!==void 0?{supporting:l.supporting}:{},...l?.imagePalette!==void 0?{imagePalette:l.imagePalette}:{},surfaceMode:ce(e),fonts:r&&i?{heading:_(r),body:_(i)}:null,paletteInputs:l,paletteInputsPresent:l!=null,notesLines:c?.lines??null,weightStyle:n.has("--site-weight-display")&&c?.typeInputs?c.typeInputs.weightStyle:null}}export{d as DesignTokenBlockError,y as GLOBAL_DESIGN_TOKENS_END,S as GLOBAL_DESIGN_TOKENS_START,ae as hasDesignTokenBlock,ce as readColorScheme,re as readDesignTokens,Fe as readGlobalsDesignValues,ve as writeColorScheme,Le as writeDesignTokens};
|
package/dist/design-tokens.d.ts
CHANGED
|
@@ -81,3 +81,11 @@ export declare function channel(value: number | undefined): number;
|
|
|
81
81
|
export declare function oklchString(color: Oklch): string;
|
|
82
82
|
/** 令牌值(如 `oklch(0.38 0.14 265.87)`)转十六进制;解析不了返回 null。 */
|
|
83
83
|
export declare function oklchCssToHex(value: string): string | null;
|
|
84
|
+
/**
|
|
85
|
+
* 种子色写进令牌区再读回的十六进制(小写):`--primary`/`--accent` 就是
|
|
86
|
+
* `oklchString(种子)`(两位小数),`readGlobalsDesignValues` 再用
|
|
87
|
+
* {@link oklchCssToHex} 转回,会有舍入误差(如 `#B8A6FF` → `#b7a4ff`)。
|
|
88
|
+
* 判断「文件里读回的锚点色是不是某个种子」时,用它把种子换算到同一口径。
|
|
89
|
+
* 解析不了的种子返回 null。
|
|
90
|
+
*/
|
|
91
|
+
export declare function tokenRoundTripSeedHex(seed: string): string | null;
|
package/dist/design-tokens.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{converter as oe,formatHex as
|
|
1
|
+
import{converter as oe,formatHex as te,parse as g,wcagContrast as w}from"culori";var y=oe("oklch"),T=4.5,$=7,e={paper:"oklch(0.92 0.008 250)",cream:"oklch(0.90 0.035 85)",sand:"oklch(0.75 0.05 78)",stone:"oklch(0.60 0.02 75)",ash:"oklch(0.60 0.012 250)",slate:"oklch(0.45 0.025 250)",charcoal:"oklch(0.30 0.015 255)",ink:"oklch(0.25 0.04 260)",sky:"oklch(0.72 0.12 230)",blue:"oklch(0.58 0.17 250)","medical blue":"oklch(0.58 0.12 235)",indigo:"oklch(0.50 0.18 280)",navy:"oklch(0.40 0.10 258)",ocean:"oklch(0.55 0.13 220)","slate blue":"oklch(0.46 0.06 245)",teal:"oklch(0.60 0.12 195)","soft aqua":"oklch(0.78 0.07 190)",mint:"oklch(0.78 0.10 165)",sage:"oklch(0.65 0.05 145)",green:"oklch(0.58 0.15 145)","clinical green":"oklch(0.62 0.12 155)",emerald:"oklch(0.60 0.16 155)",forest:"oklch(0.45 0.10 145)",olive:"oklch(0.58 0.08 115)",lime:"oklch(0.72 0.17 130)",yellow:"oklch(0.82 0.15 100)",gold:"oklch(0.72 0.14 85)",amber:"oklch(0.70 0.16 70)",orange:"oklch(0.66 0.18 55)",coral:"oklch(0.68 0.16 32)",terracotta:"oklch(0.55 0.12 42)",rust:"oklch(0.50 0.13 38)",brown:"oklch(0.45 0.07 55)",rose:"oklch(0.65 0.16 18)",red:"oklch(0.58 0.20 25)",crimson:"oklch(0.52 0.20 22)",wine:"oklch(0.42 0.13 18)",pink:"oklch(0.72 0.14 0)",magenta:"oklch(0.60 0.22 345)",lavender:"oklch(0.72 0.08 295)",violet:"oklch(0.58 0.19 295)",purple:"oklch(0.52 0.19 305)",plum:"oklch(0.45 0.13 325)",electric:"oklch(0.62 0.23 285)","clean white":"oklch(0.97 0.01 245)","cool gray":"oklch(0.62 0.02 245)",zinc:"oklch(0.60 0.012 250)",gray:"oklch(0.60 0.012 250)",grey:"oklch(0.60 0.012 250)",neutral:"oklch(0.60 0.005 250)",gunmetal:"oklch(0.30 0.015 255)"},ce={\u84DD:e.blue,\u84DD\u8272:e.blue,\u5929\u84DD:e.sky,\u5929\u84DD\u8272:e.sky,\u6D45\u84DD:e.sky,\u6E56\u84DD:e.ocean,\u6D77\u84DD:e.ocean,\u6DF1\u84DD:e.navy,\u85CF\u84DD:e.navy,\u85CF\u9752:e.navy,\u6D77\u519B\u84DD:e.navy,\u6DF1\u6D77\u519B\u84DD:e.navy,\u5348\u591C\u84DD:e.navy,\u975B\u84DD:e.indigo,\u975B\u9752:e.indigo,\u94A2\u84DD:e["slate blue"],\u9752:e.teal,\u9752\u8272:e.teal,\u84DD\u7EFF:e.teal,\u7EFF:e.green,\u7EFF\u8272:e.green,\u6D45\u7EFF:e.mint,\u8584\u8377\u7EFF:e.mint,\u8349\u7EFF:e.lime,\u6A44\u6984\u7EFF:e.olive,\u58A8\u7EFF:e.forest,\u6DF1\u7EFF:e.forest,\u68EE\u6797\u7EFF:e.forest,\u7FE0\u7EFF:e.emerald,\u7956\u6BCD\u7EFF:e.emerald,\u9EC4:e.yellow,\u9EC4\u8272:e.yellow,\u91D1:e.gold,\u91D1\u8272:e.gold,\u91D1\u9EC4:e.gold,\u7425\u73C0:e.amber,\u7425\u73C0\u8272:e.amber,\u6A59:e.orange,\u6A59\u8272:e.orange,\u6A58\u8272:e.orange,\u6A58\u9EC4:e.orange,\u6D3B\u529B\u6A59:e.orange,\u6696\u6A59:e.orange,\u73CA\u745A:e.coral,\u73CA\u745A\u6A59:e.coral,\u9676\u571F:e.terracotta,\u8D64\u9676:e.terracotta,\u9508\u7EA2:e.rust,\u68D5:e.brown,\u68D5\u8272:e.brown,\u8910\u8272:e.brown,\u5496\u5561\u8272:e.brown,\u7EA2:e.red,\u7EA2\u8272:e.red,\u6731\u7EA2:e.red,\u7EEF\u7EA2:e.crimson,\u6DF1\u7EA2:e.crimson,\u9152\u7EA2:e.wine,\u73AB\u7470:e.rose,\u73AB\u7EA2:e.rose,\u7C89:e.pink,\u7C89\u8272:e.pink,\u7C89\u7EA2:e.pink,\u6D0B\u7EA2:e.magenta,\u54C1\u7EA2:e.magenta,\u7D2B:e.purple,\u7D2B\u8272:e.purple,\u6DE1\u7D2B:e.lavender,\u85B0\u8863\u8349:e.lavender,\u7D2B\u7F57\u5170:e.violet,\u6885\u7EA2:e.plum,\u7070:e.gray,\u7070\u8272:e.gray,\u6D45\u7070:e.gray,\u6DE1\u7070:e.gray,\u51B7\u7070:e["cool gray"],\u51B7\u7070\u767D:e["cool gray"],\u6696\u7070:e.stone,\u6DF1\u7070:e.slate,\u77F3\u58A8\u7070:e.slate,\u77F3\u677F\u7070:e.slate,\u70AD\u7070:e.charcoal,\u70AD\u9ED1:e.charcoal,\u58A8:e.ink,\u58A8\u8272:e.ink,\u9ED1:e.ink,\u9ED1\u8272:e.ink,\u767D:e["clean white"],\u767D\u8272:e["clean white"],\u7C73\u767D:e.cream,\u7C73\u8272:e.cream,\u8C61\u7259\u767D:e.cream,\u5976\u6CB9\u767D:e.cream,\u6C99\u8272:e.sand},q={...e,...ce};function ge(o){let t=o.colorSeeds??{primary:"slate",accent:"blue",neutral:"zinc"},c=o.surfaceMode,n=v(t.primary||"slate"),r=l(n),h=v(t.accent||"blue"),a=l(h),f=t.neutral?v(t.neutral):se(n),u=i(f.h),s=S(f)?0:1,k,d,p,A,N,I;c==="dark"?(k=l({mode:"oklch",l:.14,c:.03*s,h:u}),d=l({mode:"oklch",l:.95,c:.02*s,h:u}),p=l({mode:"oklch",l:.2,c:.04*s,h:u}),A=l({mode:"oklch",l:.29,c:.05*s,h:u}),N=l({mode:"oklch",l:.78,c:.02*s,h:u}),I=l({mode:"oklch",l:.35,c:.06*s,h:u})):(k=l({mode:"oklch",l:.98,c:.01*s,h:u}),d=l({mode:"oklch",l:.2,c:.02*s,h:u}),p=l({mode:"oklch",l:.96,c:.015*s,h:u}),A=l({mode:"oklch",l:.92,c:.02*s,h:u}),N=l({mode:"oklch",l:.43,c:.02*s,h:u}),I=l({mode:"oklch",l:.84,c:.025*s,h:u}));let D=S(n),J=S(h),x=s===0,C=s===0,m=o.imagePalette;if(m){let M=typeof m.background=="string"&&O(m.background),_=M&&de(m.background,c);if(M&&_){let L=v(m.background);k=l(L),x=S(L)}if(_&&typeof m.card=="string"&&O(m.card)&&(p=l(v(m.card))),_&&typeof m.muted=="string"&&O(m.muted)&&(A=l(v(m.muted))),typeof m.foreground=="string"&&O(m.foreground)){let L=v(m.foreground);d=z(l(L),k,T,x),C=S(L)}else M&&_&&(d=b(k,x),C=x);typeof m.border=="string"&&O(m.border)&&(I=ue(l(v(m.border)),k))}if(typeof t.foreground=="string"&&O(t.foreground)){let M=v(t.foreground);d=z(l(M),k,T,x),C=S(M)}let H=c!=="dark",P=l({mode:"oklch",l:.96,c:.02*s,h:u}),B=l({mode:"oklch",l:.2,c:.02*s,h:u}),W={"--background":k,"--foreground":d,"--card":p,"--card-foreground":d,"--muted":A,"--muted-foreground":N,"--border":I,"--input":I,"--ring":a,"--primary":r,"--primary-foreground":b(r,D),"--primary-hover":U(r,H),"--accent":a,"--accent-foreground":b(a,J),"--accent-ink":E(a,k,x),"--accent-subtle":ie(a,H),"--accent-hover":U(a,H),"--overlay-on-dark":P,"--overlay-on-light":B,"--overlay-on-dark-accent-ink":E(a,B),"--overlay-on-light-accent-ink":E(a,P),"--overlay-on-dark-muted":R(B,u,$,F*s),"--overlay-on-light-muted":R(P,u,$,F*s)},X=d,Y=b(d,C),j=R(d,u,T,F*s,C),G=E(a,d,C),V=y(g(r)??r),Q=i(V?.h),Z=R(r,Q,T,V&&S(V)?0:F,D),ee=E(a,r,D);return re({...W,...{"--surface-inverse":X,"--surface-inverse-foreground":Y,"--surface-inverse-muted":j,"--surface-inverse-accent-ink":G,"--surface-primary-muted":Z,"--surface-primary-accent-ink":ee}},t)}function re(o,t){let c=l({mode:"oklch",l:.58,c:.22,h:28}),n=l({mode:"oklch",l:.6,c:.14,h:150}),r=l({mode:"oklch",l:.75,c:.15,h:75}),h={...o,"--popover":"var(--card)","--popover-foreground":"var(--card-foreground)","--secondary":"var(--muted)","--secondary-foreground":"var(--foreground)","--destructive":c,"--destructive-foreground":b(c),"--success":n,"--success-foreground":b(n),"--warning":r,"--warning-foreground":b(r)},[a,f]=ne(t,h);return h["--supporting-0"]=a,h["--supporting-1"]=f,he(h["--accent"]).forEach((s,k)=>{h[`--chart-${k+1}`]=s}),h}function ne(o,t){let r=(o.supporting??[]).filter(a=>!!(a&&a.trim())).slice(0,2).map(a=>l(v(a))),h=[t["--primary"],t["--accent"]];for(;r.length<2;)r.push(h[r.length]);return[r[0],r[1]]}function O(o){let t=(o??"").trim();if(!t||t.startsWith("#")&&!/^#[0-9A-Fa-f]{3,8}$/.test(t))return!1;let c=q[t.toLowerCase()]??t;return!!g(c)}function v(o,t="paper"){let c=(o??"").trim();if(!c)return v(t);let n=q[c.toLowerCase()]??c,r=g(n);if(r){let h=y(r);if(h)return h}return le(c)}function le(o){let t=2166136261,c=o.toLowerCase();for(let a=0;a<c.length;a++)t^=c.charCodeAt(a),t=Math.imul(t,16777619)>>>0;let n=t%360,r=.08+(t>>>9)%9/100;return{mode:"oklch",l:.52+(t>>>18)%16/100,c:r,h:n}}function se(o){return S(o)?{mode:"oklch",l:.6,c:0}:{mode:"oklch",l:.6,c:.02,h:i(o.h)}}var F=.02,ae=.002;function S(o){return typeof o.h!="number"||!Number.isFinite(o.h)||i(o.c)<ae}function U(o,t){let c=y(g(o)??o);if(!c)return o;let n=t?-.06:.06,r=Math.max(.06,Math.min(.97,i(c.l)+n));return l({mode:"oklch",l:r,c:i(c.c),h:i(c.h)})}function ie(o,t){let c=y(g(o)??o),n=i(c?.h),r=Math.min(i(c?.c),t?.05:.06);return l({mode:"oklch",l:t?.95:.24,c:r,h:n})}function he(o){let t=y(g(o)??o),c=i(t?.h),n=Math.max(.12,Math.min(i(t?.c),.16));return[0,72,144,216,288].map(r=>l({mode:"oklch",l:.62,c:n,h:(c+r)%360}))}function b(o,t){let c=g(o),n=c?y(c):void 0,r=i(n?.h),h=t??(!n||S(n))?0:1,a={mode:"oklch",l:.99,c:.01*h,h:r},f={mode:"oklch",l:.18,c:.02*h,h:r},u=w(c??o,a),s=w(c??o,f);return l(u>=s?a:f)}function z(o,t,c,n){let r=y(g(o)??o);if(!r)return b(t,n);if(w(o,t)>=c)return l(r);let h=y(g(t)??t),f=(h?i(h.l)>=.5:!0)?-.02:.02,u=i(r.l),s=i(r.c),k=i(r.h);for(let d=1;d<=50;d++){let p=u+f*d;if(p<=0||p>=1)break;let A={mode:"oklch",l:p,c:s,h:k};if(w(A,t)>=c)return l(A)}return b(t,n)}var K=1.3;function ue(o,t){let c=y(g(o)??o);if(!c)return o;if(w(o,t)>=K)return l(c);let n=y(g(t)??t),h=(n?i(n.l)>=.5:!0)?-.03:.03,a=i(c.l),f=i(c.c),u=i(c.h);for(let s=1;s<=40;s++){let k=a+h*s;if(k<=0||k>=1)break;let d={mode:"oklch",l:k,c:f,h:u};if(w(d,t)>=K)return l(d)}return o}function de(o,t){let c=y(g(o)??o);if(!c)return!1;let n=i(c.l)>=.5;return t==="dark"?!n:n}function E(o,t,c){let n=y(g(o)??o);if(!n)return o;let r=i(n.h),h=i(n.c),a=i(n.l),f=y(g(t)??t),s=(f?i(f.l)>=.5:!0)?-.02:.02;for(let k=0;k<=50;k++){let d=a+s*k;if(d<=0||d>=1)break;let p={mode:"oklch",l:d,c:h,h:r};if(w(p,t)>=T)return l(p)}return b(t,c)}function R(o,t,c=T,n=F,r){let h=y(g(o)??o),f=(h?i(h.l):.5)>=.5,u=f?.75:.35,s=f?-.02:.02;for(let k=0;k<=50;k++){let d=u+s*k;if(d<=0||d>=1)break;let p={mode:"oklch",l:d,c:n,h:t};if(w(p,o)>=c)return l(p)}return b(o,r)}function i(o){return typeof o=="number"&&Number.isFinite(o)?o:0}function l(o){let t=i(o.l),c=i(o.c),n=i(o.h);return`oklch(${t.toFixed(2)} ${c.toFixed(2)} ${n.toFixed(2)})`}function ke(o){let t=g(o.trim());return t?te(t)??null:null}function pe(o){return O(o)?ke(l(v(o)))?.toLowerCase()??null:null}export{q as SEMANTIC_SEED_ALIASES,E as accentInkFor,b as bestForegroundFor,i as channel,ge as deriveDesignColors,z as ensureReadableInk,O as isResolvableDesignColorSeed,ke as oklchCssToHex,l as oklchString,pe as tokenRoundTripSeedHex};
|