Vercel UI SDK 0.1.0-beta.2 üzerine kurulu. API’si değişebilir.
Time input
Vercel UI SDK üzerinde parça parça yazılan bir saat alanı; 12 veya 24 saatlik saat, isteğe bağlı saniye, en küçük ve en büyük değer ve formlar için 24 saatlik değer.
- 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-time-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-time-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.
Değer, alanın gösterdiği saat düzeninden bağımsız olarak yerel bir saat girişindeki gibi "14:30" biçiminde 24 saatlik bir zamandır. Her parça bir şey içerene kadar null kalır. Her parça kendi küçük girişidir: rakam yazınca ilerler, günün yarısı için A veya P'ye bası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.
TimeInput parçalarını kendisi çizer. Yanlarına bir simge ya da başka içerik koymak için TimeInputSegments öğesini kendiniz ekleyin.
Alan yerel ayarın saat düzenini gösterir. hourCycle 12 veya 24 saati seçer, granularity saniye ekler ya da yalnızca saati gösterir. Hepsi 24 saatlik değer gönderir.
min öncesindeki veya max sonrasındaki bir saat alanı geçersiz işaretler ve formu gönderilmez.
invalid, başlangıçtan önceki bir bitiş saati gibi kendi denetimleriniz için alanı işaretler.
locale sırayı, ayırıcıları ve günün yarısının adlarını belirler. Olmadığında alan etkileşimli hale gelince sayfanın dilini izler.
Gizli bir giriş saati name altında gönderir. required boş veya yarım yazılmış bir saati durdurur, sıfırlama varsayılanı geri getirir.
createTimeInputController() alanı her yerden ayarlar, temizler veya odaklar. Bir parçaya "minute" 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. |
| ↑↓ | Parçayı birer birer değiştirir ve başa döner. Boş bir parça şu anki saatten başlar. |
| PageUpPageDown | Daha büyük adımlarla değiştirir, örneğin 15 dakika. |
| 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. |
| AP | 12 saatlik düzende ÖÖ veya ÖS'yi seçer. |
| Enter | Formu yazılanla gönderir. |
Kök bir gruptur. Her parça, “hour” 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 | – |
hourCycleVarsayılan olarak yerel ayarın saat düzeni. | 12 | 24 | – |
granularity | "hour" | "minute" | "second" | "minute" |
min | string | – |
max | string | – |
localeVarsayılan olarak sayfanın dili. | string | – |
invalid | boolean | false |
disabled | boolean | false |
readOnly | boolean | false |
required | boolean | false |
name | string | – |
form | string | – |
controllercreateTimeInputController() ile oluşturulur. | TimeInputController | – |
childrenVarsayılan olarak TimeInputSegments. | ReactNode | (state) => ReactNode | – |
render | ReactElement | (props, state) => ReactElement | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="time-input" | CSS'te saat alanını hedeflemek için. |
data-invalid | Saat min ile max dışında olduğunda 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 TimeInputSegment çizer.
| Prop | Tür | Varsayılan |
|---|---|---|
segmentKök durumundaki segments öğelerinden biri. | TimeInputSegmentData | – |
render | ReactElement | (props, state) => ReactElement | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="time-input-segment" | CSS'te bir parçayı hedeflemek için. |
data-type | 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.