{"version":3,"file":"index.vue.mjs","sources":["../../../../../../components/switch/src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useNamespace } from '@fusion-ui-vue/utils'\nimport { computed } from 'vue'\nimport { UPDATE_MODEL_EVENT } from '@fusion-ui-vue/constants'\nimport {\n  css,\n  themePaletteColor,\n  useColor,\n  useRgbColor,\n} from '@fusion-ui-vue/theme'\nimport FnIconButton from '../../icon-button'\nimport FnIcon from '../../icon'\nimport { switchHeight, switchProps } from './switch'\n\nconst props = defineProps(switchProps)\nconst emits = defineEmits<{ (e: 'update:modelValue', v: boolean): void }>()\nconst ns = useNamespace('switch')\nconst $color = useColor(props, 'color', 'var(--md-sys-color-primary)')\nconst $colorRgb = useRgbColor(props, 'color', 'var(--md-sys-color-primary-rgb)')\nconst $onColor = computed(() =>\n  themePaletteColor.includes(props.color as any)\n    ? `var(--md-sys-color-on-${props.color})`\n    : 'var(--md-sys-color-on-primary)'\n)\n\nconst checked = computed<boolean>({\n  get() {\n    return props.modelValue as any\n  },\n  set(newVal) {\n    emits(UPDATE_MODEL_EVENT, newVal)\n  },\n})\n\nconst cssClass = computed(\n  () => css`\n    --fn-switch-color: ${$color.value};\n    --fn-switch-color-rgb: ${$colorRgb.value};\n    --fn-switch-on-color: ${$onColor.value};\n    --fn-switch-height: ${switchHeight[props.size]}px;\n  `\n)\n</script>\n\n<template>\n  <span :class=\"[ns.b(), cssClass]\">\n    <fn-icon-button\n      :class=\"[ns.e('thumb')]\"\n      :color=\"props.color\"\n      :disabled=\"$attrs.disabled\"\n      @click=\"checked = !checked\"\n    >\n      <span :class=\"[ns.em('thumb', 'icon-wrapper')]\">\n        <slot v-bind=\"{ class: [ns.em('thumb', 'icon')], size: '16' }\">\n          <fn-icon\n            v-if=\"!props.disabledIcon\"\n            :class=\"[ns.em('thumb', 'icon')]\"\n            icon=\"mdi:check\"\n            size=\"16\"\n          />\n        </slot>\n      </span>\n    </fn-icon-button>\n    <!-- eslint-disable vue/html-self-closing -->\n    <input\n      v-bind=\"$attrs\"\n      v-model=\"checked\"\n      :class=\"[ns.e('input')]\"\n      type=\"checkbox\"\n    />\n  </span>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBM,IAAA,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAChC,IAAA,MAAM,MAAS,GAAA,QAAA,CAAS,KAAO,EAAA,OAAA,EAAS,6BAA6B,CAAA,CAAA;AACrE,IAAA,MAAM,SAAY,GAAA,WAAA,CAAY,KAAO,EAAA,OAAA,EAAS,iCAAiC,CAAA,CAAA;AAC/E,IAAA,MAAM,QAAW,GAAA,QAAA;AAAA,MAAS,MACxB,kBAAkB,QAAS,CAAA,KAAA,CAAM,KAAY,CACzC,GAAA,CAAA,sBAAA,EAAyB,KAAM,CAAA,KAAK,CACpC,CAAA,CAAA,GAAA,gCAAA;AAAA,KACN,CAAA;AAEA,IAAA,MAAM,UAAU,QAAkB,CAAA;AAAA,MAChC,GAAM,GAAA;AACJ,QAAA,OAAO,KAAM,CAAA,UAAA,CAAA;AAAA,OACf;AAAA,MACA,IAAI,MAAQ,EAAA;AACV,QAAA,KAAA,CAAM,oBAAoB,MAAM,CAAA,CAAA;AAAA,OAClC;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,QAAW,GAAA,QAAA;AAAA,MACf,MAAM,GAAA,CAAA;AAAA,uBAAA,EACiB,OAAO,KAAK,CAAA;AAAA,2BAAA,EACR,UAAU,KAAK,CAAA;AAAA,0BAAA,EAChB,SAAS,KAAK,CAAA;AAAA,wBAChB,EAAA,YAAA,CAAa,KAAM,CAAA,IAAI,CAAC,CAAA;AAAA,EAAA,CAAA;AAAA,KAElD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}