@sky.ui/core 0.0.40 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/custom-elements.json +1708 -1708
  2. package/dist/helper/controllers/animation-controller.d.ts +4 -4
  3. package/dist/helper/controllers/animation-controller.js.map +1 -1
  4. package/dist/helper/controllers/popover-controller.d.ts +11 -11
  5. package/dist/helper/controllers/popover-controller.js.map +1 -1
  6. package/dist/helper/iconify-offline.js.map +1 -1
  7. package/dist/helper/internals/form-control-base.d.ts +4 -4
  8. package/dist/helper/internals/form-control-base.js.map +1 -1
  9. package/dist/helper/utils/color-resolver.js.map +1 -1
  10. package/dist/helper/utils/contrast-color.d.ts +4 -4
  11. package/dist/helper/utils/contrast-color.js.map +1 -1
  12. package/dist/helper/utils/size-resolver.js.map +1 -1
  13. package/dist/sky-alert/sky-alert.d.ts +5 -5
  14. package/dist/sky-alert/sky-alert.js +6 -16
  15. package/dist/sky-alert/sky-alert.js.map +1 -1
  16. package/dist/sky-appbar/sky-appbar.d.ts +2 -2
  17. package/dist/sky-appbar/sky-appbar.js +23 -15
  18. package/dist/sky-appbar/sky-appbar.js.map +1 -1
  19. package/dist/sky-avatar/sky-avatar.d.ts +3 -3
  20. package/dist/sky-avatar/sky-avatar.js +11 -8
  21. package/dist/sky-avatar/sky-avatar.js.map +1 -1
  22. package/dist/sky-badge/sky-badge.d.ts +5 -5
  23. package/dist/sky-badge/sky-badge.js +6 -10
  24. package/dist/sky-badge/sky-badge.js.map +1 -1
  25. package/dist/sky-button/sky-button.d.ts +5 -5
  26. package/dist/sky-button/sky-button.js +15 -24
  27. package/dist/sky-button/sky-button.js.map +1 -1
  28. package/dist/sky-card/sky-card.d.ts +5 -5
  29. package/dist/sky-card/sky-card.js +20 -20
  30. package/dist/sky-card/sky-card.js.map +1 -1
  31. package/dist/sky-checkbox/sky-checkbox.d.ts +2 -2
  32. package/dist/sky-checkbox/sky-checkbox.js +59 -67
  33. package/dist/sky-checkbox/sky-checkbox.js.map +1 -1
  34. package/dist/sky-chip/sky-chip.d.ts +3 -3
  35. package/dist/sky-chip/sky-chip.js +25 -34
  36. package/dist/sky-chip/sky-chip.js.map +1 -1
  37. package/dist/sky-col/sky-col.d.ts +4 -4
  38. package/dist/sky-col/sky-col.js +3 -8
  39. package/dist/sky-col/sky-col.js.map +1 -1
  40. package/dist/sky-combobox/sky-combobox.d.ts +8 -8
  41. package/dist/sky-combobox/sky-combobox.js +168 -201
  42. package/dist/sky-combobox/sky-combobox.js.map +1 -1
  43. package/dist/sky-dialog/sky-dialog.d.ts +4 -4
  44. package/dist/sky-dialog/sky-dialog.js +19 -17
  45. package/dist/sky-dialog/sky-dialog.js.map +1 -1
  46. package/dist/sky-divider/sky-divider.d.ts +3 -3
  47. package/dist/sky-divider/sky-divider.js.map +1 -1
  48. package/dist/sky-flexbox/sky-flexbox.d.ts +7 -7
  49. package/dist/sky-flexbox/sky-flexbox.js +2 -2
  50. package/dist/sky-flexbox/sky-flexbox.js.map +1 -1
  51. package/dist/sky-flexcol/sky-flexcol.d.ts +3 -3
  52. package/dist/sky-flexcol/sky-flexcol.js.map +1 -1
  53. package/dist/sky-form/sky-form.d.ts +12 -12
  54. package/dist/sky-form/sky-form.js +12 -12
  55. package/dist/sky-form/sky-form.js.map +1 -1
  56. package/dist/sky-grid/sky-grid.d.ts +2 -2
  57. package/dist/sky-grid/sky-grid.js.map +1 -1
  58. package/dist/sky-icon/sky-icon.d.ts +1 -1
  59. package/dist/sky-icon/sky-icon.js +1 -1
  60. package/dist/sky-icon/sky-icon.js.map +1 -1
  61. package/dist/sky-image/sky-image.d.ts +5 -5
  62. package/dist/sky-image/sky-image.js.map +1 -1
  63. package/dist/sky-image/srcset-utils.js.map +1 -1
  64. package/dist/sky-input/sky-input.d.ts +6 -6
  65. package/dist/sky-input/sky-input.js +88 -103
  66. package/dist/sky-input/sky-input.js.map +1 -1
  67. package/dist/sky-list/sky-list.d.ts +4 -4
  68. package/dist/sky-list/sky-list.js +3 -1
  69. package/dist/sky-list/sky-list.js.map +1 -1
  70. package/dist/sky-listitem/sky-listitem.d.ts +2 -2
  71. package/dist/sky-listitem/sky-listitem.js +7 -4
  72. package/dist/sky-listitem/sky-listitem.js.map +1 -1
  73. package/dist/sky-radio/sky-radio.d.ts +3 -3
  74. package/dist/sky-radio/sky-radio.js +3 -6
  75. package/dist/sky-radio/sky-radio.js.map +1 -1
  76. package/dist/sky-row/sky-row.d.ts +2 -2
  77. package/dist/sky-row/sky-row.js.map +1 -1
  78. package/dist/sky-sheet/sky-sheet.d.ts +6 -6
  79. package/dist/sky-sheet/sky-sheet.js +21 -21
  80. package/dist/sky-sheet/sky-sheet.js.map +1 -1
  81. package/dist/sky-simple-table/sky-simple-table.d.ts +4 -4
  82. package/dist/sky-simple-table/sky-simple-table.js +1 -4
  83. package/dist/sky-simple-table/sky-simple-table.js.map +1 -1
  84. package/dist/sky-theme-provider/sky-theme-provider.d.ts +27 -27
  85. package/dist/sky-theme-provider/sky-theme-provider.js.map +1 -1
  86. package/package.json +1 -1
