frontend/components/ui/form/FormLabel.vue

24 lines
538 B
Vue
Raw Normal View History

<script lang="ts" setup>
import { cn } from "@/lib/utils";
import type { LabelProps } from "radix-vue";
import type { HTMLAttributes } from "vue";
import { Label } from "~/components/ui/label";
import { useFormField } from "./useFormField";
const props = defineProps<LabelProps & { class?: HTMLAttributes["class"] }>();
const { error, formItemId } = useFormField();
</script>
<template>
<Label
:class="cn(
error && 'text-destructive',
props.class,
)"
:for="formItemId"
>
<slot />
</Label>
</template>