@m3e/theme 1.0.0-rc.1
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/LICENSE +22 -0
- package/README.md +92 -0
- package/cem.config.mjs +16 -0
- package/dist/css-custom-data.json +6 -0
- package/dist/custom-elements.json +349 -0
- package/dist/html-custom-data.json +48 -0
- package/dist/index.js +3711 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +347 -0
- package/dist/index.min.js.map +1 -0
- package/dist/src/ColorScheme.d.ts +3 -0
- package/dist/src/ColorScheme.d.ts.map +1 -0
- package/dist/src/ContrastLevel.d.ts +3 -0
- package/dist/src/ContrastLevel.d.ts.map +1 -0
- package/dist/src/MotionScheme.d.ts +3 -0
- package/dist/src/MotionScheme.d.ts.map +1 -0
- package/dist/src/ThemeElement.d.ts +101 -0
- package/dist/src/ThemeElement.d.ts.map +1 -0
- package/dist/src/ThemeVariant.d.ts +3 -0
- package/dist/src/ThemeVariant.d.ts.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/eslint.config.mjs +13 -0
- package/package.json +52 -0
- package/rollup.config.js +32 -0
- package/src/ColorScheme.ts +2 -0
- package/src/ContrastLevel.ts +2 -0
- package/src/MotionScheme.ts +2 -0
- package/src/ThemeElement.ts +284 -0
- package/src/ThemeVariant.ts +11 -0
- package/src/index.ts +5 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* Copyright (c) 2025 matraic
|
|
4
|
+
* See LICENSE file in the project root for full license text.
|
|
5
|
+
*/
|
|
6
|
+
import{LitElement as t,html as e,css as r}from"lit";import{Role as a,DesignToken as n}from"@m3e/core";function o(t,e,r,a){var n,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,r):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,r,a);else for(var s=t.length-1;s>=0;s--)(n=t[s])&&(i=(o<3?n(i):o>3?n(e,r,i):n(e,r))||i);return o>3&&i&&Object.defineProperty(e,r,i),i}function i(t,e,r,a){if("a"===r&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?a:"a"===r?a.call(t):a?a.value:e.get(t)}function s(t,e,r,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(t,r):n?n.value=r:e.set(t,r),r}"function"==typeof SuppressedError&&SuppressedError;
|
|
7
|
+
/**
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright 2017 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
+
*/
|
|
12
|
+
const c=globalThis,h=c.ShadowRoot&&(void 0===c.ShadyCSS||c.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,l=Symbol(),u=new WeakMap;
|
|
13
|
+
/**
|
|
14
|
+
* @license
|
|
15
|
+
* Copyright 2019 Google LLC
|
|
16
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
17
|
+
*/let d=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==l)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(h&&void 0===t){const r=void 0!==e&&1===e.length;r&&(t=u.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&u.set(e,t))}return t}toString(){return this.cssText}};const m=(t,e)=>{if(h)t.adoptedStyleSheets=e.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const r of e){const e=document.createElement("style"),a=c.litNonce;void 0!==a&&e.setAttribute("nonce",a),e.textContent=r.cssText,t.appendChild(e)}},f=h?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const r of t.cssRules)e+=r.cssText;return(t=>new d("string"==typeof t?t:t+"",void 0,l))(e)})(t):t,{is:g,defineProperty:p,getOwnPropertyDescriptor:y,getOwnPropertyNames:b,getOwnPropertySymbols:P,getPrototypeOf:w}=Object,C=globalThis,M=C.trustedTypes,k=M?M.emptyScript:"",v=C.reactiveElementPolyfillSupport,_=(t,e)=>t,A={toAttribute(t,e){switch(e){case Boolean:t=t?k:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let r=t;switch(e){case Boolean:r=null!==t;break;case Number:r=null===t?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch(t){r=null}}return r}},D=(t,e)=>!g(t,e),S={attribute:!0,type:String,converter:A,reflect:!1,useDefault:!1,hasChanged:D};
|
|
18
|
+
/**
|
|
19
|
+
* @license
|
|
20
|
+
* Copyright 2017 Google LLC
|
|
21
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
22
|
+
*/Symbol.metadata??=Symbol("metadata"),C.litPropertyMetadata??=new WeakMap;class E extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=S){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const r=Symbol(),a=this.getPropertyDescriptor(t,r,e);void 0!==a&&p(this.prototype,t,a)}}static getPropertyDescriptor(t,e,r){const{get:a,set:n}=y(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get:a,set(e){const o=a?.call(this);n?.call(this,e),this.requestUpdate(t,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??S}static _$Ei(){if(this.hasOwnProperty(_("elementProperties")))return;const t=w(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(_("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(_("properties"))){const t=this.properties,e=[...b(t),...P(t)];for(const r of e)this.createProperty(r,t[r])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,r]of e)this.elementProperties.set(t,r)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const r=this._$Eu(t,e);void 0!==r&&this._$Eh.set(r,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const t of r)e.unshift(f(t))}else void 0!==t&&e.push(f(t));return e}static _$Eu(t,e){const r=e.attribute;return!1===r?void 0:"string"==typeof r?r:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return m(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ET(t,e){const r=this.constructor.elementProperties.get(t),a=this.constructor._$Eu(t,r);if(void 0!==a&&!0===r.reflect){const n=(void 0!==r.converter?.toAttribute?r.converter:A).toAttribute(e,r.type);this._$Em=t,null==n?this.removeAttribute(a):this.setAttribute(a,n),this._$Em=null}}_$AK(t,e){const r=this.constructor,a=r._$Eh.get(t);if(void 0!==a&&this._$Em!==a){const t=r.getPropertyOptions(a),n="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:A;this._$Em=a;const o=n.fromAttribute(e,t.type);this[a]=o??this._$Ej?.get(a)??o,this._$Em=null}}requestUpdate(t,e,r){if(void 0!==t){const a=this.constructor,n=this[t];if(r??=a.getPropertyOptions(t),!((r.hasChanged??D)(n,e)||r.useDefault&&r.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(a._$Eu(t,r))))return;this.C(t,e,r)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,e,{useDefault:r,reflect:a,wrapped:n},o){r&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,o??e??this[t]),!0!==n||void 0!==o)||(this._$AL.has(t)||(this.hasUpdated||r||(e=void 0),this._$AL.set(t,e)),!0===a&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,r]of t){const{wrapped:t}=r,a=this[e];!0!==t||this._$AL.has(e)||void 0===a||this.C(e,void 0,r,a)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(e)):this._$EM()}catch(e){throw t=!1,this._$EM(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}E.elementStyles=[],E.shadowRootOptions={mode:"open"},E[_("elementProperties")]=new Map,E[_("finalized")]=new Map,v?.({ReactiveElement:E}),(C.reactiveElementVersions??=[]).push("2.1.1");
|
|
23
|
+
/**
|
|
24
|
+
* @license
|
|
25
|
+
* Copyright 2017 Google LLC
|
|
26
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
27
|
+
*/
|
|
28
|
+
const x={attribute:!0,type:String,converter:A,reflect:!1,hasChanged:D},T=(t=x,e,r)=>{const{kind:a,metadata:n}=r;let o=globalThis.litPropertyMetadata.get(n);if(void 0===o&&globalThis.litPropertyMetadata.set(n,o=new Map),"setter"===a&&((t=Object.create(t)).wrapped=!0),o.set(r.name,t),"accessor"===a){const{name:a}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(a,n,t)},init(e){return void 0!==e&&this.C(a,void 0,t,e),e}}}if("setter"===a){const{name:a}=r;return function(r){const n=this[a];e.call(this,r),this.requestUpdate(a,n,t)}}throw Error("Unsupported decorator location: "+a)};function I(t){return(e,r)=>"object"==typeof r?T(t,e,r):((t,e,r)=>{const a=e.hasOwnProperty(r);return e.constructor.createProperty(r,t),a?Object.getOwnPropertyDescriptor(e,r):void 0})(t,e,r)}
|
|
29
|
+
/**
|
|
30
|
+
* @license
|
|
31
|
+
* Copyright 2021 Google LLC
|
|
32
|
+
*
|
|
33
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
34
|
+
* you may not use this file except in compliance with the License.
|
|
35
|
+
* You may obtain a copy of the License at
|
|
36
|
+
*
|
|
37
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
38
|
+
*
|
|
39
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
40
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
41
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
42
|
+
* See the License for the specific language governing permissions and
|
|
43
|
+
* limitations under the License.
|
|
44
|
+
*/function F(t){return t<0?-1:0===t?0:1}function O(t,e,r){return(1-r)*t+r*e}function L(t,e,r){return r<t?t:r>e?e:r}function R(t){return(t%=360)<0&&(t+=360),t}function $(t,e){return[t[0]*e[0][0]+t[1]*e[0][1]+t[2]*e[0][2],t[0]*e[1][0]+t[1]*e[1][1]+t[2]*e[1][2],t[0]*e[2][0]+t[1]*e[2][1]+t[2]*e[2][2]]}
|
|
45
|
+
/**
|
|
46
|
+
* @license
|
|
47
|
+
* Copyright 2021 Google LLC
|
|
48
|
+
*
|
|
49
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
50
|
+
* you may not use this file except in compliance with the License.
|
|
51
|
+
* You may obtain a copy of the License at
|
|
52
|
+
*
|
|
53
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
54
|
+
*
|
|
55
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
56
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
57
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
58
|
+
* See the License for the specific language governing permissions and
|
|
59
|
+
* limitations under the License.
|
|
60
|
+
*/const B=[[.41233895,.35762064,.18051042],[.2126,.7152,.0722],[.01932141,.11916382,.95034478]],V=[[3.2413774792388685,-1.5376652402851851,-.49885366846268053],[-.9691452513005321,1.8758853451067872,.04156585616912061],[.05562093689691305,-.20395524564742123,1.0571799111220335]],U=[95.047,100,108.883];function H(t,e,r){return(255<<24|(255&t)<<16|(255&e)<<8|255&r)>>>0}function N(t){return H(J(t[0]),J(t[1]),J(t[2]))}function z(t){return t>>16&255}function q(t){return t>>8&255}function j(t){return 255&t}function K(t){const e=function(t){return $([G(z(t)),G(q(t)),G(j(t))],B)}(t)[1];return 116*X(e/100)-16}function Y(t){return 100*function(t){const e=216/24389,r=24389/27,a=t*t*t;return a>e?a:(116*t-16)/r}
|
|
61
|
+
/**
|
|
62
|
+
* @license
|
|
63
|
+
* Copyright 2021 Google LLC
|
|
64
|
+
*
|
|
65
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
66
|
+
* you may not use this file except in compliance with the License.
|
|
67
|
+
* You may obtain a copy of the License at
|
|
68
|
+
*
|
|
69
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
70
|
+
*
|
|
71
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
72
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
73
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
74
|
+
* See the License for the specific language governing permissions and
|
|
75
|
+
* limitations under the License.
|
|
76
|
+
*/((t+16)/116)}function W(t){return 116*X(t/100)-16}function G(t){const e=t/255;return e<=.040449936?e/12.92*100:100*Math.pow((e+.055)/1.055,2.4)}function J(t){const e=t/100;let r=0;return r=e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055,a=0,n=255,(o=Math.round(255*r))<a?a:o>n?n:o;var a,n,o}function X(t){const e=24389/27;return t>216/24389?Math.pow(t,1/3):(e*t+16)/116}class Z{static make(t=function(){return U}(),e=200/Math.PI*Y(50)/100,r=50,a=2,n=!1){const o=t,i=.401288*o[0]+.650173*o[1]+-.051461*o[2],s=-.250268*o[0]+1.204414*o[1]+.045854*o[2],c=-.002079*o[0]+.048952*o[1]+.953127*o[2],h=.8+a/10,l=h>=.9?O(.59,.69,10*(h-.9)):O(.525,.59,10*(h-.8));let u=n?1:h*(1-1/3.6*Math.exp((-e-42)/92));u=u>1?1:u<0?0:u;const d=h,m=[u*(100/i)+1-u,u*(100/s)+1-u,u*(100/c)+1-u],f=1/(5*e+1),g=f*f*f*f,p=1-g,y=g*e+.1*p*p*Math.cbrt(5*e),b=Y(r)/t[1],P=1.48+Math.sqrt(b),w=.725/Math.pow(b,.2),C=w,M=[Math.pow(y*m[0]*i/100,.42),Math.pow(y*m[1]*s/100,.42),Math.pow(y*m[2]*c/100,.42)],k=[400*M[0]/(M[0]+27.13),400*M[1]/(M[1]+27.13),400*M[2]/(M[2]+27.13)];return new Z(b,(2*k[0]+k[1]+.05*k[2])*w,w,C,l,d,m,y,Math.pow(y,.25),P)}constructor(t,e,r,a,n,o,i,s,c,h){this.n=t,this.aw=e,this.nbb=r,this.ncb=a,this.c=n,this.nc=o,this.rgbD=i,this.fl=s,this.fLRoot=c,this.z=h}}Z.DEFAULT=Z.make();
|
|
77
|
+
/**
|
|
78
|
+
* @license
|
|
79
|
+
* Copyright 2021 Google LLC
|
|
80
|
+
*
|
|
81
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
82
|
+
* you may not use this file except in compliance with the License.
|
|
83
|
+
* You may obtain a copy of the License at
|
|
84
|
+
*
|
|
85
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
86
|
+
*
|
|
87
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
88
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
89
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
90
|
+
* See the License for the specific language governing permissions and
|
|
91
|
+
* limitations under the License.
|
|
92
|
+
*/
|
|
93
|
+
class Q{constructor(t,e,r,a,n,o,i,s,c){this.hue=t,this.chroma=e,this.j=r,this.q=a,this.m=n,this.s=o,this.jstar=i,this.astar=s,this.bstar=c}distance(t){const e=this.jstar-t.jstar,r=this.astar-t.astar,a=this.bstar-t.bstar,n=Math.sqrt(e*e+r*r+a*a);return 1.41*Math.pow(n,.63)}static fromInt(t){return Q.fromIntInViewingConditions(t,Z.DEFAULT)}static fromIntInViewingConditions(t,e){const r=(65280&t)>>8,a=255&t,n=G((16711680&t)>>16),o=G(r),i=G(a),s=.41233895*n+.35762064*o+.18051042*i,c=.2126*n+.7152*o+.0722*i,h=.01932141*n+.11916382*o+.95034478*i,l=.401288*s+.650173*c-.051461*h,u=-.250268*s+1.204414*c+.045854*h,d=-.002079*s+.048952*c+.953127*h,m=e.rgbD[0]*l,f=e.rgbD[1]*u,g=e.rgbD[2]*d,p=Math.pow(e.fl*Math.abs(m)/100,.42),y=Math.pow(e.fl*Math.abs(f)/100,.42),b=Math.pow(e.fl*Math.abs(g)/100,.42),P=400*F(m)*p/(p+27.13),w=400*F(f)*y/(y+27.13),C=400*F(g)*b/(b+27.13),M=(11*P+-12*w+C)/11,k=(P+w-2*C)/9,v=(20*P+20*w+21*C)/20,_=(40*P+20*w+C)/20,A=180*Math.atan2(k,M)/Math.PI,D=A<0?A+360:A>=360?A-360:A,S=D*Math.PI/180,E=_*e.nbb,x=100*Math.pow(E/e.aw,e.c*e.z),T=4/e.c*Math.sqrt(x/100)*(e.aw+4)*e.fLRoot,I=D<20.14?D+360:D,O=5e4/13*(.25*(Math.cos(I*Math.PI/180+2)+3.8))*e.nc*e.ncb*Math.sqrt(M*M+k*k)/(v+.305),L=Math.pow(O,.9)*Math.pow(1.64-Math.pow(.29,e.n),.73),R=L*Math.sqrt(x/100),$=R*e.fLRoot,B=50*Math.sqrt(L*e.c/(e.aw+4)),V=(1+100*.007)*x/(1+.007*x),U=1/.0228*Math.log(1+.0228*$),H=U*Math.cos(S),N=U*Math.sin(S);return new Q(D,R,x,T,$,B,V,H,N)}static fromJch(t,e,r){return Q.fromJchInViewingConditions(t,e,r,Z.DEFAULT)}static fromJchInViewingConditions(t,e,r,a){const n=4/a.c*Math.sqrt(t/100)*(a.aw+4)*a.fLRoot,o=e*a.fLRoot,i=e/Math.sqrt(t/100),s=50*Math.sqrt(i*a.c/(a.aw+4)),c=r*Math.PI/180,h=(1+100*.007)*t/(1+.007*t),l=1/.0228*Math.log(1+.0228*o),u=l*Math.cos(c),d=l*Math.sin(c);return new Q(r,e,t,n,o,s,h,u,d)}static fromUcs(t,e,r){return Q.fromUcsInViewingConditions(t,e,r,Z.DEFAULT)}static fromUcsInViewingConditions(t,e,r,a){const n=e,o=r,i=Math.sqrt(n*n+o*o),s=(Math.exp(.0228*i)-1)/.0228/a.fLRoot;let c=Math.atan2(o,n)*(180/Math.PI);c<0&&(c+=360);const h=t/(1-.007*(t-100));return Q.fromJchInViewingConditions(h,s,c,a)}toInt(){return this.viewed(Z.DEFAULT)}viewed(t){const e=0===this.chroma||0===this.j?0:this.chroma/Math.sqrt(this.j/100),r=Math.pow(e/Math.pow(1.64-Math.pow(.29,t.n),.73),1/.9),a=this.hue*Math.PI/180,n=.25*(Math.cos(a+2)+3.8),o=t.aw*Math.pow(this.j/100,1/t.c/t.z),i=n*(5e4/13)*t.nc*t.ncb,s=o/t.nbb,c=Math.sin(a),h=Math.cos(a),l=23*(s+.305)*r/(23*i+11*r*h+108*r*c),u=l*h,d=l*c,m=(460*s+451*u+288*d)/1403,f=(460*s-891*u-261*d)/1403,g=(460*s-220*u-6300*d)/1403,p=Math.max(0,27.13*Math.abs(m)/(400-Math.abs(m))),y=F(m)*(100/t.fl)*Math.pow(p,1/.42),b=Math.max(0,27.13*Math.abs(f)/(400-Math.abs(f))),P=F(f)*(100/t.fl)*Math.pow(b,1/.42),w=Math.max(0,27.13*Math.abs(g)/(400-Math.abs(g))),C=F(g)*(100/t.fl)*Math.pow(w,1/.42),M=y/t.rgbD[0],k=P/t.rgbD[1],v=C/t.rgbD[2],_=function(t,e,r){const a=V,n=a[0][0]*t+a[0][1]*e+a[0][2]*r,o=a[1][0]*t+a[1][1]*e+a[1][2]*r,i=a[2][0]*t+a[2][1]*e+a[2][2]*r;return H(J(n),J(o),J(i))}(1.86206786*M-1.01125463*k+.14918677*v,.38752654*M+.62144744*k-.00897398*v,-.0158415*M-.03412294*k+1.04996444*v);return _}static fromXyzInViewingConditions(t,e,r,a){const n=.401288*t+.650173*e-.051461*r,o=-.250268*t+1.204414*e+.045854*r,i=-.002079*t+.048952*e+.953127*r,s=a.rgbD[0]*n,c=a.rgbD[1]*o,h=a.rgbD[2]*i,l=Math.pow(a.fl*Math.abs(s)/100,.42),u=Math.pow(a.fl*Math.abs(c)/100,.42),d=Math.pow(a.fl*Math.abs(h)/100,.42),m=400*F(s)*l/(l+27.13),f=400*F(c)*u/(u+27.13),g=400*F(h)*d/(d+27.13),p=(11*m+-12*f+g)/11,y=(m+f-2*g)/9,b=(20*m+20*f+21*g)/20,P=(40*m+20*f+g)/20,w=180*Math.atan2(y,p)/Math.PI,C=w<0?w+360:w>=360?w-360:w,M=C*Math.PI/180,k=P*a.nbb,v=100*Math.pow(k/a.aw,a.c*a.z),_=4/a.c*Math.sqrt(v/100)*(a.aw+4)*a.fLRoot,A=C<20.14?C+360:C,D=5e4/13*(1/4*(Math.cos(A*Math.PI/180+2)+3.8))*a.nc*a.ncb*Math.sqrt(p*p+y*y)/(b+.305),S=Math.pow(D,.9)*Math.pow(1.64-Math.pow(.29,a.n),.73),E=S*Math.sqrt(v/100),x=E*a.fLRoot,T=50*Math.sqrt(S*a.c/(a.aw+4)),I=(1+100*.007)*v/(1+.007*v),O=Math.log(1+.0228*x)/.0228,L=O*Math.cos(M),R=O*Math.sin(M);return new Q(C,E,v,_,x,T,I,L,R)}xyzInViewingConditions(t){const e=0===this.chroma||0===this.j?0:this.chroma/Math.sqrt(this.j/100),r=Math.pow(e/Math.pow(1.64-Math.pow(.29,t.n),.73),1/.9),a=this.hue*Math.PI/180,n=.25*(Math.cos(a+2)+3.8),o=t.aw*Math.pow(this.j/100,1/t.c/t.z),i=n*(5e4/13)*t.nc*t.ncb,s=o/t.nbb,c=Math.sin(a),h=Math.cos(a),l=23*(s+.305)*r/(23*i+11*r*h+108*r*c),u=l*h,d=l*c,m=(460*s+451*u+288*d)/1403,f=(460*s-891*u-261*d)/1403,g=(460*s-220*u-6300*d)/1403,p=Math.max(0,27.13*Math.abs(m)/(400-Math.abs(m))),y=F(m)*(100/t.fl)*Math.pow(p,1/.42),b=Math.max(0,27.13*Math.abs(f)/(400-Math.abs(f))),P=F(f)*(100/t.fl)*Math.pow(b,1/.42),w=Math.max(0,27.13*Math.abs(g)/(400-Math.abs(g))),C=F(g)*(100/t.fl)*Math.pow(w,1/.42),M=y/t.rgbD[0],k=P/t.rgbD[1],v=C/t.rgbD[2];return[1.86206786*M-1.01125463*k+.14918677*v,.38752654*M+.62144744*k-.00897398*v,-.0158415*M-.03412294*k+1.04996444*v]}}
|
|
94
|
+
/**
|
|
95
|
+
* @license
|
|
96
|
+
* Copyright 2021 Google LLC
|
|
97
|
+
*
|
|
98
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
99
|
+
* you may not use this file except in compliance with the License.
|
|
100
|
+
* You may obtain a copy of the License at
|
|
101
|
+
*
|
|
102
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
103
|
+
*
|
|
104
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
105
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
106
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
107
|
+
* See the License for the specific language governing permissions and
|
|
108
|
+
* limitations under the License.
|
|
109
|
+
*/class tt{static sanitizeRadians(t){return(t+8*Math.PI)%(2*Math.PI)}static trueDelinearized(t){const e=t/100;let r=0;return r=e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055,255*r}static chromaticAdaptation(t){const e=Math.pow(Math.abs(t),.42);return 400*F(t)*e/(e+27.13)}static hueOf(t){const e=$(t,tt.SCALED_DISCOUNT_FROM_LINRGB),r=tt.chromaticAdaptation(e[0]),a=tt.chromaticAdaptation(e[1]),n=tt.chromaticAdaptation(e[2]),o=(11*r+-12*a+n)/11,i=(r+a-2*n)/9;return Math.atan2(i,o)}static areInCyclicOrder(t,e,r){return tt.sanitizeRadians(e-t)<tt.sanitizeRadians(r-t)}static intercept(t,e,r){return(e-t)/(r-t)}static lerpPoint(t,e,r){return[t[0]+(r[0]-t[0])*e,t[1]+(r[1]-t[1])*e,t[2]+(r[2]-t[2])*e]}static setCoordinate(t,e,r,a){const n=tt.intercept(t[a],e,r[a]);return tt.lerpPoint(t,n,r)}static isBounded(t){return 0<=t&&t<=100}static nthVertex(t,e){const r=tt.Y_FROM_LINRGB[0],a=tt.Y_FROM_LINRGB[1],n=tt.Y_FROM_LINRGB[2],o=e%4<=1?0:100,i=e%2==0?0:100;if(e<4){const e=o,s=i,c=(t-e*a-s*n)/r;return tt.isBounded(c)?[c,e,s]:[-1,-1,-1]}if(e<8){const e=o,s=i,c=(t-s*r-e*n)/a;return tt.isBounded(c)?[s,c,e]:[-1,-1,-1]}{const e=o,s=i,c=(t-e*r-s*a)/n;return tt.isBounded(c)?[e,s,c]:[-1,-1,-1]}}static bisectToSegment(t,e){let r=[-1,-1,-1],a=r,n=0,o=0,i=!1,s=!0;for(let c=0;c<12;c++){const h=tt.nthVertex(t,c);if(h[0]<0)continue;const l=tt.hueOf(h);i?(s||tt.areInCyclicOrder(n,l,o))&&(s=!1,tt.areInCyclicOrder(n,e,l)?(a=h,o=l):(r=h,n=l)):(r=h,a=h,n=l,o=l,i=!0)}return[r,a]}static midpoint(t,e){return[(t[0]+e[0])/2,(t[1]+e[1])/2,(t[2]+e[2])/2]}static criticalPlaneBelow(t){return Math.floor(t-.5)}static criticalPlaneAbove(t){return Math.ceil(t-.5)}static bisectToLimit(t,e){const r=tt.bisectToSegment(t,e);let a=r[0],n=tt.hueOf(a),o=r[1];for(let t=0;t<3;t++)if(a[t]!==o[t]){let r=-1,i=255;a[t]<o[t]?(r=tt.criticalPlaneBelow(tt.trueDelinearized(a[t])),i=tt.criticalPlaneAbove(tt.trueDelinearized(o[t]))):(r=tt.criticalPlaneAbove(tt.trueDelinearized(a[t])),i=tt.criticalPlaneBelow(tt.trueDelinearized(o[t])));for(let s=0;s<8&&!(Math.abs(i-r)<=1);s++){const s=Math.floor((r+i)/2),c=tt.CRITICAL_PLANES[s],h=tt.setCoordinate(a,c,o,t),l=tt.hueOf(h);tt.areInCyclicOrder(n,e,l)?(o=h,i=s):(a=h,n=l,r=s)}}return tt.midpoint(a,o)}static inverseChromaticAdaptation(t){const e=Math.abs(t),r=Math.max(0,27.13*e/(400-e));return F(t)*Math.pow(r,1/.42)}static findResultByJ(t,e,r){let a=11*Math.sqrt(r);const n=Z.DEFAULT,o=1/Math.pow(1.64-Math.pow(.29,n.n),.73),i=.25*(Math.cos(t+2)+3.8)*(5e4/13)*n.nc*n.ncb,s=Math.sin(t),c=Math.cos(t);for(let t=0;t<5;t++){const h=a/100,l=0===e||0===a?0:e/Math.sqrt(h),u=Math.pow(l*o,1/.9),d=n.aw*Math.pow(h,1/n.c/n.z)/n.nbb,m=23*(d+.305)*u/(23*i+11*u*c+108*u*s),f=m*c,g=m*s,p=(460*d+451*f+288*g)/1403,y=(460*d-891*f-261*g)/1403,b=(460*d-220*f-6300*g)/1403,P=$([tt.inverseChromaticAdaptation(p),tt.inverseChromaticAdaptation(y),tt.inverseChromaticAdaptation(b)],tt.LINRGB_FROM_SCALED_DISCOUNT);if(P[0]<0||P[1]<0||P[2]<0)return 0;const w=tt.Y_FROM_LINRGB[0],C=tt.Y_FROM_LINRGB[1],M=tt.Y_FROM_LINRGB[2],k=w*P[0]+C*P[1]+M*P[2];if(k<=0)return 0;if(4===t||Math.abs(k-r)<.002)return P[0]>100.01||P[1]>100.01||P[2]>100.01?0:N(P);a-=(k-r)*a/(2*k)}return 0}static solveToInt(t,e,r){if(e<1e-4||r<1e-4||r>99.9999)return function(t){const e=J(Y(t));return H(e,e,e)}(r);const a=(t=R(t))/180*Math.PI,n=Y(r),o=tt.findResultByJ(a,e,n);if(0!==o)return o;return N(tt.bisectToLimit(n,a))}static solveToCam(t,e,r){return Q.fromInt(tt.solveToInt(t,e,r))}}tt.SCALED_DISCOUNT_FROM_LINRGB=[[.001200833568784504,.002389694492170889,.0002795742885861124],[.0005891086651375999,.0029785502573438758,.0003270666104008398],[.00010146692491640572,.0005364214359186694,.0032979401770712076]],tt.LINRGB_FROM_SCALED_DISCOUNT=[[1373.2198709594231,-1100.4251190754821,-7.278681089101213],[-271.815969077903,559.6580465940733,-32.46047482791194],[1.9622899599665666,-57.173814538844006,308.7233197812385]],tt.Y_FROM_LINRGB=[.2126,.7152,.0722],tt.CRITICAL_PLANES=[.015176349177441876,.045529047532325624,.07588174588720938,.10623444424209313,.13658714259697685,.16693984095186062,.19729253930674434,.2276452376616281,.2579979360165119,.28835063437139563,.3188300904430532,.350925934958123,.3848314933096426,.42057480301049466,.458183274052838,.4976837250274023,.5391024159806381,.5824650784040898,.6277969426914107,.6751227633498623,.7244668422128921,.775853049866786,.829304845476233,.8848452951698498,.942497089126609,1.0022825574869039,1.0642236851973577,1.1283421258858297,1.1946592148522128,1.2631959812511864,1.3339731595349034,1.407011200216447,1.4823302800086415,1.5599503113873272,1.6398909516233677,1.7221716113234105,1.8068114625156377,1.8938294463134073,1.9832442801866852,2.075074464868551,2.1693382909216234,2.2660538449872063,2.36523901573795,2.4669114995532007,2.5710888059345764,2.6777882626779785,2.7870270208169257,2.898822059350997,3.0131901897720907,3.1301480604002863,3.2497121605402226,3.3718988244681087,3.4967242352587946,3.624204428461639,3.754355295633311,3.887192587735158,4.022731918402185,4.160988767090289,4.301978482107941,4.445716283538092,4.592217266055746,4.741496401646282,4.893568542229298,5.048448422192488,5.20615066083972,5.3666897647573375,5.5300801301023865,5.696336044816294,5.865471690767354,6.037501145825082,6.212438385869475,6.390297286737924,6.571091626112461,6.7548350853498045,6.941541251256611,7.131223617812143,7.323895587840543,7.5195704746346665,7.7182615035334345,7.919981813454504,8.124744458384042,8.332562408825165,8.543448553206703,8.757415699253682,8.974476575321063,9.194643831691977,9.417930041841839,9.644347703669503,9.873909240696694,10.106627003236781,10.342513269534024,10.58158024687427,10.8238400726681,11.069304815507364,11.317986476196008,11.569896988756009,11.825048221409341,12.083451977536606,12.345119996613247,12.610063955123938,12.878295467455942,13.149826086772048,13.42466730586372,13.702830557985108,13.984327217668513,14.269168601521828,14.55736596900856,14.848930523210871,15.143873411576273,15.44220572664832,15.743938506781891,16.04908273684337,16.35764934889634,16.66964922287304,16.985093187232053,17.30399201960269,17.62635644741625,17.95219714852476,18.281524751807332,18.614349837764564,18.95068293910138,19.290534541298456,19.633915083172692,19.98083495742689,20.331304511189067,20.685334046541502,21.042933821039977,21.404114048223256,21.76888489811322,22.137256497705877,22.50923893145328,22.884842241736916,23.264076429332462,23.6469514538663,24.033477234264016,24.42366364919083,24.817520537484558,25.21505769858089,25.61628489293138,26.021211842414342,26.429848230738664,26.842203703840827,27.258287870275353,27.678110301598522,28.10168053274597,28.529008062403893,28.96010235337422,29.39497283293396,29.83362889318845,30.276079891419332,30.722335150426627,31.172403958865512,31.62629557157785,32.08401920991837,32.54558406207592,33.010999283389665,33.4802739966603,33.953417292456834,34.430438229418264,34.911345834551085,35.39614910352207,35.88485700094671,36.37747846067349,36.87402238606382,37.37449765026789,37.87891309649659,38.38727753828926,38.89959975977785,39.41588851594697,39.93615253289054,40.460400508064545,40.98864111053629,41.520882981230194,42.05713473317016,42.597404951718396,43.141702194811224,43.6900349931913,44.24241185063697,44.798841244188324,45.35933162437017,45.92389141541209,46.49252901546552,47.065252796817916,47.64207110610409,48.22299226451468,48.808024568002054,49.3971762874833,49.9904556690408,50.587870934119984,51.189430279724725,51.79514187861014,52.40501387947288,53.0190544071392,53.637271562750364,54.259673423945976,54.88626804504493,55.517063457223934,56.15206766869424,56.79128866487574,57.43473440856916,58.08241284012621,58.734331877617365,59.39049941699807,60.05092333227251,60.715611475655585,61.38457167773311,62.057811747619894,62.7353394731159,63.417162620860914,64.10328893648692,64.79372614476921,65.48848194977529,66.18756403501224,66.89098006357258,67.59873767827808,68.31084450182222,69.02730813691093,69.74813616640164,70.47333615344107,71.20291564160104,71.93688215501312,72.67524319850172,73.41800625771542,74.16517879925733,74.9167682708136,75.67278210128072,76.43322770089146,77.1981124613393,77.96744375590167,78.74122893956174,79.51947534912904,80.30219030335869,81.08938110306934,81.88105503125999,82.67721935322541,83.4778813166706,84.28304815182372,85.09272707154808,85.90692527145302,86.72564993000343,87.54890820862819,88.3767072518277,89.2090541872801,90.04595612594655,90.88742016217518,91.73345337380438,92.58406282226491,93.43925555268066,94.29903859396902,95.16341895893969,96.03240364439274,96.9059996312159,97.78421388448044,98.6670533535366,99.55452497210776];
|
|
110
|
+
/**
|
|
111
|
+
* @license
|
|
112
|
+
* Copyright 2021 Google LLC
|
|
113
|
+
*
|
|
114
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
115
|
+
* you may not use this file except in compliance with the License.
|
|
116
|
+
* You may obtain a copy of the License at
|
|
117
|
+
*
|
|
118
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
119
|
+
*
|
|
120
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
121
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
122
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
123
|
+
* See the License for the specific language governing permissions and
|
|
124
|
+
* limitations under the License.
|
|
125
|
+
*/
|
|
126
|
+
class et{static from(t,e,r){return new et(tt.solveToInt(t,e,r))}static fromInt(t){return new et(t)}toInt(){return this.argb}get hue(){return this.internalHue}set hue(t){this.setInternalState(tt.solveToInt(t,this.internalChroma,this.internalTone))}get chroma(){return this.internalChroma}set chroma(t){this.setInternalState(tt.solveToInt(this.internalHue,t,this.internalTone))}get tone(){return this.internalTone}set tone(t){this.setInternalState(tt.solveToInt(this.internalHue,this.internalChroma,t))}constructor(t){this.argb=t;const e=Q.fromInt(t);this.internalHue=e.hue,this.internalChroma=e.chroma,this.internalTone=K(t),this.argb=t}setInternalState(t){const e=Q.fromInt(t);this.internalHue=e.hue,this.internalChroma=e.chroma,this.internalTone=K(t),this.argb=t}inViewingConditions(t){const e=Q.fromInt(this.toInt()).xyzInViewingConditions(t),r=Q.fromXyzInViewingConditions(e[0],e[1],e[2],Z.make());return et.from(r.hue,r.chroma,W(e[1]))}}
|
|
127
|
+
/**
|
|
128
|
+
* @license
|
|
129
|
+
* Copyright 2022 Google LLC
|
|
130
|
+
*
|
|
131
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
132
|
+
* you may not use this file except in compliance with the License.
|
|
133
|
+
* You may obtain a copy of the License at
|
|
134
|
+
*
|
|
135
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
136
|
+
*
|
|
137
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
138
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
139
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
140
|
+
* See the License for the specific language governing permissions and
|
|
141
|
+
* limitations under the License.
|
|
142
|
+
*/class rt{static ratioOfTones(t,e){return t=L(0,100,t),e=L(0,100,e),rt.ratioOfYs(Y(t),Y(e))}static ratioOfYs(t,e){const r=t>e?t:e;return(r+5)/((r===e?t:e)+5)}static lighter(t,e){if(t<0||t>100)return-1;const r=Y(t),a=e*(r+5)-5,n=rt.ratioOfYs(a,r),o=Math.abs(n-e);if(n<e&&o>.04)return-1;const i=W(a)+.4;return i<0||i>100?-1:i}static darker(t,e){if(t<0||t>100)return-1;const r=Y(t),a=(r+5)/e-5,n=rt.ratioOfYs(r,a),o=Math.abs(n-e);if(n<e&&o>.04)return-1;const i=W(a)-.4;return i<0||i>100?-1:i}static lighterUnsafe(t,e){const r=rt.lighter(t,e);return r<0?100:r}static darkerUnsafe(t,e){const r=rt.darker(t,e);return r<0?0:r}}
|
|
143
|
+
/**
|
|
144
|
+
* @license
|
|
145
|
+
* Copyright 2023 Google LLC
|
|
146
|
+
*
|
|
147
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
148
|
+
* you may not use this file except in compliance with the License.
|
|
149
|
+
* You may obtain a copy of the License at
|
|
150
|
+
*
|
|
151
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
152
|
+
*
|
|
153
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
154
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
155
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
156
|
+
* See the License for the specific language governing permissions and
|
|
157
|
+
* limitations under the License.
|
|
158
|
+
*/class at{static isDisliked(t){const e=Math.round(t.hue)>=90&&Math.round(t.hue)<=111,r=Math.round(t.chroma)>16,a=Math.round(t.tone)<65;return e&&r&&a}static fixIfDisliked(t){return at.isDisliked(t)?et.from(t.hue,t.chroma,70):t}}
|
|
159
|
+
/**
|
|
160
|
+
* @license
|
|
161
|
+
* Copyright 2022 Google LLC
|
|
162
|
+
*
|
|
163
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
164
|
+
* you may not use this file except in compliance with the License.
|
|
165
|
+
* You may obtain a copy of the License at
|
|
166
|
+
*
|
|
167
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
168
|
+
*
|
|
169
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
170
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
171
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
172
|
+
* See the License for the specific language governing permissions and
|
|
173
|
+
* limitations under the License.
|
|
174
|
+
*/class nt{static fromPalette(t){return new nt(t.name??"",t.palette,t.tone,t.isBackground??!1,t.background,t.secondBackground,t.contrastCurve,t.toneDeltaPair)}constructor(t,e,r,a,n,o,i,s){if(this.name=t,this.palette=e,this.tone=r,this.isBackground=a,this.background=n,this.secondBackground=o,this.contrastCurve=i,this.toneDeltaPair=s,this.hctCache=new Map,!n&&o)throw new Error(`Color ${t} has secondBackgrounddefined, but background is not defined.`);if(!n&&i)throw new Error(`Color ${t} has contrastCurvedefined, but background is not defined.`);if(n&&!i)throw new Error(`Color ${t} has backgrounddefined, but contrastCurve is not defined.`)}getArgb(t){return this.getHct(t).toInt()}getHct(t){const e=this.hctCache.get(t);if(null!=e)return e;const r=this.getTone(t),a=this.palette(t).getHct(r);return this.hctCache.size>4&&this.hctCache.clear(),this.hctCache.set(t,a),a}getTone(t){const e=t.contrastLevel<0;if(this.toneDeltaPair){const r=this.toneDeltaPair(t),a=r.roleA,n=r.roleB,o=r.delta,i=r.polarity,s=r.stayTogether,c=this.background(t).getTone(t),h="nearer"===i||"lighter"===i&&!t.isDark||"darker"===i&&t.isDark,l=h?a:n,u=h?n:a,d=this.name===l.name,m=t.isDark?1:-1,f=l.contrastCurve.get(t.contrastLevel),g=u.contrastCurve.get(t.contrastLevel),p=l.tone(t);let y=rt.ratioOfTones(c,p)>=f?p:nt.foregroundTone(c,f);const b=u.tone(t);let P=rt.ratioOfTones(c,b)>=g?b:nt.foregroundTone(c,g);return e&&(y=nt.foregroundTone(c,f),P=nt.foregroundTone(c,g)),(P-y)*m>=o||(P=L(0,100,y+o*m),(P-y)*m>=o||(y=L(0,100,P-o*m))),50<=y&&y<60?m>0?(y=60,P=Math.max(P,y+o*m)):(y=49,P=Math.min(P,y+o*m)):50<=P&&P<60&&(s?m>0?(y=60,P=Math.max(P,y+o*m)):(y=49,P=Math.min(P,y+o*m)):P=m>0?60:49),d?y:P}{let r=this.tone(t);if(null==this.background)return r;const a=this.background(t).getTone(t),n=this.contrastCurve.get(t.contrastLevel);if(rt.ratioOfTones(a,r)>=n||(r=nt.foregroundTone(a,n)),e&&(r=nt.foregroundTone(a,n)),this.isBackground&&50<=r&&r<60&&(r=rt.ratioOfTones(49,a)>=n?49:60),this.secondBackground){const[e,a]=[this.background,this.secondBackground],[o,i]=[e(t).getTone(t),a(t).getTone(t)],[s,c]=[Math.max(o,i),Math.min(o,i)];if(rt.ratioOfTones(s,r)>=n&&rt.ratioOfTones(c,r)>=n)return r;const h=rt.lighter(s,n),l=rt.darker(c,n),u=[];-1!==h&&u.push(h),-1!==l&&u.push(l);return nt.tonePrefersLightForeground(o)||nt.tonePrefersLightForeground(i)?h<0?100:h:1===u.length?u[0]:l<0?0:l}return r}}static foregroundTone(t,e){const r=rt.lighterUnsafe(t,e),a=rt.darkerUnsafe(t,e),n=rt.ratioOfTones(r,t),o=rt.ratioOfTones(a,t);if(nt.tonePrefersLightForeground(t)){const t=Math.abs(n-o)<.1&&n<e&&o<e;return n>=e||n>=o||t?r:a}return o>=e||o>=n?a:r}static tonePrefersLightForeground(t){return Math.round(t)<60}static toneAllowsLightForeground(t){return Math.round(t)<=49}static enableLightForeground(t){return nt.tonePrefersLightForeground(t)&&!nt.toneAllowsLightForeground(t)?49:t}}
|
|
175
|
+
/**
|
|
176
|
+
* @license
|
|
177
|
+
* Copyright 2021 Google LLC
|
|
178
|
+
*
|
|
179
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
180
|
+
* you may not use this file except in compliance with the License.
|
|
181
|
+
* You may obtain a copy of the License at
|
|
182
|
+
*
|
|
183
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
184
|
+
*
|
|
185
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
186
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
187
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
188
|
+
* See the License for the specific language governing permissions and
|
|
189
|
+
* limitations under the License.
|
|
190
|
+
*/class ot{static fromInt(t){const e=et.fromInt(t);return ot.fromHct(e)}static fromHct(t){return new ot(t.hue,t.chroma,t)}static fromHueAndChroma(t,e){const r=new it(t,e).create();return new ot(t,e,r)}constructor(t,e,r){this.hue=t,this.chroma=e,this.keyColor=r,this.cache=new Map}tone(t){let e=this.cache.get(t);return void 0===e&&(e=et.from(this.hue,this.chroma,t).toInt(),this.cache.set(t,e)),e}getHct(t){return et.fromInt(this.tone(t))}}class it{constructor(t,e){this.hue=t,this.requestedChroma=e,this.chromaCache=new Map,this.maxChromaValue=200}create(){let t=0,e=100;for(;t<e;){const r=Math.floor((t+e)/2),a=this.maxChroma(r)<this.maxChroma(r+1);if(this.maxChroma(r)>=this.requestedChroma-.01)if(Math.abs(t-50)<Math.abs(e-50))e=r;else{if(t===r)return et.from(this.hue,this.requestedChroma,t);t=r}else a?t=r+1:e=r}return et.from(this.hue,this.requestedChroma,t)}maxChroma(t){if(this.chromaCache.has(t))return this.chromaCache.get(t);const e=et.from(this.hue,this.maxChromaValue,t).chroma;return this.chromaCache.set(t,e),e}}
|
|
191
|
+
/**
|
|
192
|
+
* @license
|
|
193
|
+
* Copyright 2023 Google LLC
|
|
194
|
+
*
|
|
195
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
196
|
+
* you may not use this file except in compliance with the License.
|
|
197
|
+
* You may obtain a copy of the License at
|
|
198
|
+
*
|
|
199
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
200
|
+
*
|
|
201
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
202
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
203
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
204
|
+
* See the License for the specific language governing permissions and
|
|
205
|
+
* limitations under the License.
|
|
206
|
+
*/class st{constructor(t,e,r,a){this.low=t,this.normal=e,this.medium=r,this.high=a}get(t){return t<=-1?this.low:t<0?O(this.low,this.normal,(t- -1)/1):t<.5?O(this.normal,this.medium,(t-0)/.5):t<1?O(this.medium,this.high,(t-.5)/.5):this.high}}
|
|
207
|
+
/**
|
|
208
|
+
* @license
|
|
209
|
+
* Copyright 2023 Google LLC
|
|
210
|
+
*
|
|
211
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
212
|
+
* you may not use this file except in compliance with the License.
|
|
213
|
+
* You may obtain a copy of the License at
|
|
214
|
+
*
|
|
215
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
216
|
+
*
|
|
217
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
218
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
219
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
220
|
+
* See the License for the specific language governing permissions and
|
|
221
|
+
* limitations under the License.
|
|
222
|
+
*/class ct{constructor(t,e,r,a,n){this.roleA=t,this.roleB=e,this.delta=r,this.polarity=a,this.stayTogether=n}}
|
|
223
|
+
/**
|
|
224
|
+
* @license
|
|
225
|
+
* Copyright 2022 Google LLC
|
|
226
|
+
*
|
|
227
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
228
|
+
* you may not use this file except in compliance with the License.
|
|
229
|
+
* You may obtain a copy of the License at
|
|
230
|
+
*
|
|
231
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
232
|
+
*
|
|
233
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
234
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
235
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
236
|
+
* See the License for the specific language governing permissions and
|
|
237
|
+
* limitations under the License.
|
|
238
|
+
*/var ht,lt,ut,dt,mt,ft,gt,pt,yt,bt,Pt;
|
|
239
|
+
/**
|
|
240
|
+
* @license
|
|
241
|
+
* Copyright 2022 Google LLC
|
|
242
|
+
*
|
|
243
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
244
|
+
* you may not use this file except in compliance with the License.
|
|
245
|
+
* You may obtain a copy of the License at
|
|
246
|
+
*
|
|
247
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
248
|
+
*
|
|
249
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
250
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
251
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
252
|
+
* See the License for the specific language governing permissions and
|
|
253
|
+
* limitations under the License.
|
|
254
|
+
*/
|
|
255
|
+
function wt(t){return t.variant===ht.FIDELITY||t.variant===ht.CONTENT}function Ct(t){return t.variant===ht.MONOCHROME}!function(t){t[t.MONOCHROME=0]="MONOCHROME",t[t.NEUTRAL=1]="NEUTRAL",t[t.TONAL_SPOT=2]="TONAL_SPOT",t[t.VIBRANT=3]="VIBRANT",t[t.EXPRESSIVE=4]="EXPRESSIVE",t[t.FIDELITY=5]="FIDELITY",t[t.CONTENT=6]="CONTENT",t[t.RAINBOW=7]="RAINBOW",t[t.FRUIT_SALAD=8]="FRUIT_SALAD"}(ht||(ht={}));class Mt{static highestSurface(t){return t.isDark?Mt.surfaceBright:Mt.surfaceDim}}Mt.contentAccentToneDelta=15,Mt.primaryPaletteKeyColor=nt.fromPalette({name:"primary_palette_key_color",palette:t=>t.primaryPalette,tone:t=>t.primaryPalette.keyColor.tone}),Mt.secondaryPaletteKeyColor=nt.fromPalette({name:"secondary_palette_key_color",palette:t=>t.secondaryPalette,tone:t=>t.secondaryPalette.keyColor.tone}),Mt.tertiaryPaletteKeyColor=nt.fromPalette({name:"tertiary_palette_key_color",palette:t=>t.tertiaryPalette,tone:t=>t.tertiaryPalette.keyColor.tone}),Mt.neutralPaletteKeyColor=nt.fromPalette({name:"neutral_palette_key_color",palette:t=>t.neutralPalette,tone:t=>t.neutralPalette.keyColor.tone}),Mt.neutralVariantPaletteKeyColor=nt.fromPalette({name:"neutral_variant_palette_key_color",palette:t=>t.neutralVariantPalette,tone:t=>t.neutralVariantPalette.keyColor.tone}),Mt.background=nt.fromPalette({name:"background",palette:t=>t.neutralPalette,tone:t=>t.isDark?6:98,isBackground:!0}),Mt.onBackground=nt.fromPalette({name:"on_background",palette:t=>t.neutralPalette,tone:t=>t.isDark?90:10,background:t=>Mt.background,contrastCurve:new st(3,3,4.5,7)}),Mt.surface=nt.fromPalette({name:"surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?6:98,isBackground:!0}),Mt.surfaceDim=nt.fromPalette({name:"surface_dim",palette:t=>t.neutralPalette,tone:t=>t.isDark?6:new st(87,87,80,75).get(t.contrastLevel),isBackground:!0}),Mt.surfaceBright=nt.fromPalette({name:"surface_bright",palette:t=>t.neutralPalette,tone:t=>t.isDark?new st(24,24,29,34).get(t.contrastLevel):98,isBackground:!0}),Mt.surfaceContainerLowest=nt.fromPalette({name:"surface_container_lowest",palette:t=>t.neutralPalette,tone:t=>t.isDark?new st(4,4,2,0).get(t.contrastLevel):100,isBackground:!0}),Mt.surfaceContainerLow=nt.fromPalette({name:"surface_container_low",palette:t=>t.neutralPalette,tone:t=>t.isDark?new st(10,10,11,12).get(t.contrastLevel):new st(96,96,96,95).get(t.contrastLevel),isBackground:!0}),Mt.surfaceContainer=nt.fromPalette({name:"surface_container",palette:t=>t.neutralPalette,tone:t=>t.isDark?new st(12,12,16,20).get(t.contrastLevel):new st(94,94,92,90).get(t.contrastLevel),isBackground:!0}),Mt.surfaceContainerHigh=nt.fromPalette({name:"surface_container_high",palette:t=>t.neutralPalette,tone:t=>t.isDark?new st(17,17,21,25).get(t.contrastLevel):new st(92,92,88,85).get(t.contrastLevel),isBackground:!0}),Mt.surfaceContainerHighest=nt.fromPalette({name:"surface_container_highest",palette:t=>t.neutralPalette,tone:t=>t.isDark?new st(22,22,26,30).get(t.contrastLevel):new st(90,90,84,80).get(t.contrastLevel),isBackground:!0}),Mt.onSurface=nt.fromPalette({name:"on_surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?90:10,background:t=>Mt.highestSurface(t),contrastCurve:new st(4.5,7,11,21)}),Mt.surfaceVariant=nt.fromPalette({name:"surface_variant",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?30:90,isBackground:!0}),Mt.onSurfaceVariant=nt.fromPalette({name:"on_surface_variant",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?80:30,background:t=>Mt.highestSurface(t),contrastCurve:new st(3,4.5,7,11)}),Mt.inverseSurface=nt.fromPalette({name:"inverse_surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?90:20}),Mt.inverseOnSurface=nt.fromPalette({name:"inverse_on_surface",palette:t=>t.neutralPalette,tone:t=>t.isDark?20:95,background:t=>Mt.inverseSurface,contrastCurve:new st(4.5,7,11,21)}),Mt.outline=nt.fromPalette({name:"outline",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?60:50,background:t=>Mt.highestSurface(t),contrastCurve:new st(1.5,3,4.5,7)}),Mt.outlineVariant=nt.fromPalette({name:"outline_variant",palette:t=>t.neutralVariantPalette,tone:t=>t.isDark?30:80,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5)}),Mt.shadow=nt.fromPalette({name:"shadow",palette:t=>t.neutralPalette,tone:t=>0}),Mt.scrim=nt.fromPalette({name:"scrim",palette:t=>t.neutralPalette,tone:t=>0}),Mt.surfaceTint=nt.fromPalette({name:"surface_tint",palette:t=>t.primaryPalette,tone:t=>t.isDark?80:40,isBackground:!0}),Mt.primary=nt.fromPalette({name:"primary",palette:t=>t.primaryPalette,tone:t=>Ct(t)?t.isDark?100:0:t.isDark?80:40,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(3,4.5,7,7),toneDeltaPair:t=>new ct(Mt.primaryContainer,Mt.primary,10,"nearer",!1)}),Mt.onPrimary=nt.fromPalette({name:"on_primary",palette:t=>t.primaryPalette,tone:t=>Ct(t)?t.isDark?10:90:t.isDark?20:100,background:t=>Mt.primary,contrastCurve:new st(4.5,7,11,21)}),Mt.primaryContainer=nt.fromPalette({name:"primary_container",palette:t=>t.primaryPalette,tone:t=>wt(t)?t.sourceColorHct.tone:Ct(t)?t.isDark?85:25:t.isDark?30:90,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.primaryContainer,Mt.primary,10,"nearer",!1)}),Mt.onPrimaryContainer=nt.fromPalette({name:"on_primary_container",palette:t=>t.primaryPalette,tone:t=>wt(t)?nt.foregroundTone(Mt.primaryContainer.tone(t),4.5):Ct(t)?t.isDark?0:100:t.isDark?90:30,background:t=>Mt.primaryContainer,contrastCurve:new st(3,4.5,7,11)}),Mt.inversePrimary=nt.fromPalette({name:"inverse_primary",palette:t=>t.primaryPalette,tone:t=>t.isDark?40:80,background:t=>Mt.inverseSurface,contrastCurve:new st(3,4.5,7,7)}),Mt.secondary=nt.fromPalette({name:"secondary",palette:t=>t.secondaryPalette,tone:t=>t.isDark?80:40,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(3,4.5,7,7),toneDeltaPair:t=>new ct(Mt.secondaryContainer,Mt.secondary,10,"nearer",!1)}),Mt.onSecondary=nt.fromPalette({name:"on_secondary",palette:t=>t.secondaryPalette,tone:t=>Ct(t)?t.isDark?10:100:t.isDark?20:100,background:t=>Mt.secondary,contrastCurve:new st(4.5,7,11,21)}),Mt.secondaryContainer=nt.fromPalette({name:"secondary_container",palette:t=>t.secondaryPalette,tone:t=>{const e=t.isDark?30:90;return Ct(t)?t.isDark?30:85:wt(t)?function(t,e,r,a){let n=r,o=et.from(t,e,r);if(o.chroma<e){let r=o.chroma;for(;o.chroma<e;){n+=a?-1:1;const i=et.from(t,e,n);if(r>i.chroma)break;if(Math.abs(i.chroma-e)<.4)break;Math.abs(i.chroma-e)<Math.abs(o.chroma-e)&&(o=i),r=Math.max(r,i.chroma)}}return n}(t.secondaryPalette.hue,t.secondaryPalette.chroma,e,!t.isDark):e},isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.secondaryContainer,Mt.secondary,10,"nearer",!1)}),Mt.onSecondaryContainer=nt.fromPalette({name:"on_secondary_container",palette:t=>t.secondaryPalette,tone:t=>Ct(t)?t.isDark?90:10:wt(t)?nt.foregroundTone(Mt.secondaryContainer.tone(t),4.5):t.isDark?90:30,background:t=>Mt.secondaryContainer,contrastCurve:new st(3,4.5,7,11)}),Mt.tertiary=nt.fromPalette({name:"tertiary",palette:t=>t.tertiaryPalette,tone:t=>Ct(t)?t.isDark?90:25:t.isDark?80:40,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(3,4.5,7,7),toneDeltaPair:t=>new ct(Mt.tertiaryContainer,Mt.tertiary,10,"nearer",!1)}),Mt.onTertiary=nt.fromPalette({name:"on_tertiary",palette:t=>t.tertiaryPalette,tone:t=>Ct(t)?t.isDark?10:90:t.isDark?20:100,background:t=>Mt.tertiary,contrastCurve:new st(4.5,7,11,21)}),Mt.tertiaryContainer=nt.fromPalette({name:"tertiary_container",palette:t=>t.tertiaryPalette,tone:t=>{if(Ct(t))return t.isDark?60:49;if(!wt(t))return t.isDark?30:90;const e=t.tertiaryPalette.getHct(t.sourceColorHct.tone);return at.fixIfDisliked(e).tone},isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.tertiaryContainer,Mt.tertiary,10,"nearer",!1)}),Mt.onTertiaryContainer=nt.fromPalette({name:"on_tertiary_container",palette:t=>t.tertiaryPalette,tone:t=>Ct(t)?t.isDark?0:100:wt(t)?nt.foregroundTone(Mt.tertiaryContainer.tone(t),4.5):t.isDark?90:30,background:t=>Mt.tertiaryContainer,contrastCurve:new st(3,4.5,7,11)}),Mt.error=nt.fromPalette({name:"error",palette:t=>t.errorPalette,tone:t=>t.isDark?80:40,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(3,4.5,7,7),toneDeltaPair:t=>new ct(Mt.errorContainer,Mt.error,10,"nearer",!1)}),Mt.onError=nt.fromPalette({name:"on_error",palette:t=>t.errorPalette,tone:t=>t.isDark?20:100,background:t=>Mt.error,contrastCurve:new st(4.5,7,11,21)}),Mt.errorContainer=nt.fromPalette({name:"error_container",palette:t=>t.errorPalette,tone:t=>t.isDark?30:90,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.errorContainer,Mt.error,10,"nearer",!1)}),Mt.onErrorContainer=nt.fromPalette({name:"on_error_container",palette:t=>t.errorPalette,tone:t=>Ct(t)?t.isDark?90:10:t.isDark?90:30,background:t=>Mt.errorContainer,contrastCurve:new st(3,4.5,7,11)}),Mt.primaryFixed=nt.fromPalette({name:"primary_fixed",palette:t=>t.primaryPalette,tone:t=>Ct(t)?40:90,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.primaryFixed,Mt.primaryFixedDim,10,"lighter",!0)}),Mt.primaryFixedDim=nt.fromPalette({name:"primary_fixed_dim",palette:t=>t.primaryPalette,tone:t=>Ct(t)?30:80,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.primaryFixed,Mt.primaryFixedDim,10,"lighter",!0)}),Mt.onPrimaryFixed=nt.fromPalette({name:"on_primary_fixed",palette:t=>t.primaryPalette,tone:t=>Ct(t)?100:10,background:t=>Mt.primaryFixedDim,secondBackground:t=>Mt.primaryFixed,contrastCurve:new st(4.5,7,11,21)}),Mt.onPrimaryFixedVariant=nt.fromPalette({name:"on_primary_fixed_variant",palette:t=>t.primaryPalette,tone:t=>Ct(t)?90:30,background:t=>Mt.primaryFixedDim,secondBackground:t=>Mt.primaryFixed,contrastCurve:new st(3,4.5,7,11)}),Mt.secondaryFixed=nt.fromPalette({name:"secondary_fixed",palette:t=>t.secondaryPalette,tone:t=>Ct(t)?80:90,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.secondaryFixed,Mt.secondaryFixedDim,10,"lighter",!0)}),Mt.secondaryFixedDim=nt.fromPalette({name:"secondary_fixed_dim",palette:t=>t.secondaryPalette,tone:t=>Ct(t)?70:80,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.secondaryFixed,Mt.secondaryFixedDim,10,"lighter",!0)}),Mt.onSecondaryFixed=nt.fromPalette({name:"on_secondary_fixed",palette:t=>t.secondaryPalette,tone:t=>10,background:t=>Mt.secondaryFixedDim,secondBackground:t=>Mt.secondaryFixed,contrastCurve:new st(4.5,7,11,21)}),Mt.onSecondaryFixedVariant=nt.fromPalette({name:"on_secondary_fixed_variant",palette:t=>t.secondaryPalette,tone:t=>Ct(t)?25:30,background:t=>Mt.secondaryFixedDim,secondBackground:t=>Mt.secondaryFixed,contrastCurve:new st(3,4.5,7,11)}),Mt.tertiaryFixed=nt.fromPalette({name:"tertiary_fixed",palette:t=>t.tertiaryPalette,tone:t=>Ct(t)?40:90,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.tertiaryFixed,Mt.tertiaryFixedDim,10,"lighter",!0)}),Mt.tertiaryFixedDim=nt.fromPalette({name:"tertiary_fixed_dim",palette:t=>t.tertiaryPalette,tone:t=>Ct(t)?30:80,isBackground:!0,background:t=>Mt.highestSurface(t),contrastCurve:new st(1,1,3,4.5),toneDeltaPair:t=>new ct(Mt.tertiaryFixed,Mt.tertiaryFixedDim,10,"lighter",!0)}),Mt.onTertiaryFixed=nt.fromPalette({name:"on_tertiary_fixed",palette:t=>t.tertiaryPalette,tone:t=>Ct(t)?100:10,background:t=>Mt.tertiaryFixedDim,secondBackground:t=>Mt.tertiaryFixed,contrastCurve:new st(4.5,7,11,21)}),Mt.onTertiaryFixedVariant=nt.fromPalette({name:"on_tertiary_fixed_variant",palette:t=>t.tertiaryPalette,tone:t=>Ct(t)?90:30,background:t=>Mt.tertiaryFixedDim,secondBackground:t=>Mt.tertiaryFixed,contrastCurve:new st(3,4.5,7,11)});
|
|
256
|
+
/**
|
|
257
|
+
* @license
|
|
258
|
+
* Copyright 2022 Google LLC
|
|
259
|
+
*
|
|
260
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
261
|
+
* you may not use this file except in compliance with the License.
|
|
262
|
+
* You may obtain a copy of the License at
|
|
263
|
+
*
|
|
264
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
265
|
+
*
|
|
266
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
267
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
268
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
269
|
+
* See the License for the specific language governing permissions and
|
|
270
|
+
* limitations under the License.
|
|
271
|
+
*/
|
|
272
|
+
class kt{constructor(t){this.sourceColorArgb=t.sourceColorArgb,this.variant=t.variant,this.contrastLevel=t.contrastLevel,this.isDark=t.isDark,this.sourceColorHct=et.fromInt(t.sourceColorArgb),this.primaryPalette=t.primaryPalette,this.secondaryPalette=t.secondaryPalette,this.tertiaryPalette=t.tertiaryPalette,this.neutralPalette=t.neutralPalette,this.neutralVariantPalette=t.neutralVariantPalette,this.errorPalette=ot.fromHueAndChroma(25,84)}static getRotatedHue(t,e,r){const a=t.hue;if(e.length!==r.length)throw new Error(`mismatch between hue length ${e.length} & rotations ${r.length}`);if(1===r.length)return R(t.hue+r[0]);const n=e.length;for(let t=0;t<=n-2;t++){const n=e[t],o=e[t+1];if(n<a&&a<o)return R(a+r[t])}return a}getArgb(t){return t.getArgb(this)}getHct(t){return t.getHct(this)}get primaryPaletteKeyColor(){return this.getArgb(Mt.primaryPaletteKeyColor)}get secondaryPaletteKeyColor(){return this.getArgb(Mt.secondaryPaletteKeyColor)}get tertiaryPaletteKeyColor(){return this.getArgb(Mt.tertiaryPaletteKeyColor)}get neutralPaletteKeyColor(){return this.getArgb(Mt.neutralPaletteKeyColor)}get neutralVariantPaletteKeyColor(){return this.getArgb(Mt.neutralVariantPaletteKeyColor)}get background(){return this.getArgb(Mt.background)}get onBackground(){return this.getArgb(Mt.onBackground)}get surface(){return this.getArgb(Mt.surface)}get surfaceDim(){return this.getArgb(Mt.surfaceDim)}get surfaceBright(){return this.getArgb(Mt.surfaceBright)}get surfaceContainerLowest(){return this.getArgb(Mt.surfaceContainerLowest)}get surfaceContainerLow(){return this.getArgb(Mt.surfaceContainerLow)}get surfaceContainer(){return this.getArgb(Mt.surfaceContainer)}get surfaceContainerHigh(){return this.getArgb(Mt.surfaceContainerHigh)}get surfaceContainerHighest(){return this.getArgb(Mt.surfaceContainerHighest)}get onSurface(){return this.getArgb(Mt.onSurface)}get surfaceVariant(){return this.getArgb(Mt.surfaceVariant)}get onSurfaceVariant(){return this.getArgb(Mt.onSurfaceVariant)}get inverseSurface(){return this.getArgb(Mt.inverseSurface)}get inverseOnSurface(){return this.getArgb(Mt.inverseOnSurface)}get outline(){return this.getArgb(Mt.outline)}get outlineVariant(){return this.getArgb(Mt.outlineVariant)}get shadow(){return this.getArgb(Mt.shadow)}get scrim(){return this.getArgb(Mt.scrim)}get surfaceTint(){return this.getArgb(Mt.surfaceTint)}get primary(){return this.getArgb(Mt.primary)}get onPrimary(){return this.getArgb(Mt.onPrimary)}get primaryContainer(){return this.getArgb(Mt.primaryContainer)}get onPrimaryContainer(){return this.getArgb(Mt.onPrimaryContainer)}get inversePrimary(){return this.getArgb(Mt.inversePrimary)}get secondary(){return this.getArgb(Mt.secondary)}get onSecondary(){return this.getArgb(Mt.onSecondary)}get secondaryContainer(){return this.getArgb(Mt.secondaryContainer)}get onSecondaryContainer(){return this.getArgb(Mt.onSecondaryContainer)}get tertiary(){return this.getArgb(Mt.tertiary)}get onTertiary(){return this.getArgb(Mt.onTertiary)}get tertiaryContainer(){return this.getArgb(Mt.tertiaryContainer)}get onTertiaryContainer(){return this.getArgb(Mt.onTertiaryContainer)}get error(){return this.getArgb(Mt.error)}get onError(){return this.getArgb(Mt.onError)}get errorContainer(){return this.getArgb(Mt.errorContainer)}get onErrorContainer(){return this.getArgb(Mt.onErrorContainer)}get primaryFixed(){return this.getArgb(Mt.primaryFixed)}get primaryFixedDim(){return this.getArgb(Mt.primaryFixedDim)}get onPrimaryFixed(){return this.getArgb(Mt.onPrimaryFixed)}get onPrimaryFixedVariant(){return this.getArgb(Mt.onPrimaryFixedVariant)}get secondaryFixed(){return this.getArgb(Mt.secondaryFixed)}get secondaryFixedDim(){return this.getArgb(Mt.secondaryFixedDim)}get onSecondaryFixed(){return this.getArgb(Mt.onSecondaryFixed)}get onSecondaryFixedVariant(){return this.getArgb(Mt.onSecondaryFixedVariant)}get tertiaryFixed(){return this.getArgb(Mt.tertiaryFixed)}get tertiaryFixedDim(){return this.getArgb(Mt.tertiaryFixedDim)}get onTertiaryFixed(){return this.getArgb(Mt.onTertiaryFixed)}get onTertiaryFixedVariant(){return this.getArgb(Mt.onTertiaryFixedVariant)}}
|
|
273
|
+
/**
|
|
274
|
+
* @license
|
|
275
|
+
* Copyright 2021 Google LLC
|
|
276
|
+
*
|
|
277
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
278
|
+
* you may not use this file except in compliance with the License.
|
|
279
|
+
* You may obtain a copy of the License at
|
|
280
|
+
*
|
|
281
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
282
|
+
*
|
|
283
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
284
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
285
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
286
|
+
* See the License for the specific language governing permissions and
|
|
287
|
+
* limitations under the License.
|
|
288
|
+
*/class vt{static of(t){return new vt(t,!1)}static contentOf(t){return new vt(t,!0)}static fromColors(t){return vt.createPaletteFromColors(!1,t)}static contentFromColors(t){return vt.createPaletteFromColors(!0,t)}static createPaletteFromColors(t,e){const r=new vt(e.primary,t);if(e.secondary){const a=new vt(e.secondary,t);r.a2=a.a1}if(e.tertiary){const a=new vt(e.tertiary,t);r.a3=a.a1}if(e.error){const a=new vt(e.error,t);r.error=a.a1}if(e.neutral){const a=new vt(e.neutral,t);r.n1=a.n1}if(e.neutralVariant){const a=new vt(e.neutralVariant,t);r.n2=a.n2}return r}constructor(t,e){const r=et.fromInt(t),a=r.hue,n=r.chroma;e?(this.a1=ot.fromHueAndChroma(a,n),this.a2=ot.fromHueAndChroma(a,n/3),this.a3=ot.fromHueAndChroma(a+60,n/2),this.n1=ot.fromHueAndChroma(a,Math.min(n/12,4)),this.n2=ot.fromHueAndChroma(a,Math.min(n/6,8))):(this.a1=ot.fromHueAndChroma(a,Math.max(48,n)),this.a2=ot.fromHueAndChroma(a,16),this.a3=ot.fromHueAndChroma(a+60,24),this.n1=ot.fromHueAndChroma(a,4),this.n2=ot.fromHueAndChroma(a,8)),this.error=ot.fromHueAndChroma(25,84)}}
|
|
289
|
+
/**
|
|
290
|
+
* @license
|
|
291
|
+
* Copyright 2022 Google LLC
|
|
292
|
+
*
|
|
293
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
294
|
+
* you may not use this file except in compliance with the License.
|
|
295
|
+
* You may obtain a copy of the License at
|
|
296
|
+
*
|
|
297
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
298
|
+
*
|
|
299
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
300
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
301
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
302
|
+
* See the License for the specific language governing permissions and
|
|
303
|
+
* limitations under the License.
|
|
304
|
+
*/class _t extends kt{constructor(t,e,r){super({sourceColorArgb:t.toInt(),variant:ht.EXPRESSIVE,contrastLevel:r,isDark:e,primaryPalette:ot.fromHueAndChroma(R(t.hue+240),40),secondaryPalette:ot.fromHueAndChroma(kt.getRotatedHue(t,_t.hues,_t.secondaryRotations),24),tertiaryPalette:ot.fromHueAndChroma(kt.getRotatedHue(t,_t.hues,_t.tertiaryRotations),32),neutralPalette:ot.fromHueAndChroma(t.hue+15,8),neutralVariantPalette:ot.fromHueAndChroma(t.hue+15,12)})}}_t.hues=[0,21,51,121,151,191,271,321,360],_t.secondaryRotations=[45,95,45,20,45,90,45,45,45],_t.tertiaryRotations=[120,120,20,45,20,15,20,120,120];
|
|
305
|
+
/**
|
|
306
|
+
* @license
|
|
307
|
+
* Copyright 2022 Google LLC
|
|
308
|
+
*
|
|
309
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
310
|
+
* you may not use this file except in compliance with the License.
|
|
311
|
+
* You may obtain a copy of the License at
|
|
312
|
+
*
|
|
313
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
314
|
+
*
|
|
315
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
316
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
317
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
318
|
+
* See the License for the specific language governing permissions and
|
|
319
|
+
* limitations under the License.
|
|
320
|
+
*/
|
|
321
|
+
class At extends kt{constructor(t,e,r){super({sourceColorArgb:t.toInt(),variant:ht.VIBRANT,contrastLevel:r,isDark:e,primaryPalette:ot.fromHueAndChroma(t.hue,200),secondaryPalette:ot.fromHueAndChroma(kt.getRotatedHue(t,At.hues,At.secondaryRotations),24),tertiaryPalette:ot.fromHueAndChroma(kt.getRotatedHue(t,At.hues,At.tertiaryRotations),32),neutralPalette:ot.fromHueAndChroma(t.hue,10),neutralVariantPalette:ot.fromHueAndChroma(t.hue,12)})}}
|
|
322
|
+
/**
|
|
323
|
+
* @license
|
|
324
|
+
* Copyright 2021 Google LLC
|
|
325
|
+
*
|
|
326
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
327
|
+
* you may not use this file except in compliance with the License.
|
|
328
|
+
* You may obtain a copy of the License at
|
|
329
|
+
*
|
|
330
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
331
|
+
*
|
|
332
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
333
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
334
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
335
|
+
* See the License for the specific language governing permissions and
|
|
336
|
+
* limitations under the License.
|
|
337
|
+
*/
|
|
338
|
+
function Dt(t){const e=z(t),r=q(t),a=j(t),n=[e.toString(16),r.toString(16),a.toString(16)];for(const[t,e]of n.entries())1===e.length&&(n[t]="0"+e);return"#"+n.join("")}function St(t){return parseInt(t,16)}At.hues=[0,41,61,101,131,181,251,301,360],At.secondaryRotations=[18,15,10,12,15,18,15,12,12],At.tertiaryRotations=[35,30,20,25,30,35,30,25,25];let Et=class extends(a(t,"none")){constructor(){super(...arguments),lt.add(this),ut.set(this,new CSSStyleSheet),dt.set(this,!1),mt.set(this,void 0),ft.set(this,void 0),gt.set(this,void 0),pt.set(this,()=>i(this,lt,"m",yt).call(this)),this.color="#7D67BE",this.variant="vibrant",this.scheme="auto",this.contrast="standard",this.strongFocus=!1,this.density=0,this.motion="standard"}get isDark(){switch(this.scheme){case"light":return!1;case"dark":return!0;default:return i(this,ft,"f")?.matches??!1}}connectedCallback(){super.connectedCallback(),this.shadowRoot&&!this.shadowRoot.adoptedStyleSheets.includes(i(this,ut,"f"))&&(this.shadowRoot.adoptedStyleSheets=[...this.shadowRoot.adoptedStyleSheets,i(this,ut,"f")]),s(this,mt,matchMedia("(prefers-color-scheme: light)"),"f"),s(this,ft,matchMedia("(prefers-color-scheme: dark)"),"f"),s(this,gt,matchMedia("(forced-colors: active)"),"f"),[i(this,mt,"f"),i(this,ft,"f"),i(this,gt,"f")].forEach(t=>t.addEventListener("change",i(this,pt,"f")))}disconnectedCallback(){super.disconnectedCallback(),[i(this,mt,"f"),i(this,ft,"f"),i(this,gt,"f")].forEach(t=>t?.removeEventListener("change",i(this,pt,"f"))),s(this,mt,s(this,ft,s(this,gt,void 0,"f"),"f"),"f")}updated(t){super.updated(t),i(this,lt,"m",yt).call(this)}firstUpdated(t){super.firstUpdated(t),s(this,dt,!0,"f")}render(){return e`<slot></slot>`}};ut=new WeakMap,dt=new WeakMap,mt=new WeakMap,ft=new WeakMap,gt=new WeakMap,pt=new WeakMap,lt=new WeakSet,yt=function(){const t=function(t){const e=3===(t=t.replace("#","")).length,r=6===t.length,a=8===t.length;if(!e&&!r&&!a)throw new Error("unexpected hex "+t);let n=0,o=0,i=0;return e?(n=St(t.slice(0,1).repeat(2)),o=St(t.slice(1,2).repeat(2)),i=St(t.slice(2,3).repeat(2))):r?(n=St(t.slice(0,2)),o=St(t.slice(2,4)),i=St(t.slice(4,6))):a&&(n=St(t.slice(2,4)),o=St(t.slice(4,6)),i=St(t.slice(6,8))),(255<<24|(255&n)<<16|(255&o)<<8|255&i)>>>0}(this.color),e=vt.of(t),r=new kt({sourceColorArgb:t,variant:i(this,lt,"m",bt).call(this),contrastLevel:i(this,lt,"m",Pt).call(this),isDark:this.isDark,primaryPalette:e.a1,secondaryPalette:e.a2,tertiaryPalette:e.a3,neutralPalette:e.n1,neutralVariantPalette:e.n2});let a="";for(const t in Mt)if(!t.endsWith("PaletteKeyColor")){const e=Mt[t];e instanceof nt&&(a+=`--md-sys-color-${t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}: ${Dt(e.getArgb(r))};`)}if("expressive"===this.motion&&(a+="--md-sys-motion-spring-fast-spatial: 350ms cubic-bezier(0.42, 1.67, 0.21, 0.90);",a+="--md-sys-motion-spring-default-spatial: 500ms cubic-bezier(0.38, 1.21, 0.22, 1.00);",a+="--md-sys-motion-spring-slow-spatial: 650ms cubic-bezier(0.39, 1.29, 0.35, 0.98);",a+="--md-sys-motion-spring-fast-effects: 150ms cubic-bezier(0.31, 0.94, 0.34, 1.00);",a+="--md-sys-motion-spring-default-effects: 200ms cubic-bezier(0.34, 0.80, 0.34, 1.00);",a+="--md-sys-motion-spring-slow-effects: 300ms cubic-bezier(0.34, 0.88, 0.34, 1.00);"),a+=`--md-sys-density-scale: ${this.density};`,a+=`--m3e-scrollbar-thumb-color: ${Dt(e.n1.tone(60))};`,a+=`--m3e-focus-ring-visibility: ${this.strongFocus?"visible":"hidden"};`,i(this,ut,"f").replaceSync(`:host { ${a} }`),this.parentElement instanceof HTMLBodyElement){const t=getComputedStyle(this);i(this,gt,"f")?.matches?this.parentElement.style.backgroundColor=this.parentElement.style.color=this.parentElement.ownerDocument.documentElement.style.scrollbarColor=this.parentElement.style.scrollbarColor="":(this.parentElement.style.backgroundColor=t.getPropertyValue("--md-sys-color-background"),this.parentElement.style.color=t.getPropertyValue("--md-sys-color-on-background"),this.parentElement.ownerDocument.documentElement.style.scrollbarColor=this.parentElement.style.scrollbarColor=`${t.getPropertyValue("--m3e-scrollbar-thumb-color")} ${t.getPropertyValue("--m3e-scrollbar-track-color")}`)}i(this,dt,"f")&&this.dispatchEvent(new Event("change",{bubbles:!0}))},bt=function(){switch(this.variant){case"monochrome":return 0;case"neutral":return 1;case"tonal-spot":return 2;case"vibrant":return 3;case"expressive":return 4;case"fidelity":return 5;case"rainbow":return 7;case"fruit-salad":return 8;default:return 6}},Pt=function(){switch(this.contrast){case"high":return 1;case"medium":return.5;default:return 0}},Et.styles=r`
|
|
339
|
+
:host {
|
|
340
|
+
display: contents;
|
|
341
|
+
font-size: ${n.typescale.standard.body.large.fontSize};
|
|
342
|
+
font-weight: ${n.typescale.standard.body.large.fontWeight};
|
|
343
|
+
line-height: ${n.typescale.standard.body.large.lineHeight};
|
|
344
|
+
letter-spacing: ${n.typescale.standard.body.large.tracking};
|
|
345
|
+
}
|
|
346
|
+
`,o([I()],Et.prototype,"color",void 0),o([I()],Et.prototype,"variant",void 0),o([I()],Et.prototype,"scheme",void 0),o([I()],Et.prototype,"contrast",void 0),o([I({attribute:"strong-focus",type:Boolean})],Et.prototype,"strongFocus",void 0),o([I({type:Number})],Et.prototype,"density",void 0),o([I()],Et.prototype,"motion",void 0),Et=o([(t=>(e,r)=>{void 0!==r?r.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)})("m3e-theme")],Et);export{Et as M3eThemeElement};
|
|
347
|
+
//# sourceMappingURL=index.min.js.map
|