Vercel UI SDK 0.1.0-beta.2 üzerine kurulu. API’si değişebilir.
Password input
Vercel UI SDK üzerinde göster/gizle düğmesi, Caps Lock uyarısı, güç ölçer ve parola yöneticileri için doğru autocomplete değeri olan bir parola alanı.
- Form bileşenleri
- 6 parça
- 10 örnek
@tabler/icons-react@ui-sdk/core@ui-sdk/react
pnpm dlx shadcn@latest add https://hextaui.com/r/ui-sdk-password-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 @tabler/icons-react cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/ui-sdk-password-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.
Denetim yerel bir parola alanı olarak kalır; böylece parola yöneticileri, otomatik doldurma ve form gönderimi her yerdeki gibi çalışır. name, required ve autoComplete gibi form seçeneklerini PasswordInput üzerine, id ve placeholder gibi input özniteliklerini PasswordInputControl üzerine koyun.
autoComplete giriş için varsayılan olarak current-password değerini alır. Kayıt olurken ya da parola değiştirirken tarayıcı güçlü bir parola önersin diye new-password, hesap parolası olmayan gizli bilgiler için off kullanın.
PasswordInputStrength, parolayı yazılırken 0’dan 4’e puanlar. Kontrol listesi aynı değeri usePasswordInputValue() ile okur. Kurallar örneğe aittir; bileşen bir parola politikası koymaz.
autoComplete="username" ayarlı bir e-posta alanıyla eşleştirin. Parolada Enter formu gönderir; gönderim, tarayıcı kaydetmeyi önersin diye görünen parolayı yeniden gizler.
defaultVisible, kişilerin okuması gereken bir gizli bilgi için metni görünür başlatır, örneğin bir Wi-Fi parolası.
createPasswordInputController() ile oluşturulan bir denetleyici, alanı herhangi bir düğmeden ayarlar, gösterir, gizler, temizler ve odaklar. Yazmalar, yazma gibi onValueChange üzerinden geçer.
visible ve onVisibleChange verin. Neden, düğmeye basmayı form gönderiminden, sıfırlamadan ya da sayfanın gizlenmesinden ayırır.
invalid alanı işaretler ve input öğesine aria-invalid koyar. aria-describedby özniteliğini mesajınıza yönlendirin. Zorunlu bir alan, biri onu boş bırakınca da kırmızıya döner.
Salt okunur bir alan odaklanabilir, gösterilebilir ve kopyalanabilir ama değiştirilemez; yine de gönderilir.
Tab, devre dışı bir alanı ve düğmesini atlar; değer gönderilmez.
Düğme solda durur, güç ölçer sağdan dolar. Etiketleri kendi dilinizde verin.
| Tuş | Action |
|---|---|
| Tab | Alandan düğmeye geçer. |
| SpaceEnter | Düğmeden parolayı gösterir ya da gizler ve odağı düğmede tutar. |
| Enter | Alandan formu gönderir. Düğmeye asla basmaz. |
Düğme sabit adlı bir aç/kapa düğmesidir, “Show password”; aria-pressed ekran okuyuculara parolanın görünüp görünmediğini söyler. Başka gizli bilgiler ve diller için yeniden adlandırın. Düğmeye işaretçiyle basmak, imleci alanda olduğu yerde bırakır.
PasswordInputCapsLock, Caps Lock açıkken ve alan odaktayken alanın altında açılır ve bunu bir durum bölgesiyle bildirir. PasswordInputStrength, değer metni güç etiketi olan bir ölçerdir; her tuşta duyurulmaz, istenince okunur. Görünen parolalar yazım denetimi, otomatik düzeltme ve büyük harfe çevirme dışında kalır.
Hiçbir parça parolayı bir data-* özniteliğine yazmaz. Kök ve denetim yalnızca data-filled gibi boolean değerler, ölçer ise puanı taşır. Denetimli bir value ise React’in DOM’da bir value özniteliği tutmasına yol açar; parolayı bunun yerine onValueChange ya da usePasswordInputValue() ile okuyun.
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 | – |
defaultValue | string | – |
onValueChange | (value: string, details) => void | – |
visible | boolean | – |
defaultVisible | boolean | false |
onVisibleChangedetails.reason; toggle-press, form-submit, reset, page-hide ya da imperative olur. | (visible: boolean, details) => void | – |
autoComplete | "current-password" | "new-password" | "off" | string | "current-password" |
invalid | boolean | false |
disabled | boolean | false |
readOnly | boolean | false |
required | boolean | false |
name | string | – |
form | string | – |
controllercreatePasswordInputController() ile oluşturulur. | PasswordInputController | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="password-input" | CSS’te parola girişini hedefler. |
data-visible | Parola gösterilirken bulunur. |
data-capslock | Caps Lock açıkken ve alan odaktayken bulunur. |
data-filled | Alanda herhangi bir metin varken bulunur. |
data-invalid | Geçersiz olduğunda bulunur. |
data-disabled | Devre dışıyken bulunur. |
data-readonly | Salt okunur olduğunda bulunur. |
data-required | Parola zorunlu olduğunda bulunur. |
Alanın ve düğmenin çevresindeki kutu. Alan odaktayken odak halkasını çizer.
| Prop | Tür | Varsayılan |
|---|---|---|
id | string | – |
placeholder | string | – |
render | ReactElement | (props, state) => ReactElement | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="password-input-control" | CSS’te yerel input öğesini hedefler. |
data-visible | Metin alanıyken bulunur. |
| Prop | Tür | Varsayılan |
|---|---|---|
aria-label | string | "Show password" |
childrenVarsayılan olarak kapalı göze geçişle dönüşen bir göz. | ReactNode | (state) => ReactNode | – |
render | ReactElement | (props, state) => ReactElement | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="password-input-toggle" | CSS'te toggle'ı hedefleyin. |
aria-pressed | Parola görünürken true. |
| Prop | Tür | Varsayılan |
|---|---|---|
children | ReactNode | "Caps Lock is on" |
| Öznitelik | Açıklama |
|---|---|
data-slot="password-input-capslock" | CSS’te ipucunu hedefler. |
data-active | Caps Lock açıkken bulunur. |
| Prop | Tür | Varsayılan |
|---|---|---|
getStrengthParolayı puanlar. Varsayılan; uzunluğu, karakter çeşitliliğini, tekrarları ve yaygın parolaları tartar. Gerçek politikalar için zxcvbn gibi daha güçlü bir tahminci kullanın. | (password: string) => 0 | 1 | 2 | 3 | 4 | scorePassword |
labels | [string, string, string, string, string] | ["", "Weak", "Fair", "Good", "Strong"] |
label | string | "Password strength" |
| Öznitelik | Açıklama |
|---|---|
data-slot="password-input-strength" | CSS’te ölçeri hedefler. |
data-score | Puan; boş için 0’dan 4’e kadar. |
- 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.