23 lines
667 B
Vue
23 lines
667 B
Vue
<script setup lang="ts">
|
|
import type { HTMLAttributes } from "vue"
|
|
import { PanelLeft } from "lucide-vue-next"
|
|
import { cn } from "@/lib/utils"
|
|
import { Button } from '@/components/ui/button'
|
|
import { useSidebar } from "./utils"
|
|
|
|
const props = defineProps<{
|
|
size?: number
|
|
class?: HTMLAttributes["class"]
|
|
}>()
|
|
|
|
const { toggleSidebar } = useSidebar()
|
|
</script>
|
|
|
|
<template>
|
|
<Button data-sidebar="trigger" data-slot="sidebar-trigger" variant="ghost" size="icon"
|
|
:class="cn('h-7 w-7', props.class)" @click="toggleSidebar">
|
|
<PanelLeft :class="`size-${size || 4}`" />
|
|
<span class="sr-only">Toggle Sidebar</span>
|
|
</Button>
|
|
</template>
|