Combobox
תיבת בחירה משולבת של ARIA עם ערך יחיד או ערכים מרובים וסינון.
- דפדפנים
- Chrome 114+Firefox 125+Safari 17+
- שכבה
- 2
- גודל חבילה דחוסה
- 5.53 kB
- מגבלת פריסה כפויה
- 0 ms
- מגבלת Axe
- 0
- תואם SSR
- כן
- חוזה מפורסם
- סביבת בדיקות
מגרש ניסויים
API
Combobox.Root
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
size | "sm" | "md" | "lg" | "md" | גובה הפקד וגודל הטקסט, בהתאמה ל-Button (32, 40 או 48 px); נכתבים ל-data-size, עם md כשלא הוגדר ערך. |
children | ReactNode | — | חלקי Combobox: פקד, תגיות, קלט, כפתור פתיחה ותוכן. |
items* | ComboboxItemData[] | — | רשימת האפשרויות המלאה שהקלט מסנן. |
defaultInputValue | string | — | הטקסט ההתחלתי בקלט כשהערך שלו אינו מבוקר. |
defaultOpen | boolean | — | קובע אם הרשימה מתחילה פתוחה כאשר מצב הפתיחה אינו מבוקר. |
defaultValue | string | readonly string[] | — | הערך או הערכים הנבחרים בהצגה הראשונה כאשר הבחירה אינה מבוקרת. |
multiple | boolean | false | מאפשר לבחור ולהסיר ערכים מרובים כתגיות. |
allowCustomValue | boolean | false | מאפשר לבחור כערך טקסט שהוקלד ואינו נמצא ב-items. |
addOnPaste | boolean | true | מוסיף ערכים מרובים המופרדים בתווים מתוך טקסט שהודבק במצב בחירה מרובה. |
delimiters | readonly string[] | [","] | תווים המאשרים או מפצלים ערכים מוקלדים במצב בחירה מרובה. |
maxValues | number | — | המספר המרבי של ערכים שניתן לבחור במצב בחירה מרובה. |
validateValue | (value: string) => boolean | — | דוחה ערך מותאם אישית כשהיא מחזירה false. |
filterFn | (items: ComboboxItemData[], inputValue: string) => ComboboxItemData[] | — | מחליפה את המסנן המובנה שמצמצם את הפריטים בזמן ההקלדה. |
inputValue | string | — | הטקסט בקלט, ההופך את הערך המוקלד למבוקר. |
onInputValueChange | (value: string) => void | — | נקראת עם הטקסט החדש בכל שינוי בקלט. |
onOpenChange | (open: boolean, details: OpenChangeDetails) => void | — | נקראת כשהרשימה נפתחת או נסגרת, עם סיבת השינוי. |
onValueChange | ((value: string) => void) | ((value: string[]) => void) | — | נקראת עם הערך הנבחר או עם מערך הערכים הנבחרים המלא. |
open | boolean | — | קובע אם הרשימה פתוחה, והופך את מצב הפתיחה למבוקר. |
value | string | readonly string[] | — | הערך או הערכים הנבחרים, ההופכים את הבחירה למבוקרת. |
Combobox.Control
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
children | ReactNode | — | התגיות והקלט המוצגים בתוך הפקד החזותי המשותף. |
className | string | — | המחלקה המוחלת על אלמנט הפקד. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Combobox.Tags
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
children | ReactNode | — | תוכן המצורף אחרי התגיות הניתנות להסרה שנוצרות. |
className | string | — | המחלקה המוחלת על מכל התגיות שנוצר. |
slotProps | ComboboxTagsSlotProps | — | מאפיינים מובנים לתגיות ולכפתורי ההסרה שנוצרים, הממוענים לפי הערך הנבחר. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Combobox.Input
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
className | string | — | המחלקה המוחלת על קלט הטקסט. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Combobox.Trigger
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
children | ReactNode | — | תוכן הכפתור שפותח את הרשימה, למשל אייקון. |
className | string | — | המחלקה המוחלת על כפתור הפתיחה. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Combobox.Content
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
align | "start" | "center" | "end" | — | יישור הרשימה ביחס לקלט לאורך הצד שנבחר. |
children* | (filteredItems: ComboboxItemData[]) => ReactNode | — | פונקציית תצוגה הנקראת עם הפריטים שנותרו לאחר הסינון. |
className | string | — | המחלקה המוחלת על החלונית הקופצת של הרשימה. |
side | "top" | "right" | "bottom" | "left" | — | הצד של הקלט שבו ממוקמת הרשימה. |
Combobox.Item
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
className | string | — | המחלקה המוחלת על אלמנט האפשרות. |
item* | ComboboxItemData | — | הפריט שאפשרות זו מציגה, בדרך כלל מתוך פונקציית התוכן. |
Combobox.Empty
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
children | ReactNode | — | התוכן המוצג כשהסינון לא משאיר פריטים. |
className | string | — | המחלקה המוחלת על אלמנט המצב הריק. |
ComboboxItemData
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
disabled | boolean | — | מונע בחירה בפריט זה. |
label* | string | — | הטקסט המוצג לפריט ומשמש להתאמה במסנן. |
value* | string | — | הערך המדווח כשהפריט נבחר. |
מקלדת
| מקש | פעולה |
|---|---|
| ↓ / ↑ | פתיחה ומעבר בין אפשרויות |
| Enter | בחירה |
| Escape | סגירה |
| a–z | הקלדה לסינון אפשרויות |
נגישות
תיבת בחירה משולבת של ARIA עם listbox. האפשרות הפעילה מוכרזת באמצעות aria-activedescendant. התוכן חושף מצב פתוח או סגור; האפשרויות חושפות מצב מודגש, מושבת, ובמצב מרובה גם נבחר. השתמשו ב-Empty להסבר כשאין אפשרויות תואמות. הנפשת ההופעה של החלונית הקופצת מושבתת כאשר יש העדפה לתנועה מופחתת.
נקודות חיבור לעיצוב
data-statedata-highlighteddata-disableddata-selected