Skip to content

Commit 111cef1

Browse files
committed
feat(ui): new <FieldTextArea /> component
1 parent 1f935b2 commit 111cef1

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<script setup lang="ts">
2+
import Textarea from '../Textarea/Textarea.vue'
3+
4+
const props = withDefaults(defineProps<{
5+
label?: string
6+
description?: string
7+
placeholder?: string
8+
required?: boolean
9+
textareaClass?: string
10+
rows?: number
11+
}>(), {
12+
rows: 6,
13+
})
14+
15+
const modelValue = defineModel<string>({ required: false })
16+
</script>
17+
18+
<template>
19+
<div class="max-w-full">
20+
<label class="flex flex-col gap-4">
21+
<div>
22+
<div class="flex items-center gap-1 text-sm font-medium">
23+
<slot name="label">
24+
{{ props.label }}
25+
</slot>
26+
<span v-if="props.required !== false" class="text-red-500">*</span>
27+
</div>
28+
<div class="text-xs text-neutral-500 dark:text-neutral-400" text-nowrap>
29+
<slot name="description">
30+
{{ props.description }}
31+
</slot>
32+
</div>
33+
</div>
34+
<Textarea
35+
v-model="modelValue"
36+
:rows="props.rows"
37+
:placeholder="props.placeholder"
38+
:class="props.textareaClass"
39+
/>
40+
</label>
41+
</div>
42+
</template>

packages/ui/src/components/Form/Field/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ export { default as FieldInput } from './FieldInput.vue'
33
export { default as FieldKeyValues } from './FieldKeyValues.vue'
44
export { default as FieldRange } from './FieldRange.vue'
55
export { default as FieldSelect } from './FieldSelect.vue'
6+
export { default as FieldTextArea } from './FieldTextArea.vue'
67
export { default as FieldValues } from './FieldValues.vue'

0 commit comments

Comments
 (0)