@@ -1,59 +1,59 @@
1
1
  import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";import{property as r,state as n,query as a,queryAll as l,queryAssignedElements as h,customElement as d}from"lit/decorators.js";import{unsafeHTML as p}from"lit/directives/unsafe-html.js";import{when as c}from"lit/directives/when.js";import{repeat as u}from"lit/directives/repeat.js";import{classMap as y}from"lit/directives/class-map.js";import{resolveColor as v}from"../helper/utils/color-resolver.js";import{cssOnFillEnhance as m}from"../helper/utils/contrast-color.js";import{PopoverController as g}from"../helper/controllers/popover-controller.js";import{FormControlBase as f}from"../helper/internals/form-control-base.js";import{SkyIcon as b}from"../sky-icon/sky-icon.js";import{SkyCheckbox as k}from"../sky-checkbox/sky-checkbox.js";var w=Object.defineProperty,x=Object.getOwnPropertyDescriptor,I=(t,e,i,s)=>{for(var o,r=s>1?void 0:s?x(e,i):e,n=t.length-1;n>=0;n--)(o=t[n])&&(r=(s?o(e,i,r):o(r))||r);return s&&r&&w(e,i,r),r};let S=class extends f{constructor(){super(),this.value="",this.placeholder="Select An Option",this.searchPlaceholder="Search...",this.label="",this._options=[],this.chipSize=20,this.color="primary",this.clearable=!1,this.loading=!1,this.compact=!1,this.disabled=!1,this.searchable=!1,this.multiSelect=!1,this.visibleChips=2,this.selectAll=!1,this._validations=[],this.showErrors=!1,this.errorDisplayMode="single",this.required=!1,this.emitFullObject=!1,this.emittedKey="value",this.displayKey="",this.addOption=!1,this.validationArrayFormat=!1,this.prefix="",this.suffix="",this.prefixColor="",this.suffixColor="",this.justify="flex-start",this.zIndex=11,this.height="200px",this.requiredMessage="Selection is required.",this.readonly=!1,this.enforceMinOneSelection=!1,this.openAbove=!1,this.validationActive=!1,this.invalid=!1,this.variant="default",this.multiDisplay="chips",this.searchQuery="",this.filteredOptions=[],this.focused=!1,this.open=!1,this.selectedItems=[],this.hiddenChipsOpen=!1,this.activeIndex=-1,this.validationErrors=[],this.validationStatus=[],this.hasLeftIcon=!1,this.hasRightIcon=!1,this.optionSlotSet=new Set,this._searchDebounceId=null,this._closeResetId=null,this.dropdownPopover=new g(this,{getAnchor:()=>this.inputWrapperEl,getPopover:()=>this.dropdownEl,cssVarLeft:"--sky-dd-left",cssVarTop:"--sky-dd-top",cssVarWidth:"--sky-dd-width",getPlacement:()=>"bottom",getAlign:()=>"start",getGap:()=>6,getPadding:()=>8,getMatchAnchorWidth:()=>!0,getMaxWidthToViewport:()=>!0,getMaxWidthMode:()=>"cap",getFlip:()=>!0,getFlipOrder:()=>[],getAnimateReposition:()=>!0,getRepositionMs:()=>160,getCloseOnEscape:()=>!0,getCloseOnOutside:()=>!0,getRestoreFocusOnClose:()=>!0,onOpenChange:(t,e)=>{this.open=t,t?(this.focused=!0,null!=this._closeResetId&&(clearTimeout(this._closeResetId),this._closeResetId=null),this.validationActive=!0,this.filterOptions(),requestAnimationFrame(()=>this.focusOnOpen())):(this.activeIndex=-1,null!=this._closeResetId&&clearTimeout(this._closeResetId),this._closeResetId=setTimeout(()=>{this._closeResetId=null,this.open||(this.searchQuery="",this.emitSearchQueryChanged(),this.filterOptions())},S._CLOSE_RESET_MS),this.hiddenChipsOpen=!1,this.hiddenPopover.closePopover("api"))}}),this.hiddenPopover=new g(this,{getAnchor:()=>this.overflowChipEl,getPopover:()=>this.hiddenDropdownEl,cssVarLeft:"--sky-hc-left",cssVarTop:"--sky-hc-top",cssVarWidth:"--sky-hc-width",getPlacement:()=>"bottom",getAlign:()=>"center",getGap:()=>4,getPadding:()=>8,getMatchAnchorWidth:()=>!1,getMaxWidthToViewport:()=>!0,getMaxWidthMode:()=>"cap",getFlip:()=>!0,getFlipOrder:()=>[],getAnimateReposition:()=>!0,getRepositionMs:()=>120,getCloseOnEscape:()=>!0,getCloseOnOutside:()=>!0,getRestoreFocusOnClose:()=>!1,onOpenChange:t=>{this.hiddenChipsOpen=t,t&&this.open&&this.dropdownPopover.closePopover("api")}}),this.refreshOptionSlots=()=>{const t=new Set;this.querySelectorAll('[slot^="option-"]').forEach(e=>{const i=e.slot;i&&t.add(i)}),this.optionSlotSet=t},this.onSearchKeydown=t=>{const{key:e,shiftKey:i}=t;if("Enter"===e)return t.preventDefault(),t.stopPropagation(),void this.commitDropdownEnter();if("ArrowDown"===e||"ArrowUp"===e||"Tab"===e){t.preventDefault(),t.stopPropagation();const i=this.searchable||this.addOption,s=this.multiSelect&&this.selectAll?i?1:0:this.headerRows,o=this.headerRows+Math.max(0,this.filteredOptions.length)-1,r="ArrowUp"===e||"Tab"===e&&t.shiftKey?-1:1;this.activeIndex<s?this.activeIndex=s:this.activeIndex=this.activeIndex+r<s?o:this.activeIndex+r>o?s:this.activeIndex+r,this.scrollActiveItemIntoView()}return"Escape"===e?(t.preventDefault(),t.stopPropagation(),void this.dropdownPopover.closePopover("escape")):void 0},this.handleAddaddOption=t=>{if(t.stopPropagation(),this.disabled||this.readonly)return;if(!this.canAddaddOption())return;const e=this.searchQuery.trim();this.dispatchEvent(new CustomEvent("add-new-option",{detail:{value:e},bubbles:!0,composed:!0})),this.searchQuery="",this.emitSearchQueryChanged(),this.filterOptions()},this.onIconSlotChange=()=>{this.hasLeftIcon=(this.iconLeftEls?.length??0)>0,this.hasRightIcon=(this.iconRightEls?.length??0)>0},this.captureDefaultValue("")}get options(){return this._options}set options(t){const e=this._options;this._options=Array.isArray(t)?t:[],this.requestUpdate("options",e)}get validations(){return this._validations}set validations(t){const e=this._validations;this._validations=Array.isArray(t)?t:[],this.requestUpdate("validations",e)}connectedCallback(){super.connectedCallback(),this.hasAttribute("tabindex")||(this.tabIndex=this.disabled?-1:0),this.refreshOptionSlots()}firstUpdated(){this.dropdownPopover.refreshTargets(),this.hiddenPopover.refreshTargets()}getFormValue(){if(this.disabled||!this.name)return null;if(this.multiSelect){const t=new FormData;return this.selectedItems.forEach(e=>{const i=this.emitFullObject?JSON.stringify(e):String(this.getOptionValue(e));t.append(this.name,i)}),0===this.selectedItems.length&&this.required&&t.append(this.name,""),t}{if(0===this.selectedItems.length)return"";const t=this.selectedItems[0];return this.emitFullObject?JSON.stringify(t):String(this.getOptionValue(t))}}setValueFromFormState(t){if(null===t||""===t)return this.value=this.multiSelect?[]:"",void(this.selectedItems=[]);if(this.multiSelect){let e=[];if(t instanceof FormData)e=t.getAll(this.name);else if(Array.isArray(t))e=t;else if("string"==typeof t)try{const i=JSON.parse(t);e=Array.isArray(i)?i:[t]}catch{e=[t]}this.setValueFromArray(e)}else{let e="";"string"==typeof t?e=t:t instanceof FormData?e=t.get(this.name)?.toString()||"":Array.isArray(t)&&t.length>0&&(e=t[0].toString()),this.value=e,this.syncSelectedItemsWithValue()}}syncFormValue(){if(!this.name||this.disabled)return void this.internals.setFormValue(null);const t=this.getFormValue();if(null!==t)if(this.multiSelect&&Array.isArray(t)){const e=new FormData;t.forEach(t=>{null!=t&&""!==t&&e.append(this.name,String(t))}),this.internals.setFormValue(e)}else this.internals.setFormValue(t);else this.internals.setFormValue(null)}setValueFromArray(t){const e=Array.isArray(this.options)?this.options:[];this.selectedItems=e.filter(e=>{const i=this.getOptionValue(e),s=this.emitFullObject?JSON.stringify(e):String(i);return t.some(t=>{const e=String(t);if(!this.emitFullObject)return e===s;try{const t=JSON.parse(e);return JSON.stringify(t)===s}catch{return e===s}})}),this.value=this.selectedItems.map(t=>this.emitFullObject?t:this.getOptionValue(t))}getValidityAnchor(){return this}isEmpty(){return this.multiSelect?0===this.selectedItems.length:0===this.selectedItems.length||!this.value}getNativeControl(){return this.inputWrapperEl||null}getCustomErrorMessage(){return this.validationErrors?.[0]||""}onFormReset(){super.onFormReset(),this.searchQuery="",this.emitSearchQueryChanged(),this.open=!1,this.invalid=!1,this.validationErrors=[],this.validationActive=!1}onFormDisabled(t){this.disabled=t}onFormStateRestore(t){this.setValueFromFormState(t)}toggleSelectAll(){if(this.disabled||this.readonly)return;const t=t=>String(this.getOptionValue(t));if(this.isAllFilteredSelected()){const e=new Set(this.filteredOptions.map(t=>String(this.getOptionValue(t.original)))),i=this.selectedItems.filter(i=>!e.has(t(i)));if(this.enforceMinOneSelection&&0===i.length)return;this.selectedItems=i}else{const e=new Set(this.selectedItems.map(e=>t(e))),i=this.filteredOptions.map(t=>t.original).filter(i=>!e.has(t(i)));this.selectedItems=[...this.selectedItems,...i]}const e=this.selectedItems.map(t=>this.emitFullObject?t:this.getOptionValue(t));this.value=e,this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:e,selectedItems:[...this.selectedItems],emittedValues:e,isFilteredSelection:!!this.searchQuery.trim()},bubbles:!0,composed:!0})),this.syncFormValue(),this.syncValidity(),this.requestUpdate()}isAllFilteredSelected(){if(0===this.filteredOptions.length)return!1;return this.filteredOptions.map(t=>this.getOptionValue(t.original)).every(t=>this.selectedItems.some(e=>this.getOptionValue(e)===t))}truncateText(t,e){return t.length>e?t.slice(0,e)+"...":t}validateInput(){if(!this.validationActive)return;this.validationErrors=[];const t=this.validationArrayFormat?this.selectedItems:this.value;if(this.required&&this.isEmpty())this.validationErrors.push(this.requiredMessage||"Selection is required.");else if(Array.isArray(this.validations)&&this.validations.length)for(const e of this.validations){const i=e(t);!0!==i&&this.validationErrors.push(String(i||"Invalid value."))}this.invalid=this.validationErrors.length>0,this.dispatchEvent(new CustomEvent(this.invalid?"validation-error":"validation-success",{detail:this.invalid?{errors:this.validationErrors}:{value:this.selectedItems},bubbles:!0,composed:!0})),this.syncValidity(),this.requestUpdate()}validateForForm(){if(this.disabled)return"";const t=this.validationArrayFormat?this.selectedItems:this.value;if(Array.isArray(this.validations)&&this.validations.length)for(const e of this.validations){const i=e(t);if(!0!==i)return String(i||"Invalid value.")}return this.enforceMinOneSelection&&this.isEmpty()?this.requiredMessage||"At least one selection is required.":this.required&&this.isEmpty()?this.requiredMessage||"Selection is required.":""}focus(t){super.focus(t),this.searchInputEl?this.searchInputEl.focus(t):this.inputWrapperEl&&this.inputWrapperEl.focus(t)}blur(){this.open&&this.dropdownPopover.closePopover("light-dismiss"),super.blur()}handleFocus(){this.focused=!0,this.validationActive||(this.validationActive=!0)}reset(){this.value=this.multiSelect?[]:"",this.selectedItems=[],this.searchQuery="",this.emitSearchQueryChanged(),this.filterOptions(),this.validationErrors=[],this.validationActive=!1,this.open=!1,this.invalid=!1,this.syncFormValue(),this.syncValidity(),this.requestUpdate()}openDropdown(){this.disabled||this.readonly||this.dropdownPopover.openPopover()}closeDropdown(){this.dropdownPopover.closePopover("api")}clearSelection(){this.handleClear()}handleBlur(){this.open||(this.focused=!1,this.validationActive&&this.validateInput())}updated(t){t.has("color")&&this.style.setProperty("--sky-dropdown-color",v(this.color)),t.has("height")&&this.style.setProperty("--sky-scroll-height",this.height)}willUpdate(t){t.has("value")&&(this.syncSelectedItemsWithValue(),this.syncFormValue(),this.syncValidity()),t.has("options")&&(Array.isArray(this.options)||(this.options=[]),this.syncSelectedItemsWithValue(),this.filterOptions(),this.syncFormValue(),this.syncValidity()),t.has("searchable")&&this.filterOptions(),t.has("searchQuery")&&this.filterOptions(),t.has("validationErrors")&&this.requestUpdate()}syncSelectedItemsWithValue(){const t=Array.isArray(this.options)?this.options:[],e=this.multiSelect&&Array.isArray(this.value)&&0===this.value.length;if(null==this.value||""===this.value||e)return this.selectedItems=[],void(this.value=this.multiSelect?[]:"");if(this.multiSelect&&"string"==typeof this.value)try{const t=JSON.parse(this.value);Array.isArray(t)&&(this.value=t)}catch(t){}const i=t=>{const e=this.getOptionValue(t);return"object"==typeof e?JSON.stringify(e):String(e)};if(this.multiSelect){const e=Array.isArray(this.value)?this.value:[this.value],s=new Set(e.map(t=>this.emitFullObject&&"object"==typeof t?JSON.stringify(t):String(t)));this.selectedItems=t.filter(t=>{const e=this.emitFullObject?JSON.stringify(t):i(t);return s.has(e)}),this.value=this.selectedItems.map(t=>this.emitFullObject?t:this.getOptionValue(t))}else{const e=this.emitFullObject&&"object"==typeof this.value?JSON.stringify(this.value):String(this.value),s=t.find(t=>(this.emitFullObject?JSON.stringify(t):i(t))===e);this.selectedItems=s?[s]:[],this.value=s?this.emitFullObject?s:this.getOptionValue(s):""}}filterOptions(){const t=Array.isArray(this.options)?this.options:[],e=(t,e)=>{const i=this.getOptionLabel(t);return{original:t,_idx:e,label:i,highlighted:i}};if(!this.searchable||!this.searchQuery.trim())return void(this.filteredOptions=t.map(e));const i=this.searchQuery.toLowerCase();this.filteredOptions=t.map(e).filter(t=>String(t.label).toLowerCase().includes(i)).map(t=>{const e=new RegExp(`(${i})`,"gi");return{...t,highlighted:String(t.label).replace(e,t=>`<span class="highlight">${t}</span>`)}})}emitSearchQueryChanged(){this.dispatchEvent(new CustomEvent("search-query-changed",{detail:{searchQuery:this.searchQuery},bubbles:!0,composed:!0}))}handleInput(t){if(this.disabled||this.readonly)return;this.searchQuery=t.target.value;const e=Array.isArray(this.options)?this.options.length:0,i=this.searchable&&e>S._SEARCH_DEBOUNCE_OPTIONS_THRESHOLD,s=()=>{this.filterOptions(),this.emitSearchQueryChanged()};i?(null!=this._searchDebounceId&&clearTimeout(this._searchDebounceId),this._searchDebounceId=setTimeout(()=>{this._searchDebounceId=null,s()},S._SEARCH_DEBOUNCE_MS)):s()}disconnectedCallback(){super.disconnectedCallback(),null!=this._searchDebounceId&&(clearTimeout(this._searchDebounceId),this._searchDebounceId=null),null!=this._closeResetId&&(clearTimeout(this._closeResetId),this._closeResetId=null)}handleClear(){if(this.disabled||this.readonly)return;const t=this.multiSelect?this.selectedItems.length>0:!!this.value;this.enforceMinOneSelection&&t||(this.value=this.multiSelect?[]:"",this.selectedItems=[],this.searchQuery="",this.emitSearchQueryChanged(),this.open=!1,this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this.value,selectedItems:[],isFilteredSelection:!1},bubbles:!0,composed:!0})),this.syncFormValue(),this.syncValidity())}selectOption(t){if(this.disabled||this.readonly)return;const e=t=>this.emitFullObject?t:this.getOptionValue(t),i=t=>{const e=this.getOptionValue(t);return"object"==typeof e?JSON.stringify(e):String(e)},s=""!==this.searchQuery.trim();if(!this.multiSelect){const o=this.selectedItems.length&&i(this.selectedItems[0])===i(t);return o&&this.enforceMinOneSelection?void(this.open=!1):(o?(this.selectedItems=[],this.value=""):(this.selectedItems=[t],this.value=e(t)),this.validateInput(),this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this.value,selectedItems:this.selectedItems,emittedValues:this.selectedItems.map(e),isFilteredSelection:s},bubbles:!0,composed:!0})),this.dropdownPopover.closePopover("api"),this.syncFormValue(),this.syncValidity(),void this.requestUpdate())}const o=this.selectedItems.findIndex(e=>i(e)===i(t));let r;r=o>-1?[...this.selectedItems.slice(0,o),...this.selectedItems.slice(o+1)]:[...this.selectedItems,t],this.enforceMinOneSelection&&0===r.length||(this.selectedItems=r,this.value=r.map(e),this.validateInput(),this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this.value,selectedItems:this.selectedItems,emittedValues:this.value,isFilteredSelection:s},bubbles:!0,composed:!0})),this.syncFormValue(),this.syncValidity(),this.open=!0,this.requestUpdate())}toggleHiddenChips(t){t.stopPropagation(),t.preventDefault(),this.disabled||this.readonly||(this.open&&this.dropdownPopover.closePopover("api"),this.hiddenPopover.toggle())}renderHiddenChipsDropdown(){return s`
