2024-11-30 00:58:04 +01:00
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { cn } from "@/lib/utils";
|
|
|
|
|
import type { HTMLAttributes } from "vue";
|
|
|
|
|
|
|
|
|
|
defineOptions({
|
|
|
|
|
inheritAttrs: false,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const props = withDefaults(
|
|
|
|
|
defineProps<{
|
|
|
|
|
side?: "left" | "right";
|
|
|
|
|
variant?: "sidebar" | "floating" | "inset";
|
|
|
|
|
collapsible?: "offcanvas" | "icon" | "none";
|
|
|
|
|
class?: HTMLAttributes["class"];
|
|
|
|
|
}>(),
|
|
|
|
|
{
|
|
|
|
|
side: "left",
|
|
|
|
|
variant: "sidebar",
|
|
|
|
|
collapsible: "offcanvas",
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
2025-02-09 19:39:05 +01:00
|
|
|
<aside
|
|
|
|
|
:class="cn('flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground p-1', props.class)"
|
|
|
|
|
v-bind="$attrs" data-component="sidebar">
|
2024-11-30 00:58:04 +01:00
|
|
|
<slot />
|
2025-02-09 19:39:05 +01:00
|
|
|
</aside>
|
2024-11-30 00:58:04 +01:00
|
|
|
</template>
|