@m3e/icon-button 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.
Files changed (51) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +192 -0
  3. package/cem.config.mjs +16 -0
  4. package/demo/index.html +103 -0
  5. package/dist/css-custom-data.json +977 -0
  6. package/dist/custom-elements.json +1291 -0
  7. package/dist/html-custom-data.json +88 -0
  8. package/dist/index.js +1443 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/index.min.js +400 -0
  11. package/dist/index.min.js.map +1 -0
  12. package/dist/src/IconButtonElement.d.ts +316 -0
  13. package/dist/src/IconButtonElement.d.ts.map +1 -0
  14. package/dist/src/IconButtonShape.d.ts +3 -0
  15. package/dist/src/IconButtonShape.d.ts.map +1 -0
  16. package/dist/src/IconButtonSize.d.ts +3 -0
  17. package/dist/src/IconButtonSize.d.ts.map +1 -0
  18. package/dist/src/IconButtonVariant.d.ts +3 -0
  19. package/dist/src/IconButtonVariant.d.ts.map +1 -0
  20. package/dist/src/IconButtonWidth.d.ts +3 -0
  21. package/dist/src/IconButtonWidth.d.ts.map +1 -0
  22. package/dist/src/index.d.ts +6 -0
  23. package/dist/src/index.d.ts.map +1 -0
  24. package/dist/src/styles/IconButtonSizeStyle.d.ts +7 -0
  25. package/dist/src/styles/IconButtonSizeStyle.d.ts.map +1 -0
  26. package/dist/src/styles/IconButtonSizeToken.d.ts +26 -0
  27. package/dist/src/styles/IconButtonSizeToken.d.ts.map +1 -0
  28. package/dist/src/styles/IconButtonStyle.d.ts +7 -0
  29. package/dist/src/styles/IconButtonStyle.d.ts.map +1 -0
  30. package/dist/src/styles/IconButtonVariantStyle.d.ts +7 -0
  31. package/dist/src/styles/IconButtonVariantStyle.d.ts.map +1 -0
  32. package/dist/src/styles/IconButtonVariantToken.d.ts +61 -0
  33. package/dist/src/styles/IconButtonVariantToken.d.ts.map +1 -0
  34. package/dist/src/styles/index.d.ts +4 -0
  35. package/dist/src/styles/index.d.ts.map +1 -0
  36. package/eslint.config.mjs +13 -0
  37. package/package.json +48 -0
  38. package/rollup.config.js +32 -0
  39. package/src/IconButtonElement.ts +514 -0
  40. package/src/IconButtonShape.ts +2 -0
  41. package/src/IconButtonSize.ts +2 -0
  42. package/src/IconButtonVariant.ts +2 -0
  43. package/src/IconButtonWidth.ts +2 -0
  44. package/src/index.ts +5 -0
  45. package/src/styles/IconButtonSizeStyle.ts +95 -0
  46. package/src/styles/IconButtonSizeToken.ts +215 -0
  47. package/src/styles/IconButtonStyle.ts +184 -0
  48. package/src/styles/IconButtonVariantStyle.ts +123 -0
  49. package/src/styles/IconButtonVariantToken.ts +854 -0
  50. package/src/styles/index.ts +3 -0
  51. package/tsconfig.json +9 -0
