@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.
- package/dist/custom-elements.json +1730 -1730
- package/dist/helper/controllers/animation-controller.d.ts +4 -4
- package/dist/helper/controllers/animation-controller.js.map +1 -1
- package/dist/helper/controllers/popover-controller.d.ts +11 -11
- package/dist/helper/controllers/popover-controller.js.map +1 -1
- package/dist/helper/iconify-offline.js.map +1 -1
- package/dist/helper/internals/form-control-base.d.ts +4 -4
- package/dist/helper/internals/form-control-base.js.map +1 -1
- package/dist/helper/utils/color-resolver.js.map +1 -1
- package/dist/helper/utils/contrast-color.d.ts +4 -4
- package/dist/helper/utils/contrast-color.js.map +1 -1
- package/dist/helper/utils/size-resolver.js.map +1 -1
- package/dist/sky-alert/sky-alert.d.ts +5 -5
- package/dist/sky-alert/sky-alert.js +16 -6
- package/dist/sky-alert/sky-alert.js.map +1 -1
- package/dist/sky-appbar/sky-appbar.d.ts +2 -2
- package/dist/sky-appbar/sky-appbar.js +15 -23
- package/dist/sky-appbar/sky-appbar.js.map +1 -1
- package/dist/sky-avatar/sky-avatar.d.ts +3 -3
- package/dist/sky-avatar/sky-avatar.js +8 -11
- package/dist/sky-avatar/sky-avatar.js.map +1 -1
- package/dist/sky-badge/sky-badge.d.ts +5 -5
- package/dist/sky-badge/sky-badge.js +10 -6
- package/dist/sky-badge/sky-badge.js.map +1 -1
- package/dist/sky-button/sky-button.d.ts +5 -5
- package/dist/sky-button/sky-button.js +24 -15
- package/dist/sky-button/sky-button.js.map +1 -1
- package/dist/sky-card/sky-card.d.ts +5 -5
- package/dist/sky-card/sky-card.js +20 -20
- package/dist/sky-card/sky-card.js.map +1 -1
- package/dist/sky-checkbox/sky-checkbox.d.ts +2 -2
- package/dist/sky-checkbox/sky-checkbox.js +67 -59
- package/dist/sky-checkbox/sky-checkbox.js.map +1 -1
- package/dist/sky-chip/sky-chip.d.ts +3 -3
- package/dist/sky-chip/sky-chip.js +34 -25
- package/dist/sky-chip/sky-chip.js.map +1 -1
- package/dist/sky-col/sky-col.d.ts +4 -4
- package/dist/sky-col/sky-col.js +8 -3
- package/dist/sky-col/sky-col.js.map +1 -1
- package/dist/sky-combobox/sky-combobox.d.ts +8 -8
- package/dist/sky-combobox/sky-combobox.js +201 -168
- package/dist/sky-combobox/sky-combobox.js.map +1 -1
- package/dist/sky-dialog/sky-dialog.d.ts +4 -4
- package/dist/sky-dialog/sky-dialog.js +17 -19
- package/dist/sky-dialog/sky-dialog.js.map +1 -1
- package/dist/sky-divider/sky-divider.d.ts +3 -3
- package/dist/sky-divider/sky-divider.js.map +1 -1
- package/dist/sky-flexbox/sky-flexbox.d.ts +7 -7
- package/dist/sky-flexbox/sky-flexbox.js +2 -2
- package/dist/sky-flexbox/sky-flexbox.js.map +1 -1
- package/dist/sky-flexcol/sky-flexcol.d.ts +3 -3
- package/dist/sky-flexcol/sky-flexcol.js.map +1 -1
- package/dist/sky-form/sky-form.d.ts +12 -12
- package/dist/sky-form/sky-form.js +12 -12
- package/dist/sky-form/sky-form.js.map +1 -1
- package/dist/sky-grid/sky-grid.d.ts +2 -2
- package/dist/sky-grid/sky-grid.js.map +1 -1
- package/dist/sky-icon/sky-icon.d.ts +1 -1
- package/dist/sky-icon/sky-icon.js +1 -1
- package/dist/sky-icon/sky-icon.js.map +1 -1
- package/dist/sky-image/sky-image.d.ts +5 -5
- package/dist/sky-image/sky-image.js.map +1 -1
- package/dist/sky-image/srcset-utils.js.map +1 -1
- package/dist/sky-input/sky-input.d.ts +6 -6
- package/dist/sky-input/sky-input.js +103 -88
- package/dist/sky-input/sky-input.js.map +1 -1
- package/dist/sky-list/sky-list.d.ts +4 -4
- package/dist/sky-list/sky-list.js +1 -3
- package/dist/sky-list/sky-list.js.map +1 -1
- package/dist/sky-listitem/sky-listitem.d.ts +2 -2
- package/dist/sky-listitem/sky-listitem.js +4 -7
- package/dist/sky-listitem/sky-listitem.js.map +1 -1
- package/dist/sky-radio/sky-radio.d.ts +3 -3
- package/dist/sky-radio/sky-radio.js +6 -3
- package/dist/sky-radio/sky-radio.js.map +1 -1
- package/dist/sky-row/sky-row.d.ts +2 -2
- package/dist/sky-row/sky-row.js.map +1 -1
- package/dist/sky-sheet/sky-sheet.d.ts +6 -6
- package/dist/sky-sheet/sky-sheet.js +21 -21
- package/dist/sky-sheet/sky-sheet.js.map +1 -1
- package/dist/sky-simple-table/sky-simple-table.d.ts +4 -4
- package/dist/sky-simple-table/sky-simple-table.js +4 -1
- package/dist/sky-simple-table/sky-simple-table.js.map +1 -1
- package/dist/sky-theme-provider/sky-theme-provider.d.ts +27 -27
- package/dist/sky-theme-provider/sky-theme-provider.js.map +1 -1
- 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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
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
|
-
|
|
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
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
|
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=
|
|
348
|
+
:host([variant='highlight']) .label {
|
|
343
349
|
color: var(--sky-dropdown-color);
|
|
344
350
|
}
|
|
345
351
|
|
|
346
352
|
/* Fieldset / legend */
|
|
347
|
-
:host([variant=
|
|
353
|
+
:host([variant='fieldset']) {
|
|
348
354
|
overflow: visible;
|
|
349
355
|
padding-block-start: 0;
|
|
350
356
|
}
|
|
351
357
|
|
|
352
|
-
:host([variant=
|
|
358
|
+
:host([variant='fieldset']) .combo-box-container {
|
|
353
359
|
overflow: visible;
|
|
354
360
|
}
|
|
355
361
|
|
|
356
|
-
:host([variant=
|
|
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=
|
|
374
|
+
:host([variant='fieldset']) fieldset.input-wrapper[compact] {
|
|
369
375
|
height: auto;
|
|
370
376
|
}
|
|
371
377
|
|
|
372
|
-
:host([variant=
|
|
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=
|
|
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=
|
|
401
|
-
|
|
402
|
-
|
|
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=
|
|
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=
|
|
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=
|
|
442
|
-
:host([variant=
|
|
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=
|
|
452
|
+
:host([variant='fieldset']) .input-wrapper::after {
|
|
448
453
|
content: none;
|
|
449
454
|
display: none;
|
|
450
455
|
}
|
|
451
456
|
|
|
452
|
-
:host([variant=
|
|
453
|
-
:host([variant=
|
|
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=
|
|
462
|
+
:host([variant='fieldset'][validationActive]:invalid) .input-wrapper {
|
|
458
463
|
border-color: var(--sky-danger-primary);
|
|
459
464
|
}
|
|
460
465
|
|
|
461
|
-
:host([variant=
|
|
466
|
+
:host([variant='fieldset'][validationActive]:invalid) legend.label {
|
|
462
467
|
color: var(--sky-danger-primary);
|
|
463
468
|
}
|
|
464
469
|
|
|
465
|
-
:host([variant=
|
|
466
|
-
:host([variant=
|
|
467
|
-
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
527
|
-
|
|
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=
|
|
533
|
-
|
|
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=
|
|
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=
|
|
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=
|
|
554
|
-
:host([variant=
|
|
555
|
-
:host([variant=
|
|
556
|
-
:host([variant=
|
|
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=
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
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=
|
|
570
|
-
:host([variant=
|
|
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=
|
|
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=
|
|
775
|
-
:host([variant=
|
|
776
|
-
:host([variant=
|
|
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=
|
|
783
|
-
:host([variant=
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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(
|
|
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%;
|