Table
טבלה מובנית עם מתאם אינטראקטיבי אופציונלי.
- דפדפנים
- Chrome 123+Firefox 121+Safari 17.5+
- שכבה
- 0
- גודל חבילה דחוסה
- 617 B
- מגבלת פריסה כפויה
- 0 ms
- מגבלת Axe
- 0
- תואם SSR
- כן
- חוזה מפורסם
- סביבת בדיקות
מגרש ניסויים
API
Table.Root (native)
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
layout | "auto" | "fixed" | "auto" | פריסת טבלה מובנית. בחירה, מיון והרחבה משתמשים בנקודת הכניסה המפורשת TableClient. |
size | "sm" | "md" | "lg" | — | ריווח התאים מתוך גיליון הסגנונות שנבחר. |
variant | "solid" | "outline" | "ghost" | — | גרסת המשטח מתוך גיליון הסגנונות שנבחר. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.Footer
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
sticky | boolean | — | מצמיד את התחתית לסוף ציר הבלוק של מכל הגלילה. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.RowHeader / Table.Cell / Table.ColumnHeader
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
align | "start" | "center" | "end" | "start" | יישור הטקסט הלוגי לתא זה. |
sticky | "start" | "end" | — | מצמיד תא לקצה הלוגי בציר השורה. בתאים נצמדים סמוכים יש להגדיר --uiify-table-sticky-offset בכל תא. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
TableClient.ExpandTrigger / TableClient.ExpandedRow
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
rowId* | string | — | מפתח שורה משותף המחבר את כפתור ההרחבה ל-<tr> המובנה שלו. יש להציב <td colSpan={columnCount}> בתוך השורה המורחבת. |
TableClient.Root — @gunkin/uiify/components/table/client
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
aria-label | string | — | שם נגיש לטבלה כשאין כיתוב או כותרת גלויים המציינים את שמה. |
aria-labelledby | string | — | מזהה האלמנט המשמש כתווית הטבלה. |
selectionMode | "none" | "single" | "multiple" | "none" | קובע אם ניתן לבחור שורות וכמה בו-זמנית; "none" מציג טבלה סטטית פשוטה ללא תפקיד grid. |
selectionBehavior | "toggle" | "replace" | — | קובע אם לחיצה על שורה מוסיפה אותה לבחירה או מחליפה את הבחירה הנוכחית. |
defaultSelectedKeys | Iterable<string> | — | מזהי השורות שנבחרות בתחילה, כשהבחירה מנוהלת בתוך הרכיב ללא בקרה חיצונית. |
selectedKeys | Iterable<string> | — | מזהי השורות שנבחרות כרגע, כשהבחירה מבוקרת על ידי הקוד הקורא. |
onSelectionChange | (selectedKeys: Set<string>) => void | — | נקראת עם קבוצת מזהי השורות הנבחרות החדשה בכל שינוי בבחירה. |
defaultSortDescriptor | SortDescriptor | null | — | העמודה וכיוון המיון הראשוניים, כשמצב המיון מנוהל בתוך הרכיב ללא בקרה חיצונית. |
sortDescriptor | SortDescriptor | null | — | העמודה וכיוון המיון הנוכחיים, ההופכים את המיון למבוקר. |
onSortChange | (descriptor: SortDescriptor | null) => void | — | נקראת עם מתאר המיון החדש, או null, בהפעלת כותרת עמודה הניתנת למיון. |
expandedKeys / defaultExpandedKeys | Iterable<string> | — | מפתחות השורות המורחבות המבוקרים או הראשוניים. |
onExpandedChange | (keys: Set<string>) => void | — | מדווחת על בקשות הרחבה. שורות מבוקרות ממתינות למפתחות המעודכנים. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.Header
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
sticky | boolean | false | מצמיד מקטע זה למכל הגלילה; Header משתמש בתחילת ציר הבלוק ו-Footer בסופו. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.Body
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
children | ReactNode | — | שורות גוף הטבלה. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.Row
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
id* | string | — | מזהה שורה יציב המשמש כמפתח הבחירה וכמזהה האלמנט. |
disabled | boolean | false | מונע בחירה בשורה או העברת מיקוד אליה באמצעות המקלדת. |
selected | boolean | — | מסמן את השורה כנבחרת ב-HTML שנוצר בשרת, לפני שמאגר הבחירה מקבל שליטה. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.ColumnHeader
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
id* | string | — | מזהה העמודה שמתארי המיון מפנים אליו. |
allowsSorting | boolean | false | גורם לכותרת להחליף את מיון העמודה שלה ולחשוף aria-sort. |
sortDirection | "ascending" | "descending" | null | — | כיוון המיון המוצג לעמודה זו, המשמש ב-HTML הראשוני מהשרת כאשר מיון מותר. |
onClick | React.MouseEventHandler<HTMLTableCellElement> | — | מופעלת לפני המיון; preventDefault() מונעת את שינוי המיון. |
slotProps | TableClientColumnHeaderSlotProps | — | מאפיינים מובנים לכפתור המיון שנוצר ב-TableClient.ColumnHeader. |
children | ReactNode | — | תווית הכותרת. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.Cell
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
children | ReactNode | — | תוכן התא. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.Caption
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
children | ReactNode | — | טקסט הכיתוב המתאר את הטבלה. |
render | ReactElement | ((props, state) => ReactElement) | — | החלפת האלמנט המוצג תוך שימור ההתנהגות וקישורי הנגישות. |
Table.RowSelect
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
rowId* | string | — | מזהה השורה שתיבת סימון זו בוחרת ומבטלת את בחירתה. |
slotProps | TableSelectionSlotProps | — | מאפיינים מובנים לקלט תיבת הסימון ולתווית העוטפת שנוצרים. |
Table.SelectAll
| מאפיין | טיפוס | ברירת מחדל | תיאור |
|---|---|---|---|
slotProps | TableSelectionSlotProps | — | מאפיינים מובנים לקלט תיבת הסימון ולתווית העוטפת שנוצרים. |
מקלדת
| מקש | פעולה |
|---|---|
| Tab | מיקוד פקדי המיון, הבחירה וההרחבה ב-TableClient |
| Enter / Space | הפעלת כפתור מיון או הרחבה ממוקד; החלפת מצב תיבת סימון |
| Arrow keys | מעבר בין שורות גוף שניתנות לבחירה ב-TableClient |
נגישות
Table מרנדר כברירת מחדל אלמנטים מובנים של <table>, <caption>, <thead>, <tbody> ו-<tfoot> ללא JavaScript בצד הלקוח; השתמשו ב-ColumnHeader וב-RowHeader לסמנטיקת כותרות. נקודת הכניסה /client מוסיפה מיון, בחירה, ניווט מקלדת בין שורות והרחבה מבוקרת, הנחשפים באמצעות aria-sort, aria-expanded ו-aria-controls. ExpandedRow הוא <tr> מובנה; הניחו בתוכו Cell עם colSpan. הסינון וסדר הפריטים נשארים באחריות המשתמש בספרייה.
נקודות חיבור לעיצוב
data-uiify-tabledata-partdata-layoutdata-sizedata-variantdata-stickydata-selecteddata-disabled--uiify-table-sticky-offset