@@ -0,0 +1,400 @@
1
+ /**
2
+ * @license MIT
3
+ * Copyright (c) 2025 matraic
4
+ * See LICENSE file in the project root for full license text.
5
+ */
6
+ import{unsafeCSS as e,css as t,LitElement as o,nothing as r,html as a}from"lit";import{DesignToken as n,KeyboardClick as i,LinkButton as s,FormSubmitter as c,Focusable as l,DisabledInteractive as d,Disabled as u,AttachInternals as p,Role as h,ResizeController as v,FocusController as m,PressedController as b,renderPseudoLink as y,debounce as $,hasAssignedNodes as f}from"@m3e/core";function g(e,t,o,r){var a,n=arguments.length,i=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,o,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(i=(n<3?a(i):n>3?a(t,o,i):a(t,o))||i);return n>3&&i&&Object.defineProperty(t,o,i),i}function S(e,t,o,r){if("a"===o&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?r:"a"===o?r.call(e):r?r.value:t.get(e)}"function"==typeof SuppressedError&&SuppressedError;
7
+ /**
8
+ * @license
9
+ * Copyright 2017 Google LLC
10
+ * SPDX-License-Identifier: BSD-3-Clause
11
+ */
12
+ const C=globalThis,w=C.ShadowRoot&&(void 0===C.ShadyCSS||C.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,L=Symbol(),_=new WeakMap;
13
+ /**
14
+ * @license
15
+ * Copyright 2019 Google LLC
16
+ * SPDX-License-Identifier: BSD-3-Clause
17
+ */let x=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==L)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(w&&void 0===e){const o=void 0!==t&&1===t.length;o&&(e=_.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&_.set(t,e))}return e}toString(){return this.cssText}};const E=(e,t)=>{if(w)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const o of t){const t=document.createElement("style"),r=C.litNonce;void 0!==r&&t.setAttribute("nonce",r),t.textContent=o.cssText,e.appendChild(t)}},P=w?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const o of e.cssRules)t+=o.cssText;return(e=>new x("string"==typeof e?e:e+"",void 0,L))(t)})(e):e,{is:O,defineProperty:k,getOwnPropertyDescriptor:I,getOwnPropertyNames:z,getOwnPropertySymbols:T,getPrototypeOf:q}=Object,R=globalThis,V=R.trustedTypes,U=V?V.emptyScript:"",M=R.reactiveElementPolyfillSupport,j=(e,t)=>e,A={toAttribute(e,t){switch(t){case Boolean:e=e?U:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let o=e;switch(t){case Boolean:o=null!==e;break;case Number:o=null===e?null:Number(e);break;case Object:case Array:try{o=JSON.parse(e)}catch(e){o=null}}return o}},B=(e,t)=>!O(e,t),D={attribute:!0,type:String,converter:A,reflect:!1,useDefault:!1,hasChanged:B};
18
+ /**
19
+ * @license
20
+ * Copyright 2017 Google LLC
21
+ * SPDX-License-Identifier: BSD-3-Clause
22
+ */Symbol.metadata??=Symbol("metadata"),R.litPropertyMetadata??=new WeakMap;class H extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=D){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const o=Symbol(),r=this.getPropertyDescriptor(e,o,t);void 0!==r&&k(this.prototype,e,r)}}static getPropertyDescriptor(e,t,o){const{get:r,set:a}=I(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:r,set(t){const n=r?.call(this);a?.call(this,t),this.requestUpdate(e,n,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??D}static _$Ei(){if(this.hasOwnProperty(j("elementProperties")))return;const e=q(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(j("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(j("properties"))){const e=this.properties,t=[...z(e),...T(e)];for(const o of t)this.createProperty(o,e[o])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,o]of t)this.elementProperties.set(e,o)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const o=this._$Eu(e,t);void 0!==o&&this._$Eh.set(o,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const o=new Set(e.flat(1/0).reverse());for(const e of o)t.unshift(P(e))}else void 0!==e&&t.push(P(e));return t}static _$Eu(e,t){const o=t.attribute;return!1===o?void 0:"string"==typeof o?o:"string"==typeof e?e.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(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return E(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){const o=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,o);if(void 0!==r&&!0===o.reflect){const a=(void 0!==o.converter?.toAttribute?o.converter:A).toAttribute(t,o.type);this._$Em=e,null==a?this.removeAttribute(r):this.setAttribute(r,a),this._$Em=null}}_$AK(e,t){const o=this.constructor,r=o._$Eh.get(e);if(void 0!==r&&this._$Em!==r){const e=o.getPropertyOptions(r),a="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:A;this._$Em=r;const n=a.fromAttribute(t,e.type);this[r]=n??this._$Ej?.get(r)??n,this._$Em=null}}requestUpdate(e,t,o){if(void 0!==e){const r=this.constructor,a=this[e];if(o??=r.getPropertyOptions(e),!((o.hasChanged??B)(a,t)||o.useDefault&&o.reflect&&a===this._$Ej?.get(e)&&!this.hasAttribute(r._$Eu(e,o))))return;this.C(e,t,o)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:r,wrapped:a},n){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,n??t??this[e]),!0!==a||void 0!==n)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),!0===r&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,o]of e){const{wrapped:e}=o,r=this[t];!0!==e||this._$AL.has(t)||void 0===r||this.C(t,void 0,o,r)}}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}}H.elementStyles=[],H.shadowRootOptions={mode:"open"},H[j("elementProperties")]=new Map,H[j("finalized")]=new Map,M?.({ReactiveElement:H}),(R.reactiveElementVersions??=[]).push("2.1.1");
23
+ /**
24
+ * @license
25
+ * Copyright 2017 Google LLC
26
+ * SPDX-License-Identifier: BSD-3-Clause
27
+ */
28
+ const N={attribute:!0,type:String,converter:A,reflect:!1,hasChanged:B},W=(e=N,t,o)=>{const{kind:r,metadata:a}=o;let n=globalThis.litPropertyMetadata.get(a);if(void 0===n&&globalThis.litPropertyMetadata.set(a,n=new Map),"setter"===r&&((e=Object.create(e)).wrapped=!0),n.set(o.name,e),"accessor"===r){const{name:r}=o;return{set(o){const a=t.get.call(this);t.set.call(this,o),this.requestUpdate(r,a,e)},init(t){return void 0!==t&&this.C(r,void 0,e,t),t}}}if("setter"===r){const{name:r}=o;return function(o){const a=this[r];t.call(this,o),this.requestUpdate(r,a,e)}}throw Error("Unsupported decorator location: "+r)};function F(e){return(t,o)=>"object"==typeof o?W(e,t,o):((e,t,o)=>{const r=t.hasOwnProperty(o);return t.constructor.createProperty(o,e),r?Object.getOwnPropertyDescriptor(t,o):void 0})(e,t,o)}
29
+ /**
30
+ * @license
31
+ * Copyright 2017 Google LLC
32
+ * SPDX-License-Identifier: BSD-3-Clause
33
+ */
34
+ /**
35
+ * @license
36
+ * Copyright 2017 Google LLC
37
+ * SPDX-License-Identifier: BSD-3-Clause
38
+ */
39
+ function K(e,t){return(t,o,r)=>((e,t,o)=>(o.configurable=!0,o.enumerable=!0,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,o),o))(t,o,{get(){return(t=>t.renderRoot?.querySelector(e)??null)(this)}})}const G={"extra-small":{containerHeight:e(`calc(var(--m3e-icon-button-extra-small-container-height, 2rem) + ${n.density.calc(0)})`),outlineThickness:e("var(--m3e-icon-button-extra-small-outline-thickness, 1px)"),iconSize:e(`calc(var(--m3e-icon-button-extra-small-icon-size, 1.25rem) + ${n.density.calc(0)})`),shapeRound:e(`var(--m3e-icon-button-extra-small-shape-round, ${n.shape.corner.full})`),shapeSquare:e(`var(--m3e-icon-button-extra-small-shape-square, ${n.shape.corner.medium})`),selectedShapeRound:e(`var(--m3e-icon-button-extra-small-selected-shape-round, ${n.shape.corner.medium})`),selectedShapeSquare:e(`var(--m3e-icon-button-extra-small-selected-shape-square, ${n.shape.corner.full})`),shapePressedMorph:e(`var(--m3e-icon-button-extra-small-shape-pressed-morph, ${n.shape.corner.small})`),narrowLeadingSpace:e(`calc(var(--m3e-icon-button-extra-small-narrow-leading-space, 0.25rem) + ${n.density.calc(0)})`),narrowTrailingSpace:e(`calc(var(--m3e-icon-button-extra-small-narrow-trailing-space, 0.25rem) + ${n.density.calc(0)})`),defaultLeadingSpace:e(`calc(var(--m3e-icon-button-extra-small-default-leading-space, 0.375rem) + ${n.density.calc(0)})`),defaultTrailingSpace:e(`calc(var(--m3e-icon-button-extra-small-default-trailing-space, 0.375rem) + ${n.density.calc(0)})`),wideLeadingSpace:e(`calc(var(--m3e-icon-button-extra-small-wide-leading-space, 0.625rem) + ${n.density.calc(0)})`),wideTrailingSpace:e(`calc(var(--m3e-icon-button-extra-small-wide-trailing-space, 0.625rem) + ${n.density.calc(0)})`)},small:{containerHeight:e(`calc(var(--m3e-icon-button-small-container-height, 2.5rem) + ${n.density.calc(-1)})`),outlineThickness:e("var(--m3e-icon-button-small-outline-thickness, 1px)"),iconSize:e(`calc(var(--m3e-icon-button-small-icon-size, 1.5rem) + ${n.density.calc(-1)})`),shapeRound:e(`var(--m3e-icon-button-small-shape-round, ${n.shape.corner.full})`),shapeSquare:e(`var(--m3e-icon-button-small-shape-square, ${n.shape.corner.medium})`),selectedShapeRound:e(`var(--m3e-icon-button-small-selected-shape-round, ${n.shape.corner.medium})`),selectedShapeSquare:e(`var(--m3e-icon-button-small-selected-shape-square, ${n.shape.corner.full})`),shapePressedMorph:e(`var(--m3e-icon-button-small-shape-pressed-morph, ${n.shape.corner.small})`),narrowLeadingSpace:e(`calc(var(--m3e-icon-button-small-narrow-leading-space, 0.25rem) + ${n.density.calc(-1)})`),narrowTrailingSpace:e(`calc(var(--m3e-icon-button-small-narrow-trailing-space, 0.25rem) + ${n.density.calc(-1)})`),defaultLeadingSpace:e(`calc(var(--m3e-icon-button-small-default-leading-space, 0.5rem) + ${n.density.calc(-1)})`),defaultTrailingSpace:e(`calc(var(--m3e-icon-button-small-default-trailing-space, 0.5rem) + ${n.density.calc(-1)})`),wideLeadingSpace:e(`calc(var(--m3e-icon-button-small-wide-leading-space, 0.875rem) + ${n.density.calc(-1)})`),wideTrailingSpace:e(`calc(var(--m3e-icon-button-small-wide-trailing-space, 0.875rem) + ${n.density.calc(-1)})`)},medium:{containerHeight:e(`calc(var(--m3e-icon-button-medium-container-height, 3.5rem) + ${n.density.calc(-2)})`),outlineThickness:e("var(--m3e-icon-button-medium-outline-thickness, 1px)"),iconSize:e(`calc(var(--m3e-icon-button-medium-icon-size, 1.5rem) + ${n.density.calc(-2)})`),shapeRound:e(`var(--m3e-icon-button-medium-shape-round, ${n.shape.corner.full})`),shapeSquare:e(`var(--m3e-icon-button-medium-shape-square, ${n.shape.corner.large})`),selectedShapeRound:e(`var(--m3e-icon-button-medium-selected-shape-round, ${n.shape.corner.large})`),selectedShapeSquare:e(`var(--m3e-icon-button-medium-selected-shape-square, ${n.shape.corner.full})`),shapePressedMorph:e(`var(--m3e-icon-button-medium-shape-pressed-morph, ${n.shape.corner.medium})`),narrowLeadingSpace:e(`calc(var(--m3e-icon-button-medium-narrow-leading-space, 0.75rem) + ${n.density.calc(-2)})`),narrowTrailingSpace:e(`calc(var(--m3e-icon-button-medium-narrow-trailing-space, 0.75rem) + ${n.density.calc(-2)})`),defaultLeadingSpace:e(`calc(var(--m3e-icon-button-medium-default-leading-space, 1rem) + ${n.density.calc(-2)})`),defaultTrailingSpace:e(`calc(var(--m3e-icon-button-medium-default-trailing-space, 1rem) + ${n.density.calc(-2)})`),wideLeadingSpace:e(`calc(var(--m3e-icon-button-medium-wide-leading-space, 1.5rem) + ${n.density.calc(-2)})`),wideTrailingSpace:e(`calc(var(--m3e-icon-button-medium-wide-trailing-space, 1.5rem) + ${n.density.calc(-2)})`)},large:{containerHeight:e(`calc(var(--m3e-icon-button-large-container-height, 6rem) + ${n.density.calc(-3)})`),outlineThickness:e("var(--m3e-icon-button-large-outline-thickness, 0.125rem)"),iconSize:e(`calc(var(--m3e-icon-button-large-icon-size, 2rem) + ${n.density.calc(-3)})`),shapeRound:e(`var(--m3e-icon-button-large-shape-round, ${n.shape.corner.full})`),shapeSquare:e(`var(--m3e-icon-button-large-shape-square, ${n.shape.corner.extraLarge})`),selectedShapeRound:e(`var(--m3e-icon-button-large-selected-shape-round, ${n.shape.corner.extraLarge})`),selectedShapeSquare:e(`var(--m3e-icon-button-large-selected-shape-square, ${n.shape.corner.full})`),shapePressedMorph:e(`var(--m3e-icon-button-large-shape-pressed-morph, ${n.shape.corner.large})`),narrowLeadingSpace:e(`calc(var(--m3e-icon-button-large-narrow-leading-space, 1rem) + ${n.density.calc(-3)})`),narrowTrailingSpace:e(`calc(var(--m3e-icon-button-large-narrow-trailing-space, 1rem) + ${n.density.calc(-3)})`),defaultLeadingSpace:e(`calc(var(--m3e-icon-button-large-default-leading-space, 2rem) + ${n.density.calc(-3)})`),defaultTrailingSpace:e(`calc(var(--m3e-icon-button-large-default-trailing-space, 2rem) + ${n.density.calc(-3)})`),wideLeadingSpace:e(`calc(var(--m3e-icon-button-large-wide-leading-space, 3rem) + ${n.density.calc(-3)})`),wideTrailingSpace:e(`calc(var(--m3e-icon-button-large-wide-trailing-space, 3rem) + ${n.density.calc(-3)})`)},"extra-large":{containerHeight:e(`calc(var(--m3e-icon-button-extra-large-container-height, 8.5rem) + ${n.density.calc(-3)})`),outlineThickness:e("var(--m3e-icon-button-extra-large-outline-thickness, 0.1875rem)"),iconSize:e(`calc(var(--m3e-icon-button-extra-large-icon-size, 2.5rem) + ${n.density.calc(-3)})`),shapeRound:e(`var(--m3e-icon-button-extra-large-shape-round, ${n.shape.corner.full})`),shapeSquare:e(`var(--m3e-icon-button-extra-large-shape-square, ${n.shape.corner.extraLarge})`),selectedShapeRound:e(`var(--m3e-icon-button-extra-large-selected-shape-round, ${n.shape.corner.extraLarge})`),selectedShapeSquare:e(`var(--m3e-icon-button-extra-large-selected-shape-square, ${n.shape.corner.full})`),shapePressedMorph:e(`var(--m3e-icon-button-extra-large-shape-pressed-morph, ${n.shape.corner.large})`),narrowLeadingSpace:e(`calc(var(--m3e-icon-button-extra-large-narrow-leading-space, 2rem) + ${n.density.calc(-3)})`),narrowTrailingSpace:e(`calc(var(--m3e-icon-button-extra-large-narrow-trailing-space, 2rem) + ${n.density.calc(-3)})`),defaultLeadingSpace:e(`calc(var(--m3e-icon-button-extra-large-default-leading-space, 3rem) + ${n.density.calc(-3)})`),defaultTrailingSpace:e(`calc(var(--m3e-icon-button-extra-large-default-trailing-space, 3rem) + ${n.density.calc(-3)})`),wideLeadingSpace:e(`calc(var(--m3e-icon-button-extra-large-wide-leading-space, 4.5rem) + ${n.density.calc(-3)})`),wideTrailingSpace:e(`calc(var(--m3e-icon-button-extra-large-wide-trailing-space, 4.5rem) + ${n.density.calc(-3)})`)}};function J(o){return t`
40
+ :host([size="${e(o)}"]) .base {
41
+ height: ${G[o].containerHeight};
42
+ }
43
+ :host([size="${e(o)}"][width="default"]) .wrapper {
44
+ padding-inline-start: ${G[o].defaultLeadingSpace};
45
+ padding-inline-end: ${G[o].defaultTrailingSpace};
46
+ }
47
+ :host([size="${e(o)}"][width="narrow"]) .wrapper {
48
+ padding-inline-start: ${G[o].narrowLeadingSpace};
49
+ padding-inline-end: ${G[o].narrowTrailingSpace};
50
+ }
51
+ :host([size="${e(o)}"][width="wide"]) .wrapper {
52
+ padding-inline-start: ${G[o].wideLeadingSpace};
53
+ padding-inline-end: ${G[o].wideTrailingSpace};
54
+ }
55
+ :host([size="${e(o)}"]) .icon {
56
+ font-size: ${G[o].iconSize};
57
+ }
58
+ :host([size="${e(o)}"]) .base {
59
+ outline-offset: calc(0px - ${G[o].outlineThickness});
60
+ outline-width: ${G[o].outlineThickness};
61
+ }
62
+ :host(:not(.-connected)[size="${e(o)}"][shape="rounded"]:not(.-pressed)) .base {
63
+ border-radius: var(--_button-shape, ${G[o].shapeRound});
64
+ }
65
+ :host(:not(.-connected)[size="${e(o)}"][shape="square"]) .base {
66
+ border-radius: ${G[o].shapeSquare};
67
+ }
68
+ :host(:not(.-connected)[size="${e(o)}"][shape="rounded"][toggle][selected]:not(.-pressed)) .base {
69
+ border-radius: ${G[o].selectedShapeRound};
70
+ }
71
+ :host(:not(.-connected)[size="${e(o)}"][shape="square"][toggle][selected]:not(.-pressed)) .base {
72
+ border-radius: var(--_button-shape, ${G[o].selectedShapeSquare});
73
+ }
74
+ :host(:not(.-connected)[size="${e(o)}"].-pressed) .base {
75
+ border-radius: ${G[o].shapePressedMorph};
76
+ }
77
+ :host(.-connected[size="${e(o)}"][shape="rounded"]) .base {
78
+ border-start-start-radius: var(
79
+ --_button-rounded-start-shape,
80
+ var(--_button-shape, ${G[o].shapeRound})
81
+ );
82
+ border-end-start-radius: var(
83
+ --_button-rounded-start-shape,
84
+ var(--_button-shape, ${G[o].shapeRound})
85
+ );
86
+ border-start-end-radius: var(
87
+ --_button-rounded-end-shape,
88
+ var(--_button-shape, ${G[o].shapeRound})
89
+ );
90
+ border-end-end-radius: var(
91
+ --_button-rounded-end-shape,
92
+ var(--_button-shape, ${G[o].shapeRound})
93
+ );
94
+ }
95
+ :host(.-connected[size="${e(o)}"][shape="square"]) .base {
96
+ border-start-start-radius: var(--_button-square-start-shape, ${G[o].shapeSquare});
97
+ border-end-start-radius: var(--_button-square-start-shape, ${G[o].shapeSquare});
98
+ border-start-end-radius: var(--_button-square-end-shape, ${G[o].shapeSquare});
99
+ border-end-end-radius: var(--_button-square-end-shape, ${G[o].shapeSquare});
100
+ }
101
+ :host(.-connected[size="${e(o)}"][shape="square"][toggle][selected]:not(.-pressed)) .base {
102
+ border-radius: var(--_button-shape, ${G[o].selectedShapeSquare});
103
+ }
104
+ :host(.-connected[size="${e(o)}"].-pressed) .base {
105
+ border-start-start-radius: var(
106
+ --_button-start-shape-pressed-morph,
107
+ ${G[o].shapePressedMorph}
108
+ );
109
+ border-end-start-radius: var(--_button-start-shape-pressed-morph, ${G[o].shapePressedMorph});
110
+ border-start-end-radius: var(--_button-end-shape-pressed-morph, ${G[o].shapePressedMorph});
111
+ border-end-end-radius: var(--_button-end-shape-pressed-morph, ${G[o].shapePressedMorph});
112
+ }
113
+ `}const Q=[J("extra-small"),J("small"),J("medium"),J("large"),J("extra-large")],X=t`
114
+ :host {
115
+ display: inline-block;
116
+ outline: none;
117
+ user-select: none;
118
+ }
119
+ .base {
120
+ box-sizing: border-box;
121
+ vertical-align: middle;
122
+ display: inline-flex;
123
+ align-items: center;
124
+ justify-content: center;
125
+ position: relative;
126
+ width: 100%;
127
+ transition: ${e(`background-color ${n.motion.duration.short4} ${n.motion.easing.standard}`)};
128
+ }
129
+ .touch {
130
+ position: absolute;
131
+ aspect-ratio: 1 / 1;
132
+ height: 3rem;
133
+ left: auto;
134
+ right: auto;
135
+ }
136
+ :host(.-pressed) .base,
137
+ :host(.-resting) .base {
138
+ transition: ${e(`background-color ${n.motion.duration.short4} ${n.motion.easing.standard},\n border-radius ${n.motion.spring.fastEffects}`)};
139
+ }
140
+ .wrapper {
141
+ width: 100%;
142
+ overflow: hidden;
143
+ display: inline-flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ transition: ${e(`padding-inline ${n.motion.spring.fastEffects}`)};
147
+ }
148
+ .icon {
149
+ transition: ${e(`color ${n.motion.duration.short4} ${n.motion.easing.standard}`)};
150
+
151
+ --m3e-icon-size: 1em;
152
+ }
153
+ :host(:not(:disabled):not([disabled-interactive])) {
154
+ cursor: pointer;
155
+ }
156
+ :host([disabled-interactive]) {
157
+ cursor: not-allowed;
158
+ }
159
+ ::slotted(*) {
160
+ font-size: inherit !important;
161
+ flex: none;
162
+ transform: var(--_icon-button-icon-transform);
163
+ transform-origin: center center;
164
+ transition: ${e(`transform var(--_icon-button-icon-transform-transition, ${n.motion.spring.fastEffects})`)};
165
+ }
166
+ ::slotted(svg) {
167
+ width: 1em;
168
+ height: 1em;
169
+ }
170
+ :host([toggle]:not([selected])) .base.with-selected-icon slot[name="selected"],
171
+ :host([toggle][selected]) .base.with-selected-icon slot:not([name]) {
172
+ display: none;
173
+ }
174
+ a {
175
+ all: unset;
176
+ display: block;
177
+ position: absolute;
178
+ top: 0px;
179
+ left: 0px;
180
+ right: 0px;
181
+ bottom: 0px;
182
+ z-index: 1;
183
+ }
184
+ :host(.-grouped.-connected) {
185
+ flex: 1 1 auto;
186
+ }
187
+ :host(.-grouped:not(.-connected):not(.-adjacent-pressed):not(.-pressed)) {
188
+ flex-shrink: 0;
189
+ flex-grow: 0;
190
+ }
191
+ :host(.-grouped:not(.-connected).-adjacent-pressed:not(.-pressed)) {
192
+ flex-shrink: 1;
193
+ min-width: 0;
194
+ }
195
+ :host(.-grouped:not(.-connected).-adjacent-pressed:not(.-pressed)) .label {
196
+ text-overflow: clip;
197
+ }
198
+ :host(.-grouped:not(.-connected).-pressed:not([disabled-interactive]):not(:disabled)) {
199
+ flex-shrink: 0;
200
+ flex-basis: calc(
201
+ var(--_button-width) + calc(var(--_button-width) * var(--m3e-standard-button-group-width-multiplier, 0.15))
202
+ );
203
+ }
204
+ @media (forced-colors: active) {
205
+ .base,
206
+ .icon {
207
+ transition: none;
208
+ }
209
+ :host(.-pressed) .base,
210
+ :host(.-resting) .base {
211
+ transition: border-radius ${n.motion.spring.fastEffects};
212
+ }
213
+ :host([variant]:not(:disabled):not([disabled-interactive]):not([toggle])) .base {
214
+ background-color: ButtonFace;
215
+ outline-color: ButtonText;
216
+ }
217
+ :host([variant]:not(:disabled):not([disabled-interactive]):not([toggle])) .label,
218
+ :host([variant]:not(:disabled):not([disabled-interactive]):not([toggle])) .icon {
219
+ color: ButtonText;
220
+ }
221
+ :host([variant]:not(:disabled):not([disabled-interactive])[toggle]:not([selected])) .base {
222
+ background-color: ButtonFace;
223
+ outline-color: ButtonText;
224
+ }
225
+ :host([variant]:not(:disabled):not([disabled-interactive])[toggle]:not([selected])) .label,
226
+ :host([variant]:not(:disabled):not([disabled-interactive])[toggle]:not([selected])) .icon {
227
+ color: ButtonText;
228
+ }
229
+ :host([variant]:not(:disabled):not([disabled-interactive])[toggle][selected]) .base {
230
+ background-color: ButtonText;
231
+ outline: none;
232
+ }
233
+ :host([variant]:not(:disabled):not([disabled-interactive])[toggle][selected]) .label,
234
+ :host([variant]:not(:disabled):not([disabled-interactive])[toggle][selected]) .icon {
235
+ forced-color-adjust: none;
236
+ color: ButtonFace;
237
+ background-color: ButtonText;
238
+ }
239
+ :host([variant]:disabled) .base,
240
+ :host([variant][disabled-interactive]) .base {
241
+ outline-color: GrayText;
242
+ background-color: unset;
243
+ }
244
+ :host([variant]:disabled) .label,
245
+ :host([variant][disabled-interactive]) .label,
246
+ :host([variant]:disabled) .icon,
247
+ :host([variant][disabled-interactive]) .icon {
248
+ color: GrayText;
249
+ }
250
+ .base {
251
+ outline-style: solid;
252
+ }
253
+ :host([size="extra-small"]) .base {
254
+ outline-offset: calc(0px - var(--m3e-icon-button-extra-small-outline-thickness, 1px));
255
+ outline-width: var(--m3e-icon-button-extra-small-outline-thickness, 1px);
256
+ }
257
+ :host([size="small"]) .base {
258
+ outline-offset: calc(0px - var(--m3e-icon-button-small-outline-thickness, 1px));
259
+ outline-width: var(--m3e-icon-button-small-outline-thickness, 1px);
260
+ }
261
+ :host([size="medium"]) .base {
262
+ outline-offset: calc(0px - var(--m3e-icon-button-medium-outline-thickness, 1px));
263
+ outline-width: var(--m3e-icon-button-medium-outline-thickness, 1px);
264
+ }
265
+ :host([size="large"]) .base {
266
+ outline-offset: calc(0px - var(--m3e-icon-button-large-outline-thickness, 0.125rem));
267
+ outline-width: var(--m3e-icon-button-large-outline-thickness, 0.125rem);
268
+ }
269
+ :host([size="extra-large"]) .base {
270
+ outline-offset: calc(0px - var(--m3e-icon-button-extra-large-outline-thickness, 0.1875rem));
271
+ outline-width: var(--m3e-icon-button-extra-large-outline-thickness, 0.1875rem);
272
+ }
273
+ }
274
+ @media (prefers-reduced-motion) {
275
+ :host(.-pressed) .base,
276
+ :host(.-resting) .base,
277
+ .base,
278
+ .wrapper,
279
+ .icon {
280
+ transition: none;
281
+ }
282
+ }
283
+ `,Y={elevated:{iconColor:e(`var(--m3e-elevated-icon-button-icon-color, ${n.color.primary})`),containerColor:e(`var(--m3e-elevated-icon-button-container-color, ${n.color.surfaceContainerLow})`),containerElevation:e(`var(--m3e-elevated-icon-button-container-elevation, ${n.elevation.level1})`),unselectedIconColor:e(`var(--m3e-elevated-icon-button-unselected-icon-color, ${n.color.primary})`),unselectedContainerColor:e(`var(--m3e-elevated-icon-button-unselected-container-color, ${n.color.surfaceContainerLow})`),selectedIconColor:e(`var(--m3e-elevated-icon-button-selected-icon-color, ${n.color.onPrimary})`),selectedContainerColor:e(`var(--m3e-elevated-icon-button-selected-container-color, ${n.color.primary})`),disabled:{containerColor:e(`var(--m3e-elevated-icon-button-disabled-container-color, ${n.color.onSurface})`),containerOpacity:e("var(--m3e-elevated-icon-button-disabled-container-opacity, 10%)"),iconColor:e(`var(--m3e-elevated-icon-button-disabled-icon-color, ${n.color.onSurface})`),iconOpacity:e("var(--m3e-elevated-icon-button-disabled-icon-opacity, 38%)"),containerElevation:e(`var(--m3e-elevated-icon-button-disabled-container-elevation, ${n.elevation.level0})`)},hover:{iconColor:e(`var(--m3e-elevated-icon-button-hover-icon-color, ${n.color.primary})`),stateLayerColor:e(`var(--m3e-elevated-icon-button-hover-state-layer-color, ${n.color.primary})`),stateLayerOpacity:e(`var(--m3e-elevated-icon-button-hover-state-layer-opacity, ${n.state.hoverStateLayerOpacity})`),containerElevation:e(`var(--m3e-elevated-icon-button-hover-container-elevation, ${n.elevation.level2})`),unselectedIconColor:e(`var(--m3e-elevated-icon-button-hover-unselected-icon-color, ${n.color.primary})`),unselectedStateLayerColor:e(`var(--m3e-elevated-icon-button-hover-unselected-state-layer-color, ${n.color.primary})`),selectedIconColor:e(`var(--m3e-elevated-icon-button-hover-selected-icon-color, ${n.color.onPrimary})`),selectedStateLayerColor:e(`var(--m3e-elevated-icon-button-hover-selected-state-layer-color, ${n.color.onPrimary})`)},focus:{iconColor:e(`var(--m3e-elevated-icon-button-focus-icon-color, ${n.color.primary})`),stateLayerColor:e(`var(--m3e-elevated-icon-button-focus-state-layer-color, ${n.color.primary})`),stateLayerOpacity:e(`var(--m3e-elevated-icon-button-focus-state-layer-opacity, ${n.state.focusStateLayerOpacity})`),containerElevation:e(`var(--m3e-elevated-icon-button-focus-container-elevation, ${n.elevation.level1})`),unselectedIconColor:e(`var(--m3e-elevated-icon-button-focus-unselected-icon-color, ${n.color.primary})`),unselectedStateLayerColor:e(`var(--m3e-elevated-icon-button-focus-unselected-state-layer-color, ${n.color.primary})`),selectedIconColor:e(`var(--m3e-elevated-icon-button-focus-selected-icon-color, ${n.color.onPrimary})`),selectedStateLayerColor:e(`var(--m3e-elevated-icon-button-focus-selected-state-layer-color, ${n.color.onPrimary})`)},pressed:{iconColor:e(`var(--m3e-elevated-icon-button-pressed-icon-color, ${n.color.primary})`),stateLayerColor:e(`var(--m3e-elevated-icon-button-pressed-state-layer-color, ${n.color.primary})`),stateLayerOpacity:e(`var(--m3e-elevated-icon-button-pressed-state-layer-opacity, ${n.state.pressedStateLayerOpacity})`),containerElevation:e(`var(--m3e-elevated-icon-button-pressed-container-elevation, ${n.elevation.level1})`),unselectedIconColor:e(`var(--m3e-elevated-icon-button-pressed-unselected-icon-color, ${n.color.primary})`),unselectedStateLayerColor:e(`var(--m3e-elevated-icon-button-pressed-unselected-state-layer-color, ${n.color.primary})`),selectedIconColor:e(`var(--m3e-elevated-icon-button-pressed-selected-icon-color, ${n.color.onPrimary})`),selectedStateLayerColor:e(`var(--m3e-elevated-icon-button-pressed-selected-state-layer-color, ${n.color.onPrimary})`)}},outlined:{iconColor:e(`var(--m3e-outlined-icon-button-icon-color, ${n.color.onSurfaceVariant})`),outlineColor:e(`var(--m3e-outlined-icon-button-outline-color, ${n.color.outlineVariant})`),unselectedIconColor:e(`var(--m3e-outlined-icon-button-unselected-icon-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-outlined-icon-button-selected-icon-color, ${n.color.inverseOnSurface})`),selectedContainerColor:e(`var(--m3e-outlined-icon-button-selected-container-color, ${n.color.inverseSurface})`),disabled:{containerColor:e(`var(--m3e-outlined-icon-button-disabled-container-color, ${n.color.onSurface})`),containerOpacity:e("var(--m3e-outlined-icon-button-disabled-container-opacity, 10%)"),iconColor:e(`var(--m3e-outlined-icon-button-disabled-icon-color, ${n.color.onSurface})`),iconOpacity:e("var(--m3e-outlined-icon-button-disabled-icon-opacity, 38%)"),outlineColor:e(`var(--m3e-outlined-icon-button-disabled-outline-color, ${n.color.outlineVariant})`)},hover:{iconColor:e(`var(--m3e-outlined-icon-button-hover-icon-color, ${n.color.onSurfaceVariant})`),outlineColor:e(`var(--m3e-outlined-icon-button-hover-outline-color, ${n.color.outlineVariant})`),stateLayerColor:e(`var(--m3e-outlined-icon-button-hover-state-layer-color, ${n.color.onSurfaceVariant})`),stateLayerOpacity:e(`var(--m3e-outlined-icon-button-hover-state-layer-opacity, ${n.state.hoverStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-outlined-icon-button-hover-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-outlined-icon-button-hover-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-outlined-icon-button-hover-selected-icon-color, ${n.color.inverseOnSurface})`),selectedStateLayerColor:e(`var(--m3e-outlined-icon-button-hover-selected-state-layer-color, ${n.color.inverseOnSurface})`)},focus:{iconColor:e(`var(--m3e-outlined-icon-button-focus-icon-color, ${n.color.onSurfaceVariant})`),outlineColor:e(`var(--m3e-outlined-icon-button-focus-outline-color, ${n.color.outlineVariant})`),stateLayerColor:e(`var(--m3e-outlined-icon-button-focus-state-layer-color, ${n.color.onSurfaceVariant})`),stateLayerOpacity:e(`var(--m3e-outlined-icon-button-focus-state-layer-opacity, ${n.state.focusStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-outlined-icon-button-focus-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-outlined-icon-button-focus-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-outlined-icon-button-focus-selected-icon-color, ${n.color.inverseOnSurface})`),selectedStateLayerColor:e(`var(--m3e-outlined-icon-button-focus-selected-state-layer-color, ${n.color.inverseOnSurface})`)},pressed:{iconColor:e(`var(--m3e-outlined-icon-button-pressed-icon-color, ${n.color.onSurfaceVariant})`),outlineColor:e(`var(--m3e-outlined-icon-button-pressed-outline-color, ${n.color.outlineVariant})`),stateLayerColor:e(`var(--m3e-outlined-icon-button-pressed-state-layer-color, ${n.color.onSurfaceVariant})`),stateLayerOpacity:e(`var(--m3e-outlined-icon-button-pressed-state-layer-opacity, ${n.state.pressedStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-outlined-icon-button-pressed-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-outlined-icon-button-pressed-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-outlined-icon-button-pressed-selected-icon-color, ${n.color.inverseOnSurface})`),selectedStateLayerColor:e(`var(--m3e-outlined-icon-button-pressed-selected-state-layer-color, ${n.color.inverseOnSurface})`)}},filled:{iconColor:e(`var(--m3e-filled-icon-button-icon-color, ${n.color.onPrimary})`),containerColor:e(`var(--m3e-filled-icon-button-container-color, ${n.color.primary})`),unselectedIconColor:e(`var(--m3e-filled-icon-button-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedContainerColor:e(`var(--m3e-filled-icon-button-unselected-container-color, ${n.color.surfaceContainer})`),selectedIconColor:e(`var(--m3e-filled-icon-button-selected-icon-color, ${n.color.onPrimary})`),selectedContainerColor:e(`var(--m3e-filled-icon-button-selected-container-color, ${n.color.primary})`),disabled:{containerColor:e(`var(--m3e-filled-icon-button-disabled-container-color, ${n.color.onSurface})`),containerOpacity:e("var(--m3e-filled-icon-button-disabled-container-opacity, 10%)"),iconColor:e(`var(--m3e-filled-icon-button-disabled-icon-color, ${n.color.onSurface})`),iconOpacity:e("var(--m3e-filled-icon-button-disabled-icon-opacity, 38%)")},hover:{iconColor:e(`var(--m3e-filled-icon-button-hover-icon-color, ${n.color.onPrimary})`),stateLayerColor:e(`var(--m3e-filled-icon-button-hover-state-layer-color, ${n.color.onPrimary})`),stateLayerOpacity:e(`var(--m3e-filled-icon-button-hover-state-layer-opacity, ${n.state.hoverStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-filled-icon-button-hover-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-filled-icon-button-hover-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-filled-icon-button-hover-selected-icon-color, ${n.color.onPrimary})`),selectedStateLayerColor:e(`var(--m3e-filled-icon-button-hover-selected-state-layer-color, ${n.color.onPrimary})`)},focus:{iconColor:e(`var(--m3e-filled-icon-button-focus-icon-color, ${n.color.onPrimary})`),stateLayerColor:e(`var(--m3e-filled-icon-button-focus-state-layer-color, ${n.color.onPrimary})`),stateLayerOpacity:e(`var(--m3e-filled-icon-button-focus-state-layer-opacity, ${n.state.focusStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-filled-icon-button-focus-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-filled-icon-button-focus-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-filled-icon-button-focus-selected-icon-color, ${n.color.onPrimary})`),selectedStateLayerColor:e(`var(--m3e-filled-icon-button-focus-selected-state-layer-color, ${n.color.onPrimary})`)},pressed:{iconColor:e(`var(--m3e-filled-icon-button-pressed-icon-color, ${n.color.onPrimary})`),stateLayerColor:e(`var(--m3e-filled-icon-button-pressed-state-layer-color, ${n.color.onPrimary})`),stateLayerOpacity:e(`var(--m3e-filled-icon-button-pressed-state-layer-opacity, ${n.state.pressedStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-filled-icon-button-pressed-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-filled-icon-button-pressed-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-filled-icon-button-pressed-selected-icon-color, ${n.color.onPrimary})`),selectedStateLayerColor:e(`var(--m3e-filled-icon-button-pressed-selected-state-layer-color, ${n.color.onPrimary})`)}},tonal:{iconColor:e(`var(--m3e-tonal-icon-button-icon-color, ${n.color.onSecondaryContainer})`),containerColor:e(`var(--m3e-tonal-icon-button-container-color, ${n.color.secondaryContainer})`),unselectedIconColor:e(`var(--m3e-tonal-icon-button-unselected-icon-color, ${n.color.onSecondaryContainer})`),unselectedContainerColor:e(`var(--m3e-tonal-icon-button-unselected-container-color, ${n.color.secondaryContainer})`),selectedIconColor:e(`var(--m3e-tonal-icon-button-selected-icon-color, ${n.color.onSecondary})`),selectedContainerColor:e(`var(--m3e-tonal-icon-button-selected-container-color, ${n.color.secondary})`),disabled:{containerColor:e(`var(--m3e-tonal-icon-button-disabled-container-color, ${n.color.onSurface})`),containerOpacity:e("var(--m3e-tonal-icon-button-disabled-container-opacity, 10%)"),iconColor:e(`var(--m3e-tonal-icon-button-disabled-icon-color, ${n.color.onSurface})`),iconOpacity:e("var(--m3e-tonal-icon-button-disabled-icon-opacity, 38%)")},hover:{iconColor:e(`var(--m3e-tonal-icon-button-hover-icon-color, ${n.color.onSecondaryContainer})`),stateLayerColor:e(`var(--m3e-tonal-icon-button-hover-state-layer-color, ${n.color.onSecondaryContainer})`),stateLayerOpacity:e(`var(--m3e-tonal-icon-button-hover-state-layer-opacity, ${n.state.hoverStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-tonal-icon-button-hover-unselected-icon-color, ${n.color.onSecondaryContainer})`),unselectedStateLayerColor:e(`var(--m3e-tonal-icon-button-hover-unselected-state-layer-color, ${n.color.onSecondaryContainer})`),selectedIconColor:e(`var(--m3e-tonal-icon-button-hover-selected-icon-color, ${n.color.onSecondary})`),selectedStateLayerColor:e(`var(--m3e-tonal-icon-button-hover-selected-state-layer-color, ${n.color.onSecondary})`)},focus:{iconColor:e(`var(--m3e-tonal-icon-button-focus-icon-color, ${n.color.onSecondaryContainer})`),stateLayerColor:e(`var(--m3e-tonal-icon-button-focus-state-layer-color, ${n.color.onSecondaryContainer})`),stateLayerOpacity:e(`var(--m3e-tonal-icon-button-focus-state-layer-opacity, ${n.state.focusStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-tonal-icon-button-focus-unselected-icon-color, ${n.color.onSecondaryContainer})`),unselectedStateLayerColor:e(`var(--m3e-tonal-icon-button-focus-unselected-state-layer-color, ${n.color.onSecondaryContainer})`),selectedIconColor:e(`var(--m3e-tonal-icon-button-focus-selected-icon-color, ${n.color.onSecondary})`),selectedStateLayerColor:e(`var(--m3e-tonal-icon-button-focus-selected-state-layer-color, ${n.color.onSecondary})`)},pressed:{iconColor:e(`var(--m3e-tonal-icon-button-pressed-icon-color, ${n.color.onSecondaryContainer})`),stateLayerColor:e(`var(--m3e-tonal-icon-button-pressed-state-layer-color, ${n.color.onSecondaryContainer})`),stateLayerOpacity:e(`var(--m3e-tonal-icon-button-pressed-state-layer-opacity, ${n.state.pressedStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-tonal-icon-button-pressed-unselected-icon-color, ${n.color.onSecondaryContainer})`),unselectedStateLayerColor:e(`var(--m3e-tonal-icon-button-pressed-unselected-state-layer-color, ${n.color.onSecondaryContainer})`),selectedIconColor:e(`var(--m3e-tonal-icon-button-pressed-selected-icon-color, ${n.color.onSecondary})`),selectedStateLayerColor:e(`var(--m3e-tonal-icon-button-pressed-selected-state-layer-color, ${n.color.onSecondary})`)}},standard:{iconColor:e(`var(--m3e-standard-icon-button-icon-color, ${n.color.onSurfaceVariant})`),unselectedIconColor:e(`var(--m3e-standard-icon-button-unselected-icon-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-standard-icon-button-selected-icon-color, ${n.color.primary})`),disabled:{containerColor:e("var(--m3e-standard-icon-button-disabled-container-color, transparent)"),containerOpacity:e("var(--m3e-standard-icon-button-disabled-container-opacity, 10%)"),iconColor:e(`var(--m3e-standard-icon-button-disabled-icon-color, ${n.color.onSurface})`),iconOpacity:e("var(--m3e-standard-icon-button-disabled-icon-opacity, 38%)")},hover:{iconColor:e(`var(--m3e-standard-icon-button-hover-icon-color, ${n.color.onSurfaceVariant})`),stateLayerColor:e(`var(--m3e-standard-icon-button-hover-state-layer-color, ${n.color.onSurfaceVariant})`),stateLayerOpacity:e(`var(--m3e-standard-icon-button-hover-state-layer-opacity, ${n.state.hoverStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-standard-icon-button-hover-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-standard-icon-button-hover-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-standard-icon-button-hover-selected-icon-color, ${n.color.primary})`),selectedStateLayerColor:e(`var(--m3e-standard-icon-button-hover-selected-state-layer-color, ${n.color.primary})`)},focus:{iconColor:e(`var(--m3e-standard-icon-button-focus-icon-color, ${n.color.onSurfaceVariant})`),stateLayerColor:e(`var(--m3e-standard-icon-button-focus-state-layer-color, ${n.color.onSurfaceVariant})`),stateLayerOpacity:e(`var(--m3e-standard-icon-button-focus-state-layer-opacity, ${n.state.focusStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-standard-icon-button-focus-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-standard-icon-button-focus-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-standard-icon-button-focus-selected-icon-color, ${n.color.primary})`),selectedStateLayerColor:e(`var(--m3e-standard-icon-button-focus-selected-state-layer-color, ${n.color.primary})`)},pressed:{iconColor:e(`var(--m3e-standard-icon-button-pressed-icon-color, ${n.color.onSurfaceVariant})`),stateLayerColor:e(`var(--m3e-standard-icon-button-pressed-state-layer-color, ${n.color.onSurfaceVariant})`),stateLayerOpacity:e(`var(--m3e-standard-icon-button-pressed-state-layer-opacity, ${n.state.pressedStateLayerOpacity})`),unselectedIconColor:e(`var(--m3e-standard-icon-button-pressed-unselected-icon-color, ${n.color.onSurfaceVariant})`),unselectedStateLayerColor:e(`var(--m3e-standard-icon-button-pressed-unselected-state-layer-color, ${n.color.onSurfaceVariant})`),selectedIconColor:e(`var(--m3e-standard-icon-button-pressed-selected-icon-color, ${n.color.primary})`),selectedStateLayerColor:e(`var(--m3e-standard-icon-button-pressed-selected-state-layer-color, ${n.color.primary})`)}}};function Z(o){return t`
284
+ :host([variant="${e(o)}"]:not(:disabled):not([disabled-interactive])) .base {
285
+ background-color: ${Y[o].containerColor??e("unset")};
286
+ --m3e-state-layer-hover-color: ${Y[o].hover.stateLayerColor};
287
+ --m3e-state-layer-hover-opacity: ${Y[o].hover.stateLayerOpacity};
288
+ --m3e-state-layer-focus-color: ${Y[o].focus.stateLayerColor};
289
+ --m3e-state-layer-focus-opacity: ${Y[o].focus.stateLayerOpacity};
290
+ --m3e-ripple-color: ${Y[o].pressed.stateLayerColor};
291
+ --m3e-ripple-opacity: ${Y[o].pressed.stateLayerOpacity};
292
+ --m3e-elevation-level: ${Y[o].containerElevation??e("unset")};
293
+ --m3e-elevation-hover-level: ${Y[o].hover.containerElevation??e("unset")};
294
+ --m3e-elevation-focus-level: ${Y[o].focus.containerElevation??e("unset")};
295
+ --m3e-elevation-pressed-level: ${Y[o].pressed.containerElevation??e("unset")};
296
+ }
297
+ :host([variant="${e(o)}"][toggle]:not([selected]):not(:disabled):not([disabled-interactive])) .base {
298
+ background-color: ${Y[o].unselectedContainerColor??e("unset")};
299
+ --m3e-state-layer-hover-color: ${Y[o].hover.unselectedStateLayerColor};
300
+ --m3e-state-layer-focus-color: ${Y[o].focus.unselectedStateLayerColor};
301
+ --m3e-ripple-color: ${Y[o].pressed.unselectedStateLayerColor};
302
+ }
303
+ :host([variant="${e(o)}"][toggle][selected]:not(:disabled):not([disabled-interactive])) .base {
304
+ background-color: ${Y[o].selectedContainerColor??e("unset")};
305
+ --m3e-state-layer-hover-color: ${Y[o].hover.selectedStateLayerColor};
306
+ --m3e-state-layer-focus-color: ${Y[o].focus.selectedStateLayerColor};
307
+ --m3e-ripple-color: ${Y[o].pressed.selectedStateLayerColor};
308
+ }
309
+ :host([variant="${e(o)}"]:not(:disabled):not([disabled-interactive])) .base {
310
+ outline-color: ${Y[o].outlineColor??e("unset")};
311
+ }
312
+ :host([variant="${e(o)}"]:focus:not(:disabled):not([disabled-interactive])) .base {
313
+ outline-color: ${Y[o].focus.outlineColor??e("unset")};
314
+ }
315
+ :host([variant="${e(o)}"]:hover:not(:disabled):not([disabled-interactive])) .base {
316
+ outline-color: ${Y[o].hover.outlineColor??e("unset")};
317
+ }
318
+ :host([variant="${e(o)}"].-pressed:not(:disabled):not([disabled-interactive])) .base {
319
+ outline-color: ${Y[o].pressed.outlineColor??e("unset")};
320
+ }
321
+ :host([variant="${e(o)}"]:not(:disabled):not([disabled-interactive])) .icon {
322
+ color: ${Y[o].iconColor};
323
+ }
324
+ :host([variant="${e(o)}"][toggle]:not([selected]):not(:disabled):not([disabled-interactive])) .icon {
325
+ color: ${Y[o].unselectedIconColor};
326
+ }
327
+ :host([variant="${e(o)}"][toggle][selected]:not(:disabled):not([disabled-interactive])) .icon {
328
+ color: ${Y[o].selectedIconColor};
329
+ }
330
+ :host([variant="${e(o)}"]:focus:not(:disabled):not([disabled-interactive])) .icon {
331
+ color: ${Y[o].focus.iconColor};
332
+ }
333
+ :host([variant="${e(o)}"][toggle]:not([selected]):focus:not(:disabled):not([disabled-interactive]))
334
+ .icon {
335
+ color: ${Y[o].focus.unselectedIconColor};
336
+ }
337
+ :host([variant="${e(o)}"][toggle][selected]:focus:not(:disabled):not([disabled-interactive])) .icon {
338
+ color: ${Y[o].focus.selectedIconColor};
339
+ }
340
+ :host([variant="${e(o)}"]:hover:not(:disabled):not([disabled-interactive])) .icon {
341
+ color: ${Y[o].hover.iconColor};
342
+ }
343
+ :host([variant="${e(o)}"][toggle]:not([selected]):hover:not(:disabled):not([disabled-interactive]))
344
+ .icon {
345
+ color: ${Y[o].hover.unselectedIconColor};
346
+ }
347
+ :host([variant="${e(o)}"][toggle][selected]:hover:not(:disabled):not([disabled-interactive])) .icon {
348
+ color: ${Y[o].hover.selectedIconColor};
349
+ }
350
+ :host([variant="${e(o)}"].-pressed:not(:disabled):not([disabled-interactive])) .icon {
351
+ color: ${Y[o].pressed.iconColor};
352
+ }
353
+ :host([variant="${e(o)}"][toggle]:not([selected]).-pressed:not(:disabled):not([disabled-interactive]))
354
+ .icon {
355
+ color: ${Y[o].pressed.unselectedIconColor};
356
+ }
357
+ :host([variant="${e(o)}"][toggle][selected].-pressed:not(:disabled):not([disabled-interactive]))
358
+ .icon {
359
+ color: ${Y[o].pressed.selectedIconColor};
360
+ }
361
+ :host([variant="${e(o)}"]:disabled) .base,
362
+ :host([variant="${e(o)}"][disabled-interactive]) .base {
363
+ outline-color: ${Y[o].disabled.outlineColor??e("unset")};
364
+ background-color: color-mix(
365
+ in srgb,
366
+ ${Y[o].disabled.containerColor}
367
+ ${Y[o].disabled.containerOpacity},
368
+ transparent
369
+ );
370
+ }
371
+ :host([variant="${e(o)}"]:disabled) .icon,
372
+ :host([variant="${e(o)}"][disabled-interactive]) .icon {
373
+ color: color-mix(
374
+ in srgb,
375
+ ${Y[o].disabled.iconColor} ${Y[o].disabled.iconOpacity},
376
+ transparent
377
+ );
378
+ }
379
+ `}const ee=[Z("standard"),Z("outlined"),Z("filled"),Z("tonal"),Z("elevated"),t`
380
+ :host([variant="outlined"]) .base {
381
+ outline-style: solid;
382
+ }
383
+ `];var te,oe,re,ae,ne;let ie=class extends(i(s(c(l(d(u(p(h(o,"button"),!0)))))))){constructor(){super(),te.add(this),oe.set(this,e=>S(this,te,"m",ae).call(this,e)),this.variant="standard",this.shape="rounded",this.size="small",this.width="default",this.toggle=!1,this.selected=!1,new v(this,{callback:()=>{this.grouped&&this._handleResize()}}),new m(this,{callback:e=>{!this.disabledInteractive&&this._base&&(e?S(this,te,"m",re).call(this):this.grouped||this._base?.style.removeProperty("--_button-shape"))}}),new b(this,{isPressedKey:e=>" "===e||"Enter"===e,callback:e=>{if(!this.disabled&&!this.disabledInteractive){this.classList.toggle("-pressed",e),this.classList.toggle("-resting",!e);const t=this.closest("m3e-button-group");if(t){const o=this.getBoundingClientRect().width,r=[...t.querySelectorAll("m3e-button,m3e-icon-button")],a=r.indexOf(this);for(let t=0;t<r.length;t++){const n=r[t];t===a-1||t===a+1?(n.style.setProperty("--_adjacent-button-width",`${o}px`),n.classList.toggle("-adjacent-pressed",e)):(n.style.removeProperty("--_adjacent-button-width"),n.classList.remove("-adjacent-pressed"))}}}}})}get grouped(){return this.classList.contains("-grouped")}render(){return a`<div class="base">
384
+ <m3e-state-layer class="state-layer" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-state-layer>
385
+ <m3e-elevation class="elevation" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-elevation>
386
+ <m3e-focus-ring class="focus-ring" ?disabled="${this.disabled}"></m3e-focus-ring>
387
+ <m3e-ripple class="ripple" centered ?disabled="${this.disabled||this.disabledInteractive}"></m3e-ripple>
388
+ <div class="touch" aria-hidden="true"></div>
389
+ ${this[y]()}
390
+ <div class="wrapper">
391
+ ${this.toggle?a`<slot
392
+ class="icon"
393
+ name="selected"
394
+ aria-hidden="true"
395
+ @slotchange="${S(this,te,"m",ne)}"
396
+ ></slot>`:r}
397
+ <slot class="icon" aria-hidden="true"></slot>
398
+ </div>
399
+ </div>`}connectedCallback(){super.connectedCallback(),this.addEventListener("click",S(this,oe,"f"))}disconnectedCallback(){super.disconnectedCallback(),["-pressed","-resting","-grouped","-connected"].forEach(e=>this.classList.remove(e)),this._base?.style.removeProperty("--_button-shape"),this.style.removeProperty("--_button-width"),this.style.removeProperty("--_adjacent-button-width"),this.classList.remove("-adjacent-pressed"),this.removeEventListener("click",S(this,oe,"f"))}firstUpdated(e){super.firstUpdated(e),[this._elevation,this._focusRing,this._stateLayer,this._ripple].forEach(e=>e?.attach(this))}updated(e){if(super.updated(e),(e.has("disabled")&&this.disabled||e.has("disabledInteractive")&&this.disabledInteractive)&&(this.classList.toggle("-pressed",!1),this.classList.toggle("-resting",!1)),(e.has("toggle")||e.has("selected"))&&(this.ariaPressed=this.toggle?`${this.selected}`:null,this.toggle))for(const e of this.querySelectorAll("m3e-icon"))e.toggleAttribute("filled",this.selected)}_handleResize(){this.grouped&&!this.classList.contains("-pressed")&&(this.style.setProperty("--_button-width",`${this.clientWidth}px`),S(this,te,"m",re).call(this,!0))}};oe=new WeakMap,te=new WeakSet,re=function(e=!1){if(!this._base)return;const t=parseFloat(getComputedStyle(this._base).borderRadius);if(!isNaN(t)||e){const o=this.clientHeight/2;(o<t||e)&&this._base?.style.setProperty("--_button-shape",`${o}px`)}},ae=function(e){(this.disabled||this.disabledInteractive)&&(e.preventDefault(),e.stopImmediatePropagation()),this.toggle&&!e.defaultPrevented&&(this.selected=!this.selected,this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0,cancelable:!0}))?this.dispatchEvent(new Event("change",{bubbles:!0})):this.selected=!this.selected)},ne=function(e){this._base?.classList.toggle("with-selected-icon",f(e.target))},ie.styles=[Q,ee,X],g([K(".base")],ie.prototype,"_base",void 0),g([K(".elevation")],ie.prototype,"_elevation",void 0),g([K(".focus-ring")],ie.prototype,"_focusRing",void 0),g([K(".state-layer")],ie.prototype,"_stateLayer",void 0),g([K(".ripple")],ie.prototype,"_ripple",void 0),g([F({reflect:!0})],ie.prototype,"variant",void 0),g([F({reflect:!0})],ie.prototype,"shape",void 0),g([F({reflect:!0})],ie.prototype,"size",void 0),g([F({reflect:!0})],ie.prototype,"width",void 0),g([F({type:Boolean,reflect:!0})],ie.prototype,"toggle",void 0),g([F({type:Boolean,reflect:!0})],ie.prototype,"selected",void 0),g([$(40)],ie.prototype,"_handleResize",null),ie=g([(e=>(t,o)=>{void 0!==o?o.addInitializer(()=>{customElements.define(e,t)}):customElements.define(e,t)})("m3e-icon-button")],ie);export{ie as M3eIconButtonElement};
400
+ //# sourceMappingURL=index.min.js.map