Lompat ke isi
CirccaHIG

Komponen / Form & input

Combobox

Pilihan tunggal dengan pencarian untuk daftar panjang — customer, item lisensi, distributor — dengan aksi "Buat baru" opsional bila data belum ada.
React · BetaFigma · siapFigmaSumber

Import

tsx
import { Combobox, type ComboboxOption } from '@divistant/circca-react';

Props

ref diteruskan ke <input role="combobox">. id, required, disabled, readOnly, invalid, dan aria-describedby otomatis mengikuti FormField.
PropTipeDefaultKeterangan
optionsComboboxOption[]—Daftar opsi: { value, label, description?, group?, disabled?, leadingVisual?, avatar? }.
valuestring | null—Nilai terpilih (terkendali). null = kosong.
defaultValuestring | nullnullNilai awal bila tidak terkendali.
onValueChange(value: string | null, option: ComboboxOption | null) => void—Dipanggil saat opsi dipilih atau isian dikosongkan.
onInputChange(text: string) => void—Setiap teks berubah — untuk memuat opsi dari server.
filter((option, query) => boolean) | false—Penyaring kustom. Bawaan: memuat teks, tidak peka huruf besar, juga mencari di deskripsi. false = opsi sudah disaring di luar.
loadingbooleanfalseState=Loading: "Mencari…" + tiga baris Skeleton, listbox aria-busy.
onCreate(text: string) => void—Mengaktifkan aksi "Buat baru" di footer (properti Figma Create action). Disembunyikan bila teks sama persis dengan opsi yang ada.
createLabel(text: string) => ReactNode`Buat baru "<teks>"`Label aksi buat baru, mis. `Buat customer "${teks}"`.
emptyMessageReactNode | ((text: string) => ReactNode)`Tidak ada hasil untuk "<teks>".`Pesan State=Empty.
resultLabelstring—Kata benda baris meta: "customer" → "3 dari 128 customer". Tanpa ini baris meta tidak tampil.
totalCountnumber—Total data untuk baris meta bila opsi hanya sebagian (server). Bawaan options.length.
placeholderstring'Cari…'Teks saat kosong.
size'sm' | 'md' | 'lg''md'Tinggi 24 / 28 / 36, sama dengan Input.
leadingVisualVisual—Ikon di kiri, mis. Buildings untuk customer.
namestring—Nama field form HTML; value (bukan label) dikirim lewat input tersembunyi.
invalidbooleanfalseTampilan error. Otomatis true bila FormField punya `error`.
disabledbooleanfalseNonaktif. Otomatis mengikuti FormField.
readOnlybooleanfalseHanya baca: nilai tetap kontras penuh, daftar tidak bisa dibuka, ikon selector disembunyikan.
classNamestring—Kelas tambahan untuk kotak field.

Sumber

Kode komponen ada di packages/react/src/components/combobox. Gaya hanya memakai kelas token Circca HIG — tidak ada warna, spasi, atau radius mentah.

Esc
↑↓ pilih↵ buka12 hasil