@m3e/web 2.5.10 → 2.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.js +371 -125
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +56 -56
- package/dist/all.min.js.map +1 -1
- package/dist/autocomplete.js +23 -5
- package/dist/autocomplete.js.map +1 -1
- package/dist/autocomplete.min.js +1 -1
- package/dist/autocomplete.min.js.map +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/breadcrumb.js.map +1 -1
- package/dist/breadcrumb.min.js +1 -1
- package/dist/breadcrumb.min.js.map +1 -1
- package/dist/button.js +13 -7
- package/dist/button.js.map +1 -1
- package/dist/button.min.js +1 -1
- package/dist/button.min.js.map +1 -1
- package/dist/checkbox.js +5 -0
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.min.js +1 -1
- package/dist/checkbox.min.js.map +1 -1
- package/dist/chips.js +2 -2
- package/dist/chips.js.map +1 -1
- package/dist/chips.min.js +1 -1
- package/dist/chips.min.js.map +1 -1
- package/dist/core.js +27 -23
- package/dist/core.js.map +1 -1
- package/dist/core.min.js +1 -1
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +5263 -5233
- package/dist/custom-elements.json +51230 -50306
- package/dist/fab.js +9 -9
- package/dist/fab.js.map +1 -1
- package/dist/fab.min.js +1 -1
- package/dist/fab.min.js.map +1 -1
- package/dist/form-field.js +4 -5
- package/dist/form-field.js.map +1 -1
- package/dist/form-field.min.js +2 -2
- package/dist/form-field.min.js.map +1 -1
- package/dist/html-custom-data.json +1693 -1666
- package/dist/icon-button.js +48 -42
- package/dist/icon-button.js.map +1 -1
- package/dist/icon-button.min.js +1 -1
- package/dist/icon-button.min.js.map +1 -1
- package/dist/menu.js +2 -2
- package/dist/menu.js.map +1 -1
- package/dist/menu.min.js +1 -1
- package/dist/menu.min.js.map +1 -1
- package/dist/option.js +13 -3
- package/dist/option.js.map +1 -1
- package/dist/option.min.js +1 -1
- package/dist/option.min.js.map +1 -1
- package/dist/paginator.js +1 -1
- package/dist/paginator.js.map +1 -1
- package/dist/paginator.min.js +2 -2
- package/dist/paginator.min.js.map +1 -1
- package/dist/radio-group.js +6 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/radio-group.min.js +1 -1
- package/dist/radio-group.min.js.map +1 -1
- package/dist/select.js +18 -2
- package/dist/select.js.map +1 -1
- package/dist/select.min.js +1 -1
- package/dist/select.min.js.map +1 -1
- package/dist/split-button.js +1 -1
- package/dist/split-button.js.map +1 -1
- package/dist/split-button.min.js +1 -1
- package/dist/split-button.min.js.map +1 -1
- package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
- package/dist/src/button/ButtonElement.d.ts +1 -0
- package/dist/src/button/ButtonElement.d.ts.map +1 -1
- package/dist/src/checkbox/CheckboxElement.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/LinkButton.d.ts.map +1 -1
- package/dist/src/core/shared/tokens/DesignToken.d.ts +3 -0
- package/dist/src/core/shared/tokens/DesignToken.d.ts.map +1 -1
- package/dist/src/core/shared/tokens/MeasurementToken.d.ts +13 -7
- package/dist/src/core/shared/tokens/MeasurementToken.d.ts.map +1 -1
- package/dist/src/fab/styles/FabSizeToken.d.ts.map +1 -1
- package/dist/src/form-field/FormFieldElement.d.ts.map +1 -1
- package/dist/src/icon-button/IconButtonElement.d.ts +1 -0
- package/dist/src/icon-button/IconButtonElement.d.ts.map +1 -1
- package/dist/src/icon-button/styles/IconButtonSizeToken.d.ts.map +1 -1
- package/dist/src/menu/MenuElement.d.ts.map +1 -1
- package/dist/src/menu/MenuItemElementBase.d.ts.map +1 -1
- package/dist/src/option/OptionElement.d.ts.map +1 -1
- package/dist/src/option/OptionPanelElement.d.ts.map +1 -1
- package/dist/src/paginator/PaginatorElement.d.ts.map +1 -1
- package/dist/src/radio-group/RadioElement.d.ts.map +1 -1
- package/dist/src/select/SelectElement.d.ts.map +1 -1
- package/dist/src/split-button/SplitButtonElement.d.ts.map +1 -1
- package/dist/src/switch/SwitchElement.d.ts.map +1 -1
- package/dist/src/switch/styles/SwitchToken.d.ts.map +1 -1
- package/dist/src/theme/ThemeElement.d.ts +6 -0
- package/dist/src/theme/ThemeElement.d.ts.map +1 -1
- package/dist/src/theme/ThemeIconElement.d.ts +60 -0
- package/dist/src/theme/ThemeIconElement.d.ts.map +1 -0
- package/dist/src/theme/ThemeVariant.d.ts +3 -0
- package/dist/src/theme/ThemeVariant.d.ts.map +1 -0
- package/dist/src/theme/index.d.ts +2 -0
- package/dist/src/theme/index.d.ts.map +1 -1
- package/dist/switch.js +16 -11
- package/dist/switch.js.map +1 -1
- package/dist/switch.min.js +1 -1
- package/dist/switch.min.js.map +1 -1
- package/dist/theme.js +184 -11
- package/dist/theme.js.map +1 -1
- package/dist/theme.min.js +31 -31
- package/dist/theme.min.js.map +1 -1
- package/package.json +1 -1
package/dist/chips.min.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright (c) 2025–2026 matraic
|
|
4
4
|
* See LICENSE file in the project root for full license text.
|
|
5
5
|
*/
|
|
6
|
-
import{__classPrivateFieldGet as e,__classPrivateFieldSet as t,__decorate as i}from"tslib";import{LitElement as s,nothing as o,html as a,unsafeCSS as n,css as l}from"lit";import{AttachInternals as r,isDisabledMixin as c,isDisabledInteractiveMixin as d,isLinkButtonMixin as h,renderPseudoLink as p,setCustomState as v,hasAssignedNodes as m,getTextContent as u,DesignToken as b,customElement as f,FormSubmitter as g,LinkButton as w,KeyboardClick as y,Focusable as $,DisabledInteractive as x,Disabled as k,Role as C,Vertical as E,Selected as S,Labelled as I,Dirty as A,Touched as L,FormAssociated as W,formValue as z,RequiredConstraintValidation as _,Required as M,ConstraintValidation as T,registerStyleSheet as B}from"@m3e/web/core";import{query as D,property as P}from"lit/decorators.js";import{selectionManager as j,SelectionManager as U,ListManager as V,ListKeyManager as O}from"@m3e/web/core/a11y";import{M3eDirectionality as q}from"@m3e/web/core/bidi";import{ifDefined as F}from"lit/directives/if-defined.js";var H,R,G,K,N,Z,J;let Q=class extends(r(s)){constructor(){super(...arguments),H.add(this),R.set(this,void 0),G.set(this,""),this.variant="outlined"}get value(){return e(this,R,"f")??e(this,G,"f")}set value(e){t(this,R,e,"f")}get label(){return e(this,G,"f")}firstUpdated(e){super.firstUpdated(e),"listitem"===this.role&&this.removeAttribute("tabindex"),[this._elevation,this._focusRing,this._stateLayer,this._ripple].forEach(e=>{e?.htmlFor||e?.attach(this)})}render(){const t=!c(this)||this.disabled,i=d(this)&&this.disabledInteractive;return a`<div class="base"><m3e-elevation class="elevation" ?disabled="${t||i}"></m3e-elevation><m3e-state-layer class="state-layer" ?disabled="${t||i}"></m3e-state-layer><m3e-focus-ring class="focus-ring" ?disabled="${t}"></m3e-focus-ring><m3e-ripple class="ripple" ?disabled="${t||i}"></m3e-ripple><div class="touch" aria-hidden="true"></div>${h(this)?this[p]():o}<div class="wrapper">${e(this,H,"m",K).call(this)}</div></div>`}_renderIcon(){return a`<slot name="icon" aria-hidden="true" @slotchange="${e(this,H,"m",N)}"></slot>`}_renderTrailingIcon(){return a`<slot name="trailing-icon" aria-hidden="true" @slotchange="${e(this,H,"m",Z)}"></slot>`}_renderSlot(){return a`<slot @slotchange="${e(this,H,"m",J)}"></slot>`}};R=new WeakMap,G=new WeakMap,H=new WeakSet,K=function(){return a`${this._renderIcon()}<div class="label">${this._renderSlot()}</div>${this._renderTrailingIcon()}`},N=function(e){v(this,"--with-icon",m(e.target))},Z=function(e){v(this,"--with-trailing-icon",m(e.target))},J=function(e){t(this,G,u(e.target),"f")},Q.styles=l`:host { display: inline-block; vertical-align: middle; outline: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .base { box-sizing: border-box; vertical-align: middle; display: inline-flex; align-items: center; justify-content: center; position: relative; width: 100%; transition: ${n(`background-color ${b.motion.duration.short4} ${b.motion.easing.standard}`)}; border-radius: var(--m3e-chip-container-shape, ${b.shape.corner.small}); height: calc(var(--m3e-chip-container-height, 2rem) + ${b.density.calc(-2)}); font-size: var(--m3e-chip-label-text-font-size, ${b.typescale.standard.label.large.fontSize}); font-weight: var(--m3e-chip-label-text-font-weight, ${b.typescale.standard.label.large.fontWeight}); line-height: var(--m3e-chip-label-text-line-height, ${b.typescale.standard.label.large.lineHeight}); letter-spacing: var(--m3e-chip-label-text-tracking, ${b.typescale.standard.label.large.tracking}); } :host(:not(m3e-chip):not(:disabled):not([disabled-interactive])) { cursor: pointer; } :host(:not(m3e-chip):not(:disabled)[disabled-interactive]) { cursor: not-allowed; } :host(:not(m3e-chip):not(:disabled):not([disabled-interactive])) .base { user-select: none; } .touch { position: absolute; height: 3rem; left: 0; right: 0; } .wrapper { width: 100%; overflow: hidden; display: inline-flex; align-items: center; column-gap: var(--m3e-chip-spacing, 0.5rem); } .label { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } a { all: unset; display: block; position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 1; } :host([variant="elevated"]) .base { background-color: var(--m3e-elevated-chip-container-color, ${b.color.surfaceContainerLow}); --m3e-elevation-level: var(--m3e-elevated-chip-elevation, ${b.elevation.level1}); --m3e-elevation-hover-level: var(--m3e-elevated-chip-hover-elevation, ${b.elevation.level2}); --m3e-elevation-focus-level: var(--m3e-elevated-chip-elevation, ${b.elevation.level1}); --m3e-elevation-pressed-level: var(--m3e-elevated-chip-elevation, ${b.elevation.level1}); } :host([variant="outlined"]) .base { outline-width: var(--m3e-outlined-chip-outline-thickness, 1px); outline-style: solid; outline-offset: calc(0px - var(--m3e-outlined-chip-outline-thickness, 1px)); } :host(:not(:disabled):not([disabled-interactive])[variant="outlined"]) .base { outline-color: var(--m3e-outlined-chip-outline-color, ${b.color.outlineVariant}); } :host(:disabled[variant="outlined"]) .base, :host([disabled-interactive][variant="outlined"]) .base { outline-color: color-mix( in srgb, var(--m3e-outlined-chip-disabled-outline-color, ${b.color.onSurface}) var(--m3e-outlined-chip-disabled-outline-opacity, 12%), transparent ); } :host(:is(:state(--with-icon), :--with-icon)) .wrapper { padding-inline-start: var(--m3e-chip-with-icon-padding-start, 0.5rem); } :host(:not(:is(:state(--with-icon), :--with-icon))) .wrapper { padding-inline-start: var(--m3e-chip-padding-start, 1rem); } :host(:is(:state(--with-trailing-icon), :--with-trailing-icon)) .wrapper { padding-inline-end: var(--m3e-chip-with-icon-padding-end, 0.5rem); } :host(:not(:is(:state(--with-trailing-icon), :--with-trailing-icon))) .wrapper { padding-inline-end: var(--m3e-chip-padding-end, 1rem); } ::slotted([slot="icon"]), ::slotted([slot="trailing-icon"]) { flex: none; width: 1em; font-size: var(--m3e-chip-icon-size, 1.125rem) !important; } :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base { color: var(--m3e-chip-label-text-color, ${b.color.onSurface}); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: var(--m3e-chip-icon-color, ${b.color.primary}); } :host(:disabled) .base, :host([disabled-interactive]) .base { color: color-mix( in srgb, var(--m3e-chip-disabled-label-text-color, ${b.color.onSurface}) var(--m3e-chip-disabled-label-text-opacity, 38%), transparent ); } :host(:disabled) ::slotted([slot="icon"]), :host([disabled-interactive]) ::slotted([slot="icon"]), :host(:disabled) ::slotted([slot="trailing-icon"]), :host([disabled-interactive]) ::slotted([slot="trailing-icon"]) { color: color-mix( in srgb, var(--m3e-chip-disabled-icon-color, ${b.color.onSurface}) var(--m3e-chip-disabled-icon-opacity, 38%), transparent ); } :host([variant="elevated"]:disabled) .base, :host([variant="elevated"][disabled-interactive]) .base { background-color: color-mix( in srgb, var(--m3e-elevated-chip-disabled-container-color, ${b.color.onSurface}) var(--m3e-elevated-chip-disabled-container-opacity, 12%), transparent ); --m3e-elevation-level: var(--m3e-elevated-chip-disabled-elevation, ${b.elevation.level0}); } @media (prefers-reduced-motion) { .base { transition: none; } } @media (forced-colors: active) { .base { transition: none; } :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base, :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: CanvasText; } :host(:not(:disabled):not([disabled-interactive])[variant="outlined"]) .base { outline-color: CanvasText; } :host(:disabled) .base, :host([disabled-interactive]) .base, :host(:disabled) ::slotted([slot="icon"]), :host([disabled-interactive]) ::slotted([slot="icon"]), :host(:disabled) ::slotted([slot="trailing-icon"]), :host([disabled-interactive]) ::slotted([slot="trailing-icon"]) { color: GrayText; } :host(:disabled[variant="outlined"]) .base, :host([disabled-interactive][variant="outlined"]) .base { outline-color: GrayText; } }`,i([D(".elevation")],Q.prototype,"_elevation",void 0),i([D(".focus-ring")],Q.prototype,"_focusRing",void 0),i([D(".state-layer")],Q.prototype,"_stateLayer",void 0),i([D(".ripple")],Q.prototype,"_ripple",void 0),i([P({reflect:!0})],Q.prototype,"variant",void 0),i([P()],Q.prototype,"value",null),Q=i([f("m3e-chip")],Q);let X=class extends(g(w(y($(x(k(C(Q,"button")))))))){_renderTrailingIcon(){return o}};X.formAssociated=!0,X=i([f("m3e-assist-chip")],X);let Y=class extends(E(s)){render(){return a`<slot></slot>`}};var ee,te,ie;Y.styles=l`:host { display: inline-flex; flex-wrap: wrap; vertical-align: middle; gap: var(--m3e-chip-set-spacing, 0.5rem); outline: none; } :host([vertical]) { flex-direction: column; }`,Y=i([f("m3e-chip-set")],Y);let se=class extends(S(y($(x(k(C(Q,"radio"))))))){constructor(){super(...arguments),ee.add(this),te.set(this,t=>e(this,ee,"m",ie).call(this,t))}connectedCallback(){super.connectedCallback(),this.addEventListener("click",e(this,te,"f"))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",e(this,te,"f"))}update(e){super.update(e),e.has("selected")&&this.closest("m3e-filter-chip-set")?.[j].notifySelectionChange(this)}_renderIcon(){return a`<div class="icon" aria-hidden="true"><svg class="check" viewBox="0 -960 960 960" aria-hidden="true"><path fill="currentColor" d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg> ${super._renderIcon()}</div>`}};var oe,ae,ne,le,re,ce,de;te=new WeakMap,ee=new WeakSet,ie=function(e){e.defaultPrevented||this.dispatchEvent(new Event("beforeinput",{bubbles:!0,cancelable:!0}))&&(this.selected=!this.selected,this.closest("m3e-filter-chip-set")?.[j].notifySelectionChange(this),this.dispatchEvent(new Event("input",{bubbles:!0})),this.dispatchEvent(new Event("change",{bubbles:!0})))},se.formAssociated=!0,se.styles=[Q.styles,l`:host([selected]:not(:is(:state(--hide-selection), :--hide-selection))) .wrapper { padding-inline-start: var(--m3e-chip-with-icon-padding-start, 0.5rem); } .icon { display: flex; align-items: center; justify-content: center; } .check { width: 1em; font-size: var(--m3e-chip-icon-size, 1.125rem); } :host(:not(:disabled):not([disabled-interactive])) .check { color: var(--m3e-chip-selected-leading-icon-color, ${b.color.onSecondaryContainer}); } :host(:not([selected])) .check, :host(:is(:state(--hide-selection), :--hide-selection)) .check, :host(:is(:state(--hide-selection), :--hide-selection):not(:is(:state(--with-icon), :--with-icon))) .icon { display: none; } :host(:not(:is(:state(--with-icon), :--with-icon))) .icon { margin-inline-start: calc(0px - var(--m3e-chip-with-icon-padding-start, 0.5rem)); transition: margin-inline-start ${b.motion.spring.fastEffects}; } :host([selected]) .icon { margin-inline-start: 0; } :host([selected]:not(:is(:state(--hide-selection), :--hide-selection))) ::slotted([slot="icon"]) { display: none !important; } :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base { color: var(--m3e-chip-unselected-label-text-color, ${b.color.onSurfaceVariant}); --m3e-ripple-color: var(--m3e-chip-unselected-ripple-color, ${b.color.onSurfaceVariant}); --m3e-state-layer-focus-color: var( --m3e-chip-unselected-state-layer-focus-color, ${b.color.onSurfaceVariant} ); --m3e-state-layer-hover-color: var( --m3e-chip-unselected-state-layer-hover-color, ${b.color.onSurfaceVariant} ); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]) { color: var(--m3e-chip-unselected-leading-icon-color, ${b.color.primary}); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: var(--m3e-chip-unselected-trailing-icon-color, ${b.color.onSurfaceVariant}); } :host(:not(:disabled):not([disabled-interactive])[selected]) .base { outline-offset: unset; outline-width: var(--m3e-chip-selected-outline-thickness, 0); color: var(--m3e-chip-selected-label-text-color, ${b.color.onSecondaryContainer}); background-color: var(--m3e-chip-selected-container-color, ${b.color.secondaryContainer}); --m3e-state-layer-hover-color: var( --m3e-chip-selected-container-hover-color, ${b.color.onSecondaryContainer} ); --m3e-state-layer-focus-color: var( --m3e-chip-selected-container-focus-color, ${b.color.onSecondaryContainer} ); --m3e-elevation-hover-level: var(--m3e-chip-selected-hover-elevation, ${b.elevation.level1}); --m3e-ripple-color: var(--m3e-chip-selected-ripple-color, ${b.color.onSecondaryContainer}); --m3e-state-layer-focus-color: var( --m3e-chip-selected-state-layer-focus-color, ${b.color.onSecondaryContainer} ); --m3e-state-layer-hover-color: var( --m3e-chip-selected-state-layer-hover-color, ${b.color.onSecondaryContainer} ); } :host(:not(:disabled):not([disabled-interactive])[selected]) ::slotted([slot="icon"]) { color: var(--m3e-chip-selected-leading-icon-color, ${b.color.onSecondaryContainer}); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: var(--m3e-chip-selected-trailing-icon-color, ${b.color.onSecondaryContainer}); } @media (prefers-reduced-motion) { .base, :host(:not(:is(:state(--with-icon), :--with-icon))) .icon { transition: none; } } @media (forced-colors: active) { :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base, :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: CanvasText; } :host(:not(:disabled):not([disabled-interactive])[selected]) .base, :host(:not(:disabled):not([disabled-interactive])[selected]) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive])[selected]) ::slotted([slot="trailing-icon"]), :host(:not(:disabled):not([disabled-interactive])) .check { color: ButtonText; } :host(:not(:disabled):not([disabled-interactive])[selected]) .base { outline-offset: calc(0px - var(--m3e-outlined-chip-outline-thickness, 1px)); outline-width: var(--m3e-outlined-chip-outline-thickness, 1px); outline-color: ButtonText; } }`],se=i([f("m3e-filter-chip")],se);let he=class extends(I(A(L(W(k(r(C(Y,"radiogroup")))))))){constructor(){super(...arguments),oe.add(this),ae.set(this,void 0),this[de]=(new U).onActiveItemChange(()=>this[j].activeItem?.focus()).withWrap().withDirectionality(q.current),this.multi=!1,this.hideSelectionIndicator=!1}get chips(){return this[j]?.items??[]}get selected(){return this[j]?.selectedItems??[]}get value(){const e=this.selected.filter(e=>!e.disabled).map(e=>e.value);switch(e.length){case 0:return null;case 1:return e[0];default:return e}}get[(ae=new WeakMap,oe=new WeakSet,de=j,z)](){const e=this.value;if(Array.isArray(e)){const t=new FormData;for(const i of e)t.append(this.name,i);return t}return e}connectedCallback(){super.connectedCallback(),t(this,ae,q.observe(()=>this[j].directionality=q.current),"f")}disconnectedCallback(){super.disconnectedCallback(),e(this,ae,"f")?.call(this)}update(t){super.update(t),t.has("vertical")&&(this[j].vertical=this.vertical),t.has("disabled")&&(void 0!==t.get("disabled")||this.disabled)&&(this[j].disabled=this.disabled),t.has("multi")&&(this.role=this.multi?"group":"radiogroup",e(this,oe,"m",ce).call(this),this[j].multi=this.multi,this[j].disableRovingTabIndex(this.multi)),(t.has("multi")||t.has("disabled"))&&(this.ariaDisabled=this.multi&&this.disabled?"true":null),t.has("hideSelectionIndicator")&&this.chips.forEach(e=>v(e,"--hide-selection",this.hideSelectionIndicator))}render(){return a`<slot @slotchange="${e(this,oe,"m",ne)}" @keydown="${e(this,oe,"m",le)}" @change="${e(this,oe,"m",re)}"></slot>`}};var pe,ve,me,ue;ne=function(){const{added:t}=this[j].setItems([...this.querySelectorAll("m3e-filter-chip")]);t.forEach(e=>v(e,"--hide-selection",this.hideSelectionIndicator)),e(this,oe,"m",ce).call(this)},le=function(e){this.multi||this[j].onKeyDown(e)},re=function(e){e.stopPropagation(),this.dispatchEvent(new Event("change",{bubbles:!0}))},ce=function(){this.chips.forEach(e=>e.role=this.multi?"button":"radio")},i([P({type:Boolean})],he.prototype,"multi",void 0),i([P({attribute:"hide-selection-indicator",type:Boolean})],he.prototype,"hideSelectionIndicator",void 0),he=i([f("m3e-filter-chip-set")],he);let be=class extends(x(k(C(Q,"row")))){constructor(){super(...arguments),pe.add(this),this.removable=!1,this.removeLabel="Remove"}connectedCallback(){super.connectedCallback(),this.removeAttribute("tabindex")}update(e){super.update(e),this.removeAttribute("tabindex"),e.has("removable")&&v(this,"--with-trailing-icon",this.removable)}render(){return a`<div class="base"><m3e-elevation class="elevation" for="cell" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-elevation><m3e-state-layer class="state-layer" for="cell" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-state-layer><m3e-focus-ring class="focus-ring" for="cell" ?disabled="${this.disabled}"></m3e-focus-ring><m3e-ripple class="ripple" for="cell" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-ripple><div class="wrapper"><div id="cell" class="cell" role="gridcell" tabindex="${F(this.disabled?void 0:"-1")}" @keydown="${e(this,pe,"m",ue)}"><slot name="avatar" @slotchange="${e(this,pe,"m",ve)}"></slot>${this._renderIcon()}<div class="label">${this._renderSlot()}</div><div class="touch" aria-hidden="true"></div></div>${this._renderTrailingIcon()}</div></div>`}_renderTrailingIcon(){return this.removable?a`<span role="gridcell" class="remove"><m3e-icon-button class="remove-button" aria-label="${this.removeLabel}" size="extra-small" tabindex="-1" ?disabled="${this.disabled}" ?disabled-interactive="${this.disabledInteractive}" @click="${e(this,pe,"m",me)}"><slot name="remove-icon"><svg class="remove-icon" viewBox="0 -960 960 960" fill="currentColor"><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></slot></m3e-icon-button></span>`:o}};var fe,ge,we,ye,$e,xe,ke,Ce,Ee,Se,Ie,Ae,Le,We,ze,_e,Me,Te,Be,De,Pe,je,Ue,Ve;pe=new WeakSet,ve=function(e){v(this,"--with-avatar",m(e.target))},me=function(e){e.stopPropagation(),this.dispatchEvent(new Event("remove"))},ue=function(e){if(this.removable)switch(e.key){case"Backspace":case"Delete":this.dispatchEvent(new Event("remove"))}},be.formAssociated=!0,be.styles=[Q.styles,l`.cell { display: inline-flex; align-items: center; outline: none; column-gap: var(--m3e-chip-spacing, 0.5rem); min-width: 0; } .remove-button { --m3e-icon-button-extra-small-container-height: 1.5rem; --m3e-icon-button-extra-small-icon-size: var(--m3e-chip-icon-size, 1.125rem); width: 1.5rem; } .remove-icon { flex: none; width: var(--m3e-chip-icon-size, 1.125rem); height: var(--m3e-chip-icon-size, 1.125rem); } .touch { top: calc( 0px - calc(calc(3rem - calc(var(--m3e-chip-container-height, 2rem) + ${b.density.calc(-2)})) / 2) ); } .wrapper { height: 100%; overflow: visible; min-width: 0; } ::slotted([slot="avatar"]) { flex: none; font-size: var(--m3e-chip-avatar-size, 1.5rem); } ::slotted(m3e-avatar[slot="avatar"]) { --m3e-icon-size: var(--m3e-chip-avatar-icon-size, 1.125rem); --m3e-avatar-size: var(--m3e-chip-avatar-size, 1.5rem); --m3e-avatar-font-size: var( --m3e-chip-avatar-font-size, ${b.typescale.standard.title.small.fontSize} ); --m3e-avatar-font-weight: var( --m3e-chip-avatar-font-height, ${b.typescale.standard.title.small.fontWeight} ); --m3e-avatar-line-height: var( --m3e-chip-avatar-line-height, ${b.typescale.standard.title.small.lineHeight} ); --m3e-avatar-tracking: var(--m3e-chip-avatar-tracking, ${b.typescale.standard.title.small.tracking}); } :host(:disabled) ::slotted([slot="avatar"]), :host([disabled-interactive]) ::slotted([slot="avatar"]) { opacity: var(--m3e-chip-disabled-avatar-opacity, 38%); color: var(--m3e-chip-disabled-icon-color, ${b.color.onSurface}); } :host(:is(:state(--with-avatar), :--with-avatar)) ::slotted([slot="icon"]) { display: none; } :host(:is(:state(--with-avatar), :--with-avatar)) .wrapper { padding-inline-start: var(--m3e-chip-with-avatar-padding-start, 0.25rem); } @media (forced-colors: active) { :host(:disabled) ::slotted([slot="avatar"]), :host([disabled-interactive]) ::slotted([slot="avatar"]) { color: CanvasText; } }`],i([D(".cell")],be.prototype,"cell",void 0),i([D(".remove-button")],be.prototype,"removeButton",void 0),i([P({type:Boolean})],be.prototype,"removable",void 0),i([P({attribute:"remove-label"})],be.prototype,"removeLabel",void 0),be=i([f("m3e-input-chip")],be);let Oe=class extends(_(M(T(A(L(W(k(r(C(Y,"grid")))))))))){constructor(){super(...arguments),fe.add(this),ge.set(this,void 0),we.set(this,()=>e(this,fe,"m",Ue).call(this)),ye.set(this,t=>e(this,fe,"m",Ve).call(this,t)),$e.set(this,()=>e(this,fe,"m",Te).call(this)),xe.set(this,()=>e(this,fe,"m",Be).call(this)),ke.set(this,()=>e(this,fe,"m",De).call(this)),Ce.set(this,t=>e(this,fe,"m",Pe).call(this,t)),Ee.set(this,t=>e(this,fe,"m",je).call(this,t)),Se.set(this,new V),Ie.set(this,(new O).onActiveItemChange(()=>e(this,Ie,"f").activeItem?.focus()).withHomeAndEnd().withSkipPredicate(e=>!e.hasAttribute("tabindex")).withDirectionality(q.current)),Ae.set(this,!1),Le.set(this,null),We.set(this,0)}get chips(){return[...this.querySelectorAll("m3e-input-chip")]}get value(){const e=this.chips.filter(e=>!e.disabled).map(e=>e.value);return 0==e.length?null:e}get[(ge=new WeakMap,we=new WeakMap,ye=new WeakMap,$e=new WeakMap,xe=new WeakMap,ke=new WeakMap,Ce=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ie=new WeakMap,Ae=new WeakMap,Le=new WeakMap,We=new WeakMap,fe=new WeakSet,z)](){const e=this.value;if(!e)return null;const t=new FormData;for(const i of e)t.append(this.name,i);return t}get shouldLabelFloat(){return this.chips.length>0}onContainerClick(){e(this,Le,"f")?.focus()}connectedCallback(){super.connectedCallback(),customElements.get("m3e-form-field")?this.closest("m3e-form-field")?.notifyControlStateChange():customElements.whenDefined("m3e-form-field").then(()=>{this.closest("m3e-form-field")?.notifyControlStateChange()}),t(this,We,Number.parseInt(this.getAttribute("tabindex")??"0"),"f"),this.addEventListener("focus",e(this,$e,"f")),this.addEventListener("focusin",e(this,xe,"f")),this.addEventListener("focusout",e(this,ke,"f")),t(this,ge,q.observe(()=>e(this,Ie,"f").directionality=q.current),"f")}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("focus",e(this,$e,"f")),this.removeEventListener("focusin",e(this,xe,"f")),this.removeEventListener("focusout",e(this,ke,"f")),e(this,ge,"f")?.call(this)}firstUpdated(t){super.firstUpdated(t),this.hasAttribute("tabindex")||this.setAttribute("tabindex",`${e(this,We,"f")}`)}update(t){super.update(t),t.has("vertical")&&(this.ariaOrientation=null),t.has("disabled")&&(e(this,Se,"f").items.forEach(e=>e.disabled=this.disabled),e(this,Le,"f")&&(e(this,Le,"f").disabled=this.disabled))}render(){return a`<slot @keydown="${e(this,fe,"m",ze)}" @slotchange="${e(this,fe,"m",_e)}"></slot><span role="row"><span role="gridcell"><slot name="input" @slotchange="${e(this,fe,"m",Me)}"></slot></span></span>`}};ze=function(t){e(this,Ie,"f").onKeyDown(t)},_e=async function(){const{added:t,removed:i}=e(this,Se,"f").setItems([...this.querySelectorAll("m3e-input-chip")]);for(const i of t)i.isUpdatePending&&await i.updateComplete,this.disabled&&(i.disabled=!0),i.addEventListener("remove",e(this,Ce,"f")),i.cell.addEventListener("click",e(this,Ee,"f"));i.forEach(t=>{t.removeEventListener("remove",e(this,Ce,"f")),t.cell.removeEventListener("click",e(this,Ee,"f"))}),e(this,Ie,"f").setItems(e(this,Se,"f").items.flatMap(e=>e.removeButton?[e.cell,e.removeButton]:[e.cell])),e(this,Ie,"f").activeItem||e(this,Ie,"f").updateActiveItem(e(this,Ie,"f").items.find(e=>e.hasAttribute("tabindex")))},Me=function(){const i=this.querySelector("input");if(e(this,Le,"f")&&(e(this,Le,"f").removeEventListener("change",e(this,we,"f")),e(this,Le,"f").removeEventListener("keydown",e(this,ye,"f"))),t(this,Le,i,"f"),e(this,Le,"f")){e(this,Le,"f").disabled=this.disabled,e(this,Le,"f").addEventListener("change",e(this,we,"f")),e(this,Le,"f").addEventListener("keydown",e(this,ye,"f"));const t=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");Object.defineProperty(i,"value",{get:()=>t.get?.call(i),set:s=>{t.set?.call(i,s),e(this,Le,"f")!==i||e(this,Ae,"f")||e(this,fe,"m",Ue).call(this)}})}},Te=function(){setTimeout(()=>(e(this,Ie,"f").activeItem??e(this,Le,"f"))?.focus())},Be=function(){this.setAttribute("tabindex","-1")},De=function(){this.setAttribute("tabindex",`${e(this,We,"f")}`)},Pe=function(t){const i=t.target,s=e(this,Se,"f").items.indexOf(i),o=e(this,Se,"f").items.find((e,t)=>t>s&&!e.disabled&&e.removable);i.remove(),e(this,Ie,"f").setActiveItem(e(this,Ie,"f").items.find(e=>e===o?.removeButton)),e(this,Ie,"f").activeItem||e(this,Le,"f")?.focus(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{type:"remove",value:i.value,chip:i}}))},je=function(t){e(this,Ie,"f").updateActiveItem(t.composedPath().find(e=>e instanceof be)?.cell)},Ue=async function(){const i=e(this,Le,"f")?.value;if(!i)return;const s=document.createElement("m3e-input-chip");if(s.removable=!0,s.appendChild(document.createTextNode(i)),this.appendChild(s),s.isUpdatePending&&await s.updateComplete,e(this,Le,"f"))try{t(this,Ae,!0,"f"),e(this,Le,"f").value=""}finally{t(this,Ae,!1,"f")}this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{type:"add",value:i,chip:s}}))},Ve=function(t){if("Backspace"===t.key&&!e(this,Le,"f")?.value){const t=[...e(this,Se,"f").items].reverse().find(e=>!e.disabled&&!e.disabledInteractive&&e.removable);t&&t.dispatchEvent(new Event("remove"))}},B(l`m3e-input-chip-set [slot="input"]::placeholder { user-select: none; color: currentColor; transition: opacity ${b.motion.duration.extraLong1}; } m3e-input-chip-set:not(:focus-within) [slot="input"]::placeholder { opacity: 0; transition: 0s; } m3e-input-chip-set:hover [slot="input"]::placeholder { transition: 0s; } @media (prefers-reduced-motion) { m3e-input-chip-set [slot="input"]::placeholder { transition: none !important; } }`),Oe.styles=[Y.styles,l`::slotted([slot="input"]) { outline: unset; border: unset; background-color: transparent; box-shadow: none; font-family: inherit; font-size: inherit; line-height: initial; letter-spacing: inherit; color: var(--_form-field-input-color, inherit); flex: 1 1 auto; min-width: 0; padding: unset; } ::slotted(m3e-input-chip) { min-width: 0; } span[role="row"], span[role="gridcell"] { display: contents; }`],Oe=i([f("m3e-input-chip-set")],Oe);let qe=class extends(g(w(y($(x(k(C(Q,"button")))))))){_renderTrailingIcon(){return o}};qe.formAssociated=!0,qe=i([f("m3e-suggestion-chip")],qe);export{X as M3eAssistChipElement,Q as M3eChipElement,Y as M3eChipSetElement,se as M3eFilterChipElement,he as M3eFilterChipSetElement,be as M3eInputChipElement,Oe as M3eInputChipSetElement,qe as M3eSuggestionChipElement};
|
|
6
|
+
import{__classPrivateFieldGet as e,__classPrivateFieldSet as t,__decorate as i}from"tslib";import{LitElement as s,nothing as o,html as a,unsafeCSS as n,css as l}from"lit";import{AttachInternals as r,isDisabledMixin as c,isDisabledInteractiveMixin as d,isLinkButtonMixin as h,renderPseudoLink as p,setCustomState as v,hasAssignedNodes as m,getTextContent as u,DesignToken as b,customElement as f,FormSubmitter as g,LinkButton as w,KeyboardClick as y,Focusable as $,DisabledInteractive as x,Disabled as k,Role as C,Vertical as E,Selected as S,Labelled as I,Dirty as A,Touched as L,FormAssociated as W,formValue as z,RequiredConstraintValidation as _,Required as M,ConstraintValidation as T,registerStyleSheet as B}from"@m3e/web/core";import{query as D,property as P}from"lit/decorators.js";import{selectionManager as j,SelectionManager as U,ListManager as V,ListKeyManager as O}from"@m3e/web/core/a11y";import{M3eDirectionality as q}from"@m3e/web/core/bidi";import{ifDefined as F}from"lit/directives/if-defined.js";var H,R,G,K,N,Z,J;let Q=class extends(r(s)){constructor(){super(...arguments),H.add(this),R.set(this,void 0),G.set(this,""),this.variant="outlined"}get value(){return e(this,R,"f")??e(this,G,"f")}set value(e){t(this,R,e,"f")}get label(){return e(this,G,"f")}firstUpdated(e){super.firstUpdated(e),"listitem"===this.role&&this.removeAttribute("tabindex"),[this._elevation,this._focusRing,this._stateLayer,this._ripple].forEach(e=>{e?.htmlFor||e?.attach(this)})}render(){const t=!c(this)||this.disabled,i=d(this)&&this.disabledInteractive;return a`<div class="base"><m3e-elevation class="elevation" ?disabled="${t||i}"></m3e-elevation><m3e-state-layer class="state-layer" ?disabled="${t||i}"></m3e-state-layer><m3e-focus-ring class="focus-ring" ?disabled="${t}"></m3e-focus-ring><m3e-ripple class="ripple" ?disabled="${t||i}"></m3e-ripple><div class="touch" aria-hidden="true"></div>${h(this)?this[p]():o}<div class="wrapper">${e(this,H,"m",K).call(this)}</div></div>`}_renderIcon(){return a`<slot name="icon" aria-hidden="true" @slotchange="${e(this,H,"m",N)}"></slot>`}_renderTrailingIcon(){return a`<slot name="trailing-icon" aria-hidden="true" @slotchange="${e(this,H,"m",Z)}"></slot>`}_renderSlot(){return a`<slot @slotchange="${e(this,H,"m",J)}"></slot>`}};R=new WeakMap,G=new WeakMap,H=new WeakSet,K=function(){return a`${this._renderIcon()}<div class="label">${this._renderSlot()}</div>${this._renderTrailingIcon()}`},N=function(e){v(this,"--with-icon",m(e.target))},Z=function(e){v(this,"--with-trailing-icon",m(e.target))},J=function(e){t(this,G,u(e.target),"f")},Q.styles=l`:host { display: inline-block; vertical-align: middle; outline: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .base { box-sizing: border-box; vertical-align: middle; display: inline-flex; align-items: center; justify-content: center; position: relative; width: 100%; transition: ${n(`background-color ${b.motion.duration.short4} ${b.motion.easing.standard}`)}; border-radius: var(--m3e-chip-container-shape, ${b.shape.corner.small}); height: calc(var(--m3e-chip-container-height, 2rem) + ${b.density.calc(-3)}); font-size: var(--m3e-chip-label-text-font-size, ${b.typescale.standard.label.large.fontSize}); font-weight: var(--m3e-chip-label-text-font-weight, ${b.typescale.standard.label.large.fontWeight}); line-height: var(--m3e-chip-label-text-line-height, ${b.typescale.standard.label.large.lineHeight}); letter-spacing: var(--m3e-chip-label-text-tracking, ${b.typescale.standard.label.large.tracking}); } :host(:not(m3e-chip):not(:disabled):not([disabled-interactive])) { cursor: pointer; } :host(:not(m3e-chip):not(:disabled)[disabled-interactive]) { cursor: not-allowed; } :host(:not(m3e-chip):not(:disabled):not([disabled-interactive])) .base { user-select: none; } .touch { position: absolute; height: 3rem; left: 0; right: 0; } .wrapper { width: 100%; overflow: hidden; display: inline-flex; align-items: center; column-gap: var(--m3e-chip-spacing, 0.5rem); } .label { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } a { all: unset; display: block; position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 1; } :host([variant="elevated"]) .base { background-color: var(--m3e-elevated-chip-container-color, ${b.color.surfaceContainerLow}); --m3e-elevation-level: var(--m3e-elevated-chip-elevation, ${b.elevation.level1}); --m3e-elevation-hover-level: var(--m3e-elevated-chip-hover-elevation, ${b.elevation.level2}); --m3e-elevation-focus-level: var(--m3e-elevated-chip-elevation, ${b.elevation.level1}); --m3e-elevation-pressed-level: var(--m3e-elevated-chip-elevation, ${b.elevation.level1}); } :host([variant="outlined"]) .base { outline-width: var(--m3e-outlined-chip-outline-thickness, 1px); outline-style: solid; outline-offset: calc(0px - var(--m3e-outlined-chip-outline-thickness, 1px)); } :host(:not(:disabled):not([disabled-interactive])[variant="outlined"]) .base { outline-color: var(--m3e-outlined-chip-outline-color, ${b.color.outlineVariant}); } :host(:disabled[variant="outlined"]) .base, :host([disabled-interactive][variant="outlined"]) .base { outline-color: color-mix( in srgb, var(--m3e-outlined-chip-disabled-outline-color, ${b.color.onSurface}) var(--m3e-outlined-chip-disabled-outline-opacity, 12%), transparent ); } :host(:is(:state(--with-icon), :--with-icon)) .wrapper { padding-inline-start: var(--m3e-chip-with-icon-padding-start, 0.5rem); } :host(:not(:is(:state(--with-icon), :--with-icon))) .wrapper { padding-inline-start: var(--m3e-chip-padding-start, 1rem); } :host(:is(:state(--with-trailing-icon), :--with-trailing-icon)) .wrapper { padding-inline-end: var(--m3e-chip-with-icon-padding-end, 0.5rem); } :host(:not(:is(:state(--with-trailing-icon), :--with-trailing-icon))) .wrapper { padding-inline-end: var(--m3e-chip-padding-end, 1rem); } ::slotted([slot="icon"]), ::slotted([slot="trailing-icon"]) { flex: none; width: 1em; font-size: var(--m3e-chip-icon-size, 1.125rem) !important; } :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base { color: var(--m3e-chip-label-text-color, ${b.color.onSurface}); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: var(--m3e-chip-icon-color, ${b.color.primary}); } :host(:disabled) .base, :host([disabled-interactive]) .base { color: color-mix( in srgb, var(--m3e-chip-disabled-label-text-color, ${b.color.onSurface}) var(--m3e-chip-disabled-label-text-opacity, 38%), transparent ); } :host(:disabled) ::slotted([slot="icon"]), :host([disabled-interactive]) ::slotted([slot="icon"]), :host(:disabled) ::slotted([slot="trailing-icon"]), :host([disabled-interactive]) ::slotted([slot="trailing-icon"]) { color: color-mix( in srgb, var(--m3e-chip-disabled-icon-color, ${b.color.onSurface}) var(--m3e-chip-disabled-icon-opacity, 38%), transparent ); } :host([variant="elevated"]:disabled) .base, :host([variant="elevated"][disabled-interactive]) .base { background-color: color-mix( in srgb, var(--m3e-elevated-chip-disabled-container-color, ${b.color.onSurface}) var(--m3e-elevated-chip-disabled-container-opacity, 12%), transparent ); --m3e-elevation-level: var(--m3e-elevated-chip-disabled-elevation, ${b.elevation.level0}); } @media (prefers-reduced-motion) { .base { transition: none; } } @media (forced-colors: active) { .base { transition: none; } :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base, :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: CanvasText; } :host(:not(:disabled):not([disabled-interactive])[variant="outlined"]) .base { outline-color: CanvasText; } :host(:disabled) .base, :host([disabled-interactive]) .base, :host(:disabled) ::slotted([slot="icon"]), :host([disabled-interactive]) ::slotted([slot="icon"]), :host(:disabled) ::slotted([slot="trailing-icon"]), :host([disabled-interactive]) ::slotted([slot="trailing-icon"]) { color: GrayText; } :host(:disabled[variant="outlined"]) .base, :host([disabled-interactive][variant="outlined"]) .base { outline-color: GrayText; } }`,i([D(".elevation")],Q.prototype,"_elevation",void 0),i([D(".focus-ring")],Q.prototype,"_focusRing",void 0),i([D(".state-layer")],Q.prototype,"_stateLayer",void 0),i([D(".ripple")],Q.prototype,"_ripple",void 0),i([P({reflect:!0})],Q.prototype,"variant",void 0),i([P()],Q.prototype,"value",null),Q=i([f("m3e-chip")],Q);let X=class extends(g(w(y($(x(k(C(Q,"button")))))))){_renderTrailingIcon(){return o}};X.formAssociated=!0,X=i([f("m3e-assist-chip")],X);let Y=class extends(E(s)){render(){return a`<slot></slot>`}};var ee,te,ie;Y.styles=l`:host { display: inline-flex; flex-wrap: wrap; vertical-align: middle; gap: var(--m3e-chip-set-spacing, 0.5rem); outline: none; } :host([vertical]) { flex-direction: column; }`,Y=i([f("m3e-chip-set")],Y);let se=class extends(S(y($(x(k(C(Q,"radio"))))))){constructor(){super(...arguments),ee.add(this),te.set(this,t=>e(this,ee,"m",ie).call(this,t))}connectedCallback(){super.connectedCallback(),this.addEventListener("click",e(this,te,"f"))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",e(this,te,"f"))}update(e){super.update(e),e.has("selected")&&this.closest("m3e-filter-chip-set")?.[j].notifySelectionChange(this)}_renderIcon(){return a`<div class="icon" aria-hidden="true"><svg class="check" viewBox="0 -960 960 960" aria-hidden="true"><path fill="currentColor" d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg> ${super._renderIcon()}</div>`}};var oe,ae,ne,le,re,ce,de;te=new WeakMap,ee=new WeakSet,ie=function(e){e.defaultPrevented||this.dispatchEvent(new Event("beforeinput",{bubbles:!0,cancelable:!0}))&&(this.selected=!this.selected,this.closest("m3e-filter-chip-set")?.[j].notifySelectionChange(this),this.dispatchEvent(new Event("input",{bubbles:!0})),this.dispatchEvent(new Event("change",{bubbles:!0})))},se.formAssociated=!0,se.styles=[Q.styles,l`:host([selected]:not(:is(:state(--hide-selection), :--hide-selection))) .wrapper { padding-inline-start: var(--m3e-chip-with-icon-padding-start, 0.5rem); } .icon { display: flex; align-items: center; justify-content: center; } .check { width: 1em; font-size: var(--m3e-chip-icon-size, 1.125rem); } :host(:not(:disabled):not([disabled-interactive])) .check { color: var(--m3e-chip-selected-leading-icon-color, ${b.color.onSecondaryContainer}); } :host(:not([selected])) .check, :host(:is(:state(--hide-selection), :--hide-selection)) .check, :host(:is(:state(--hide-selection), :--hide-selection):not(:is(:state(--with-icon), :--with-icon))) .icon { display: none; } :host(:not(:is(:state(--with-icon), :--with-icon))) .icon { margin-inline-start: calc(0px - var(--m3e-chip-with-icon-padding-start, 0.5rem)); transition: margin-inline-start ${b.motion.spring.fastEffects}; } :host([selected]) .icon { margin-inline-start: 0; } :host([selected]:not(:is(:state(--hide-selection), :--hide-selection))) ::slotted([slot="icon"]) { display: none !important; } :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base { color: var(--m3e-chip-unselected-label-text-color, ${b.color.onSurfaceVariant}); --m3e-ripple-color: var(--m3e-chip-unselected-ripple-color, ${b.color.onSurfaceVariant}); --m3e-state-layer-focus-color: var( --m3e-chip-unselected-state-layer-focus-color, ${b.color.onSurfaceVariant} ); --m3e-state-layer-hover-color: var( --m3e-chip-unselected-state-layer-hover-color, ${b.color.onSurfaceVariant} ); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]) { color: var(--m3e-chip-unselected-leading-icon-color, ${b.color.primary}); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: var(--m3e-chip-unselected-trailing-icon-color, ${b.color.onSurfaceVariant}); } :host(:not(:disabled):not([disabled-interactive])[selected]) .base { outline-offset: unset; outline-width: var(--m3e-chip-selected-outline-thickness, 0); color: var(--m3e-chip-selected-label-text-color, ${b.color.onSecondaryContainer}); background-color: var(--m3e-chip-selected-container-color, ${b.color.secondaryContainer}); --m3e-state-layer-hover-color: var( --m3e-chip-selected-container-hover-color, ${b.color.onSecondaryContainer} ); --m3e-state-layer-focus-color: var( --m3e-chip-selected-container-focus-color, ${b.color.onSecondaryContainer} ); --m3e-elevation-hover-level: var(--m3e-chip-selected-hover-elevation, ${b.elevation.level1}); --m3e-ripple-color: var(--m3e-chip-selected-ripple-color, ${b.color.onSecondaryContainer}); --m3e-state-layer-focus-color: var( --m3e-chip-selected-state-layer-focus-color, ${b.color.onSecondaryContainer} ); --m3e-state-layer-hover-color: var( --m3e-chip-selected-state-layer-hover-color, ${b.color.onSecondaryContainer} ); } :host(:not(:disabled):not([disabled-interactive])[selected]) ::slotted([slot="icon"]) { color: var(--m3e-chip-selected-leading-icon-color, ${b.color.onSecondaryContainer}); } :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: var(--m3e-chip-selected-trailing-icon-color, ${b.color.onSecondaryContainer}); } @media (prefers-reduced-motion) { .base, :host(:not(:is(:state(--with-icon), :--with-icon))) .icon { transition: none; } } @media (forced-colors: active) { :host(:not(:disabled):not([disabled-interactive]):not([selected])) .base, :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive]):not([selected])) ::slotted([slot="trailing-icon"]) { color: CanvasText; } :host(:not(:disabled):not([disabled-interactive])[selected]) .base, :host(:not(:disabled):not([disabled-interactive])[selected]) ::slotted([slot="icon"]), :host(:not(:disabled):not([disabled-interactive])[selected]) ::slotted([slot="trailing-icon"]), :host(:not(:disabled):not([disabled-interactive])) .check { color: ButtonText; } :host(:not(:disabled):not([disabled-interactive])[selected]) .base { outline-offset: calc(0px - var(--m3e-outlined-chip-outline-thickness, 1px)); outline-width: var(--m3e-outlined-chip-outline-thickness, 1px); outline-color: ButtonText; } }`],se=i([f("m3e-filter-chip")],se);let he=class extends(I(A(L(W(k(r(C(Y,"radiogroup")))))))){constructor(){super(...arguments),oe.add(this),ae.set(this,void 0),this[de]=(new U).onActiveItemChange(()=>this[j].activeItem?.focus()).withWrap().withDirectionality(q.current),this.multi=!1,this.hideSelectionIndicator=!1}get chips(){return this[j]?.items??[]}get selected(){return this[j]?.selectedItems??[]}get value(){const e=this.selected.filter(e=>!e.disabled).map(e=>e.value);switch(e.length){case 0:return null;case 1:return e[0];default:return e}}get[(ae=new WeakMap,oe=new WeakSet,de=j,z)](){const e=this.value;if(Array.isArray(e)){const t=new FormData;for(const i of e)t.append(this.name,i);return t}return e}connectedCallback(){super.connectedCallback(),t(this,ae,q.observe(()=>this[j].directionality=q.current),"f")}disconnectedCallback(){super.disconnectedCallback(),e(this,ae,"f")?.call(this)}update(t){super.update(t),t.has("vertical")&&(this[j].vertical=this.vertical),t.has("disabled")&&(void 0!==t.get("disabled")||this.disabled)&&(this[j].disabled=this.disabled),t.has("multi")&&(this.role=this.multi?"group":"radiogroup",e(this,oe,"m",ce).call(this),this[j].multi=this.multi,this[j].disableRovingTabIndex(this.multi)),(t.has("multi")||t.has("disabled"))&&(this.ariaDisabled=this.multi&&this.disabled?"true":null),t.has("hideSelectionIndicator")&&this.chips.forEach(e=>v(e,"--hide-selection",this.hideSelectionIndicator))}render(){return a`<slot @slotchange="${e(this,oe,"m",ne)}" @keydown="${e(this,oe,"m",le)}" @change="${e(this,oe,"m",re)}"></slot>`}};var pe,ve,me,ue;ne=function(){const{added:t}=this[j].setItems([...this.querySelectorAll("m3e-filter-chip")]);t.forEach(e=>v(e,"--hide-selection",this.hideSelectionIndicator)),e(this,oe,"m",ce).call(this)},le=function(e){this.multi||this[j].onKeyDown(e)},re=function(e){e.stopPropagation(),this.dispatchEvent(new Event("change",{bubbles:!0}))},ce=function(){this.chips.forEach(e=>e.role=this.multi?"button":"radio")},i([P({type:Boolean})],he.prototype,"multi",void 0),i([P({attribute:"hide-selection-indicator",type:Boolean})],he.prototype,"hideSelectionIndicator",void 0),he=i([f("m3e-filter-chip-set")],he);let be=class extends(x(k(C(Q,"row")))){constructor(){super(...arguments),pe.add(this),this.removable=!1,this.removeLabel="Remove"}connectedCallback(){super.connectedCallback(),this.removeAttribute("tabindex")}update(e){super.update(e),this.removeAttribute("tabindex"),e.has("removable")&&v(this,"--with-trailing-icon",this.removable)}render(){return a`<div class="base"><m3e-elevation class="elevation" for="cell" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-elevation><m3e-state-layer class="state-layer" for="cell" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-state-layer><m3e-focus-ring class="focus-ring" for="cell" ?disabled="${this.disabled}"></m3e-focus-ring><m3e-ripple class="ripple" for="cell" ?disabled="${this.disabled||this.disabledInteractive}"></m3e-ripple><div class="wrapper"><div id="cell" class="cell" role="gridcell" tabindex="${F(this.disabled?void 0:"-1")}" @keydown="${e(this,pe,"m",ue)}"><slot name="avatar" @slotchange="${e(this,pe,"m",ve)}"></slot>${this._renderIcon()}<div class="label">${this._renderSlot()}</div><div class="touch" aria-hidden="true"></div></div>${this._renderTrailingIcon()}</div></div>`}_renderTrailingIcon(){return this.removable?a`<span role="gridcell" class="remove"><m3e-icon-button class="remove-button" aria-label="${this.removeLabel}" size="extra-small" tabindex="-1" ?disabled="${this.disabled}" ?disabled-interactive="${this.disabledInteractive}" @click="${e(this,pe,"m",me)}"><slot name="remove-icon"><svg class="remove-icon" viewBox="0 -960 960 960" fill="currentColor"><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></slot></m3e-icon-button></span>`:o}};var fe,ge,we,ye,$e,xe,ke,Ce,Ee,Se,Ie,Ae,Le,We,ze,_e,Me,Te,Be,De,Pe,je,Ue,Ve;pe=new WeakSet,ve=function(e){v(this,"--with-avatar",m(e.target))},me=function(e){e.stopPropagation(),this.dispatchEvent(new Event("remove"))},ue=function(e){if(this.removable)switch(e.key){case"Backspace":case"Delete":this.dispatchEvent(new Event("remove"))}},be.formAssociated=!0,be.styles=[Q.styles,l`.cell { display: inline-flex; align-items: center; outline: none; column-gap: var(--m3e-chip-spacing, 0.5rem); min-width: 0; } .remove-button { --m3e-icon-button-extra-small-container-height: 1.5rem; --m3e-icon-button-extra-small-icon-size: var(--m3e-chip-icon-size, 1.125rem); width: 1.5rem; } .remove-icon { flex: none; width: var(--m3e-chip-icon-size, 1.125rem); height: var(--m3e-chip-icon-size, 1.125rem); } .touch { top: calc( 0px - calc(calc(3rem - calc(var(--m3e-chip-container-height, 2rem) + ${b.density.calc(-3)})) / 2) ); } .wrapper { height: 100%; overflow: visible; min-width: 0; } ::slotted([slot="avatar"]) { flex: none; font-size: var(--m3e-chip-avatar-size, 1.5rem); } ::slotted(m3e-avatar[slot="avatar"]) { --m3e-icon-size: var(--m3e-chip-avatar-icon-size, 1.125rem); --m3e-avatar-size: var(--m3e-chip-avatar-size, 1.5rem); --m3e-avatar-font-size: var( --m3e-chip-avatar-font-size, ${b.typescale.standard.title.small.fontSize} ); --m3e-avatar-font-weight: var( --m3e-chip-avatar-font-height, ${b.typescale.standard.title.small.fontWeight} ); --m3e-avatar-line-height: var( --m3e-chip-avatar-line-height, ${b.typescale.standard.title.small.lineHeight} ); --m3e-avatar-tracking: var(--m3e-chip-avatar-tracking, ${b.typescale.standard.title.small.tracking}); } :host(:disabled) ::slotted([slot="avatar"]), :host([disabled-interactive]) ::slotted([slot="avatar"]) { opacity: var(--m3e-chip-disabled-avatar-opacity, 38%); color: var(--m3e-chip-disabled-icon-color, ${b.color.onSurface}); } :host(:is(:state(--with-avatar), :--with-avatar)) ::slotted([slot="icon"]) { display: none; } :host(:is(:state(--with-avatar), :--with-avatar)) .wrapper { padding-inline-start: var(--m3e-chip-with-avatar-padding-start, 0.25rem); } @media (forced-colors: active) { :host(:disabled) ::slotted([slot="avatar"]), :host([disabled-interactive]) ::slotted([slot="avatar"]) { color: CanvasText; } }`],i([D(".cell")],be.prototype,"cell",void 0),i([D(".remove-button")],be.prototype,"removeButton",void 0),i([P({type:Boolean})],be.prototype,"removable",void 0),i([P({attribute:"remove-label"})],be.prototype,"removeLabel",void 0),be=i([f("m3e-input-chip")],be);let Oe=class extends(_(M(T(A(L(W(k(r(C(Y,"grid")))))))))){constructor(){super(...arguments),fe.add(this),ge.set(this,void 0),we.set(this,()=>e(this,fe,"m",Ue).call(this)),ye.set(this,t=>e(this,fe,"m",Ve).call(this,t)),$e.set(this,()=>e(this,fe,"m",Te).call(this)),xe.set(this,()=>e(this,fe,"m",Be).call(this)),ke.set(this,()=>e(this,fe,"m",De).call(this)),Ce.set(this,t=>e(this,fe,"m",Pe).call(this,t)),Ee.set(this,t=>e(this,fe,"m",je).call(this,t)),Se.set(this,new V),Ie.set(this,(new O).onActiveItemChange(()=>e(this,Ie,"f").activeItem?.focus()).withHomeAndEnd().withSkipPredicate(e=>!e.hasAttribute("tabindex")).withDirectionality(q.current)),Ae.set(this,!1),Le.set(this,null),We.set(this,0)}get chips(){return[...this.querySelectorAll("m3e-input-chip")]}get value(){const e=this.chips.filter(e=>!e.disabled).map(e=>e.value);return 0==e.length?null:e}get[(ge=new WeakMap,we=new WeakMap,ye=new WeakMap,$e=new WeakMap,xe=new WeakMap,ke=new WeakMap,Ce=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ie=new WeakMap,Ae=new WeakMap,Le=new WeakMap,We=new WeakMap,fe=new WeakSet,z)](){const e=this.value;if(!e)return null;const t=new FormData;for(const i of e)t.append(this.name,i);return t}get shouldLabelFloat(){return this.chips.length>0}onContainerClick(){e(this,Le,"f")?.focus()}connectedCallback(){super.connectedCallback(),customElements.get("m3e-form-field")?this.closest("m3e-form-field")?.notifyControlStateChange():customElements.whenDefined("m3e-form-field").then(()=>{this.closest("m3e-form-field")?.notifyControlStateChange()}),t(this,We,Number.parseInt(this.getAttribute("tabindex")??"0"),"f"),this.addEventListener("focus",e(this,$e,"f")),this.addEventListener("focusin",e(this,xe,"f")),this.addEventListener("focusout",e(this,ke,"f")),t(this,ge,q.observe(()=>e(this,Ie,"f").directionality=q.current),"f")}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("focus",e(this,$e,"f")),this.removeEventListener("focusin",e(this,xe,"f")),this.removeEventListener("focusout",e(this,ke,"f")),e(this,ge,"f")?.call(this)}firstUpdated(t){super.firstUpdated(t),this.hasAttribute("tabindex")||this.setAttribute("tabindex",`${e(this,We,"f")}`)}update(t){super.update(t),t.has("vertical")&&(this.ariaOrientation=null),t.has("disabled")&&(e(this,Se,"f").items.forEach(e=>e.disabled=this.disabled),e(this,Le,"f")&&(e(this,Le,"f").disabled=this.disabled))}render(){return a`<slot @keydown="${e(this,fe,"m",ze)}" @slotchange="${e(this,fe,"m",_e)}"></slot><span role="row"><span role="gridcell"><slot name="input" @slotchange="${e(this,fe,"m",Me)}"></slot></span></span>`}};ze=function(t){e(this,Ie,"f").onKeyDown(t)},_e=async function(){const{added:t,removed:i}=e(this,Se,"f").setItems([...this.querySelectorAll("m3e-input-chip")]);for(const i of t)i.isUpdatePending&&await i.updateComplete,this.disabled&&(i.disabled=!0),i.addEventListener("remove",e(this,Ce,"f")),i.cell.addEventListener("click",e(this,Ee,"f"));i.forEach(t=>{t.removeEventListener("remove",e(this,Ce,"f")),t.cell.removeEventListener("click",e(this,Ee,"f"))}),e(this,Ie,"f").setItems(e(this,Se,"f").items.flatMap(e=>e.removeButton?[e.cell,e.removeButton]:[e.cell])),e(this,Ie,"f").activeItem||e(this,Ie,"f").updateActiveItem(e(this,Ie,"f").items.find(e=>e.hasAttribute("tabindex")))},Me=function(){const i=this.querySelector("input");if(e(this,Le,"f")&&(e(this,Le,"f").removeEventListener("change",e(this,we,"f")),e(this,Le,"f").removeEventListener("keydown",e(this,ye,"f"))),t(this,Le,i,"f"),e(this,Le,"f")){e(this,Le,"f").disabled=this.disabled,e(this,Le,"f").addEventListener("change",e(this,we,"f")),e(this,Le,"f").addEventListener("keydown",e(this,ye,"f"));const t=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");Object.defineProperty(i,"value",{get:()=>t.get?.call(i),set:s=>{t.set?.call(i,s),e(this,Le,"f")!==i||e(this,Ae,"f")||e(this,fe,"m",Ue).call(this)}})}},Te=function(){setTimeout(()=>(e(this,Ie,"f").activeItem??e(this,Le,"f"))?.focus())},Be=function(){this.setAttribute("tabindex","-1")},De=function(){this.setAttribute("tabindex",`${e(this,We,"f")}`)},Pe=function(t){const i=t.target,s=e(this,Se,"f").items.indexOf(i),o=e(this,Se,"f").items.find((e,t)=>t>s&&!e.disabled&&e.removable);i.remove(),e(this,Ie,"f").setActiveItem(e(this,Ie,"f").items.find(e=>e===o?.removeButton)),e(this,Ie,"f").activeItem||e(this,Le,"f")?.focus(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{type:"remove",value:i.value,chip:i}}))},je=function(t){e(this,Ie,"f").updateActiveItem(t.composedPath().find(e=>e instanceof be)?.cell)},Ue=async function(){const i=e(this,Le,"f")?.value;if(!i)return;const s=document.createElement("m3e-input-chip");if(s.removable=!0,s.appendChild(document.createTextNode(i)),this.appendChild(s),s.isUpdatePending&&await s.updateComplete,e(this,Le,"f"))try{t(this,Ae,!0,"f"),e(this,Le,"f").value=""}finally{t(this,Ae,!1,"f")}this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{type:"add",value:i,chip:s}}))},Ve=function(t){if("Backspace"===t.key&&!e(this,Le,"f")?.value){const t=[...e(this,Se,"f").items].reverse().find(e=>!e.disabled&&!e.disabledInteractive&&e.removable);t&&t.dispatchEvent(new Event("remove"))}},B(l`m3e-input-chip-set [slot="input"]::placeholder { user-select: none; color: currentColor; transition: opacity ${b.motion.duration.extraLong1}; } m3e-input-chip-set:not(:focus-within) [slot="input"]::placeholder { opacity: 0; transition: 0s; } m3e-input-chip-set:hover [slot="input"]::placeholder { transition: 0s; } @media (prefers-reduced-motion) { m3e-input-chip-set [slot="input"]::placeholder { transition: none !important; } }`),Oe.styles=[Y.styles,l`::slotted([slot="input"]) { outline: unset; border: unset; background-color: transparent; box-shadow: none; font-family: inherit; font-size: inherit; line-height: initial; letter-spacing: inherit; color: var(--_form-field-input-color, inherit); flex: 1 1 auto; min-width: 0; padding: unset; } ::slotted(m3e-input-chip) { min-width: 0; } span[role="row"], span[role="gridcell"] { display: contents; }`],Oe=i([f("m3e-input-chip-set")],Oe);let qe=class extends(g(w(y($(x(k(C(Q,"button")))))))){_renderTrailingIcon(){return o}};qe.formAssociated=!0,qe=i([f("m3e-suggestion-chip")],qe);export{X as M3eAssistChipElement,Q as M3eChipElement,Y as M3eChipSetElement,se as M3eFilterChipElement,he as M3eFilterChipSetElement,be as M3eInputChipElement,Oe as M3eInputChipSetElement,qe as M3eSuggestionChipElement};
|
|
7
7
|
//# sourceMappingURL=chips.min.js.map
|