@sky.ui/core 0.0.39 → 0.0.40

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 +1730 -1730
  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 +16 -6
  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 +15 -23
  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 +8 -11
  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 +10 -6
  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 +24 -15
  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 +67 -59
  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 +34 -25
  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 +8 -3
  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 +201 -168
  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 +17 -19
  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 +103 -88
  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 +1 -3
  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 +4 -7
  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 +6 -3
  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 +4 -1
  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 +2 -2
@@ -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,23 +70,27 @@ 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 class="chip-container" part="chip-container" ?compact=${this.compact}>
73
+ <div
74
+ class="chip-container"
75
+ part="chip-container"
76
+ ?compact=${this.compact}
77
+ >
74
78
  ${this.renderChips()}
75
79
  </div>
76
80
  `}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`
77
- <div
78
- class="dropdown"
79
- part="dropdown"
80
- popover="manual"
81
- @toggle=${this.dropdownPopover.onToggle}
82
- @click=${t=>t.stopPropagation()}
83
- style="
81
+ <div
82
+ class="dropdown"
83
+ part="dropdown"
84
+ popover="manual"
85
+ @toggle=${this.dropdownPopover.onToggle}
86
+ @click=${t=>t.stopPropagation()}
87
+ style="
84
88
  left: var(--sky-dd-left, 0px);
85
89
  top: var(--sky-dd-top, 0px);
86
90
  min-width: var(--sky-dd-width, 100%);
87
91
  "
88
- >
89
- ${c(this.searchable||this.addOption,()=>s`
92
+ >
93
+ ${c(this.searchable||this.addOption,()=>s`
90
94
  <div
91
95
  class="search-container"
92
96
  data-row-index="0"
@@ -110,19 +114,19 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
110
114
  />
111
115
 
112
116
  ${c(this.addOption,()=>s`
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
- `)}
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
+ `)}
122
126
  </div>
123
127
  `)}
124
128
 
125
- <div class="dropdown-scroller">
129
+ <div class="dropdown-scroller">
126
130
  ${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`
127
131
  <div
128
132
  class=${e}
@@ -139,20 +143,20 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
139
143
  </div>
140
144
  `})}
141
145
  ${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`
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`
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`
156
160
  <div style="display: flex; gap: 8px;width:100%">
157
161
  <slot name=${r}>
158
162
  <span
@@ -163,21 +167,21 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
163
167
  </slot>
164
168
  </div>
165
169
  `,()=>s`<span
166
- class="highlighted-text"
167
- part="highlighted-text"
168
- >${p(e)}</span
169
- >`)}
170
- </div>
171
- `}),()=>s`<div
170
+ class="highlighted-text"
171
+ part="highlighted-text"
172
+ >${p(e)}</span
173
+ >`)}
174
+ </div>
175
+ `}),()=>s`<div
172
176
  class="dropdown-item"
173
177
  part="no-options"
174
178
  data-row-index=${this.headerRows}
175
179
  >
176
180
  No options found
177
181
  </div>`)}
182
+ </div>
178
183
  </div>
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`
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`
181
185
  <div class="progress-message">
182
186
  <ul id=${e} class="error-list" part="error-list">
183
187
  ${u(t,t=>t,t=>s`<li class="error" part="error-item">${t}</li>`)}
@@ -193,24 +197,24 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
193
197
  <slot name="icon-left" @slotchange=${this.onIconSlotChange}></slot>
194
198
  </div>
195
199
  `,h=c(this.selectedItems.length>0,()=>this.renderSelectedValue(),()=>s`<label
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
200
+ class=${i}
201
+ part="placeholder-label"
202
+ ?compact=${this.compact}
203
203
  >
