Skip to content

Commit 6c76b49

Browse files
committed
feat: new Toggle.vue component
1 parent de888ed commit 6c76b49

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

adminforth/spa/src/afcl/Toggle.vue

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<template>
2+
<label class="inline-flex items-center cursor-pointer" :class="{'opacity-50' : props.disabled}">
3+
<input :id="id"
4+
type="checkbox"
5+
value="" class="sr-only peer"
6+
:disabled="props.disabled"
7+
:checked="props.modelValue"
8+
@change="$emit('update:modelValue', $event.target.checked)"
9+
>
10+
<div class="relative w-11 h-6 bg-lightToggleBgUnactive peer-focus:outline-none peer-focus:ring-4
11+
peer-focus:ring-lightToggleRing dark:peer-focus:ring-darkToggleRing rounded-full peer dark:bg-darkToggleBgUnactive
12+
peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full
13+
peer-checked:after:border-lightToggleBorderActive after:content-[''] after:absolute after:top-[2px]
14+
after:start-[2px] after:bg-lightToggleCircle dark:after:bg-darkToggleCircle after:border-lightToggleBorderUnactive dark:after:border-darkToggleBorderUnactive after:border after:rounded-full
15+
after:h-5 after:w-5 after:transition-all dark:border-darkToggleBorderUnactive peer-checked:bg-lightToggleBgActive
16+
dark:peer-checked:bg-darkToggleBgActive dark:peer-checked:after:border-darkToggleBorderActive">
17+
</div>
18+
<label :for="id" class="cursor-pointer ms-2 text-sm font-medium text-lightToggleText dark:text-darkToggleText">
19+
<slot></slot>
20+
</label>
21+
</label>
22+
</template>
23+
24+
<script setup lang="ts">
25+
const props = defineProps({
26+
modelValue: Boolean,
27+
disabled: Boolean,
28+
});
29+
30+
defineEmits(['update:modelValue']);
31+
const id = `afcb-${Math.random().toString(36).substring(7)}`
32+
</script>

0 commit comments

Comments
 (0)