2
- <div
3
- class="hidden-chips-dropdown"
4
- part="hidden-chips-dropdown"
5
- popover="manual"
6
- @toggle=${this.hiddenPopover.onToggle}
7
- @click=${t=>t.stopPropagation()}
8
- style="
2
+ <div
3
+ class="hidden-chips-dropdown"
4
+ part="hidden-chips-dropdown"
5
+ popover="manual"
6
+ @toggle=${this.hiddenPopover.onToggle}
7
+ @click=${t=>t.stopPropagation()}
8
+ style="
9
9
  left: var(--sky-hc-left, 0px);
10
10
  top: var(--sky-hc-top, 0px);
11
11
  width: var(--sky-hc-width, max-content);
12
12
  z-index: ${this.zIndex};
13
13
  "
14
- >
15
- ${u(this.selectedItems.slice(this.visibleChips),t=>String(this.getOptionValue(t)),t=>s`
16
- <div class="hidden-chip-inner" part="hidden-chip-inner">
17
- <span part="hidden-chip-label">
18
- ${this.truncateText(String(this.getOptionLabel(t)),this.chipSize)}
19
- </span>
20
- <sky-icon
21
- part="remove-chip-icon"
22
- class="remove-chip-inner"
23
- icon="ion:close"
24
- @click=${e=>{e.stopPropagation(),this.removeChip(t)}}
25
- ></sky-icon>
26
- </div>
27
- `)}
28
- </div>
29
- `}removeChip(t){if(this.disabled||this.readonly)return;const e=t=>String(this.getOptionValue(t)),i=this.selectedItems.filter(i=>e(i)!==e(t));if(!this.enforceMinOneSelection||0!==i.length){if(this.selectedItems=i,this.selectedItems.length<=this.visibleChips&&this.hiddenPopover.closePopover("api"),this.multiSelect){const t=this.selectedItems.map(t=>this.emitFullObject?t:this.getOptionValue(t));this.value=t,this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:t,selectedItems:[...this.selectedItems],emittedValues:t,isFilteredSelection:!1},bubbles:!0,composed:!0}))}else this.value="",this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this.value,selectedItems:[],isFilteredSelection:!1},bubbles:!0,composed:!0}));this.syncFormValue(),this.syncValidity(),this.validateInput(),this.requestUpdate()}}renderChips(){const t=Array.isArray(this.selectedItems)?this.selectedItems.slice(0,this.visibleChips):[],e=this.selectedItems.length-this.visibleChips;return s`
14
+ >
15
+ ${u(this.selectedItems.slice(this.visibleChips),t=>String(this.getOptionValue(t)),t=>s`
16
+ <div class="hidden-chip-inner" part="hidden-chip-inner">
17
+ <span part="hidden-chip-label">
18
+ ${this.truncateText(String(this.getOptionLabel(t)),this.chipSize)}
19
+ </span>
20
+ <sky-icon
21
+ part="remove-chip-icon"
22
+ class="remove-chip-inner"
23
+ icon="ion:close"
24
+ @click=${e=>{e.stopPropagation(),this.removeChip(t)}}
25
+ ></sky-icon>
26
+ </div>
27
+ `)}
28
+ </div>
29
+ `}removeChip(t){if(this.disabled||this.readonly)return;const e=t=>String(this.getOptionValue(t)),i=this.selectedItems.filter(i=>e(i)!==e(t));if(!this.enforceMinOneSelection||0!==i.length){if(this.selectedItems=i,this.selectedItems.length<=this.visibleChips&&this.hiddenPopover.closePopover("api"),this.multiSelect){const t=this.selectedItems.map(t=>this.emitFullObject?t:this.getOptionValue(t));this.value=t,this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:t,selectedItems:[...this.selectedItems],emittedValues:t,isFilteredSelection:!1},bubbles:!0,composed:!0}))}else this.value="",this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this.value,selectedItems:[],isFilteredSelection:!1},bubbles:!0,composed:!0}));this.syncFormValue(),this.syncValidity(),this.validateInput(),this.requestUpdate()}}renderChips(){const t=Array.isArray(this.selectedItems)?this.selectedItems.slice(0,this.visibleChips):[],e=this.selectedItems.length-this.visibleChips;return s`
30
30
  ${u(t,t=>String(this.getOptionValue(t)),t=>s`
31
31
  <span class="chip" ?compact=${this.compact} part="chip">
32
32
  <span class="chip-label" part="chip-label"
33
33
  >${this.truncateText(String(this.getOptionLabel(t)),this.chipSize)}</span
34
34
  >
35
35
  ${c(this.multiSelect,()=>s`
36
- <sky-icon
37
- class="remove-chip"
38
- part="remove-chip-icon"
39
- ?compact=${this.compact}
40
- @click=${e=>{e.stopPropagation(),this.removeChip(t)}}
41
- icon="ion:close"
42
- ></sky-icon>
43
- `)}
36
+ <sky-icon
37
+ class="remove-chip"
38
+ part="remove-chip-icon"
39
+ ?compact=${this.compact}
40
+ @click=${e=>{e.stopPropagation(),this.removeChip(t)}}
41
+ icon="ion:close"
42
+ ></sky-icon>
43
+ `)}
44
44
  </span>
