# LivaPhoneBox
Package: @dataliva/livalib
Description: @dataliva/livalib telefon numarası giriş bileşeni.

Ülke kodu seçimli telefon numarası girişi. Değer, `{ code: '+90', number: '5301234567' }`
biçiminde bir `PhoneValue` nesnesi olarak tutulur.

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

## Temel kullanım

`defaultCountryCode` ile açılıştaki ülke belirlenir (ör. `'TR'`, `'US'`); kullanıcı
listeden başka bir ülke kodu seçebilir.

**Örnek — Temel kullanım:**

```tsx
<LivaPhoneBox
  label="Telefon"
  defaultCountryCode="TR"
  placeholder="Telefon numarası girin"
/>
```

## Kontrollü değer

`value` ve `onValueChanged` ile bileşen tam kontrollü kullanılır; geri çağrıma
doğrudan `PhoneValue` nesnesi gelir.

**Örnek — Kontrollü değer:**

```tsx
<LivaPhoneBox
  label="Cep Telefonu"
  value={phone}
  onValueChanged={(e) => setPhone(e)}
/>
<p>Değer: {phone.code} {phone.number}</p>
```

## Varyantlar

**Örnek — Varyantlar:**

```tsx
<LivaPhoneBox label="Standard" variant="standard" defaultCountryCode="TR" />
<LivaPhoneBox label="Outlined" variant="outlined" defaultCountryCode="TR" />
<LivaPhoneBox label="Filled" variant="filled" defaultCountryCode="TR" />
```

## Durumlar ve doğrulama

`isValid={false}` hata görünümünü açar; mesaj `errorMessage` (veya eş anlamlısı
`validationError`) ile verilir.

**Örnek — Durumlar ve doğrulama:**

```tsx
<LivaPhoneBox label="Devre dışı" disabled defaultValue="5301234567" defaultCountryCode="TR" />
<LivaPhoneBox label="Salt okunur" readOnly defaultValue="5301234567" defaultCountryCode="TR" />
<LivaPhoneBox
  label="Hatalı"
  isValid={false}
  errorMessage="Geçerli bir numara girin"
  defaultCountryCode="TR"
/>
```

## Prop'lar

| Prop | Tip | Varsayılan |
|------|------|---------|
| `value` | `PhoneValue` | — |
| `defaultValue` | `string` | `''` |
| `defaultCountryCode` | `string` | `'US'` |
| `onValueChanged` | `(e: PhoneValue) => void` | — |
| `label` | `string` | — |
| `placeholder` | `string` | `'Enter phone number'` |
| `disabled` | `boolean` | `false` |
| `readOnly` | `boolean` | `false` |
| `isValid` | `boolean` | `true` |
| `errorMessage` | `string` | — |
| `variant` | `'standard' \| 'outlined' \| 'filled'` | `'standard'` |
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` |
