ناوبری فرعی (SecondaryNav)
پرایمیتیوهای محتوای پنل جانبی (Part 2) — آیتم، عنوان گروه، جداکننده، گروه بازشونده و ورودی جستجو
معرفی
خانوادهٔ SecondaryNav پرایمیتیوهای محتوای پنل جانبی (Part 2) هستند — همتای پرتویی
InnerSideMenu استودیوی Supabase. برای پرکردن AppSecondary ساخته شدهاند: لینکهای متنی،
عنوان گروه، گروههای بازشونده و ورودی جستجو.
چه زمانی استفاده کنیم:
- محتوای فرعیِ ماندگار یک بخش (فهرست گزارشها، فیلترها، سابناوبری) داخل
AppSecondary، در قابی که هنوز بهProductFrameمهاجرت نکرده است (پیش از 4.0). - میخواهید ظاهر و رفتار دقیقاً مثل پنل دوم استودیو باشد.
چه زمانی استفاده نکنیم:
- ناوبری اصلی سطحبالا → منوی
ProductFrame(nav)، یک بار در layout ریشه. - سابناوبری یک بخش در
ProductFrame→ سطح زیرمجموعهٔ همان منو (childrenمقصد درnav)؛ جستوجو و فیلترهای یک صفحهٔ فهرست →searchوfiltersقالبListPage(PageToolbarفقط درون یکCustomPage). - درخت ناوبری عمومی صفحه → از
NavTreeاستفاده کنید. - فهرست/منوی شناور → از
DropdownMenuیاCommandاستفاده کنید.
استفاده
import {
AppSecondary,
AppSecondaryHeader,
AppSecondaryTitle,
AppSecondaryContent,
SecondaryNavItem,
SecondaryNavTitle,
SecondaryNavSeparator,
SecondaryNavCollapsible,
SecondaryNavCollapsibleTrigger,
SecondaryNavCollapsibleContent,
SecondaryNavSearchInput,
} from '@partodata/ui'
;<AppSecondary resizable>
<AppSecondaryHeader>
<AppSecondaryTitle>گزارشها</AppSecondaryTitle>
</AppSecondaryHeader>
<AppSecondaryContent className="gap-1 p-2">
<SecondaryNavSearchInput placeholder="جستجو…" aria-label="جستجو" />
<SecondaryNavTitle>پیشنهادی</SecondaryNavTitle>
<SecondaryNavItem isActive>نمای کلی هفتگی</SecondaryNavItem>
<SecondaryNavItem>روند تعامل</SecondaryNavItem>
</AppSecondaryContent>
</AppSecondary>حالتها و انواع
آیتم فعال و لینک
SecondaryNavItem با isActive حالت فعال میگیرد (bg-selection) و با asChild میتواند به یک
لینک تبدیل شود:
<SecondaryNavItem asChild isActive>
<Link href="/reports/weekly">نمای کلی هفتگی</Link>
</SecondaryNavItem>آیکون، برچسب و شمارنده
محتوای آیتم از ابتدای سطر میآید: آیکون، و برچسب درست کنارش (justify-start gap-3) — در راستبهچپ از راست.
اندازهٔ آیکون را خود آیتم یکدست میکند (size-4، بدون جمعشدن). عنصر انتهایی اختیاری (شمارنده یا Badge) با
ms-auto به انتهای سطر میرود. با asChild نشانهگذاری فرزند با شماست؛ برچسب را در
<span className="min-w-0 truncate"> بگذارید تا عنوان بلند کوتاه شود.
<SecondaryNavItem asChild isActive>
<Link href="/reports/weekly">
<FileText />
<span className="min-w-0 truncate">نمای کلی هفتگی</span>
<Badge size="sm" className="ms-auto">12</Badge>
</Link>
</SecondaryNavItem>پیکان گروه بازشونده بسته که باشد به سمت خواندن (در راستبهچپ به چپ) اشاره میکند و باز که باشد به پایین.
گروه بازشونده
<SecondaryNavCollapsible defaultOpen>
<SecondaryNavCollapsibleTrigger title="ذخیرهشده" />
<SecondaryNavCollapsibleContent>
<SecondaryNavItem>کمپین تخفیف فصلی</SecondaryNavItem>
<SecondaryNavItem>بازخورد بستهبندی</SecondaryNavItem>
</SecondaryNavCollapsibleContent>
</SecondaryNavCollapsible>جستجو و جداکننده
<SecondaryNavSearchInput placeholder="جستجو…" aria-label="جستجو" isLoading={loading} />
<SecondaryNavSeparator />
<SecondaryNavTitle>عنوان گروه</SecondaryNavTitle>راهنمای استفاده
بکنید
- عنوان گروه (
SecondaryNavTitle) را کوتاه و meta نگه دارید. - برای آیتمهای ناوبری واقعی از
asChildباLinkاستفاده کنید تا دسترسپذیری و پیمایش درست بماند. - جستجو را بالای فهرست و با
aria-labelبگذارید.
نکنید
- از حروف بزرگ/tracking برای عنوانها استفاده نکنید — در فارسی بد خوانده میشود (این خانواده عمداً بدون uppercase است).
- این پرایمیتیوها را برای ناوبری اصلی به کار نبرید؛ منوی اصلی
navدرProductFrameاست و پیوندهای هر بخش سطح زیرمجموعهٔ آن (children). SecondaryNavItemرا بدون متن قابلخواندن نگذارید.
جدول ویژگیها
SecondaryNavItem
SecondaryNavCollapsibleTrigger
SecondaryNavSearchInput
SecondaryNavTitle و SecondaryNavSeparator بدون prop خاصاند (فقط className و فرزندان).
دسترسیپذیری
SecondaryNavItemفعال:aria-current="page".SecondaryNavSeparator:role="separator".- گروه بازشونده روی
Collapsibleرادیکس سوار است (کیبورد +aria-expanded). SecondaryNavSearchInputرا همیشه باaria-labelبدهید.
کامپوننتهای مرتبط
- ظرف این پرایمیتیوها ←
NavRail(AppSecondary). درProductFrameپیوندهای هر بخش سطح زیرمجموعهٔ منو (children) هستند. - برای ناوبری اصلی سطحبالا ←
ProductFrame(nav، باchildrenبرای پیوندهای هر بخش). - برای درخت ناوبری عمومی ←
NavTree.
نوار ناوبری (NavRail)
قطعههای نوار ناوبری (نوار آیکونی که با اشارهگر باز میشود) که ProductFrame روی آن ساخته شده است — برای قاب برنامه خودِ ProductFrame را به کار ببرید
درخت ناوبری (NavTree)
لایهی ناوبری تودرتو با گروههای قابلجمعشدن، کاسکید حالت فعال، و indent خودکار — برای درختهای عمیق درون یک ابزار؛ منوی اصلی برنامه ProductFrame است