11<template >
2- <div
3- :class ="
4- clsx(
5- size === 'sm' ? 'w-6 h-4' : 'w-9 h-6',
6- 'cursor-pointer flex-none flex items-center rounded-full p-1 duration-300 ease-in-out',
7- props.selected
8- ? themeClasses('bg-action-300', 'bg-action-500')
9- : themeClasses('bg-neutral-400', 'bg-neutral-500'),
10- )
11- "
12- @click =" click"
13- >
2+ <div :class =" clsx('flex flex-row items-center')" >
143 <div
154 :class ="
165 clsx(
17- 'bg-white rounded-full shadow-md transform duration-300 ease-in-out',
18- size === 'sm'
19- ? [
20- 'w-3 h-3',
21- props.selected
22- ? 'translate-x-[0.35rem]'
23- : 'translate-x-[-0.1rem]',
24- ]
25- : ['w-4 h-4', props.selected ? 'translate-x-3' : ''],
6+ size === 'sm' ? 'w-6 h-4' : 'w-9 h-6',
7+ 'cursor-pointer flex-none flex items-center rounded-full p-1 duration-300 ease-in-out',
8+ props.selected
9+ ? themeClasses('bg-action-300', 'bg-action-500')
10+ : themeClasses('bg-neutral-400', 'bg-neutral-500'),
2611 )
2712 "
28- ></div >
13+ @click =" click"
14+ >
15+ <div
16+ :class ="
17+ clsx(
18+ 'bg-white rounded-full shadow-md transform duration-300 ease-in-out',
19+ size === 'sm'
20+ ? [
21+ 'w-3 h-3',
22+ props.selected
23+ ? 'translate-x-[0.35rem]'
24+ : 'translate-x-[-0.1rem]',
25+ ]
26+ : ['w-4 h-4', props.selected ? 'translate-x-3' : ''],
27+ )
28+ "
29+ ></div >
30+ </div >
31+ <span
32+ :class =" clsx('px-1 text-xs', props.labelWidth)"
33+ v-if =" props.onLabel && props.selected"
34+ >{{ props.onLabel }}</span
35+ >
36+ <span
37+ :class =" clsx('px-1 text-xs', props.labelWidth)"
38+ v-if =" props.offLabel && !props.selected"
39+ >{{ props.offLabel }}</span
40+ >
2941 </div >
3042</template >
3143
@@ -40,5 +52,8 @@ const props = defineProps({
4052 size: { type: String , default: " md" },
4153 selected: { type: Boolean },
4254 click: { type: Function as PropType <clickFn >, default : () => {} },
55+ onLabel: { type: String , required: false },
56+ offLabel: { type: String , required: false },
57+ labelWidth: { type: String , required: false , default: " " },
4358});
4459 </script >
0 commit comments