'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const index = require('./index-ca0e0765.js'); const switchCss = ":root{--ifx-font-family:\"Source Sans 3\";font-family:var(--ifx-font-family, sans-serif)}:host{display:inline-block;user-select:none}.container{padding:4px;display:flex;align-items:center;position:relative;width:32px;height:16px;background-color:#FFFFFF;border:1px solid #575352;border-radius:20px;cursor:pointer;transition:background-color 0.3s ease;outline:none}.container:focus{outline:4px solid #0A8276;outline-offset:2px}.container:focus:not(:focus-visible){outline:none}.container:focus-visible{outline:2px solid #0A8276;outline-offset:2px}.container.disabled{cursor:default;border-color:#BFBBBB}.switch_label-wrapper{margin-left:46px}.switch_label-wrapper label:hover{cursor:pointer}.switch_label-wrapper.disabled{color:#BFBBBB}.switch_checkbox-wrapper .switch{width:16px;height:16px;background-color:#575352;border-radius:50%;transition:transform 0.3s ease, background-color 0.3s ease}.switch_checkbox-wrapper .switch.disabled{background-color:#BFBBBB;border-color:#BFBBBB;cursor:default}.switch_checkbox-wrapper .switch.checked{transform:translateX(16px);background-color:#FFFFFF}.switch_checkbox-wrapper .switch.checked.disabled{cursor:default}.container:hover .toggle-switch{box-shadow:0 0 5px rgba(0, 0, 0, 0.2)}.container.checked{background-color:#0A8276;border-color:#0A8276}.container.checked.disabled{background-color:#BFBBBB;border-color:#BFBBBB;cursor:default}"; const Switch = class { constructor(hostRef) { index.registerInstance(this, hostRef); this.ifxChange = index.createEvent(this, "ifxChange", 7); this.value = false; this.name = ''; this.disabled = false; this.internalValue = false; } componentWillLoad() { this.internalValue = this.value; } valueChanged(newValue, oldValue) { if (newValue !== oldValue) { this.internalValue = newValue; } } toggle() { if (this.disabled) return; this.internalValue = !this.internalValue; this.ifxChange.emit(this.internalValue); } handleKeyDown(event) { if (this.disabled) return; // If the pressed key is either 'Enter' or 'Space' if (event.key === 'Enter' || event.key === ' ') { this.toggle(); } } render() { return (index.h("div", { class: `container ${this.internalValue ? 'checked' : ''} ${this.disabled ? 'disabled' : ''}`, role: "switch", tabindex: "0", "aria-checked": this.internalValue ? 'true' : 'false', "aria-label": this.name, onClick: () => this.toggle(), onKeyDown: (event) => this.handleKeyDown(event) }, index.h("div", { class: "switch_checkbox-wrapper" }, index.h("input", { type: "checkbox", hidden: true, name: this.name, disabled: this.disabled, value: `${this.internalValue}` }), index.h("div", { class: `switch ${this.internalValue ? 'checked' : ''} ${this.disabled ? 'disabled' : ''}` })), index.h("div", { class: `switch_label-wrapper ${this.disabled ? 'disabled' : ''}` }, index.h("label", { htmlFor: "switch" }, index.h("slot", null))))); } static get watchers() { return { "value": ["valueChanged"] }; } }; Switch.style = switchCss; exports.ifx_switch = Switch; //# sourceMappingURL=ifx-switch.cjs.entry.js.map