45
45
  `)}
46
46
  ${c(e>0,()=>s`
47
- <span
48
- class="chip overflow-chip"
49
- part="overflow-chip"
50
- style="cursor:pointer"
51
- ?compact=${this.compact}
52
- @click=${this.toggleHiddenChips}
53
- >
54
- + ${e}
55
- </span>
56
- `)}
47
+ <span
48
+ class="chip overflow-chip"
49
+ part="overflow-chip"
50
+ style="cursor:pointer"
51
+ ?compact=${this.compact}
52
+ @click=${this.toggleHiddenChips}
53
+ >
54
+ + ${e}
55
+ </span>
56
+ `)}
57
57
  `}resolveMultiDisplay(){const t=this.multiDisplay;return"text"===t||"count"===t||"chips"===t?t:"chips"}renderSelectedValue(){if(!this.selectedItems.length)return null;if(!this.multiSelect){const t=String(this.getOptionLabel(this.selectedItems[0]));return s`
58
58
  <span
59
59
  class="value-summary"
@@ -70,27 +70,23 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
70
70
  >${i}</span
71
71
  >
72
72
  `}return s`
73
- <div
74
- class="chip-container"
75
- part="chip-container"
76
- ?compact=${this.compact}
77
- >
73
+ <div class="chip-container" part="chip-container" ?compact=${this.compact}>
78
74
  ${this.renderChips()}
