@akhatmirzo/ui

RadioGroup

Bir nechta variantdan bittasini tanlash: native radio'lar, strelkalar bilan yurish, card ko'rinishi.

Import

import { Radio, RadioGroup } from '@akhatmirzo/ui';

Qachon ishlatish

  • 2–5 ta variantdan bittasi tanlanadigan bo'lsa — to'lov usuli, yetkazib berish turi, tarif. Hamma variant ko'rinib turadi, solishtirish oson.
  • Variantlar ko'p bo'lsa (6 tadan ortiq) — Select yoki Combobox joyni tejaydi.
  • Bir nechtasini tanlash mumkin bo'lsa — Checkbox.
  • Tanlovga narx yoki izoh kerak bo'lsa — variant="card": har bir variant katta bosiladigan karta.
  • Guruhga nom bering — Field ning label i yoki aria-label.

Yo'nalish

orientation="vertical" (standart) — ustma-ust. horizontal — bir qatorda, joy yetmasa keyingi qatorga o'tadi. Qisqa variantlar uchun.

O'lchamlar

size guruhga beriladi va barcha radio'larga o'tadi: sm — 16px, md (standart) — 20px.

Card varianti

variant="card" — har bir Radio chegarali karta, tanlanganda primary rangda ajraladi. Narx, tarif va to'lov usullari uchun qulay: label va izoh katta maydonda.

Tanlangan tarif: pro

Holatlar

disabled butun guruhga yoki bitta Radio ga beriladi. invalid — doiralar chegarasi qizil, guruh va radio'larda aria-invalid.

Field bilan

Field ichida guruh label'ga aria-labelledby orqali bog'lanadi, izoh va xato aria-describedby ga tushadi; required, disabled va xato holati radio'larga o'tadi.

Usulni tanlang

Props

RadioGroup

RadioGroup qolgan barcha <div> atributlarini (aria-label, className ...) qabul qiladi.

PropTipStandartTavsif
valuestring—Boshqariladigan qiymat
defaultValuestring—Boshlang'ich qiymat (boshqarilmaydigan rejim)
onValueChange(value: string) => void—Boshqa variant tanlanganda
orientation'vertical' | 'horizontal''vertical'Joylashuv va aria-orientation
variant'default' | 'card''default'card — har bir variant bosiladigan karta
size'sm' | 'md''md'Doira o'lchami: 16 / 20px
namestring—Native radio'lar uchun umumiy name (berilmasa avtomatik)
disabledboolean—Butun guruhni o'chiradi
requiredboolean—Majburiy tanlov
invalidboolean—Xato holati (Field ichida error bo'lsa avtomatik)

Radio

Radio qolgan <input> atributlarini qabul qiladi; ref ichki <input> ga, className — ildiz <label> ga. Faqat RadioGroup ichida ishlaydi.

PropTipStandartTavsif
valuemajburiystring—Variant qiymati
labelReactNode—Doira yonidagi matn
descriptionReactNode—Label ostidagi izoh
disabledboolean—Faqat shu variantni o'chiradi
classNamestring—Ildiz <label> elementi klassi

Data atributlari

ElementAtribut
RadioGroupdata-orientation, data-variant, data-size, data-invalid, data-disabled
Radiodata-state (checked · unchecked), data-disabled

Accessibility

  • Native radio'lar bir name bilan — klaviatura xatti-harakati brauzerniki: Tab guruhga kiradi va chiqadi, ↑↓ / ←→ variantlar orasida yuradi va tanlaydi.
  • role="radiogroup" va aria-orientation; Field ichida nom aria-labelledby orqali label'dan olinadi.
  • Holatlar guruhda aria-required, aria-disabled, aria-invalid bilan aytiladi.
  • Izohlar har bir radio'ga aria-describedby orqali bog'langan.
  • Card variantida fokus halqasi butun kartaga chiziladi.

Sahifada