@gospore/theme 1.0.141 → 1.0.143
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/theme.cjs.js +2 -2
- package/dist/theme.cjs.js.map +1 -1
- package/dist/theme.css +2 -1
- package/dist/theme.es.js +493 -557
- package/dist/theme.es.js.map +1 -1
- package/dist/theme.umd.js +2 -2
- package/dist/theme.umd.js.map +1 -1
- package/package.json +5 -5
package/dist/theme.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue");require("what-input");const F=require("@gospore/dropdown-menu"),K=["auto","light","dark"],bt="gospore-theme-mode",Dt=3600*24*365,yt="(prefers-color-scheme: dark)";function Z(){if(typeof document>"u")return null;const c=Nt(bt);return c&&K.includes(c)?c:null}function It(c){if(typeof document>"u"||!K.includes(c))return;const i=typeof window<"u"?window.location.hostname:"",b=typeof window<"u"?window.location.protocol:"",f=Ot(i),D=b==="https:",y=["path=/",`max-age=${Dt}`,"SameSite=Lax"];f&&y.push(`domain=${f}`),D&&y.push("Secure"),document.cookie=[`${encodeURIComponent(bt)}=${encodeURIComponent(c)}`,...y].join("; ")}function pt(c){if(typeof document>"u")return;const i=typeof c=="string"&&K.includes(c)?c:Z()??"auto";console.log("Applying theme mode:",i);const b=Lt(i);document.documentElement.setAttribute("dark-mode",b)}function Nt(c){if(typeof document>"u"||!document.cookie)return null;const i=`${encodeURIComponent(c)}=`,b=document.cookie.split("; ");for(const f of b)if(f.startsWith(i))return decodeURIComponent(f.slice(i.length));return null}function Ot(c){if(!c||c==="localhost")return null;if(/^\d+(?:\.\d+){3}$/.test(c))return c;const b=c.split(".");return b.length<=1?null:b.length===2?c:b.slice(-2).join(".")}function Lt(c){if(c==="dark")return!0;if(c==="light"||typeof window>"u")return!1;try{const i=typeof window.matchMedia=="function"?window.matchMedia(yt):null;return i?i.matches:!1}catch{return!1}}const tt=Symbol.for("gospore.theme.portalHost");function xt(){const c=a.inject(tt,null);console.log("Using theme portal host:",c);const i=typeof document<"u"?document.body:"body";return a.computed(()=>c?.value??i)}const Bt="(prefers-color-scheme: dark)",Pt="(prefers-reduced-motion: reduce)",Ut=200,B=3.8,ft=1.8,ht=1.15,gt=1.08,j=2.5,mt=3,W="#ffffff",J="#1f2228",$t=Object.assign({name:"Theme"},{__name:"Theme",props:{mode:{type:String,validator:c=>["auto","light","dark"].includes(c)},accentColor:{type:String,required:!1,default:void 0},exposeGlobalAccent:{type:Boolean,default:!1}},setup(c){const i=c,b=[],f=new Set;function D(){const t=document.documentElement;if(!t)return;f.forEach(o=>{t.style.removeProperty(o)}),f.clear();const e=[...b].reverse().find(o=>o.enabled&&o.vars&&Object.keys(o.vars).length>0);e&&Object.entries(e.vars).forEach(([o,r])=>{t.style.setProperty(o,r),f.add(o)})}const y=window.matchMedia(Bt),q=window.matchMedia(Pt),L=nt();pt(L);const H=a.ref(L),k=a.ref({darkMode:I(L)}),C=a.ref(null);y.addEventListener("change",et),a.watch(()=>i.mode,()=>{v()},{immediate:!0}),a.watch(()=>k.value.darkMode,(t,e)=>{if(e===void 0){ot(t);return}St(()=>{ot(t)})},{immediate:!0}),a.onBeforeUnmount(()=>{y.removeEventListener("change",et);const t=b.indexOf(V);t!==-1&&b.splice(t,1),D()});function v(){const t=nt();H.value=t,k.value.darkMode=I(t)}function I(t){return t==="dark"?!0:t==="light"?!1:y.matches}function et(t){!t||H.value!=="auto"||(k.value.darkMode=t.matches)}function ot(t){document.documentElement.setAttribute("dark-mode",t)}function St(t){if(q.matches){t();return}const e=document.startViewTransition?.bind(document);if(e){e(()=>{t()});return}t();const o=document.documentElement;typeof o.animate=="function"&&window.requestAnimationFrame(()=>{o.animate([{opacity:.85},{opacity:1}],{duration:Ut,easing:"ease-in-out"})})}function nt(){return i.mode??Z()??"auto"}a.provide("theme",k),a.provide(tt,C);function rt(t){if(!t)return null;const e=t.trim().toLowerCase();if(!/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e))return null;if(e.length===4){const r=e[1],n=e[2],s=e[3];return`#${r}${r}${n}${n}${s}${s}`}return e}function at(t){const e=rt(t);if(!e)return null;const o=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),n=parseInt(e.slice(5,7),16);return{r:o,g:r,b:n}}function Y({r:t,g:e,b:o}){const r=n=>n.toString(16).padStart(2,"0");return`#${r(t)}${r(e)}${r(o)}`}function _(t){return Math.max(0,Math.min(1,t))}function P(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Q(t){const e=_(t);return e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055}function kt({r:t,g:e,b:o}){const r=t/255,n=e/255,s=o/255,d=P(r),h=P(n),R=P(s),u=.4122214708*d+.5363325363*h+.0514459929*R,g=.2119034982*d+.6806995451*h+.1073969566*R,p=.0883024619*d+.2817188376*h+.6299787005*R,S=Math.cbrt(u),T=Math.cbrt(g),E=Math.cbrt(p),A=.2104542553*S+.793617785*T-.0040720468*E,m=1.9779984951*S-2.428592205*T+.4505937099*E,M=.0259040371*S+.7827717662*T-.808675766*E,w=Math.sqrt(m*m+M*M);let x=Math.atan2(M,m)*(180/Math.PI);return x<0&&(x+=360),{l:A,c:w,h:x}}function ct(t,e,o,r=!1){const n=o*Math.PI/180,s=e*Math.cos(n),d=e*Math.sin(n),h=t+.3963377774*s+.2158037573*d,R=t-.1055613458*s-.0638541728*d,u=t-.0894841775*s-1.291485548*d,g=r?_(h):h,p=r?_(R):R,S=r?_(u):u;if(!r&&(g<-1e-4||g>1.0001||p<-1e-4||p>1.0001||S<-1e-4||S>1.0001))return null;const T=g*g*g,E=p*p*p,A=S*S*S;let m=4.0767416621*T-3.3077115913*E+.2309699292*A,M=-1.2684380046*T+2.6097574011*E-.3413193965*A,w=-.0041960863*T-.7034186147*E+1.707614701*A;if(r)m=_(m),M=_(M),w=_(w);else if(m<-1e-4||m>1.0001||M<-1e-4||M>1.0001||w<-1e-4||w>1.0001)return null;const x=_(Q(m)),z=_(Q(M)),O=_(Q(w));return{r:Math.round(x*255),g:Math.round(z*255),b:Math.round(O*255)}}function X(t,e,o){let r=e;for(let n=0;n<8;n+=1){const s=ct(t,r,o);if(s)return s;r*=.9}return ct(t,_(r),o,!0)||{r:0,g:0,b:0}}function st(t){const e=at(t);if(!e)return 0;const o=P(e.r/255),r=P(e.g/255),n=P(e.b/255);return .2126*o+.7152*r+.0722*n}function N(t,e){const o=st(t),r=st(e),n=Math.max(o,r),s=Math.min(o,r);return(n+.05)/(s+.05)}function Mt(t,e,o={}){const r=o.minContrast??B,n=o.preferDark!==!1,s=Math.max(.01,Math.min(.06,(t.c||.12)*(o.chromaScale??.25))),d=o.initialLightness??(n?.24:.94),h=n?-1:1,R=o.step??.03;let u=_(d),g=Y(X(u,s,t.h)),p=N(e,g);for(let m=0;m<48;m+=1){const M=Y(X(u,s,t.h)),w=N(e,M);if(w>p&&(p=w,g=M),w>=r)return M;if(u=_(u+h*R),u===0||u===1)break}const S="#101214",T="#ffffff",E=N(e,S),A=N(e,T);return E>=r||A>=r?E>=A?S:T:g}function U(t,e,o={}){const r=o.minContrast??B,n=o.darkCandidate??"#101214",s=o.lightCandidate??"#ffffff",d=o.preferredCandidate,h=o.preferredMinContrast??r,R=o.preferredSwitchDelta??0,u=N(e,n),g=N(e,s),p=u>=r,S=g>=r,T=g>=h,E=u>=h;if(p||S)return d==="light"&&T?s:d==="dark"&&E?n:d==="light"&&S?!p||u-g<=R?s:n:d==="dark"&&p?!S||g-u<=R?n:s:p&&S?u>=g?n:s:p?n:s;const A=u>=g;return Mt(t,e,{minContrast:r,preferDark:A,initialLightness:A?.2:.96,chromaScale:.1})}const vt=[100,200,300,400,500,600,700,800,900,1e3],lt=[.9,.84,.78,.72,.67,.62,.56,.5,.44,.38],Ct=[.28,.4,.54,.7,.86,1,1.08,1.14,1.2,1.24];function $(t,e,o,r){const n=e[e.length-1];for(const s of e){const d=t[s];if(d&&N(d,o)>=r)return s}return n}function _t(t){const e=t.l-lt[5],o=t.c>.02?.02:0;return vt.reduce((r,n,s)=>{const d=_(lt[s]+e),h=Math.min(.4,Math.max(o,t.c*Ct[s]));return r[n]=Y(X(d,h,t.h)),r},{})}function Rt(t,e){const o=[100,200,300,400,500,600,700],r=$(e,o,W,gt),n=o.indexOf(r),s=o[Math.min(n+1,o.length-1)],d=o[Math.min(n+2,o.length-1)],h=[1e3,900,800,700,600,500],R=$(e,h,J,gt),u=h.indexOf(R),g=h[Math.min(u+1,h.length-1)],p=h[Math.min(u+2,h.length-1)],T=$(e,[200,300,400,500,600,700,800],W,ht),A=$(e,[900,800,700,600,500,400],J,ht),m=[600,700,800,900,1e3],M=$(e,m,W,ft),w=m.indexOf(M),x=m[Math.min(w+1,m.length-1)],z=m[Math.min(w+2,m.length-1)],O=[400,300,200,100],G=$(e,O,J,ft),dt=O.indexOf(G),wt=O[Math.min(dt+1,O.length-1)],Et=O[Math.min(dt+2,O.length-1)],l={"--color-brand-surface-soft-light":e[r],"--color-brand-surface-soft-hovered-light":e[s],"--color-brand-surface-soft-pressed-light":e[d],"--color-brand-surface-soft-dark":e[R],"--color-brand-surface-soft-hovered-dark":e[g],"--color-brand-surface-soft-pressed-dark":e[p],"--color-brand-surface-subtle-light":e[T],"--color-brand-surface-subtle-dark":e[A],"--color-brand-surface-strong-light":e[M],"--color-brand-surface-strong-hovered-light":e[x],"--color-brand-surface-strong-pressed-light":e[z],"--color-brand-surface-strong-dark":e[G],"--color-brand-surface-strong-hovered-dark":e[wt],"--color-brand-surface-strong-pressed-dark":e[Et]},ut=e[600],At=N(l["--color-brand-surface-soft-light"],ut);return l["--color-brand-on-soft-light"]=At>=B?ut:U(t,l["--color-brand-surface-soft-light"],{minContrast:B}),l["--color-brand-on-soft-dark"]=U(t,l["--color-brand-surface-soft-dark"],{minContrast:B}),l["--color-brand-on-subtle-light"]=U(t,l["--color-brand-surface-subtle-light"],{minContrast:j,preferredCandidate:"light",preferredMinContrast:j,preferredSwitchDelta:mt}),l["--color-brand-on-subtle-dark"]=U(t,l["--color-brand-surface-subtle-dark"],{minContrast:B}),l["--color-brand-on-strong-light"]=U(t,l["--color-brand-surface-strong-light"],{minContrast:j,preferredCandidate:"light",preferredMinContrast:j,preferredSwitchDelta:mt}),l["--color-brand-on-strong-dark"]=U(t,l["--color-brand-surface-strong-dark"],{minContrast:B}),l["--color-brand-text-light"]=l["--color-brand-surface-strong-light"],l["--color-brand-text-dark"]=l["--color-brand-surface-strong-dark"],l["--color-brand-icon-light"]=l["--color-brand-surface-strong-light"],l["--color-brand-icon-dark"]=l["--color-brand-surface-strong-dark"],l["--color-brand-border-light"]=l["--color-brand-surface-strong-light"],l["--color-brand-border-dark"]=l["--color-brand-surface-strong-dark"],l}function Tt(t){const e=rt(t);if(!e)return null;const o=at(e);if(!o)return null;const r=kt(o),n=_t(r);return n[600]=e,{"--color-brand-seed":e,"--color-brand-100":n[100],"--color-brand-200":n[200],"--color-brand-300":n[300],"--color-brand-400":n[400],"--color-brand-500":n[500],"--color-brand-600":n[600],"--color-brand-700":n[700],"--color-brand-800":n[800],"--color-brand-900":n[900],"--color-brand-1000":n[1e3],...Rt(r,n)}}const it=a.computed(()=>Tt(i.accentColor)??{}),V={vars:{},enabled:!!i.exposeGlobalAccent};return b.push(V),a.watch(()=>i.exposeGlobalAccent,t=>{V.enabled=!!t,D()},{immediate:!0}),a.watch(it,t=>{t&&Object.keys(t).length>0?V.vars={...t}:V.vars={},D()},{immediate:!0}),(t,e)=>(a.openBlock(),a.createElementBlock("div",{class:"theme",style:a.normalizeStyle(it.value)},[a.renderSlot(t.$slots,"default"),a.createElementVNode("div",{ref_key:"portalHost",ref:C,class:"theme__portal-host"},null,512)],4))}}),Ht=(c,i)=>{const b=c.__vccOpts||c;for(const[f,D]of i)b[f]=D;return b},Vt={__name:"ThemeSwitcher",props:{mode:{type:String,default:"auto",validator:c=>["auto","light","dark"].includes(c)}},emits:["update:mode"],setup(c,{emit:i}){const f=[{value:"auto",label:"System"},{value:"light",label:"Light"},{value:"dark",label:"Dark"}].reduce((C,v)=>(C[v.value]=v.label,C),{}),D=K,y=c,q=i;pt();const L=a.ref(!1),H=Z()??y.mode,k=a.ref(D.includes(H)?H:"auto");return a.computed(()=>f[k.value]??f.auto),a.watch(()=>y.mode,C=>{D.includes(C)&&C!==k.value&&(k.value=C)}),a.watch(k,C=>{if(!D.includes(C)){k.value="auto";return}L.value=!1,q("update:mode",C),It(C)},{immediate:!0}),(C,v)=>(a.openBlock(),a.createBlock(a.unref(F.DropdownMenu),{open:L.value,"onUpdate:open":v[3]||(v[3]=I=>L.value=I),text:"Theme","aria-label":"Select theme mode"},{default:a.withCtx(()=>[a.createVNode(a.unref(F.DropdownItemGroup),{title:"Theme"},{default:a.withCtx(()=>[a.createVNode(a.unref(F.DropdownItemRadio),{checked:k.value,"onUpdate:checked":v[0]||(v[0]=I=>k.value=I),value:"auto",label:a.unref(f).auto,"aria-label":`${a.unref(f).auto} mode`},null,8,["checked","label","aria-label"]),v[4]||(v[4]=a.createElementVNode("hr",{class:"theme-switcher-divider",role:"separator"},null,-1)),a.createVNode(a.unref(F.DropdownItemRadio),{checked:k.value,"onUpdate:checked":v[1]||(v[1]=I=>k.value=I),value:"light",label:a.unref(f).light,"aria-label":`${a.unref(f).light} mode`},null,8,["checked","label","aria-label"]),a.createVNode(a.unref(F.DropdownItemRadio),{checked:k.value,"onUpdate:checked":v[2]||(v[2]=I=>k.value=I),value:"dark",label:a.unref(f).dark,"aria-label":`${a.unref(f).dark} mode`},null,8,["checked","label","aria-label"])]),_:1})]),_:1},8,["open"]))}},Ft=Ht(Vt,[["__scopeId","data-v-bcbc87cb"]]);exports.Theme=$t;exports.ThemeSwitcher=Ft;exports.themePortalHostKey=tt;exports.useThemePortalTarget=xt;
|
|
2
|
-
//# sourceMappingURL=theme.cjs.js.map
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`vue`);require(`what-input`);let t=require(`@gospore/dropdown-menu`);var n=[`auto`,`light`,`dark`],r=`gospore-theme-mode`,i=3600*24*365,a=`(prefers-color-scheme: dark)`;function o(){if(typeof document>`u`)return null;let e=l(r);return e&&n.includes(e)?e:null}function s(e){if(typeof document>`u`||!n.includes(e))return;let t=typeof window<`u`?window.location.hostname:``,a=typeof window<`u`?window.location.protocol:``,o=u(t),s=a===`https:`,c=[`path=/`,`max-age=${i}`,`SameSite=Lax`];o&&c.push(`domain=${o}`),s&&c.push(`Secure`),document.cookie=[`${encodeURIComponent(r)}=${encodeURIComponent(e)}`,...c].join(`; `)}function c(e){if(typeof document>`u`)return;let t=typeof e==`string`&&n.includes(e)?e:o()??`auto`;console.log(`Applying theme mode:`,t);let r=d(t);document.documentElement.setAttribute(`dark-mode`,r)}function l(e){if(typeof document>`u`||!document.cookie)return null;let t=`${encodeURIComponent(e)}=`,n=document.cookie.split(`; `);for(let e of n)if(e.startsWith(t))return decodeURIComponent(e.slice(t.length));return null}function u(e){if(!e||e===`localhost`)return null;if(/^\d+(?:\.\d+){3}$/.test(e))return e;let t=e.split(`.`);return t.length<=1?null:t.length===2?e:t.slice(-2).join(`.`)}function d(e){if(e===`dark`)return!0;if(e===`light`||typeof window>`u`)return!1;try{let e=typeof window.matchMedia==`function`?window.matchMedia(a):null;return e?e.matches:!1}catch{return!1}}var f=Symbol.for(`gospore.theme.portalHost`);function p(){let t=(0,e.inject)(f,null);console.log(`Using theme portal host:`,t);let n=typeof document<`u`?document.body:`body`;return(0,e.computed)(()=>t?.value??n)}var m=`(prefers-color-scheme: dark)`,h=`(prefers-reduced-motion: reduce)`,g=200,_=3.8,v=1.8,y=1.15,b=1.08,x=2.5,S=3,C=`#ffffff`,w=`#1f2228`,T=Object.assign({name:`Theme`},{__name:`Theme`,props:{mode:{type:String,validator:e=>[`auto`,`light`,`dark`].includes(e)},accentColor:{type:String,required:!1,default:void 0},exposeGlobalAccent:{type:Boolean,default:!1}},setup(t){let n=t,r=[],i=new Set;function a(){let e=document.documentElement;if(!e)return;i.forEach(t=>{e.style.removeProperty(t)}),i.clear();let t=[...r].reverse().find(e=>e.enabled&&e.vars&&Object.keys(e.vars).length>0);t&&Object.entries(t.vars).forEach(([t,n])=>{e.style.setProperty(t,n),i.add(t)})}let s=window.matchMedia(m),l=window.matchMedia(h),u=j();c(u);let d=(0,e.ref)(u),p=(0,e.ref)({darkMode:D(u)}),T=(0,e.ref)(null);s.addEventListener(`change`,O),(0,e.watch)(()=>n.mode,()=>{E()},{immediate:!0}),(0,e.watch)(()=>p.value.darkMode,(e,t)=>{if(t===void 0){k(e);return}A(()=>{k(e)})},{immediate:!0}),(0,e.onBeforeUnmount)(()=>{s.removeEventListener(`change`,O);let e=r.indexOf($);e!==-1&&r.splice(e,1),a()});function E(){let e=j();d.value=e,p.value.darkMode=D(e)}function D(e){return e===`dark`?!0:e===`light`?!1:s.matches}function O(e){!e||d.value!==`auto`||(p.value.darkMode=e.matches)}function k(e){document.documentElement.setAttribute(`dark-mode`,e)}function A(e){if(l.matches){e();return}let t=document.startViewTransition?.bind(document);if(t){t(()=>{e()});return}e();let n=document.documentElement;typeof n.animate==`function`&&window.requestAnimationFrame(()=>{n.animate([{opacity:.85},{opacity:1}],{duration:g,easing:`ease-in-out`})})}function j(){return n.mode??o()??`auto`}(0,e.provide)(`theme`,p),(0,e.provide)(f,T);function M(e){if(!e)return null;let t=e.trim().toLowerCase();if(!/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.exec(t))return null;if(t.length===4){let e=t[1],n=t[2],r=t[3];return`#${e}${e}${n}${n}${r}${r}`}return t}function N(e){let t=M(e);return t?{r:parseInt(t.slice(1,3),16),g:parseInt(t.slice(3,5),16),b:parseInt(t.slice(5,7),16)}:null}function P({r:e,g:t,b:n}){let r=e=>e.toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`}function F(e){return Math.max(0,Math.min(1,e))}function I(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function L(e){let t=F(e);return t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055}function R({r:e,g:t,b:n}){let r=e/255,i=t/255,a=n/255,o=I(r),s=I(i),c=I(a),l=.4122214708*o+.5363325363*s+.0514459929*c,u=.2119034982*o+.6806995451*s+.1073969566*c,d=.0883024619*o+.2817188376*s+.6299787005*c,f=Math.cbrt(l),p=Math.cbrt(u),m=Math.cbrt(d),h=.2104542553*f+.793617785*p-.0040720468*m,g=1.9779984951*f-2.428592205*p+.4505937099*m,_=.0259040371*f+.7827717662*p-.808675766*m,v=Math.sqrt(g*g+_*_),y=180/Math.PI*Math.atan2(_,g);return y<0&&(y+=360),{l:h,c:v,h:y}}function z(e,t,n,r=!1){let i=n*Math.PI/180,a=t*Math.cos(i),o=t*Math.sin(i),s=e+.3963377774*a+.2158037573*o,c=e-.1055613458*a-.0638541728*o,l=e-.0894841775*a-1.291485548*o,u=r?F(s):s,d=r?F(c):c,f=r?F(l):l;if(!r&&(u<-1e-4||u>1.0001||d<-1e-4||d>1.0001||f<-1e-4||f>1.0001))return null;let p=u*u*u,m=d*d*d,h=f*f*f,g=4.0767416621*p-3.3077115913*m+.2309699292*h,_=-1.2684380046*p+2.6097574011*m-.3413193965*h,v=-.0041960863*p-.7034186147*m+1.707614701*h;if(r)g=F(g),_=F(_),v=F(v);else if(g<-1e-4||g>1.0001||_<-1e-4||_>1.0001||v<-1e-4||v>1.0001)return null;let y=F(L(g)),b=F(L(_)),x=F(L(v));return{r:Math.round(y*255),g:Math.round(b*255),b:Math.round(x*255)}}function B(e,t,n){let r=t;for(let t=0;t<8;t+=1){let t=z(e,r,n);if(t)return t;r*=.9}return z(e,F(r),n,!0)||{r:0,g:0,b:0}}function V(e){let t=N(e);if(!t)return 0;let n=I(t.r/255),r=I(t.g/255),i=I(t.b/255);return .2126*n+.7152*r+.0722*i}function H(e,t){let n=V(e),r=V(t),i=Math.max(n,r),a=Math.min(n,r);return(i+.05)/(a+.05)}function U(e,t,n={}){let r=n.minContrast??_,i=n.preferDark!==!1,a=Math.max(.01,Math.min(.06,(e.c||.12)*(n.chromaScale??.25))),o=n.initialLightness??(i?.24:.94),s=i?-1:1,c=n.step??.03,l=F(o),u=P(B(l,a,e.h)),d=H(t,u);for(let n=0;n<48;n+=1){let n=P(B(l,a,e.h)),i=H(t,n);if(i>d&&(d=i,u=n),i>=r)return n;if(l=F(l+s*c),l===0||l===1)break}let f=`#101214`,p=`#ffffff`,m=H(t,f),h=H(t,p);return m>=r||h>=r?m>=h?f:p:u}function W(e,t,n={}){let r=n.minContrast??_,i=n.darkCandidate??`#101214`,a=n.lightCandidate??`#ffffff`,o=n.preferredCandidate,s=n.preferredMinContrast??r,c=n.preferredSwitchDelta??0,l=H(t,i),u=H(t,a),d=l>=r,f=u>=r,p=u>=s,m=l>=s;if(d||f)return o===`light`&&p?a:o===`dark`&&m?i:o===`light`&&f?!d||l-u<=c?a:i:o===`dark`&&d?!f||u-l<=c?i:a:d&&f?l>=u?i:a:d?i:a;let h=l>=u;return U(e,t,{minContrast:r,preferDark:h,initialLightness:h?.2:.96,chromaScale:.1})}let G=[100,200,300,400,500,600,700,800,900,1e3],K=[.9,.84,.78,.72,.67,.62,.56,.5,.44,.38],q=[.28,.4,.54,.7,.86,1,1.08,1.14,1.2,1.24];function J(e,t,n,r){let i=t[t.length-1];for(let i of t){let t=e[i];if(t&&H(t,n)>=r)return i}return i}function Y(e){let t=e.l-K[5],n=e.c>.02?.02:0;return G.reduce((r,i,a)=>(r[i]=P(B(F(K[a]+t),Math.min(.4,Math.max(n,e.c*q[a])),e.h)),r),{})}function X(e,t){let n=[100,200,300,400,500,600,700],r=J(t,n,C,b),i=n.indexOf(r),a=n[Math.min(i+1,n.length-1)],o=n[Math.min(i+2,n.length-1)],s=[1e3,900,800,700,600,500],c=J(t,s,w,b),l=s.indexOf(c),u=s[Math.min(l+1,s.length-1)],d=s[Math.min(l+2,s.length-1)],f=J(t,[200,300,400,500,600,700,800],C,y),p=J(t,[900,800,700,600,500,400],w,y),m=[600,700,800,900,1e3],h=J(t,m,C,v),g=m.indexOf(h),T=m[Math.min(g+1,m.length-1)],E=m[Math.min(g+2,m.length-1)],D=[400,300,200,100],O=J(t,D,w,v),k=D.indexOf(O),A=D[Math.min(k+1,D.length-1)],j=D[Math.min(k+2,D.length-1)],M={"--color-brand-surface-soft-light":t[r],"--color-brand-surface-soft-hovered-light":t[a],"--color-brand-surface-soft-pressed-light":t[o],"--color-brand-surface-soft-dark":t[c],"--color-brand-surface-soft-hovered-dark":t[u],"--color-brand-surface-soft-pressed-dark":t[d],"--color-brand-surface-subtle-light":t[f],"--color-brand-surface-subtle-dark":t[p],"--color-brand-surface-strong-light":t[h],"--color-brand-surface-strong-hovered-light":t[T],"--color-brand-surface-strong-pressed-light":t[E],"--color-brand-surface-strong-dark":t[O],"--color-brand-surface-strong-hovered-dark":t[A],"--color-brand-surface-strong-pressed-dark":t[j]},N=t[600];return M[`--color-brand-on-soft-light`]=H(M[`--color-brand-surface-soft-light`],N)>=_?N:W(e,M[`--color-brand-surface-soft-light`],{minContrast:_}),M[`--color-brand-on-soft-dark`]=W(e,M[`--color-brand-surface-soft-dark`],{minContrast:_}),M[`--color-brand-on-subtle-light`]=W(e,M[`--color-brand-surface-subtle-light`],{minContrast:x,preferredCandidate:`light`,preferredMinContrast:x,preferredSwitchDelta:S}),M[`--color-brand-on-subtle-dark`]=W(e,M[`--color-brand-surface-subtle-dark`],{minContrast:_}),M[`--color-brand-on-strong-light`]=W(e,M[`--color-brand-surface-strong-light`],{minContrast:x,preferredCandidate:`light`,preferredMinContrast:x,preferredSwitchDelta:S}),M[`--color-brand-on-strong-dark`]=W(e,M[`--color-brand-surface-strong-dark`],{minContrast:_}),M[`--color-brand-text-light`]=M[`--color-brand-surface-strong-light`],M[`--color-brand-text-dark`]=M[`--color-brand-surface-strong-dark`],M[`--color-brand-icon-light`]=M[`--color-brand-surface-strong-light`],M[`--color-brand-icon-dark`]=M[`--color-brand-surface-strong-dark`],M[`--color-brand-border-light`]=M[`--color-brand-surface-strong-light`],M[`--color-brand-border-dark`]=M[`--color-brand-surface-strong-dark`],M}function Z(e){let t=M(e);if(!t)return null;let n=N(t);if(!n)return null;let r=R(n),i=Y(r);return i[600]=t,{"--color-brand-seed":t,"--color-brand-100":i[100],"--color-brand-200":i[200],"--color-brand-300":i[300],"--color-brand-400":i[400],"--color-brand-500":i[500],"--color-brand-600":i[600],"--color-brand-700":i[700],"--color-brand-800":i[800],"--color-brand-900":i[900],"--color-brand-1000":i[1e3],...X(r,i)}}let Q=(0,e.computed)(()=>Z(n.accentColor)??{}),$={vars:{},enabled:!!n.exposeGlobalAccent};return r.push($),(0,e.watch)(()=>n.exposeGlobalAccent,e=>{$.enabled=!!e,a()},{immediate:!0}),(0,e.watch)(Q,e=>{e&&Object.keys(e).length>0?$.vars={...e}:$.vars={},a()},{immediate:!0}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`theme`,style:(0,e.normalizeStyle)(Q.value)},[(0,e.renderSlot)(t.$slots,`default`),(0,e.createElementVNode)(`div`,{ref_key:`portalHost`,ref:T,class:`theme__portal-host`},null,512)],4))}}),E=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})({__name:`ThemeSwitcher`,props:{mode:{type:String,default:`auto`,validator:e=>[`auto`,`light`,`dark`].includes(e)}},emits:[`update:mode`],setup(r,{emit:i}){let a=[{value:`auto`,label:`System`},{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}].reduce((e,t)=>(e[t.value]=t.label,e),{}),l=n,u=r,d=i;c();let f=(0,e.ref)(!1),p=o()??u.mode,m=(0,e.ref)(l.includes(p)?p:`auto`);return(0,e.computed)(()=>a[m.value]??a.auto),(0,e.watch)(()=>u.mode,e=>{l.includes(e)&&e!==m.value&&(m.value=e)}),(0,e.watch)(m,e=>{if(!l.includes(e)){m.value=`auto`;return}f.value=!1,d(`update:mode`,e),s(e)},{immediate:!0}),(n,r)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.DropdownMenu),{open:f.value,"onUpdate:open":r[3]||=e=>f.value=e,text:`Theme`,"aria-label":`Select theme mode`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.DropdownItemGroup),{title:`Theme`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.DropdownItemRadio),{checked:m.value,"onUpdate:checked":r[0]||=e=>m.value=e,value:`auto`,label:(0,e.unref)(a).auto,"aria-label":`${(0,e.unref)(a).auto} mode`},null,8,[`checked`,`label`,`aria-label`]),r[4]||=(0,e.createElementVNode)(`hr`,{class:`theme-switcher-divider`,role:`separator`},null,-1),(0,e.createVNode)((0,e.unref)(t.DropdownItemRadio),{checked:m.value,"onUpdate:checked":r[1]||=e=>m.value=e,value:`light`,label:(0,e.unref)(a).light,"aria-label":`${(0,e.unref)(a).light} mode`},null,8,[`checked`,`label`,`aria-label`]),(0,e.createVNode)((0,e.unref)(t.DropdownItemRadio),{checked:m.value,"onUpdate:checked":r[2]||=e=>m.value=e,value:`dark`,label:(0,e.unref)(a).dark,"aria-label":`${(0,e.unref)(a).dark} mode`},null,8,[`checked`,`label`,`aria-label`])]),_:1})]),_:1},8,[`open`]))}},[[`__scopeId`,`data-v-bcbc87cb`]]);exports.Theme=T,exports.ThemeSwitcher=E,exports.themePortalHostKey=f,exports.useThemePortalTarget=p;
|
|
2
|
+
//# sourceMappingURL=theme.cjs.js.map
|
package/dist/theme.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.cjs.js","sources":["../src/modeStorage.js","../src/portalHost.js","../src/Theme.vue","../src/ThemeSwitcher.vue"],"sourcesContent":["const VALID_THEME_MODES = [\"auto\", \"light\", \"dark\"];\nconst STORAGE_KEY = \"gospore-theme-mode\";\nconst ONE_YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\nconst DARK_MODE_QUERY = \"(prefers-color-scheme: dark)\";\n\nexport function readStoredMode() {\n if (typeof document === \"undefined\") {\n return null;\n }\n const stored = getCookie(STORAGE_KEY);\n return stored && VALID_THEME_MODES.includes(stored) ? stored : null;\n}\n\nexport function writeStoredMode(mode) {\n if (typeof document === \"undefined\" || !VALID_THEME_MODES.includes(mode)) {\n return;\n }\n const hostname =\n typeof window !== \"undefined\" ? window.location.hostname : \"\";\n const protocol =\n typeof window !== \"undefined\" ? window.location.protocol : \"\";\n const domain = getCookieDomain(hostname);\n const secure = protocol === \"https:\";\n const attributes = [\n \"path=/\",\n `max-age=${ONE_YEAR_IN_SECONDS}`,\n \"SameSite=Lax\",\n ];\n if (domain) {\n attributes.push(`domain=${domain}`);\n }\n if (secure) {\n attributes.push(\"Secure\");\n }\n document.cookie = [\n `${encodeURIComponent(STORAGE_KEY)}=${encodeURIComponent(mode)}`,\n ...attributes,\n ].join(\"; \");\n}\n\nexport function applyStoredModeToDocument(mode) {\n if (typeof document === \"undefined\") {\n return;\n }\n const resolvedMode =\n typeof mode === \"string\" && VALID_THEME_MODES.includes(mode)\n ? mode\n : (readStoredMode() ?? \"auto\");\n console.log(\"Applying theme mode:\", resolvedMode);\n const darkMode = resolveDarkMode(resolvedMode);\n document.documentElement.setAttribute(\"dark-mode\", darkMode);\n}\n\nexport { VALID_THEME_MODES, STORAGE_KEY };\n\nfunction getCookie(name) {\n if (typeof document === \"undefined\" || !document.cookie) {\n return null;\n }\n const encodedName = `${encodeURIComponent(name)}=`;\n const cookies = document.cookie.split(\"; \");\n for (const cookie of cookies) {\n if (cookie.startsWith(encodedName)) {\n return decodeURIComponent(cookie.slice(encodedName.length));\n }\n }\n return null;\n}\n\nfunction getCookieDomain(hostname) {\n if (!hostname || hostname === \"localhost\") {\n return null;\n }\n const isIpAddress = /^\\d+(?:\\.\\d+){3}$/.test(hostname);\n if (isIpAddress) {\n return hostname;\n }\n const parts = hostname.split(\".\");\n if (parts.length <= 1) {\n return null;\n }\n if (parts.length === 2) {\n return hostname;\n }\n return parts.slice(-2).join(\".\");\n}\n\nfunction resolveDarkMode(mode) {\n if (mode === \"dark\") {\n return true;\n }\n if (mode === \"light\") {\n return false;\n }\n if (typeof window === \"undefined\") {\n return false;\n }\n try {\n const mediaQueryList =\n typeof window.matchMedia === \"function\"\n ? window.matchMedia(DARK_MODE_QUERY)\n : null;\n return mediaQueryList ? mediaQueryList.matches : false;\n } catch (error) {\n return false;\n }\n}\n","import { computed, inject } from \"vue\";\n\nexport const themePortalHostKey = Symbol.for(\"gospore.theme.portalHost\");\n\nexport function useThemePortalTarget() {\n const hostRef = inject(themePortalHostKey, null);\n console.log(\"Using theme portal host:\", hostRef);\n const fallbackTarget =\n typeof document !== \"undefined\" ? document.body : \"body\";\n\n return computed(() => hostRef?.value ?? fallbackTarget);\n}\n","<template>\n <div class=\"theme\" :style=\"brandVars\">\n <slot />\n <div ref=\"portalHost\" class=\"theme__portal-host\"></div>\n </div>\n</template>\n\n<script setup>\nimport { provide, ref, watch, onBeforeUnmount, computed } from \"vue\";\nimport { applyStoredModeToDocument, readStoredMode } from \"./modeStorage\";\nimport \"what-input\";\nimport { themePortalHostKey } from \"./portalHost\";\n\ndefineOptions({\n name: \"Theme\",\n});\nconst props = defineProps({\n mode: {\n type: String,\n validator: (value) => [\"auto\", \"light\", \"dark\"].includes(value),\n },\n /**\n * Optional hex accent color (\"#RRGGBB\" or \"#RGB\"). When provided,\n * Theme derives contrast-safe semantic brand tokens and exposes them on\n * the root .theme element (and the global document for portals).\n */\n accentColor: {\n type: String,\n required: false,\n default: undefined,\n },\n /**\n * When true the brand vars are also exposed on <html>, allowing portals\n * attached outside the Theme subtree to inherit the accent colors.\n */\n exposeGlobalAccent: {\n type: Boolean,\n default: false,\n },\n});\n\nconst globalAccentStack = [];\nconst appliedGlobalAccentKeys = new Set();\n\nfunction applyGlobalAccentFromStack() {\n const root = document.documentElement;\n if (!root) {\n return;\n }\n\n appliedGlobalAccentKeys.forEach((key) => {\n root.style.removeProperty(key);\n });\n appliedGlobalAccentKeys.clear();\n\n const activeEntry = [...globalAccentStack]\n .reverse()\n .find(\n (entry) =>\n entry.enabled &&\n entry.vars &&\n Object.keys(entry.vars).length > 0,\n );\n\n if (!activeEntry) {\n return;\n }\n\n Object.entries(activeEntry.vars).forEach(([key, value]) => {\n root.style.setProperty(key, value);\n appliedGlobalAccentKeys.add(key);\n });\n}\n\nconst DARK_MODE_QUERY = \"(prefers-color-scheme: dark)\";\nconst PREFERS_REDUCED_MOTION_QUERY = \"(prefers-reduced-motion: reduce)\";\nconst THEME_TRANSITION_DURATION = 200;\nconst darkModeMedia = window.matchMedia(DARK_MODE_QUERY);\nconst prefersReducedMotionMedia = window.matchMedia(\n PREFERS_REDUCED_MOTION_QUERY,\n);\n\nconst initialMode = getEffectiveMode();\napplyStoredModeToDocument(initialMode);\n\nconst currentMode = ref(initialMode);\n\nconst theme = ref({\n darkMode: resolveDarkMode(initialMode),\n});\nconst portalHost = ref(null);\n\ndarkModeMedia.addEventListener(\"change\", handleSystemPreferenceChange);\n\nwatch(\n () => props.mode,\n () => {\n syncDarkMode();\n },\n { immediate: true },\n);\n\nwatch(\n () => theme.value.darkMode,\n (darkMode, previousValue) => {\n if (previousValue === undefined) {\n setDocumentDarkModeAttribute(darkMode);\n return;\n }\n withThemeTransition(() => {\n setDocumentDarkModeAttribute(darkMode);\n });\n },\n { immediate: true },\n);\n\nonBeforeUnmount(() => {\n darkModeMedia.removeEventListener(\"change\", handleSystemPreferenceChange);\n const index = globalAccentStack.indexOf(accentStackEntry);\n if (index !== -1) {\n globalAccentStack.splice(index, 1);\n }\n applyGlobalAccentFromStack();\n});\n\nfunction syncDarkMode() {\n const mode = getEffectiveMode();\n currentMode.value = mode;\n theme.value.darkMode = resolveDarkMode(mode);\n}\n\nfunction resolveDarkMode(mode) {\n if (mode === \"dark\") {\n return true;\n }\n if (mode === \"light\") {\n return false;\n }\n return darkModeMedia.matches;\n}\n\nfunction handleSystemPreferenceChange(event) {\n if (!event || currentMode.value !== \"auto\") {\n return;\n }\n theme.value.darkMode = event.matches;\n}\n\nfunction setDocumentDarkModeAttribute(darkMode) {\n document.documentElement.setAttribute(\"dark-mode\", darkMode);\n}\n\nfunction withThemeTransition(applyTheme) {\n if (prefersReducedMotionMedia.matches) {\n applyTheme();\n return;\n }\n const startViewTransition = document.startViewTransition?.bind(document);\n if (startViewTransition) {\n startViewTransition(() => {\n applyTheme();\n });\n return;\n }\n applyTheme();\n const element = document.documentElement;\n if (typeof element.animate !== \"function\") {\n return;\n }\n window.requestAnimationFrame(() => {\n element.animate([{ opacity: 0.85 }, { opacity: 1 }], {\n duration: THEME_TRANSITION_DURATION,\n easing: \"ease-in-out\",\n });\n });\n}\n\nfunction getEffectiveMode() {\n return props.mode ?? readStoredMode() ?? \"auto\";\n}\n\nprovide(\"theme\", theme);\nprovide(themePortalHostKey, portalHost);\n\n// --- Accent helpers -------------------------------------------------------\nconst BRAND_MIN_CONTRAST = 3.8;\n\nfunction normalizeHex(hex) {\n if (!hex) return null;\n const h = hex.trim().toLowerCase();\n const m = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.exec(h);\n if (!m) return null;\n if (h.length === 4) {\n // expand #rgb -> #rrggbb\n const r = h[1],\n g = h[2],\n b = h[3];\n return `#${r}${r}${g}${g}${b}${b}`;\n }\n return h;\n}\n\nfunction hexToRgb(hex) {\n const h = normalizeHex(hex);\n if (!h) return null;\n const r = parseInt(h.slice(1, 3), 16);\n const g = parseInt(h.slice(3, 5), 16);\n const b = parseInt(h.slice(5, 7), 16);\n return { r, g, b };\n}\n\nfunction rgbToHex({ r, g, b }) {\n const toHex = (value) => value.toString(16).padStart(2, \"0\");\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nfunction clamp01(value) {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction srgbChannelToLinear(channel) {\n if (channel <= 0.04045) {\n return channel / 12.92;\n }\n return Math.pow((channel + 0.055) / 1.055, 2.4);\n}\n\nfunction linearChannelToSrgb(channel) {\n const normalized = clamp01(channel);\n if (normalized <= 0.0031308) {\n return 12.92 * normalized;\n }\n return 1.055 * Math.pow(normalized, 1 / 2.4) - 0.055;\n}\n\nfunction rgbToOklch({ r, g, b }) {\n const rNorm = r / 255;\n const gNorm = g / 255;\n const bNorm = b / 255;\n\n const rLin = srgbChannelToLinear(rNorm);\n const gLin = srgbChannelToLinear(gNorm);\n const bLin = srgbChannelToLinear(bNorm);\n\n const l = 0.4122214708 * rLin + 0.5363325363 * gLin + 0.0514459929 * bLin;\n const m = 0.2119034982 * rLin + 0.6806995451 * gLin + 0.1073969566 * bLin;\n const s = 0.0883024619 * rLin + 0.2817188376 * gLin + 0.6299787005 * bLin;\n\n const lRoot = Math.cbrt(l);\n const mRoot = Math.cbrt(m);\n const sRoot = Math.cbrt(s);\n\n const oklabL =\n 0.2104542553 * lRoot + 0.793617785 * mRoot - 0.0040720468 * sRoot;\n const oklabA =\n 1.9779984951 * lRoot - 2.428592205 * mRoot + 0.4505937099 * sRoot;\n const oklabB =\n 0.0259040371 * lRoot + 0.7827717662 * mRoot - 0.808675766 * sRoot;\n\n const chroma = Math.sqrt(oklabA * oklabA + oklabB * oklabB);\n let hue = Math.atan2(oklabB, oklabA) * (180 / Math.PI);\n if (hue < 0) {\n hue += 360;\n }\n\n return { l: oklabL, c: chroma, h: hue };\n}\n\nfunction tryOklchToSrgb(l, c, h, clampLinear = false) {\n const angle = (h * Math.PI) / 180;\n const a = c * Math.cos(angle);\n const b = c * Math.sin(angle);\n\n const lComponent = l + 0.3963377774 * a + 0.2158037573 * b;\n const mComponent = l - 0.1055613458 * a - 0.0638541728 * b;\n const sComponent = l - 0.0894841775 * a - 1.291485548 * b;\n\n const lCube = clampLinear ? clamp01(lComponent) : lComponent;\n const mCube = clampLinear ? clamp01(mComponent) : mComponent;\n const sCube = clampLinear ? clamp01(sComponent) : sComponent;\n\n if (!clampLinear) {\n const outOfRange =\n lCube < -0.0001 ||\n lCube > 1.0001 ||\n mCube < -0.0001 ||\n mCube > 1.0001 ||\n sCube < -0.0001 ||\n sCube > 1.0001;\n if (outOfRange) {\n return null;\n }\n }\n\n const lLin = lCube * lCube * lCube;\n const mLin = mCube * mCube * mCube;\n const sLin = sCube * sCube * sCube;\n\n let rLin = 4.0767416621 * lLin - 3.3077115913 * mLin + 0.2309699292 * sLin;\n let gLin = -1.2684380046 * lLin + 2.6097574011 * mLin - 0.3413193965 * sLin;\n let bLin = -0.0041960863 * lLin - 0.7034186147 * mLin + 1.707614701 * sLin;\n\n if (clampLinear) {\n rLin = clamp01(rLin);\n gLin = clamp01(gLin);\n bLin = clamp01(bLin);\n } else {\n const outOfRange =\n rLin < -0.0001 ||\n rLin > 1.0001 ||\n gLin < -0.0001 ||\n gLin > 1.0001 ||\n bLin < -0.0001 ||\n bLin > 1.0001;\n if (outOfRange) {\n return null;\n }\n }\n\n const r = clamp01(linearChannelToSrgb(rLin));\n const g = clamp01(linearChannelToSrgb(gLin));\n const bValue = clamp01(linearChannelToSrgb(bLin));\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(bValue * 255),\n };\n}\n\nfunction oklchToSrgb(l, c, h) {\n let chroma = c;\n for (let attempt = 0; attempt < 8; attempt += 1) {\n const rgb = tryOklchToSrgb(l, chroma, h);\n if (rgb) {\n return rgb;\n }\n chroma *= 0.9;\n }\n return tryOklchToSrgb(l, clamp01(chroma), h, true) || { r: 0, g: 0, b: 0 };\n}\n\nfunction relativeLuminance(hex) {\n const rgb = hexToRgb(hex);\n if (!rgb) {\n return 0;\n }\n const r = srgbChannelToLinear(rgb.r / 255);\n const g = srgbChannelToLinear(rgb.g / 255);\n const b = srgbChannelToLinear(rgb.b / 255);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n\nfunction contrastRatio(hexA, hexB) {\n const lumA = relativeLuminance(hexA);\n const lumB = relativeLuminance(hexB);\n const lighter = Math.max(lumA, lumB);\n const darker = Math.min(lumA, lumB);\n return (lighter + 0.05) / (darker + 0.05);\n}\n\nfunction makeReadableTextOnSurface(baseOklch, surfaceHex, options = {}) {\n const minContrast = options.minContrast ?? BRAND_MIN_CONTRAST;\n const preferDark = options.preferDark !== false;\n const textChroma = Math.max(\n 0.01,\n Math.min(0.06, (baseOklch.c || 0.12) * (options.chromaScale ?? 0.25)),\n );\n const initialLightness =\n options.initialLightness ?? (preferDark ? 0.24 : 0.94);\n const direction = preferDark ? -1 : 1;\n const step = options.step ?? 0.03;\n let lightness = clamp01(initialLightness);\n let bestHex = rgbToHex(oklchToSrgb(lightness, textChroma, baseOklch.h));\n let bestContrast = contrastRatio(surfaceHex, bestHex);\n\n for (let attempt = 0; attempt < 48; attempt += 1) {\n const textHex = rgbToHex(\n oklchToSrgb(lightness, textChroma, baseOklch.h),\n );\n const ratio = contrastRatio(surfaceHex, textHex);\n\n if (ratio > bestContrast) {\n bestContrast = ratio;\n bestHex = textHex;\n }\n if (ratio >= minContrast) {\n return textHex;\n }\n\n lightness = clamp01(lightness + direction * step);\n if (lightness === 0 || lightness === 1) {\n break;\n }\n }\n\n const fallbackDark = \"#101214\";\n const fallbackLight = \"#ffffff\";\n const darkRatio = contrastRatio(surfaceHex, fallbackDark);\n const lightRatio = contrastRatio(surfaceHex, fallbackLight);\n\n if (darkRatio >= minContrast || lightRatio >= minContrast) {\n return darkRatio >= lightRatio ? fallbackDark : fallbackLight;\n }\n\n return bestHex;\n}\n\nfunction pickForegroundColor(baseOklch, surfaceHex, options = {}) {\n const minContrast = options.minContrast ?? BRAND_MIN_CONTRAST;\n const darkCandidate = options.darkCandidate ?? \"#101214\";\n const lightCandidate = options.lightCandidate ?? \"#ffffff\";\n const preferredCandidate = options.preferredCandidate;\n const preferredMinContrast = options.preferredMinContrast ?? minContrast;\n const preferredSwitchDelta = options.preferredSwitchDelta ?? 0;\n const darkRatio = contrastRatio(surfaceHex, darkCandidate);\n const lightRatio = contrastRatio(surfaceHex, lightCandidate);\n const darkPasses = darkRatio >= minContrast;\n const lightPasses = lightRatio >= minContrast;\n const preferredLightPasses = lightRatio >= preferredMinContrast;\n const preferredDarkPasses = darkRatio >= preferredMinContrast;\n\n if (darkPasses || lightPasses) {\n if (preferredCandidate === \"light\" && preferredLightPasses) {\n return lightCandidate;\n }\n if (preferredCandidate === \"dark\" && preferredDarkPasses) {\n return darkCandidate;\n }\n\n if (preferredCandidate === \"light\" && lightPasses) {\n if (!darkPasses || darkRatio - lightRatio <= preferredSwitchDelta) {\n return lightCandidate;\n }\n return darkCandidate;\n }\n if (preferredCandidate === \"dark\" && darkPasses) {\n if (\n !lightPasses ||\n lightRatio - darkRatio <= preferredSwitchDelta\n ) {\n return darkCandidate;\n }\n return lightCandidate;\n }\n\n if (darkPasses && lightPasses) {\n return darkRatio >= lightRatio ? darkCandidate : lightCandidate;\n }\n return darkPasses ? darkCandidate : lightCandidate;\n }\n\n const preferDark = darkRatio >= lightRatio;\n return makeReadableTextOnSurface(baseOklch, surfaceHex, {\n minContrast,\n preferDark,\n initialLightness: preferDark ? 0.2 : 0.96,\n chromaScale: 0.1,\n });\n}\n\nconst BRAND_STOPS = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000];\nconst BRAND_LIGHTNESS_CURVE = [\n 0.9, 0.84, 0.78, 0.72, 0.67, 0.62, 0.56, 0.5, 0.44, 0.38,\n];\nconst BRAND_CHROMA_MULTIPLIERS = [\n 0.28, 0.4, 0.54, 0.7, 0.86, 1, 1.08, 1.14, 1.2, 1.24,\n];\nconst BRAND_MIN_SURFACE_CONTRAST = 1.8;\nconst BRAND_MIN_SUBTLE_SURFACE_CONTRAST = 1.15;\nconst BRAND_MIN_SOFT_SURFACE_CONTRAST = 1.08;\nconst BRAND_UI_TEXT_MIN_CONTRAST = 2.5;\nconst BRAND_LIGHT_TEXT_SWITCH_DELTA = 3;\nconst LIGHT_CANVAS_HEX = \"#ffffff\";\nconst DARK_CANVAS_HEX = \"#1f2228\";\n\nfunction pickRampStopForContrast(\n ramp,\n stopCandidates,\n referenceHex,\n minContrast,\n) {\n const fallbackStop = stopCandidates[stopCandidates.length - 1];\n for (const stop of stopCandidates) {\n const candidate = ramp[stop];\n if (!candidate) {\n continue;\n }\n if (contrastRatio(candidate, referenceHex) >= minContrast) {\n return stop;\n }\n }\n return fallbackStop;\n}\n\nfunction makeBrandRampFromSeed(baseOklch) {\n const lightnessOffset = baseOklch.l - BRAND_LIGHTNESS_CURVE[5];\n const minSeedChroma = baseOklch.c > 0.02 ? 0.02 : 0;\n\n return BRAND_STOPS.reduce((acc, stop, index) => {\n const lightness = clamp01(\n BRAND_LIGHTNESS_CURVE[index] + lightnessOffset,\n );\n const chroma = Math.min(\n 0.4,\n Math.max(\n minSeedChroma,\n baseOklch.c * BRAND_CHROMA_MULTIPLIERS[index],\n ),\n );\n acc[stop] = rgbToHex(oklchToSrgb(lightness, chroma, baseOklch.h));\n return acc;\n }, {});\n}\n\nfunction makeSemanticBrandTokens(baseOklch, ramp) {\n const lightSoftStops = [100, 200, 300, 400, 500, 600, 700];\n const lightSoftStop = pickRampStopForContrast(\n ramp,\n lightSoftStops,\n LIGHT_CANVAS_HEX,\n BRAND_MIN_SOFT_SURFACE_CONTRAST,\n );\n const lightSoftIndex = lightSoftStops.indexOf(lightSoftStop);\n const lightSoftHoveredStop =\n lightSoftStops[Math.min(lightSoftIndex + 1, lightSoftStops.length - 1)];\n const lightSoftPressedStop =\n lightSoftStops[Math.min(lightSoftIndex + 2, lightSoftStops.length - 1)];\n\n const darkSoftStops = [1000, 900, 800, 700, 600, 500];\n const darkSoftStop = pickRampStopForContrast(\n ramp,\n darkSoftStops,\n DARK_CANVAS_HEX,\n BRAND_MIN_SOFT_SURFACE_CONTRAST,\n );\n const darkSoftIndex = darkSoftStops.indexOf(darkSoftStop);\n const darkSoftHoveredStop =\n darkSoftStops[Math.min(darkSoftIndex + 1, darkSoftStops.length - 1)];\n const darkSoftPressedStop =\n darkSoftStops[Math.min(darkSoftIndex + 2, darkSoftStops.length - 1)];\n\n const lightSubtleStops = [200, 300, 400, 500, 600, 700, 800];\n const lightSubtleStop = pickRampStopForContrast(\n ramp,\n lightSubtleStops,\n LIGHT_CANVAS_HEX,\n BRAND_MIN_SUBTLE_SURFACE_CONTRAST,\n );\n const darkSubtleStops = [900, 800, 700, 600, 500, 400];\n const darkSubtleStop = pickRampStopForContrast(\n ramp,\n darkSubtleStops,\n DARK_CANVAS_HEX,\n BRAND_MIN_SUBTLE_SURFACE_CONTRAST,\n );\n\n const lightStrongStops = [600, 700, 800, 900, 1000];\n const lightStrongStop = pickRampStopForContrast(\n ramp,\n lightStrongStops,\n LIGHT_CANVAS_HEX,\n BRAND_MIN_SURFACE_CONTRAST,\n );\n const lightStrongIndex = lightStrongStops.indexOf(lightStrongStop);\n const lightStrongHoveredStop =\n lightStrongStops[\n Math.min(lightStrongIndex + 1, lightStrongStops.length - 1)\n ];\n const lightStrongPressedStop =\n lightStrongStops[\n Math.min(lightStrongIndex + 2, lightStrongStops.length - 1)\n ];\n\n const darkStrongStops = [400, 300, 200, 100];\n const darkStrongStop = pickRampStopForContrast(\n ramp,\n darkStrongStops,\n DARK_CANVAS_HEX,\n BRAND_MIN_SURFACE_CONTRAST,\n );\n const darkStrongIndex = darkStrongStops.indexOf(darkStrongStop);\n const darkStrongHoveredStop =\n darkStrongStops[\n Math.min(darkStrongIndex + 1, darkStrongStops.length - 1)\n ];\n const darkStrongPressedStop =\n darkStrongStops[\n Math.min(darkStrongIndex + 2, darkStrongStops.length - 1)\n ];\n\n const tokens = {\n \"--color-brand-surface-soft-light\": ramp[lightSoftStop],\n \"--color-brand-surface-soft-hovered-light\": ramp[lightSoftHoveredStop],\n \"--color-brand-surface-soft-pressed-light\": ramp[lightSoftPressedStop],\n \"--color-brand-surface-soft-dark\": ramp[darkSoftStop],\n \"--color-brand-surface-soft-hovered-dark\": ramp[darkSoftHoveredStop],\n \"--color-brand-surface-soft-pressed-dark\": ramp[darkSoftPressedStop],\n \"--color-brand-surface-subtle-light\": ramp[lightSubtleStop],\n \"--color-brand-surface-subtle-dark\": ramp[darkSubtleStop],\n \"--color-brand-surface-strong-light\": ramp[lightStrongStop],\n \"--color-brand-surface-strong-hovered-light\":\n ramp[lightStrongHoveredStop],\n \"--color-brand-surface-strong-pressed-light\":\n ramp[lightStrongPressedStop],\n \"--color-brand-surface-strong-dark\": ramp[darkStrongStop],\n \"--color-brand-surface-strong-hovered-dark\":\n ramp[darkStrongHoveredStop],\n \"--color-brand-surface-strong-pressed-dark\":\n ramp[darkStrongPressedStop],\n };\n\n const preferredSoftLightForeground = ramp[600];\n const softLightContrast = contrastRatio(\n tokens[\"--color-brand-surface-soft-light\"],\n preferredSoftLightForeground,\n );\n tokens[\"--color-brand-on-soft-light\"] =\n softLightContrast >= BRAND_MIN_CONTRAST\n ? preferredSoftLightForeground\n : pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-soft-light\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n tokens[\"--color-brand-on-soft-dark\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-soft-dark\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n tokens[\"--color-brand-on-subtle-light\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-subtle-light\"],\n {\n minContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredCandidate: \"light\",\n preferredMinContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredSwitchDelta: BRAND_LIGHT_TEXT_SWITCH_DELTA,\n },\n );\n tokens[\"--color-brand-on-subtle-dark\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-subtle-dark\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n tokens[\"--color-brand-on-strong-light\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-strong-light\"],\n {\n minContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredCandidate: \"light\",\n preferredMinContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredSwitchDelta: BRAND_LIGHT_TEXT_SWITCH_DELTA,\n },\n );\n tokens[\"--color-brand-on-strong-dark\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-strong-dark\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n\n tokens[\"--color-brand-text-light\"] =\n tokens[\"--color-brand-surface-strong-light\"];\n tokens[\"--color-brand-text-dark\"] =\n tokens[\"--color-brand-surface-strong-dark\"];\n tokens[\"--color-brand-icon-light\"] =\n tokens[\"--color-brand-surface-strong-light\"];\n tokens[\"--color-brand-icon-dark\"] =\n tokens[\"--color-brand-surface-strong-dark\"];\n tokens[\"--color-brand-border-light\"] =\n tokens[\"--color-brand-surface-strong-light\"];\n tokens[\"--color-brand-border-dark\"] =\n tokens[\"--color-brand-surface-strong-dark\"];\n\n return tokens;\n}\n\nfunction makeBrandTokens(baseHex) {\n const norm = normalizeHex(baseHex);\n if (!norm) {\n return null;\n }\n\n const baseRgb = hexToRgb(norm);\n if (!baseRgb) {\n return null;\n }\n\n const baseOklch = rgbToOklch(baseRgb);\n const ramp = makeBrandRampFromSeed(baseOklch);\n // Keep the incoming seed exact for debugging and transparency.\n ramp[600] = norm;\n\n return {\n \"--color-brand-seed\": norm,\n \"--color-brand-100\": ramp[100],\n \"--color-brand-200\": ramp[200],\n \"--color-brand-300\": ramp[300],\n \"--color-brand-400\": ramp[400],\n \"--color-brand-500\": ramp[500],\n \"--color-brand-600\": ramp[600],\n \"--color-brand-700\": ramp[700],\n \"--color-brand-800\": ramp[800],\n \"--color-brand-900\": ramp[900],\n \"--color-brand-1000\": ramp[1000],\n ...makeSemanticBrandTokens(baseOklch, ramp),\n };\n}\n\nconst brandVars = computed(() => makeBrandTokens(props.accentColor) ?? {});\n\nconst accentStackEntry = {\n vars: {},\n enabled: Boolean(props.exposeGlobalAccent),\n};\nglobalAccentStack.push(accentStackEntry);\n\nwatch(\n () => props.exposeGlobalAccent,\n (enabled) => {\n accentStackEntry.enabled = Boolean(enabled);\n applyGlobalAccentFromStack();\n },\n { immediate: true },\n);\n\nwatch(\n brandVars,\n (vars) => {\n if (vars && Object.keys(vars).length > 0) {\n accentStackEntry.vars = { ...vars };\n } else {\n accentStackEntry.vars = {};\n }\n applyGlobalAccentFromStack();\n },\n { immediate: true },\n);\n</script>\n\n<style lang=\"less\">\n@import \"index.less\";\n</style>\n","<template>\n <DropdownMenu\n v-model:open=\"open\"\n text=\"Theme\"\n aria-label=\"Select theme mode\"\n >\n <DropdownItemGroup title=\"Theme\">\n <DropdownItemRadio\n v-model:checked=\"internalMode\"\n value=\"auto\"\n :label=\"MODE_LABELS.auto\"\n :aria-label=\"`${MODE_LABELS.auto} mode`\"\n />\n <hr class=\"theme-switcher-divider\" role=\"separator\" />\n <DropdownItemRadio\n v-model:checked=\"internalMode\"\n value=\"light\"\n :label=\"MODE_LABELS.light\"\n :aria-label=\"`${MODE_LABELS.light} mode`\"\n />\n <DropdownItemRadio\n v-model:checked=\"internalMode\"\n value=\"dark\"\n :label=\"MODE_LABELS.dark\"\n :aria-label=\"`${MODE_LABELS.dark} mode`\"\n />\n </DropdownItemGroup>\n </DropdownMenu>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from \"vue\";\nimport {\n DropdownMenu,\n DropdownItemGroup,\n DropdownItemRadio,\n} from \"@gospore/dropdown-menu\";\nimport {\n readStoredMode,\n writeStoredMode,\n VALID_THEME_MODES,\n applyStoredModeToDocument,\n} from \"./modeStorage\";\n\nconst MODE_OPTIONS = [\n { value: \"auto\", label: \"System\" },\n { value: \"light\", label: \"Light\" },\n { value: \"dark\", label: \"Dark\" },\n];\nconst MODE_LABELS = MODE_OPTIONS.reduce((map, option) => {\n map[option.value] = option.label;\n return map;\n}, {});\nconst VALID_MODES = VALID_THEME_MODES;\n\nconst props = defineProps({\n mode: {\n type: String,\n default: \"auto\",\n validator: (value) => [\"auto\", \"light\", \"dark\"].includes(value),\n },\n});\nconst emit = defineEmits([\"update:mode\"]);\n\napplyStoredModeToDocument();\n\nconst open = ref(false);\nconst initialMode = readStoredMode() ?? props.mode;\nconst internalMode = ref(\n VALID_MODES.includes(initialMode) ? initialMode : \"auto\",\n);\nconst label = computed(\n () => MODE_LABELS[internalMode.value] ?? MODE_LABELS.auto,\n);\n\nwatch(\n () => props.mode,\n (mode) => {\n if (VALID_MODES.includes(mode) && mode !== internalMode.value) {\n internalMode.value = mode;\n }\n },\n);\n\nwatch(\n internalMode,\n (mode) => {\n if (!VALID_MODES.includes(mode)) {\n internalMode.value = \"auto\";\n return;\n }\n open.value = false;\n emit(\"update:mode\", mode);\n writeStoredMode(mode);\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"less\">\n.theme-switcher-divider {\n margin: 4px 0;\n}\n</style>\n"],"names":["VALID_THEME_MODES","STORAGE_KEY","ONE_YEAR_IN_SECONDS","DARK_MODE_QUERY","readStoredMode","stored","getCookie","writeStoredMode","mode","hostname","protocol","domain","getCookieDomain","secure","attributes","applyStoredModeToDocument","resolvedMode","darkMode","resolveDarkMode","name","encodedName","cookies","cookie","parts","mediaQueryList","themePortalHostKey","useThemePortalTarget","hostRef","inject","fallbackTarget","computed","props","__props","globalAccentStack","appliedGlobalAccentKeys","applyGlobalAccentFromStack","root","key","activeEntry","entry","value","darkModeMedia","prefersReducedMotionMedia","PREFERS_REDUCED_MOTION_QUERY","initialMode","getEffectiveMode","currentMode","ref","theme","portalHost","handleSystemPreferenceChange","watch","syncDarkMode","previousValue","setDocumentDarkModeAttribute","withThemeTransition","onBeforeUnmount","index","accentStackEntry","event","applyTheme","startViewTransition","element","THEME_TRANSITION_DURATION","provide","normalizeHex","hex","h","g","b","hexToRgb","r","rgbToHex","toHex","clamp01","srgbChannelToLinear","channel","linearChannelToSrgb","normalized","rgbToOklch","rNorm","gNorm","bNorm","rLin","gLin","bLin","l","m","s","lRoot","mRoot","sRoot","oklabL","oklabA","oklabB","chroma","hue","tryOklchToSrgb","c","clampLinear","angle","a","lComponent","mComponent","sComponent","lCube","mCube","sCube","lLin","mLin","sLin","bValue","oklchToSrgb","attempt","rgb","relativeLuminance","contrastRatio","hexA","hexB","lumA","lumB","lighter","darker","makeReadableTextOnSurface","baseOklch","surfaceHex","options","minContrast","BRAND_MIN_CONTRAST","preferDark","textChroma","initialLightness","direction","step","lightness","bestHex","bestContrast","textHex","ratio","fallbackDark","fallbackLight","darkRatio","lightRatio","pickForegroundColor","darkCandidate","lightCandidate","preferredCandidate","preferredMinContrast","preferredSwitchDelta","darkPasses","lightPasses","preferredLightPasses","preferredDarkPasses","BRAND_STOPS","BRAND_LIGHTNESS_CURVE","BRAND_CHROMA_MULTIPLIERS","pickRampStopForContrast","ramp","stopCandidates","referenceHex","fallbackStop","stop","candidate","makeBrandRampFromSeed","lightnessOffset","minSeedChroma","acc","makeSemanticBrandTokens","lightSoftStops","lightSoftStop","LIGHT_CANVAS_HEX","BRAND_MIN_SOFT_SURFACE_CONTRAST","lightSoftIndex","lightSoftHoveredStop","lightSoftPressedStop","darkSoftStops","darkSoftStop","DARK_CANVAS_HEX","darkSoftIndex","darkSoftHoveredStop","darkSoftPressedStop","lightSubtleStop","BRAND_MIN_SUBTLE_SURFACE_CONTRAST","darkSubtleStop","lightStrongStops","lightStrongStop","BRAND_MIN_SURFACE_CONTRAST","lightStrongIndex","lightStrongHoveredStop","lightStrongPressedStop","darkStrongStops","darkStrongStop","darkStrongIndex","darkStrongHoveredStop","darkStrongPressedStop","tokens","preferredSoftLightForeground","softLightContrast","BRAND_UI_TEXT_MIN_CONTRAST","BRAND_LIGHT_TEXT_SWITCH_DELTA","makeBrandTokens","baseHex","norm","baseRgb","brandVars","enabled","vars","_createElementBlock","_renderSlot","_ctx","_createElementVNode","MODE_LABELS","map","option","VALID_MODES","emit","__emit","open","internalMode","_createBlock","_unref","DropdownMenu","$event","_createVNode","DropdownItemGroup","DropdownItemRadio"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.cjs.js","names":["DARK_MODE_QUERY"],"sources":["../src/modeStorage.js","../src/portalHost.js","../src/Theme.vue","../src/ThemeSwitcher.vue"],"sourcesContent":["const VALID_THEME_MODES = [\"auto\", \"light\", \"dark\"];\nconst STORAGE_KEY = \"gospore-theme-mode\";\nconst ONE_YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\nconst DARK_MODE_QUERY = \"(prefers-color-scheme: dark)\";\n\nexport function readStoredMode() {\n if (typeof document === \"undefined\") {\n return null;\n }\n const stored = getCookie(STORAGE_KEY);\n return stored && VALID_THEME_MODES.includes(stored) ? stored : null;\n}\n\nexport function writeStoredMode(mode) {\n if (typeof document === \"undefined\" || !VALID_THEME_MODES.includes(mode)) {\n return;\n }\n const hostname =\n typeof window !== \"undefined\" ? window.location.hostname : \"\";\n const protocol =\n typeof window !== \"undefined\" ? window.location.protocol : \"\";\n const domain = getCookieDomain(hostname);\n const secure = protocol === \"https:\";\n const attributes = [\n \"path=/\",\n `max-age=${ONE_YEAR_IN_SECONDS}`,\n \"SameSite=Lax\",\n ];\n if (domain) {\n attributes.push(`domain=${domain}`);\n }\n if (secure) {\n attributes.push(\"Secure\");\n }\n document.cookie = [\n `${encodeURIComponent(STORAGE_KEY)}=${encodeURIComponent(mode)}`,\n ...attributes,\n ].join(\"; \");\n}\n\nexport function applyStoredModeToDocument(mode) {\n if (typeof document === \"undefined\") {\n return;\n }\n const resolvedMode =\n typeof mode === \"string\" && VALID_THEME_MODES.includes(mode)\n ? mode\n : (readStoredMode() ?? \"auto\");\n console.log(\"Applying theme mode:\", resolvedMode);\n const darkMode = resolveDarkMode(resolvedMode);\n document.documentElement.setAttribute(\"dark-mode\", darkMode);\n}\n\nexport { VALID_THEME_MODES, STORAGE_KEY };\n\nfunction getCookie(name) {\n if (typeof document === \"undefined\" || !document.cookie) {\n return null;\n }\n const encodedName = `${encodeURIComponent(name)}=`;\n const cookies = document.cookie.split(\"; \");\n for (const cookie of cookies) {\n if (cookie.startsWith(encodedName)) {\n return decodeURIComponent(cookie.slice(encodedName.length));\n }\n }\n return null;\n}\n\nfunction getCookieDomain(hostname) {\n if (!hostname || hostname === \"localhost\") {\n return null;\n }\n const isIpAddress = /^\\d+(?:\\.\\d+){3}$/.test(hostname);\n if (isIpAddress) {\n return hostname;\n }\n const parts = hostname.split(\".\");\n if (parts.length <= 1) {\n return null;\n }\n if (parts.length === 2) {\n return hostname;\n }\n return parts.slice(-2).join(\".\");\n}\n\nfunction resolveDarkMode(mode) {\n if (mode === \"dark\") {\n return true;\n }\n if (mode === \"light\") {\n return false;\n }\n if (typeof window === \"undefined\") {\n return false;\n }\n try {\n const mediaQueryList =\n typeof window.matchMedia === \"function\"\n ? window.matchMedia(DARK_MODE_QUERY)\n : null;\n return mediaQueryList ? mediaQueryList.matches : false;\n } catch (error) {\n return false;\n }\n}\n","import { computed, inject } from \"vue\";\n\nexport const themePortalHostKey = Symbol.for(\"gospore.theme.portalHost\");\n\nexport function useThemePortalTarget() {\n const hostRef = inject(themePortalHostKey, null);\n console.log(\"Using theme portal host:\", hostRef);\n const fallbackTarget =\n typeof document !== \"undefined\" ? document.body : \"body\";\n\n return computed(() => hostRef?.value ?? fallbackTarget);\n}\n","<template>\n <div class=\"theme\" :style=\"brandVars\">\n <slot />\n <div ref=\"portalHost\" class=\"theme__portal-host\"></div>\n </div>\n</template>\n\n<script setup>\nimport { provide, ref, watch, onBeforeUnmount, computed } from \"vue\";\nimport { applyStoredModeToDocument, readStoredMode } from \"./modeStorage\";\nimport \"what-input\";\nimport { themePortalHostKey } from \"./portalHost\";\n\ndefineOptions({\n name: \"Theme\",\n});\nconst props = defineProps({\n mode: {\n type: String,\n validator: (value) => [\"auto\", \"light\", \"dark\"].includes(value),\n },\n /**\n * Optional hex accent color (\"#RRGGBB\" or \"#RGB\"). When provided,\n * Theme derives contrast-safe semantic brand tokens and exposes them on\n * the root .theme element (and the global document for portals).\n */\n accentColor: {\n type: String,\n required: false,\n default: undefined,\n },\n /**\n * When true the brand vars are also exposed on <html>, allowing portals\n * attached outside the Theme subtree to inherit the accent colors.\n */\n exposeGlobalAccent: {\n type: Boolean,\n default: false,\n },\n});\n\nconst globalAccentStack = [];\nconst appliedGlobalAccentKeys = new Set();\n\nfunction applyGlobalAccentFromStack() {\n const root = document.documentElement;\n if (!root) {\n return;\n }\n\n appliedGlobalAccentKeys.forEach((key) => {\n root.style.removeProperty(key);\n });\n appliedGlobalAccentKeys.clear();\n\n const activeEntry = [...globalAccentStack]\n .reverse()\n .find(\n (entry) =>\n entry.enabled &&\n entry.vars &&\n Object.keys(entry.vars).length > 0,\n );\n\n if (!activeEntry) {\n return;\n }\n\n Object.entries(activeEntry.vars).forEach(([key, value]) => {\n root.style.setProperty(key, value);\n appliedGlobalAccentKeys.add(key);\n });\n}\n\nconst DARK_MODE_QUERY = \"(prefers-color-scheme: dark)\";\nconst PREFERS_REDUCED_MOTION_QUERY = \"(prefers-reduced-motion: reduce)\";\nconst THEME_TRANSITION_DURATION = 200;\nconst darkModeMedia = window.matchMedia(DARK_MODE_QUERY);\nconst prefersReducedMotionMedia = window.matchMedia(\n PREFERS_REDUCED_MOTION_QUERY,\n);\n\nconst initialMode = getEffectiveMode();\napplyStoredModeToDocument(initialMode);\n\nconst currentMode = ref(initialMode);\n\nconst theme = ref({\n darkMode: resolveDarkMode(initialMode),\n});\nconst portalHost = ref(null);\n\ndarkModeMedia.addEventListener(\"change\", handleSystemPreferenceChange);\n\nwatch(\n () => props.mode,\n () => {\n syncDarkMode();\n },\n { immediate: true },\n);\n\nwatch(\n () => theme.value.darkMode,\n (darkMode, previousValue) => {\n if (previousValue === undefined) {\n setDocumentDarkModeAttribute(darkMode);\n return;\n }\n withThemeTransition(() => {\n setDocumentDarkModeAttribute(darkMode);\n });\n },\n { immediate: true },\n);\n\nonBeforeUnmount(() => {\n darkModeMedia.removeEventListener(\"change\", handleSystemPreferenceChange);\n const index = globalAccentStack.indexOf(accentStackEntry);\n if (index !== -1) {\n globalAccentStack.splice(index, 1);\n }\n applyGlobalAccentFromStack();\n});\n\nfunction syncDarkMode() {\n const mode = getEffectiveMode();\n currentMode.value = mode;\n theme.value.darkMode = resolveDarkMode(mode);\n}\n\nfunction resolveDarkMode(mode) {\n if (mode === \"dark\") {\n return true;\n }\n if (mode === \"light\") {\n return false;\n }\n return darkModeMedia.matches;\n}\n\nfunction handleSystemPreferenceChange(event) {\n if (!event || currentMode.value !== \"auto\") {\n return;\n }\n theme.value.darkMode = event.matches;\n}\n\nfunction setDocumentDarkModeAttribute(darkMode) {\n document.documentElement.setAttribute(\"dark-mode\", darkMode);\n}\n\nfunction withThemeTransition(applyTheme) {\n if (prefersReducedMotionMedia.matches) {\n applyTheme();\n return;\n }\n const startViewTransition = document.startViewTransition?.bind(document);\n if (startViewTransition) {\n startViewTransition(() => {\n applyTheme();\n });\n return;\n }\n applyTheme();\n const element = document.documentElement;\n if (typeof element.animate !== \"function\") {\n return;\n }\n window.requestAnimationFrame(() => {\n element.animate([{ opacity: 0.85 }, { opacity: 1 }], {\n duration: THEME_TRANSITION_DURATION,\n easing: \"ease-in-out\",\n });\n });\n}\n\nfunction getEffectiveMode() {\n return props.mode ?? readStoredMode() ?? \"auto\";\n}\n\nprovide(\"theme\", theme);\nprovide(themePortalHostKey, portalHost);\n\n// --- Accent helpers -------------------------------------------------------\nconst BRAND_MIN_CONTRAST = 3.8;\n\nfunction normalizeHex(hex) {\n if (!hex) return null;\n const h = hex.trim().toLowerCase();\n const m = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.exec(h);\n if (!m) return null;\n if (h.length === 4) {\n // expand #rgb -> #rrggbb\n const r = h[1],\n g = h[2],\n b = h[3];\n return `#${r}${r}${g}${g}${b}${b}`;\n }\n return h;\n}\n\nfunction hexToRgb(hex) {\n const h = normalizeHex(hex);\n if (!h) return null;\n const r = parseInt(h.slice(1, 3), 16);\n const g = parseInt(h.slice(3, 5), 16);\n const b = parseInt(h.slice(5, 7), 16);\n return { r, g, b };\n}\n\nfunction rgbToHex({ r, g, b }) {\n const toHex = (value) => value.toString(16).padStart(2, \"0\");\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nfunction clamp01(value) {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction srgbChannelToLinear(channel) {\n if (channel <= 0.04045) {\n return channel / 12.92;\n }\n return Math.pow((channel + 0.055) / 1.055, 2.4);\n}\n\nfunction linearChannelToSrgb(channel) {\n const normalized = clamp01(channel);\n if (normalized <= 0.0031308) {\n return 12.92 * normalized;\n }\n return 1.055 * Math.pow(normalized, 1 / 2.4) - 0.055;\n}\n\nfunction rgbToOklch({ r, g, b }) {\n const rNorm = r / 255;\n const gNorm = g / 255;\n const bNorm = b / 255;\n\n const rLin = srgbChannelToLinear(rNorm);\n const gLin = srgbChannelToLinear(gNorm);\n const bLin = srgbChannelToLinear(bNorm);\n\n const l = 0.4122214708 * rLin + 0.5363325363 * gLin + 0.0514459929 * bLin;\n const m = 0.2119034982 * rLin + 0.6806995451 * gLin + 0.1073969566 * bLin;\n const s = 0.0883024619 * rLin + 0.2817188376 * gLin + 0.6299787005 * bLin;\n\n const lRoot = Math.cbrt(l);\n const mRoot = Math.cbrt(m);\n const sRoot = Math.cbrt(s);\n\n const oklabL =\n 0.2104542553 * lRoot + 0.793617785 * mRoot - 0.0040720468 * sRoot;\n const oklabA =\n 1.9779984951 * lRoot - 2.428592205 * mRoot + 0.4505937099 * sRoot;\n const oklabB =\n 0.0259040371 * lRoot + 0.7827717662 * mRoot - 0.808675766 * sRoot;\n\n const chroma = Math.sqrt(oklabA * oklabA + oklabB * oklabB);\n let hue = Math.atan2(oklabB, oklabA) * (180 / Math.PI);\n if (hue < 0) {\n hue += 360;\n }\n\n return { l: oklabL, c: chroma, h: hue };\n}\n\nfunction tryOklchToSrgb(l, c, h, clampLinear = false) {\n const angle = (h * Math.PI) / 180;\n const a = c * Math.cos(angle);\n const b = c * Math.sin(angle);\n\n const lComponent = l + 0.3963377774 * a + 0.2158037573 * b;\n const mComponent = l - 0.1055613458 * a - 0.0638541728 * b;\n const sComponent = l - 0.0894841775 * a - 1.291485548 * b;\n\n const lCube = clampLinear ? clamp01(lComponent) : lComponent;\n const mCube = clampLinear ? clamp01(mComponent) : mComponent;\n const sCube = clampLinear ? clamp01(sComponent) : sComponent;\n\n if (!clampLinear) {\n const outOfRange =\n lCube < -0.0001 ||\n lCube > 1.0001 ||\n mCube < -0.0001 ||\n mCube > 1.0001 ||\n sCube < -0.0001 ||\n sCube > 1.0001;\n if (outOfRange) {\n return null;\n }\n }\n\n const lLin = lCube * lCube * lCube;\n const mLin = mCube * mCube * mCube;\n const sLin = sCube * sCube * sCube;\n\n let rLin = 4.0767416621 * lLin - 3.3077115913 * mLin + 0.2309699292 * sLin;\n let gLin = -1.2684380046 * lLin + 2.6097574011 * mLin - 0.3413193965 * sLin;\n let bLin = -0.0041960863 * lLin - 0.7034186147 * mLin + 1.707614701 * sLin;\n\n if (clampLinear) {\n rLin = clamp01(rLin);\n gLin = clamp01(gLin);\n bLin = clamp01(bLin);\n } else {\n const outOfRange =\n rLin < -0.0001 ||\n rLin > 1.0001 ||\n gLin < -0.0001 ||\n gLin > 1.0001 ||\n bLin < -0.0001 ||\n bLin > 1.0001;\n if (outOfRange) {\n return null;\n }\n }\n\n const r = clamp01(linearChannelToSrgb(rLin));\n const g = clamp01(linearChannelToSrgb(gLin));\n const bValue = clamp01(linearChannelToSrgb(bLin));\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(bValue * 255),\n };\n}\n\nfunction oklchToSrgb(l, c, h) {\n let chroma = c;\n for (let attempt = 0; attempt < 8; attempt += 1) {\n const rgb = tryOklchToSrgb(l, chroma, h);\n if (rgb) {\n return rgb;\n }\n chroma *= 0.9;\n }\n return tryOklchToSrgb(l, clamp01(chroma), h, true) || { r: 0, g: 0, b: 0 };\n}\n\nfunction relativeLuminance(hex) {\n const rgb = hexToRgb(hex);\n if (!rgb) {\n return 0;\n }\n const r = srgbChannelToLinear(rgb.r / 255);\n const g = srgbChannelToLinear(rgb.g / 255);\n const b = srgbChannelToLinear(rgb.b / 255);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n\nfunction contrastRatio(hexA, hexB) {\n const lumA = relativeLuminance(hexA);\n const lumB = relativeLuminance(hexB);\n const lighter = Math.max(lumA, lumB);\n const darker = Math.min(lumA, lumB);\n return (lighter + 0.05) / (darker + 0.05);\n}\n\nfunction makeReadableTextOnSurface(baseOklch, surfaceHex, options = {}) {\n const minContrast = options.minContrast ?? BRAND_MIN_CONTRAST;\n const preferDark = options.preferDark !== false;\n const textChroma = Math.max(\n 0.01,\n Math.min(0.06, (baseOklch.c || 0.12) * (options.chromaScale ?? 0.25)),\n );\n const initialLightness =\n options.initialLightness ?? (preferDark ? 0.24 : 0.94);\n const direction = preferDark ? -1 : 1;\n const step = options.step ?? 0.03;\n let lightness = clamp01(initialLightness);\n let bestHex = rgbToHex(oklchToSrgb(lightness, textChroma, baseOklch.h));\n let bestContrast = contrastRatio(surfaceHex, bestHex);\n\n for (let attempt = 0; attempt < 48; attempt += 1) {\n const textHex = rgbToHex(\n oklchToSrgb(lightness, textChroma, baseOklch.h),\n );\n const ratio = contrastRatio(surfaceHex, textHex);\n\n if (ratio > bestContrast) {\n bestContrast = ratio;\n bestHex = textHex;\n }\n if (ratio >= minContrast) {\n return textHex;\n }\n\n lightness = clamp01(lightness + direction * step);\n if (lightness === 0 || lightness === 1) {\n break;\n }\n }\n\n const fallbackDark = \"#101214\";\n const fallbackLight = \"#ffffff\";\n const darkRatio = contrastRatio(surfaceHex, fallbackDark);\n const lightRatio = contrastRatio(surfaceHex, fallbackLight);\n\n if (darkRatio >= minContrast || lightRatio >= minContrast) {\n return darkRatio >= lightRatio ? fallbackDark : fallbackLight;\n }\n\n return bestHex;\n}\n\nfunction pickForegroundColor(baseOklch, surfaceHex, options = {}) {\n const minContrast = options.minContrast ?? BRAND_MIN_CONTRAST;\n const darkCandidate = options.darkCandidate ?? \"#101214\";\n const lightCandidate = options.lightCandidate ?? \"#ffffff\";\n const preferredCandidate = options.preferredCandidate;\n const preferredMinContrast = options.preferredMinContrast ?? minContrast;\n const preferredSwitchDelta = options.preferredSwitchDelta ?? 0;\n const darkRatio = contrastRatio(surfaceHex, darkCandidate);\n const lightRatio = contrastRatio(surfaceHex, lightCandidate);\n const darkPasses = darkRatio >= minContrast;\n const lightPasses = lightRatio >= minContrast;\n const preferredLightPasses = lightRatio >= preferredMinContrast;\n const preferredDarkPasses = darkRatio >= preferredMinContrast;\n\n if (darkPasses || lightPasses) {\n if (preferredCandidate === \"light\" && preferredLightPasses) {\n return lightCandidate;\n }\n if (preferredCandidate === \"dark\" && preferredDarkPasses) {\n return darkCandidate;\n }\n\n if (preferredCandidate === \"light\" && lightPasses) {\n if (!darkPasses || darkRatio - lightRatio <= preferredSwitchDelta) {\n return lightCandidate;\n }\n return darkCandidate;\n }\n if (preferredCandidate === \"dark\" && darkPasses) {\n if (\n !lightPasses ||\n lightRatio - darkRatio <= preferredSwitchDelta\n ) {\n return darkCandidate;\n }\n return lightCandidate;\n }\n\n if (darkPasses && lightPasses) {\n return darkRatio >= lightRatio ? darkCandidate : lightCandidate;\n }\n return darkPasses ? darkCandidate : lightCandidate;\n }\n\n const preferDark = darkRatio >= lightRatio;\n return makeReadableTextOnSurface(baseOklch, surfaceHex, {\n minContrast,\n preferDark,\n initialLightness: preferDark ? 0.2 : 0.96,\n chromaScale: 0.1,\n });\n}\n\nconst BRAND_STOPS = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000];\nconst BRAND_LIGHTNESS_CURVE = [\n 0.9, 0.84, 0.78, 0.72, 0.67, 0.62, 0.56, 0.5, 0.44, 0.38,\n];\nconst BRAND_CHROMA_MULTIPLIERS = [\n 0.28, 0.4, 0.54, 0.7, 0.86, 1, 1.08, 1.14, 1.2, 1.24,\n];\nconst BRAND_MIN_SURFACE_CONTRAST = 1.8;\nconst BRAND_MIN_SUBTLE_SURFACE_CONTRAST = 1.15;\nconst BRAND_MIN_SOFT_SURFACE_CONTRAST = 1.08;\nconst BRAND_UI_TEXT_MIN_CONTRAST = 2.5;\nconst BRAND_LIGHT_TEXT_SWITCH_DELTA = 3;\nconst LIGHT_CANVAS_HEX = \"#ffffff\";\nconst DARK_CANVAS_HEX = \"#1f2228\";\n\nfunction pickRampStopForContrast(\n ramp,\n stopCandidates,\n referenceHex,\n minContrast,\n) {\n const fallbackStop = stopCandidates[stopCandidates.length - 1];\n for (const stop of stopCandidates) {\n const candidate = ramp[stop];\n if (!candidate) {\n continue;\n }\n if (contrastRatio(candidate, referenceHex) >= minContrast) {\n return stop;\n }\n }\n return fallbackStop;\n}\n\nfunction makeBrandRampFromSeed(baseOklch) {\n const lightnessOffset = baseOklch.l - BRAND_LIGHTNESS_CURVE[5];\n const minSeedChroma = baseOklch.c > 0.02 ? 0.02 : 0;\n\n return BRAND_STOPS.reduce((acc, stop, index) => {\n const lightness = clamp01(\n BRAND_LIGHTNESS_CURVE[index] + lightnessOffset,\n );\n const chroma = Math.min(\n 0.4,\n Math.max(\n minSeedChroma,\n baseOklch.c * BRAND_CHROMA_MULTIPLIERS[index],\n ),\n );\n acc[stop] = rgbToHex(oklchToSrgb(lightness, chroma, baseOklch.h));\n return acc;\n }, {});\n}\n\nfunction makeSemanticBrandTokens(baseOklch, ramp) {\n const lightSoftStops = [100, 200, 300, 400, 500, 600, 700];\n const lightSoftStop = pickRampStopForContrast(\n ramp,\n lightSoftStops,\n LIGHT_CANVAS_HEX,\n BRAND_MIN_SOFT_SURFACE_CONTRAST,\n );\n const lightSoftIndex = lightSoftStops.indexOf(lightSoftStop);\n const lightSoftHoveredStop =\n lightSoftStops[Math.min(lightSoftIndex + 1, lightSoftStops.length - 1)];\n const lightSoftPressedStop =\n lightSoftStops[Math.min(lightSoftIndex + 2, lightSoftStops.length - 1)];\n\n const darkSoftStops = [1000, 900, 800, 700, 600, 500];\n const darkSoftStop = pickRampStopForContrast(\n ramp,\n darkSoftStops,\n DARK_CANVAS_HEX,\n BRAND_MIN_SOFT_SURFACE_CONTRAST,\n );\n const darkSoftIndex = darkSoftStops.indexOf(darkSoftStop);\n const darkSoftHoveredStop =\n darkSoftStops[Math.min(darkSoftIndex + 1, darkSoftStops.length - 1)];\n const darkSoftPressedStop =\n darkSoftStops[Math.min(darkSoftIndex + 2, darkSoftStops.length - 1)];\n\n const lightSubtleStops = [200, 300, 400, 500, 600, 700, 800];\n const lightSubtleStop = pickRampStopForContrast(\n ramp,\n lightSubtleStops,\n LIGHT_CANVAS_HEX,\n BRAND_MIN_SUBTLE_SURFACE_CONTRAST,\n );\n const darkSubtleStops = [900, 800, 700, 600, 500, 400];\n const darkSubtleStop = pickRampStopForContrast(\n ramp,\n darkSubtleStops,\n DARK_CANVAS_HEX,\n BRAND_MIN_SUBTLE_SURFACE_CONTRAST,\n );\n\n const lightStrongStops = [600, 700, 800, 900, 1000];\n const lightStrongStop = pickRampStopForContrast(\n ramp,\n lightStrongStops,\n LIGHT_CANVAS_HEX,\n BRAND_MIN_SURFACE_CONTRAST,\n );\n const lightStrongIndex = lightStrongStops.indexOf(lightStrongStop);\n const lightStrongHoveredStop =\n lightStrongStops[\n Math.min(lightStrongIndex + 1, lightStrongStops.length - 1)\n ];\n const lightStrongPressedStop =\n lightStrongStops[\n Math.min(lightStrongIndex + 2, lightStrongStops.length - 1)\n ];\n\n const darkStrongStops = [400, 300, 200, 100];\n const darkStrongStop = pickRampStopForContrast(\n ramp,\n darkStrongStops,\n DARK_CANVAS_HEX,\n BRAND_MIN_SURFACE_CONTRAST,\n );\n const darkStrongIndex = darkStrongStops.indexOf(darkStrongStop);\n const darkStrongHoveredStop =\n darkStrongStops[\n Math.min(darkStrongIndex + 1, darkStrongStops.length - 1)\n ];\n const darkStrongPressedStop =\n darkStrongStops[\n Math.min(darkStrongIndex + 2, darkStrongStops.length - 1)\n ];\n\n const tokens = {\n \"--color-brand-surface-soft-light\": ramp[lightSoftStop],\n \"--color-brand-surface-soft-hovered-light\": ramp[lightSoftHoveredStop],\n \"--color-brand-surface-soft-pressed-light\": ramp[lightSoftPressedStop],\n \"--color-brand-surface-soft-dark\": ramp[darkSoftStop],\n \"--color-brand-surface-soft-hovered-dark\": ramp[darkSoftHoveredStop],\n \"--color-brand-surface-soft-pressed-dark\": ramp[darkSoftPressedStop],\n \"--color-brand-surface-subtle-light\": ramp[lightSubtleStop],\n \"--color-brand-surface-subtle-dark\": ramp[darkSubtleStop],\n \"--color-brand-surface-strong-light\": ramp[lightStrongStop],\n \"--color-brand-surface-strong-hovered-light\":\n ramp[lightStrongHoveredStop],\n \"--color-brand-surface-strong-pressed-light\":\n ramp[lightStrongPressedStop],\n \"--color-brand-surface-strong-dark\": ramp[darkStrongStop],\n \"--color-brand-surface-strong-hovered-dark\":\n ramp[darkStrongHoveredStop],\n \"--color-brand-surface-strong-pressed-dark\":\n ramp[darkStrongPressedStop],\n };\n\n const preferredSoftLightForeground = ramp[600];\n const softLightContrast = contrastRatio(\n tokens[\"--color-brand-surface-soft-light\"],\n preferredSoftLightForeground,\n );\n tokens[\"--color-brand-on-soft-light\"] =\n softLightContrast >= BRAND_MIN_CONTRAST\n ? preferredSoftLightForeground\n : pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-soft-light\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n tokens[\"--color-brand-on-soft-dark\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-soft-dark\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n tokens[\"--color-brand-on-subtle-light\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-subtle-light\"],\n {\n minContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredCandidate: \"light\",\n preferredMinContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredSwitchDelta: BRAND_LIGHT_TEXT_SWITCH_DELTA,\n },\n );\n tokens[\"--color-brand-on-subtle-dark\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-subtle-dark\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n tokens[\"--color-brand-on-strong-light\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-strong-light\"],\n {\n minContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredCandidate: \"light\",\n preferredMinContrast: BRAND_UI_TEXT_MIN_CONTRAST,\n preferredSwitchDelta: BRAND_LIGHT_TEXT_SWITCH_DELTA,\n },\n );\n tokens[\"--color-brand-on-strong-dark\"] = pickForegroundColor(\n baseOklch,\n tokens[\"--color-brand-surface-strong-dark\"],\n {\n minContrast: BRAND_MIN_CONTRAST,\n },\n );\n\n tokens[\"--color-brand-text-light\"] =\n tokens[\"--color-brand-surface-strong-light\"];\n tokens[\"--color-brand-text-dark\"] =\n tokens[\"--color-brand-surface-strong-dark\"];\n tokens[\"--color-brand-icon-light\"] =\n tokens[\"--color-brand-surface-strong-light\"];\n tokens[\"--color-brand-icon-dark\"] =\n tokens[\"--color-brand-surface-strong-dark\"];\n tokens[\"--color-brand-border-light\"] =\n tokens[\"--color-brand-surface-strong-light\"];\n tokens[\"--color-brand-border-dark\"] =\n tokens[\"--color-brand-surface-strong-dark\"];\n\n return tokens;\n}\n\nfunction makeBrandTokens(baseHex) {\n const norm = normalizeHex(baseHex);\n if (!norm) {\n return null;\n }\n\n const baseRgb = hexToRgb(norm);\n if (!baseRgb) {\n return null;\n }\n\n const baseOklch = rgbToOklch(baseRgb);\n const ramp = makeBrandRampFromSeed(baseOklch);\n // Keep the incoming seed exact for debugging and transparency.\n ramp[600] = norm;\n\n return {\n \"--color-brand-seed\": norm,\n \"--color-brand-100\": ramp[100],\n \"--color-brand-200\": ramp[200],\n \"--color-brand-300\": ramp[300],\n \"--color-brand-400\": ramp[400],\n \"--color-brand-500\": ramp[500],\n \"--color-brand-600\": ramp[600],\n \"--color-brand-700\": ramp[700],\n \"--color-brand-800\": ramp[800],\n \"--color-brand-900\": ramp[900],\n \"--color-brand-1000\": ramp[1000],\n ...makeSemanticBrandTokens(baseOklch, ramp),\n };\n}\n\nconst brandVars = computed(() => makeBrandTokens(props.accentColor) ?? {});\n\nconst accentStackEntry = {\n vars: {},\n enabled: Boolean(props.exposeGlobalAccent),\n};\nglobalAccentStack.push(accentStackEntry);\n\nwatch(\n () => props.exposeGlobalAccent,\n (enabled) => {\n accentStackEntry.enabled = Boolean(enabled);\n applyGlobalAccentFromStack();\n },\n { immediate: true },\n);\n\nwatch(\n brandVars,\n (vars) => {\n if (vars && Object.keys(vars).length > 0) {\n accentStackEntry.vars = { ...vars };\n } else {\n accentStackEntry.vars = {};\n }\n applyGlobalAccentFromStack();\n },\n { immediate: true },\n);\n</script>\n\n<style lang=\"less\">\n@import \"index.less\";\n</style>\n","<template>\n <DropdownMenu\n v-model:open=\"open\"\n text=\"Theme\"\n aria-label=\"Select theme mode\"\n >\n <DropdownItemGroup title=\"Theme\">\n <DropdownItemRadio\n v-model:checked=\"internalMode\"\n value=\"auto\"\n :label=\"MODE_LABELS.auto\"\n :aria-label=\"`${MODE_LABELS.auto} mode`\"\n />\n <hr class=\"theme-switcher-divider\" role=\"separator\" />\n <DropdownItemRadio\n v-model:checked=\"internalMode\"\n value=\"light\"\n :label=\"MODE_LABELS.light\"\n :aria-label=\"`${MODE_LABELS.light} mode`\"\n />\n <DropdownItemRadio\n v-model:checked=\"internalMode\"\n value=\"dark\"\n :label=\"MODE_LABELS.dark\"\n :aria-label=\"`${MODE_LABELS.dark} mode`\"\n />\n </DropdownItemGroup>\n </DropdownMenu>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from \"vue\";\nimport {\n DropdownMenu,\n DropdownItemGroup,\n DropdownItemRadio,\n} from \"@gospore/dropdown-menu\";\nimport {\n readStoredMode,\n writeStoredMode,\n VALID_THEME_MODES,\n applyStoredModeToDocument,\n} from \"./modeStorage\";\n\nconst MODE_OPTIONS = [\n { value: \"auto\", label: \"System\" },\n { value: \"light\", label: \"Light\" },\n { value: \"dark\", label: \"Dark\" },\n];\nconst MODE_LABELS = MODE_OPTIONS.reduce((map, option) => {\n map[option.value] = option.label;\n return map;\n}, {});\nconst VALID_MODES = VALID_THEME_MODES;\n\nconst props = defineProps({\n mode: {\n type: String,\n default: \"auto\",\n validator: (value) => [\"auto\", \"light\", \"dark\"].includes(value),\n },\n});\nconst emit = defineEmits([\"update:mode\"]);\n\napplyStoredModeToDocument();\n\nconst open = ref(false);\nconst initialMode = readStoredMode() ?? props.mode;\nconst internalMode = ref(\n VALID_MODES.includes(initialMode) ? initialMode : \"auto\",\n);\nconst label = computed(\n () => MODE_LABELS[internalMode.value] ?? MODE_LABELS.auto,\n);\n\nwatch(\n () => props.mode,\n (mode) => {\n if (VALID_MODES.includes(mode) && mode !== internalMode.value) {\n internalMode.value = mode;\n }\n },\n);\n\nwatch(\n internalMode,\n (mode) => {\n if (!VALID_MODES.includes(mode)) {\n internalMode.value = \"auto\";\n return;\n }\n open.value = false;\n emit(\"update:mode\", mode);\n writeStoredMode(mode);\n },\n { immediate: true },\n);\n</script>\n\n<style scoped lang=\"less\">\n.theme-switcher-divider {\n margin: 4px 0;\n}\n</style>\n"],"mappings":"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"}
|
package/dist/theme.css
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
:root{--border-radius-regular: 3px;--border-radius-large: 6px;--border-width: var(--border-width-2);--border-width-1: 1px;--border-width-2: 2px;--border-width-3: 3px}:root{--color-neutral-0: oklch(1 0 250);--color-neutral-100: oklch(.976 0 250);--color-neutral-200: oklch(.95 .002 250);--color-neutral-300: oklch(.9 .004 250);--color-neutral-400: oklch(.8 .006 250);--color-neutral-500: oklch(.68 .008 250);--color-neutral-600: oklch(.58 .01 250);--color-neutral-700: oklch(.5 .012 250);--color-neutral-800: oklch(.4 .012 250);--color-neutral-900: oklch(.3 .01 250);--color-neutral-1000: oklch(.2 .008 250);--color-neutral-1100: oklch(.1 .004 250);--color-neutral-dark-0: oklch(0 .0015 250);--color-neutral-dark-100: oklch(.15 .0045 250);--color-neutral-dark-200: oklch(.18 .005 250);--color-neutral-dark-300: oklch(.25 .006 250);--color-neutral-dark-400: oklch(.33 .008 250);--color-neutral-dark-500: oklch(.42 .009 250);--color-neutral-dark-600: oklch(.52 .01 250);--color-neutral-dark-700: oklch(.63 .01 250);--color-neutral-dark-800: oklch(.74 .009 250);--color-neutral-dark-900: oklch(.83 .007 250);--color-neutral-dark-1000: oklch(.9 .005 250);--color-neutral-dark-1100: oklch(.98 .003 250);--color-neutral-alpha-100: oklch(.6 .012 250 / 3%);--color-neutral-alpha-200: oklch(.6 .012 250 / 8%);--color-neutral-alpha-300: oklch(.6 .012 250 / 14%);--color-neutral-alpha-400: oklch(.6 .012 250 / 29%);--color-neutral-alpha-500: oklch(.6 .012 250 / 55%);--color-neutral-dark-alpha-0: oklch(.0993 .0115 195.47 / 46%);--color-neutral-dark-alpha-100: oklch(.9 .02 250 / 4%);--color-neutral-dark-alpha-200: oklch(.9 .02 250 / 7%);--color-neutral-dark-alpha-300: oklch(.9 .02 250 / 12%);--color-neutral-dark-alpha-400: oklch(.9 .02 250 / 25%);--color-neutral-dark-alpha-500: oklch(.9 .02 250 / 45%);--color-brand-seed: var(--color-blue-600);--color-brand-100: var(--color-blue-100);--color-brand-200: var(--color-blue-200);--color-brand-300: var(--color-blue-300);--color-brand-400: var(--color-blue-400);--color-brand-500: var(--color-blue-500);--color-brand-600: var(--color-blue-600);--color-brand-700: var(--color-blue-700);--color-brand-800: var(--color-blue-800);--color-brand-900: var(--color-blue-900);--color-brand-1000: var(--color-blue-1000);--color-brand-surface-soft-light: var(--color-blue-100);--color-brand-surface-soft-hovered-light: var(--color-blue-200);--color-brand-surface-soft-pressed-light: var(--color-blue-300);--color-brand-surface-soft-dark: var(--color-blue-1000);--color-brand-surface-soft-hovered-dark: var(--color-blue-900);--color-brand-surface-soft-pressed-dark: var(--color-blue-800);--color-brand-surface-subtle-light: var(--color-blue-200);--color-brand-surface-subtle-dark: var(--color-blue-900);--color-brand-surface-strong-light: var(--color-blue-600);--color-brand-surface-strong-hovered-light: var(--color-blue-700);--color-brand-surface-strong-pressed-light: var(--color-blue-800);--color-brand-surface-strong-dark: var(--color-blue-400);--color-brand-surface-strong-hovered-dark: var(--color-blue-300);--color-brand-surface-strong-pressed-dark: var(--color-blue-200);--color-brand-on-soft-light: var(--color-blue-600);--color-brand-on-soft-dark: var(--color-blue-400);--color-brand-on-subtle-light: var(--color-blue-700);--color-brand-on-subtle-dark: var(--color-blue-300);--color-brand-on-strong-light: var(--color-neutral-0);--color-brand-on-strong-dark: var(--color-neutral-dark-100);--color-brand-text-light: var(--color-brand-surface-strong-light);--color-brand-text-dark: var(--color-brand-surface-strong-dark);--color-brand-icon-light: var(--color-brand-surface-strong-light);--color-brand-icon-dark: var(--color-brand-surface-strong-dark);--color-brand-border-light: var(--color-brand-surface-strong-light);--color-brand-border-dark: var(--color-brand-surface-strong-dark);--color-blue-100: oklch(.82 .09 257.4);--color-blue-200: oklch(.78 .11 257.4);--color-blue-300: oklch(.74 .13 257.4);--color-blue-400: oklch(.7 .15 257.4);--color-blue-500: oklch(.66 .17 257.4);--color-blue-600: oklch(.62 .19 257.4);--color-blue-700: oklch(.58 .21 257.4);--color-blue-800: oklch(.54 .22 257.4);--color-blue-900: oklch(.5 .23 257.4);--color-blue-1000: oklch(.46 .24 257.4);--color-green-100: oklch(.82 .07 160.83);--color-green-200: oklch(.79 .082 160.83);--color-green-300: oklch(.76 .094 160.83);--color-green-400: oklch(.73 .106 160.83);--color-green-500: oklch(.7 .118 160.83);--color-green-600: oklch(.66 .13 160.83);--color-green-700: oklch(.62 .142 160.83);--color-green-800: oklch(.58 .148 160.83);--color-green-900: oklch(.54 .154 160.83);--color-green-1000: oklch(.5 .16 160.83);--color-orange-100: oklch(.86 .09 73.79);--color-orange-200: oklch(.82 .105 73.79);--color-orange-300: oklch(.78 .12 73.79);--color-orange-400: oklch(.74 .135 73.79);--color-orange-500: oklch(.7 .15 73.79);--color-orange-600: oklch(.66 .165 73.79);--color-orange-700: oklch(.62 .18 73.79);--color-orange-800: oklch(.58 .19 73.79);--color-orange-900: oklch(.54 .2 73.79);--color-orange-1000: oklch(.5 .21 73.79);--color-red-100: oklch(.8 .1 34.02);--color-red-200: oklch(.76 .118 34.02);--color-red-300: oklch(.72 .136 34.02);--color-red-400: oklch(.68 .154 34.02);--color-red-500: oklch(.64 .172 34.02);--color-red-600: oklch(.6 .19 34.02);--color-red-700: oklch(.56 .208 34.02);--color-red-800: oklch(.52 .218 34.02);--color-red-900: oklch(.48 .228 34.02);--color-red-1000: oklch(.44 .238 34.02);--color-yellow-100: oklch(.94 .08 95.2);--color-yellow-200: oklch(.9 .092 95.2);--color-yellow-300: oklch(.86 .104 95.2);--color-yellow-400: oklch(.82 .116 95.2);--color-yellow-500: oklch(.78 .128 95.2);--color-yellow-600: oklch(.74 .14 95.2);--color-yellow-700: oklch(.7 .152 95.2);--color-yellow-800: oklch(.66 .164 95.2);--color-yellow-900: oklch(.62 .176 95.2);--color-yellow-1000: oklch(.58 .188 95.2);--color-teal-100: oklch(.82 .08 200.6);--color-teal-200: oklch(.78 .094 200.6);--color-teal-300: oklch(.74 .108 200.6);--color-teal-400: oklch(.7 .122 200.6);--color-teal-500: oklch(.66 .136 200.6);--color-teal-600: oklch(.62 .15 200.6);--color-teal-700: oklch(.58 .164 200.6);--color-teal-800: oklch(.54 .178 200.6);--color-teal-900: oklch(.5 .19 200.6);--color-teal-1000: oklch(.46 .202 200.6);--color-purple-100: oklch(.8 .09 308.4);--color-purple-200: oklch(.76 .106 308.4);--color-purple-300: oklch(.72 .122 308.4);--color-purple-400: oklch(.68 .138 308.4);--color-purple-500: oklch(.64 .154 308.4);--color-purple-600: oklch(.6 .17 308.4);--color-purple-700: oklch(.56 .186 308.4);--color-purple-800: oklch(.52 .198 308.4);--color-purple-900: oklch(.48 .21 308.4);--color-purple-1000: oklch(.44 .222 308.4);--color-pink-100: oklch(.84 .1 21.6);--color-pink-200: oklch(.8 .116 21.6);--color-pink-300: oklch(.76 .132 21.6);--color-pink-400: oklch(.72 .148 21.6);--color-pink-500: oklch(.68 .164 21.6);--color-pink-600: oklch(.64 .18 21.6);--color-pink-700: oklch(.6 .196 21.6);--color-pink-800: oklch(.56 .208 21.6);--color-pink-900: oklch(.52 .22 21.6);--color-pink-1000: oklch(.48 .232 21.6);--color-background-surface-light: var(--color-neutral-0);--color-background-surface-dark: var(--color-neutral-dark-100);--color-background-surface-hovered-light: var(--color-neutral-200);--color-background-surface-hovered-dark: var(--color-neutral-dark-200);--color-background-surface-pressed-light: var(--color-neutral-300);--color-background-surface-pressed-dark: var(--color-neutral-dark-300);--color-background-surface-overlay-light: var(--color-neutral-0);--color-background-surface-overlay-dark: var(--color-neutral-dark-200);--color-background-surface-overlay-hovered-light: var(--color-neutral-200);--color-background-surface-overlay-hovered-dark: var( --color-neutral-dark-300 );--color-background-surface-overlay-pressed-light: var(--color-neutral-300);--color-background-surface-overlay-pressed-dark: var( --color-neutral-dark-400 );--color-background-surface-raised-light: var(--color-neutral-0);--color-background-surface-raised-dark: var(--color-neutral-dark-200);--color-background-surface-raised-hovered-light: var(--color-neutral-200);--color-background-surface-raised-hovered-dark: var( --color-neutral-dark-300 );--color-background-surface-raised-pressed-light: var(--color-neutral-300);--color-background-surface-raised-pressed-dark: var( --color-neutral-dark-300 );--color-background-surface-sunken-light: var(--color-neutral-100);--color-background-surface-sunken-dark: var(--color-neutral-dark-0);--color-background-neutral-light: var(--color-neutral-alpha-200);--color-background-neutral-hovered-light: var(--color-neutral-alpha-300);--color-background-neutral-pressed-light: var(--color-neutral-alpha-400);--color-background-neutral-dark: var(--color-neutral-dark-alpha-200);--color-background-neutral-hovered-dark: var( --color-neutral-dark-alpha-300 );--color-background-neutral-pressed-dark: var( --color-neutral-dark-alpha-400 );--color-background-neutral-subtle-light: transparent;--color-background-neutral-subtle-hovered-light: var( --color-neutral-alpha-200 );--color-background-neutral-subtle-pressed-light: var( --color-neutral-alpha-300 );--color-background-neutral-subtle-dark: transparent;--color-background-neutral-subtle-hovered-dark: var( --color-neutral-dark-alpha-200 );--color-background-neutral-subtle-pressed-dark: var( --color-neutral-dark-alpha-300 );--color-background-neutral-bold-light: var(--color-neutral-800);--color-background-neutral-bold-hovered-light: var(--color-neutral-900);--color-background-neutral-bold-pressed-light: var(--color-neutral-1100);--color-background-neutral-bold-dark: var(--color-neutral-dark-800);--color-background-neutral-bold-hovered-dark: var(--color-neutral-dark-900);--color-background-neutral-bold-pressed-dark: var( --color-neutral-dark-1100 );--color-background-brand-100-light: var(--color-brand-surface-soft-light);--color-background-brand-100-hovered-light: var( --color-brand-surface-soft-hovered-light );--color-background-brand-100-pressed-light: var( --color-brand-surface-soft-pressed-light );--color-background-brand-100-dark: var(--color-brand-surface-soft-dark);--color-background-brand-100-hovered-dark: var( --color-brand-surface-soft-hovered-dark );--color-background-brand-100-pressed-dark: var( --color-brand-surface-soft-pressed-dark );--color-background-brand-200-light: var(--color-brand-surface-strong-light);--color-background-brand-200-hovered-light: var( --color-brand-surface-strong-hovered-light );--color-background-brand-200-pressed-light: var( --color-brand-surface-strong-pressed-light );--color-background-brand-200-dark: var(--color-brand-surface-strong-dark);--color-background-brand-200-hovered-dark: var( --color-brand-surface-strong-hovered-dark );--color-background-brand-200-pressed-dark: var( --color-brand-surface-strong-pressed-dark );--color-background-brand-300-light: var(--color-brand-on-soft-light);--color-background-brand-300-hovered-light: var(--color-brand-border-light);--color-background-brand-300-pressed-light: var( --color-brand-surface-strong-light );--color-background-brand-300-dark: var(--color-brand-on-soft-dark);--color-background-brand-300-hovered-dark: var(--color-brand-border-dark);--color-background-brand-300-pressed-dark: var( --color-brand-surface-strong-dark );--color-background-information-100-light: var(--color-blue-100);--color-background-information-100-hovered-light: var(--color-blue-200);--color-background-information-100-pressed-light: var(--color-blue-300);--color-background-information-100-dark: var(--color-blue-1000);--color-background-information-100-hovered-dark: var(--color-blue-900);--color-background-information-100-pressed-dark: var(--color-blue-800);--color-background-information-200-light: var(--color-blue-700);--color-background-information-200-hovered-light: var(--color-blue-800);--color-background-information-200-pressed-light: var(--color-blue-900);--color-background-information-200-dark: var(--color-blue-400);--color-background-information-200-hovered-dark: var(--color-blue-300);--color-background-information-200-pressed-dark: var(--color-blue-200);--color-background-success-100-light: var(--color-green-100);--color-background-success-100-hovered-light: var(--color-green-200);--color-background-success-100-pressed-light: var(--color-green-300);--color-background-success-100-dark: var(--color-green-1000);--color-background-success-100-hovered-dark: var(--color-green-900);--color-background-success-100-pressed-dark: var(--color-green-800);--color-background-success-200-light: var(--color-green-700);--color-background-success-200-hovered-light: var(--color-green-800);--color-background-success-200-pressed-light: var(--color-green-900);--color-background-success-200-dark: var(--color-green-400);--color-background-success-200-hovered-dark: var(--color-green-300);--color-background-success-200-pressed-dark: var(--color-green-200);--color-background-warning-100-light: var(--color-yellow-100);--color-background-warning-100-hovered-light: var(--color-yellow-200);--color-background-warning-100-pressed-light: var(--color-yellow-300);--color-background-warning-100-dark: var(--color-yellow-1000);--color-background-warning-100-hovered-dark: var(--color-yellow-900);--color-background-warning-100-pressed-dark: var(--color-yellow-800);--color-background-warning-200-light: var(--color-yellow-300);--color-background-warning-200-hovered-light: var(--color-yellow-400);--color-background-warning-200-pressed-light: var(--color-yellow-500);--color-background-warning-200-dark: var(--color-yellow-300);--color-background-warning-200-hovered-dark: var(--color-yellow-400);--color-background-warning-200-pressed-dark: var(--color-yellow-500);--color-background-danger-100-light: var(--color-red-100);--color-background-danger-100-hovered-light: var(--color-red-200);--color-background-danger-100-pressed-light: var(--color-red-300);--color-background-danger-100-dark: var(--color-red-1000);--color-background-danger-100-hovered-dark: var(--color-red-900);--color-background-danger-100-pressed-dark: var(--color-red-800);--color-background-danger-200-light: var(--color-red-700);--color-background-danger-200-hovered-light: var(--color-red-800);--color-background-danger-200-pressed-light: var(--color-red-900);--color-background-danger-200-dark: var(--color-red-400);--color-background-danger-200-hovered-dark: var(--color-red-300);--color-background-danger-200-pressed-dark: var(--color-red-200);--color-background-discovery-100-light: var(--color-purple-100);--color-background-discovery-100-hovered-light: var(--color-purple-200);--color-background-discovery-100-pressed-light: var(--color-purple-300);--color-background-discovery-100-dark: var(--color-purple-1000);--color-background-discovery-100-hovered-dark: var(--color-purple-900);--color-background-discovery-100-pressed-dark: var(--color-purple-800);--color-background-discovery-200-light: var(--color-purple-700);--color-background-discovery-200-hovered-light: var(--color-purple-800);--color-background-discovery-200-pressed-light: var(--color-purple-900);--color-background-discovery-200-dark: var(--color-purple-400);--color-background-discovery-200-hovered-dark: var(--color-purple-300);--color-background-discovery-200-pressed-dark: var(--color-purple-200);--color-background-disabled-light: var(--color-neutral-alpha-100);--color-background-disabled-dark: var(--color-neutral-dark-alpha-100);--color-background-selected-100-light: var(--color-background-brand-100-light);--color-background-selected-100-hovered-light: var( --color-background-brand-100-hovered-light );--color-background-selected-100-pressed-light: var( --color-background-brand-100-pressed-light );--color-background-selected-100-dark: var(--color-background-brand-100-dark);--color-background-selected-100-hovered-dark: var( --color-background-brand-100-hovered-dark );--color-background-selected-100-pressed-dark: var( --color-background-brand-100-pressed-dark );--color-background-selected-200-light: var(--color-background-brand-200-light);--color-background-selected-200-hovered-light: var( --color-background-brand-200-hovered-light );--color-background-selected-200-pressed-light: var( --color-background-brand-200-pressed-light );--color-background-selected-200-dark: var(--color-background-brand-200-dark);--color-background-selected-200-hovered-dark: var( --color-background-brand-200-hovered-dark );--color-background-selected-200-pressed-dark: var( --color-background-brand-200-pressed-dark );--color-background-input-light: var(--color-neutral-0);--color-background-input-hovered-light: var(--color-neutral-100);--color-background-input-pressed-light: var(--color-neutral-0);--color-background-input-dark: var(--color-neutral-dark-200);--color-background-input-hovered-dark: var(--color-neutral-dark-300);--color-background-input-pressed-dark: var(--color-neutral-dark-200);--color-background-accent-gray-100-light: var(--color-neutral-200);--color-background-accent-gray-100-hovered-light: var(--color-neutral-300);--color-background-accent-gray-100-pressed-light: var(--color-neutral-400);--color-background-accent-gray-100-dark: var(--color-neutral-dark-300);--color-background-accent-gray-100-hovered-dark: var( --color-neutral-dark-400 );--color-background-accent-gray-100-pressed-dark: var( --color-neutral-dark-500 );--color-background-accent-gray-200-light: var(--color-neutral-300);--color-background-accent-gray-200-hovered-light: var(--color-neutral-400);--color-background-accent-gray-200-pressed-light: var(--color-neutral-500);--color-background-accent-gray-200-dark: var(--color-neutral-dark-400);--color-background-accent-gray-200-hovered-dark: var( --color-neutral-dark-500 );--color-background-accent-gray-200-pressed-dark: var( --color-neutral-dark-600 );--color-background-accent-gray-300-light: var(--color-neutral-500);--color-background-accent-gray-300-hovered-light: var(--color-neutral-400);--color-background-accent-gray-300-pressed-light: var(--color-neutral-300);--color-background-accent-gray-300-dark: var(--color-neutral-dark-500);--color-background-accent-gray-300-hovered-dark: var( --color-neutral-dark-400 );--color-background-accent-gray-300-pressed-dark: var( --color-neutral-dark-300 );--color-background-accent-gray-400-light: var(--color-neutral-700);--color-background-accent-gray-400-hovered-light: var(--color-neutral-800);--color-background-accent-gray-400-pressed-light: var(--color-neutral-900);--color-background-accent-gray-400-dark: var(--color-neutral-dark-700);--color-background-accent-gray-400-hovered-dark: var( --color-neutral-dark-800 );--color-background-accent-gray-400-pressed-dark: var( --color-neutral-dark-900 );--color-background-accent-blue-100-light: var(--color-blue-100);--color-background-accent-blue-100-hovered-light: var(--color-blue-200);--color-background-accent-blue-100-pressed-light: var(--color-blue-300);--color-background-accent-blue-100-dark: var(--color-blue-1000);--color-background-accent-blue-100-hovered-dark: var(--color-blue-900);--color-background-accent-blue-100-pressed-dark: var(--color-blue-800);--color-background-accent-blue-200-light: var(--color-blue-200);--color-background-accent-blue-200-hovered-light: var(--color-blue-300);--color-background-accent-blue-200-pressed-light: var(--color-blue-400);--color-background-accent-blue-200-dark: var(--color-blue-900);--color-background-accent-blue-200-hovered-dark: var(--color-blue-800);--color-background-accent-blue-200-pressed-dark: var(--color-blue-700);--color-background-accent-blue-300-light: var(--color-blue-400);--color-background-accent-blue-300-hovered-light: var(--color-blue-300);--color-background-accent-blue-300-pressed-light: var(--color-blue-200);--color-background-accent-blue-300-dark: var(--color-blue-800);--color-background-accent-blue-300-hovered-dark: var(--color-blue-900);--color-background-accent-blue-300-pressed-dark: var(--color-blue-1000);--color-background-accent-blue-400-light: var(--color-blue-700);--color-background-accent-blue-400-hovered-light: var(--color-blue-800);--color-background-accent-blue-400-pressed-light: var(--color-blue-900);--color-background-accent-blue-400-dark: var(--color-blue-400);--color-background-accent-blue-400-hovered-dark: var(--color-blue-300);--color-background-accent-blue-400-pressed-dark: var(--color-blue-200);--color-background-accent-green-100-light: var(--color-green-100);--color-background-accent-green-100-hovered-light: var(--color-green-200);--color-background-accent-green-100-pressed-light: var(--color-green-300);--color-background-accent-green-100-dark: var(--color-green-1000);--color-background-accent-green-100-hovered-dark: var(--color-green-900);--color-background-accent-green-100-pressed-dark: var(--color-green-800);--color-background-accent-green-200-light: var(--color-green-200);--color-background-accent-green-200-hovered-light: var(--color-green-300);--color-background-accent-green-200-pressed-light: var(--color-green-400);--color-background-accent-green-200-dark: var(--color-green-900);--color-background-accent-green-200-hovered-dark: var(--color-green-800);--color-background-accent-green-200-pressed-dark: var(--color-green-700);--color-background-accent-green-300-light: var(--color-green-400);--color-background-accent-green-300-hovered-light: var(--color-green-300);--color-background-accent-green-300-pressed-light: var(--color-green-200);--color-background-accent-green-300-dark: var(--color-green-800);--color-background-accent-green-300-hovered-dark: var(--color-green-900);--color-background-accent-green-300-pressed-dark: var(--color-green-1000);--color-background-accent-green-400-light: var(--color-green-700);--color-background-accent-green-400-hovered-light: var(--color-green-800);--color-background-accent-green-400-pressed-light: var(--color-green-900);--color-background-accent-green-400-dark: var(--color-green-400);--color-background-accent-green-400-hovered-dark: var(--color-green-300);--color-background-accent-green-400-pressed-dark: var(--color-green-200);--color-background-accent-orange-100-light: var(--color-orange-100);--color-background-accent-orange-100-hovered-light: var(--color-orange-200);--color-background-accent-orange-100-pressed-light: var(--color-orange-300);--color-background-accent-orange-100-dark: var(--color-orange-1000);--color-background-accent-orange-100-hovered-dark: var(--color-orange-900);--color-background-accent-orange-100-pressed-dark: var(--color-orange-800);--color-background-accent-orange-200-light: var(--color-orange-200);--color-background-accent-orange-200-hovered-light: var(--color-orange-300);--color-background-accent-orange-200-pressed-light: var(--color-orange-400);--color-background-accent-orange-200-dark: var(--color-orange-900);--color-background-accent-orange-200-hovered-dark: var(--color-orange-800);--color-background-accent-orange-200-pressed-dark: var(--color-orange-700);--color-background-accent-orange-300-light: var(--color-orange-400);--color-background-accent-orange-300-hovered-light: var(--color-orange-300);--color-background-accent-orange-300-pressed-light: var(--color-orange-200);--color-background-accent-orange-300-dark: var(--color-orange-800);--color-background-accent-orange-300-hovered-dark: var(--color-orange-900);--color-background-accent-orange-300-pressed-dark: var(--color-orange-1000);--color-background-accent-orange-400-light: var(--color-orange-700);--color-background-accent-orange-400-hovered-light: var(--color-orange-800);--color-background-accent-orange-400-pressed-light: var(--color-orange-900);--color-background-accent-orange-400-dark: var(--color-orange-400);--color-background-accent-orange-400-hovered-dark: var(--color-orange-300);--color-background-accent-orange-400-pressed-dark: var(--color-orange-200);--color-background-accent-red-100-light: var(--color-red-100);--color-background-accent-red-100-hovered-light: var(--color-red-200);--color-background-accent-red-100-pressed-light: var(--color-red-300);--color-background-accent-red-100-dark: var(--color-red-1000);--color-background-accent-red-100-hovered-dark: var(--color-red-900);--color-background-accent-red-100-pressed-dark: var(--color-red-800);--color-background-accent-red-200-light: var(--color-red-200);--color-background-accent-red-200-hovered-light: var(--color-red-300);--color-background-accent-red-200-pressed-light: var(--color-red-400);--color-background-accent-red-200-dark: var(--color-red-900);--color-background-accent-red-200-hovered-dark: var(--color-red-800);--color-background-accent-red-200-pressed-dark: var(--color-red-700);--color-background-accent-red-300-light: var(--color-red-400);--color-background-accent-red-300-hovered-light: var(--color-red-300);--color-background-accent-red-300-pressed-light: var(--color-red-200);--color-background-accent-red-300-dark: var(--color-red-800);--color-background-accent-red-300-hovered-dark: var(--color-red-900);--color-background-accent-red-300-pressed-dark: var(--color-red-1000);--color-background-accent-red-400-light: var(--color-red-700);--color-background-accent-red-400-hovered-light: var(--color-red-800);--color-background-accent-red-400-pressed-light: var(--color-red-900);--color-background-accent-red-400-dark: var(--color-red-400);--color-background-accent-red-400-hovered-dark: var(--color-red-300);--color-background-accent-red-400-pressed-dark: var(--color-red-200);--color-background-accent-yellow-100-light: var(--color-yellow-100);--color-background-accent-yellow-100-hovered-light: var(--color-yellow-200);--color-background-accent-yellow-100-pressed-light: var(--color-yellow-300);--color-background-accent-yellow-100-dark: var(--color-yellow-1000);--color-background-accent-yellow-100-hovered-dark: var(--color-yellow-900);--color-background-accent-yellow-100-pressed-dark: var(--color-yellow-800);--color-background-accent-yellow-200-light: var(--color-yellow-200);--color-background-accent-yellow-200-hovered-light: var(--color-yellow-300);--color-background-accent-yellow-200-pressed-light: var(--color-yellow-400);--color-background-accent-yellow-200-dark: var(--color-yellow-900);--color-background-accent-yellow-200-hovered-dark: var(--color-yellow-800);--color-background-accent-yellow-200-pressed-dark: var(--color-yellow-700);--color-background-accent-yellow-300-light: var(--color-yellow-300);--color-background-accent-yellow-300-hovered-light: var(--color-yellow-400);--color-background-accent-yellow-300-pressed-light: var(--color-yellow-500);--color-background-accent-yellow-300-dark: var(--color-yellow-800);--color-background-accent-yellow-300-hovered-dark: var(--color-yellow-900);--color-background-accent-yellow-300-pressed-dark: var(--color-yellow-1000);--color-background-accent-yellow-400-light: var(--color-yellow-700);--color-background-accent-yellow-400-hovered-light: var(--color-yellow-800);--color-background-accent-yellow-400-pressed-light: var(--color-yellow-900);--color-background-accent-yellow-400-dark: var(--color-yellow-400);--color-background-accent-yellow-400-hovered-dark: var(--color-yellow-300);--color-background-accent-yellow-400-pressed-dark: var(--color-yellow-200);--color-background-accent-teal-100-light: var(--color-teal-100);--color-background-accent-teal-100-hovered-light: var(--color-teal-200);--color-background-accent-teal-100-pressed-light: var(--color-teal-300);--color-background-accent-teal-100-dark: var(--color-teal-1000);--color-background-accent-teal-100-hovered-dark: var(--color-teal-900);--color-background-accent-teal-100-pressed-dark: var(--color-teal-800);--color-background-accent-teal-200-light: var(--color-teal-200);--color-background-accent-teal-200-hovered-light: var(--color-teal-300);--color-background-accent-teal-200-pressed-light: var(--color-teal-400);--color-background-accent-teal-200-dark: var(--color-teal-900);--color-background-accent-teal-200-hovered-dark: var(--color-teal-800);--color-background-accent-teal-200-pressed-dark: var(--color-teal-700);--color-background-accent-teal-300-light: var(--color-teal-400);--color-background-accent-teal-300-hovered-light: var(--color-teal-300);--color-background-accent-teal-300-pressed-light: var(--color-teal-200);--color-background-accent-teal-300-dark: var(--color-teal-800);--color-background-accent-teal-300-hovered-dark: var(--color-teal-900);--color-background-accent-teal-300-pressed-dark: var(--color-teal-1000);--color-background-accent-teal-400-light: var(--color-teal-700);--color-background-accent-teal-400-hovered-light: var(--color-teal-800);--color-background-accent-teal-400-pressed-light: var(--color-teal-900);--color-background-accent-teal-400-dark: var(--color-teal-400);--color-background-accent-teal-400-hovered-dark: var(--color-teal-300);--color-background-accent-teal-400-pressed-dark: var(--color-teal-200);--color-background-accent-purple-100-light: var(--color-purple-100);--color-background-accent-purple-100-hovered-light: var(--color-purple-200);--color-background-accent-purple-100-pressed-light: var(--color-purple-300);--color-background-accent-purple-100-dark: var(--color-purple-1000);--color-background-accent-purple-100-hovered-dark: var(--color-purple-900);--color-background-accent-purple-100-pressed-dark: var(--color-purple-800);--color-background-accent-purple-200-light: var(--color-purple-200);--color-background-accent-purple-200-hovered-light: var(--color-purple-300);--color-background-accent-purple-200-pressed-light: var(--color-purple-400);--color-background-accent-purple-200-dark: var(--color-purple-900);--color-background-accent-purple-200-hovered-dark: var(--color-purple-800);--color-background-accent-purple-200-pressed-dark: var(--color-purple-700);--color-background-accent-purple-300-light: var(--color-purple-400);--color-background-accent-purple-300-hovered-light: var(--color-purple-300);--color-background-accent-purple-300-pressed-light: var(--color-purple-200);--color-background-accent-purple-300-dark: var(--color-purple-800);--color-background-accent-purple-300-hovered-dark: var(--color-purple-900);--color-background-accent-purple-300-pressed-dark: var(--color-purple-1000);--color-background-accent-purple-400-light: var(--color-purple-700);--color-background-accent-purple-400-hovered-light: var(--color-purple-800);--color-background-accent-purple-400-pressed-light: var(--color-purple-900);--color-background-accent-purple-400-dark: var(--color-purple-400);--color-background-accent-purple-400-hovered-dark: var(--color-purple-300);--color-background-accent-purple-400-pressed-dark: var(--color-purple-200);--color-background-accent-pink-100-light: var(--color-pink-100);--color-background-accent-pink-100-hovered-light: var(--color-pink-200);--color-background-accent-pink-100-pressed-light: var(--color-pink-300);--color-background-accent-pink-100-dark: var(--color-pink-1000);--color-background-accent-pink-100-hovered-dark: var(--color-pink-900);--color-background-accent-pink-100-pressed-dark: var(--color-pink-800);--color-background-accent-pink-200-light: var(--color-pink-200);--color-background-accent-pink-200-hovered-light: var(--color-pink-300);--color-background-accent-pink-200-pressed-light: var(--color-pink-400);--color-background-accent-pink-200-dark: var(--color-pink-900);--color-background-accent-pink-200-hovered-dark: var(--color-pink-800);--color-background-accent-pink-200-pressed-dark: var(--color-pink-700);--color-background-accent-pink-300-light: var(--color-pink-400);--color-background-accent-pink-300-hovered-light: var(--color-pink-300);--color-background-accent-pink-300-pressed-light: var(--color-pink-200);--color-background-accent-pink-300-dark: var(--color-pink-800);--color-background-accent-pink-300-hovered-dark: var(--color-pink-900);--color-background-accent-pink-300-pressed-dark: var(--color-pink-1000);--color-background-accent-pink-400-light: var(--color-pink-700);--color-background-accent-pink-400-hovered-light: var(--color-pink-800);--color-background-accent-pink-400-pressed-light: var(--color-pink-900);--color-background-accent-pink-400-dark: var(--color-pink-400);--color-background-accent-pink-400-hovered-dark: var(--color-pink-300);--color-background-accent-pink-400-pressed-dark: var(--color-pink-200);--color-text-light: var(--color-neutral-1000);--color-text-dark: var(--color-neutral-dark-1000);--color-text-subtle-light: var(--color-neutral-600);--color-text-subtle-dark: var(--color-neutral-dark-600);--color-text-subtler-light: var(--color-neutral-500);--color-text-subtler-dark: var(--color-neutral-dark-500);--color-text-brand-light: var(--color-brand-text-light);--color-text-brand-dark: var(--color-brand-text-dark);--color-text-information-light: var(--color-blue-800);--color-text-information-dark: var(--color-blue-300);--color-text-success-light: var(--color-green-800);--color-text-success-dark: var(--color-green-300);--color-text-warning-light: var(--color-yellow-800);--color-text-warning-dark: var(--color-yellow-300);--color-text-danger-light: var(--color-red-800);--color-text-danger-dark: var(--color-red-300);--color-text-discovery-light: var(--color-purple-800);--color-text-discovery-dark: var(--color-purple-300);--color-text-disabled-light: var(--color-neutral-alpha-400);--color-text-disabled-dark: var(--color-neutral-dark-alpha-400);--color-text-selected-light: var(--color-text-brand-light);--color-text-selected-dark: var(--color-text-brand-dark);--color-text-inverse-light: var(--color-neutral-0);--color-text-inverse-dark: var(--color-neutral-dark-100);--color-text-accent-gray-100-light: var(--color-neutral-800);--color-text-accent-gray-100-dark: var(--color-neutral-dark-800);--color-text-accent-gray-200-light: var(--color-neutral-1100);--color-text-accent-gray-200-dark: var(--color-neutral-dark-1100);--color-text-accent-blue-100-light: var(--color-blue-800);--color-text-accent-blue-100-dark: var(--color-blue-300);--color-text-accent-blue-200-light: var(--color-blue-900);--color-text-accent-blue-200-dark: var(--color-blue-200);--color-text-accent-green-100-light: var(--color-green-800);--color-text-accent-green-100-dark: var(--color-green-300);--color-text-accent-green-200-light: var(--color-green-900);--color-text-accent-green-200-dark: var(--color-green-200);--color-text-accent-orange-100-light: var(--color-orange-800);--color-text-accent-orange-100-dark: var(--color-orange-300);--color-text-accent-orange-200-light: var(--color-orange-900);--color-text-accent-orange-200-dark: var(--color-orange-200);--color-text-accent-red-100-light: var(--color-red-800);--color-text-accent-red-100-dark: var(--color-red-300);--color-text-accent-red-200-light: var(--color-red-900);--color-text-accent-red-200-dark: var(--color-red-200);--color-text-accent-yellow-100-light: var(--color-yellow-800);--color-text-accent-yellow-100-dark: var(--color-yellow-300);--color-text-accent-yellow-200-light: var(--color-yellow-900);--color-text-accent-yellow-200-dark: var(--color-yellow-200);--color-text-accent-teal-100-light: var(--color-teal-800);--color-text-accent-teal-100-dark: var(--color-teal-300);--color-text-accent-teal-200-light: var(--color-teal-900);--color-text-accent-teal-200-dark: var(--color-teal-200);--color-text-accent-purple-100-light: var(--color-purple-800);--color-text-accent-purple-100-dark: var(--color-purple-300);--color-text-accent-purple-200-light: var(--color-purple-900);--color-text-accent-purple-200-dark: var(--color-purple-200);--color-text-accent-pink-100-light: var(--color-pink-800);--color-text-accent-pink-100-dark: var(--color-pink-300);--color-text-accent-pink-200-light: var(--color-pink-900);--color-text-accent-pink-200-dark: var(--color-pink-200);--color-text-link-light: var(--color-blue-700);--color-text-link-dark: var(--color-blue-400);--color-text-link-pressed-light: var(--color-blue-800);--color-text-link-pressed-dark: var(--color-blue-300);--color-text-link-visited-light: var(--color-purple-800);--color-text-link-visited-dark: var(--color-purple-300);--color-text-link-visited-pressed-light: var(--color-purple-900);--color-text-link-visited-pressed-dark: var(--color-purple-200);--color-icon-light: var(--color-neutral-800);--color-icon-dark: var(--color-neutral-dark-800);--color-icon-subtle-light: var(--color-neutral-700);--color-icon-subtle-dark: var(--color-neutral-dark-700);--color-icon-subtler-light: var(--color-neutral-700);--color-icon-subtler-dark: var(--color-neutral-dark-700);--color-icon-brand-light: var(--color-brand-icon-light);--color-icon-brand-dark: var(--color-brand-icon-dark);--color-icon-information-light: var(--color-blue-600);--color-icon-information-dark: var(--color-blue-500);--color-icon-success-light: var(--color-green-600);--color-icon-success-dark: var(--color-green-500);--color-icon-warning-light: var(--color-orange-600);--color-icon-warning-dark: var(--color-yellow-300);--color-icon-danger-light: var(--color-red-700);--color-icon-danger-dark: var(--color-red-500);--color-icon-discovery-light: var(--color-purple-600);--color-icon-discovery-dark: var(--color-purple-500);--color-icon-disabled-light: var(--color-neutral-alpha-400);--color-icon-disabled-dark: var(--color-neutral-dark-alpha-400);--color-icon-selected-light: var(--color-icon-brand-light);--color-icon-selected-dark: var(--color-icon-brand-dark);--color-icon-inverse-light: var(--color-neutral-0);--color-icon-inverse-dark: var(--color-neutral-dark-100);--color-icon-accent-gray-light: var(--color-neutral-600);--color-icon-accent-gray-dark: var(--color-neutral-dark-600);--color-icon-accent-blue-light: var(--color-blue-600);--color-icon-accent-blue-dark: var(--color-blue-500);--color-icon-accent-green-light: var(--color-green-600);--color-icon-accent-green-dark: var(--color-green-500);--color-icon-accent-orange-light: var(--color-orange-600);--color-icon-accent-orange-dark: var(--color-orange-500);--color-icon-accent-red-light: var(--color-red-700);--color-icon-accent-red-dark: var(--color-red-600);--color-icon-accent-yellow-light: var(--color-yellow-600);--color-icon-accent-yellow-dark: var(--color-yellow-300);--color-icon-accent-teal-light: var(--color-teal-600);--color-icon-accent-teal-dark: var(--color-teal-500);--color-icon-accent-purple-light: var(--color-purple-600);--color-icon-accent-purple-dark: var(--color-purple-500);--color-icon-accent-pink-light: var(--color-pink-600);--color-icon-accent-pink-dark: var(--color-pink-500);--color-border-100-light: var(--color-neutral-alpha-300);--color-border-100-dark: var(--color-neutral-dark-alpha-300);--color-border-200-light: var(--color-neutral-600);--color-border-200-dark: var(--color-neutral-dark-600);--color-border-brand-light: var(--color-brand-border-light);--color-border-brand-dark: var(--color-brand-border-dark);--color-border-information-light: var(--color-blue-600);--color-border-information-dark: var(--color-blue-500);--color-border-success-light: var(--color-green-600);--color-border-success-dark: var(--color-green-500);--color-border-warning-light: var(--color-orange-600);--color-border-warning-dark: var(--color-yellow-500);--color-border-danger-light: var(--color-red-600);--color-border-danger-dark: var(--color-red-500);--color-border-discovery-light: var(--color-purple-600);--color-border-discovery-dark: var(--color-purple-500);--color-border-disabled-light: var(--color-neutral-alpha-200);--color-border-disabled-dark: var(--color-neutral-dark-alpha-200);--color-border-focused-light: var(--color-blue-500);--color-border-focused-dark: var(--color-blue-300);--color-border-selected-light: var(--color-border-brand-light);--color-border-selected-dark: var(--color-border-brand-dark);--color-border-input-light: var(--color-neutral-300);--color-border-input-dark: var(--color-neutral-dark-400);--color-border-input-disabled-light: var(--color-neutral-alpha-200);--color-border-input-disabled-dark: var(--color-neutral-dark-alpha-200);--color-border-inverse-light: var(--color-neutral-0);--color-border-inverse-dark: var(--color-neutral-dark-0);--color-border-accent-gray-light: var(--color-neutral-600);--color-border-accent-gray-dark: var(--color-neutral-dark-600);--color-border-accent-blue-light: var(--color-blue-600);--color-border-accent-blue-dark: var(--color-blue-500);--color-border-accent-green-light: var(--color-green-600);--color-border-accent-green-dark: var(--color-green-500);--color-border-accent-orange-light: var(--color-orange-600);--color-border-accent-orange-dark: var(--color-orange-500);--color-border-accent-red-light: var(--color-red-600);--color-border-accent-red-dark: var(--color-red-500);--color-border-accent-yellow-light: var(--color-yellow-600);--color-border-accent-yellow-dark: var(--color-yellow-500);--color-border-accent-teal-light: var(--color-teal-600);--color-border-accent-teal-dark: var(--color-teal-500);--color-border-accent-purple-light: var(--color-purple-600);--color-border-accent-purple-dark: var(--color-purple-500);--color-border-accent-pink-light: var(--color-pink-600);--color-border-accent-pink-dark: var(--color-pink-500);--color-overlay-light: var(--color-neutral-alpha-500);--color-overlay-dark: var(--color-neutral-dark-alpha-500);--color-skeleton-100-light: var(--color-neutral-alpha-100);--color-skeleton-100-dark: var(--color-neutral-dark-alpha-100);--color-skeleton-200-light: var(--color-neutral-alpha-200);--color-skeleton-200-dark: var(--color-neutral-dark-alpha-200)}.theme{--color-background-brand-100-light: var(--color-brand-surface-soft-light);--color-background-brand-100-hovered-light: var( --color-brand-surface-soft-hovered-light );--color-background-brand-100-pressed-light: var( --color-brand-surface-soft-pressed-light );--color-background-brand-100-dark: var(--color-brand-surface-soft-dark);--color-background-brand-100-hovered-dark: var( --color-brand-surface-soft-hovered-dark );--color-background-brand-100-pressed-dark: var( --color-brand-surface-soft-pressed-dark );--color-background-brand-200-light: var(--color-brand-surface-strong-light);--color-background-brand-200-hovered-light: var( --color-brand-surface-strong-hovered-light );--color-background-brand-200-pressed-light: var( --color-brand-surface-strong-pressed-light );--color-background-brand-200-dark: var(--color-brand-surface-strong-dark);--color-background-brand-200-hovered-dark: var( --color-brand-surface-strong-hovered-dark );--color-background-brand-200-pressed-dark: var( --color-brand-surface-strong-pressed-dark );--color-background-brand-300-light: var(--color-brand-on-soft-light);--color-background-brand-300-hovered-light: var(--color-brand-border-light);--color-background-brand-300-pressed-light: var( --color-brand-surface-strong-light );--color-background-brand-300-dark: var(--color-brand-on-soft-dark);--color-background-brand-300-hovered-dark: var(--color-brand-border-dark);--color-background-brand-300-pressed-dark: var( --color-brand-surface-strong-dark );--color-background-selected-100-light: var( --color-background-brand-100-light );--color-background-selected-100-hovered-light: var( --color-background-brand-100-hovered-light );--color-background-selected-100-pressed-light: var( --color-background-brand-100-pressed-light );--color-background-selected-100-dark: var(--color-background-brand-100-dark);--color-background-selected-100-hovered-dark: var( --color-background-brand-100-hovered-dark );--color-background-selected-100-pressed-dark: var( --color-background-brand-100-pressed-dark );--color-background-selected-200-light: var( --color-background-brand-200-light );--color-background-selected-200-hovered-light: var( --color-background-brand-200-hovered-light );--color-background-selected-200-pressed-light: var( --color-background-brand-200-pressed-light );--color-background-selected-200-dark: var(--color-background-brand-200-dark);--color-background-selected-200-hovered-dark: var( --color-background-brand-200-hovered-dark );--color-background-selected-200-pressed-dark: var( --color-background-brand-200-pressed-dark );--color-text-brand-light: var(--color-brand-text-light);--color-text-brand-dark: var(--color-brand-text-dark);--color-text-selected-light: var(--color-text-brand-light);--color-text-selected-dark: var(--color-text-brand-dark);--color-icon-brand-light: var(--color-brand-icon-light);--color-icon-brand-dark: var(--color-brand-icon-dark);--color-icon-selected-light: var(--color-icon-brand-light);--color-icon-selected-dark: var(--color-icon-brand-dark);--color-border-brand-light: var(--color-brand-border-light);--color-border-brand-dark: var(--color-brand-border-dark);--color-border-selected-light: var(--color-border-brand-light);--color-border-selected-dark: var(--color-border-brand-dark)}:root{--elevation-raised-light: var(--color-neutral-alpha-400) 0px 1px 1px, var(--color-neutral-alpha-500) 0px 0px 1px;--elevation-raised-dark: var(--color-neutral-dark-alpha-300) 0px 1px 1px, var(--color-neutral-dark-alpha-400) 0px 0px 1px;--elevation-overlay-light: var(--color-neutral-alpha-400) 0px 8px 12px 0px, var(--color-neutral-alpha-500) 0px 0px 1px 0px;--elevation-overlay-dark: var(--color-neutral-dark-alpha-200) 0px 0px 0px 1px, var(--color-neutral-dark-alpha-0) 0px 8px 12px 0px, var(--color-neutral-dark-alpha-100) 0px 0px 1px 1px;--elevation-avatar-light: inset 0 0 10px var(--color-neutral-alpha-100);--elevation-avatar-dark: inset 0 0 10px var(--color-neutral-dark-alpha-100)}:root{--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-code: ui-monospace, SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, monospace;--font-style-normal: normal;--font-style-italic: italic;--font-size-default: var(--font-size-14);--font-size-12: 12px;--font-size-13: 13px;--font-size-14: 14px;--font-size-15: 15px;--font-size-16: 16px;--font-size-18: 18px;--font-size-20: 20px;--font-size-24: 24px;--font-size-28: 28px;--font-size-30: 30px;--font-size-32: 32px;--font-size-36: 36px;--font-size-48: 48px;--font-size-60: 60px;--font-size-72: 72px;--font-weight-thin: 100;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-weight-black: 900}:root{--layer-card: 100;--layer-navigation: 200;--layer-dialog: 300;--layer-overlay: 400;--layer-modal: 500;--layer-flag: 600;--layer-spotlight: 700;--layer-tooltip: 800}:root{--size-0: 0px;--size-2: 2px;--size-4: 4px;--size-6: 6px;--size-8: 8px;--size-12: 12px;--size-16: 16px;--size-20: 20px;--size-24: 24px;--size-32: 32px;--size-40: 40px;--size-48: 48px;--size-64: 64px;--size-80: 80px;--size-96: 96px;--size-128: 128px;--size-192: 192px;--size-256: 256px;--size-384: 384px;--size-512: 512px;--size-640: 640px;--size-768: 768px;--size-896: 896px;--size-1024: 1024px;--size-1152: 1152px;--size-1280: 1280px;--size-1408: 1408px;--size-1536: 1536px;--size-1664: 1664px;--size-1792: 1792px;--size-1920: 1920px}:root{--transition-100ms-ease-out: .1s ease-out;--transition-100ms-ease-in-out: .1s ease-in-out;--transition-200ms-ease-in: .2s ease-in;--transition-200ms-ease-in-out: .2s ease-in-out}html,body,p,div,h1,h2,h3,h4,h5,h6,ul,ol,dl,img,pre,form,fieldset{margin:var(--size-0);padding:var(--size-0)}img,fieldset{border:var(--size-0)}body,html,#app{height:100%;width:100%}body{background-color:var(--color-background-surface-light);color:var(--color-text-light);font-family:var(--font-family);font-size:var(--font-size-14);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:20px}input,select,textarea,button{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:25px}p,ul,ol,dl,h1,h2,h3,h4,h5,h6,blockquote,pre,form,table{margin:calc(var(--grid-size) * 2px) var(--size-0) var(--size-0) var(--size-0)}a{color:var(--color-text-link-light);text-decoration:var(--link-text-decoration-default);border-radius:var(--border-width);cursor:pointer;transition:color var(--transition-100ms-ease-in-out),background-color var(--transition-100ms-ease-in-out)}a:hover{text-decoration:var(--link-text-decoration-hover)}a:active{color:var(--color-text-link-pressed-light)}a:visited{color:var(--color-text-link-visited-light)}a.visited:active{color:var(--color-text-link-visited-pressed-light)}h1{font-size:var(--font-size-28);font-style:var(--font-style-normal);line-height:32px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] h1{color:var(--color-text-dark)}h1:first-child{margin-top:var(--size-0)}h2{font-size:var(--font-size-24);font-style:var(--font-style-normal);line-height:28px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] h2{color:var(--color-text-dark)}h2:first-child{margin-top:var(--size-0)}h3{font-size:var(--font-size-20);font-style:var(--font-style-normal);line-height:24px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3.5px)}[dark-mode=true] h3{color:var(--color-text-dark)}h3:first-child{margin-top:var(--size-0)}h4{font-size:var(--font-size-16);font-style:var(--font-style-normal);line-height:20px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3px)}[dark-mode=true] h4{color:var(--color-text-dark)}h4:first-child{margin-top:var(--size-0)}h5{font-size:var(--font-size-14);font-style:var(--font-style-normal);line-height:20px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2px)}[dark-mode=true] h5{color:var(--color-text-dark)}h5:first-child{margin-top:var(--size-0)}h6{font-size:var(--font-size-12);font-style:var(--font-style-normal);line-height:16px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2.5px)}[dark-mode=true] h6{color:var(--color-text-dark)}h6:first-child{margin-top:var(--size-0)}ul,ol,dl{padding-left:calc(var(--grid-size) * 5px)}dd,dd+dt,li+li{margin-top:calc(var(--grid-size) / 2px)}ul ul:not(:first-child),ol ul:not(:first-child),ul ol:not(:first-child),ol ol:not(:first-child){margin-top:calc(var(--grid-size) / 2px)}p:first-child,ul:first-child,ol:first-child,dl:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,blockquote:first-child,pre:first-child,form:first-child,table:first-child{margin-top:var(--size-0)}:focus{outline:none;box-shadow:var(--size-0) var(--size-0) var(--size-0) var(--focus-outline-width) var(--color-border-focused-light)}[data-whatintent=mouse] :focus{outline:none;box-shadow:none}table{border-collapse:collapse;width:100%}thead,tbody,tfoot{border-bottom:var(--border-width) solid var(--color-border-100-light)}td,th{border:none;padding:calc((var(--grid-size) / 2) * 1px) calc(var(--grid-size) * 1px);text-align:left}th{font-size:var(--font-size-12);font-style:var(--font-style-normal);line-height:16px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2.5px);line-height:inherit}[dark-mode=true] th{color:var(--color-text-dark)}th:first-child{margin-top:var(--size-0)}td:first-child,th:first-child{padding-left:var(--size-0)}td:last-child,th:last-child{padding-right:var(--size-0)}tr{transition:background .1s ease-out,box-shadow .15s cubic-bezier(.47,.03,.49,1.38)}tbody tr:hover{background-color:var(--color-background-surface-hovered-light)}hr{background-color:var(--color-border-100-light);height:2px;border-style:none;margin:var(--size-40) var(--size-0)}pre{font-family:var(--font-family-code);white-space:pre-wrap;padding:var(--size-24) var(--size-32);border-radius:var(--border-radius-regular);background:var(--color-background-surface-sunken-light);font-size:var(--font-size-12);line-height:23px;overflow-x:auto}code{font-family:var(--font-family-code);padding:var(--size-0);font-size:var(--font-size-12)}p code{font-family:var(--font-family-code);padding:var(--size-0) var(--size-8);border-radius:var(--border-radius-regular);background:var(--color-background-surface-sunken-light);font-size:var(--font-size-14)}blockquote{white-space:pre-wrap;border-left:var(--border-width-3) solid var(--color-border-100-light);padding-left:var(--size-8);font-style:var(--font-style-italic)}caption{font-size:var(--font-size-20);font-style:var(--font-style-normal);line-height:24px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3.5px);margin-bottom:var(--size-8);text-align:left}[dark-mode=true] caption{color:var(--color-text-dark)}caption:first-child{margin-top:var(--size-0)}[dark-mode=true] body{background-color:var(--color-background-surface-dark);color:var(--color-text-dark)}[dark-mode=true] a{color:var(--color-text-link-dark)}[dark-mode=true] a:active{color:var(--color-text-link-pressed-dark)}[dark-mode=true] a:visited{color:var(--color-text-link-visited-dark)}[dark-mode=true] a.visited:active{color:var(--color-text-link-visited-pressed-dark)}[dark-mode=true] :focus{outline:none;box-shadow:var(--size-0) var(--size-0) var(--size-0) var(--focus-outline-width) var(--color-border-focused-dark)}[dark-mode=true] thead,[dark-mode=true] tbody,[dark-mode=true] tfoot{border-bottom:var(--border-width) solid var(--color-border-100-dark)}[dark-mode=true] tbody tr:hover{background-color:var(--color-background-surface-hovered-dark)}[dark-mode=true] hr{background-color:var(--color-border-100-dark)}[dark-mode=true] pre,[dark-mode=true] p code{background:var(--color-background-surface-sunken-dark)}[dark-mode=true] blockquote{border-left:var(--border-width-3) solid var(--color-border-100-dark)}[dark-mode=true][data-whatintent=mouse] :focus{outline:none;box-shadow:none}:root{--grid-size: 8;--focus-outline-width: 2px;--link-text-decoration-default: none;--link-text-decoration-hover: underline}.heading-xxlarge{font-size:var(--font-size-32);font-style:var(--font-style-normal);line-height:36px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 6.5px)}[dark-mode=true] .heading-xxlarge{color:var(--color-text-dark)}.heading-xxlarge:first-child{margin-top:var(--size-0)}.heading-xlarge{font-size:var(--font-size-28);font-style:var(--font-style-normal);line-height:32px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] .heading-xlarge{color:var(--color-text-dark)}.heading-xlarge:first-child{margin-top:var(--size-0)}.heading-large{font-size:var(--font-size-24);font-style:var(--font-style-normal);line-height:28px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] .heading-large{color:var(--color-text-dark)}.heading-large:first-child{margin-top:var(--size-0)}.heading-medium{font-size:var(--font-size-20);font-style:var(--font-style-normal);line-height:24px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3.5px)}[dark-mode=true] .heading-medium{color:var(--color-text-dark)}.heading-medium:first-child{margin-top:var(--size-0)}.heading-small{font-size:var(--font-size-16);font-style:var(--font-style-normal);line-height:20px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3px)}[dark-mode=true] .heading-small{color:var(--color-text-dark)}.heading-small:first-child{margin-top:var(--size-0)}.heading-xsmall{font-size:var(--font-size-14);font-style:var(--font-style-normal);line-height:20px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2px)}[dark-mode=true] .heading-xsmall{color:var(--color-text-dark)}.heading-xsmall:first-child{margin-top:var(--size-0)}.heading-xxsmall{font-size:var(--font-size-12);font-style:var(--font-style-normal);line-height:16px;color:var(--color-text-light);font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2.5px)}[dark-mode=true] .heading-xxsmall{color:var(--color-text-dark)}.heading-xxsmall:first-child{margin-top:var(--size-0)}.text{font-size:var(--font-size-14);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:20px}.text-large{font-size:var(--font-size-16);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:24px}.text-small{font-size:var(--font-size-12);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:16px}.text-intro{font-size:20px;font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:32px}.text-caption{font-size:var(--font-size-12);font-weight:var(--font-weight-regular);display:block;line-height:18px;color:var(--color-text-subtle-light)}[dark-mode=true] .text-caption{color:var(--placeholder-color-dark)}.text-caption-bold{font-size:var(--font-size-12);font-weight:var(--font-weight-semibold)}.text-prominent{font-size:var(--font-size-default);font-weight:var(--font-weight-semibold)}.error{color:var(--color-text-danger-light)}[dark-mode=true] .error{color:var(--color-text-danger-dark)}.theme-switcher-divider[data-v-bcbc87cb]{margin:4px 0}
|
|
1
|
+
:root{--border-radius-regular:3px;--border-radius-large:6px;--border-width:var(--border-width-2);--border-width-1:1px;--border-width-2:2px;--border-width-3:3px;--color-neutral-0:oklch(100% 0 250);--color-neutral-100:oklch(97.6% 0 250);--color-neutral-200:oklch(95% .002 250);--color-neutral-300:oklch(90% .004 250);--color-neutral-400:oklch(80% .006 250);--color-neutral-500:oklch(68% .008 250);--color-neutral-600:oklch(58% .01 250);--color-neutral-700:oklch(50% .012 250);--color-neutral-800:oklch(40% .012 250);--color-neutral-900:oklch(30% .01 250);--color-neutral-1000:oklch(20% .008 250);--color-neutral-1100:oklch(10% .004 250);--color-neutral-dark-0:oklch(0% .0015 250);--color-neutral-dark-100:oklch(15% .0045 250);--color-neutral-dark-200:oklch(18% .005 250);--color-neutral-dark-300:oklch(25% .006 250);--color-neutral-dark-400:oklch(33% .008 250);--color-neutral-dark-500:oklch(42% .009 250);--color-neutral-dark-600:oklch(52% .01 250);--color-neutral-dark-700:oklch(63% .01 250);--color-neutral-dark-800:oklch(74% .009 250);--color-neutral-dark-900:oklch(83% .007 250);--color-neutral-dark-1000:oklch(90% .005 250);--color-neutral-dark-1100:oklch(98% .003 250);--color-neutral-alpha-100:oklch(60% .012 250/.03);--color-neutral-alpha-200:oklch(60% .012 250/.08);--color-neutral-alpha-300:oklch(60% .012 250/.14);--color-neutral-alpha-400:oklch(60% .012 250/.29);--color-neutral-alpha-500:oklch(60% .012 250/.55);--color-neutral-dark-alpha-0:oklch(9.93% .0115 195.47/.46);--color-neutral-dark-alpha-100:oklch(90% .02 250/.04);--color-neutral-dark-alpha-200:oklch(90% .02 250/.07);--color-neutral-dark-alpha-300:oklch(90% .02 250/.12);--color-neutral-dark-alpha-400:oklch(90% .02 250/.25);--color-neutral-dark-alpha-500:oklch(90% .02 250/.45);--color-brand-seed:var(--color-blue-600);--color-brand-100:var(--color-blue-100);--color-brand-200:var(--color-blue-200);--color-brand-300:var(--color-blue-300);--color-brand-400:var(--color-blue-400);--color-brand-500:var(--color-blue-500);--color-brand-600:var(--color-blue-600);--color-brand-700:var(--color-blue-700);--color-brand-800:var(--color-blue-800);--color-brand-900:var(--color-blue-900);--color-brand-1000:var(--color-blue-1000);--color-brand-surface-soft-light:var(--color-blue-100);--color-brand-surface-soft-hovered-light:var(--color-blue-200);--color-brand-surface-soft-pressed-light:var(--color-blue-300);--color-brand-surface-soft-dark:var(--color-blue-1000);--color-brand-surface-soft-hovered-dark:var(--color-blue-900);--color-brand-surface-soft-pressed-dark:var(--color-blue-800);--color-brand-surface-subtle-light:var(--color-blue-200);--color-brand-surface-subtle-dark:var(--color-blue-900);--color-brand-surface-strong-light:var(--color-blue-600);--color-brand-surface-strong-hovered-light:var(--color-blue-700);--color-brand-surface-strong-pressed-light:var(--color-blue-800);--color-brand-surface-strong-dark:var(--color-blue-400);--color-brand-surface-strong-hovered-dark:var(--color-blue-300);--color-brand-surface-strong-pressed-dark:var(--color-blue-200);--color-brand-on-soft-light:var(--color-blue-600);--color-brand-on-soft-dark:var(--color-blue-400);--color-brand-on-subtle-light:var(--color-blue-700);--color-brand-on-subtle-dark:var(--color-blue-300);--color-brand-on-strong-light:var(--color-neutral-0);--color-brand-on-strong-dark:var(--color-neutral-dark-100);--color-brand-text-light:var(--color-brand-surface-strong-light);--color-brand-text-dark:var(--color-brand-surface-strong-dark);--color-brand-icon-light:var(--color-brand-surface-strong-light);--color-brand-icon-dark:var(--color-brand-surface-strong-dark);--color-brand-border-light:var(--color-brand-surface-strong-light);--color-brand-border-dark:var(--color-brand-surface-strong-dark);--color-blue-100:oklch(82% .09 257.4);--color-blue-200:oklch(78% .11 257.4);--color-blue-300:oklch(74% .13 257.4);--color-blue-400:oklch(70% .15 257.4);--color-blue-500:oklch(66% .17 257.4);--color-blue-600:oklch(62% .19 257.4);--color-blue-700:oklch(58% .21 257.4);--color-blue-800:oklch(54% .22 257.4);--color-blue-900:oklch(50% .23 257.4);--color-blue-1000:oklch(46% .24 257.4);--color-green-100:oklch(82% .07 160.83);--color-green-200:oklch(79% .082 160.83);--color-green-300:oklch(76% .094 160.83);--color-green-400:oklch(73% .106 160.83);--color-green-500:oklch(70% .118 160.83);--color-green-600:oklch(66% .13 160.83);--color-green-700:oklch(62% .142 160.83);--color-green-800:oklch(58% .148 160.83);--color-green-900:oklch(54% .154 160.83);--color-green-1000:oklch(50% .16 160.83);--color-orange-100:oklch(86% .09 73.79);--color-orange-200:oklch(82% .105 73.79);--color-orange-300:oklch(78% .12 73.79);--color-orange-400:oklch(74% .135 73.79);--color-orange-500:oklch(70% .15 73.79);--color-orange-600:oklch(66% .165 73.79);--color-orange-700:oklch(62% .18 73.79);--color-orange-800:oklch(58% .19 73.79);--color-orange-900:oklch(54% .2 73.79);--color-orange-1000:oklch(50% .21 73.79);--color-red-100:oklch(80% .1 34.02);--color-red-200:oklch(76% .118 34.02);--color-red-300:oklch(72% .136 34.02);--color-red-400:oklch(68% .154 34.02);--color-red-500:oklch(64% .172 34.02);--color-red-600:oklch(60% .19 34.02);--color-red-700:oklch(56% .208 34.02);--color-red-800:oklch(52% .218 34.02);--color-red-900:oklch(48% .228 34.02);--color-red-1000:oklch(44% .238 34.02);--color-yellow-100:oklch(94% .08 95.2);--color-yellow-200:oklch(90% .092 95.2);--color-yellow-300:oklch(86% .104 95.2);--color-yellow-400:oklch(82% .116 95.2);--color-yellow-500:oklch(78% .128 95.2);--color-yellow-600:oklch(74% .14 95.2);--color-yellow-700:oklch(70% .152 95.2);--color-yellow-800:oklch(66% .164 95.2);--color-yellow-900:oklch(62% .176 95.2);--color-yellow-1000:oklch(58% .188 95.2);--color-teal-100:oklch(82% .08 200.6);--color-teal-200:oklch(78% .094 200.6);--color-teal-300:oklch(74% .108 200.6);--color-teal-400:oklch(70% .122 200.6);--color-teal-500:oklch(66% .136 200.6);--color-teal-600:oklch(62% .15 200.6);--color-teal-700:oklch(58% .164 200.6);--color-teal-800:oklch(54% .178 200.6);--color-teal-900:oklch(50% .19 200.6);--color-teal-1000:oklch(46% .202 200.6);--color-purple-100:oklch(80% .09 308.4);--color-purple-200:oklch(76% .106 308.4);--color-purple-300:oklch(72% .122 308.4);--color-purple-400:oklch(68% .138 308.4);--color-purple-500:oklch(64% .154 308.4);--color-purple-600:oklch(60% .17 308.4);--color-purple-700:oklch(56% .186 308.4);--color-purple-800:oklch(52% .198 308.4);--color-purple-900:oklch(48% .21 308.4);--color-purple-1000:oklch(44% .222 308.4);--color-pink-100:oklch(84% .1 21.6);--color-pink-200:oklch(80% .116 21.6);--color-pink-300:oklch(76% .132 21.6);--color-pink-400:oklch(72% .148 21.6);--color-pink-500:oklch(68% .164 21.6);--color-pink-600:oklch(64% .18 21.6);--color-pink-700:oklch(60% .196 21.6);--color-pink-800:oklch(56% .208 21.6);--color-pink-900:oklch(52% .22 21.6);--color-pink-1000:oklch(48% .232 21.6);--color-background-surface-light:var(--color-neutral-0);--color-background-surface-dark:var(--color-neutral-dark-100);--color-background-surface-hovered-light:var(--color-neutral-200);--color-background-surface-hovered-dark:var(--color-neutral-dark-200);--color-background-surface-pressed-light:var(--color-neutral-300);--color-background-surface-pressed-dark:var(--color-neutral-dark-300);--color-background-surface-overlay-light:var(--color-neutral-0);--color-background-surface-overlay-dark:var(--color-neutral-dark-200);--color-background-surface-overlay-hovered-light:var(--color-neutral-200);--color-background-surface-overlay-hovered-dark:var(--color-neutral-dark-300);--color-background-surface-overlay-pressed-light:var(--color-neutral-300);--color-background-surface-overlay-pressed-dark:var(--color-neutral-dark-400);--color-background-surface-raised-light:var(--color-neutral-0);--color-background-surface-raised-dark:var(--color-neutral-dark-200);--color-background-surface-raised-hovered-light:var(--color-neutral-200);--color-background-surface-raised-hovered-dark:var(--color-neutral-dark-300);--color-background-surface-raised-pressed-light:var(--color-neutral-300);--color-background-surface-raised-pressed-dark:var(--color-neutral-dark-300);--color-background-surface-sunken-light:var(--color-neutral-100);--color-background-surface-sunken-dark:var(--color-neutral-dark-0);--color-background-neutral-light:var(--color-neutral-alpha-200);--color-background-neutral-hovered-light:var(--color-neutral-alpha-300);--color-background-neutral-pressed-light:var(--color-neutral-alpha-400);--color-background-neutral-dark:var(--color-neutral-dark-alpha-200);--color-background-neutral-hovered-dark:var(--color-neutral-dark-alpha-300);--color-background-neutral-pressed-dark:var(--color-neutral-dark-alpha-400);--color-background-neutral-subtle-light:transparent;--color-background-neutral-subtle-hovered-light:var(--color-neutral-alpha-200);--color-background-neutral-subtle-pressed-light:var(--color-neutral-alpha-300);--color-background-neutral-subtle-dark:transparent;--color-background-neutral-subtle-hovered-dark:var(--color-neutral-dark-alpha-200);--color-background-neutral-subtle-pressed-dark:var(--color-neutral-dark-alpha-300);--color-background-neutral-bold-light:var(--color-neutral-800);--color-background-neutral-bold-hovered-light:var(--color-neutral-900);--color-background-neutral-bold-pressed-light:var(--color-neutral-1100);--color-background-neutral-bold-dark:var(--color-neutral-dark-800);--color-background-neutral-bold-hovered-dark:var(--color-neutral-dark-900);--color-background-neutral-bold-pressed-dark:var(--color-neutral-dark-1100);--color-background-brand-100-light:var(--color-brand-surface-soft-light);--color-background-brand-100-hovered-light:var(--color-brand-surface-soft-hovered-light);--color-background-brand-100-pressed-light:var(--color-brand-surface-soft-pressed-light);--color-background-brand-100-dark:var(--color-brand-surface-soft-dark);--color-background-brand-100-hovered-dark:var(--color-brand-surface-soft-hovered-dark);--color-background-brand-100-pressed-dark:var(--color-brand-surface-soft-pressed-dark);--color-background-brand-200-light:var(--color-brand-surface-strong-light);--color-background-brand-200-hovered-light:var(--color-brand-surface-strong-hovered-light);--color-background-brand-200-pressed-light:var(--color-brand-surface-strong-pressed-light);--color-background-brand-200-dark:var(--color-brand-surface-strong-dark);--color-background-brand-200-hovered-dark:var(--color-brand-surface-strong-hovered-dark);--color-background-brand-200-pressed-dark:var(--color-brand-surface-strong-pressed-dark);--color-background-brand-300-light:var(--color-brand-on-soft-light);--color-background-brand-300-hovered-light:var(--color-brand-border-light);--color-background-brand-300-pressed-light:var(--color-brand-surface-strong-light);--color-background-brand-300-dark:var(--color-brand-on-soft-dark);--color-background-brand-300-hovered-dark:var(--color-brand-border-dark);--color-background-brand-300-pressed-dark:var(--color-brand-surface-strong-dark);--color-background-information-100-light:var(--color-blue-100);--color-background-information-100-hovered-light:var(--color-blue-200);--color-background-information-100-pressed-light:var(--color-blue-300);--color-background-information-100-dark:var(--color-blue-1000);--color-background-information-100-hovered-dark:var(--color-blue-900);--color-background-information-100-pressed-dark:var(--color-blue-800);--color-background-information-200-light:var(--color-blue-700);--color-background-information-200-hovered-light:var(--color-blue-800);--color-background-information-200-pressed-light:var(--color-blue-900);--color-background-information-200-dark:var(--color-blue-400);--color-background-information-200-hovered-dark:var(--color-blue-300);--color-background-information-200-pressed-dark:var(--color-blue-200);--color-background-success-100-light:var(--color-green-100);--color-background-success-100-hovered-light:var(--color-green-200);--color-background-success-100-pressed-light:var(--color-green-300);--color-background-success-100-dark:var(--color-green-1000);--color-background-success-100-hovered-dark:var(--color-green-900);--color-background-success-100-pressed-dark:var(--color-green-800);--color-background-success-200-light:var(--color-green-700);--color-background-success-200-hovered-light:var(--color-green-800);--color-background-success-200-pressed-light:var(--color-green-900);--color-background-success-200-dark:var(--color-green-400);--color-background-success-200-hovered-dark:var(--color-green-300);--color-background-success-200-pressed-dark:var(--color-green-200);--color-background-warning-100-light:var(--color-yellow-100);--color-background-warning-100-hovered-light:var(--color-yellow-200);--color-background-warning-100-pressed-light:var(--color-yellow-300);--color-background-warning-100-dark:var(--color-yellow-1000);--color-background-warning-100-hovered-dark:var(--color-yellow-900);--color-background-warning-100-pressed-dark:var(--color-yellow-800);--color-background-warning-200-light:var(--color-yellow-300);--color-background-warning-200-hovered-light:var(--color-yellow-400);--color-background-warning-200-pressed-light:var(--color-yellow-500);--color-background-warning-200-dark:var(--color-yellow-300);--color-background-warning-200-hovered-dark:var(--color-yellow-400);--color-background-warning-200-pressed-dark:var(--color-yellow-500);--color-background-danger-100-light:var(--color-red-100);--color-background-danger-100-hovered-light:var(--color-red-200);--color-background-danger-100-pressed-light:var(--color-red-300);--color-background-danger-100-dark:var(--color-red-1000);--color-background-danger-100-hovered-dark:var(--color-red-900);--color-background-danger-100-pressed-dark:var(--color-red-800);--color-background-danger-200-light:var(--color-red-700);--color-background-danger-200-hovered-light:var(--color-red-800);--color-background-danger-200-pressed-light:var(--color-red-900);--color-background-danger-200-dark:var(--color-red-400);--color-background-danger-200-hovered-dark:var(--color-red-300);--color-background-danger-200-pressed-dark:var(--color-red-200);--color-background-discovery-100-light:var(--color-purple-100);--color-background-discovery-100-hovered-light:var(--color-purple-200);--color-background-discovery-100-pressed-light:var(--color-purple-300);--color-background-discovery-100-dark:var(--color-purple-1000);--color-background-discovery-100-hovered-dark:var(--color-purple-900);--color-background-discovery-100-pressed-dark:var(--color-purple-800);--color-background-discovery-200-light:var(--color-purple-700);--color-background-discovery-200-hovered-light:var(--color-purple-800);--color-background-discovery-200-pressed-light:var(--color-purple-900);--color-background-discovery-200-dark:var(--color-purple-400);--color-background-discovery-200-hovered-dark:var(--color-purple-300);--color-background-discovery-200-pressed-dark:var(--color-purple-200);--color-background-disabled-light:var(--color-neutral-alpha-100);--color-background-disabled-dark:var(--color-neutral-dark-alpha-100);--color-background-selected-100-light:var(--color-background-brand-100-light);--color-background-selected-100-hovered-light:var(--color-background-brand-100-hovered-light);--color-background-selected-100-pressed-light:var(--color-background-brand-100-pressed-light);--color-background-selected-100-dark:var(--color-background-brand-100-dark);--color-background-selected-100-hovered-dark:var(--color-background-brand-100-hovered-dark);--color-background-selected-100-pressed-dark:var(--color-background-brand-100-pressed-dark);--color-background-selected-200-light:var(--color-background-brand-200-light);--color-background-selected-200-hovered-light:var(--color-background-brand-200-hovered-light);--color-background-selected-200-pressed-light:var(--color-background-brand-200-pressed-light);--color-background-selected-200-dark:var(--color-background-brand-200-dark);--color-background-selected-200-hovered-dark:var(--color-background-brand-200-hovered-dark);--color-background-selected-200-pressed-dark:var(--color-background-brand-200-pressed-dark);--color-background-input-light:var(--color-neutral-0);--color-background-input-hovered-light:var(--color-neutral-100);--color-background-input-pressed-light:var(--color-neutral-0);--color-background-input-dark:var(--color-neutral-dark-200);--color-background-input-hovered-dark:var(--color-neutral-dark-300);--color-background-input-pressed-dark:var(--color-neutral-dark-200);--color-background-accent-gray-100-light:var(--color-neutral-200);--color-background-accent-gray-100-hovered-light:var(--color-neutral-300);--color-background-accent-gray-100-pressed-light:var(--color-neutral-400);--color-background-accent-gray-100-dark:var(--color-neutral-dark-300);--color-background-accent-gray-100-hovered-dark:var(--color-neutral-dark-400);--color-background-accent-gray-100-pressed-dark:var(--color-neutral-dark-500);--color-background-accent-gray-200-light:var(--color-neutral-300);--color-background-accent-gray-200-hovered-light:var(--color-neutral-400);--color-background-accent-gray-200-pressed-light:var(--color-neutral-500);--color-background-accent-gray-200-dark:var(--color-neutral-dark-400);--color-background-accent-gray-200-hovered-dark:var(--color-neutral-dark-500);--color-background-accent-gray-200-pressed-dark:var(--color-neutral-dark-600);--color-background-accent-gray-300-light:var(--color-neutral-500);--color-background-accent-gray-300-hovered-light:var(--color-neutral-400);--color-background-accent-gray-300-pressed-light:var(--color-neutral-300);--color-background-accent-gray-300-dark:var(--color-neutral-dark-500);--color-background-accent-gray-300-hovered-dark:var(--color-neutral-dark-400);--color-background-accent-gray-300-pressed-dark:var(--color-neutral-dark-300);--color-background-accent-gray-400-light:var(--color-neutral-700);--color-background-accent-gray-400-hovered-light:var(--color-neutral-800);--color-background-accent-gray-400-pressed-light:var(--color-neutral-900);--color-background-accent-gray-400-dark:var(--color-neutral-dark-700);--color-background-accent-gray-400-hovered-dark:var(--color-neutral-dark-800);--color-background-accent-gray-400-pressed-dark:var(--color-neutral-dark-900);--color-background-accent-blue-100-light:var(--color-blue-100);--color-background-accent-blue-100-hovered-light:var(--color-blue-200);--color-background-accent-blue-100-pressed-light:var(--color-blue-300);--color-background-accent-blue-100-dark:var(--color-blue-1000);--color-background-accent-blue-100-hovered-dark:var(--color-blue-900);--color-background-accent-blue-100-pressed-dark:var(--color-blue-800);--color-background-accent-blue-200-light:var(--color-blue-200);--color-background-accent-blue-200-hovered-light:var(--color-blue-300);--color-background-accent-blue-200-pressed-light:var(--color-blue-400);--color-background-accent-blue-200-dark:var(--color-blue-900);--color-background-accent-blue-200-hovered-dark:var(--color-blue-800);--color-background-accent-blue-200-pressed-dark:var(--color-blue-700);--color-background-accent-blue-300-light:var(--color-blue-400);--color-background-accent-blue-300-hovered-light:var(--color-blue-300);--color-background-accent-blue-300-pressed-light:var(--color-blue-200);--color-background-accent-blue-300-dark:var(--color-blue-800);--color-background-accent-blue-300-hovered-dark:var(--color-blue-900);--color-background-accent-blue-300-pressed-dark:var(--color-blue-1000);--color-background-accent-blue-400-light:var(--color-blue-700);--color-background-accent-blue-400-hovered-light:var(--color-blue-800);--color-background-accent-blue-400-pressed-light:var(--color-blue-900);--color-background-accent-blue-400-dark:var(--color-blue-400);--color-background-accent-blue-400-hovered-dark:var(--color-blue-300);--color-background-accent-blue-400-pressed-dark:var(--color-blue-200);--color-background-accent-green-100-light:var(--color-green-100);--color-background-accent-green-100-hovered-light:var(--color-green-200);--color-background-accent-green-100-pressed-light:var(--color-green-300);--color-background-accent-green-100-dark:var(--color-green-1000);--color-background-accent-green-100-hovered-dark:var(--color-green-900);--color-background-accent-green-100-pressed-dark:var(--color-green-800);--color-background-accent-green-200-light:var(--color-green-200);--color-background-accent-green-200-hovered-light:var(--color-green-300);--color-background-accent-green-200-pressed-light:var(--color-green-400);--color-background-accent-green-200-dark:var(--color-green-900);--color-background-accent-green-200-hovered-dark:var(--color-green-800);--color-background-accent-green-200-pressed-dark:var(--color-green-700);--color-background-accent-green-300-light:var(--color-green-400);--color-background-accent-green-300-hovered-light:var(--color-green-300);--color-background-accent-green-300-pressed-light:var(--color-green-200);--color-background-accent-green-300-dark:var(--color-green-800);--color-background-accent-green-300-hovered-dark:var(--color-green-900);--color-background-accent-green-300-pressed-dark:var(--color-green-1000);--color-background-accent-green-400-light:var(--color-green-700);--color-background-accent-green-400-hovered-light:var(--color-green-800);--color-background-accent-green-400-pressed-light:var(--color-green-900);--color-background-accent-green-400-dark:var(--color-green-400);--color-background-accent-green-400-hovered-dark:var(--color-green-300);--color-background-accent-green-400-pressed-dark:var(--color-green-200);--color-background-accent-orange-100-light:var(--color-orange-100);--color-background-accent-orange-100-hovered-light:var(--color-orange-200);--color-background-accent-orange-100-pressed-light:var(--color-orange-300);--color-background-accent-orange-100-dark:var(--color-orange-1000);--color-background-accent-orange-100-hovered-dark:var(--color-orange-900);--color-background-accent-orange-100-pressed-dark:var(--color-orange-800);--color-background-accent-orange-200-light:var(--color-orange-200);--color-background-accent-orange-200-hovered-light:var(--color-orange-300);--color-background-accent-orange-200-pressed-light:var(--color-orange-400);--color-background-accent-orange-200-dark:var(--color-orange-900);--color-background-accent-orange-200-hovered-dark:var(--color-orange-800);--color-background-accent-orange-200-pressed-dark:var(--color-orange-700);--color-background-accent-orange-300-light:var(--color-orange-400);--color-background-accent-orange-300-hovered-light:var(--color-orange-300);--color-background-accent-orange-300-pressed-light:var(--color-orange-200);--color-background-accent-orange-300-dark:var(--color-orange-800);--color-background-accent-orange-300-hovered-dark:var(--color-orange-900);--color-background-accent-orange-300-pressed-dark:var(--color-orange-1000);--color-background-accent-orange-400-light:var(--color-orange-700);--color-background-accent-orange-400-hovered-light:var(--color-orange-800);--color-background-accent-orange-400-pressed-light:var(--color-orange-900);--color-background-accent-orange-400-dark:var(--color-orange-400);--color-background-accent-orange-400-hovered-dark:var(--color-orange-300);--color-background-accent-orange-400-pressed-dark:var(--color-orange-200);--color-background-accent-red-100-light:var(--color-red-100);--color-background-accent-red-100-hovered-light:var(--color-red-200);--color-background-accent-red-100-pressed-light:var(--color-red-300);--color-background-accent-red-100-dark:var(--color-red-1000);--color-background-accent-red-100-hovered-dark:var(--color-red-900);--color-background-accent-red-100-pressed-dark:var(--color-red-800);--color-background-accent-red-200-light:var(--color-red-200);--color-background-accent-red-200-hovered-light:var(--color-red-300);--color-background-accent-red-200-pressed-light:var(--color-red-400);--color-background-accent-red-200-dark:var(--color-red-900);--color-background-accent-red-200-hovered-dark:var(--color-red-800);--color-background-accent-red-200-pressed-dark:var(--color-red-700);--color-background-accent-red-300-light:var(--color-red-400);--color-background-accent-red-300-hovered-light:var(--color-red-300);--color-background-accent-red-300-pressed-light:var(--color-red-200);--color-background-accent-red-300-dark:var(--color-red-800);--color-background-accent-red-300-hovered-dark:var(--color-red-900);--color-background-accent-red-300-pressed-dark:var(--color-red-1000);--color-background-accent-red-400-light:var(--color-red-700);--color-background-accent-red-400-hovered-light:var(--color-red-800);--color-background-accent-red-400-pressed-light:var(--color-red-900);--color-background-accent-red-400-dark:var(--color-red-400);--color-background-accent-red-400-hovered-dark:var(--color-red-300);--color-background-accent-red-400-pressed-dark:var(--color-red-200);--color-background-accent-yellow-100-light:var(--color-yellow-100);--color-background-accent-yellow-100-hovered-light:var(--color-yellow-200);--color-background-accent-yellow-100-pressed-light:var(--color-yellow-300);--color-background-accent-yellow-100-dark:var(--color-yellow-1000);--color-background-accent-yellow-100-hovered-dark:var(--color-yellow-900);--color-background-accent-yellow-100-pressed-dark:var(--color-yellow-800);--color-background-accent-yellow-200-light:var(--color-yellow-200);--color-background-accent-yellow-200-hovered-light:var(--color-yellow-300);--color-background-accent-yellow-200-pressed-light:var(--color-yellow-400);--color-background-accent-yellow-200-dark:var(--color-yellow-900);--color-background-accent-yellow-200-hovered-dark:var(--color-yellow-800);--color-background-accent-yellow-200-pressed-dark:var(--color-yellow-700);--color-background-accent-yellow-300-light:var(--color-yellow-300);--color-background-accent-yellow-300-hovered-light:var(--color-yellow-400);--color-background-accent-yellow-300-pressed-light:var(--color-yellow-500);--color-background-accent-yellow-300-dark:var(--color-yellow-800);--color-background-accent-yellow-300-hovered-dark:var(--color-yellow-900);--color-background-accent-yellow-300-pressed-dark:var(--color-yellow-1000);--color-background-accent-yellow-400-light:var(--color-yellow-700);--color-background-accent-yellow-400-hovered-light:var(--color-yellow-800);--color-background-accent-yellow-400-pressed-light:var(--color-yellow-900);--color-background-accent-yellow-400-dark:var(--color-yellow-400);--color-background-accent-yellow-400-hovered-dark:var(--color-yellow-300);--color-background-accent-yellow-400-pressed-dark:var(--color-yellow-200);--color-background-accent-teal-100-light:var(--color-teal-100);--color-background-accent-teal-100-hovered-light:var(--color-teal-200);--color-background-accent-teal-100-pressed-light:var(--color-teal-300);--color-background-accent-teal-100-dark:var(--color-teal-1000);--color-background-accent-teal-100-hovered-dark:var(--color-teal-900);--color-background-accent-teal-100-pressed-dark:var(--color-teal-800);--color-background-accent-teal-200-light:var(--color-teal-200);--color-background-accent-teal-200-hovered-light:var(--color-teal-300);--color-background-accent-teal-200-pressed-light:var(--color-teal-400);--color-background-accent-teal-200-dark:var(--color-teal-900);--color-background-accent-teal-200-hovered-dark:var(--color-teal-800);--color-background-accent-teal-200-pressed-dark:var(--color-teal-700);--color-background-accent-teal-300-light:var(--color-teal-400);--color-background-accent-teal-300-hovered-light:var(--color-teal-300);--color-background-accent-teal-300-pressed-light:var(--color-teal-200);--color-background-accent-teal-300-dark:var(--color-teal-800);--color-background-accent-teal-300-hovered-dark:var(--color-teal-900);--color-background-accent-teal-300-pressed-dark:var(--color-teal-1000);--color-background-accent-teal-400-light:var(--color-teal-700);--color-background-accent-teal-400-hovered-light:var(--color-teal-800);--color-background-accent-teal-400-pressed-light:var(--color-teal-900);--color-background-accent-teal-400-dark:var(--color-teal-400);--color-background-accent-teal-400-hovered-dark:var(--color-teal-300);--color-background-accent-teal-400-pressed-dark:var(--color-teal-200);--color-background-accent-purple-100-light:var(--color-purple-100);--color-background-accent-purple-100-hovered-light:var(--color-purple-200);--color-background-accent-purple-100-pressed-light:var(--color-purple-300);--color-background-accent-purple-100-dark:var(--color-purple-1000);--color-background-accent-purple-100-hovered-dark:var(--color-purple-900);--color-background-accent-purple-100-pressed-dark:var(--color-purple-800);--color-background-accent-purple-200-light:var(--color-purple-200);--color-background-accent-purple-200-hovered-light:var(--color-purple-300);--color-background-accent-purple-200-pressed-light:var(--color-purple-400);--color-background-accent-purple-200-dark:var(--color-purple-900);--color-background-accent-purple-200-hovered-dark:var(--color-purple-800);--color-background-accent-purple-200-pressed-dark:var(--color-purple-700);--color-background-accent-purple-300-light:var(--color-purple-400);--color-background-accent-purple-300-hovered-light:var(--color-purple-300);--color-background-accent-purple-300-pressed-light:var(--color-purple-200);--color-background-accent-purple-300-dark:var(--color-purple-800);--color-background-accent-purple-300-hovered-dark:var(--color-purple-900);--color-background-accent-purple-300-pressed-dark:var(--color-purple-1000);--color-background-accent-purple-400-light:var(--color-purple-700);--color-background-accent-purple-400-hovered-light:var(--color-purple-800);--color-background-accent-purple-400-pressed-light:var(--color-purple-900);--color-background-accent-purple-400-dark:var(--color-purple-400);--color-background-accent-purple-400-hovered-dark:var(--color-purple-300);--color-background-accent-purple-400-pressed-dark:var(--color-purple-200);--color-background-accent-pink-100-light:var(--color-pink-100);--color-background-accent-pink-100-hovered-light:var(--color-pink-200);--color-background-accent-pink-100-pressed-light:var(--color-pink-300);--color-background-accent-pink-100-dark:var(--color-pink-1000);--color-background-accent-pink-100-hovered-dark:var(--color-pink-900);--color-background-accent-pink-100-pressed-dark:var(--color-pink-800);--color-background-accent-pink-200-light:var(--color-pink-200);--color-background-accent-pink-200-hovered-light:var(--color-pink-300);--color-background-accent-pink-200-pressed-light:var(--color-pink-400);--color-background-accent-pink-200-dark:var(--color-pink-900);--color-background-accent-pink-200-hovered-dark:var(--color-pink-800);--color-background-accent-pink-200-pressed-dark:var(--color-pink-700);--color-background-accent-pink-300-light:var(--color-pink-400);--color-background-accent-pink-300-hovered-light:var(--color-pink-300);--color-background-accent-pink-300-pressed-light:var(--color-pink-200);--color-background-accent-pink-300-dark:var(--color-pink-800);--color-background-accent-pink-300-hovered-dark:var(--color-pink-900);--color-background-accent-pink-300-pressed-dark:var(--color-pink-1000);--color-background-accent-pink-400-light:var(--color-pink-700);--color-background-accent-pink-400-hovered-light:var(--color-pink-800);--color-background-accent-pink-400-pressed-light:var(--color-pink-900);--color-background-accent-pink-400-dark:var(--color-pink-400);--color-background-accent-pink-400-hovered-dark:var(--color-pink-300);--color-background-accent-pink-400-pressed-dark:var(--color-pink-200);--color-text-light:var(--color-neutral-1000);--color-text-dark:var(--color-neutral-dark-1000);--color-text-subtle-light:var(--color-neutral-600);--color-text-subtle-dark:var(--color-neutral-dark-600);--color-text-subtler-light:var(--color-neutral-500);--color-text-subtler-dark:var(--color-neutral-dark-500);--color-text-brand-light:var(--color-brand-text-light);--color-text-brand-dark:var(--color-brand-text-dark);--color-text-information-light:var(--color-blue-800);--color-text-information-dark:var(--color-blue-300);--color-text-success-light:var(--color-green-800);--color-text-success-dark:var(--color-green-300);--color-text-warning-light:var(--color-yellow-800);--color-text-warning-dark:var(--color-yellow-300);--color-text-danger-light:var(--color-red-800);--color-text-danger-dark:var(--color-red-300);--color-text-discovery-light:var(--color-purple-800);--color-text-discovery-dark:var(--color-purple-300);--color-text-disabled-light:var(--color-neutral-alpha-400);--color-text-disabled-dark:var(--color-neutral-dark-alpha-400);--color-text-selected-light:var(--color-text-brand-light);--color-text-selected-dark:var(--color-text-brand-dark);--color-text-inverse-light:var(--color-neutral-0);--color-text-inverse-dark:var(--color-neutral-dark-100);--color-text-accent-gray-100-light:var(--color-neutral-800);--color-text-accent-gray-100-dark:var(--color-neutral-dark-800);--color-text-accent-gray-200-light:var(--color-neutral-1100);--color-text-accent-gray-200-dark:var(--color-neutral-dark-1100);--color-text-accent-blue-100-light:var(--color-blue-800);--color-text-accent-blue-100-dark:var(--color-blue-300);--color-text-accent-blue-200-light:var(--color-blue-900);--color-text-accent-blue-200-dark:var(--color-blue-200);--color-text-accent-green-100-light:var(--color-green-800);--color-text-accent-green-100-dark:var(--color-green-300);--color-text-accent-green-200-light:var(--color-green-900);--color-text-accent-green-200-dark:var(--color-green-200);--color-text-accent-orange-100-light:var(--color-orange-800);--color-text-accent-orange-100-dark:var(--color-orange-300);--color-text-accent-orange-200-light:var(--color-orange-900);--color-text-accent-orange-200-dark:var(--color-orange-200);--color-text-accent-red-100-light:var(--color-red-800);--color-text-accent-red-100-dark:var(--color-red-300);--color-text-accent-red-200-light:var(--color-red-900);--color-text-accent-red-200-dark:var(--color-red-200);--color-text-accent-yellow-100-light:var(--color-yellow-800);--color-text-accent-yellow-100-dark:var(--color-yellow-300);--color-text-accent-yellow-200-light:var(--color-yellow-900);--color-text-accent-yellow-200-dark:var(--color-yellow-200);--color-text-accent-teal-100-light:var(--color-teal-800);--color-text-accent-teal-100-dark:var(--color-teal-300);--color-text-accent-teal-200-light:var(--color-teal-900);--color-text-accent-teal-200-dark:var(--color-teal-200);--color-text-accent-purple-100-light:var(--color-purple-800);--color-text-accent-purple-100-dark:var(--color-purple-300);--color-text-accent-purple-200-light:var(--color-purple-900);--color-text-accent-purple-200-dark:var(--color-purple-200);--color-text-accent-pink-100-light:var(--color-pink-800);--color-text-accent-pink-100-dark:var(--color-pink-300);--color-text-accent-pink-200-light:var(--color-pink-900);--color-text-accent-pink-200-dark:var(--color-pink-200);--color-text-link-light:var(--color-blue-700);--color-text-link-dark:var(--color-blue-400);--color-text-link-pressed-light:var(--color-blue-800);--color-text-link-pressed-dark:var(--color-blue-300);--color-text-link-visited-light:var(--color-purple-800);--color-text-link-visited-dark:var(--color-purple-300);--color-text-link-visited-pressed-light:var(--color-purple-900);--color-text-link-visited-pressed-dark:var(--color-purple-200);--color-icon-light:var(--color-neutral-800);--color-icon-dark:var(--color-neutral-dark-800);--color-icon-subtle-light:var(--color-neutral-700);--color-icon-subtle-dark:var(--color-neutral-dark-700);--color-icon-subtler-light:var(--color-neutral-700);--color-icon-subtler-dark:var(--color-neutral-dark-700);--color-icon-brand-light:var(--color-brand-icon-light);--color-icon-brand-dark:var(--color-brand-icon-dark);--color-icon-information-light:var(--color-blue-600);--color-icon-information-dark:var(--color-blue-500);--color-icon-success-light:var(--color-green-600);--color-icon-success-dark:var(--color-green-500);--color-icon-warning-light:var(--color-orange-600);--color-icon-warning-dark:var(--color-yellow-300);--color-icon-danger-light:var(--color-red-700);--color-icon-danger-dark:var(--color-red-500);--color-icon-discovery-light:var(--color-purple-600);--color-icon-discovery-dark:var(--color-purple-500);--color-icon-disabled-light:var(--color-neutral-alpha-400);--color-icon-disabled-dark:var(--color-neutral-dark-alpha-400);--color-icon-selected-light:var(--color-icon-brand-light);--color-icon-selected-dark:var(--color-icon-brand-dark);--color-icon-inverse-light:var(--color-neutral-0);--color-icon-inverse-dark:var(--color-neutral-dark-100);--color-icon-accent-gray-light:var(--color-neutral-600);--color-icon-accent-gray-dark:var(--color-neutral-dark-600);--color-icon-accent-blue-light:var(--color-blue-600);--color-icon-accent-blue-dark:var(--color-blue-500);--color-icon-accent-green-light:var(--color-green-600);--color-icon-accent-green-dark:var(--color-green-500);--color-icon-accent-orange-light:var(--color-orange-600);--color-icon-accent-orange-dark:var(--color-orange-500);--color-icon-accent-red-light:var(--color-red-700);--color-icon-accent-red-dark:var(--color-red-600);--color-icon-accent-yellow-light:var(--color-yellow-600);--color-icon-accent-yellow-dark:var(--color-yellow-300);--color-icon-accent-teal-light:var(--color-teal-600);--color-icon-accent-teal-dark:var(--color-teal-500);--color-icon-accent-purple-light:var(--color-purple-600);--color-icon-accent-purple-dark:var(--color-purple-500);--color-icon-accent-pink-light:var(--color-pink-600);--color-icon-accent-pink-dark:var(--color-pink-500);--color-border-100-light:var(--color-neutral-alpha-300);--color-border-100-dark:var(--color-neutral-dark-alpha-300);--color-border-200-light:var(--color-neutral-600);--color-border-200-dark:var(--color-neutral-dark-600);--color-border-brand-light:var(--color-brand-border-light);--color-border-brand-dark:var(--color-brand-border-dark);--color-border-information-light:var(--color-blue-600);--color-border-information-dark:var(--color-blue-500);--color-border-success-light:var(--color-green-600);--color-border-success-dark:var(--color-green-500);--color-border-warning-light:var(--color-orange-600);--color-border-warning-dark:var(--color-yellow-500);--color-border-danger-light:var(--color-red-600);--color-border-danger-dark:var(--color-red-500);--color-border-discovery-light:var(--color-purple-600);--color-border-discovery-dark:var(--color-purple-500);--color-border-disabled-light:var(--color-neutral-alpha-200);--color-border-disabled-dark:var(--color-neutral-dark-alpha-200);--color-border-focused-light:var(--color-blue-500);--color-border-focused-dark:var(--color-blue-300);--color-border-selected-light:var(--color-border-brand-light);--color-border-selected-dark:var(--color-border-brand-dark);--color-border-input-light:var(--color-neutral-300);--color-border-input-dark:var(--color-neutral-dark-400);--color-border-input-disabled-light:var(--color-neutral-alpha-200);--color-border-input-disabled-dark:var(--color-neutral-dark-alpha-200);--color-border-inverse-light:var(--color-neutral-0);--color-border-inverse-dark:var(--color-neutral-dark-0);--color-border-accent-gray-light:var(--color-neutral-600);--color-border-accent-gray-dark:var(--color-neutral-dark-600);--color-border-accent-blue-light:var(--color-blue-600);--color-border-accent-blue-dark:var(--color-blue-500);--color-border-accent-green-light:var(--color-green-600);--color-border-accent-green-dark:var(--color-green-500);--color-border-accent-orange-light:var(--color-orange-600);--color-border-accent-orange-dark:var(--color-orange-500);--color-border-accent-red-light:var(--color-red-600);--color-border-accent-red-dark:var(--color-red-500);--color-border-accent-yellow-light:var(--color-yellow-600);--color-border-accent-yellow-dark:var(--color-yellow-500);--color-border-accent-teal-light:var(--color-teal-600);--color-border-accent-teal-dark:var(--color-teal-500);--color-border-accent-purple-light:var(--color-purple-600);--color-border-accent-purple-dark:var(--color-purple-500);--color-border-accent-pink-light:var(--color-pink-600);--color-border-accent-pink-dark:var(--color-pink-500);--color-overlay-light:var(--color-neutral-alpha-500);--color-overlay-dark:var(--color-neutral-dark-alpha-500);--color-skeleton-100-light:var(--color-neutral-alpha-100);--color-skeleton-100-dark:var(--color-neutral-dark-alpha-100);--color-skeleton-200-light:var(--color-neutral-alpha-200);--color-skeleton-200-dark:var(--color-neutral-dark-alpha-200)}.theme{--color-background-brand-100-light:var(--color-brand-surface-soft-light);--color-background-brand-100-hovered-light:var(--color-brand-surface-soft-hovered-light);--color-background-brand-100-pressed-light:var(--color-brand-surface-soft-pressed-light);--color-background-brand-100-dark:var(--color-brand-surface-soft-dark);--color-background-brand-100-hovered-dark:var(--color-brand-surface-soft-hovered-dark);--color-background-brand-100-pressed-dark:var(--color-brand-surface-soft-pressed-dark);--color-background-brand-200-light:var(--color-brand-surface-strong-light);--color-background-brand-200-hovered-light:var(--color-brand-surface-strong-hovered-light);--color-background-brand-200-pressed-light:var(--color-brand-surface-strong-pressed-light);--color-background-brand-200-dark:var(--color-brand-surface-strong-dark);--color-background-brand-200-hovered-dark:var(--color-brand-surface-strong-hovered-dark);--color-background-brand-200-pressed-dark:var(--color-brand-surface-strong-pressed-dark);--color-background-brand-300-light:var(--color-brand-on-soft-light);--color-background-brand-300-hovered-light:var(--color-brand-border-light);--color-background-brand-300-pressed-light:var(--color-brand-surface-strong-light);--color-background-brand-300-dark:var(--color-brand-on-soft-dark);--color-background-brand-300-hovered-dark:var(--color-brand-border-dark);--color-background-brand-300-pressed-dark:var(--color-brand-surface-strong-dark);--color-background-selected-100-light:var(--color-background-brand-100-light);--color-background-selected-100-hovered-light:var(--color-background-brand-100-hovered-light);--color-background-selected-100-pressed-light:var(--color-background-brand-100-pressed-light);--color-background-selected-100-dark:var(--color-background-brand-100-dark);--color-background-selected-100-hovered-dark:var(--color-background-brand-100-hovered-dark);--color-background-selected-100-pressed-dark:var(--color-background-brand-100-pressed-dark);--color-background-selected-200-light:var(--color-background-brand-200-light);--color-background-selected-200-hovered-light:var(--color-background-brand-200-hovered-light);--color-background-selected-200-pressed-light:var(--color-background-brand-200-pressed-light);--color-background-selected-200-dark:var(--color-background-brand-200-dark);--color-background-selected-200-hovered-dark:var(--color-background-brand-200-hovered-dark);--color-background-selected-200-pressed-dark:var(--color-background-brand-200-pressed-dark);--color-text-brand-light:var(--color-brand-text-light);--color-text-brand-dark:var(--color-brand-text-dark);--color-text-selected-light:var(--color-text-brand-light);--color-text-selected-dark:var(--color-text-brand-dark);--color-icon-brand-light:var(--color-brand-icon-light);--color-icon-brand-dark:var(--color-brand-icon-dark);--color-icon-selected-light:var(--color-icon-brand-light);--color-icon-selected-dark:var(--color-icon-brand-dark);--color-border-brand-light:var(--color-brand-border-light);--color-border-brand-dark:var(--color-brand-border-dark);--color-border-selected-light:var(--color-border-brand-light);--color-border-selected-dark:var(--color-border-brand-dark)}:root{--elevation-raised-light:var(--color-neutral-alpha-400) 0px 1px 1px, var(--color-neutral-alpha-500) 0px 0px 1px;--elevation-raised-dark:var(--color-neutral-dark-alpha-300) 0px 1px 1px, var(--color-neutral-dark-alpha-400) 0px 0px 1px;--elevation-overlay-light:var(--color-neutral-alpha-400) 0px 8px 12px 0px, var(--color-neutral-alpha-500) 0px 0px 1px 0px;--elevation-overlay-dark:var(--color-neutral-dark-alpha-200) 0px 0px 0px 1px, var(--color-neutral-dark-alpha-0) 0px 8px 12px 0px, var(--color-neutral-dark-alpha-100) 0px 0px 1px 1px;--elevation-avatar-light:inset 0 0 10px var(--color-neutral-alpha-100);--elevation-avatar-dark:inset 0 0 10px var(--color-neutral-dark-alpha-100);--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-code:ui-monospace, SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, monospace;--font-style-normal:normal;--font-style-italic:italic;--font-size-default:var(--font-size-14);--font-size-12:12px;--font-size-13:13px;--font-size-14:14px;--font-size-15:15px;--font-size-16:16px;--font-size-18:18px;--font-size-20:20px;--font-size-24:24px;--font-size-28:28px;--font-size-30:30px;--font-size-32:32px;--font-size-36:36px;--font-size-48:48px;--font-size-60:60px;--font-size-72:72px;--font-weight-thin:100;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--layer-card:100;--layer-navigation:200;--layer-dialog:300;--layer-overlay:400;--layer-modal:500;--layer-flag:600;--layer-spotlight:700;--layer-tooltip:800;--size-0:0px;--size-2:2px;--size-4:4px;--size-6:6px;--size-8:8px;--size-12:12px;--size-16:16px;--size-20:20px;--size-24:24px;--size-32:32px;--size-40:40px;--size-48:48px;--size-64:64px;--size-80:80px;--size-96:96px;--size-128:128px;--size-192:192px;--size-256:256px;--size-384:384px;--size-512:512px;--size-640:640px;--size-768:768px;--size-896:896px;--size-1024:1024px;--size-1152:1152px;--size-1280:1280px;--size-1408:1408px;--size-1536:1536px;--size-1664:1664px;--size-1792:1792px;--size-1920:1920px;--transition-100ms-ease-out:.1s ease-out;--transition-100ms-ease-in-out:.1s ease-in-out;--transition-200ms-ease-in:.2s ease-in;--transition-200ms-ease-in-out:.2s ease-in-out}html,body,p,div,h1,h2,h3,h4,h5,h6,ul,ol,dl,img,pre,form,fieldset{margin:var(--size-0);padding:var(--size-0)}img,fieldset{border:var(--size-0)}body,html,#app{width:100%;height:100%}body{background-color:var(--color-background-surface-light);color:var(--color-text-light);font-family:var(--font-family);font-size:var(--font-size-14);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:20px}input,select,textarea,button{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:25px}p,ul,ol,dl,h1,h2,h3,h4,h5,h6,blockquote,pre,form,table{margin:calc(var(--grid-size) * 2px) var(--size-0) var(--size-0) var(--size-0)}a{color:var(--color-text-link-light);-webkit-text-decoration:var(--link-text-decoration-default);text-decoration:var(--link-text-decoration-default);border-radius:var(--border-width);cursor:pointer;transition:color var(--transition-100ms-ease-in-out), background-color var(--transition-100ms-ease-in-out)}a:hover{-webkit-text-decoration:var(--link-text-decoration-hover);text-decoration:var(--link-text-decoration-hover)}a:active{color:var(--color-text-link-pressed-light)}a:visited{color:var(--color-text-link-visited-light)}a.visited:active{color:var(--color-text-link-visited-pressed-light)}h1{font-size:var(--font-size-28);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:32px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] h1{color:var(--color-text-dark)}h1:first-child{margin-top:var(--size-0)}h2{font-size:var(--font-size-24);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:28px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] h2{color:var(--color-text-dark)}h2:first-child{margin-top:var(--size-0)}h3{font-size:var(--font-size-20);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:24px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3.5px)}[dark-mode=true] h3{color:var(--color-text-dark)}h3:first-child{margin-top:var(--size-0)}h4{font-size:var(--font-size-16);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:20px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3px)}[dark-mode=true] h4{color:var(--color-text-dark)}h4:first-child{margin-top:var(--size-0)}h5{font-size:var(--font-size-14);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:20px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2px)}[dark-mode=true] h5{color:var(--color-text-dark)}h5:first-child{margin-top:var(--size-0)}h6{font-size:var(--font-size-12);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:16px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2.5px)}[dark-mode=true] h6{color:var(--color-text-dark)}h6:first-child{margin-top:var(--size-0)}ul,ol,dl{padding-left:calc(var(--grid-size) * 5px)}dd,dd+dt,li+li,ul ul:not(:first-child),ol ul:not(:first-child),ul ol:not(:first-child),ol ol:not(:first-child){margin-top:calc(var(--grid-size) / 2px)}p:first-child,ul:first-child,ol:first-child,dl:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,blockquote:first-child,pre:first-child,form:first-child,table:first-child{margin-top:var(--size-0)}:focus{box-shadow:var(--size-0) var(--size-0) var(--size-0) var(--focus-outline-width) var(--color-border-focused-light);outline:none}[data-whatintent=mouse] :focus{box-shadow:none;outline:none}table{border-collapse:collapse;width:100%}thead,tbody,tfoot{border-bottom:var(--border-width) solid var(--color-border-100-light)}td,th{padding:calc((var(--grid-size) / 2) * 1px) calc(var(--grid-size) * 1px);text-align:left;border:none}th{font-size:var(--font-size-12);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:16px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2.5px);line-height:inherit}[dark-mode=true] th{color:var(--color-text-dark)}th:first-child{margin-top:var(--size-0)}td:first-child,th:first-child{padding-left:var(--size-0)}td:last-child,th:last-child{padding-right:var(--size-0)}tr{transition:background .1s ease-out,box-shadow .15s cubic-bezier(.47,.03,.49,1.38)}tbody tr:hover{background-color:var(--color-background-surface-hovered-light)}hr{background-color:var(--color-border-100-light);height:2px;margin:var(--size-40) var(--size-0);border-style:none}pre{font-family:var(--font-family-code);white-space:pre-wrap;padding:var(--size-24) var(--size-32);border-radius:var(--border-radius-regular);background:var(--color-background-surface-sunken-light);font-size:var(--font-size-12);line-height:23px;overflow-x:auto}code{font-family:var(--font-family-code);padding:var(--size-0);font-size:var(--font-size-12)}p code{font-family:var(--font-family-code);padding:var(--size-0) var(--size-8);border-radius:var(--border-radius-regular);background:var(--color-background-surface-sunken-light);font-size:var(--font-size-14)}blockquote{white-space:pre-wrap;border-left:var(--border-width-3) solid var(--color-border-100-light);padding-left:var(--size-8);font-style:var(--font-style-italic)}caption{font-size:var(--font-size-20);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:24px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3.5px);margin-bottom:var(--size-8);text-align:left}[dark-mode=true] caption{color:var(--color-text-dark)}caption:first-child{margin-top:var(--size-0)}[dark-mode=true] body{background-color:var(--color-background-surface-dark);color:var(--color-text-dark)}[dark-mode=true] a{color:var(--color-text-link-dark)}[dark-mode=true] a:active{color:var(--color-text-link-pressed-dark)}[dark-mode=true] a:visited{color:var(--color-text-link-visited-dark)}[dark-mode=true] a.visited:active{color:var(--color-text-link-visited-pressed-dark)}[dark-mode=true] :focus{box-shadow:var(--size-0) var(--size-0) var(--size-0) var(--focus-outline-width) var(--color-border-focused-dark);outline:none}[dark-mode=true] thead,[dark-mode=true] tbody,[dark-mode=true] tfoot{border-bottom:var(--border-width) solid var(--color-border-100-dark)}[dark-mode=true] tbody tr:hover{background-color:var(--color-background-surface-hovered-dark)}[dark-mode=true] hr{background-color:var(--color-border-100-dark)}[dark-mode=true] pre,[dark-mode=true] p code{background:var(--color-background-surface-sunken-dark)}[dark-mode=true] blockquote{border-left:var(--border-width-3) solid var(--color-border-100-dark)}[dark-mode=true][data-whatintent=mouse] :focus{box-shadow:none;outline:none}:root{--grid-size:8;--focus-outline-width:2px;--link-text-decoration-default:none;--link-text-decoration-hover:underline}.heading-xxlarge{font-size:var(--font-size-32);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:36px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 6.5px)}[dark-mode=true] .heading-xxlarge{color:var(--color-text-dark)}.heading-xxlarge:first-child{margin-top:var(--size-0)}.heading-xlarge{font-size:var(--font-size-28);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:32px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] .heading-xlarge{color:var(--color-text-dark)}.heading-xlarge:first-child{margin-top:var(--size-0)}.heading-large{font-size:var(--font-size-24);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:28px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 5px)}[dark-mode=true] .heading-large{color:var(--color-text-dark)}.heading-large:first-child{margin-top:var(--size-0)}.heading-medium{font-size:var(--font-size-20);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:24px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3.5px)}[dark-mode=true] .heading-medium{color:var(--color-text-dark)}.heading-medium:first-child{margin-top:var(--size-0)}.heading-small{font-size:var(--font-size-16);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:20px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 3px)}[dark-mode=true] .heading-small{color:var(--color-text-dark)}.heading-small:first-child{margin-top:var(--size-0)}.heading-xsmall{font-size:var(--font-size-14);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:20px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2px)}[dark-mode=true] .heading-xsmall{color:var(--color-text-dark)}.heading-xsmall:first-child{margin-top:var(--size-0)}.heading-xxsmall{font-size:var(--font-size-12);font-style:var(--font-style-normal);color:var(--color-text-light);line-height:16px;font-weight:var(--font-weight-semibold);margin-top:calc(var(--grid-size) * 2.5px)}[dark-mode=true] .heading-xxsmall{color:var(--color-text-dark)}.heading-xxsmall:first-child{margin-top:var(--size-0)}.text{font-size:var(--font-size-14);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:20px}.text-large{font-size:var(--font-size-16);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:24px}.text-small{font-size:var(--font-size-12);font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:16px}.text-intro{font-size:20px;font-style:var(--font-style-normal);font-weight:var(--font-weight-regular);line-height:32px}.text-caption{font-size:var(--font-size-12);font-weight:var(--font-weight-regular);color:var(--color-text-subtle-light);line-height:18px;display:block}[dark-mode=true] .text-caption{color:var(--placeholder-color-dark)}.text-caption-bold{font-size:var(--font-size-12);font-weight:var(--font-weight-semibold)}.text-prominent{font-size:var(--font-size-default);font-weight:var(--font-weight-semibold)}.error{color:var(--color-text-danger-light)}[dark-mode=true] .error{color:var(--color-text-danger-dark)}.theme-switcher-divider[data-v-bcbc87cb]{margin:4px 0}
|
|
2
|
+
/*$vite$:1*/
|