<template> <div class="checkbox" :class="classNames" @click="toggle(value)"> <i v-if="value === true" class="checkbox__checked-icon iconoir-check"></i> <label class="checkbox__label"><slot></slot></label> </div> </template> <script> export default { name: 'Checkbox', props: { value: { type: Boolean, required: false, default: false, }, disabled: { type: Boolean, required: false, default: false, }, }, computed: { classNames() { return { 'checkbox--has-content': Object.prototype.hasOwnProperty.call( this.$slots, 'default' ), 'checkbox--disabled': this.disabled, active: this.value === true, } }, }, methods: { toggle(value) { if (this.disabled) { return } this.$emit('input', !value) }, }, } </script>