@luzmo/lucero 0.0.18 → 0.0.20

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.
@@ -15,44 +15,29 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- import { x as l, E as d, B as w, r as x, n as s } from "./base-CawdqE7p.js";
19
- import { r as v } from "./state-CYxk12SV.js";
20
- import { e as b } from "./query-D_KR_GUc.js";
21
- import { e as C } from "./class-map-CJko4aXp.js";
22
- import { o as u } from "./if-defined-BSAr_4u4.js";
23
- import { o as I } from "./style-map-Ct2LiEds.js";
24
- import { F as S } from "./focusable-cj2QhwDT.js";
25
- import { D as M } from "./dependency-manger-CEXvGQUV.js";
26
- import { P as $ } from "./pending-state-TJj1x9xn.js";
27
- import { S as E } from "./sized-mixin-BxMraZLS.js";
28
- import { luzmoIcon as k, luzmoAngleDown as q, luzmoAlert as L } from "@luzmo/icons";
29
- import "./menu/index.js";
30
- import "./overlay/index.js";
31
- import "./progress-circle/index.js";
32
- import "./tooltip/index.js";
33
- import { f as g } from "./platform-BM-uMWpX.js";
34
- const F = "(max-width: 743px) and (hover: none) and (pointer: coarse)";
35
- class A {
36
- constructor(e, o) {
37
- this.key = Symbol("match-media-key"), this.matches = !1, this.host = e, this.host.addController(this), this.media = window.matchMedia(o), this.matches = this.media.matches, this.onChange = this.onChange.bind(this), e.addController(this);
18
+ import { f as a } from "./platform-BM-uMWpX.js";
19
+ const u = "(max-width: 743px) and (hover: none) and (pointer: coarse)";
20
+ class p {
21
+ constructor(o, r) {
22
+ this.key = Symbol("match-media-key"), this.matches = !1, this.host = o, this.host.addController(this), this.media = window.matchMedia(r), this.matches = this.media.matches, this.onChange = this.onChange.bind(this), o.addController(this);
38
23
  }
39
24
  hostConnected() {
40
- var e;
41
- (e = this.media) == null || e.addEventListener("change", this.onChange);
25
+ var o;
26
+ (o = this.media) == null || o.addEventListener("change", this.onChange);
42
27
  }
43
28
  hostDisconnected() {
44
- var e;
45
- (e = this.media) == null || e.removeEventListener("change", this.onChange);
29
+ var o;
30
+ (o = this.media) == null || o.removeEventListener("change", this.onChange);
46
31
  }
47
- onChange(e) {
48
- this.matches !== e.matches && (this.matches = e.matches, this.host.requestUpdate(this.key, !this.matches));
32
+ onChange(o) {
33
+ this.matches !== o.matches && (this.matches = o.matches, this.host.requestUpdate(this.key, !this.matches));
49
34
  }
50
35
  }
51
- const O = '#button{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--luzmo-button-font-family, var(--luzmo-font-family));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:var(--luzmo-button-line-height, var(--luzmo-line-height, 1.3));text-transform:none;vertical-align:top;-webkit-appearance:button;transition:background var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,border-color var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,color var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,box-shadow var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out;justify-content:center;align-items:center;margin:0;-webkit-text-decoration:none;text-decoration:none;display:inline-flex;position:relative;overflow:visible}#button::-moz-focus-inner{border-style:none;padding:0}#button:focus{outline:none}#icon{margin-inline-end:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon));font-size:var(--luzmo-picker-font-size, var(--picker-font-size))}@media (forced-colors: active){:host{--highcontrast-picker-focus-indicator-color: Highlight;--highcontrast-picker-border-color-default: ButtonBorder;--highcontrast-picker-border-color-hover: Highlight;--highcontrast-picker-border-color-disabled: GrayText;--highcontrast-picker-content-color-default: ButtonText;--highcontrast-picker-content-color-disabled: GrayText;--highcontrast-picker-background-color: ButtonFace}#button.is-keyboardFocused,#button:focus-visible{--highcontrast-picker-border-color-hover: ButtonText}#button .label,#button:after{forced-color-adjust:none}}#button{box-sizing:border-box;max-inline-size:100%;min-inline-size:calc(var(--picker-minimum-width-multiplier) * var(--luzmo-picker-block-size, var(--picker-block-size)));block-size:var(--luzmo-picker-block-size, var(--picker-block-size));border-width:var(--luzmo-picker-border-width, var(--picker-border-width));border-radius:var(--luzmo-picker-border-radius, var(--picker-border-radius));box-shadow:var(--luzmo-picker-box-shadow, var(--picker-box-shadow));transition:background-color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)),box-shadow var(--luzmo-picker-animation-duration, var(--picker-animation-duration)),border-color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-in-out;color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-style:solid;border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));margin-block-start:var(--luzmo-picker-spacing-label-to-picker, var(--picker-spacing-label-to-picker));padding-block:0;padding-inline-start:var(--luzmo-picker-spacing-edge-to-text, var(--picker-spacing-edge-to-text));padding-inline-end:var(--luzmo-picker-spacing-edge-to-disclosure-icon, var(--picker-spacing-edge-to-disclosure-icon));display:flex}#button:after{pointer-events:none;content:"";block-size:calc(100% + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) * 2 + var(--luzmo-picker-border-width, var(--picker-border-width)) * 2);inline-size:calc(100% + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) * 2 + var(--luzmo-picker-border-width, var(--picker-border-width)) * 2);border-style:solid;border-width:var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness));border-radius:calc(var(--luzmo-picker-border-radius, var(--picker-border-radius)) + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-border-width, var(--picker-border-width)));border-color:#0000;margin-block-start:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1);margin-inline-start:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1);position:absolute;inset-block:0;inset-inline:0}#button:active{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-active, var(--picker-background-color-active)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-active, var(--picker-border-color-active)))}#button:active:after{border-color:#0000}#button.placeholder:active .label{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-active, var(--picker-font-color-active)))}#button.is-keyboardFocused,#button:focus-visible{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-key-focus, var(--picker-background-color-key-focus)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-key-focus, var(--picker-border-color-key-focus)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-key-focus, var(--picker-font-color-key-focus)));outline:none}#button.is-keyboardFocused:after,#button:focus-visible:after{border-color:var(--highcontrast-picker-focus-indicator-color, var(--luzmo-picker-focus-indicator-color, var(--picker-focus-indicator-color)))}#button.is-keyboardFocused.placeholder,#button.placeholder:focus-visible{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-key-focus, var(--picker-font-color-key-focus)))}#button.is-keyboardFocused .disclosure-icon,#button:focus-visible .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-key-focus, var(--picker-icon-color-key-focus)))}:host([open]) #button:not(:disabled,.is-disabled){color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default-open, var(--picker-font-color-default-open)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default-open, var(--picker-background-color-default-open)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-default-open, var(--picker-border-color-default-open)))}:host([open]) #button:not(:disabled,.is-disabled) .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-default-open, var(--picker-icon-color-default-open)))}:host([invalid]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-default, var(--picker-border-color-error-default)))}:host([invalid]) #button:not(:disabled,.is-disabled) .validation-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-error, var(--picker-icon-color-error)))}:host([invalid]) #button:not(:disabled,.is-disabled):active{border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-active, var(--picker-border-color-error-active)))}:host([invalid][open]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-default-open, var(--picker-border-color-error-default-open)))}:host([invalid]) #button.is-keyboardFocused:not(:disabled,.is-disabled),:host([invalid]) #button:not(:disabled,.is-disabled):focus-visible{border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-key-focus, var(--picker-border-color-error-key-focus)))}:host([pending]) #button .disclosure-icon{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-icon-color-disabled, var(--picker-icon-color-disabled)))}.icon{flex-shrink:0}.label{white-space:nowrap;font-size:var(--luzmo-picker-font-size, var(--picker-font-size));line-height:var(--luzmo-picker-line-height, var(--picker-line-height));font-weight:var(--luzmo-picker-font-weight, var(--picker-font-weight));text-overflow:ellipsis;text-align:start;flex:auto;overflow:hidden}.label.placeholder{font-weight:var(--luzmo-picker-placeholder-font-weight, var(--picker-font-weight));font-style:var(--luzmo-picker-placeholder-font-style, var(--picker-placeholder-font-style));transition:color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-in-out;color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}.label.placeholder:active{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-active, var(--picker-font-color-active)))}.disclosure-icon{vertical-align:top;transition:color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-out;margin-inline-start:var(--luzmo-picker-spacing-icon-to-disclosure-icon, var(--picker-spacing-icon-to-disclosure-icon));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-default, var(--picker-icon-color-default)));flex-shrink:0;display:inline-block;position:relative}.disclosure-icon:active{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-active, var(--picker-icon-color-active)))}luzmo-progress-circle,.validation-icon{margin-inline-start:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon))}.icon-container{display:flex;position:relative;height:100%;align-items:center;font-size:var(--luzmo-picker-disclosure-icon-size, var(--picker-disclosure-icon-size))}.icon-container.disclosure-icon{margin-inline-end:0}.label~.disclosure-icon{margin-inline-start:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon))}:host([quiet]) #button{inline-size:auto;min-inline-size:0;padding-inline:var(--luzmo-picker-spacing-edge-to-text-quiet, var(--picker-spacing-edge-to-text-quiet));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)));background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent);border:none;border-radius:0;box-shadow:none;margin-block-start:calc(var(--luzmo-picker-spacing-label-to-picker-quiet, var(--picker-spacing-label-to-picker-quiet)) + 1px)}:host([quiet]) #button.label-inline{margin-block-start:0}:host([quiet]) #button .disclosure-icon{margin-inline-end:var(--luzmo-picker-spacing-edge-to-disclosure-icon-quiet, var(--picker-spacing-edge-to-disclosure-icon-quiet))}:host([quiet]) #button:after{block-size:auto;inline-size:auto;border:none}@media (hover: hover){#button:hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover, var(--picker-font-color-hover)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-hover, var(--picker-background-color-hover)));border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-hover, var(--picker-border-color-hover)))}#button:hover .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-hover, var(--picker-icon-color-hover)))}:host([open]):not([quiet]) #button:not(:disabled,.is-disabled):hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover-open, var(--picker-font-color-hover-open)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-hover-open, var(--picker-background-color-hover-open)));border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-hover-open, var(--picker-border-color-hover-open)))}:host([open]) #button:not(:disabled,.is-disabled):hover .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-hover-open, var(--picker-icon-color-hover-open)))}:host([invalid]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-error-hover, var(--picker-border-color-error-hover)))}:host([invalid][open]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-error-hover-open, var(--picker-border-color-error-hover-open)))}.label.placeholder:hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover, var(--picker-font-color-hover)))}:host([quiet]) #button:hover{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)!important}}:host([quiet]) #button.is-keyboardFocused,:host([quiet]) #button:focus-visible{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)}:host([quiet]) #button.is-keyboardFocused:after,:host([quiet]) #button:focus-visible:after{box-shadow:0 var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) 0 0 var(--highcontrast-picker-focus-indicator-color, var(--luzmo-picker-focus-indicator-color, var(--picker-focus-indicator-color)));margin:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1) 0;border:none;border-radius:0}:host([quiet][open]) #button,:host([quiet][disabled]) #button#button,:host([quiet]) #button#button:disabled,:host([quiet]) #button:active{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)}.label-inline{vertical-align:top;display:inline-flex}:host([disabled]) #button,#button:disabled{cursor:default;background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-disabled, var(--picker-background-color-disabled)));border-color:#0000;border-color:var(--highcontrast-picker-border-color-disabled, transparent);color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-font-color-disabled, var(--picker-font-color-disabled)))}:host([disabled]) #button .icon,:host([disabled]) #button .disclosure-icon,:host([disabled]) #button .validation-icon,#button:disabled .icon,#button:disabled .disclosure-icon,#button:disabled .validation-icon{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-icon-color-disabled, var(--picker-icon-color-disabled)))}:host([disabled]) #button .label.placeholder,#button:disabled .label.placeholder{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-font-color-disabled, var(--picker-font-color-disabled)))}:host{--picker-box-shadow: 0px 1px 3px 0px rgba(var(--luzmo-border-color-rgb), .06);--picker-background-color-default: var(--luzmo-background-color);--picker-background-color-default-open: var(--luzmo-background-color-hover);--picker-background-color-active: var(--luzmo-background-color-down);--picker-background-color-hover: var(--luzmo-background-color-hover);--picker-background-color-hover-open: var(--luzmo-background-color-down);--picker-background-color-key-focus: var(--luzmo-background-color-down);--picker-border-color-default: var(--luzmo-border-color);--picker-border-color-default-open: var(--luzmo-border-color-hover);--picker-border-color-hover: var(--luzmo-border-color);--picker-border-color-hover-open: var(--luzmo-border-color-hover);--picker-border-color-active: var(--luzmo-border-color);--picker-border-color-key-focus: var(--luzmo-border-color);--picker-border-width: var(--luzmo-border-width);--picker-font-size: var(--luzmo-font-size);--picker-font-weight: var(--luzmo-font-weight);--picker-placeholder-font-style: var(--luzmo-font-style);--picker-line-height: var(--luzmo-line-height);--picker-block-size: 32px;--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-text-quiet: 0px;--picker-spacing-label-to-picker: 0px;--picker-spacing-label-to-picker-quiet: calc( -1 * var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon-quiet: 0px;--picker-animation-duration: var(--luzmo-animation-duration);--picker-font-color-default: var(--luzmo-font-color);--picker-font-color-default-open: var(--luzmo-font-color-hover);--picker-font-color-hover: var(--luzmo-font-color-hover);--picker-font-color-hover-open: var(--luzmo-font-color-down);--picker-font-color-active: var(--luzmo-font-color-focus);--picker-font-color-key-focus: var(--luzmo-font-color-focus);--picker-icon-color-default: var(--luzmo-font-color);--picker-icon-color-default-open: var(--luzmo-font-color-hover);--picker-icon-color-hover: var(--luzmo-font-color-hover);--picker-icon-color-hover-open: var(--luzmo-font-color-hover);--picker-icon-color-active: var(--luzmo-font-color-focus);--picker-icon-color-key-focus: var(--luzmo-font-color-focus);--picker-border-color-error-default: var(--luzmo-negative-color);--picker-border-color-error-default-open: var(--luzmo-negative-color-down);--picker-border-color-error-hover: var(--luzmo-negative-color-hover);--picker-border-color-error-hover-open: var(--luzmo-negative-color-down);--picker-border-color-error-active: var(--luzmo-negative-color-down);--picker-border-color-error-key-focus: var(--luzmo-negative-color-focus);--picker-icon-color-error: var(--luzmo-negative-color);--picker-background-color-disabled: var(--luzmo-background-color-disabled);--picker-font-color-disabled: var(--luzmo-disabled-color);--picker-icon-color-disabled: var(--luzmo-disabled-color);--picker-focus-indicator-gap: var(--luzmo-indicator-gap);--picker-focus-indicator-thickness: var(--luzmo-indicator-width);--picker-focus-indicator-color: var(--luzmo-indicator-color);--picker-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=s]){--picker-block-size: 28px;--picker-font-size: var(--luzmo-font-size-s);--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: var(--luzmo-spacing-3);--picker-spacing-text-to-icon: var(--luzmo-spacing-3);--picker-spacing-text-to-icon-inline-end: var(--luzmo-spacing-3);--picker-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-3);--picker-spacing-label-to-picker-quiet: calc(-1 * var(--luzmo-spacing-3));--picker-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-3);--picker-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=l]){--picker-block-size: 40px;--picker-font-size: var(--luzmo-font-size-l);--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: var(--luzmo-spacing-4);--picker-spacing-text-to-icon: var(--luzmo-spacing-4);--picker-spacing-text-to-icon-inline-end: var(--luzmo-spacing-4);--picker-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-4);--picker-spacing-label-to-picker-quiet: calc(-1 * var(--luzmo-spacing-4));--picker-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-4);--picker-disclosure-icon-size: var(--luzmo-font-size)}:host([size=xl]){--picker-block-size: 48px;--picker-font-size: var(--luzmo-font-size-xl);--picker-border-radius: var(--luzmo-border-radius-l);--picker-spacing-edge-to-text: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-label-to-picker-quiet: calc( -1 * var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-disclosure-icon-size: var(--luzmo-font-size-l)}:host([variant=highlight]) ::slotted(luzmo-menu-item[selected]){--menu-item-highlight-label-content-color: var(--luzmo-primary-inverse-color);--menu-item-label-icon-color-default: var(--luzmo-primary-inverse-color);--menu-checkmark-display: var(--menu-checkmark-display-hidden);padding-inline-start:var(--luzmo-menu-item-label-inline-edge-to-content, var(--menu-item-label-inline-edge-to-content));background-color:var(--luzmo-menu-item-highlight-label-background-color, var(--menu-item-highlight-label-background-color, var(--luzmo-border-color)))}:host{display:inline-flex;vertical-align:top;max-inline-size:100%;inline-size:var(--luzmo-picker-inline-size, var(--picker-inline-size));min-inline-size:calc(var(--picker-minimum-width-multiplier) * var(--luzmo-picker-block-size, var(--picker-block-size)))}:host([quiet]){width:auto;min-width:0}:host([disabled]){pointer-events:none}#button{width:100%;min-width:100%;max-width:100%}#icon:not([hidden]){display:inline-flex}:host([readonly]) #button{-webkit-user-select:inherit;user-select:inherit}.picker,.validation-icon{flex-shrink:0}luzmo-overlay{pointer-events:none}luzmo-menu{pointer-events:initial}:host>luzmo-menu{display:none}:host([focused]:not([quiet])) #button #label.placeholder{color:var(--picker-placeholder-text-color-key-focus, var(--alias-placeholder-text-color-hover))}#label.visually-hidden~.picker{margin-inline-start:auto}:host([focused]:not([quiet],[pending])) #button .picker{color:var(--picker-icon-color-key-focus, var(--alias-icon-color-focus))}.visually-hidden{border:0;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;margin:0 -1px -1px 0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}luzmo-overlay:not(:defined){display:none}#button.remove-focus-ring-safari-hack:focus-visible{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}#button.remove-focus-ring-safari-hack:after{border:none}#button.remove-focus-ring-safari-hack:focus-visible:after{box-shadow:none}#button.remove-focus-ring-safari-hack:active{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}';
52
- var m = /* @__PURE__ */ ((c) => (c[c.desktop = 0] = "desktop", c[c.mobile = 1] = "mobile", c))(m || {});
53
- class y {
54
- constructor(e, o) {
55
- this.target = e, this.host = o, this.preventNextToggle = "no", this.pointerdownState = !1, this.enterKeydownOn = null, this._open = !1, this.target = e, this.host = o, this.host.addController(this), this.init();
36
+ const v = '#button{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--luzmo-button-font-family, var(--luzmo-font-family));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:var(--luzmo-button-line-height, var(--luzmo-line-height, 1.3));text-transform:none;vertical-align:top;-webkit-appearance:button;transition:background var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,border-color var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,color var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out,box-shadow var(--luzmo-button-animation-duration, var(--luzmo-animation-duration)) ease-out;justify-content:center;align-items:center;margin:0;-webkit-text-decoration:none;text-decoration:none;display:inline-flex;position:relative;overflow:visible}#button::-moz-focus-inner{border-style:none;padding:0}#button:focus{outline:none}#icon{margin-inline-end:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon));font-size:var(--luzmo-picker-font-size, var(--picker-font-size))}@media (forced-colors: active){:host{--highcontrast-picker-focus-indicator-color: Highlight;--highcontrast-picker-border-color-default: ButtonBorder;--highcontrast-picker-border-color-hover: Highlight;--highcontrast-picker-border-color-disabled: GrayText;--highcontrast-picker-content-color-default: ButtonText;--highcontrast-picker-content-color-disabled: GrayText;--highcontrast-picker-background-color: ButtonFace}#button.is-keyboardFocused,#button:focus-visible{--highcontrast-picker-border-color-hover: ButtonText}#button .label,#button:after{forced-color-adjust:none}}#button{box-sizing:border-box;max-inline-size:100%;min-inline-size:calc(var(--picker-minimum-width-multiplier) * var(--luzmo-picker-block-size, var(--picker-block-size)));block-size:var(--luzmo-picker-block-size, var(--picker-block-size));border-width:var(--luzmo-picker-border-width, var(--picker-border-width));border-radius:var(--luzmo-picker-border-radius, var(--picker-border-radius));box-shadow:var(--luzmo-picker-box-shadow, var(--picker-box-shadow));transition:background-color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)),box-shadow var(--luzmo-picker-animation-duration, var(--picker-animation-duration)),border-color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-in-out;color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-style:solid;border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));margin-block-start:var(--luzmo-picker-spacing-label-to-picker, var(--picker-spacing-label-to-picker));padding-block:0;padding-inline-start:var(--luzmo-picker-spacing-edge-to-text, var(--picker-spacing-edge-to-text));padding-inline-end:var(--luzmo-picker-spacing-edge-to-disclosure-icon, var(--picker-spacing-edge-to-disclosure-icon));display:flex}#button:after{pointer-events:none;content:"";block-size:calc(100% + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) * 2 + var(--luzmo-picker-border-width, var(--picker-border-width)) * 2);inline-size:calc(100% + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) * 2 + var(--luzmo-picker-border-width, var(--picker-border-width)) * 2);border-style:solid;border-width:var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness));border-radius:calc(var(--luzmo-picker-border-radius, var(--picker-border-radius)) + var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-border-width, var(--picker-border-width)));border-color:#0000;margin-block-start:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1);margin-inline-start:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1);position:absolute;inset-block:0;inset-inline:0}#button:active{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-active, var(--picker-background-color-active)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-active, var(--picker-border-color-active)))}#button:active:after{border-color:#0000}#button.placeholder:active .label{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-active, var(--picker-font-color-active)))}#button.is-keyboardFocused,#button:focus-visible{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-key-focus, var(--picker-background-color-key-focus)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-key-focus, var(--picker-border-color-key-focus)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-key-focus, var(--picker-font-color-key-focus)));outline:none}#button.is-keyboardFocused:after,#button:focus-visible:after{border-color:var(--highcontrast-picker-focus-indicator-color, var(--luzmo-picker-focus-indicator-color, var(--picker-focus-indicator-color)))}#button.is-keyboardFocused.placeholder,#button.placeholder:focus-visible{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-key-focus, var(--picker-font-color-key-focus)))}#button.is-keyboardFocused .disclosure-icon,#button:focus-visible .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-key-focus, var(--picker-icon-color-key-focus)))}:host([open]) #button:not(:disabled,.is-disabled){color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default-open, var(--picker-font-color-default-open)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default-open, var(--picker-background-color-default-open)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-default-open, var(--picker-border-color-default-open)))}:host([open]) #button:not(:disabled,.is-disabled) .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-default-open, var(--picker-icon-color-default-open)))}:host([invalid]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-default, var(--picker-border-color-error-default)))}:host([invalid]) #button:not(:disabled,.is-disabled) .validation-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-error, var(--picker-icon-color-error)))}:host([invalid]) #button:not(:disabled,.is-disabled):active{border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-active, var(--picker-border-color-error-active)))}:host([invalid][open]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-default-open, var(--picker-border-color-error-default-open)))}:host([invalid]) #button.is-keyboardFocused:not(:disabled,.is-disabled),:host([invalid]) #button:not(:disabled,.is-disabled):focus-visible{border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-error-key-focus, var(--picker-border-color-error-key-focus)))}:host([pending]) #button .disclosure-icon{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-icon-color-disabled, var(--picker-icon-color-disabled)))}.icon{flex-shrink:0}.label{white-space:nowrap;font-size:var(--luzmo-picker-font-size, var(--picker-font-size));line-height:var(--luzmo-picker-line-height, var(--picker-line-height));font-weight:var(--luzmo-picker-font-weight, var(--picker-font-weight));text-overflow:ellipsis;text-align:start;flex:auto;overflow:hidden}.label.placeholder{font-weight:var(--luzmo-picker-placeholder-font-weight, var(--picker-font-weight));font-style:var(--luzmo-picker-placeholder-font-style, var(--picker-placeholder-font-style));transition:color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-in-out;color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}.label.placeholder:active{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-active, var(--picker-font-color-active)))}.disclosure-icon{vertical-align:top;transition:color var(--luzmo-picker-animation-duration, var(--picker-animation-duration)) ease-out;margin-inline-start:var(--luzmo-picker-spacing-icon-to-disclosure-icon, var(--picker-spacing-icon-to-disclosure-icon));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-default, var(--picker-icon-color-default)));flex-shrink:0;display:inline-block;position:relative}.disclosure-icon:active{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-active, var(--picker-icon-color-active)))}luzmo-progress-circle,.validation-icon{margin-inline-start:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon))}.icon-container{display:flex;position:relative;height:100%;align-items:center;font-size:var(--luzmo-picker-disclosure-icon-size, var(--picker-disclosure-icon-size))}.icon-container.disclosure-icon{margin-inline-end:0}.label~.disclosure-icon{margin-inline-start:var(--luzmo-picker-spacing-text-to-icon, var(--picker-spacing-text-to-icon))}:host([quiet]) #button{inline-size:auto;min-inline-size:0;padding-inline:var(--luzmo-picker-spacing-edge-to-text-quiet, var(--picker-spacing-edge-to-text-quiet));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)));background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent);border:none;border-radius:0;box-shadow:none;margin-block-start:calc(var(--luzmo-picker-spacing-label-to-picker-quiet, var(--picker-spacing-label-to-picker-quiet)) + 1px)}:host([quiet]) #button.label-inline{margin-block-start:0}:host([quiet]) #button .disclosure-icon{margin-inline-end:var(--luzmo-picker-spacing-edge-to-disclosure-icon-quiet, var(--picker-spacing-edge-to-disclosure-icon-quiet))}:host([quiet]) #button:after{block-size:auto;inline-size:auto;border:none}@media (hover: hover){#button:hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover, var(--picker-font-color-hover)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-hover, var(--picker-background-color-hover)));border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-hover, var(--picker-border-color-hover)))}#button:hover .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-hover, var(--picker-icon-color-hover)))}:host([open]):not([quiet]) #button:not(:disabled,.is-disabled):hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover-open, var(--picker-font-color-hover-open)));background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-hover-open, var(--picker-background-color-hover-open)));border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-hover-open, var(--picker-border-color-hover-open)))}:host([open]) #button:not(:disabled,.is-disabled):hover .disclosure-icon{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-icon-color-hover-open, var(--picker-icon-color-hover-open)))}:host([invalid]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-error-hover, var(--picker-border-color-error-hover)))}:host([invalid][open]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-picker-border-color-hover, var(--luzmo-picker-border-color-error-hover-open, var(--picker-border-color-error-hover-open)))}.label.placeholder:hover{color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-hover, var(--picker-font-color-hover)))}:host([quiet]) #button:hover{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)!important}}:host([quiet]) #button.is-keyboardFocused,:host([quiet]) #button:focus-visible{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)}:host([quiet]) #button.is-keyboardFocused:after,:host([quiet]) #button:focus-visible:after{box-shadow:0 var(--luzmo-picker-focus-indicator-thickness, var(--picker-focus-indicator-thickness)) 0 0 var(--highcontrast-picker-focus-indicator-color, var(--luzmo-picker-focus-indicator-color, var(--picker-focus-indicator-color)));margin:calc((var(--luzmo-picker-focus-indicator-gap, var(--picker-focus-indicator-gap)) + var(--luzmo-picker-border-width, var(--picker-border-width))) * -1) 0;border:none;border-radius:0}:host([quiet][open]) #button,:host([quiet][disabled]) #button#button,:host([quiet]) #button#button:disabled,:host([quiet]) #button:active{background-color:initial;background-color:var(--highcontrast-picker-background-color, transparent)}.label-inline{vertical-align:top;display:inline-flex}:host([disabled]) #button,#button:disabled{cursor:default;background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-disabled, var(--picker-background-color-disabled)));border-color:#0000;border-color:var(--highcontrast-picker-border-color-disabled, transparent);color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-font-color-disabled, var(--picker-font-color-disabled)))}:host([disabled]) #button .icon,:host([disabled]) #button .disclosure-icon,:host([disabled]) #button .validation-icon,#button:disabled .icon,#button:disabled .disclosure-icon,#button:disabled .validation-icon{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-icon-color-disabled, var(--picker-icon-color-disabled)))}:host([disabled]) #button .label.placeholder,#button:disabled .label.placeholder{color:var(--highcontrast-picker-content-color-disabled, var(--luzmo-picker-font-color-disabled, var(--picker-font-color-disabled)))}:host{--picker-box-shadow: 0px 1px 3px 0px rgba(var(--luzmo-border-color-rgb), .06);--picker-background-color-default: var(--luzmo-background-color);--picker-background-color-default-open: var(--luzmo-background-color-hover);--picker-background-color-active: var(--luzmo-background-color-down);--picker-background-color-hover: var(--luzmo-background-color-hover);--picker-background-color-hover-open: var(--luzmo-background-color-down);--picker-background-color-key-focus: var(--luzmo-background-color-down);--picker-border-color-default: var(--luzmo-border-color);--picker-border-color-default-open: var(--luzmo-border-color-hover);--picker-border-color-hover: var(--luzmo-border-color);--picker-border-color-hover-open: var(--luzmo-border-color-hover);--picker-border-color-active: var(--luzmo-border-color);--picker-border-color-key-focus: var(--luzmo-border-color);--picker-border-width: var(--luzmo-border-width);--picker-font-size: var(--luzmo-font-size);--picker-font-weight: var(--luzmo-font-weight);--picker-placeholder-font-style: var(--luzmo-font-style);--picker-line-height: var(--luzmo-line-height);--picker-block-size: 32px;--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-text-quiet: 0px;--picker-spacing-label-to-picker: 0px;--picker-spacing-label-to-picker-quiet: calc( -1 * var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon-quiet: 0px;--picker-animation-duration: var(--luzmo-animation-duration);--picker-font-color-default: var(--luzmo-font-color);--picker-font-color-default-open: var(--luzmo-font-color-hover);--picker-font-color-hover: var(--luzmo-font-color-hover);--picker-font-color-hover-open: var(--luzmo-font-color-down);--picker-font-color-active: var(--luzmo-font-color-focus);--picker-font-color-key-focus: var(--luzmo-font-color-focus);--picker-icon-color-default: var(--luzmo-font-color);--picker-icon-color-default-open: var(--luzmo-font-color-hover);--picker-icon-color-hover: var(--luzmo-font-color-hover);--picker-icon-color-hover-open: var(--luzmo-font-color-hover);--picker-icon-color-active: var(--luzmo-font-color-focus);--picker-icon-color-key-focus: var(--luzmo-font-color-focus);--picker-border-color-error-default: var(--luzmo-negative-color);--picker-border-color-error-default-open: var(--luzmo-negative-color-down);--picker-border-color-error-hover: var(--luzmo-negative-color-hover);--picker-border-color-error-hover-open: var(--luzmo-negative-color-down);--picker-border-color-error-active: var(--luzmo-negative-color-down);--picker-border-color-error-key-focus: var(--luzmo-negative-color-focus);--picker-icon-color-error: var(--luzmo-negative-color);--picker-background-color-disabled: var(--luzmo-background-color-disabled);--picker-font-color-disabled: var(--luzmo-disabled-color);--picker-icon-color-disabled: var(--luzmo-disabled-color);--picker-focus-indicator-gap: var(--luzmo-indicator-gap);--picker-focus-indicator-thickness: var(--luzmo-indicator-width);--picker-focus-indicator-color: var(--luzmo-indicator-color);--picker-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=s]){--picker-block-size: 28px;--picker-font-size: var(--luzmo-font-size-s);--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: var(--luzmo-spacing-3);--picker-spacing-text-to-icon: var(--luzmo-spacing-3);--picker-spacing-text-to-icon-inline-end: var(--luzmo-spacing-3);--picker-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-3);--picker-spacing-label-to-picker-quiet: calc(-1 * var(--luzmo-spacing-3));--picker-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-3);--picker-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=l]){--picker-block-size: 40px;--picker-font-size: var(--luzmo-font-size-l);--picker-border-radius: var(--luzmo-border-radius);--picker-spacing-edge-to-text: var(--luzmo-spacing-4);--picker-spacing-text-to-icon: var(--luzmo-spacing-4);--picker-spacing-text-to-icon-inline-end: var(--luzmo-spacing-4);--picker-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-4);--picker-spacing-label-to-picker-quiet: calc(-1 * var(--luzmo-spacing-4));--picker-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-4);--picker-disclosure-icon-size: var(--luzmo-font-size)}:host([size=xl]){--picker-block-size: 48px;--picker-font-size: var(--luzmo-font-size-xl);--picker-border-radius: var(--luzmo-border-radius-l);--picker-spacing-edge-to-text: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-label-to-picker-quiet: calc( -1 * var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--picker-disclosure-icon-size: var(--luzmo-font-size-l)}:host([variant=highlight]) ::slotted(luzmo-menu-item[selected]){--menu-item-highlight-label-content-color: var(--luzmo-primary-inverse-color);--menu-item-label-icon-color-default: var(--luzmo-primary-inverse-color);--menu-checkmark-display: var(--menu-checkmark-display-hidden);padding-inline-start:var(--luzmo-menu-item-label-inline-edge-to-content, var(--menu-item-label-inline-edge-to-content));background-color:var(--luzmo-menu-item-highlight-label-background-color, var(--menu-item-highlight-label-background-color, var(--luzmo-border-color)))}:host{display:inline-flex;vertical-align:top;max-inline-size:100%;inline-size:var(--luzmo-picker-inline-size, var(--picker-inline-size));min-inline-size:calc(var(--picker-minimum-width-multiplier) * var(--luzmo-picker-block-size, var(--picker-block-size)))}:host([quiet]){width:auto;min-width:0}:host([disabled]){pointer-events:none}#button{width:100%;min-width:100%;max-width:100%}#icon:not([hidden]){display:inline-flex}:host([readonly]) #button{-webkit-user-select:inherit;user-select:inherit}.picker,.validation-icon{flex-shrink:0}luzmo-overlay{pointer-events:none}luzmo-menu{pointer-events:initial}:host>luzmo-menu{display:none}:host([focused]:not([quiet])) #button #label.placeholder{color:var(--picker-placeholder-text-color-key-focus, var(--alias-placeholder-text-color-hover))}#label.visually-hidden~.picker{margin-inline-start:auto}:host([focused]:not([quiet],[pending])) #button .picker{color:var(--picker-icon-color-key-focus, var(--alias-icon-color-focus))}.visually-hidden{border:0;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;margin:0 -1px -1px 0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}luzmo-overlay:not(:defined){display:none}#button.remove-focus-ring-safari-hack:focus-visible{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}#button.remove-focus-ring-safari-hack:after{border:none}#button.remove-focus-ring-safari-hack:focus-visible:after{box-shadow:none}#button.remove-focus-ring-safari-hack:active{background-color:var(--highcontrast-picker-background-color, var(--luzmo-picker-background-color-default, var(--picker-background-color-default)));border-color:var(--highcontrast-picker-border-color-default, var(--luzmo-picker-border-color-default, var(--picker-border-color-default)));color:var(--highcontrast-picker-content-color-default, var(--luzmo-picker-font-color-default, var(--picker-font-color-default)))}';
37
+ var c = /* @__PURE__ */ ((i) => (i[i.desktop = 0] = "desktop", i[i.mobile = 1] = "mobile", i))(c || {});
38
+ class n {
39
+ constructor(o, r) {
40
+ this.target = o, this.host = r, this.preventNextToggle = "no", this.pointerdownState = !1, this.enterKeydownOn = null, this._open = !1, this.target = o, this.host = r, this.host.addController(this), this.init();
56
41
  }
57
42
  get activelyOpening() {
58
43
  return !1;
@@ -63,566 +48,145 @@ class y {
63
48
  /**
64
49
  * Set `open`
65
50
  */
66
- set open(e) {
67
- if (this._open !== e) {
68
- if (this._open = e, this.overlay) {
69
- this.host.open = e;
51
+ set open(o) {
52
+ if (this._open !== o) {
53
+ if (this._open = o, this.overlay) {
54
+ this.host.open = o;
70
55
  return;
71
56
  }
72
57
  customElements.whenDefined("luzmo-overlay").then(async () => {
73
- const { LuzmoOverlay: o } = await import("./overlay/index.js");
74
- this.overlay = new o(), this.host.open = !0, this.host.requestUpdate();
58
+ const { LuzmoOverlay: r } = await import("./overlay/index.js");
59
+ this.overlay = new r(), this.host.open = !0, this.host.requestUpdate();
75
60
  }), import("./overlay/index.js");
76
61
  }
77
62
  }
78
63
  get overlay() {
79
64
  return this._overlay;
80
65
  }
81
- set overlay(e) {
82
- e && this.overlay !== e && (this._overlay = e, this.initOverlay());
66
+ set overlay(o) {
67
+ o && this.overlay !== o && (this._overlay = o, this.initOverlay());
83
68
  }
84
69
  releaseDescription() {
85
70
  }
86
- handleBeforetoggle(e) {
87
- var o;
88
- e.composedPath()[0] === e.target && (e.newState === "closed" && (this.preventNextToggle === "no" ? this.open = !1 : this.pointerdownState || (o = this.overlay) == null || o.manuallyKeepOpen()), this.open || (this.host.optionsMenu.updateSelectedItemIndex(), this.host.optionsMenu.closeDescendentOverlays()));
71
+ handleBeforetoggle(o) {
72
+ var r;
73
+ o.composedPath()[0] === o.target && (o.newState === "closed" && (this.preventNextToggle === "no" ? this.open = !1 : this.pointerdownState || (r = this.overlay) == null || r.manuallyKeepOpen()), this.open || (this.host.optionsMenu.updateSelectedItemIndex(), this.host.optionsMenu.closeDescendentOverlays()));
89
74
  }
90
75
  initOverlay() {
91
- this.overlay && (this.overlay.addEventListener("beforetoggle", (e) => {
76
+ this.overlay && (this.overlay.addEventListener("beforetoggle", (o) => {
92
77
  this.handleBeforetoggle(
93
- e
78
+ o
94
79
  );
95
80
  }), this.overlay.type = this.host.isMobile.matches ? "modal" : "auto", this.overlay.triggerElement = this.host, this.overlay.placement = this.host.isMobile.matches ? void 0 : this.host.placement, this.overlay.receivesFocus = "true", this.overlay.willPreventClose = this.preventNextToggle !== "no" && this.open, this.overlay.addEventListener(
96
81
  "slottable-request",
97
82
  this.host.handleSlottableRequest
98
83
  ));
99
84
  }
100
- handlePointerdown(e) {
85
+ handlePointerdown(o) {
101
86
  }
102
- handleButtonFocus(e) {
103
- this.preventNextToggle === "maybe" && e.relatedTarget === this.host.optionsMenu && (this.preventNextToggle = "yes");
87
+ handleButtonFocus(o) {
88
+ this.preventNextToggle === "maybe" && o.relatedTarget === this.host.optionsMenu && (this.preventNextToggle = "yes");
104
89
  }
105
- handleActivate(e) {
90
+ handleActivate(o) {
106
91
  }
107
92
  /* c8 ignore next 3 */
108
93
  init() {
109
94
  }
110
95
  abort() {
111
- var e;
112
- this.releaseDescription(), (e = this.abortController) == null || e.abort();
96
+ var o;
97
+ this.releaseDescription(), (o = this.abortController) == null || o.abort();
113
98
  }
114
99
  hostConnected() {
115
100
  this.init();
116
101
  }
117
102
  hostDisconnected() {
118
- var e;
119
- (e = this.abortController) == null || e.abort();
103
+ var o;
104
+ (o = this.abortController) == null || o.abort();
120
105
  }
121
106
  hostUpdated() {
122
107
  this.overlay && this.host.dependencyManager.loaded && this.host.open !== this.overlay.open && (this.overlay.willPreventClose = this.preventNextToggle !== "no", this.overlay.open = this.host.open);
123
108
  }
124
109
  }
125
- class _ extends y {
110
+ class l extends n {
126
111
  constructor() {
127
- super(...arguments), this.type = m.desktop;
112
+ super(...arguments), this.type = c.desktop;
128
113
  }
129
- handlePointerdown(e) {
130
- if (e.button !== 0 || e.pointerType === "touch")
114
+ handlePointerdown(o) {
115
+ if (o.button !== 0 || o.pointerType === "touch")
131
116
  return;
132
117
  this.pointerdownState = this.open, this.preventNextToggle = "maybe";
133
- let o = 0;
134
- const r = () => {
135
- cancelAnimationFrame(o), o = requestAnimationFrame(() => {
136
- document.removeEventListener("pointerup", r), document.removeEventListener("pointercancel", r), this.target.removeEventListener("click", r), requestAnimationFrame(() => {
118
+ let r = 0;
119
+ const e = () => {
120
+ cancelAnimationFrame(r), r = requestAnimationFrame(() => {
121
+ document.removeEventListener("pointerup", e), document.removeEventListener("pointercancel", e), this.target.removeEventListener("click", e), requestAnimationFrame(() => {
137
122
  this.preventNextToggle = "no";
138
123
  });
139
124
  });
140
125
  };
141
- document.addEventListener("pointerup", r), document.addEventListener("pointercancel", r), this.target.addEventListener("click", r), this.handleActivate();
126
+ document.addEventListener("pointerup", e), document.addEventListener("pointercancel", e), this.target.addEventListener("click", e), this.handleActivate();
142
127
  }
143
- handleActivate(e) {
144
- this.enterKeydownOn && this.enterKeydownOn !== this.target || this.preventNextToggle !== "yes" && ((e == null ? void 0 : e.type) === "click" && this.open !== this.pointerdownState || this.host.toggle());
128
+ handleActivate(o) {
129
+ this.enterKeydownOn && this.enterKeydownOn !== this.target || this.preventNextToggle !== "yes" && ((o == null ? void 0 : o.type) === "click" && this.open !== this.pointerdownState || this.host.toggle());
145
130
  }
146
131
  init() {
147
- var o;
148
- (o = this.abortController) == null || o.abort(), this.abortController = new AbortController();
149
- const { signal: e } = this.abortController;
132
+ var r;
133
+ (r = this.abortController) == null || r.abort(), this.abortController = new AbortController();
134
+ const { signal: o } = this.abortController;
150
135
  this.target.addEventListener(
151
136
  "click",
152
- (r) => this.handleActivate(r),
137
+ (e) => this.handleActivate(e),
153
138
  {
154
- signal: e
139
+ signal: o
155
140
  }
156
141
  ), this.target.addEventListener(
157
142
  "pointerdown",
158
- (r) => this.handlePointerdown(r),
159
- { signal: e }
143
+ (e) => this.handlePointerdown(e),
144
+ { signal: o }
160
145
  ), this.target.addEventListener(
161
146
  "focus",
162
- (r) => this.handleButtonFocus(r),
147
+ (e) => this.handleButtonFocus(e),
163
148
  {
164
- signal: e
149
+ signal: o
165
150
  }
166
151
  );
167
152
  }
168
153
  }
169
- const h = "remove-focus-ring-safari-hack";
170
- class D extends y {
154
+ const t = "remove-focus-ring-safari-hack";
155
+ class s extends n {
171
156
  constructor() {
172
- super(...arguments), this.type = m.mobile;
157
+ super(...arguments), this.type = c.mobile;
173
158
  }
174
159
  handleClick() {
175
160
  this.preventNextToggle === "no" && (this.open = !this.open), this.preventNextToggle = "no";
176
161
  }
177
162
  handlePointerdown() {
178
- this.preventNextToggle = this.open ? "yes" : "no", g() && this.target.classList.add(h);
163
+ this.preventNextToggle = this.open ? "yes" : "no", a() && this.target.classList.add(t);
179
164
  }
180
165
  handleFocusOut() {
181
- this.host.open || g() && this.target.classList.contains(h) && this.target.classList.remove(h);
166
+ this.host.open || a() && this.target.classList.contains(t) && this.target.classList.remove(t);
182
167
  }
183
168
  init() {
184
- var o;
185
- (o = this.abortController) == null || o.abort(), this.abortController = new AbortController();
186
- const { signal: e } = this.abortController;
169
+ var r;
170
+ (r = this.abortController) == null || r.abort(), this.abortController = new AbortController();
171
+ const { signal: o } = this.abortController;
187
172
  this.target.addEventListener("click", () => this.handleClick(), {
188
- signal: e
173
+ signal: o
189
174
  }), this.target.addEventListener(
190
175
  "pointerdown",
191
176
  () => this.handlePointerdown(),
192
- { signal: e }
177
+ { signal: o }
193
178
  ), this.target.addEventListener("focusout", () => this.handleFocusOut(), {
194
- signal: e
179
+ signal: o
195
180
  });
196
181
  }
197
182
  }
198
- const f = {
199
- desktop: _,
200
- mobile: D
201
- };
202
- var B = Object.defineProperty, P = Object.getOwnPropertyDescriptor, i = (c, e, o, r) => {
203
- for (var n = r > 1 ? void 0 : r ? P(e, o) : e, a = c.length - 1, p; a >= 0; a--)
204
- (p = c[a]) && (n = (r ? p(e, o, n) : p(n)) || n);
205
- return r && n && B(e, o, n), n;
183
+ const h = {
184
+ desktop: l,
185
+ mobile: s
206
186
  };
207
- const T = () => l`
208
- <div class="disclosure-icon icon">
209
- ${k(q, { className: "indicator" })}
210
- </div>
211
- `, K = () => l`
212
- <div class="icon-container validation-icon icon">
213
- ${k(L)}
214
- </div>
215
- `, z = "option-picker";
216
- class t extends E(S, {
217
- noDefaultSize: !0
218
- }) {
219
- /**
220
- * Initializes the `PendingStateController` for the Picker component.
221
- * The `PendingStateController` manages the pending state of the Picker.
222
- */
223
- constructor() {
224
- super(), this.disabled = !1, this.focused = !1, this.invalid = !1, this.pending = !1, this.pendingLabel = "Pending", this.open = !1, this.readonly = !1, this.placement = "bottom-start", this.quiet = !1, this.value = "", this.selects = "single", this.dependencyManager = new M(this), this.isMobile = new A(this, F), this.listRole = "listbox", this.itemRole = "option", this.hasRenderedOverlay = !1, this._selfManageFocusElement = !1, this.deprecatedMenu = null, this.selectionPromise = Promise.resolve(), this.willManageSelection = !1, this.recentlyConnected = !1, this.enterKeydownOn = null, this.handleSlottableRequest = (e) => {
225
- }, this.applyFocusElementLabel = (e, o) => {
226
- this.appliedLabel = e, this.labelAlignment = o.sideAligned ? "inline" : void 0;
227
- }, this.handleKeydown = (e) => {
228
- this.focused = !0, !(e.code !== "ArrowDown" && e.code !== "ArrowUp") && (e.stopPropagation(), e.preventDefault(), this.toggle(!0));
229
- }, this.renderAngleIcon = () => T(), this.renderAlertIcon = () => K(), this.handleEnterKeydown = (e) => {
230
- if (e.code === "Enter") {
231
- if (this.enterKeydownOn) {
232
- e.preventDefault();
233
- return;
234
- }
235
- this.enterKeydownOn = e.target, this.addEventListener(
236
- "keyup",
237
- (o) => {
238
- o.code === "Enter" && (this.enterKeydownOn = null);
239
- },
240
- { once: !0 }
241
- );
242
- }
243
- }, this.pendingStateController = new $(this);
244
- }
245
- get selectedItem() {
246
- return this._selectedItem;
247
- }
248
- get selectedItemContent() {
249
- return this._selectedItemContent || { icon: [], content: [] };
250
- }
251
- get selfManageFocusElement() {
252
- return this._selfManageFocusElement;
253
- }
254
- get menuItems() {
255
- return this.optionsMenu.childItems;
256
- }
257
- set selectedItem(e) {
258
- const o = e == null ? void 0 : e.querySelector('[slot="icon"]');
259
- if (this.selectedItemContent = e ? e.itemChildren : void 0, e === this.selectedItem)
260
- return;
261
- const r = this.selectedItem;
262
- this._selectedItem = e, this._selectedItemIcon = (o == null ? void 0 : o.icon) ?? void 0, this.requestUpdate("selectedItem", r);
263
- }
264
- get focusElement() {
265
- return this.open ? this.optionsMenu : this.button;
266
- }
267
- forceFocusVisible() {
268
- this.disabled || (this.focused = !0);
269
- }
270
- click() {
271
- this.disabled || this.toggle();
272
- }
273
- handleButtonBlur() {
274
- this.focused = !1;
275
- }
276
- focus(e) {
277
- super.focus(e), !this.disabled && this.focusElement && (this.focused = this.hasVisibleFocusInTree());
278
- }
279
- handleHelperFocus() {
280
- this.focused = !0, this.button.focus();
281
- }
282
- handleChange(e) {
283
- this.strategy && (this.strategy.preventNextToggle = "no");
284
- const o = e.target, [r] = o.selectedItems;
285
- e.stopPropagation(), e.cancelable ? this.setValueFromItem(r, e) : (this.open = !1, this.strategy && (this.strategy.open = !1));
286
- }
287
- handleButtonFocus(e) {
288
- var o;
289
- (o = this.strategy) == null || o.handleButtonFocus(e);
290
- }
291
- toggle(e) {
292
- this.readonly || this.pending || (this.open = e === void 0 ? !this.open : e, this.strategy && (this.strategy.open = this.open), this._selfManageFocusElement = this.open);
293
- }
294
- close() {
295
- this.readonly || this.strategy && (this.open = !1, this.strategy.open = !1);
296
- }
297
- bindEvents() {
298
- var e;
299
- (e = this.strategy) == null || e.abort(), this.strategy = this.isMobile.matches ? new f.mobile(this.button, this) : new f.desktop(this.button, this);
300
- }
301
- connectedCallback() {
302
- super.connectedCallback(), this.recentlyConnected = this.hasUpdated;
303
- }
304
- disconnectedCallback() {
305
- var e;
306
- this.close(), (e = this.strategy) == null || e.releaseDescription(), super.disconnectedCallback();
307
- }
308
- async setValueFromItem(e, o) {
309
- this.open = !1, this.strategy && (this.strategy.open = !1);
310
- const r = this.selectedItem, n = this.value;
311
- if (this.selectedItem = e, this.value = (e == null ? void 0 : e.value) ?? "", await this.updateComplete, !this.dispatchEvent(
312
- new CustomEvent("change", {
313
- bubbles: !0,
314
- // Allow it to be prevented.
315
- cancelable: !0,
316
- composed: !0,
317
- detail: this.value
318
- })
319
- ) && this.selects) {
320
- o && o.preventDefault(), this.setMenuItemSelected(this.selectedItem, !1), r && this.setMenuItemSelected(r, !0), this.selectedItem = r, this.value = n, this.open = !0, this.strategy && (this.strategy.open = !0);
321
- return;
322
- } else if (!this.selects) {
323
- this.selectedItem = r, this.value = n;
324
- return;
325
- }
326
- r && this.setMenuItemSelected(r, !1), this.setMenuItemSelected(e, !!this.selects);
327
- }
328
- setMenuItemSelected(e, o) {
329
- this.selects != null && (e.selected = o);
330
- }
331
- get containerStyles() {
332
- return this.isMobile.matches ? {
333
- "--swc-menu-width": "100%"
334
- } : {};
335
- }
336
- set selectedItemContent(e) {
337
- if (e === this.selectedItemContent)
338
- return;
339
- const o = this.selectedItemContent;
340
- this._selectedItemContent = e, this.requestUpdate("selectedItemContent", o);
341
- }
342
- handleTooltipSlotchange(e) {
343
- this.tooltipEl = e.target.assignedElements()[0];
344
- }
345
- renderLabelContent(e) {
346
- return this.value && this.selectedItem ? e : l`
347
- <slot name="label" id="label">
348
- <span aria-hidden=${u(this.appliedLabel ? void 0 : "true")}>
349
- ${this.label}
350
- </span>
351
- </slot>
352
- `;
353
- }
354
- get buttonContent() {
355
- const e = {
356
- "visually-hidden": this.icons === "only" && !!this.value,
357
- placeholder: !this.value,
358
- label: !0
359
- }, o = this.appliedLabel || this.label, r = l` <div id="icon" ?hidden=${this.icons === "none"}>
360
- ${this._selectedItemIcon ? k(this._selectedItemIcon) : d}
361
- </div>`;
362
- return [
363
- l`
364
- ${this._selectedItemIcon ? r : d}
365
- <div
366
- id=${u(this.value && this.selectedItem ? "label" : void 0)}
367
- class=${C(e)}
368
- >
369
- ${this.renderLabelContent(this.selectedItemContent.content)}
370
- </div>
371
- ${this.value && this.selectedItem ? l`
372
- <div
373
- aria-hidden="true"
374
- class="visually-hidden"
375
- id="applied-label"
376
- >
377
- ${o}
378
- <slot name="label"></slot>
379
- </div>
380
- ` : l` <span hidden id="applied-label">${o}</span> `}
381
- ${this.invalid && !this.pending ? l` ${this.renderAlertIcon()} ` : d}
382
- ${this.pendingStateController.renderPendingState()}
383
- ${this.readonly ? d : this.renderAngleIcon()}
384
- <slot
385
- aria-hidden="true"
386
- name="tooltip"
387
- id="tooltip"
388
- @slotchange=${this.handleTooltipSlotchange}
389
- ></slot>
390
- `
391
- ];
392
- }
393
- renderOverlay(e) {
394
- var r, n, a;
395
- if (((r = this.strategy) == null ? void 0 : r.overlay) === void 0)
396
- return e;
397
- const o = this.renderContainer(e);
398
- return w(o, (n = this.strategy) == null ? void 0 : n.overlay, {
399
- host: this
400
- }), (a = this.strategy) == null ? void 0 : a.overlay;
401
- }
402
- get renderDescriptionSlot() {
403
- return l`
404
- <div id=${z}>
405
- <slot name="description"></slot>
406
- </div>
407
- `;
408
- }
409
- // a helper to throw focus to the button is needed because Safari
410
- // won't include buttons in the tab order even with tabindex="0"
411
- render() {
412
- return this.tooltipEl && (this.tooltipEl.disabled = this.open), l`
413
- <span
414
- id="focus-helper"
415
- tabindex=${this.focused || this.open ? "-1" : "0"}
416
- @focus=${this.handleHelperFocus}
417
- aria-describedby=${z}
418
- ></span>
419
- <button
420
- aria-controls=${u(this.open ? "menu" : void 0)}
421
- aria-describedby="tooltip"
422
- aria-expanded=${this.open ? "true" : "false"}
423
- aria-haspopup="true"
424
- aria-labelledby="loader icon label applied-label"
425
- id="button"
426
- class=${u(
427
- this.labelAlignment ? `label-${this.labelAlignment}` : void 0
428
- )}
429
- @blur=${this.handleButtonBlur}
430
- @keydown=${{
431
- handleEvent: this.handleEnterKeydown,
432
- capture: !0
433
- }}
434
- ?disabled=${this.disabled}
435
- tabindex="-1"
436
- >
437
- ${this.buttonContent}
438
- </button>
439
- ${this.renderMenu} ${this.renderDescriptionSlot}
440
- `;
441
- }
442
- update(e) {
443
- var o, r;
444
- this.selects && (this.selects = "single"), e.has("disabled") && this.disabled && this.strategy && (this.open = !1, this.strategy.open = !1), e.has("pending") && this.pending && this.strategy && (this.open = !1, this.strategy.open = !1), e.has("value") && this.shouldScheduleManageSelection(), this.hasUpdated || (this.deprecatedMenu = this.querySelector(":scope > luzmo-menu"), (o = this.deprecatedMenu) == null || o.toggleAttribute("ignore", !0), (r = this.deprecatedMenu) == null || r.setAttribute("selects", "inherit")), super.update(e);
445
- }
446
- bindButtonKeydownListener() {
447
- this.button.addEventListener("keydown", this.handleKeydown);
448
- }
449
- updated(e) {
450
- super.updated(e), e.has("open") && (this.strategy.open = this.open);
451
- }
452
- firstUpdated(e) {
453
- super.firstUpdated(e), this.bindButtonKeydownListener(), this.bindEvents();
454
- }
455
- get dismissHelper() {
456
- return l`
457
- <div class="visually-hidden">
458
- <button
459
- tabindex="-1"
460
- aria-label="Dismiss"
461
- @click=${this.close}
462
- ></button>
463
- </div>
464
- `;
465
- }
466
- renderContainer(e) {
467
- const o = l`
468
- ${this.dismissHelper} ${e} ${this.dismissHelper}
469
- `;
470
- return this.dependencyManager.add("luzmo-popover"), import("./popover/index.js"), l`
471
- <luzmo-popover
472
- id="popover"
473
- size=${this.size}
474
- role="presentation"
475
- style=${I(this.containerStyles)}
476
- placement=${this.placement}
477
- >
478
- ${o}
479
- </luzmo-popover>
480
- `;
481
- }
482
- get renderMenu() {
483
- const e = l`
484
- <luzmo-menu
485
- aria-labelledby="applied-label"
486
- @change=${this.handleChange}
487
- id="menu"
488
- @keydown=${{
489
- handleEvent: this.handleEnterKeydown,
490
- capture: !0
491
- }}
492
- @scroll=${this.onScroll}
493
- role=${this.listRole}
494
- .selects=${this.selects}
495
- .selected=${this.value ? [this.value] : []}
496
- size=${this.size}
497
- @luzmo-menu-item-added-or-updated=${this.shouldManageSelection}
498
- >
499
- <slot @slotchange=${this.shouldScheduleManageSelection}></slot>
500
- </luzmo-menu>
501
- `;
502
- return this.hasRenderedOverlay = this.hasRenderedOverlay || this.focused || this.open || !!this.deprecatedMenu, this.hasRenderedOverlay ? (this.dependencyManager.loaded && this.dependencyManager.add("luzmo-overlay"), this.renderOverlay(e)) : e;
503
- }
504
- shouldScheduleManageSelection(e) {
505
- !this.willManageSelection && (!e || e.target.getRootNode().host === this) && (this.willManageSelection = !0, requestAnimationFrame(() => {
506
- requestAnimationFrame(() => {
507
- this.manageSelection();
508
- });
509
- }));
510
- }
511
- shouldManageSelection() {
512
- this.willManageSelection || (this.willManageSelection = !0, this.manageSelection());
513
- }
514
- async manageSelection() {
515
- if (this.selects == null)
516
- return;
517
- this.selectionPromise = new Promise(
518
- (o) => this.selectionResolver = o
519
- );
520
- let e;
521
- await this.optionsMenu.updateComplete, this.recentlyConnected && (await new Promise((o) => requestAnimationFrame(() => o(!0))), this.recentlyConnected = !1), this.menuItems.forEach((o) => {
522
- this.value === o.value && !o.disabled ? e = o : o.selected = !1;
523
- }), e ? (e.selected = !!this.selects, this.selectedItem = e) : (this.value = "", this.selectedItem = void 0), this.open && (await this.optionsMenu.updateComplete, this.optionsMenu.updateSelectedItemIndex()), this.selectionResolver(), this.willManageSelection = !1;
524
- }
525
- async getUpdateComplete() {
526
- const e = await super.getUpdateComplete();
527
- return await this.selectionPromise, e;
528
- }
529
- onScroll() {
530
- this.dispatchEvent(
531
- new Event("scroll", {
532
- cancelable: !0,
533
- composed: !0
534
- })
535
- );
536
- }
537
- }
538
- i([
539
- v()
540
- ], t.prototype, "appliedLabel", 2);
541
- i([
542
- b("#button")
543
- ], t.prototype, "button", 2);
544
- i([
545
- s({ type: Boolean, reflect: !0 })
546
- ], t.prototype, "disabled", 2);
547
- i([
548
- s({ type: Boolean, reflect: !0 })
549
- ], t.prototype, "focused", 2);
550
- i([
551
- s({ type: String, reflect: !0 })
552
- ], t.prototype, "icons", 2);
553
- i([
554
- s({ type: String, reflect: !0 })
555
- ], t.prototype, "variant", 2);
556
- i([
557
- s({ type: Boolean, reflect: !0 })
558
- ], t.prototype, "invalid", 2);
559
- i([
560
- s({ type: Boolean, reflect: !0 })
561
- ], t.prototype, "pending", 2);
562
- i([
563
- s({ type: String, attribute: "pending-label" })
564
- ], t.prototype, "pendingLabel", 2);
565
- i([
566
- s()
567
- ], t.prototype, "label", 2);
568
- i([
569
- s({ type: Boolean, reflect: !0 })
570
- ], t.prototype, "open", 2);
571
- i([
572
- s({ type: Boolean, reflect: !0 })
573
- ], t.prototype, "readonly", 2);
574
- i([
575
- v()
576
- ], t.prototype, "labelAlignment", 2);
577
- i([
578
- b("luzmo-menu")
579
- ], t.prototype, "optionsMenu", 2);
580
- i([
581
- b("luzmo-overlay")
582
- ], t.prototype, "overlayElement", 2);
583
- i([
584
- s()
585
- ], t.prototype, "placement", 2);
586
- i([
587
- s({ type: Boolean, reflect: !0 })
588
- ], t.prototype, "quiet", 2);
589
- i([
590
- s({ type: String })
591
- ], t.prototype, "value", 2);
592
- i([
593
- s({ attribute: !1 })
594
- ], t.prototype, "selectedItem", 1);
595
- i([
596
- v()
597
- ], t.prototype, "selectedItemContent", 1);
598
- class te extends t {
599
- constructor() {
600
- super(...arguments), this.handleKeydown = (e) => {
601
- const { code: o } = e;
602
- if (this.focused = !0, !o.startsWith("Arrow") || this.readonly || this.pending)
603
- return;
604
- if (o === "ArrowUp" || o === "ArrowDown") {
605
- this.toggle(!0), e.preventDefault();
606
- return;
607
- }
608
- e.preventDefault();
609
- const r = this.selectedItem ? this.menuItems.indexOf(this.selectedItem) : -1, n = r < 0 || o === "ArrowRight" ? 1 : -1;
610
- let a = r + n;
611
- for (; this.menuItems[a] && this.menuItems[a].disabled; )
612
- a += n;
613
- !this.menuItems[a] || this.menuItems[a].disabled || (!this.value || a !== r) && this.setValueFromItem(this.menuItems[a]);
614
- };
615
- }
616
- static get styles() {
617
- return [x(O)];
618
- }
619
- get containerStyles() {
620
- const e = super.containerStyles;
621
- return this.quiet || (e["min-width"] = `${this.offsetWidth}px`), e;
622
- }
623
- }
624
187
  export {
625
- z as D,
626
- t as L,
627
- te as a
188
+ u as I,
189
+ p as M,
190
+ v as p,
191
+ h as s
628
192
  };