| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  | <template> | 
					
						
							|  |  |  |   <component :is="tag"> | 
					
						
							|  |  |  |     <slot name="activator" v-bind="{ toggle, state }"> </slot> | 
					
						
							|  |  |  |     <slot v-bind="{ state, toggle }"></slot> | 
					
						
							|  |  |  |   </component> | 
					
						
							|  |  |  | </template> | 
					
						
							| 
									
										
										
										
											2022-05-25 10:14:24 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2022-08-13 21:38:26 -08:00
										 |  |  | import { defineComponent, ref, watch } from "@nuxtjs/composition-api"; | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export default defineComponent({ | 
					
						
							|  |  |  |   props: { | 
					
						
							| 
									
										
										
										
											2021-11-20 14:30:38 -09:00
										 |  |  |     value: { | 
					
						
							|  |  |  |       type: Boolean, | 
					
						
							|  |  |  |       default: false, | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  |     tag: { | 
					
						
							|  |  |  |       type: String, | 
					
						
							|  |  |  |       default: "div", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2021-11-20 14:30:38 -09:00
										 |  |  |   setup(_, context) { | 
					
						
							| 
									
										
										
										
											2022-08-13 21:38:26 -08:00
										 |  |  |     const state = ref(false); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const toggle = () => { | 
					
						
							|  |  |  |       state.value = !state.value; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2021-11-20 14:30:38 -09:00
										 |  |  | 
 | 
					
						
							|  |  |  |     watch(state, () => { | 
					
						
							|  |  |  |       context.emit("input", state); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-04 20:24:32 -08:00
										 |  |  |     return { | 
					
						
							|  |  |  |       state, | 
					
						
							|  |  |  |       toggle, | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | </script> |