@luzmo/lucero 1.0.1-alpha.38 → 1.0.1-alpha.39
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/components/select/index.cjs +12 -12
- package/components/select/index.js +31 -31
- package/package.json +1 -1
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
16
16
|
* SOFTWARE.
|
|
17
17
|
* */
|
|
18
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("@lit-labs/virtualizer");const v=require("@luzmo/icons"),c=require("lit"),s=require("lit/decorators.js"),D=require("lit/directives/class-map.js"),f=require("lit/directives/if-defined.js"),z=require("../strategies-CNgBb6dM.cjs"),B=require("../focusable-CbVKgGfS.cjs"),T=require("../dependency-manger-uthev62E.cjs"),A=require("../pending-state-DQctFHI8.cjs"),F=require("../sized-mixin-DcvJLFeo.cjs");require("../icon/index.cjs");const V=require("../options/index.cjs");require("../overlay/index.cjs");require("../popover/index.cjs");require("../progress-circle/index.cjs");require("../tooltip/index.cjs");const N=(d,e)=>{let o=getComputedStyle(d).getPropertyValue(e);for(;!o&&d.parentElement;)d=d.parentElement,o=getComputedStyle(d).getPropertyValue(e);return o.trim()},R=':host{font-family:var(--luzmo-select-font-family, var(--select-font-family));font-size:var(--luzmo-select-font-size, var(--select-font-size))}#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-select-spacing-text-to-icon, var(--select-spacing-text-to-icon));font-size:var(--luzmo-select-font-size, var(--select-font-size))}@media (forced-colors: active){:host{--highcontrast-select-focus-indicator-color: Highlight;--highcontrast-select-border-color-default: ButtonBorder;--highcontrast-select-border-color-hover: Highlight;--highcontrast-select-border-color-disabled: GrayText;--highcontrast-select-content-color-default: ButtonText;--highcontrast-select-content-color-disabled: GrayText;--highcontrast-select-background-color: ButtonFace}#button:focus-visible{--highcontrast-select-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(--select-minimum-width-multiplier) * var(--luzmo-select-button-block-size, var(--select-button-block-size)));block-size:var(--luzmo-select-button-block-size, var(--select-button-block-size));border-width:var(--luzmo-select-button-border-width, var(--select-button-border-width));border-radius:var(--luzmo-select-button-border-radius, var(--select-button-border-radius));box-shadow:var(--luzmo-select-button-box-shadow, var(--select-button-box-shadow));transition:background-color var(--luzmo-select-animation-duration, var(--select-animation-duration)),box-shadow var(--luzmo-select-animation-duration, var(--select-animation-duration)),border-color var(--luzmo-select-animation-duration, var(--select-animation-duration)) ease-in-out;color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-default, var(--select-background-color-default)));border-style:solid;border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-default, var(--select-border-color-default)));margin-block-start:var(--luzmo-select-spacing-label-to-select, var(--select-spacing-label-to-select));padding-block:0;padding-inline-start:var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content));padding-inline-end:var(--luzmo-select-spacing-edge-to-disclosure-icon, var(--select-spacing-edge-to-disclosure-icon));display:flex}#button:after{pointer-events:none;content:"";block-size:calc(100% + var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) * 2 + var(--luzmo-select-button-border-width, var(--select-button-border-width)) * 2);inline-size:calc(100% + var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) * 2 + var(--luzmo-select-button-border-width, var(--select-button-border-width)) * 2);border-style:solid;border-width:var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width));border-radius:calc(var(--luzmo-select-button-border-radius, var(--select-button-border-radius)) + var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-button-border-width, var(--select-button-border-width)));border-color:#0000;margin-block-start:calc((var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width)) + var(--luzmo-select-button-border-width, var(--select-button-border-width))) * -1);margin-inline-start:calc((var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width)) + var(--luzmo-select-button-border-width, var(--select-button-border-width))) * -1);position:absolute;inset-block:0;inset-inline:0}#button:active{background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-active, var(--select-background-color-active)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-active, var(--select-border-color-active)))}#button:active:after{border-color:#0000}#button.placeholder:active .label{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-active, var(--select-font-color-active)))}#button:focus-visible{background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-key-focus, var(--select-background-color-key-focus)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-key-focus, var(--select-border-color-key-focus)));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-key-focus, var(--select-font-color-key-focus)));outline:none}#button:focus-visible:after{border-color:var(--highcontrast-select-focus-indicator-color, var(--luzmo-select-focus-indicator-color, var(--select-focus-indicator-color)))}#button.placeholder:focus-visible{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-key-focus, var(--select-font-color-key-focus)))}#button:focus-visible .disclosure-icon,#button:focus-visible .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-key-focus, var(--select-icon-color-key-focus)))}:host([open]) #button:not(:disabled,.is-disabled){color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default-open, var(--select-font-color-default-open)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-default-open, var(--select-background-color-default-open)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-default-open, var(--select-border-color-default-open)))}:host([open]) #button:not(:disabled,.is-disabled) .disclosure-icon,:host([open]) #button:not(:disabled,.is-disabled) .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-default-open, var(--select-icon-color-default-open)))}:host([invalid]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-default, var(--select-border-color-error-default)))}:host([invalid]) #button:not(:disabled,.is-disabled) .validation-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-error, var(--select-icon-color-error)))}:host([invalid]) #button:not(:disabled,.is-disabled):active{border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-active, var(--select-border-color-error-active)))}:host([invalid][open]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-default-open, var(--select-border-color-error-default-open)))}:host([invalid]) #button:not(:disabled,.is-disabled):focus-visible{border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-key-focus, var(--select-border-color-error-key-focus)))}:host([pending]) #button .disclosure-icon,:host([pending]) #button .clear-icon{color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-icon-color-disabled, var(--select-icon-color-disabled)))}.icon{flex-shrink:0}.label{white-space:nowrap;font-size:var(--luzmo-select-font-size, var(--select-font-size));line-height:var(--luzmo-select-button-line-height, var(--select-button-line-height));font-weight:var(--luzmo-select-font-weight, var(--select-font-weight));text-overflow:ellipsis;text-align:start;flex:auto;overflow:hidden}.label.placeholder{font-weight:var(--luzmo-select-placeholder-font-weight, var(--select-font-weight));font-style:var(--luzmo-select-placeholder-font-style, var(--select-placeholder-font-style));transition:color var(--luzmo-select-animation-duration, var(--select-animation-duration)) ease-in-out;color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)))}.label.placeholder:active{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-active, var(--select-font-color-active)))}.clear-icon,.disclosure-icon{vertical-align:top;transition:color var(--luzmo-select-animation-duration, var(--select-animation-duration)) ease-out;color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-default, var(--select-icon-color-default)));flex-shrink:0;display:inline-block;position:relative}.disclosure-icon{margin-inline-start:var(--luzmo-select-spacing-icon-to-disclosure-icon, var(--select-spacing-icon-to-disclosure-icon))}.clear-icon{margin-inline-start:var(--luzmo-select-spacing-icon-to-clear-icon, var(--select-spacing-icon-to-clear-icon))}.disclosure-icon:active{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-active, var(--select-icon-color-active)))}luzmo-progress-circle,.validation-icon{margin-inline-start:var(--luzmo-select-spacing-text-to-icon, var(--select-spacing-text-to-icon))}.icon-container{display:flex;position:relative;height:100%;align-items:center;font-size:var(--luzmo-select-disclosure-icon-size, var(--select-disclosure-icon-size))}.icon-container.disclosure-icon{margin-inline-end:0}.label~.disclosure-icon,.label~.clear-icon{margin-inline-start:var(--luzmo-select-spacing-text-to-icon, var(--select-spacing-text-to-icon))}:host([quiet]) #button{inline-size:auto;min-inline-size:0;padding-inline:var(--luzmo-select-inline-edge-to-content-quiet, var(--select-inline-edge-to-content-quiet));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)));background-color:initial;background-color:var(--highcontrast-select-background-color, transparent);border:none;border-radius:0;box-shadow:none;margin-block-start:calc(var(--luzmo-select-spacing-label-to-select-quiet, var(--select-spacing-label-to-select-quiet)) + 1px)}:host([quiet]) #button.label-inline{margin-block-start:0}:host([quiet]) #button .disclosure-icon{margin-inline-end:var(--luzmo-select-spacing-edge-to-disclosure-icon-quiet, var(--select-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-select-content-color-default, var(--luzmo-select-font-color-hover, var(--select-font-color-hover)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-hover, var(--select-background-color-hover)));border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-hover, var(--select-border-color-hover)))}#button:hover .disclosure-icon,#button:hover .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-hover, var(--select-icon-color-hover)))}#button:hover .clear-icon:hover{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-clear-icon-color-hover, var(--select-icon-color-focus)))}:host([open]):not([quiet]) #button:not(:disabled,.is-disabled):hover{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-hover-open, var(--select-font-color-hover-open)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-hover-open, var(--select-background-color-hover-open)));border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-hover-open, var(--select-border-color-hover-open)))}:host([open]) #button:not(:disabled,.is-disabled):hover .disclosure-icon,:host([open]) #button:not(:disabled,.is-disabled):hover .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-hover-open, var(--select-icon-color-hover-open)))}:host([invalid]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-error-hover, var(--select-border-color-error-hover)))}:host([invalid][open]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-error-hover-open, var(--select-border-color-error-hover-open)))}.label.placeholder:hover{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-hover, var(--select-font-color-hover)))}:host([quiet]) #button:hover{background-color:initial;background-color:var(--highcontrast-select-background-color, transparent)!important}}:host([quiet]) #button:focus-visible{background-color:initial;background-color:var(--highcontrast-select-background-color, transparent)}:host([quiet]) #button:focus-visible:after{box-shadow:0 var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width)) 0 0 var(--highcontrast-select-focus-indicator-color, var(--luzmo-select-focus-indicator-color, var(--select-focus-indicator-color)));margin:calc((var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-button-border-width, var(--select-button-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-select-background-color, transparent)}.label-inline{vertical-align:top;display:inline-flex}:host([disabled]) #button,#button:disabled{cursor:default;background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-disabled, var(--select-background-color-disabled)));border-color:#0000;border-color:var(--highcontrast-select-border-color-disabled, transparent);color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-font-color-disabled, var(--select-font-color-disabled)))}:host([disabled]) #button .icon,:host([disabled]) #button .disclosure-icon,:host([disabled]) #button .clear-icon,:host([disabled]) #button .validation-icon,#button:disabled .icon,#button:disabled .disclosure-icon,#button:disabled .clear-icon,#button:disabled .validation-icon{color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-icon-color-disabled, var(--select-icon-color-disabled)))}:host([disabled]) #button .label.placeholder,#button:disabled .label.placeholder{color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-font-color-disabled, var(--select-font-color-disabled)))}#popover{max-width:var(--luzmo-select-popover-max-width, var(--select-popover-max-width));min-width:var(--luzmo-select-popover-min-width, var(--select-popover-min-width));width:var(--luzmo-select-popover-width, var(--select-popover-width))}#popover.search-on{padding:0 0 var(--luzmo-popover-content-area-spacing-vertical, var(--popover-content-area-spacing-vertical)) 0!important}#search-container{flex:0 0 auto;display:flex;position:relative;border-bottom:var(--luzmo-select-search-container-border-bottom-width, var(--select-search-container-border-bottom-width)) solid var(--luzmo-select-search-container-border-bottom-color, var(--select-search-container-border-bottom-color))}#search-icon{position:absolute;left:var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content));color:var(--luzmo-select-search-icon-color, var(--select-search-icon-color));font-size:var(--luzmo-select-search-icon-height, var(--select-search-icon-height));width:var(--luzmo-select-search-icon-width, var(--select-search-icon-width));text-align:center;display:flex;align-items:center;justify-content:center;top:0;bottom:0;pointer-events:none}#search:focus-within+#search-icon,#search:focus+#search-icon{color:var(--luzmo-select-search-icon-color-focus, var(--select-search-icon-color-focus))}#search{width:100%;box-sizing:border-box;border-top-left-radius:var(--luzmo-popover-corner-radius, var(--popover-corner-radius));border-top-right-radius:var(--luzmo-popover-corner-radius, var(--popover-corner-radius));background-color:var(--luzmo-select-search-background-color, var(--select-search-background-color));color:var(--luzmo-select-search-color, var(--select-search-color));height:var(--luzmo-select-button-block-size, var(--select-button-block-size));line-height:var(--luzmo-select-button-block-size, var(--select-button-block-size));padding-left:calc(var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content)) + var(--luzmo-select-spacing-search-icon-to-text, var(--select-spacing-search-icon-to-text)) + var(--luzmo-select-search-icon-width, var(--select-search-icon-width)));padding-right:var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content));font-size:var(--luzmo-select-font-size, var(--select-font-size));font-family:var(--luzmo-select-font-family, var(--select-font-family));line-height:var(--luzmo-select-button-line-height, var(--select-button-line-height));font-weight:var(--luzmo-select-font-weight, var(--select-font-weight));border:var(--luzmo-select-search-input-border-bottom-width, var(--select-search-input-border-bottom-width)) solid var(--luzmo-select-search-input-border-bottom-color, var(--select-search-input-border-bottom-color));outline:none}#no-results{color:var(--luzmo-select-no-results-color, var(--select-no-results-color));font-style:var(--luzmo-select-no-results-font-style, var(--select-no-results-font-style));height:var(--luzmo-select-no-results-height, var(--select-no-results-height));padding-inline:var(--luzmo-select-no-results-spacing-edge-to-text, var(--select-no-results-spacing-edge-to-text));display:flex;align-items:center}:host{--select-popover-max-width: 300px;--select-popover-min-width: 160px;--select-font-family: var(--luzmo-font-family);--select-font-size: var(--luzmo-font-size);--select-font-weight: var(--luzmo-font-weight);--select-spacing-search-icon-to-text: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-search-icon-height: var(--luzmo-font-size);--select-search-icon-width: var(--luzmo-font-size);--select-search-icon-color: var(--luzmo-disabled-color);--select-search-icon-color-focus: var(--luzmo-font-color);--select-search-color: var(--luzmo-font-color);--select-search-background-color: var(--luzmo-background-color);--select-search-container-border-bottom-width: var(--luzmo-border-width);--select-search-container-border-bottom-color: var(--luzmo-border-color);--select-search-input-border-bottom-width: var(--luzmo-border-width);--select-search-input-border-bottom-color: transparent;--select-background-color-default: var(--luzmo-background-color);--select-background-color-default-open: var(--luzmo-background-color-hover);--select-background-color-active: var(--luzmo-background-color-down);--select-background-color-hover: var(--luzmo-background-color-hover);--select-background-color-hover-open: var(--luzmo-background-color-down);--select-background-color-key-focus: var(--luzmo-background-color-down);--select-border-color-default: var(--luzmo-border-color);--select-border-color-default-open: var(--luzmo-border-color-hover);--select-border-color-hover: var(--luzmo-border-color);--select-border-color-hover-open: var(--luzmo-border-color-hover);--select-border-color-active: var(--luzmo-border-color);--select-border-color-key-focus: var(--luzmo-border-color);--select-button-border-width: var(--luzmo-border-width);--select-placeholder-font-style: var(--luzmo-font-style);--select-button-line-height: var(--luzmo-line-height);--select-button-box-shadow: 0px 1px 3px 0px rgba(var(--luzmo-border-color-rgb), .06);--select-button-block-size: var(--luzmo-component-height);--select-button-border-radius: var(--luzmo-border-radius);--select-button-border-radius-reset: 0;--select-inline-edge-to-content: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-icon-to-clear-icon: var( --select-spacing-icon-to-disclosure-icon );--select-inline-edge-to-content-quiet: 0px;--select-spacing-label-to-select: 0px;--select-spacing-label-to-select-quiet: calc( -1 * var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-edge-to-disclosure-icon-quiet: 0px;--select-animation-duration: var(--luzmo-animation-duration);--select-font-color-default: var(--luzmo-font-color);--select-font-color-default-open: var(--luzmo-font-color-hover);--select-font-color-hover: var(--luzmo-font-color-hover);--select-font-color-hover-open: var(--luzmo-font-color-down);--select-font-color-active: var(--luzmo-font-color-focus);--select-font-color-key-focus: var(--luzmo-font-color-focus);--select-icon-color-default: var(--luzmo-font-color);--select-icon-color-default-open: var(--luzmo-font-color-hover);--select-icon-color-hover: var(--luzmo-font-color-hover);--select-icon-color-hover-open: var(--luzmo-font-color-hover);--select-icon-color-active: var(--luzmo-font-color-focus);--select-icon-color-key-focus: var(--luzmo-font-color-focus);--select-border-color-error-default: var(--luzmo-negative-color);--select-border-color-error-default-open: var(--luzmo-negative-color-down);--select-border-color-error-hover: var(--luzmo-negative-color-hover);--select-border-color-error-hover-open: var(--luzmo-negative-color-down);--select-border-color-error-active: var(--luzmo-negative-color-down);--select-border-color-error-key-focus: var(--luzmo-negative-color-focus);--select-icon-color-error: var(--luzmo-negative-color);--select-background-color-disabled: var(--luzmo-background-color-disabled);--select-font-color-disabled: var(--luzmo-disabled-color);--select-icon-color-disabled: var(--luzmo-disabled-color);--select-focus-indicator-gap: var(--luzmo-indicator-gap);--select-focus-indicator-width: var(--luzmo-indicator-width);--select-focus-indicator-color: var(--luzmo-indicator-color);--select-disclosure-icon-size: var(--luzmo-font-size-s);--select-no-results-height: var(--select-button-block-size);--select-no-results-color: var(--select-font-color-disabled);--select-no-results-font-style: italic;--select-no-results-spacing-edge-to-text: var( --select-inline-edge-to-content )}:host([size=s]){--select-button-block-size: var(--luzmo-component-height-s);--select-font-size: var(--luzmo-font-size-s);--select-search-icon-height: var(--luzmo-font-size-s);--select-search-icon-width: var(--luzmo-font-size-s);--select-popover-max-width: 280px;--select-popover-min-width: 140px;--select-spacing-search-icon-to-text: var(--luzmo-spacing-3);--select-inline-edge-to-content: var(--luzmo-spacing-3);--select-spacing-text-to-icon: var(--luzmo-spacing-3);--select-spacing-text-to-icon-inline-end: var(--luzmo-spacing-3);--select-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-3);--select-spacing-label-to-select-quiet: calc(-1 * var(--luzmo-spacing-3));--select-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-3);--select-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=l]){--select-button-block-size: var(--luzmo-component-height-l);--select-font-size: var(--luzmo-font-size-l);--select-search-icon-height: var(--luzmo-font-size-l);--select-search-icon-width: var(--luzmo-font-size-l);--select-popover-max-width: 360px;--select-popover-min-width: 220px;--select-spacing-search-icon-to-text: var(--luzmo-spacing-4);--select-inline-edge-to-content: var(--luzmo-spacing-4);--select-spacing-text-to-icon: var(--luzmo-spacing-4);--select-spacing-text-to-icon-inline-end: var(--luzmo-spacing-4);--select-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-4);--select-spacing-label-to-select-quiet: calc(-1 * var(--luzmo-spacing-4));--select-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-4);--select-disclosure-icon-size: var(--luzmo-font-size)}:host([size=xl]){--select-button-block-size: var(--luzmo-component-height-xl);--select-font-size: var(--luzmo-font-size-xl);--select-search-icon-height: var(--luzmo-font-size-xl);--select-search-icon-width: var(--luzmo-font-size-xl);--select-popover-max-width: 400px;--select-popover-min-width: 260px;--select-spacing-search-icon-to-text: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-inline-edge-to-content: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-label-to-select-quiet: calc( -1 * var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-disclosure-icon-size: var(--luzmo-font-size-l)}:host([variant=highlight]) ::slotted(luzmo-option[selected]){--option-highlight-label-content-color: var(--luzmo-primary-inverse-color);--option-label-icon-color-default: var(--luzmo-primary-inverse-color);--menu-checkmark-display: var(--menu-checkmark-display-hidden);padding-inline-start:var(--luzmo-option-label-inline-edge-to-content, var(--option-label-inline-edge-to-content));background-color:var(--luzmo-option-highlight-label-background-color, var(--option-highlight-label-background-color, var(--luzmo-border-color)))}:host{display:inline-flex;vertical-align:top;max-inline-size:100%;inline-size:var(--luzmo-select-inline-size, var(--select-inline-size));min-inline-size:calc(var(--select-minimum-width-multiplier) * var(--luzmo-select-block-size, var(--select-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}.validation-icon{flex-shrink:0}luzmo-overlay{pointer-events:none}luzmo-options{pointer-events:initial}:host>#no-results,:host>luzmo-options{display:none}:host([focused]:not([quiet])) #button #label.placeholder{color:var(--select-placeholder-text-color-key-focus, var(--alias-placeholder-text-color-hover))}.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-select-background-color, var(--luzmo-select-background-color-default, var(--select-background-color-default)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-default, var(--select-border-color-default)));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-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-select-background-color, var(--luzmo-select-background-color-default, var(--select-background-color-default)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-default, var(--select-border-color-default)));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)))}';var K=Object.defineProperty,a=(d,e,o,l)=>{for(var i=void 0,t=d.length-1,n;t>=0;t--)(n=d[t])&&(i=n(e,o,i)||i);return i&&K(e,o,i),i};const W=()=>c.html`
|
|
18
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("@lit-labs/virtualizer");const v=require("@luzmo/icons"),c=require("lit"),s=require("lit/decorators.js"),D=require("lit/directives/class-map.js"),f=require("lit/directives/if-defined.js"),z=require("../strategies-CNgBb6dM.cjs"),B=require("../focusable-CbVKgGfS.cjs"),T=require("../dependency-manger-uthev62E.cjs"),A=require("../pending-state-DQctFHI8.cjs"),F=require("../sized-mixin-DcvJLFeo.cjs");require("../icon/index.cjs");const V=require("../options/index.cjs");require("../overlay/index.cjs");require("../popover/index.cjs");require("../progress-circle/index.cjs");require("../tooltip/index.cjs");const N=(u,e)=>{let o=getComputedStyle(u).getPropertyValue(e);for(;!o&&u.parentElement;)u=u.parentElement,o=getComputedStyle(u).getPropertyValue(e);return o.trim()},R=':host{font-family:var(--luzmo-select-font-family, var(--select-font-family));font-size:var(--luzmo-select-font-size, var(--select-font-size))}#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-select-spacing-text-to-icon, var(--select-spacing-text-to-icon));font-size:var(--luzmo-select-font-size, var(--select-font-size))}@media (forced-colors: active){:host{--highcontrast-select-focus-indicator-color: Highlight;--highcontrast-select-border-color-default: ButtonBorder;--highcontrast-select-border-color-hover: Highlight;--highcontrast-select-border-color-disabled: GrayText;--highcontrast-select-content-color-default: ButtonText;--highcontrast-select-content-color-disabled: GrayText;--highcontrast-select-background-color: ButtonFace}#button:focus-visible{--highcontrast-select-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(--select-minimum-width-multiplier) * var(--luzmo-select-button-block-size, var(--select-button-block-size)));block-size:var(--luzmo-select-button-block-size, var(--select-button-block-size));border-width:var(--luzmo-select-button-border-width, var(--select-button-border-width));border-radius:var(--luzmo-select-button-border-radius, var(--select-button-border-radius));box-shadow:var(--luzmo-select-button-box-shadow, var(--select-button-box-shadow));transition:background-color var(--luzmo-select-animation-duration, var(--select-animation-duration)),box-shadow var(--luzmo-select-animation-duration, var(--select-animation-duration)),border-color var(--luzmo-select-animation-duration, var(--select-animation-duration)) ease-in-out;color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-default, var(--select-background-color-default)));border-style:solid;border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-default, var(--select-border-color-default)));margin-block-start:var(--luzmo-select-spacing-label-to-select, var(--select-spacing-label-to-select));padding-block:0;padding-inline-start:var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content));padding-inline-end:var(--luzmo-select-spacing-edge-to-disclosure-icon, var(--select-spacing-edge-to-disclosure-icon));display:flex}#button:after{pointer-events:none;content:"";block-size:calc(100% + var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) * 2 + var(--luzmo-select-button-border-width, var(--select-button-border-width)) * 2);inline-size:calc(100% + var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) * 2 + var(--luzmo-select-button-border-width, var(--select-button-border-width)) * 2);border-style:solid;border-width:var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width));border-radius:calc(var(--luzmo-select-button-border-radius, var(--select-button-border-radius)) + var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-button-border-width, var(--select-button-border-width)));border-color:#0000;margin-block-start:calc((var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width)) + var(--luzmo-select-button-border-width, var(--select-button-border-width))) * -1);margin-inline-start:calc((var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width)) + var(--luzmo-select-button-border-width, var(--select-button-border-width))) * -1);position:absolute;inset-block:0;inset-inline:0}#button:active{background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-active, var(--select-background-color-active)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-active, var(--select-border-color-active)))}#button:active:after{border-color:#0000}#button.placeholder:active .label{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-active, var(--select-font-color-active)))}#button:focus-visible{background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-key-focus, var(--select-background-color-key-focus)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-key-focus, var(--select-border-color-key-focus)));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-key-focus, var(--select-font-color-key-focus)));outline:none}#button:focus-visible:after{border-color:var(--highcontrast-select-focus-indicator-color, var(--luzmo-select-focus-indicator-color, var(--select-focus-indicator-color)))}#button.placeholder:focus-visible{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-key-focus, var(--select-font-color-key-focus)))}#button:focus-visible .disclosure-icon,#button:focus-visible .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-key-focus, var(--select-icon-color-key-focus)))}:host([open]) #button:not(:disabled,.is-disabled){color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default-open, var(--select-font-color-default-open)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-default-open, var(--select-background-color-default-open)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-default-open, var(--select-border-color-default-open)))}:host([open]) #button:not(:disabled,.is-disabled) .disclosure-icon,:host([open]) #button:not(:disabled,.is-disabled) .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-default-open, var(--select-icon-color-default-open)))}:host([invalid]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-default, var(--select-border-color-error-default)))}:host([invalid]) #button:not(:disabled,.is-disabled) .validation-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-error, var(--select-icon-color-error)))}:host([invalid]) #button:not(:disabled,.is-disabled):active{border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-active, var(--select-border-color-error-active)))}:host([invalid][open]) #button:not(:disabled,.is-disabled){border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-default-open, var(--select-border-color-error-default-open)))}:host([invalid]) #button:not(:disabled,.is-disabled):focus-visible{border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-error-key-focus, var(--select-border-color-error-key-focus)))}:host([pending]) #button .disclosure-icon,:host([pending]) #button .clear-icon{color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-icon-color-disabled, var(--select-icon-color-disabled)))}.icon{flex-shrink:0}.label{white-space:nowrap;font-size:var(--luzmo-select-font-size, var(--select-font-size));line-height:var(--luzmo-select-button-line-height, var(--select-button-line-height));font-weight:var(--luzmo-select-font-weight, var(--select-font-weight));text-overflow:ellipsis;text-align:start;flex:auto;overflow:hidden}.label.placeholder{font-weight:var(--luzmo-select-placeholder-font-weight, var(--select-font-weight));font-style:var(--luzmo-select-placeholder-font-style, var(--select-placeholder-font-style));transition:color var(--luzmo-select-animation-duration, var(--select-animation-duration)) ease-in-out;color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)))}.label.placeholder:active{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-active, var(--select-font-color-active)))}.clear-icon,.disclosure-icon{vertical-align:top;transition:color var(--luzmo-select-animation-duration, var(--select-animation-duration)) ease-out;color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-default, var(--select-icon-color-default)));flex-shrink:0;display:inline-block;position:relative}.disclosure-icon{margin-inline-start:var(--luzmo-select-spacing-icon-to-disclosure-icon, var(--select-spacing-icon-to-disclosure-icon))}.clear-icon{margin-inline-start:var(--luzmo-select-spacing-icon-to-clear-icon, var(--select-spacing-icon-to-clear-icon))}.disclosure-icon:active{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-active, var(--select-icon-color-active)))}luzmo-progress-circle,.validation-icon{margin-inline-start:var(--luzmo-select-spacing-text-to-icon, var(--select-spacing-text-to-icon))}.icon-container{display:flex;position:relative;height:100%;align-items:center;font-size:var(--luzmo-select-disclosure-icon-size, var(--select-disclosure-icon-size))}.icon-container.disclosure-icon{margin-inline-end:0}.label~.disclosure-icon,.label~.clear-icon{margin-inline-start:var(--luzmo-select-spacing-text-to-icon, var(--select-spacing-text-to-icon))}:host([quiet]) #button{inline-size:auto;min-inline-size:0;padding-inline:var(--luzmo-select-inline-edge-to-content-quiet, var(--select-inline-edge-to-content-quiet));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)));background-color:initial;background-color:var(--highcontrast-select-background-color, transparent);border:none;border-radius:0;box-shadow:none;margin-block-start:calc(var(--luzmo-select-spacing-label-to-select-quiet, var(--select-spacing-label-to-select-quiet)) + 1px)}:host([quiet]) #button.label-inline{margin-block-start:0}:host([quiet]) #button .disclosure-icon{margin-inline-end:var(--luzmo-select-spacing-edge-to-disclosure-icon-quiet, var(--select-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-select-content-color-default, var(--luzmo-select-font-color-hover, var(--select-font-color-hover)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-hover, var(--select-background-color-hover)));border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-hover, var(--select-border-color-hover)))}#button:hover .disclosure-icon,#button:hover .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-hover, var(--select-icon-color-hover)))}#button:hover .clear-icon:hover{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-clear-icon-color-hover, var(--select-icon-color-focus)))}:host([open]):not([quiet]) #button:not(:disabled,.is-disabled):hover{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-hover-open, var(--select-font-color-hover-open)));background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-hover-open, var(--select-background-color-hover-open)));border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-hover-open, var(--select-border-color-hover-open)))}:host([open]) #button:not(:disabled,.is-disabled):hover .disclosure-icon,:host([open]) #button:not(:disabled,.is-disabled):hover .clear-icon{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-icon-color-hover-open, var(--select-icon-color-hover-open)))}:host([invalid]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-error-hover, var(--select-border-color-error-hover)))}:host([invalid][open]) #button:not(:disabled,.is-disabled):hover{border-color:var(--highcontrast-select-border-color-hover, var(--luzmo-select-border-color-error-hover-open, var(--select-border-color-error-hover-open)))}.label.placeholder:hover{color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-hover, var(--select-font-color-hover)))}:host([quiet]) #button:hover{background-color:initial;background-color:var(--highcontrast-select-background-color, transparent)!important}}:host([quiet]) #button:focus-visible{background-color:initial;background-color:var(--highcontrast-select-background-color, transparent)}:host([quiet]) #button:focus-visible:after{box-shadow:0 var(--luzmo-select-focus-indicator-width, var(--select-focus-indicator-width)) 0 0 var(--highcontrast-select-focus-indicator-color, var(--luzmo-select-focus-indicator-color, var(--select-focus-indicator-color)));margin:calc((var(--luzmo-select-focus-indicator-gap, var(--select-focus-indicator-gap)) + var(--luzmo-select-button-border-width, var(--select-button-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-select-background-color, transparent)}.label-inline{vertical-align:top;display:inline-flex}:host([disabled]) #button,#button:disabled{cursor:default;background-color:var(--highcontrast-select-background-color, var(--luzmo-select-background-color-disabled, var(--select-background-color-disabled)));border-color:#0000;border-color:var(--highcontrast-select-border-color-disabled, transparent);color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-font-color-disabled, var(--select-font-color-disabled)))}:host([disabled]) #button .icon,:host([disabled]) #button .disclosure-icon,:host([disabled]) #button .clear-icon,:host([disabled]) #button .validation-icon,#button:disabled .icon,#button:disabled .disclosure-icon,#button:disabled .clear-icon,#button:disabled .validation-icon{color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-icon-color-disabled, var(--select-icon-color-disabled)))}:host([disabled]) #button .label.placeholder,#button:disabled .label.placeholder{color:var(--highcontrast-select-content-color-disabled, var(--luzmo-select-font-color-disabled, var(--select-font-color-disabled)))}#popover{max-width:var(--luzmo-select-popover-max-width, var(--select-popover-max-width));min-width:var(--luzmo-select-popover-min-width, var(--select-popover-min-width));width:var(--luzmo-select-popover-width, var(--select-popover-width))}#popover.search-on{padding:0 0 var(--luzmo-popover-content-area-spacing-vertical, var(--popover-content-area-spacing-vertical)) 0!important}#search-container{flex:0 0 auto;display:flex;position:relative;border-bottom:var(--luzmo-select-search-container-border-bottom-width, var(--select-search-container-border-bottom-width)) solid var(--luzmo-select-search-container-border-bottom-color, var(--select-search-container-border-bottom-color))}#search-icon{position:absolute;left:var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content));color:var(--luzmo-select-search-icon-color, var(--select-search-icon-color));font-size:var(--luzmo-select-search-icon-height, var(--select-search-icon-height));width:var(--luzmo-select-search-icon-width, var(--select-search-icon-width));text-align:center;display:flex;align-items:center;justify-content:center;top:0;bottom:0;pointer-events:none}#search:focus-within+#search-icon,#search:focus+#search-icon{color:var(--luzmo-select-search-icon-color-focus, var(--select-search-icon-color-focus))}#search{width:100%;box-sizing:border-box;border-top-left-radius:var(--luzmo-popover-corner-radius, var(--popover-corner-radius));border-top-right-radius:var(--luzmo-popover-corner-radius, var(--popover-corner-radius));background-color:var(--luzmo-select-search-background-color, var(--select-search-background-color));color:var(--luzmo-select-search-color, var(--select-search-color));height:var(--luzmo-select-button-block-size, var(--select-button-block-size));line-height:var(--luzmo-select-button-block-size, var(--select-button-block-size));padding-left:calc(var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content)) + var(--luzmo-select-spacing-search-icon-to-text, var(--select-spacing-search-icon-to-text)) + var(--luzmo-select-search-icon-width, var(--select-search-icon-width)));padding-right:var(--luzmo-select-inline-edge-to-content, var(--select-inline-edge-to-content));font-size:var(--luzmo-select-font-size, var(--select-font-size));font-family:var(--luzmo-select-font-family, var(--select-font-family));line-height:var(--luzmo-select-button-line-height, var(--select-button-line-height));font-weight:var(--luzmo-select-font-weight, var(--select-font-weight));border:var(--luzmo-select-search-input-border-bottom-width, var(--select-search-input-border-bottom-width)) solid var(--luzmo-select-search-input-border-bottom-color, var(--select-search-input-border-bottom-color));outline:none}#no-results{color:var(--luzmo-select-no-results-color, var(--select-no-results-color));font-style:var(--luzmo-select-no-results-font-style, var(--select-no-results-font-style));height:var(--luzmo-select-no-results-height, var(--select-no-results-height));padding-inline:var(--luzmo-select-no-results-spacing-edge-to-text, var(--select-no-results-spacing-edge-to-text));display:flex;align-items:center}:host{--select-popover-max-width: 300px;--select-popover-min-width: 160px;--select-font-family: var(--luzmo-font-family);--select-font-size: var(--luzmo-font-size);--select-font-weight: var(--luzmo-font-weight);--select-spacing-search-icon-to-text: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-search-icon-height: var(--luzmo-font-size);--select-search-icon-width: var(--luzmo-font-size);--select-search-icon-color: var(--luzmo-disabled-color);--select-search-icon-color-focus: var(--luzmo-font-color);--select-search-color: var(--luzmo-font-color);--select-search-background-color: var(--luzmo-background-color);--select-search-container-border-bottom-width: var(--luzmo-border-width);--select-search-container-border-bottom-color: var(--luzmo-border-color);--select-search-input-border-bottom-width: var(--luzmo-border-width);--select-search-input-border-bottom-color: transparent;--select-background-color-default: var(--luzmo-background-color);--select-background-color-default-open: var(--luzmo-background-color-hover);--select-background-color-active: var(--luzmo-background-color-down);--select-background-color-hover: var(--luzmo-background-color-hover);--select-background-color-hover-open: var(--luzmo-background-color-down);--select-background-color-key-focus: var(--luzmo-background-color-down);--select-border-color-default: var(--luzmo-border-color);--select-border-color-default-open: var(--luzmo-border-color-hover);--select-border-color-hover: var(--luzmo-border-color);--select-border-color-hover-open: var(--luzmo-border-color-hover);--select-border-color-active: var(--luzmo-border-color);--select-border-color-key-focus: var(--luzmo-border-color);--select-button-border-width: var(--luzmo-border-width);--select-placeholder-font-style: var(--luzmo-font-style);--select-button-line-height: var(--luzmo-line-height);--select-button-box-shadow: 0px 1px 3px 0px rgba(var(--luzmo-border-color-rgb), .06);--select-button-block-size: var(--luzmo-component-height);--select-button-border-radius: var(--luzmo-border-radius);--select-button-border-radius-reset: 0;--select-inline-edge-to-content: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-icon-to-clear-icon: var( --select-spacing-icon-to-disclosure-icon );--select-inline-edge-to-content-quiet: 0px;--select-spacing-label-to-select: 0px;--select-spacing-label-to-select-quiet: calc( -1 * var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-3) + var(--luzmo-spacing-1) );--select-spacing-edge-to-disclosure-icon-quiet: 0px;--select-animation-duration: var(--luzmo-animation-duration);--select-font-color-default: var(--luzmo-font-color);--select-font-color-default-open: var(--luzmo-font-color-hover);--select-font-color-hover: var(--luzmo-font-color-hover);--select-font-color-hover-open: var(--luzmo-font-color-down);--select-font-color-active: var(--luzmo-font-color-focus);--select-font-color-key-focus: var(--luzmo-font-color-focus);--select-icon-color-default: var(--luzmo-font-color);--select-icon-color-default-open: var(--luzmo-font-color-hover);--select-icon-color-hover: var(--luzmo-font-color-hover);--select-icon-color-hover-open: var(--luzmo-font-color-hover);--select-icon-color-active: var(--luzmo-font-color-focus);--select-icon-color-key-focus: var(--luzmo-font-color-focus);--select-border-color-error-default: var(--luzmo-negative-color);--select-border-color-error-default-open: var(--luzmo-negative-color-down);--select-border-color-error-hover: var(--luzmo-negative-color-hover);--select-border-color-error-hover-open: var(--luzmo-negative-color-down);--select-border-color-error-active: var(--luzmo-negative-color-down);--select-border-color-error-key-focus: var(--luzmo-negative-color-focus);--select-icon-color-error: var(--luzmo-negative-color);--select-background-color-disabled: var(--luzmo-background-color-disabled);--select-font-color-disabled: var(--luzmo-disabled-color);--select-icon-color-disabled: var(--luzmo-disabled-color);--select-focus-indicator-gap: var(--luzmo-indicator-gap);--select-focus-indicator-width: var(--luzmo-indicator-width);--select-focus-indicator-color: var(--luzmo-indicator-color);--select-disclosure-icon-size: var(--luzmo-font-size-s);--select-no-results-height: var(--select-button-block-size);--select-no-results-color: var(--select-font-color-disabled);--select-no-results-font-style: italic;--select-no-results-spacing-edge-to-text: var( --select-inline-edge-to-content )}:host([size=s]){--select-button-block-size: var(--luzmo-component-height-s);--select-font-size: var(--luzmo-font-size-s);--select-search-icon-height: var(--luzmo-font-size-s);--select-search-icon-width: var(--luzmo-font-size-s);--select-popover-max-width: 280px;--select-popover-min-width: 140px;--select-spacing-search-icon-to-text: var(--luzmo-spacing-3);--select-inline-edge-to-content: var(--luzmo-spacing-3);--select-spacing-text-to-icon: var(--luzmo-spacing-3);--select-spacing-text-to-icon-inline-end: var(--luzmo-spacing-3);--select-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-3);--select-spacing-label-to-select-quiet: calc(-1 * var(--luzmo-spacing-3));--select-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-3);--select-disclosure-icon-size: var(--luzmo-font-size-s)}:host([size=l]){--select-button-block-size: var(--luzmo-component-height-l);--select-font-size: var(--luzmo-font-size-l);--select-search-icon-height: var(--luzmo-font-size-l);--select-search-icon-width: var(--luzmo-font-size-l);--select-popover-max-width: 360px;--select-popover-min-width: 220px;--select-spacing-search-icon-to-text: var(--luzmo-spacing-4);--select-inline-edge-to-content: var(--luzmo-spacing-4);--select-spacing-text-to-icon: var(--luzmo-spacing-4);--select-spacing-text-to-icon-inline-end: var(--luzmo-spacing-4);--select-spacing-icon-to-disclosure-icon: var(--luzmo-spacing-4);--select-spacing-label-to-select-quiet: calc(-1 * var(--luzmo-spacing-4));--select-spacing-edge-to-disclosure-icon: var(--luzmo-spacing-4);--select-disclosure-icon-size: var(--luzmo-font-size)}:host([size=xl]){--select-button-block-size: var(--luzmo-component-height-xl);--select-font-size: var(--luzmo-font-size-xl);--select-search-icon-height: var(--luzmo-font-size-xl);--select-search-icon-width: var(--luzmo-font-size-xl);--select-popover-max-width: 400px;--select-popover-min-width: 260px;--select-spacing-search-icon-to-text: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-inline-edge-to-content: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-text-to-icon-inline-end: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-icon-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-label-to-select-quiet: calc( -1 * var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-spacing-edge-to-disclosure-icon: calc( var(--luzmo-spacing-4) + var(--luzmo-spacing-1) );--select-disclosure-icon-size: var(--luzmo-font-size-l)}:host([variant=highlight]) ::slotted(luzmo-option[selected]){--option-highlight-label-content-color: var(--luzmo-primary-inverse-color);--option-label-icon-color-default: var(--luzmo-primary-inverse-color);--menu-checkmark-display: var(--menu-checkmark-display-hidden);padding-inline-start:var(--luzmo-option-label-inline-edge-to-content, var(--option-label-inline-edge-to-content));background-color:var(--luzmo-option-highlight-label-background-color, var(--option-highlight-label-background-color, var(--luzmo-border-color)))}:host{display:inline-flex;vertical-align:top;max-inline-size:100%;inline-size:var(--luzmo-select-inline-size, var(--select-inline-size));min-inline-size:calc(var(--select-minimum-width-multiplier) * var(--luzmo-select-block-size, var(--select-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}.validation-icon{flex-shrink:0}luzmo-overlay{pointer-events:none}luzmo-options{pointer-events:initial}:host>#no-results,:host>luzmo-options{display:none}:host([focused]:not([quiet])) #button #label.placeholder{color:var(--select-placeholder-text-color-key-focus, var(--alias-placeholder-text-color-hover))}.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-select-background-color, var(--luzmo-select-background-color-default, var(--select-background-color-default)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-default, var(--select-border-color-default)));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-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-select-background-color, var(--luzmo-select-background-color-default, var(--select-background-color-default)));border-color:var(--highcontrast-select-border-color-default, var(--luzmo-select-border-color-default, var(--select-border-color-default)));color:var(--highcontrast-select-content-color-default, var(--luzmo-select-font-color-default, var(--select-font-color-default)))}';var K=Object.defineProperty,a=(u,e,o,r)=>{for(var i=void 0,t=u.length-1,n;t>=0;t--)(n=u[t])&&(i=n(e,o,i)||i);return i&&K(e,o,i),i};const W=()=>c.html`
|
|
19
19
|
<div class="disclosure-icon icon">
|
|
20
20
|
${v.luzmoIcon(v.luzmoAngleDown,{className:"indicator"})}
|
|
21
21
|
</div>
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
<div class="icon-container search-icon icon" id="search-icon">
|
|
28
28
|
${v.luzmoIcon(v.luzmoSearch)}
|
|
29
29
|
</div>
|
|
30
|
-
`,O="select-option-menu",H=20;class
|
|
30
|
+
`,O="select-option-menu",H=20;class l extends F.SizedMixin(B.Focusable,{noDefaultSize:!0}){constructor(){super(),this.disabled=!1,this.focused=!1,this.variant="checkmarks",this.emphasized=!1,this.invalid=!1,this.search="auto",this.noWrap=!1,this.retrieving=!1,this.pending=!1,this.clearable=!1,this.pendingLabel="Pending",this.searchLabel="Search",this.noResultsLabel="No results",this.noDataLabel="No data",this.multipleLabelTemplate="Selected {count} items",this.open=!1,this.readonly=!1,this.placement="bottom-end",this.quiet=!1,this.value=[],this.options=[],this.selects="multiple",this.dependencyManager=new T.DependencyManagerController(this),this.isMobile=new z.MatchMediaController(this,z.IS_MOBILE),this.listRole="listbox",this.itemRole="option",this.hasRenderedOverlay=!1,this._selfManageFocusElement=!1,this.selectionPromise=Promise.resolve(),this.enterKeydownOn=null,this._selectedOptions=[],this.handleSlottableRequest=e=>{},this.renderAngleIcon=()=>W(),this.renderAlertIcon=()=>U(),this.handleEnterKeydown=e=>{if(e.code==="Enter"){if(this.enterKeydownOn){e.preventDefault();return}this.enterKeydownOn=e.target,this.addEventListener("keyup",o=>{o.code==="Enter"&&(this.enterKeydownOn=null)},{once:!0})}},this.clearValue=e=>{e.preventDefault(),e.stopPropagation(),this.value=[],this.strategy&&(this.strategy.preventNextToggle="no"),this.open=!1,this.strategy&&(this.strategy.open=!1),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,composed:!0,detail:{value:this.value??[]}}))},this.handleKeydown=e=>{var r,i;const{code:o}=e;if(["Delete","Backspace"].includes(o)){this.clearValue(e);return}if(this.focused=!0,!(!o.startsWith("Arrow")||this.readonly||this.pending)){if(o==="ArrowUp"||o==="ArrowDown"){this.toggle(!0),e.preventDefault();return}if(e.preventDefault(),this.selects==="single"){const t=o==="ArrowRight"?1:-1,n=this.options.findIndex(h=>{var b,g,m;return((b=h==null?void 0:h.value)==null?void 0:b.toString())===((m=(g=this.value)==null?void 0:g[0])==null?void 0:m.toString())});let d=(this.options.length+n+t)%this.options.length,p=this.options.length;for(;(i=(r=this.options)==null?void 0:r[d])!=null&&i.disabled&&p;)p-=1,d=(this.options.length+d+t)%this.options.length;this.value=[this.options[d].value],this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,composed:!0,detail:{value:this.value??[]}}))}}},this.pendingStateController=new A.PendingStateController(this)}static get styles(){return[c.unsafeCSS(R)]}get selfManageFocusElement(){return this._selfManageFocusElement}get focusElement(){var e;return this.open?this.search==="on"||this.search==="auto"&&((e=this.options)==null?void 0:e.length)>H?this.searchInput:this.optionsMenu:this.button}forceFocusVisible(){this.disabled||(this.focused=!0)}click(){this.disabled||this.toggle()}handleButtonBlur(){this.focused=!1}focus(e){super.focus(e),!this.disabled&&this.focusElement&&(this.focused=this.hasVisibleFocusInTree())}handleHelperFocus(){this.focused=!0,this.button.focus()}handleChange(e){var o;this.value=((o=e==null?void 0:e.detail)==null?void 0:o.value)??[],this.strategy&&(this.strategy.preventNextToggle="no"),e.stopPropagation(),(!e.cancelable||this.selects==="single")&&(this.open=!1,this.strategy&&(this.strategy.open=!1)),e.preventDefault(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0,composed:!0,detail:{value:this.value??[]}}))}handleButtonFocus(e){var o;(o=this.strategy)==null||o.handleButtonFocus(e)}toggle(e){this.readonly||this.pending||(this.open=e===void 0?!this.open:e,this.strategy&&(this.strategy.open=this.open),this._selfManageFocusElement=this.open)}close(){this.readonly||this.strategy&&(this.open=!1,this.strategy.open=!1)}bindEvents(){var e,o;(e=this.strategy)==null||e.abort(),this.strategy=new z.strategies.desktop(this.button,this),(o=this.strategy)!=null&&o.overlay&&(this.strategy.overlay.type="auto",this.strategy.overlay.placement=this.placement)}connectedCallback(){super.connectedCallback()}disconnectedCallback(){var e;this.close(),(e=this.strategy)==null||e.releaseDescription(),super.disconnectedCallback()}handleTooltipSlotchange(e){this.tooltipEl=e.target.assignedElements()[0]}get labelTemplate(){var p,h,b,g,m,y,w,k,x,S,$,q,E,I,C;const e=((p=this._selectedOptions)==null?void 0:p.length)===1&&((h=this._selectedOptions[0])==null?void 0:h.icon),o=c.html`<div
|
|
31
31
|
id="icon"
|
|
32
32
|
?hidden=${typeof this.icons=="string"||((b=this.value)==null?void 0:b.length)>1||!e}
|
|
33
33
|
>
|
|
34
34
|
${e?v.luzmoIcon(this._selectedOptions[0].icon):c.nothing}
|
|
35
|
-
</div>`,
|
|
35
|
+
</div>`,r=M=>M.replaceAll(/{([^}]+)}/g,(P,L)=>{var _;return L==="count"?String((_=this.value)==null?void 0:_.length):P}),i={"visually-hidden":this.icons==="only"&&((g=this.value)==null?void 0:g.length)>0,placeholder:!((m=this.value)!=null&&m.length),label:!0};let t;(y=this.value)!=null&&y.length?t=this.value.length===1?c.html`<span
|
|
36
36
|
>${((k=(w=this._selectedOptions)==null?void 0:w[0])==null?void 0:k.shortLabel)??((S=(x=this._selectedOptions)==null?void 0:x[0])==null?void 0:S.label)??(($=this.value)==null?void 0:$[0])}</span
|
|
37
37
|
>`:c.html`<span
|
|
38
|
-
>${
|
|
38
|
+
>${r(this.multipleLabelTemplate)}</span
|
|
39
39
|
>`:t=c.html`
|
|
40
40
|
<slot name="label" id="label">
|
|
41
41
|
<span aria-hidden="true"> ${this.label} </span>
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
${this.label}
|
|
46
46
|
<slot name="label"></slot>
|
|
47
47
|
</div>
|
|
48
|
-
`:c.html` <span hidden id="applied-label">${this.label}</span> `,
|
|
48
|
+
`:c.html` <span hidden id="applied-label">${this.label}</span> `,d=()=>c.html`
|
|
49
49
|
<div class="icon-container clear-icon icon" @click=${this.clearValue}>
|
|
50
50
|
${v.luzmoIcon(v.luzmoClose14)}
|
|
51
51
|
</div>
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
${n}
|
|
61
61
|
${this.invalid&&!this.pending?c.html` ${this.renderAlertIcon()} `:c.nothing}
|
|
62
62
|
${this.pendingStateController.renderPendingState()}
|
|
63
|
-
${this.clearable&&!this.readonly&&((C=this.value)==null?void 0:C.length)>0?
|
|
63
|
+
${this.clearable&&!this.readonly&&((C=this.value)==null?void 0:C.length)>0?d():c.nothing}
|
|
64
64
|
${this.readonly?c.nothing:this.renderAngleIcon()}
|
|
65
65
|
<slot
|
|
66
66
|
aria-hidden="true"
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
id="tooltip"
|
|
69
69
|
@slotchange=${this.handleTooltipSlotchange}
|
|
70
70
|
></slot>
|
|
71
|
-
`]}update(e){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),super.update(e)}bindButtonKeydownListener(){this.button.addEventListener("keydown",this.handleKeydown)}willUpdate(e){var
|
|
71
|
+
`]}update(e){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),super.update(e)}bindButtonKeydownListener(){this.button.addEventListener("keydown",this.handleKeydown)}willUpdate(e){var d;const o=e.has("open"),r=e.has("value"),i=e.has("options"),t=e.has("selects"),n=e.get("open");t&&this.selects==="single"&&((d=this.value)==null?void 0:d.length)>1&&(console.warn("luzmo-select is being set to a single value given the selects property changed to 'single'"),this.value=this.value.slice(0,1)),o&&n===!1&&this.open&&this.searchString&&(this.searchString=""),(r||i)&&this.setSelectedOptionsFromValue()}updated(e){var t,n;super.updated(e);const o=e.has("options"),r=e.has("open"),i=e.has("placement");if(r&&(this.strategy.open=this.open,this.open===!1&&this.optionsMenu.scrollToTop()),o)if(((t=this.options)==null?void 0:t.length)>V.VIRTUALIZE_AS_OF_NUM_ITEMS){const d=this.options.reduce((p,h)=>{var b,g;return(((b=p==null?void 0:p.label)==null?void 0:b.length)??0)>(((g=h==null?void 0:h.label)==null?void 0:g.length)??0)?p:h},0);this._estimatePopoverWidth(d)}else this.style.removeProperty("--select-popover-width");(n=this.strategy)!=null&&n.overlay&&(this.strategy.overlay.type!=="auto"&&(this.strategy.overlay.type="auto"),(i||this.strategy.overlay.type==="auto")&&(this.strategy.overlay.placement=this.placement))}firstUpdated(e){super.firstUpdated(e),this.bindButtonKeydownListener(),this.bindEvents()}_getCssVarInPixels(e){const o=N(this,e);let r;if(o.endsWith("rem")){const i=Number.parseFloat(getComputedStyle(document.documentElement).fontSize);r=Number.parseFloat(o)*i}else if(o.endsWith("em")){const i=Number.parseFloat(getComputedStyle(this).fontSize);r=Number.parseFloat(o)*i}else r=Number.parseFloat(o);return r>=0?r:void 0}_estimatePopoverWidth(e){const o=this._getCssVarInPixels("--luzmo-select-font-size")??this._getCssVarInPixels("--select-font-size"),r=this._getCssVarInPixels("--luzmo-select-popover-min-width")??this._getCssVarInPixels("--select-popover-min-width"),i=this._getCssVarInPixels("--luzmo-spacing-5"),t=document.createElement("luzmo-options");t.style.setProperty("--luzmo-select-font-size",`${o}px`),t.options=[e],t.value=[e],t.variant=this.variant,t.size=this.size,t.style.position="absolute",t.style.left="-9999px",t.style.top="-9999px",t.style.opacity="0",t.style.width="auto",document.body.append(t),t.updateComplete.then(()=>{const n=t.offsetWidth+(i??0);return n>(r??0)?this.style.setProperty("--select-popover-width",`${n}px`):this.style.removeProperty("--select-popover-width"),t.remove(),n}).catch(n=>{console.error(n),t.remove()})}get dismissHelper(){return c.html`
|
|
72
72
|
<div class="visually-hidden">
|
|
73
73
|
<button
|
|
74
74
|
tabindex="-1"
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
<div id=${O}>
|
|
104
104
|
<slot name="description"></slot>
|
|
105
105
|
</div>
|
|
106
|
-
`}setSelectedOptionsFromValue(){this._selectedOptions=this.options.filter(e=>{var
|
|
106
|
+
`}setSelectedOptionsFromValue(){this._selectedOptions=this.options.filter(e=>{var r;const o=typeof e=="string"?e:e==null?void 0:e.value;return(r=this.value)==null?void 0:r.includes(o)})}renderSearchInput(){return c.html`
|
|
107
107
|
<div id="search-container">
|
|
108
108
|
<input
|
|
109
109
|
type="text"
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
/>
|
|
121
121
|
${j()}
|
|
122
122
|
</div>
|
|
123
|
-
`}get renderMenu(){const e=this.options.filter(
|
|
123
|
+
`}get renderMenu(){const e=this.options.filter(r=>{var t,n,d;const i=typeof r=="string"?r:r==null?void 0:r.label;return(d=(t=i==null?void 0:i.toString())==null?void 0:t.toLowerCase())==null?void 0:d.includes(((n=this.searchString)==null?void 0:n.toLowerCase())??"")}),o=c.html`
|
|
124
124
|
<luzmo-options
|
|
125
125
|
.variant=${this.variant}
|
|
126
126
|
aria-labelledby="applied-label"
|
|
@@ -143,8 +143,8 @@
|
|
|
143
143
|
${e.length===0&&!this.retrieving&&!this.pending?c.html`<div id="no-results">
|
|
144
144
|
${this.searchString?this.noResultsLabel:this.noDataLabel}
|
|
145
145
|
</div>`:c.nothing}
|
|
146
|
-
`;return this.hasRenderedOverlay=this.hasRenderedOverlay||this.focused||this.open,this.hasRenderedOverlay?(this.dependencyManager.loaded&&this.dependencyManager.add("luzmo-overlay"),this.renderOverlay(o)):o}renderOverlay(e){var
|
|
147
|
-
${
|
|
146
|
+
`;return this.hasRenderedOverlay=this.hasRenderedOverlay||this.focused||this.open,this.hasRenderedOverlay?(this.dependencyManager.loaded&&this.dependencyManager.add("luzmo-overlay"),this.renderOverlay(o)):o}renderOverlay(e){var r,i,t;if(((r=this.strategy)==null?void 0:r.overlay)===void 0)return e;const o=this.renderContainer(e);return c.render(o,(i=this.strategy)==null?void 0:i.overlay,{host:this}),(t=this.strategy)==null?void 0:t.overlay}renderContainer(e){var t,n;const o=this.search==="on"||this.searchString&&((t=this.searchString)==null?void 0:t.length)>0||this.search==="auto"&&((n=this.options)==null?void 0:n.length)>20,r=o?this.renderSearchInput():c.nothing,i=c.html`
|
|
147
|
+
${r} ${this.dismissHelper} ${e} ${this.dismissHelper}
|
|
148
148
|
`;return this.dependencyManager.add("luzmo-popover"),c.html`
|
|
149
149
|
<luzmo-popover
|
|
150
150
|
class=${f.ifDefined(o?"search-on":void 0)}
|
|
@@ -155,4 +155,4 @@
|
|
|
155
155
|
>
|
|
156
156
|
${i}
|
|
157
157
|
</luzmo-popover>
|
|
158
|
-
`}async getUpdateComplete(){const e=await super.getUpdateComplete();return await this.selectionPromise,this.overlayElement&&await this.overlayElement.updateComplete,e}handleScrolled(e){var o,
|
|
158
|
+
`}async getUpdateComplete(){const e=await super.getUpdateComplete();return await this.selectionPromise,this.overlayElement&&await this.overlayElement.updateComplete,e}handleScrolled(e){var o,r;e.stopPropagation(),e.preventDefault(),this.dispatchEvent(new CustomEvent("luzmo-scrolled",{bubbles:!0,composed:!0,cancelable:!0,detail:{first:(o=e==null?void 0:e.detail)==null?void 0:o.first,last:(r=e==null?void 0:e.detail)==null?void 0:r.last}}))}handleExceededTop(e){e.preventDefault(),e.stopPropagation(),this.searchInput?this.searchInput.focus():this.toggle(!1)}handleSearchInput(e){this.searchString=e.target.value,this.dispatchEvent(new CustomEvent("luzmo-search",{bubbles:!0,composed:!0,cancelable:!0,detail:{string:this.searchString}}))}handleSearchKeydown(e){if(e.code==="Escape"){this.searchString="";return}if(e.code==="ArrowDown"){this.optionsMenu.focus(),e.preventDefault(),e.stopPropagation();return}else if(e.code==="ArrowUp"){this.toggle(!1);return}}}a([s.query("#button")],l.prototype,"button");a([s.property({type:Boolean,reflect:!0})],l.prototype,"disabled");a([s.property({type:Boolean,reflect:!0})],l.prototype,"focused");a([s.property({type:String,reflect:!0})],l.prototype,"icons");a([s.property({type:String,reflect:!0})],l.prototype,"variant");a([s.property({type:Boolean,reflect:!0})],l.prototype,"emphasized");a([s.property({type:Boolean,reflect:!0})],l.prototype,"invalid");a([s.property({type:String,reflect:!0})],l.prototype,"search");a([s.property({type:Boolean,reflect:!0,attribute:"no-wrap"})],l.prototype,"noWrap");a([s.property({type:Boolean,reflect:!0})],l.prototype,"retrieving");a([s.property({type:Boolean,reflect:!0})],l.prototype,"pending");a([s.property({type:Boolean,reflect:!0})],l.prototype,"clearable");a([s.property({type:String,attribute:"pending-label"})],l.prototype,"pendingLabel");a([s.property({type:String,attribute:"search-label"})],l.prototype,"searchLabel");a([s.property({type:String,attribute:"no-results-label"})],l.prototype,"noResultsLabel");a([s.property({type:String,attribute:"no-data-label"})],l.prototype,"noDataLabel");a([s.property({type:String,attribute:"multiple-label-template",reflect:!0})],l.prototype,"multipleLabelTemplate");a([s.property()],l.prototype,"label");a([s.property({type:Boolean,reflect:!0})],l.prototype,"open");a([s.property({type:Boolean,reflect:!0})],l.prototype,"readonly");a([s.state()],l.prototype,"labelAlignment");a([s.state()],l.prototype,"displayLabelContent");a([s.state()],l.prototype,"searchString");a([s.query("luzmo-options")],l.prototype,"optionsMenu");a([s.query("#search")],l.prototype,"searchInput");a([s.query("luzmo-overlay")],l.prototype,"overlayElement");a([s.query("lit-virtualizer")],l.prototype,"virtualizer");a([s.property({type:String,reflect:!0})],l.prototype,"placement");a([s.property({type:Boolean,reflect:!0})],l.prototype,"quiet");a([s.property({type:Array,converter:{fromAttribute:u=>{if(!u||u==="")return[];try{return JSON.parse(u)}catch{return[]}},toAttribute:u=>JSON.stringify(u)}})],l.prototype,"value");a([s.property({type:Array})],l.prototype,"options");a([s.property({type:String,reflect:!0})],l.prototype,"selects");customElements.get("luzmo-select")||customElements.define("luzmo-select",l);exports.LuzmoSelect=l;
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* */
|
|
18
18
|
import "@lit-labs/virtualizer";
|
|
19
19
|
import { luzmoIcon as f, luzmoClose14 as D, luzmoAngleDown as F, luzmoAlert as V, luzmoSearch as N } from "@luzmo/icons";
|
|
20
|
-
import { unsafeCSS as R, nothing as
|
|
20
|
+
import { unsafeCSS as R, nothing as m, html as n, render as K } from "lit";
|
|
21
21
|
import { query as z, property as c, state as w } from "lit/decorators.js";
|
|
22
22
|
import { classMap as U } from "lit/directives/class-map.js";
|
|
23
23
|
import { ifDefined as y } from "lit/directives/if-defined.js";
|
|
@@ -62,7 +62,7 @@ const te = () => n`
|
|
|
62
62
|
<div class="icon-container search-icon icon" id="search-icon">
|
|
63
63
|
${f(N)}
|
|
64
64
|
</div>
|
|
65
|
-
`,
|
|
65
|
+
`, L = "select-option-menu", se = 20;
|
|
66
66
|
class l extends Q(G, {
|
|
67
67
|
noDefaultSize: !0
|
|
68
68
|
}) {
|
|
@@ -107,14 +107,14 @@ class l extends Q(G, {
|
|
|
107
107
|
}
|
|
108
108
|
if (e.preventDefault(), this.selects === "single") {
|
|
109
109
|
const t = o === "ArrowRight" ? 1 : -1, i = this.options.findIndex(
|
|
110
|
-
(
|
|
111
|
-
var p,
|
|
112
|
-
return ((p =
|
|
110
|
+
(h) => {
|
|
111
|
+
var p, b, g;
|
|
112
|
+
return ((p = h == null ? void 0 : h.value) == null ? void 0 : p.toString()) === ((g = (b = this.value) == null ? void 0 : b[0]) == null ? void 0 : g.toString());
|
|
113
113
|
}
|
|
114
114
|
);
|
|
115
|
-
let d = (this.options.length + i + t) % this.options.length,
|
|
116
|
-
for (; (a = (r = this.options) == null ? void 0 : r[d]) != null && a.disabled &&
|
|
117
|
-
|
|
115
|
+
let d = (this.options.length + i + t) % this.options.length, v = this.options.length;
|
|
116
|
+
for (; (a = (r = this.options) == null ? void 0 : r[d]) != null && a.disabled && v; )
|
|
117
|
+
v -= 1, d = (this.options.length + d + t) % this.options.length;
|
|
118
118
|
this.value = [this.options[d].value], this.dispatchEvent(
|
|
119
119
|
new CustomEvent("change", {
|
|
120
120
|
bubbles: !0,
|
|
@@ -204,20 +204,20 @@ class l extends Q(G, {
|
|
|
204
204
|
* @internal
|
|
205
205
|
*/
|
|
206
206
|
get labelTemplate() {
|
|
207
|
-
var
|
|
208
|
-
const e = ((
|
|
207
|
+
var v, h, p, b, g, x, k, S, $, E, C, I, O, _, q;
|
|
208
|
+
const e = ((v = this._selectedOptions) == null ? void 0 : v.length) === 1 && ((h = this._selectedOptions[0]) == null ? void 0 : h.icon), o = n`<div
|
|
209
209
|
id="icon"
|
|
210
210
|
?hidden=${typeof this.icons == "string" || ((p = this.value) == null ? void 0 : p.length) > 1 || !e}
|
|
211
211
|
>
|
|
212
|
-
${e ? f(this._selectedOptions[0].icon) :
|
|
212
|
+
${e ? f(this._selectedOptions[0].icon) : m}
|
|
213
213
|
</div>`, r = (B) => B.replaceAll(
|
|
214
214
|
/{([^}]+)}/g,
|
|
215
215
|
(M, A) => {
|
|
216
|
-
var
|
|
217
|
-
return A === "count" ? String((
|
|
216
|
+
var P;
|
|
217
|
+
return A === "count" ? String((P = this.value) == null ? void 0 : P.length) : M;
|
|
218
218
|
}
|
|
219
219
|
), a = {
|
|
220
|
-
"visually-hidden": this.icons === "only" && ((
|
|
220
|
+
"visually-hidden": this.icons === "only" && ((b = this.value) == null ? void 0 : b.length) > 0,
|
|
221
221
|
placeholder: !((g = this.value) != null && g.length),
|
|
222
222
|
label: !0
|
|
223
223
|
};
|
|
@@ -243,7 +243,7 @@ class l extends Q(G, {
|
|
|
243
243
|
`;
|
|
244
244
|
return [
|
|
245
245
|
n`
|
|
246
|
-
${((O = this.value) == null ? void 0 : O.length) === 1 ? o :
|
|
246
|
+
${((O = this.value) == null ? void 0 : O.length) === 1 ? o : m}
|
|
247
247
|
<div
|
|
248
248
|
id=${y((_ = this.value) != null && _.length ? "label" : void 0)}
|
|
249
249
|
class=${U(a)}
|
|
@@ -251,10 +251,10 @@ class l extends Q(G, {
|
|
|
251
251
|
${t}
|
|
252
252
|
</div>
|
|
253
253
|
${i}
|
|
254
|
-
${this.invalid && !this.pending ? n` ${this.renderAlertIcon()} ` :
|
|
254
|
+
${this.invalid && !this.pending ? n` ${this.renderAlertIcon()} ` : m}
|
|
255
255
|
${this.pendingStateController.renderPendingState()}
|
|
256
|
-
${this.clearable && !this.readonly && ((q = this.value) == null ? void 0 : q.length) > 0 ? d() :
|
|
257
|
-
${this.readonly ?
|
|
256
|
+
${this.clearable && !this.readonly && ((q = this.value) == null ? void 0 : q.length) > 0 ? d() : m}
|
|
257
|
+
${this.readonly ? m : this.renderAngleIcon()}
|
|
258
258
|
<slot
|
|
259
259
|
aria-hidden="true"
|
|
260
260
|
name="tooltip"
|
|
@@ -278,19 +278,19 @@ class l extends Q(G, {
|
|
|
278
278
|
), this.value = this.value.slice(0, 1)), o && i === !1 && this.open && this.searchString && (this.searchString = ""), (r || a) && this.setSelectedOptionsFromValue();
|
|
279
279
|
}
|
|
280
280
|
updated(e) {
|
|
281
|
-
var
|
|
281
|
+
var t, i;
|
|
282
282
|
super.updated(e);
|
|
283
|
-
const o = e.has("options");
|
|
284
|
-
if (
|
|
285
|
-
if (((
|
|
286
|
-
const
|
|
287
|
-
var
|
|
288
|
-
return (((
|
|
283
|
+
const o = e.has("options"), r = e.has("open"), a = e.has("placement");
|
|
284
|
+
if (r && (this.strategy.open = this.open, this.open === !1 && this.optionsMenu.scrollToTop()), o)
|
|
285
|
+
if (((t = this.options) == null ? void 0 : t.length) > X) {
|
|
286
|
+
const d = this.options.reduce((v, h) => {
|
|
287
|
+
var p, b;
|
|
288
|
+
return (((p = v == null ? void 0 : v.label) == null ? void 0 : p.length) ?? 0) > (((b = h == null ? void 0 : h.label) == null ? void 0 : b.length) ?? 0) ? v : h;
|
|
289
289
|
}, 0);
|
|
290
|
-
this._estimatePopoverWidth(
|
|
290
|
+
this._estimatePopoverWidth(d);
|
|
291
291
|
} else
|
|
292
292
|
this.style.removeProperty("--select-popover-width");
|
|
293
|
-
(
|
|
293
|
+
(i = this.strategy) != null && i.overlay && (this.strategy.overlay.type !== "auto" && (this.strategy.overlay.type = "auto"), (a || this.strategy.overlay.type === "auto") && (this.strategy.overlay.placement = this.placement));
|
|
294
294
|
}
|
|
295
295
|
firstUpdated(e) {
|
|
296
296
|
super.firstUpdated(e), this.bindButtonKeydownListener(), this.bindEvents();
|
|
@@ -343,7 +343,7 @@ class l extends Q(G, {
|
|
|
343
343
|
id="focus-helper"
|
|
344
344
|
tabindex=${this.focused || this.open ? "-1" : "0"}
|
|
345
345
|
@focus=${this.handleHelperFocus}
|
|
346
|
-
aria-describedby=${
|
|
346
|
+
aria-describedby=${L}
|
|
347
347
|
></span>
|
|
348
348
|
<button
|
|
349
349
|
aria-controls=${y(this.open ? "menu" : void 0)}
|
|
@@ -373,7 +373,7 @@ class l extends Q(G, {
|
|
|
373
373
|
*/
|
|
374
374
|
get renderDescriptionSlot() {
|
|
375
375
|
return n`
|
|
376
|
-
<div id=${
|
|
376
|
+
<div id=${L}>
|
|
377
377
|
<slot name="description"></slot>
|
|
378
378
|
</div>
|
|
379
379
|
`;
|
|
@@ -438,7 +438,7 @@ class l extends Q(G, {
|
|
|
438
438
|
</luzmo-options>
|
|
439
439
|
${e.length === 0 && !this.retrieving && !this.pending ? n`<div id="no-results">
|
|
440
440
|
${this.searchString ? this.noResultsLabel : this.noDataLabel}
|
|
441
|
-
</div>` :
|
|
441
|
+
</div>` : m}
|
|
442
442
|
`;
|
|
443
443
|
return this.hasRenderedOverlay = this.hasRenderedOverlay || this.focused || this.open, this.hasRenderedOverlay ? (this.dependencyManager.loaded && this.dependencyManager.add("luzmo-overlay"), this.renderOverlay(o)) : o;
|
|
444
444
|
}
|
|
@@ -453,7 +453,7 @@ class l extends Q(G, {
|
|
|
453
453
|
}
|
|
454
454
|
renderContainer(e) {
|
|
455
455
|
var t, i;
|
|
456
|
-
const o = this.search === "on" || this.searchString && ((t = this.searchString) == null ? void 0 : t.length) > 0 || this.search === "auto" && ((i = this.options) == null ? void 0 : i.length) > 20, r = o ? this.renderSearchInput() :
|
|
456
|
+
const o = this.search === "on" || this.searchString && ((t = this.searchString) == null ? void 0 : t.length) > 0 || this.search === "auto" && ((i = this.options) == null ? void 0 : i.length) > 20, r = o ? this.renderSearchInput() : m, a = n`
|
|
457
457
|
${r} ${this.dismissHelper} ${e} ${this.dismissHelper}
|
|
458
458
|
`;
|
|
459
459
|
return this.dependencyManager.add("luzmo-popover"), n`
|