@scania/tegel
Version:
Tegel Design System
1 lines • 18.2 kB
JavaScript
import{r as t,c as e,h as d,a as i}from"./p-9xxNGlso.js";import{h as l}from"./p-DDX6uFcm.js";import{g as s}from"./p-Cn4f8w1e.js";import{g as r}from"./p-wEP_nEaO.js";const o=class{constructor(d){t(this,d),this.tdsChange=e(this,"tdsChange",6),this.tdsInput=e(this,"tdsInput",6),this.tdsFocus=e(this,"tdsFocus",6),this.tdsBlur=e(this,"tdsBlur",6),this.tdsError=e(this,"tdsError",6),this.uuid=s(),this.type="text",this.labelPosition="no-label",this.label="",this.placeholder="",this.value="",this.disabled=!1,this.readOnly=!1,this.hideReadOnlyIcon=!1,this.size="lg",this.modeVariant=null,this.noMinWidth=!1,this.name="",this.state="default",this.autofocus=!1,this.required=!1,this.autocomplete="off",this.hideNumberArrows=!1,this.focusInput=!1}handleChange(t){this.tdsChange.emit(t)}handleInput(t){const e=t.target,{value:d}=e;this.value=d,this.tdsInput.emit(t)}handleFocus(t){var e;null===(e=this.textInput)||void 0===e||e.focus(),this.focusInput=!0,this.tdsFocus.emit(t)}handleBlur(t){if(this.focusInput=!1,"number"===this.type&&this.textInput){const t=this.textInput.valueAsNumber,e=void 0!==this.min?Number(this.min):void 0,d=void 0!==this.max?Number(this.max):void 0;if(void 0!==e&&void 0!==d&&e>d)return void console.warn("tds-text-field: min value is greater than max value");if(!isNaN(t)){const i=this.textInput.value;let l=i,s=null;void 0!==e&&t<e&&(l=String(this.min),s="min"),void 0!==d&&t>d&&(l=String(this.max),s="max"),l!==i&&s&&(this.textInput.value=l,this.value=l,this.tdsError.emit({originalValue:i,clampedValue:l,reason:s}))}}this.tdsBlur.emit(t)}async focusElement(){this.textInput&&this.textInput.focus()}render(){var t,e,i,s;const o=l("prefix",this.host),a=l("suffix",this.host);return d("div",{key:"f16b01caa6aab76ff91b1bbd339726bc091073b4",class:{"form-text-field":!0,"form-text-field-nomin":this.noMinWidth,"text-field-focus":this.focusInput&&!this.disabled,"text-field-data":""!==this.value&&null!==this.value,"text-field-container-label-inside":"inside"===this.labelPosition&&"sm"!==this.size,"form-text-field-disabled":this.disabled,"form-text-field-readonly":!this.disabled&&this.readOnly,"tds-mode-variant-primary":this.readOnly?"secondary"===this.modeVariant:"primary"===this.modeVariant,"tds-mode-variant-secondary":this.readOnly?"primary"===this.modeVariant:"secondary"===this.modeVariant,"form-text-field-md":"md"===this.size,"form-text-field-sm":"sm"===this.size,"form-text-field-error":"error"===this.state,"form-text-field-success":"success"===this.state}},"outside"===this.labelPosition&&d("div",{key:"05a6ee014f2d3e6e4394050423282d18cf5908b0",class:"text-field-label-outside"},d("label",{key:"cf3b333f2a898c048a1d456c6b7f6c65390615f0",htmlFor:`text-field-input-element-${this.uuid}`},this.label)),d("div",{key:"fc4a03cf20e81fa191ba536d2b79a0f1b0c535dd",onClick:()=>{var t;return null===(t=this.textInput)||void 0===t?void 0:t.focus()},class:"text-field-container"},o&&d("div",{key:"3638c5a1acde4ad2eabc403d74a551d6185985a8",class:{"text-field-slot-wrap-prefix":!0,"text-field-error":"error"===this.state,"text-field-success":"success"===this.state,"text-field-default":"default"===this.state}},d("slot",{key:"aa86f986720a076698b3193009eb8ebc5022e531",name:"prefix"})),d("div",{key:"5b884728b755f3c604b233f706da028dc12ab0f8",class:"text-field-input-container"},d("input",{key:"a04b70515c8ea73d3435292249fb3aea9a43663a",ref:t=>{this.textInput=t},class:{"text-field-input":!0,"text-field-input-sm":"sm"===this.size,"text-field-input-md":"md"===this.size,"text-field-input-lg":"lg"===this.size,"text-field-input-no-arrows":this.hideNumberArrows},type:this.type,disabled:this.disabled,readonly:!this.disabled&&this.readOnly,placeholder:this.placeholder,value:this.value,autofocus:this.autofocus,maxlength:this.maxLength,name:this.name,min:this.min,max:this.max,step:this.step,onInput:t=>this.handleInput(t),onChange:t=>this.handleChange(t),onFocus:t=>{this.readOnly||this.handleFocus(t)},onBlur:t=>{this.readOnly||this.handleBlur(t)},"aria-invalid":r(this.host,this.state),"aria-label":this.tdsAriaLabel?this.tdsAriaLabel:this.label,"aria-describedby":`text-field-helper-element-${this.uuid}`,"aria-readonly":this.readOnly,id:`text-field-input-element-${this.uuid}`,required:this.required,autocomplete:this.autocomplete}),"inside"===this.labelPosition&&"sm"!==this.size&&d("label",{key:"2b4adf151e255ac983027b61b43f18e81399f11a",class:"text-field-label-inside",htmlFor:`text-field-input-element-${this.uuid}`},this.label)),a&&d("div",{key:"70fccd2b3ffcab91b2537ef1512d2bbe86c4a1e5",class:{"text-field-slot-wrap-suffix":!0,"text-field-error":"error"===this.state,"text-field-success":"success"===this.state,"text-field-default":"default"===this.state,"tds-u-display-none":this.readOnly}},d("slot",{key:"631a64c5239415bbf8449e90d046a3a2eb8fdf3c",name:"suffix"})),this.readOnly&&!this.hideReadOnlyIcon&&d("span",{key:"975a0d8877d271c45c6b5f210537b11b5b70004e",class:"text-field-icon__readonly"},d("tds-tooltip",{key:"e0aa565b62e640afcf13f270187269dbe79b9a48",placement:"top-end",text:"This field is non-editable",selector:"#readonly-tooltip"}),d("tds-icon",{key:"9dadaaa674e0ef4f47e24889ff9e418e7ff3a168",id:"readonly-tooltip",name:"edit_inactive",size:"20px"}))),d("div",{key:"787ae2f6f83ff667885adec7b30ac31c3d99a8e4","aria-live":"assertive"},(this.helper||(null!==(t=this.maxLength)&&void 0!==t?t:0)>0)&&d("div",{key:"f655beff3ed7f0a3441c790fce325ce830770707",class:"text-field-helper",id:`text-field-helper-element-${this.uuid}`},"error"===this.state&&d("div",{key:"1e2ec411ebb607637b0584a54c1c19ff6d0e031e",class:"text-field-helper-error-state"},!this.readOnly&&d("tds-icon",{key:"ce34402f70808ab965669863d46c9d84fb66609d",name:"error",size:"16px"}),this.helper),"error"!==this.state&&this.helper,!this.readOnly&&(null!==(e=this.maxLength)&&void 0!==e?e:0)>0&&d("span",{key:"17945ce6d01531279d561fc2115cc8461b59b6ea",class:{"text-field-textcounter-divider":!0,"text-field-textcounter-disabled":this.disabled}},null===this.value?0:null===(i=this.value)||void 0===i?void 0:i.length," / ",null!==(s=this.maxLength)&&void 0!==s?s:0))))}get host(){return i(this)}};o.style=".text-field-input-lg.sc-tds-text-field{all:unset;border-radius:4px 4px 0 0;width:100%;box-sizing:border-box;margin:0;border:none;outline:none;height:100%;color:var(--tds-text-field-color);background-color:var(--tds-text-field-background);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);padding:var(--tds-spacing-element-20) var(--tds-spacing-element-16)}.text-field-input-lg.sc-tds-text-field::placeholder{color:var(--tds-text-field-placeholder)}.text-field-input-lg.sc-tds-text-field:disabled{user-select:none;pointer-events:none;background-color:var(--tds-text-field-background-disabled);color:var(--tds-text-field-color-disabled)}.text-field-input-lg.sc-tds-text-field:disabled::placeholder{color:var(--tds-text-field-placeholder-disabled)}.text-field-input-lg.sc-tds-text-field:disabled~.text-field-label-inside.sc-tds-text-field{color:var(--tds-text-field-label-disabled)}.text-field-input-md.sc-tds-text-field{all:unset;border-radius:4px 4px 0 0;width:100%;box-sizing:border-box;margin:0;border:none;outline:none;height:100%;color:var(--tds-text-field-color);background-color:var(--tds-text-field-background);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);padding:var(--tds-spacing-element-16)}.text-field-input-md.sc-tds-text-field::placeholder{color:var(--tds-text-field-placeholder)}.text-field-input-md.sc-tds-text-field:disabled{user-select:none;pointer-events:none;background-color:var(--tds-text-field-background-disabled);color:var(--tds-text-field-color-disabled)}.text-field-input-md.sc-tds-text-field:disabled::placeholder{color:var(--tds-text-field-placeholder-disabled)}.text-field-input-md.sc-tds-text-field:disabled~.text-field-label-inside.sc-tds-text-field{color:var(--tds-text-field-label-disabled)}.text-field-input-sm.sc-tds-text-field{all:unset;border-radius:4px 4px 0 0;width:100%;box-sizing:border-box;margin:0;border:none;outline:none;height:100%;color:var(--tds-text-field-color);background-color:var(--tds-text-field-background);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);padding:var(--tds-spacing-element-16)}.text-field-input-sm.sc-tds-text-field::placeholder{color:var(--tds-text-field-placeholder)}.text-field-input-sm.sc-tds-text-field:disabled{user-select:none;pointer-events:none;background-color:var(--tds-text-field-background-disabled);color:var(--tds-text-field-color-disabled)}.text-field-input-sm.sc-tds-text-field:disabled::placeholder{color:var(--tds-text-field-placeholder-disabled)}.text-field-input-sm.sc-tds-text-field:disabled~.text-field-label-inside.sc-tds-text-field{color:var(--tds-text-field-label-disabled)}.text-field-container.sc-tds-text-field{border-radius:4px 4px 0 0;display:flex;position:relative;height:56px;box-sizing:border-box;background-color:var(--tds-text-field-background);border-bottom:1px solid var(--tds-text-field-border-bottom);border-top:1px solid transparent;transition:border-bottom-color 200ms ease}.text-field-container.sc-tds-text-field:hover{border-bottom-color:var(--tds-text-field-border-bottom-hover)}.form-text-field-md.sc-tds-text-field .text-field-container.sc-tds-text-field{height:48px}.form-text-field-sm.sc-tds-text-field .text-field-container.sc-tds-text-field{height:40px}.text-field-container.sc-tds-text-field:focus-within{border:2px solid var(--tds-focus-outline-color);margin:0 -2px}.text-field-input-container.sc-tds-text-field{position:relative;width:100%}.text-field-data.sc-tds-text-field,.text-field-input.sc-tds-text-field{color:var(--tds-text-field-data-color)}.text-field-label-outside.sc-tds-text-field>*.sc-tds-text-field{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:block;margin-bottom:var(--tds-spacing-element-8);color:var(--tds-text-field-label-color)}.text-field-label-inside.sc-tds-text-field{font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);position:absolute;pointer-events:none;color:var(--tds-text-field-label-inside-color);left:16px}.form-text-field.sc-tds-text-field{display:block;min-width:208px}.form-text-field-nomin.sc-tds-text-field{min-width:auto}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-lg.sc-tds-text-field{padding-top:var(--tds-spacing-element-24);padding-bottom:15px}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-lg.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field{top:20px}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-lg.sc-tds-text-field::placeholder{color:transparent}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-lg.sc-tds-text-field .sc-tds-text-field::placeholder{color:transparent}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-lg.sc-tds-text-field:focus::placeholder{transition:color 0.35s ease;color:var(--tds-text-field-placeholder)}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-md.sc-tds-text-field{padding-top:var(--tds-spacing-element-20);padding-bottom:11px}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-md.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field{top:16px}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-md.sc-tds-text-field::placeholder{color:transparent}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-md.sc-tds-text-field .sc-tds-text-field::placeholder{color:transparent}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-md.sc-tds-text-field:focus::placeholder{transition:color 0.35s ease;color:var(--tds-text-field-placeholder)}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-sm.sc-tds-text-field{padding-top:var(--tds-spacing-element-20);padding-bottom:11px}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-sm.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field{top:16px}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-sm.sc-tds-text-field::placeholder{color:transparent}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-sm.sc-tds-text-field .sc-tds-text-field::placeholder{color:transparent}.form-text-field.text-field-container-label-inside.sc-tds-text-field .text-field-input-sm.sc-tds-text-field:focus::placeholder{transition:color 0.35s ease;color:var(--tds-text-field-placeholder)}.form-text-field.text-field-container-label-inside.text-field-focus.sc-tds-text-field .text-field-input-sm.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field,.form-text-field.text-field-container-label-inside.text-field-data.sc-tds-text-field .text-field-input-sm.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:0.1s ease all;top:8px}.form-text-field.text-field-container-label-inside.text-field-focus.sc-tds-text-field .text-field-input-md.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field,.form-text-field.text-field-container-label-inside.text-field-data.sc-tds-text-field .text-field-input-md.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:0.1s ease all;top:8px}.form-text-field.text-field-container-label-inside.text-field-focus.sc-tds-text-field .text-field-input-lg.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field,.form-text-field.text-field-container-label-inside.text-field-data.sc-tds-text-field .text-field-input-lg.sc-tds-text-field~.text-field-label-inside.sc-tds-text-field{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:0.1s ease all;top:12px}.text-field-helper.sc-tds-text-field{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:flex;gap:8px;justify-content:space-between;flex-basis:100%;padding-top:var(--tds-spacing-element-4);color:var(--tds-text-field-helper)}.text-field-helper.sc-tds-text-field .text-field-textcounter.sc-tds-text-field{margin-left:auto}.form-text-field-disabled.sc-tds-text-field .text-field-container.sc-tds-text-field{cursor:not-allowed;border-bottom-color:transparent}.form-text-field-disabled.sc-tds-text-field .text-field-slot-wrap-prefix.sc-tds-text-field>*.sc-tds-text-field,.form-text-field-disabled.sc-tds-text-field .text-field-slot-wrap-suffix.sc-tds-text-field>*.sc-tds-text-field{color:var(--tds-text-field-ps-color-disabled)}.form-text-field-disabled.sc-tds-text-field .text-field-label-outside.sc-tds-text-field>*.sc-tds-text-field{color:var(--tds-text-field-label-disabled)}.form-text-field-disabled.sc-tds-text-field .text-field-helper.sc-tds-text-field{color:var(--tds-text-field-helper-disabled)}.text-field-icon__readonly.sc-tds-text-field{display:none;position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--tds-text-field-icon-read-only-label-color)}.text-field-icon__readonly.sc-tds-text-field .tds-tooltip.sc-tds-text-field{min-width:150px}.form-text-field-readonly.sc-tds-text-field{user-select:auto;caret-color:transparent;cursor:default}.form-text-field-readonly.sc-tds-text-field .text-field-container.sc-tds-text-field{border-bottom-color:var(--tds-text-field-border-bottom-readonly)}.form-text-field-readonly.sc-tds-text-field .text-field-icon__readonly.sc-tds-text-field{display:block}.form-text-field-readonly.sc-tds-text-field .text-field-icon__readonly.sc-tds-text-field:hover~.text-field-icon__readonly-label.sc-tds-text-field{display:block}.form-text-field-readonly.sc-tds-text-field .text-field-input.sc-tds-text-field{background-color:transparent}.form-text-field-readonly.sc-tds-text-field:has(.text-field-icon__readonly) .text-field-input.sc-tds-text-field{padding-right:54px}.form-text-field-success.sc-tds-text-field:not(.form-text-field-readonly) .text-field-container.sc-tds-text-field{border-bottom-color:var(--tds-text-field-border-bottom-success)}.form-text-field-error.sc-tds-text-field:not(.form-text-field-readonly) .text-field-helper.sc-tds-text-field{color:var(--tds-text-field-helper-error)}.form-text-field-error.sc-tds-text-field:not(.form-text-field-readonly) .text-field-container.sc-tds-text-field{border-bottom-color:var(--tds-text-field-border-bottom-error)}.text-field-helper-error-state.sc-tds-text-field{display:flex;gap:8px;flex-wrap:nowrap}.text-field-textcounter-disabled.sc-tds-text-field{color:var(--tds-text-field-textcounter-disabled)}.text-field-textcounter.sc-tds-text-field{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);color:var(--tds-text-field-textcounter);float:right}.text-field-textcounter.text-field-textcounter-disabled.sc-tds-text-field{color:var(--tds-text-field-textcounter-disabled)}.text-field-textcounter.text-field-textcounter-divider.sc-tds-text-field{color:var(--tds-text-field-textcounter-divider)}.text-field-textcounter.text-field-textcounter-divider-disabled.sc-tds-text-field{color:var(--tds-text-field-textcounter-divider-disabled)}.text-field-slot-wrap-prefix.sc-tds-text-field,.text-field-slot-wrap-suffix.sc-tds-text-field{align-self:center;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);margin:0 0 0 14px;color:var(--tds-text-field-ps-color)}.text-field-slot-wrap-prefix.sc-tds-text-field-s>:not(tds-icon),.text-field-slot-wrap-suffix.sc-tds-text-field-s>:not(tds-icon){margin:0 0 0 2px}.text-field-slot-wrap-prefix.text-field-error.sc-tds-text-field,.text-field-slot-wrap-suffix.text-field-error.sc-tds-text-field{color:var(--tds-text-field-ps-color-error)}.text-field-slot-wrap-suffix.sc-tds-text-field{margin:0 14px 0 0}.text-field-slot-wrap-suffix.sc-tds-text-field-s>:not(tds-icon){margin:0 2px 0 0}.text-field-input-no-arrows.sc-tds-text-field{appearance:textfield}.text-field-input-no-arrows.sc-tds-text-field::-webkit-outer-spin-button,.text-field-input-no-arrows.sc-tds-text-field::-webkit-inner-spin-button{appearance:none;margin:0}";export{o as tds_text_field}