204
- </label>`),d=s`
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`
205
209
  <div class="field-trailing" part="field-trailing">
206
210
  ${c(this.clearable&&!this.enforceMinOneSelection&&(this.value||this.selectedItems.length),()=>s`<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>`)}
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>`)}
214
218
  ${c(this.loading,()=>s`<div class="loading-indicator right"></div>`,()=>this.hasRightIcon?s`<div
215
219
  part="icon-slot"
216
220
  class=${e}
@@ -281,11 +285,13 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
281
285
  </div>
282
286
  `;return s`
283
287
  <div class="combo-box-container" part="combo-box-container">
284
- ${r||n?o:a}
285
- ${f}
288
+ ${r||n?o:a} ${f}
286
289
  ${this.renderHiddenChipsDropdown()} ${this.renderDropdown()}
287
290
  ${this.renderValidationErrors()}
288
- <slot style="display:none" @slotchange=${this.refreshOptionSlots}></slot>
291
+ <slot
292
+ style="display:none"
293
+ @slotchange=${this.refreshOptionSlots}
294
+ ></slot>
289
295
  </div>
290
296
  `}};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`
291
297
  :host {
@@ -339,21 +345,21 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
339
345
  cursor: default;
340
346
  }
341
347
 
342
- :host([variant="highlight"]) .label {
348
+ :host([variant='highlight']) .label {
343
349
  color: var(--sky-dropdown-color);
344
350
  }
345
351
 
346
352
  /* Fieldset / legend */
347
- :host([variant="fieldset"]) {
353
+ :host([variant='fieldset']) {
348
354
  overflow: visible;
349
355
  padding-block-start: 0;
350
356
  }
351
357
 
352
- :host([variant="fieldset"]) .combo-box-container {
358
+ :host([variant='fieldset']) .combo-box-container {
353
359
  overflow: visible;
354
360
  }
355
361
 
356
- :host([variant="fieldset"]) fieldset.input-wrapper {
362
+ :host([variant='fieldset']) fieldset.input-wrapper {
357
363
  display: block;
358
364
  height: auto;
359
365
  margin: 0;
@@ -365,18 +371,16 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
365
371
  box-shadow: none;
366
372
  }
367
373
 
368
- :host([variant="fieldset"]) fieldset.input-wrapper[compact] {
374
+ :host([variant='fieldset']) fieldset.input-wrapper[compact] {
369
375
  height: auto;
370
376
  }
371
377
 
372
- :host([variant="fieldset"]) .input-fieldset-body {
378
+ :host([variant='fieldset']) .input-fieldset-body {
373
379
  display: flex;
374
380
  width: 100%;
375
381
  align-items: center;
376
382
  box-sizing: border-box;
377
- height: calc(
378
- var(--sky-input-height) - 2 * var(--sky-input-border-width)
379
- );
383
+ height: calc(var(--sky-input-height) - 2 * var(--sky-input-border-width));
380
384
  min-height: calc(
381
385
  var(--sky-input-height) - 2 * var(--sky-input-border-width)
382
386
  );
@@ -387,7 +391,9 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
387
391
  overflow: hidden;
388
392
  }
389
393
 
390
- :host([variant="fieldset"]) fieldset.input-wrapper[compact] .input-fieldset-body {
394
+ :host([variant='fieldset'])
395
+ fieldset.input-wrapper[compact]
396
+ .input-fieldset-body {
391
397
  height: calc(
392
398
  var(--sky-input-height-compact) - 2 * var(--sky-input-border-width)
393
399
  );
@@ -397,17 +403,16 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
397
403
  }
398
404
 
399
405
  /* Multi chips stay single-line; do not grow taller than sky-input */
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
- );
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));
404
409
  min-height: calc(
405
410
  var(--sky-input-height) - 2 * var(--sky-input-border-width)
406
411
  );
407
412
  padding-block: 0;
408
413
  }
409
414
 
410
- :host([variant="fieldset"][compact])
415
+ :host([variant='fieldset'][compact])
411
416
  .input-fieldset-body:has(.chip:not([single-select])) {
412
417
  height: calc(
413
418
  var(--sky-input-height-compact) - 2 * var(--sky-input-border-width)
@@ -418,7 +423,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
418
423
  padding-block: 0;
419
424
  }
420
425
 
421
- :host([variant="fieldset"]) legend.label {
426
+ :host([variant='fieldset']) legend.label {
422
427
  float: unset;
423
428
  width: auto;
424
429
  max-width: calc(100% - 2 * var(--sky-input-pad-x));
@@ -438,46 +443,48 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
438
443
  pointer-events: none;
439
444
  }
440
445
 
441
- :host([variant="fieldset"]) .combo-box-container:focus-within legend.label,
442
- :host([variant="fieldset"]) .input-wrapper[open] legend.label {
446
+ :host([variant='fieldset']) .combo-box-container:focus-within legend.label,
447
+ :host([variant='fieldset']) .input-wrapper[open] legend.label {
443
448
  color: var(--sky-dropdown-color);
444
449
  font-size: var(--sky-font-size-xs);
445
450
  }
446
451
 
447
- :host([variant="fieldset"]) .input-wrapper::after {
452
+ :host([variant='fieldset']) .input-wrapper::after {
448
453
  content: none;
449
454
  display: none;
450
455
  }
451
456
 
452
- :host([variant="fieldset"]) .input-wrapper[open],
453
- :host([variant="fieldset"]) .input-wrapper:focus-visible {
457
+ :host([variant='fieldset']) .input-wrapper[open],
458
+ :host([variant='fieldset']) .input-wrapper:focus-visible {
454
459
  border-color: var(--sky-dropdown-color);
455
460
  }
456
461
 
457
- :host([variant="fieldset"][validationActive]:invalid) .input-wrapper {
462
+ :host([variant='fieldset'][validationActive]:invalid) .input-wrapper {
458
463
  border-color: var(--sky-danger-primary);
459
464
  }
460
465
 
461
- :host([variant="fieldset"][validationActive]:invalid) legend.label {
466
+ :host([variant='fieldset'][validationActive]:invalid) legend.label {
462
467
  color: var(--sky-danger-primary);
463
468
  }
464
469
 
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 {
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 {
468
475
  font-size: var(--sky-font-size-xs);
469
476
  line-height: 1.4;
470
477
  }
471
478
 
472
479
  /* Inside: label in the wrapper above value row — keep tokens in sync with sky-input */
473
- :host([variant="inside"]) {
480
+ :host([variant='inside']) {
474
481
  --sky-input-height-inside: 44px;
475
482
  --sky-input-height-inside-compact: 40px;
476
483
  --sky-input-inside-label-block: 0.15rem;
477
484
  --sky-input-inside-value-min: 1.375rem;
478
485
  }
479
486
 
480
- :host([variant="inside"]) .input-wrapper {
487
+ :host([variant='inside']) .input-wrapper {
481
488
  height: auto;
482
489
  min-height: var(--sky-input-height-inside);
483
490
  align-items: center;
@@ -485,13 +492,13 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
485
492
  overflow: hidden;
486
493
  }
487
494
 
488
- :host([variant="inside"]) .input-wrapper[compact] {
495
+ :host([variant='inside']) .input-wrapper[compact] {
489
496
  height: auto;
490
497
  min-height: var(--sky-input-height-inside-compact);
491
498
  padding-block: var(--sky-input-pad-y-sm, 0px);
492
499
  }
493
500
 
494
- :host([variant="inside"]) .input-inside-main {
501
+ :host([variant='inside']) .input-inside-main {
495
502
  flex: 1 1 0%;
496
503
  min-width: 0;
497
504
  display: flex;
@@ -503,7 +510,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
503
510
  overflow: hidden;
504
511
  }
505
512
 
506
- :host([variant="inside"]) .input-inside-main > .label {
513
+ :host([variant='inside']) .input-inside-main > .label {
507
514
  margin: 0;
508
515
  padding-inline: var(--sky-input-pad-x);
509
516
  font-size: var(--sky-font-size-xs);
@@ -517,28 +524,39 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
517
524
  flex: 0 0 auto;
518
525
  }
519
526
 
520
- :host([variant="inside"][compact]) .input-inside-main > .label {
527
+ :host([variant='inside'][compact]) .input-inside-main > .label {
521
528
  font-size: 0.6875rem;
522
529
  line-height: 1.3;
523
530
  min-height: calc(0.6875rem * 1.3);
524
531
  }
525
532
 
526
- :host([variant="inside"]) .combo-box-container:focus-within .input-inside-main > .label,
527
- :host([variant="inside"]) .input-wrapper[open] .input-inside-main > .label {
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 {
528
538
  color: var(--sky-dropdown-color);
529
539
  font-size: var(--sky-font-size-xs);
530
540
  }
531
541
 
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 {
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 {
534
550
  font-size: 0.6875rem;
535
551
  }
536
552
 
537
- :host([variant="inside"][validationActive]:invalid) .input-inside-main > .label {
553
+ :host([variant='inside'][validationActive]:invalid)
554
+ .input-inside-main
555
+ > .label {
538
556
  color: var(--sky-danger-primary);
539
557
  }
540
558
 
541
- :host([variant="inside"]) .input-inside-row {
559
+ :host([variant='inside']) .input-inside-row {
542
560
  display: flex;
543
561
  align-items: center;
544
562
  min-width: 0;
@@ -550,24 +568,33 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
550
568
  }
551
569
 
552
570
  /* Match sky-input: label + value share pad-x; zero start when left icon present */
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 {
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 {
557
575
  padding-inline-start: var(--sky-input-pad-x);
558
576
  padding-inline-end: var(--sky-input-pad-x);
559
577
  }
560
578
 
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 {
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 {
565
592
  padding-inline-start: 0;
566
593
  }
567
594
 
568
595
  /* Left icon / trailing chrome centered to label+value column (like sky-input) */
569
- :host([variant="inside"]) .icon-slot,
570
- :host([variant="inside"]) .icon-slot[filled] {
596
+ :host([variant='inside']) .icon-slot,
597
+ :host([variant='inside']) .icon-slot[filled] {
571
598
  align-self: center;
572
599
  height: auto;
573
600
  max-height: none;
@@ -575,7 +602,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
575
602
  justify-content: center;
576
603
  }
577
604
 
578
- :host([variant="inside"]) .field-trailing {
605
+ :host([variant='inside']) .field-trailing {
579
606
  align-self: center;
580
607
  padding-inline-start: 0;
581
608
  }
@@ -708,7 +735,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
708
735
  }
709
736
 
710
737
  .input-wrapper::after {
711
- content: "";
738
+ content: '';
712
739
  position: absolute;
713
740
  top: -1px;
714
741
  left: -1px;
@@ -771,16 +798,16 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
771
798
  padding-block: 0;
772
799
  }
773
800
 
774
- :host([variant="inside"]) .input-wrapper,
775
- :host([variant="inside"]) .input-wrapper:has(.chip),
776
- :host([variant="inside"]) .input-wrapper[compact]:has(.chip) {
801
+ :host([variant='inside']) .input-wrapper,
802
+ :host([variant='inside']) .input-wrapper:has(.chip),
803
+ :host([variant='inside']) .input-wrapper[compact]:has(.chip) {
777
804
  height: auto;
778
805
  min-height: var(--sky-input-height-inside);
779
806
  padding-block: var(--sky-input-pad-y-sm, 0px);
780
807
  }
781
808
 
782
- :host([variant="inside"][compact]) .input-wrapper,
783
- :host([variant="inside"][compact]) .input-wrapper:has(.chip) {
809
+ :host([variant='inside'][compact]) .input-wrapper,
810
+ :host([variant='inside'][compact]) .input-wrapper:has(.chip) {
784
811
  min-height: var(--sky-input-height-inside-compact);
785
812
  }
786
813
 
@@ -917,7 +944,9 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
917
944
  border-radius: var(--sky-radius-full);
918
945
  border: none;
919
946
  cursor: pointer;
920
- transition: color 0.2s ease, background-color 0.2s ease;
947
+ transition:
948
+ color 0.2s ease,
949
+ background-color 0.2s ease;
921
950
  }
922
951
  .remove-chip-inner:hover {
923
952
  color: var(--sky-danger-primary);
@@ -936,7 +965,9 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
936
965
  border-radius: var(--sky-radius-full);
937
966
  cursor: pointer;
938
967
  border: none;
939
- transition: color 0.2s ease, background-color 0.2s ease;
968
+ transition:
969
+ color 0.2s ease,
970
+ background-color 0.2s ease;
940
971
  }
941
972
 
942
973
  .input {
@@ -981,9 +1012,7 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
981
1012
  -webkit-backdrop-filter: var(--sky-blur-tertiary)
982
1013
  var(--sky-brightness-tertiary) var(--sky-saturation-tertiary);
983
1014
  border-radius: var(--sky-radius-secondary);
984
- box-shadow:
985
- var(--sky-box-shadow-inset),
986
- var(--sky-box-shadow-tertiary);
1015
+ box-shadow: var(--sky-box-shadow-inset), var(--sky-box-shadow-tertiary);
987
1016
  box-sizing: border-box;
988
1017
  pointer-events: auto;
989
1018
  margin: 0;
@@ -1093,15 +1122,15 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
1093
1122
  var(--sky-saturation-tertiary);
1094
1123
  -webkit-backdrop-filter: var(--sky-blur-tertiary)
1095
1124
  var(--sky-brightness-tertiary) var(--sky-saturation-tertiary);
1096
- box-shadow:
1097
- var(--sky-box-shadow-inset),
1098
- var(--sky-box-shadow-tertiary);
1125
+ box-shadow: var(--sky-box-shadow-inset), var(--sky-box-shadow-tertiary);
1099
1126
  border-radius: var(--sky-radius-secondary);
1100
1127
  border: var(--sky-border-tertiary);
1101
1128
  width: max-content;
1102
1129
  opacity: 0;
1103
1130
  transform: scale(0.98);
1104
- transition: opacity 0.15s ease, transform 0.15s ease;
1131
+ transition:
1132
+ opacity 0.15s ease,
1133
+ transform 0.15s ease;
1105
1134
  margin: 0;
1106
1135
  }
1107
1136
 
@@ -1352,10 +1381,11 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
1352
1381
  }
1353
1382
 
1354
1383
  .sky-checkbox::after {
1355
- content: "";
1384
+ content: '';
1356
1385
  width: 8px;
1357
1386
  height: 4px;
1358
- border: 2px solid var(--sky-on-color-fallback-light, var(--sky-text-white));
1387
+ border: 2px solid
1388
+ var(--sky-on-color-fallback-light, var(--sky-text-white));
1359
1389
  border-top: none;
1360
1390
  border-right: none;
1361
1391
  position: absolute;
@@ -1376,7 +1406,10 @@ import{unsafeCSS as t,css as e,LitElement as i,html as s,nothing as o}from"lit";
1376
1406
  .sky-checkbox.indeterminate::after {
1377
1407
  width: 8px;
1378
1408
  height: 2px;
1379
- background-color: var(--sky-on-color-fallback-light, var(--sky-text-white));
1409
+ background-color: var(
1410
+ --sky-on-color-fallback-light,
1411
+ var(--sky-text-white)
1412
+ );
1380
1413
  border: none;
1381
1414
  top: 50%;
1382
1415
  left: 50%;