@m3e/web 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +1 -0
- package/dist/all.js +940 -42
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +44 -44
- package/dist/all.min.js.map +1 -1
- package/dist/app-bar.js +1 -1
- package/dist/app-bar.min.js +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/autocomplete.min.js +1 -1
- package/dist/avatar.js +1 -1
- package/dist/avatar.min.js +1 -1
- package/dist/badge.js +1 -1
- package/dist/badge.min.js +1 -1
- package/dist/bottom-sheet.js +1 -1
- package/dist/bottom-sheet.min.js +1 -1
- package/dist/button-group.js +1 -1
- package/dist/button-group.min.js +1 -1
- package/dist/button.js +1 -1
- package/dist/button.min.js +1 -1
- package/dist/calendar.js +1 -1
- package/dist/calendar.min.js +1 -1
- package/dist/card.js +1 -1
- package/dist/card.min.js +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.min.js +1 -1
- package/dist/chips.js +1 -1
- package/dist/chips.min.js +1 -1
- package/dist/core-a11y.js +5 -3
- package/dist/core-a11y.js.map +1 -1
- package/dist/core-a11y.min.js +6 -6
- package/dist/core-a11y.min.js.map +1 -1
- package/dist/core-anchoring.js +1 -1
- package/dist/core-anchoring.min.js +1 -1
- package/dist/core-bidi.js +1 -1
- package/dist/core-bidi.min.js +1 -1
- package/dist/core-layout.js +1 -1
- package/dist/core-layout.min.js +1 -1
- package/dist/core-platform.js +1 -1
- package/dist/core-platform.min.js +1 -1
- package/dist/core.js +6 -6
- package/dist/core.js.map +1 -1
- package/dist/core.min.js +2 -2
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +290 -180
- package/dist/custom-elements.json +22418 -21145
- package/dist/datepicker.js +1 -1
- package/dist/datepicker.min.js +1 -1
- package/dist/dialog.js +1 -1
- package/dist/dialog.min.js +1 -1
- package/dist/divider.js +1 -1
- package/dist/divider.min.js +1 -1
- package/dist/drawer-container.js +1 -1
- package/dist/drawer-container.min.js +1 -1
- package/dist/expansion-panel.js +1 -1
- package/dist/expansion-panel.min.js +1 -1
- package/dist/fab-menu.js +1 -1
- package/dist/fab-menu.min.js +1 -1
- package/dist/fab.js +1 -1
- package/dist/fab.min.js +1 -1
- package/dist/form-field.js +1 -1
- package/dist/form-field.min.js +1 -1
- package/dist/heading.js +1 -1
- package/dist/heading.min.js +1 -1
- package/dist/html-custom-data.json +172 -133
- package/dist/icon-button.js +1 -1
- package/dist/icon-button.min.js +1 -1
- package/dist/icon.js +146 -6
- package/dist/icon.js.map +1 -1
- package/dist/icon.min.js +2 -2
- package/dist/icon.min.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.min.js +1 -1
- package/dist/list.js +2 -2
- package/dist/list.js.map +1 -1
- package/dist/list.min.js +2 -2
- package/dist/list.min.js.map +1 -1
- package/dist/loading-indicator.js +1 -1
- package/dist/loading-indicator.min.js +1 -1
- package/dist/menu.js +1 -1
- package/dist/menu.min.js +1 -1
- package/dist/nav-bar.js +1 -1
- package/dist/nav-bar.min.js +1 -1
- package/dist/nav-menu.js +19 -27
- package/dist/nav-menu.js.map +1 -1
- package/dist/nav-menu.min.js +2 -2
- package/dist/nav-menu.min.js.map +1 -1
- package/dist/nav-rail.js +1 -1
- package/dist/nav-rail.min.js +1 -1
- package/dist/option.js +1 -1
- package/dist/option.min.js +1 -1
- package/dist/paginator.js +1 -1
- package/dist/paginator.min.js +1 -1
- package/dist/progress-indicator.js +1 -1
- package/dist/progress-indicator.min.js +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.min.js +1 -1
- package/dist/search.js +1 -1
- package/dist/search.min.js +1 -1
- package/dist/segmented-button.js +1 -1
- package/dist/segmented-button.min.js +1 -1
- package/dist/select.js +1 -1
- package/dist/select.min.js +1 -1
- package/dist/shape.js +1 -1
- package/dist/shape.min.js +1 -1
- package/dist/skeleton.js +48 -4
- package/dist/skeleton.js.map +1 -1
- package/dist/skeleton.min.js +2 -2
- package/dist/skeleton.min.js.map +1 -1
- package/dist/slide-group.js +1 -1
- package/dist/slide-group.min.js +1 -1
- package/dist/slider.js +1 -1
- package/dist/slider.min.js +1 -1
- package/dist/snackbar.js +1 -1
- package/dist/snackbar.min.js +1 -1
- package/dist/split-button.js +1 -1
- package/dist/split-button.min.js +1 -1
- package/dist/split-pane.js +1 -1
- package/dist/split-pane.min.js +1 -1
- package/dist/src/all.d.ts +1 -0
- package/dist/src/all.d.ts.map +1 -1
- package/dist/src/core/a11y/list-key/ListKeyManager.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/ElevationElement.d.ts +1 -1
- package/dist/src/core/shared/primitives/FocusRingElement.d.ts +1 -1
- package/dist/src/core/shared/primitives/PseudoCheckboxElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/PseudoRadioElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/RippleElement.d.ts +1 -1
- package/dist/src/icon/IconElement.d.ts +7 -1
- package/dist/src/icon/IconElement.d.ts.map +1 -1
- package/dist/src/icon/IconRegistry.d.ts +54 -0
- package/dist/src/icon/IconRegistry.d.ts.map +1 -0
- package/dist/src/icon/IconWeight.d.ts +3 -0
- package/dist/src/icon/IconWeight.d.ts.map +1 -0
- package/dist/src/icon/index.d.ts +1 -0
- package/dist/src/icon/index.d.ts.map +1 -1
- package/dist/src/icon/registerIcon.d.ts +14 -0
- package/dist/src/icon/registerIcon.d.ts.map +1 -0
- package/dist/src/list/ListItemElement.d.ts.map +1 -1
- package/dist/src/nav-menu/NavMenuElement.d.ts +18 -6
- package/dist/src/nav-menu/NavMenuElement.d.ts.map +1 -1
- package/dist/src/nav-menu/NavMenuItemElement.d.ts +3 -5
- package/dist/src/nav-menu/NavMenuItemElement.d.ts.map +1 -1
- package/dist/src/skeleton/SkeletonElement.d.ts.map +1 -1
- package/dist/src/tree/TreeElement.d.ts +150 -0
- package/dist/src/tree/TreeElement.d.ts.map +1 -0
- package/dist/src/tree/TreeItemElement.d.ts +131 -0
- package/dist/src/tree/TreeItemElement.d.ts.map +1 -0
- package/dist/src/tree/index.d.ts +3 -0
- package/dist/src/tree/index.d.ts.map +1 -0
- package/dist/stepper.js +1 -1
- package/dist/stepper.min.js +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.min.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tabs.min.js +1 -1
- package/dist/textarea-autosize.js +1 -1
- package/dist/textarea-autosize.min.js +1 -1
- package/dist/theme.js +1 -1
- package/dist/theme.min.js +1 -1
- package/dist/toc.js +1 -1
- package/dist/toc.min.js +1 -1
- package/dist/toolbar.js +1 -1
- package/dist/toolbar.min.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/tooltip.min.js +1 -1
- package/dist/tree.js +737 -0
- package/dist/tree.js.map +1 -0
- package/dist/tree.min.js +7 -0
- package/dist/tree.min.js.map +1 -0
- package/package.json +7 -2
package/dist/chips.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
|
-
* Copyright (c) 2025 matraic
|
|
3
|
+
* Copyright (c) 2025–2026 matraic
|
|
4
4
|
* See LICENSE file in the project root for full license text.
|
|
5
5
|
*/
|
|
6
6
|
import{__classPrivateFieldGet as e,__classPrivateFieldSet as t,__decorate as i}from"tslib";import{LitElement as o,nothing as s,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 y,KeyboardClick as w,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,EventAttribute as _,RequiredConstraintValidation as M,Required as T,ConstraintValidation as B,registerStyleSheet as D}from"@m3e/web/core";import{query as P,property as j}from"lit/decorators.js";import{selectionManager as U,SelectionManager as V,ListManager as O,ListKeyManager as q}from"@m3e/web/core/a11y";import{M3eDirectionality as F}from"@m3e/web/core/bidi";import{ifDefined as H}from"lit/directives/if-defined.js";var R,G,K,N,Z,J,Q;let X=class extends(r(o)){constructor(){super(...arguments),R.add(this),G.set(this,void 0),K.set(this,""),this.variant="outlined"}get value(){return e(this,G,"f")??e(this,K,"f")}set value(e){t(this,G,e,"f")}get label(){return e(this,K,"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]():s}<div class="wrapper">${e(this,R,"m",N).call(this)}</div></div>`}_renderIcon(){return a`<slot name="icon" aria-hidden="true" @slotchange="${e(this,R,"m",Z)}"></slot>`}_renderTrailingIcon(){return a`<slot name="trailing-icon" aria-hidden="true" @slotchange="${e(this,R,"m",J)}"></slot>`}_renderSlot(){return a`<slot @slotchange="${e(this,R,"m",Q)}"></slot>`}};G=new WeakMap,K=new WeakMap,R=new WeakSet,N=function(){return a`${this._renderIcon()}<div class="label">${this._renderSlot()}</div>${this._renderTrailingIcon()}`},Z=function(e){v(this,"-with-icon",m(e.target))},J=function(e){v(this,"-with-trailing-icon",m(e.target))},Q=function(e){t(this,K,u(e.target),"f")},X.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(:state(-with-icon)) .wrapper { padding-inline-start: var(--m3e-chip-with-icon-padding-start, 0.5rem); } :host(:not(:state(-with-icon))) .wrapper { padding-inline-start: var(--m3e-chip-padding-start, 1rem); } :host(:state(-with-trailing-icon)) .wrapper { padding-inline-end: var(--m3e-chip-with-icon-padding-end, 0.5rem); } :host(:not(:state(-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([P(".elevation")],X.prototype,"_elevation",void 0),i([P(".focus-ring")],X.prototype,"_focusRing",void 0),i([P(".state-layer")],X.prototype,"_stateLayer",void 0),i([P(".ripple")],X.prototype,"_ripple",void 0),i([j({reflect:!0})],X.prototype,"variant",void 0),i([j()],X.prototype,"value",null),X=i([f("m3e-chip")],X);let Y=class extends(g(y(w($(x(k(C(X,"button")))))))){_renderTrailingIcon(){return s}};Y.formAssociated=!0,Y=i([f("m3e-assist-chip")],Y);let ee=class extends(E(o)){render(){return a`<slot></slot>`}};var te,ie,oe;ee.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; }`,ee=i([f("m3e-chip-set")],ee);let se=class extends(S(w($(x(k(C(X,"radio"))))))){constructor(){super(...arguments),te.add(this),ie.set(this,t=>e(this,te,"m",oe).call(this,t))}connectedCallback(){super.connectedCallback(),this.addEventListener("click",e(this,ie,"f"))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",e(this,ie,"f"))}update(e){super.update(e),e.has("selected")&&this.closest("m3e-filter-chip-set")?.[U].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 ae,ne,le,re,ce,de,he;ie=new WeakMap,te=new WeakSet,oe=function(e){if(e.defaultPrevented)return;const t=this.selected;this.selected=!this.selected,this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0,cancelable:!0}))?(this.closest("m3e-filter-chip-set")?.[U].notifySelectionChange(this),this.dispatchEvent(new Event("change",{bubbles:!0}))):this.selected=t},se.formAssociated=!0,se.styles=[X.styles,l`:host([selected]:not(:state(-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(:state(-hide-selection)) .check, :host(:state(-hide-selection):not(:state(-with-icon))) .icon { display: none; } :host(:not(:state(-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(:state(-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(:state(-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 pe=class extends(I(A(L(W(k(r(C(ee,"radiogroup")))))))){constructor(){super(...arguments),ae.add(this),ne.set(this,void 0),this[he]=(new V).onActiveItemChange(()=>this[U].activeItem?.focus()).withWrap().withDirectionality(F.current),this.multi=!1,this.hideSelectionIndicator=!1}get chips(){return this[U]?.items??[]}get selected(){return this[U]?.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[(ne=new WeakMap,ae=new WeakSet,he=U,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,ne,F.observe(()=>this[U].directionality=F.current),"f")}disconnectedCallback(){super.disconnectedCallback(),e(this,ne,"f")?.call(this)}update(t){super.update(t),t.has("vertical")&&(this[U].vertical=this.vertical),t.has("disabled")&&(void 0!==t.get("disabled")||this.disabled)&&(this[U].disabled=this.disabled),t.has("multi")&&(this.role=this.multi?"group":"radiogroup",e(this,ae,"m",de).call(this),this[U].multi=this.multi,this[U].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,ae,"m",le)}" @keydown="${e(this,ae,"m",re)}" @change="${e(this,ae,"m",ce)}"></slot>`}};var ve,me,ue,be;le=function(){const{added:t}=this[U].setItems([...this.querySelectorAll("m3e-filter-chip")]);t.forEach(e=>v(e,"-hide-selection",this.hideSelectionIndicator)),e(this,ae,"m",de).call(this)},re=function(e){this.multi||this[U].onKeyDown(e)},ce=function(e){e.stopPropagation(),this.dispatchEvent(new Event("change",{bubbles:!0}))},de=function(){this.chips.forEach(e=>e.role=this.multi?"button":"radio")},i([j({type:Boolean})],pe.prototype,"multi",void 0),i([j({attribute:"hide-selection-indicator",type:Boolean})],pe.prototype,"hideSelectionIndicator",void 0),pe=i([f("m3e-filter-chip-set")],pe);let fe=class extends(_(x(k(C(X,"row"))),"remove")){constructor(){super(...arguments),ve.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="${H(this.disabled?void 0:"-1")}" @keydown="${e(this,ve,"m",be)}"><slot name="avatar" @slotchange="${e(this,ve,"m",me)}"></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,ve,"m",ue)}"><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>`:s}};var ge,ye,we,$e,xe,ke,Ce,Ee,Se,Ie,Ae,Le,We,ze,_e,Me,Te,Be,De,Pe,je,Ue,Ve,Oe;ve=new WeakSet,me=function(e){v(this,"-with-avatar",m(e.target))},ue=function(e){e.stopPropagation(),this.dispatchEvent(new Event("remove"))},be=function(e){if(this.removable)switch(e.key){case"Backspace":case"Delete":this.dispatchEvent(new Event("remove"))}},fe.formAssociated=!0,fe.styles=[X.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(:state(-with-avatar)) ::slotted([slot="icon"]) { display: none; } :host(:state(-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([P(".cell")],fe.prototype,"cell",void 0),i([P(".remove-button")],fe.prototype,"removeButton",void 0),i([j({type:Boolean})],fe.prototype,"removable",void 0),i([j({attribute:"remove-label"})],fe.prototype,"removeLabel",void 0),fe=i([f("m3e-input-chip")],fe);let qe=class extends(M(T(B(A(L(W(k(r(C(ee,"grid")))))))))){constructor(){super(...arguments),ge.add(this),ye.set(this,void 0),we.set(this,()=>e(this,ge,"m",Ve).call(this)),$e.set(this,t=>e(this,ge,"m",Oe).call(this,t)),xe.set(this,()=>e(this,ge,"m",Be).call(this)),ke.set(this,()=>e(this,ge,"m",De).call(this)),Ce.set(this,()=>e(this,ge,"m",Pe).call(this)),Ee.set(this,t=>e(this,ge,"m",je).call(this,t)),Se.set(this,t=>e(this,ge,"m",Ue).call(this,t)),Ie.set(this,new O),Ae.set(this,(new q).onActiveItemChange(()=>e(this,Ae,"f").activeItem?.focus()).withHomeAndEnd().withSkipPredicate(e=>!e.hasAttribute("tabindex")).withDirectionality(F.current)),Le.set(this,!1),We.set(this,null),ze.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[(ye=new WeakMap,we=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,ze=new WeakMap,ge=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,We,"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,ze,Number.parseInt(this.getAttribute("tabindex")??"0"),"f"),this.addEventListener("focus",e(this,xe,"f")),this.addEventListener("focusin",e(this,ke,"f")),this.addEventListener("focusout",e(this,Ce,"f")),t(this,ye,F.observe(()=>e(this,Ae,"f").directionality=F.current),"f")}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("focus",e(this,xe,"f")),this.removeEventListener("focusin",e(this,ke,"f")),this.removeEventListener("focusout",e(this,Ce,"f")),e(this,ye,"f")?.call(this)}firstUpdated(t){super.firstUpdated(t),this.hasAttribute("tabindex")||this.setAttribute("tabindex",`${e(this,ze,"f")}`)}update(t){super.update(t),t.has("vertical")&&(this.ariaOrientation=null),t.has("disabled")&&(e(this,Ie,"f").items.forEach(e=>e.disabled=this.disabled),e(this,We,"f")&&(e(this,We,"f").disabled=this.disabled))}render(){return a`<slot @keydown="${e(this,ge,"m",_e)}" @slotchange="${e(this,ge,"m",Me)}"></slot><span role="row"><span role="gridcell"><slot name="input" @slotchange="${e(this,ge,"m",Te)}"></slot></span></span>`}};_e=function(t){e(this,Ae,"f").onKeyDown(t)},Me=async function(){const{added:t,removed:i}=e(this,Ie,"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,Ee,"f")),i.cell.addEventListener("click",e(this,Se,"f"));i.forEach(t=>{t.removeEventListener("remove",e(this,Ee,"f")),t.cell.removeEventListener("click",e(this,Se,"f"))}),e(this,Ae,"f").setItems(e(this,Ie,"f").items.flatMap(e=>e.removeButton?[e.cell,e.removeButton]:[e.cell])),e(this,Ae,"f").activeItem||e(this,Ae,"f").updateActiveItem(e(this,Ae,"f").items.find(e=>e.hasAttribute("tabindex")))},Te=function(){const i=this.querySelector("input");if(e(this,We,"f")&&(e(this,We,"f").removeEventListener("change",e(this,we,"f")),e(this,We,"f").removeEventListener("keydown",e(this,$e,"f"))),t(this,We,i,"f"),e(this,We,"f")){e(this,We,"f").disabled=this.disabled,e(this,We,"f").addEventListener("change",e(this,we,"f")),e(this,We,"f").addEventListener("keydown",e(this,$e,"f"));const t=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");Object.defineProperty(i,"value",{get:()=>t.get?.call(i),set:o=>{t.set?.call(i,o),e(this,We,"f")!==i||e(this,Le,"f")||e(this,ge,"m",Ve).call(this)}})}},Be=function(){setTimeout(()=>(e(this,Ae,"f").activeItem??e(this,We,"f"))?.focus())},De=function(){this.setAttribute("tabindex","-1")},Pe=function(){this.setAttribute("tabindex",`${e(this,ze,"f")}`)},je=function(t){const i=t.target,o=e(this,Ie,"f").items.indexOf(i),s=e(this,Ie,"f").items.find((e,t)=>t>o&&!e.disabled&&e.removable);i.remove(),e(this,Ae,"f").setActiveItem(e(this,Ae,"f").items.find(e=>e===s?.removeButton)),e(this,Ae,"f").activeItem||e(this,We,"f")?.focus(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{type:"remove",value:i.value,chip:i}}))},Ue=function(t){e(this,Ae,"f").updateActiveItem(t.composedPath().find(e=>e instanceof fe)?.cell)},Ve=async function(){const i=e(this,We,"f")?.value;if(!i)return;const o=document.createElement("m3e-input-chip");if(o.removable=!0,o.appendChild(document.createTextNode(i)),this.appendChild(o),o.isUpdatePending&&await o.updateComplete,e(this,We,"f"))try{t(this,Le,!0,"f"),e(this,We,"f").value=""}finally{t(this,Le,!1,"f")}this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{type:"add",value:i,chip:o}}))},Oe=function(t){if("Backspace"===t.key&&!e(this,We,"f")?.value){const t=[...e(this,Ie,"f").items].reverse().find(e=>!e.disabled&&!e.disabledInteractive&&e.removable);t&&t.dispatchEvent(new Event("remove"))}},D(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; } }`),qe.styles=[ee.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; }`],qe=i([f("m3e-input-chip-set")],qe);let Fe=class extends(g(y(w($(x(k(C(X,"button")))))))){_renderTrailingIcon(){return s}};Fe.formAssociated=!0,Fe=i([f("m3e-suggestion-chip")],Fe);export{Y as M3eAssistChipElement,X as M3eChipElement,ee as M3eChipSetElement,se as M3eFilterChipElement,pe as M3eFilterChipSetElement,fe as M3eInputChipElement,qe as M3eInputChipSetElement,Fe as M3eSuggestionChipElement};
|
package/dist/core-a11y.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
|
-
* Copyright (c) 2025 matraic
|
|
3
|
+
* Copyright (c) 2025–2026 matraic
|
|
4
4
|
* See LICENSE file in the project root for full license text.
|
|
5
5
|
*/
|
|
6
6
|
import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from 'tslib';
|
|
@@ -555,7 +555,8 @@ class ListKeyManager extends ListManager {
|
|
|
555
555
|
case "PageUp":
|
|
556
556
|
if (modifierAllowed && this.pageUpAndDown) {
|
|
557
557
|
e.preventDefault();
|
|
558
|
-
const
|
|
558
|
+
const index = this.activeItem ? Math.max(0, this.items.indexOf(this.activeItem) - this.pageDelta) : 0;
|
|
559
|
+
const prev = this.directionality === "ltr" ? __classPrivateFieldGet(this, _ListKeyManager_instances, "m", _ListKeyManager_findPreviousByIndex).call(this, index) : __classPrivateFieldGet(this, _ListKeyManager_instances, "m", _ListKeyManager_findNextByIndex).call(this, index);
|
|
559
560
|
if (prev) {
|
|
560
561
|
this.setActiveItem(prev);
|
|
561
562
|
}
|
|
@@ -564,7 +565,8 @@ class ListKeyManager extends ListManager {
|
|
|
564
565
|
case "PageDown":
|
|
565
566
|
if (modifierAllowed && this.pageUpAndDown) {
|
|
566
567
|
e.preventDefault();
|
|
567
|
-
const
|
|
568
|
+
const index = this.activeItem ? Math.min(this.items.length - 1, this.items.indexOf(this.activeItem) + this.pageDelta) : this.items.length - 1;
|
|
569
|
+
const next = this.directionality === "ltr" ? __classPrivateFieldGet(this, _ListKeyManager_instances, "m", _ListKeyManager_findNextByIndex).call(this, index) : __classPrivateFieldGet(this, _ListKeyManager_instances, "m", _ListKeyManager_findPreviousByIndex).call(this, index);
|
|
568
570
|
if (next) {
|
|
569
571
|
this.setActiveItem(next);
|
|
570
572
|
}
|