79
75
  </div>
80
76
  `}handleKeydown(t){if(t.target?.closest(".search-container"))return;const{key:e,shiftKey:i}=t;if(!this.open&&("ArrowDown"===e||"ArrowUp"===e||"Enter"===e))return this.dropdownPopover.openPopover(),void t.preventDefault();if(!this.open)return;const s=this.searchable||this.addOption,o=this.multiSelect&&this.selectAll?s?1:0:this.headerRows,r=this.headerRows+Math.max(0,this.filteredOptions.length)-1;if(this.activeIndex<o&&(this.activeIndex=o),"ArrowDown"===e){const e=this.activeIndex<o?o:this.activeIndex;return this.activeIndex=e>=r?o:e+1,this.scrollActiveItemIntoView(),void t.preventDefault()}if("ArrowUp"===e){const e=this.activeIndex<o?o:this.activeIndex;return this.activeIndex=e<=o?r:e-1,this.scrollActiveItemIntoView(),void t.preventDefault()}if("Tab"===e){if(i){const t=this.activeIndex<o?o:this.activeIndex;this.activeIndex=t<=o?r:t-1}else{const t=this.activeIndex<o?o:this.activeIndex;this.activeIndex=t>=r?o:t+1}return this.scrollActiveItemIntoView(),void t.preventDefault()}return"Enter"===e?(t.preventDefault(),t.stopPropagation(),void this.commitDropdownEnter()):this.readonly?void("Escape"===e&&(this.open=!1,t.preventDefault())):"Home"===e?(this.activeIndex=o,this.scrollActiveItemIntoView(),void t.preventDefault()):"End"===e?(this.activeIndex=Math.max(o,r),this.scrollActiveItemIntoView(),void t.preventDefault()):void 0}get headerRows(){let t=0;return(this.searchable||this.addOption)&&(t+=1),this.multiSelect&&this.selectAll&&(t+=1),t}getOptionByActiveIndex(){if(!this.open)return null;const t=this.activeIndex;if(t<0)return null;if((this.searchable||this.addOption)&&0===t)return{kind:"search"};const e=this.searchable||this.addOption?1:0;if(this.multiSelect&&this.selectAll&&t===e)return{kind:"select-all"};const i=t-this.headerRows;return i>=0&&i<this.filteredOptions.length?{kind:"option",optionIndex:i}:null}commitDropdownEnter(){const t=this.getOptionByActiveIndex();if(t)if("search"!==t.kind)if("select-all"!==t.kind){if("option"===t.kind&&"number"==typeof t.optionIndex){const e=this.filteredOptions[t.optionIndex].original;this.selectOption(e)}}else this.toggleSelectAll();else this.addOption&&this.canAddaddOption()?(this.dispatchEvent(new CustomEvent("add-new-option",{detail:{value:this.searchQuery.trim()},bubbles:!0,composed:!0})),this.searchQuery="",this.emitSearchQueryChanged(),this.filterOptions()):this.filteredOptions.length>0&&this.selectOption(this.filteredOptions[0].original)}focusOnOpen(){const t=this.searchInputEl;if(t&&document.activeElement!==t&&requestAnimationFrame(()=>t.focus()),this.filteredOptions.length>0){let t=0;if(this.selectedItems.length>0){const e=this.getOptionValue(this.selectedItems[0]),i=this.filteredOptions.findIndex(t=>this.getOptionValue(t.original)===e);i>=0&&(t=i)}return this.activeIndex=this.headerRows+t,void this.scrollActiveItemIntoView()}this.activeIndex=this.searchable||this.addOption?0:-1}canAddaddOption(){if(!this.addOption)return!1;const t=this.searchQuery.trim();if(!t)return!1;return!(Array.isArray(this.options)?this.options:[]).some(e=>{const i=String(this.getOptionLabel(e)||"").toLowerCase(),s=(this.getOptionValue(e)??"").toString().toLowerCase();return i===t.toLowerCase()||s===t.toLowerCase()})}scrollActiveItemIntoView(){const t=Array.from(this.rowEls).find(t=>Number(t.dataset.rowIndex)===this.activeIndex);t?.scrollIntoView({block:"nearest",behavior:"smooth"})}toggleDropdown(t){t.stopPropagation(),this.disabled||this.readonly||(this.hiddenChipsOpen&&this.hiddenPopover.closePopover("api"),this.validationActive=!0,this.dropdownPopover.toggle())}renderDropdown(){return s`
81
- <div
82
- class="dropdown"
83
- part="dropdown"
84
- popover="manual"
85
- @toggle=${this.dropdownPopover.onToggle}
86
- @click=${t=>t.stopPropagation()}
87
- style="
77
+ <div
78
+ class="dropdown"
79
+ part="dropdown"
80
+ popover="manual"
81
+ @toggle=${this.dropdownPopover.onToggle}
82
+ @click=${t=>t.stopPropagation()}
83
+ style="
88
84
  left: var(--sky-dd-left, 0px);
89
85
  top: var(--sky-dd-top, 0px);
90
86
  min-width: var(--sky-dd-width, 100%);
91
87
  "
92
- >
93
- ${c(this.searchable||this.addOption,()=>s`
88
+ >
89
+ ${c(this.searchable||this.addOption,()=>s`
94
90
  <div
95
91
  class="search-container"
96
92
  data-row-index="0"
@@ -114,19 +110,19 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
114
110
  />
115
111
 
116
112
  ${c(this.addOption,()=>s`
117
- <sky-icon
118
- class="new-option-btn"
119
- icon="ion:add"
120
- part="add-option-icon"
121
- title="Add as new option"
122
- aria-label="Add as new option"
123
- @click=${this.handleAddaddOption}
124
- ></sky-icon>
125
- `)}
113
+ <sky-icon
114
+ class="new-option-btn"
115
+ icon="ion:add"
116
+ part="add-option-icon"
117
+ title="Add as new option"
118
+ aria-label="Add as new option"
119
+ @click=${this.handleAddaddOption}
120
+ ></sky-icon>
121
+ `)}
126
122
  </div>
127
123
  `)}
128
124
 
129
- <div class="dropdown-scroller">
125
+ <div class="dropdown-scroller">
130
126
  ${c(this.multiSelect&&this.selectAll&&this.filteredOptions.length,()=>{const t=this.searchable||this.addOption?1:0,e=y({"dropdown-item":!0,active:this.activeIndex===t,selected:this.isAllFilteredSelected()});return s`
131
127
  <div
132
128
  class=${e}
@@ -143,20 +139,20 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
143
139
  </div>
144
140
  `})}
