# LivaTextArea
Package: @dataliva/livalib
Description: @dataliva/livalib çok satırlı metin girişi bileşeni.

DevExtreme'in TextArea bileşeni üzerine kurulu çok satırlı metin girişi;
sabit yükseklik veya içeriğe göre otomatik boyutlanma destekler.

```tsx
import { LivaTextArea } from "@dataliva/livalib";
```

## Varyantlar

Görünüm stilini `variant` belirler: `standard`, `outlined`, `filled`.

**Örnek — Varyantlar:**

```tsx
<LivaTextArea variant="standard" label="Standard" placeholder="Açıklama girin" width={240} />
<LivaTextArea variant="outlined" label="Outlined" placeholder="Açıklama girin" width={240} />
<LivaTextArea variant="filled" label="Filled" placeholder="Açıklama girin" width={240} />
```

## Yükseklik ve otomatik boyutlanma

`height` sabit bir yükseklik verir; `autoResizeEnabled` açıkken alan içeriğe
göre `minHeight` ve `maxHeight` sınırları içinde büyür.

**Örnek — Yükseklik ve otomatik boyutlanma:**

```tsx
<LivaTextArea label="Sabit yükseklik" height={120} placeholder="Sabit 120px" width={260} />
<LivaTextArea
  label="Otomatik boyutlanma"
  autoResizeEnabled
  minHeight={60}
  maxHeight={160}
  placeholder="Yazdıkça uzar"
  width={260}
/>
```

## Karakter sınırı

`maxLength` girilebilecek karakter sayısını sınırlar; `onType` her tuş
vuruşunda güncel değeri döndürür.

**Örnek — Karakter sınırı:**

```tsx
<LivaTextArea
  label="Not"
  placeholder="En fazla 80 karakter"
  maxLength={80}
  onType={(value: string) => setNote(value)}
  width={300}
/>
<p>{note.length}/80</p>
```

## Durumlar

`disabled`, `readOnly`, `required` ve `hint` giriş alanının durumunu belirtir.

**Örnek — Durumlar:**

```tsx
<LivaTextArea label="Devre dışı" disabled defaultValue="Düzenlenemez içerik" width={240} />
<LivaTextArea label="Salt okunur" readOnly defaultValue="Yalnızca görüntülenir" width={240} />
<LivaTextArea label="Zorunlu" required placeholder="Doldurulması zorunlu" width={240} />
<LivaTextArea label="Açıklama" hint="Kısa bir özet yazın" width={240} />
```

## Prop'lar

| Prop | Tip | Varsayılan |
|------|------|---------|
| `value` | `string` | — |
| `placeholder` | `string` | — |
| `height` | `number \| string` | — |
| `maxLength` | `number` | — |
| `autoResizeEnabled` | `boolean` | `false` |
| `variant` | `'standard' \| 'outlined' \| 'filled'` | `'outlined'` |
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` |
| `label` | `string` | — |
| `labelPosition` | `'top' \| 'left' \| 'right' \| 'bottom' \| 'floating' \| ...` | — |
| `onValueChanged` | `(e) => void` | — |
| `onType` | `(value: string) => void` | — |
| `disabled` | `boolean` | `false` |
| `readOnly` | `boolean` | `false` |
| `required` | `boolean` | `false` |
| `hint` | `string` | — |

Ayrıca DevExtreme `ITextAreaOptions`'tan gelen tüm prop'lar
(ör. `minHeight`, `maxHeight`, `spellcheck`) kullanılabilir.
