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