145
141
  ${c(this.filteredOptions.length>0,()=>u(this.filteredOptions,({original:t,_idx:e})=>`${e}-${String(this.getOptionValue(t))}`,({original:t,highlighted:e,_idx:i},o)=>{const r=`option-${i}`,n=this.optionSlotSet.has(r),a=t=>String(this.getOptionValue(t.original??t)),l=Array.isArray(this.selectedItems)&&this.selectedItems.some(e=>a(e)===a(t)),h=this.headerRows+o,d=h===this.activeIndex,u=y({"dropdown-item":!0,active:d,selected:l});return s`
146
- <div
147
- class=${u}
148
- data-row-index=${h}
149
- style="justify-content: ${this.justify};"
150
- part="option"
151
- @click=${()=>this.selectOption(t)}
152
- @pointerenter=${()=>{this.activeIndex=h}}
153
- ?compact=${this.compact}
154
- >
155
- ${c(this.multiSelect,()=>s` <sky-checkbox
156
- .checked=${l}
157
- readonly
158
- ></sky-checkbox>`)}
159
- ${c(n,()=>s`
142
+ <div
143
+ class=${u}
144
+ data-row-index=${h}
145
+ style="justify-content: ${this.justify};"
146
+ part="option"
147
+ @click=${()=>this.selectOption(t)}
148
+ @pointerenter=${()=>{this.activeIndex=h}}
149
+ ?compact=${this.compact}
150
+ >
151
+ ${c(this.multiSelect,()=>s` <sky-checkbox
152
+ .checked=${l}
153
+ readonly
154
+ ></sky-checkbox>`)}
155
+ ${c(n,()=>s`
160
156
  <div style="display: flex; gap: 8px;width:100%">
161
157
  <slot name=${r}>
162
158
  <span
@@ -167,21 +163,21 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
167
163
  </slot>
168
164
  </div>
169
165
  `,()=>s`<span
170
- class="highlighted-text"
171
- part="highlighted-text"
172
- >${p(e)}</span
173
- >`)}
174
- </div>
175
- `}),()=>s`<div
166
+ class="highlighted-text"
167
+ part="highlighted-text"
168
+ >${p(e)}</span
169
+ >`)}
170
+ </div>
171
+ `}),()=>s`<div
176
172
  class="dropdown-item"
177
173
  part="no-options"
178
174
  data-row-index=${this.headerRows}
179
175
  >
180
176
  No options found
181
177
  </div>`)}
182
- </div>
183
178
  </div>
184
- `}getOptionValue(t){return this.emitFullObject?t:"object"==typeof t&&null!==t?this.emittedKey in t?t[this.emittedKey]:"value"in t?t.value:t:t}getOptionLabel(t){if(!t)return"";if(!Array.isArray(this.options)||this.options,this.displayKey&&"object"==typeof t&&t[this.displayKey])return String(t[this.displayKey]);if("object"==typeof t){const e=Object.values(t).filter(t=>"string"==typeof t);return e.length>0?e[0]:JSON.stringify(t)}return String(t)}renderValidationErrors(){if(!this.showErrors||!this.validationActive)return null;const t=this.getErrorMessages();if(!t.length)return null;const e=`${this.id||"sky-combobox"}-errors`;return s`
179
+ </div>
180
+ `}getOptionValue(t){return this.emitFullObject?t:"object"==typeof t&&null!==t?this.emittedKey in t?t[this.emittedKey]:"value"in t?t.value:t:t}getOptionLabel(t){if(!t)return"";if(!Array.isArray(this.options)||this.options,this.displayKey&&"object"==typeof t&&t[this.displayKey])return String(t[this.displayKey]);if("object"==typeof t){const e=Object.values(t).filter(t=>"string"==typeof t);return e.length>0?e[0]:JSON.stringify(t)}return String(t)}renderValidationErrors(){if(!this.showErrors||!this.validationActive)return null;const t=this.getErrorMessages();if(!t.length)return null;const e=`${this.id||"sky-combobox"}-errors`;return s`
185
181
  <div class="progress-message">
186
182
  <ul id=${e} class="error-list" part="error-list">
187
183
  ${u(t,t=>t,t=>s`<li class="error" part="error-item">${t}</li>`)}
@@ -197,24 +193,24 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
197
193
  <slot name="icon-left" @slotchange=${this.onIconSlotChange}></slot>
198
194
  </div>
199
195
  `,h=c(this.selectedItems.length>0,()=>this.renderSelectedValue(),()=>s`<label
200
- class=${i}
201
- part="placeholder-label"
202
- ?compact=${this.compact}
196
+ class=${i}
197
+ part="placeholder-label"
198
+ ?compact=${this.compact}
199
+ >
200
+ <span style="color:${this.prefixColor}">${this.prefix}</span
201
+ >${this.placeholder}<span style="color:${this.suffixColor}"
202
+ >${this.suffix}</span
203
203
  >
204
- <span style="color:${this.prefixColor}">${this.prefix}</span
205
- >${this.placeholder}<span style="color:${this.suffixColor}"
206
- >${this.suffix}</span
207
- >
208
- </label>`),d=s`
204
+ </label>`),d=s`
209
205
  <div class="field-trailing" part="field-trailing">
210
206
  ${c(this.clearable&&!this.enforceMinOneSelection&&(this.value||this.selectedItems.length),()=>s`<sky-icon
211
- class="clear-button"
212
- part="clear-button"
213
- ?compact=${this.compact}
214
- @click=${t=>{t.stopPropagation(),this.handleClear()}}
215
- ?loading=${this.loading}
216
- icon="ion:close"
217
- ></sky-icon>`)}
207
+ class="clear-button"
208
+ part="clear-button"
209
+ ?compact=${this.compact}
210
+ @click=${t=>{t.stopPropagation(),this.handleClear()}}
211
+ ?loading=${this.loading}
212
+ icon="ion:close"
213
+ ></sky-icon>`)}
218
214
  ${c(this.loading,()=>s`<div class="loading-indicator right"></div>`,()=>this.hasRightIcon?s`<div
219
215
  part="icon-slot"
220
216
  class=${e}
@@ -285,13 +281,11 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
285
281
  </div>
286
282
  `;return s`
287
283
  <div class="combo-box-container" part="combo-box-container">
288
- ${r||n?o:a} ${f}
284
+ ${r||n?o:a}
285
+ ${f}
289
286
  ${this.renderHiddenChipsDropdown()} ${this.renderDropdown()}
290
287
  ${this.renderValidationErrors()}
291
- <slot
292
- style="display:none"
293
- @slotchange=${this.refreshOptionSlots}
294
- ></slot>
288
+ <slot style="display:none" @slotchange=${this.refreshOptionSlots}></slot>
295
289
  </div>
296
290
  `}};S.dependencies={"sky-icon":b,"sky-checkbox":k},S._SEARCH_DEBOUNCE_MS=150,S._SEARCH_DEBOUNCE_OPTIONS_THRESHOLD=30,S._CLOSE_RESET_MS=250,S.styles=e`
297
291
  :host {
@@ -345,21 +339,21 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
345
339
  cursor: default;
346
340
  }
347
341
 
