1import { 2 icon_button_styles_default 3} from "./chunk.LDHLPXEP.js"; 4import { 5 n as n2, 6 s 7} from "./chunk.MKSGYDJ7.js"; 8import { 9 o 10} from "./chunk.PNPJ7KDG.js"; 11import { 12 e 13} from "./chunk.DOYC4G7X.js"; 14import { 15 SlIcon 16} from "./chunk.V5AI4X3M.js"; 17import { 18 component_styles_default 19} from "./chunk.M2U2QT2K.js"; 20import { 21 ShoelaceElement, 22 e as e2, 23 n, 24 r 25} from "./chunk.3XOYQPVY.js"; 26import { 27 __decorateClass 28} from "./chunk.YZETUBD6.js"; 29 30// src/components/icon-button/icon-button.component.ts 31var SlIconButton = class extends ShoelaceElement { 32 constructor() { 33 super(...arguments); 34 this.hasFocus = false; 35 this.label = ""; 36 this.disabled = false; 37 } 38 handleBlur() { 39 this.hasFocus = false; 40 this.emit("sl-blur"); 41 } 42 handleFocus() { 43 this.hasFocus = true; 44 this.emit("sl-focus"); 45 } 46 handleClick(event) { 47 if (this.disabled) { 48 event.preventDefault(); 49 event.stopPropagation(); 50 } 51 } 52 /** Simulates a click on the icon button. */ 53 click() { 54 this.button.click(); 55 } 56 /** Sets focus on the icon button. */ 57 focus(options) { 58 this.button.focus(options); 59 } 60 /** Removes focus from the icon button. */ 61 blur() { 62 this.button.blur(); 63 } 64 render() { 65 const isLink = this.href ? true : false; 66 const tag = isLink ? s`a` : s`button`; 67 return n2` 68 <${tag} 69 part="base" 70 class=${e({ 71 "icon-button": true, 72 "icon-button--disabled": !isLink && this.disabled, 73 "icon-button--focused": this.hasFocus 74 })} 75 ?disabled=${o(isLink ? void 0 : this.disabled)} 76 type=${o(isLink ? void 0 : "button")} 77 href=${o(isLink ? this.href : void 0)} 78 target=${o(isLink ? this.target : void 0)} 79 download=${o(isLink ? this.download : void 0)} 80 rel=${o(isLink && this.target ? "noreferrer noopener" : void 0)} 81 role=${o(isLink ? void 0 : "button")} 82 aria-disabled=${this.disabled ? "true" : "false"} 83 aria-label="${this.label}" 84 tabindex=${this.disabled ? "-1" : "0"} 85 @blur=${this.handleBlur} 86 @focus=${this.handleFocus} 87 @click=${this.handleClick} 88 > 89 <sl-icon 90 class="icon-button__icon" 91 name=${o(this.name)} 92 library=${o(this.library)} 93 src=${o(this.src)} 94 aria-hidden="true" 95 ></sl-icon> 96 </${tag}> 97 `; 98 } 99}; 100SlIconButton.styles = [component_styles_default, icon_button_styles_default]; 101SlIconButton.dependencies = { "sl-icon": SlIcon }; 102__decorateClass([ 103 e2(".icon-button") 104], SlIconButton.prototype, "button", 2); 105__decorateClass([ 106 r() 107], SlIconButton.prototype, "hasFocus", 2); 108__decorateClass([ 109 n() 110], SlIconButton.prototype, "name", 2); 111__decorateClass([ 112 n() 113], SlIconButton.prototype, "library", 2); 114__decorateClass([ 115 n() 116], SlIconButton.prototype, "src", 2); 117__decorateClass([ 118 n() 119], SlIconButton.prototype, "href", 2); 120__decorateClass([ 121 n() 122], SlIconButton.prototype, "target", 2); 123__decorateClass([ 124 n() 125], SlIconButton.prototype, "download", 2); 126__decorateClass([ 127 n() 128], SlIconButton.prototype, "label", 2); 129__decorateClass([ 130 n({ type: Boolean, reflect: true }) 131], SlIconButton.prototype, "disabled", 2); 132 133export { 134 SlIconButton 135};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.