مسار التنقل Breadcrumb
يعرض موضع الصفحة الحالية داخل الهيكل الهرمي، ويتيح التنقل للأعلى مستوى تلو الآخر.
الاستخدام الأساسي
import { LhBreadcrumb, LhBreadcrumbItem } from '@lh-ui/react'
export default function Demo() {
return (
<LhBreadcrumb>
<LhBreadcrumbItem to="/">الرئيسية</LhBreadcrumbItem>
<LhBreadcrumbItem to="/components">المكوّنات</LhBreadcrumbItem>
<LhBreadcrumbItem>مسار التنقل</LhBreadcrumbItem>
</LhBreadcrumb>
)
}
خصائص Breadcrumb
| خاصية | الوصف | النوع | القيم المتاحة | الافتراضي |
|---|---|---|---|---|
| separator | حرف الفاصل | string | — | '/' |
| maxItems | الحد الأقصى للعناصر المرئية، وما يزيد يُطوى إلى (أول عنصر + علامة حذف + آخر عنصر) | number | — | 0 (بدون طي) |
| sx | خصائص التخطيط السريع | SxProps | — | — |
خصائص BreadcrumbItem
| خاصية | الوصف | النوع | الافتراضي |
|---|---|---|---|
| to | عنوان الوجهة، يُعرض كرابط عند وجوده وعدم كونه العنصر الأخير | string | — |
| replace | يُحتفظ به لتوافق plus API، وتنقل <a> الأصلي في React لا يتأثر بهذا المفتاح | boolean | false |
| children | النص | ReactNode | — |
حالة الطي حال داخلية: ينقر المستخدم على زر علامة الحذف لتوسيع كل العناصر دون أي تدخل خارجي. تمرير maxItems بقيمة 0 (أو حذفه) يعني عدم الطي.
يجب أن يكون children عناصر LhBreadcrumbItem مباشرة (يمكن عرضها باستخدام .map)، ولا يمكن تغليفها بمكوّن مخصص — فالمكوّن الأب يحقن الفهارس بتصفية أنواع العناصر الفرعية عبر Children.toArray، والتغليف يفشل حقن الفهرس. يتسق هذا مع قيد النز ول collectPaneVnodes في lh-ui-plus.
لا يوجد موجّه عام في منظومة React، لذا تُعرض الروابط كعناصر <a> أصلية تتنقل مباشرة. عند التوصيل مع React Router، اعترض onClick واستدعِ navigate، أو اعرض <Link> خاصًا بك بدلًا من استخدام to.
إمكانية الوصول
العنصر الجذر هو <nav aria-label> والقائمة <ol>؛ ويُخرج العنصر الأخير aria-current="page"، ويزر علامة الحذف يحمل aria-label (من حزمة اللغة breadcrumb.more).
ref
forwardRef<HTMLElement> — العنصر الجذر <nav>. ويُمرر LhBreadcrumbItem ما يقابل HTMLLIElement.
الأنماط
import '@lh-ui/react/theme.css'
import '@lh-ui/react/style/breadcrumb'