348
- :host([variant='highlight']) .label {
342
+ :host([variant="highlight"]) .label {
349
343
  color: var(--sky-dropdown-color);
350
344
  }
351
345
 
352
346
  /* Fieldset / legend */
353
- :host([variant='fieldset']) {
347
+ :host([variant="fieldset"]) {
354
348
  overflow: visible;
355
349
  padding-block-start: 0;
356
350
  }
357
351
 
358
- :host([variant='fieldset']) .combo-box-container {
352
+ :host([variant="fieldset"]) .combo-box-container {
359
353
  overflow: visible;
360
354
  }
361
355
 
362
- :host([variant='fieldset']) fieldset.input-wrapper {
356
+ :host([variant="fieldset"]) fieldset.input-wrapper {
363
357
  display: block;
364
358
  height: auto;
365
359
  margin: 0;
@@ -371,16 +365,18 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
371
365
  box-shadow: none;
372
366
  }
373
367
 
374
- :host([variant='fieldset']) fieldset.input-wrapper[compact] {
368
+ :host([variant="fieldset"]) fieldset.input-wrapper[compact] {
375
369
  height: auto;
376
370
  }
377
371
 
378
- :host([variant='fieldset']) .input-fieldset-body {
372
+ :host([variant="fieldset"]) .input-fieldset-body {
379
373
  display: flex;
380
374
  width: 100%;
381
375
  align-items: center;
382
376
  box-sizing: border-box;
383
- height: calc(var(--sky-input-height) - 2 * var(--sky-input-border-width));
377
+ height: calc(
378
+ var(--sky-input-height) - 2 * var(--sky-input-border-width)
379
+ );
384
380
  min-height: calc(
385
381
  var(--sky-input-height) - 2 * var(--sky-input-border-width)
386
382
  );
@@ -391,9 +387,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
391
387
  overflow: hidden;
392
388
  }
393
389
 
394
- :host([variant='fieldset'])
395
- fieldset.input-wrapper[compact]
396
- .input-fieldset-body {
390
+ :host([variant="fieldset"]) fieldset.input-wrapper[compact] .input-fieldset-body {
397
391
  height: calc(
398
392
  var(--sky-input-height-compact) - 2 * var(--sky-input-border-width)
399
393
  );
@@ -403,16 +397,17 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
403
397
  }
404
398
 
405
399
  /* Multi chips stay single-line; do not grow taller than sky-input */
406
- :host([variant='fieldset'])
407
- .input-fieldset-body:has(.chip:not([single-select])) {
408
- height: calc(var(--sky-input-height) - 2 * var(--sky-input-border-width));
400
+ :host([variant="fieldset"]) .input-fieldset-body:has(.chip:not([single-select])) {
401
+ height: calc(
402
+ var(--sky-input-height) - 2 * var(--sky-input-border-width)
403
+ );
409
404
  min-height: calc(
410
405
  var(--sky-input-height) - 2 * var(--sky-input-border-width)
411
406
  );
412
407
  padding-block: 0;
413
408
  }
414
409
 
415
- :host([variant='fieldset'][compact])
410
+ :host([variant="fieldset"][compact])
416
411
  .input-fieldset-body:has(.chip:not([single-select])) {
417
412
  height: calc(
418
413
  var(--sky-input-height-compact) - 2 * var(--sky-input-border-width)
@@ -423,7 +418,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
423
418
  padding-block: 0;
424
419
  }
425
420
 
426
- :host([variant='fieldset']) legend.label {
421
+ :host([variant="fieldset"]) legend.label {
427
422
  float: unset;
428
423
  width: auto;
429
424
  max-width: calc(100% - 2 * var(--sky-input-pad-x));
@@ -443,48 +438,46 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
443
438
  pointer-events: none;
444
439
  }
445
440
 
446
- :host([variant='fieldset']) .combo-box-container:focus-within legend.label,
447
- :host([variant='fieldset']) .input-wrapper[open] legend.label {
441
+ :host([variant="fieldset"]) .combo-box-container:focus-within legend.label,
442
+ :host([variant="fieldset"]) .input-wrapper[open] legend.label {
448
443
  color: var(--sky-dropdown-color);
449
444
  font-size: var(--sky-font-size-xs);
450
445
  }
451
446
 
452
- :host([variant='fieldset']) .input-wrapper::after {
447
+ :host([variant="fieldset"]) .input-wrapper::after {
453
448
  content: none;
454
449
  display: none;
455
450
  }
456
451
 
457
- :host([variant='fieldset']) .input-wrapper[open],
458
- :host([variant='fieldset']) .input-wrapper:focus-visible {
452
+ :host([variant="fieldset"]) .input-wrapper[open],
453
+ :host([variant="fieldset"]) .input-wrapper:focus-visible {
459
454
  border-color: var(--sky-dropdown-color);
460
455
  }
461
456
 
462
- :host([variant='fieldset'][validationActive]:invalid) .input-wrapper {
457
+ :host([variant="fieldset"][validationActive]:invalid) .input-wrapper {
463
458
  border-color: var(--sky-danger-primary);
464
459
  }
465
460
 
466
- :host([variant='fieldset'][validationActive]:invalid) legend.label {
461
+ :host([variant="fieldset"][validationActive]:invalid) legend.label {
467
462
  color: var(--sky-danger-primary);
468
463
  }
469
464
 
470
- :host([variant='fieldset'][compact]) legend.label,
471
- :host([variant='fieldset'][compact])
472
- .combo-box-container:focus-within
473
- legend.label,
474
- :host([variant='fieldset'][compact]) .input-wrapper[open] legend.label {
465
+ :host([variant="fieldset"][compact]) legend.label,
466
+ :host([variant="fieldset"][compact]) .combo-box-container:focus-within legend.label,
467
+ :host([variant="fieldset"][compact]) .input-wrapper[open] legend.label {
475
468
  font-size: var(--sky-font-size-xs);
476
469
  line-height: 1.4;
477
470
  }
478
471
 
479
472
  /* Inside: label in the wrapper above value row — keep tokens in sync with sky-input */
480
- :host([variant='inside']) {
473
+ :host([variant="inside"]) {
481
474
  --sky-input-height-inside: 44px;
482
475
  --sky-input-height-inside-compact: 40px;
483
476
  --sky-input-inside-label-block: 0.15rem;
484
477
  --sky-input-inside-value-min: 1.375rem;
485
478
  }
486
479
 
487
- :host([variant='inside']) .input-wrapper {
480
+ :host([variant="inside"]) .input-wrapper {
488
481
  height: auto;
489
482
  min-height: var(--sky-input-height-inside);
490
483
  align-items: center;
@@ -492,13 +485,13 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
492
485
  overflow: hidden;
493
486
  }
494
487
 
495
- :host([variant='inside']) .input-wrapper[compact] {
488
+ :host([variant="inside"]) .input-wrapper[compact] {
496
489
  height: auto;
497
490
  min-height: var(--sky-input-height-inside-compact);
498
491
  padding-block: var(--sky-input-pad-y-sm, 0px);
499
492
  }
500
493
 
501
- :host([variant='inside']) .input-inside-main {
494
+ :host([variant="inside"]) .input-inside-main {
502
495
  flex: 1 1 0%;
503
496
  min-width: 0;
504
497
  display: flex;
@@ -510,7 +503,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
510
503
  overflow: hidden;
511
504
  }
512
505
 
513
- :host([variant='inside']) .input-inside-main > .label {
506
+ :host([variant="inside"]) .input-inside-main > .label {
514
507
  margin: 0;
515
508
  padding-inline: var(--sky-input-pad-x);
516
509
  font-size: var(--sky-font-size-xs);
@@ -524,39 +517,28 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
524
517
  flex: 0 0 auto;
525
518
  }
526
519
 
527
- :host([variant='inside'][compact]) .input-inside-main > .label {
520
+ :host([variant="inside"][compact]) .input-inside-main > .label {
528
521
  font-size: 0.6875rem;
529
522
  line-height: 1.3;
530
523
  min-height: calc(0.6875rem * 1.3);
531
524
  }
532
525
 
533
- :host([variant='inside'])
534
- .combo-box-container:focus-within
535
- .input-inside-main
536
- > .label,
537
- :host([variant='inside']) .input-wrapper[open] .input-inside-main > .label {
526
+ :host([variant="inside"]) .combo-box-container:focus-within .input-inside-main > .label,
527
+ :host([variant="inside"]) .input-wrapper[open] .input-inside-main > .label {
538
528
  color: var(--sky-dropdown-color);
539
529
  font-size: var(--sky-font-size-xs);
540
530
  }
541
531
 
542
- :host([variant='inside'][compact])
543
- .combo-box-container:focus-within
544
- .input-inside-main
545
- > .label,
546
- :host([variant='inside'][compact])
547
- .input-wrapper[open]
548
- .input-inside-main
549
- > .label {
532
+ :host([variant="inside"][compact]) .combo-box-container:focus-within .input-inside-main > .label,
533
+ :host([variant="inside"][compact]) .input-wrapper[open] .input-inside-main > .label {
550
534
  font-size: 0.6875rem;
551
535
  }
552
536
 
553
- :host([variant='inside'][validationActive]:invalid)
554
- .input-inside-main
555
- > .label {
537
+ :host([variant="inside"][validationActive]:invalid) .input-inside-main > .label {
556
538
  color: var(--sky-danger-primary);
557
539
  }
558
540
 
559
- :host([variant='inside']) .input-inside-row {
541
+ :host([variant="inside"]) .input-inside-row {
560
542
  display: flex;
561
543
  align-items: center;
562
544
  min-width: 0;
@@ -568,33 +550,24 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
568
550
  }
569
551
 
570
552
  /* Match sky-input: label + value share pad-x; zero start when left icon present */
571
- :host([variant='inside']) .input-inside-main > .label,
572
- :host([variant='inside']) .chip-container,
573
- :host([variant='inside']) .value-summary,
574
- :host([variant='inside']) .placeholder-label {
553
+ :host([variant="inside"]) .input-inside-main > .label,
554
+ :host([variant="inside"]) .chip-container,
555
+ :host([variant="inside"]) .value-summary,
556
+ :host([variant="inside"]) .placeholder-label {
575
557
  padding-inline-start: var(--sky-input-pad-x);
576
558
  padding-inline-end: var(--sky-input-pad-x);
577
559
  }
578
560
 
579
- :host([variant='inside'])
580
- .input-wrapper:has(.icon-slot[filled].left)
581
- .input-inside-main
582
- > .label,
583
- :host([variant='inside'])
584
- .input-wrapper:has(.icon-slot[filled].left)
585
- .chip-container,
586
- :host([variant='inside'])
587
- .input-wrapper:has(.icon-slot[filled].left)
588
- .value-summary,
589
- :host([variant='inside'])
590
- .input-wrapper:has(.icon-slot[filled].left)
591
- .placeholder-label {
561
+ :host([variant="inside"]) .input-wrapper:has(.icon-slot[filled].left) .input-inside-main > .label,
562
+ :host([variant="inside"]) .input-wrapper:has(.icon-slot[filled].left) .chip-container,
563
+ :host([variant="inside"]) .input-wrapper:has(.icon-slot[filled].left) .value-summary,
564
+ :host([variant="inside"]) .input-wrapper:has(.icon-slot[filled].left) .placeholder-label {
592
565
  padding-inline-start: 0;
593
566
  }
594
567
 
595
568
  /* Left icon / trailing chrome centered to label+value column (like sky-input) */
596
- :host([variant='inside']) .icon-slot,
597
- :host([variant='inside']) .icon-slot[filled] {
569
+ :host([variant="inside"]) .icon-slot,
570
+ :host([variant="inside"]) .icon-slot[filled] {
598
571
  align-self: center;
599
572
  height: auto;
600
573
  max-height: none;
@@ -602,7 +575,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
602
575
  justify-content: center;
603
576
  }
604
577
 
605
- :host([variant='inside']) .field-trailing {
578
+ :host([variant="inside"]) .field-trailing {
606
579
  align-self: center;
607
580
  padding-inline-start: 0;
608
581
  }
@@ -735,7 +708,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
735
708
  }
736
709
 
737
710
  .input-wrapper::after {
738
- content: '';
711
+ content: "";
739
712
  position: absolute;
740
713
  top: -1px;
741
714
  left: -1px;
@@ -798,16 +771,16 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
798
771
  padding-block: 0;
799
772
  }
800
773
 
801
- :host([variant='inside']) .input-wrapper,
802
- :host([variant='inside']) .input-wrapper:has(.chip),
803
- :host([variant='inside']) .input-wrapper[compact]:has(.chip) {
774
+ :host([variant="inside"]) .input-wrapper,
775
+ :host([variant="inside"]) .input-wrapper:has(.chip),
776
+ :host([variant="inside"]) .input-wrapper[compact]:has(.chip) {
804
777
  height: auto;
805
778
  min-height: var(--sky-input-height-inside);
806
779
  padding-block: var(--sky-input-pad-y-sm, 0px);
807
780
  }
808
781
 
809
- :host([variant='inside'][compact]) .input-wrapper,
810
- :host([variant='inside'][compact]) .input-wrapper:has(.chip) {
782
+ :host([variant="inside"][compact]) .input-wrapper,
783
+ :host([variant="inside"][compact]) .input-wrapper:has(.chip) {
811
784
  min-height: var(--sky-input-height-inside-compact);
812
785
  }
813
786
 
@@ -944,9 +917,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
944
917
  border-radius: var(--sky-radius-full);
945
918
  border: none;
946
919
  cursor: pointer;
947
- transition:
948
- color 0.2s ease,
949
- background-color 0.2s ease;
920
+ transition: color 0.2s ease, background-color 0.2s ease;
950
921
  }
951
922
  .remove-chip-inner:hover {
952
923
  color: var(--sky-danger-primary);
@@ -965,9 +936,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
965
936
  border-radius: var(--sky-radius-full);
966
937
  cursor: pointer;
967
938
  border: none;
968
- transition:
969
- color 0.2s ease,
970
- background-color 0.2s ease;
939
+ transition: color 0.2s ease, background-color 0.2s ease;
971
940
  }
972
941
 
973
942
  .input {
@@ -1012,7 +981,9 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
1012
981
  -webkit-backdrop-filter: var(--sky-blur-tertiary)
1013
982
  var(--sky-brightness-tertiary) var(--sky-saturation-tertiary);
1014
983
  border-radius: var(--sky-radius-secondary);
1015
- box-shadow: var(--sky-box-shadow-inset), var(--sky-box-shadow-tertiary);
984
+ box-shadow:
985
+ var(--sky-box-shadow-inset),
986
+ var(--sky-box-shadow-tertiary);
1016
987
  box-sizing: border-box;
1017
988
  pointer-events: auto;
1018
989
  margin: 0;
@@ -1122,15 +1093,15 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
1122
1093
  var(--sky-saturation-tertiary);
1123
1094
  -webkit-backdrop-filter: var(--sky-blur-tertiary)
1124
1095
  var(--sky-brightness-tertiary) var(--sky-saturation-tertiary);
1125
- box-shadow: var(--sky-box-shadow-inset), var(--sky-box-shadow-tertiary);
1096
+ box-shadow:
1097
+ var(--sky-box-shadow-inset),
1098
+ var(--sky-box-shadow-tertiary);
1126
1099
  border-radius: var(--sky-radius-secondary);
1127
1100
  border: var(--sky-border-tertiary);
1128
1101
  width: max-content;
1129
1102
  opacity: 0;
1130
1103
  transform: scale(0.98);
1131
- transition:
1132
- opacity 0.15s ease,
1133
- transform 0.15s ease;
1104
+ transition: opacity 0.15s ease, transform 0.15s ease;
1134
1105
  margin: 0;
1135
1106
  }
1136
1107
 
@@ -1381,11 +1352,10 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
1381
1352
  }
1382
1353
 
1383
1354
  .sky-checkbox::after {
1384
- content: '';
1355
+ content: "";
1385
1356
  width: 8px;
1386
1357
  height: 4px;
1387
- border: 2px solid
1388
- var(--sky-on-color-fallback-light, var(--sky-text-white));
1358
+ border: 2px solid var(--sky-on-color-fallback-light, var(--sky-text-white));
1389
1359
  border-top: none;
1390
1360
  border-right: none;
1391
1361
  position: absolute;
@@ -1406,10 +1376,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
1406
1376
  .sky-checkbox.indeterminate::after {
1407
1377
  width: 8px;
1408
1378
  height: 2px;
1409
- background-color: var(
1410
- --sky-on-color-fallback-light,
1411
- var(--sky-text-white)
1412
- );
1379
+ background-color: var(--sky-on-color-fallback-light, var(--sky-text-white));
1413
1380
  border: none;
1414
1381
  top: 50%;
1415
1382
  left: 50%;