Vercel UI SDK 0.1.0-beta.2 üzerine kurulu. API’si değişebilir.
Date input
Vercel UI SDK üzerinde yerel ayarın sırasıyla parça parça yazılan bir tarih alanı; isteğe bağlı saat, en küçük ve en büyük değer, kullanılamayan günler ve ISO değeri.
- Form bileşenleri
- 3 parça
- 10 örnek
@ui-sdk/core@ui-sdk/react
pnpm dlx shadcn@latest add https://hextaui.com/r/ui-sdk-date-input.jsonBileşeni, HextaUI tema token'larını ve bileşenin bağımlı olduğu tüm HextaUI bileşenlerini ekler.
Henüz eklemediyseniz tema token'larını global CSS'inize ekleyin.
Bağımlılıkları yükleyin.
pnpm add @ui-sdk/react@0.1.0-beta.2 @ui-sdk/core@0.1.0-beta.2 cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/ui-sdk-date-input.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
UI SDK, ui-sdk adlı bir cascade katmanında kendi CSS’ini biraz ekler. Sınıflarınızın kazanması için bu katmanı genel stil dosyanızın en üstünde, Tailwind import’unun üzerinde tanımlayın.
Doğum günü gibi ezbere bilinen tarihler için bir tarih alanı kullanın. Değer "2026-11-02" gibi bir ISO tarihidir ve her parça bir şey içerene kadar null kalır. Her parça yazdıkça dolar ve ilerler, gün kendi ayının içinde tutulur ve tam bir tarih herhangi bir parçaya yapıştırılabilir. Takvimden seçmek için Date Picker'ı kullanın.
Alan bir gruptur, bu yüzden onu aria-labelledby veya aria-label ile adlandırın. Kutunun herhangi bir yerine tıklamak en yakın parçaya odaklanır.
DateInput parçalarını kendisi çizer. Yanlarına bir simge ya da başka içerik koymak için DateInputSegments öğesini kendiniz ekleyin.
granularity değerini "hour", "minute" veya "second" yapmak saati ekler ve değer "2026-11-02T14:30" gibi yerel bir tarih ve saate dönüşür.
min öncesindeki veya max sonrasındaki bir tarih alanı geçersiz işaretler ve formu gönderilmez.
unavailable ISO tarihleri, { from, to } aralıkları, hafta günleri veya bir fonksiyon alır; bunlara denk gelen tarih geçersizdir.
locale sırayı ve ayırıcıları belirler. Rakamlar her zaman 0-9, takvim her zaman Gregoryen'dir; böylece değer her yerde aynı tarihi ifade eder.
Gizli bir giriş ISO tarihini name altında gönderir, burada bir Time Input'un yanında. required boş veya yarım yazılmış bir tarihi durdurur, sıfırlama varsayılanı geri getirir.
createDateInputController() alanı her yerden ayarlar, temizler veya odaklar. Bir parçaya "year" gibi birimiyle odaklanın.
Devre dışı bir alan odakta atlanır ve gönderilmez.
Salt okunur bir alan odak alır ve gönderilir, ancak tuşlar ve yazma onu değiştirmez.
Parçalar yerel ayarın sırasını korur ve ok tuşları ekrandaki sıralarını izler.
| Tuş | Action |
|---|---|
| 0–9 | Parçayı doldurur, sonra bir sonrakine geçer. |
| /. | Sonraki parçaya geçer. |
| ↑↓ | Parçayı birer birer değiştirir ve başa döner. Boş bir parça bugünden başlar. |
| PageUpPageDown | Daha büyük adımlarla değiştirir: yıl 5, ay 3, gün 7. |
| HomeEnd | Parçanın ilk veya son değerine gider. |
| ←→ | Önceki veya sonraki parçaya geçer. |
| Backspace | Son rakamı siler, sonra parçayı boşaltır, ardından geri gider. |
| Enter | Formu yazılanla gönderir. |
Kök bir gruptur. Her parça, “month” gibi birimiyle adlandırılmış, değeri ve aralığı olan bir spinbutton'dır; boş bir parça “Empty” olarak okunur. Parçalar arasındaki metin ekran okuyuculardan gizlenir.
Parçalar gerçek girişlerdir; bu yüzden telefonlar sayı tuş takımı gösterir ve sayfanın betiği çalışmadan yazılabilir. Telefonlar yakınlaştırmasın diye dokunmatik ekranlarda 16px'e büyürler ve odaktaki parça imleç yerine vurgulanır.
Her parça aynı adlı UI SDK parçasını sarar ve render ile parçanın durumuna bağlı bir fonksiyon olabilen className dahil tüm prop’larını kabul eder.
| Prop | Tür | Varsayılan |
|---|---|---|
value | string | null | – |
defaultValue | string | null | – |
onValueChangeHer parça bir şey içerdiğinde, bir parça boşaltıldığında da null ile çalışır. | (value: string | null, details) => void | – |
granularity | "day" | "hour" | "minute" | "second" | "day" |
hourCycleVarsayılan olarak yerel ayarın saat düzeni. | 12 | 24 | – |
min | string | – |
max | string | – |
unavailableISO tarihleri, { from, to } aralıkları, { weekday } veya bir fonksiyon. | DateMatchers | – |
localeVarsayılan olarak sayfanın dili. | string | – |
invalid | boolean | false |
disabled | boolean | false |
readOnly | boolean | false |
required | boolean | false |
name | string | – |
form | string | – |
controllercreateDateInputController() ile oluşturulur. | DateInputController | – |
childrenVarsayılan olarak DateInputSegments. | ReactNode | (state) => ReactNode | – |
render | ReactElement | (props, state) => ReactElement | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="date-input" | CSS'te tarih alanını hedeflemek için. |
data-invalid | Tarih min ile max dışında olduğunda, kullanılamadığında veya invalid ayarlandığında bulunur. |
data-empty | Tüm parçalar boşken bulunur. |
data-disabled | Devre dışıyken bulunur. |
data-readonly | Salt okunur olduğunda bulunur. |
data-required | Zorunlu olduğunda bulunur. |
Her parça için yerel ayarın sırasıyla, aralarındaki metinle birlikte bir DateInputSegment çizer.
| Prop | Tür | Varsayılan |
|---|---|---|
segmentKök durumundaki segments öğelerinden biri. | DateInputSegmentData | – |
render | ReactElement | (props, state) => ReactElement | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="date-input-segment" | CSS'te bir parçayı hedeflemek için. |
data-type | year, month, day, hour, minute, second, dayPeriod veya parçalar arasındaki metin için literal. |
data-empty | Parça boşken bulunur. |
- CalendarTekli, aralık ve çoklu seçim için, kayan aylar, aralık önizlemeleri ve dokunmaya uygun boyutta günler içeren bir tarih ızgarası.
- Checkboxİşareti çizilerek beliren, belirsiz üst öğeleri, grupları ve hover durumunu paylaşan etiketleri olan bir onay kutusu.
- ComboboxÇipler, gruplar ve asenkron sonuçlar içeren, siz yazdıkça boyutu değişen bir açılır pencerede filtrelenebilir bir select.
- Date pickerTek tarihler ve aralıklar için takvimi bir popover içinde, telefonlarda ise alt sayfa olarak açan bir düğme.
- FieldKontrolüne bağlanmış etiketler, açıklamalar ve hatalar; doğrulama durumları ve formlar için düzenler içerir.
- InputÜç boyutlu, geçersiz ve salt okunur durumları, yerel doğrulama stilleri ve telefonların asla yakınlaştırmaması için 16px dokunmatik yazı tipi olan bir metin girişi.