پاپاور — Popover
کپی کد یک پنل شناور کوچک است که کنار محرک خودش باز میشود و محتوای تعاملی کوتاه نشان میدهد، مثل راهنمای یکفیلدی یا جزئیات یک امتیاز. برخلاف کپی کد پرده ندارد و صفحه را مسدود نمیکند (با کپی کد بقیهٔ صفحه تعاملی میماند). جایگذاری با کپی کد انجام میشود و مقادیر کپی کد و کپی کد در RTL برعکس میشوند. در موبایل از کپی کد یا برگهٔ داک استفاده کنید؛ شناور فقط برای مکانیابی نسبت به محرک است.
وضعیت: beta · لایه: ۳ (کپی کد) · کد: کپی کد
import { Popover } from '@tokapps/tuk';نمونهٔ زنده
کد قابل کپی
پایه: جزئیات با عنوان
import { Popover, Button } from '@tokapps/tuk';export function ScoreDetails() { return ( <Popover trigger={<Button variant="secondary">جزئیات</Button>} title="دربارهٔ امتیاز" size="sm" > <p>امتیاز از میانگین نظر ارزیابها و حمایت جامعه محاسبه میشود.</p> </Popover> );}پیشرفته: کنترلشده، بالای محرک، بدون عنوان مرئی
import { useState } from 'react';import { Popover, Button } from '@tokapps/tuk';export function HelpHint() { const [open, setOpen] = useState(false); return ( <Popover open={open} onOpenChange={setOpen} placement="top" offset={12} size="lg" aria-label="راهنمای بودجه" trigger={<Button variant="ghost" onClick={() => setOpen((value) => !value)}>راهنما</Button>} > <p>بودجه تا پایان کمپین قابل تغییر است؛ کاهش آن پس از شروع حمایت ممکن نیست.</p> </Popover> );}حالت غیرمودال: صفحه قابل تعامل میماند
import { Popover, Button } from '@tokapps/tuk';export function FilterPeek() { return ( <Popover nonModal placement="end" size="sm" aria-label="خلاصهٔ فیلتر" trigger={<Button variant="ghost">خلاصه</Button>} > <p>سه فیلتر فعال است. بقیهٔ صفحه همچنان قابل کار کردن است.</p> </Popover> );}همهٔ پیکربندیها
کپی کد پراپها را از کپی کد (در کپی کد) میگیرد؛ این کامپوننت کپی کد را ارث نمیبرد. پیشفرضها از پارامترهای تابع کپی کد در کپی کد خوانده شدهاند.
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| کپی کد | کپی کد | بدون پیشفرض (الزامی) | محرک؛ کپی کد و کپی کد خودکار روی آن مینشیند. عنصر باید ref را به DOM برساند (کپی کد میرساند). |
| کپی کد | کپی کد | — | حالت کنترلشده. |
| کپی کد | کپی کد | — | حالت کنترلنشدهٔ اولیه. |
| کپی کد | کپی کد | — | با هر تغییر باز یا بسته صدا میخورد. |
| کپی کد | کپی کد | — | عنوان اختیاری (کپی کد). بدون آن کپی کد بدهید. |
| کپی کد | کپی کد | — | نام دسترسی؛ فقط وقتی کپی کد نیست روی پنل مینشیند. |
| کپی کد | کپی کد | — | محتوای پنل. فقط گره است؛ تابع کپی کد پشتیبانی نمیشود. |
| کپی کد | کپی کد (از React Aria، مثل کپی کد، کپی کد، کپی کد، کپی کد) | کپی کد | جایگذاری نسبت به محرک. کپی کد و کپی کد در RTL برعکس میشوند. |
| کپی کد | کپی کد | کپی کد | فاصله از محرک بر حسب پیکسل. |
| کپی کد | کپی کد | کپی کد | کپی کد عرض کپی کد؛ کپی کد عرض کپی کد؛ کپی کد بر اساس محتوا تا کپی کد. |
| کپی کد | کپی کد | کپی کد | کپی کد یعنی بقیهٔ صفحه تعاملی میماند. |
| کپی کد | کپی کد | — | مقصد اختصاصی صدا (opt-in). |
| کپی کد | کپی کد | کپی کد | رفتار چاپ. |
| کپی کد | کپی کد | از کپی کد | جهت صریح برای locale React Aria. |
| کپی کد | کپی کد | — | کلاس اضافه روی ریشهٔ شناور. |
در کد تعریف نشده: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد و کپی کد.
ساختار و اسلاتها
RacPopover [data-tds="popover"][data-overlay="floating"][data-size][data-print]│ style: z-index از --tds-overlay-z-floating└── RacDialog [data-part="dialog"] ├── Heading [data-part="title"] (فقط وقتی title) └── children- بنیان ثابت: ساختار کپی کد و کپی کد، ارتباط محرک با کپی کد، و z-index از توکن.
- قابل تغییر: محتوای کپی کد، کپی کد، و متغیرهای کپی کد.
- در کد تعریف نشده: دکمهٔ بستن، فوتر و پرده. بستن فقط با Escape، کلیک بیرون، یا کنترل از بیرون با کپی کد و کپی کد ممکن است.
همهٔ حالتها
| حالت | نشانه (data-attribute یا prop) | نمایش |
|---|---|---|
| بسته (closed) | شناور در DOM نیست | — |
| باز (open) | کپی کد روی محرک (از React Aria) | شناور کنار محرک با ماده شیشهای |
| در حال ورود | کپی کد (از React Aria) | کپی کد با کپی کد |
| در حال خروج | کپی کد | کپی کد |
| غیرمودال | کپی کد | بدون پرده؛ بقیهٔ صفحه تعاملی |
| اندازه کپی کد | کپی کد | عرض کپی کد |
| اندازه کپی کد | کپی کد | عرض بر اساس محتوا، حداکثر کپی کد |
| اندازه کپی کد | کپی کد | عرض کپی کد |
| focus-visible | کپی کد روی کنترلهای داخل پنل | حلقهٔ کپی کد |
| چاپ | کپی کد (پیشفرض) | پنهان در چاپ |
| hover، pressed، disabled، خطا، بارگذاری | در کد تعریف نشده روی پنل | — (کنترلهای داخل محتوا حالت خودشان را دارند) |
رفتار پوشش (از قرارداد کپی کد در کپی کد)
- فوکوس: شناور فوکوس را مدیریت میکند؛ با بسته شدن فوکوس به محرک برمیگردد.
- Escape: فقط بالاترین شناور را میبندد.
- کلیک بیرون: شناور را میبندد و پردهای رسم نمیشود.
- قفل اسکرول: ندارد. موقعیت با اسکرول محرک بهروز میشود یا شناور بسته میشود.
- تودرتو: زیرمنو یا شناور داخل مودال پشتیبانی میشود؛ z شناور بالاتر از مودال است.
تغییرات مجاز برای توسعهدهنده
- جایگذاری (کپی کد): مقادیر React Aria مانند کپی کد، کپی کد، کپی کد، کپی کد؛ کپی کد و کپی کد منطقیاند.
- فاصله (کپی کد): عدد پیکسل.
- اندازه (کپی کد): کپی کد، کپی کد (پیشفرض)، کپی کد.
- حالت (کپی کد): کپی کد یا کپی کد.
- کنترل حالت: کپی کد و کپی کد، یا کپی کد.
- محتوا: کپی کد، کپی کد و کپی کد (گره).
- نقاط توسعه: کپی کد، کپی کد، کپی کد، کپی کد، و متغیرهای کپی کد و کپی کد در سطح پوشش.
تغییرات ممنوع (بنیان ثابت)
- افزودن پرده یا قفل اسکرول به شناور. این کار آن را به کپی کد تبدیل میکند.
- حذف کپی کد یا تغییر نقش پنل از کپی کد.
- حذف نام دسترسی: بدون کپی کد باید کپی کد باشد.
- استفاده از شناور برای فهرست کنش (از کپی کد استفاده کنید) یا متن کوتاه غیرتعاملی (از کپی کد).
- قرار دادن z-index خام بهجای کپی کد. React Aria بهطور پیشفرض z-index بزرگ درونخطی میدهد که استایل توکنی آن را جایگزین میکند.
- استایل خام برای پسزمینه شیشهای یا گرادیان. فقط توکنهای کپی کد از طریق کپی کد.
RTL، کیبورد و صفحهخوان
- RTL: کپی کد در RTL سمت راست و کپی کد سمت چپ مینشیند. ویژگیهای منطقی برای فاصلهها استفاده شدهاند.
- کلیدها: کپی کد یا کپی کد روی محرک، پنل را باز و بسته میکند؛ کپی کد درون شناور حرکت میکند؛ کپی کد میبندد و فوکوس به محرک برمیگردد.
- صفحهخوان: محرک کپی کد و کپی کد دارد؛ پنل کپی کد است و نام آن از کپی کد یا کپی کد میآید.
- هدف لمسی: کنترلهای داخل محتوا باید حداقل ۴۴px باشند.
- کنتراست: روشن، تیره و کنتراست بالا با کپی کد بررسی میشوند.
صدا، حرکت، چاپ و کاهش حرکت
- صدا: پیشفرض بیصداست (opt-in). باز و بسته شدن کپی کد است؛ هیچ صدایی روی hover پخش نمیشود. معادل بصری: ظاهر شدن شناور.
- حرکت: نام معنایی کپی کد (opacity و scale) در کپی کد.
- کاهش حرکت: با کپی کد یا کپی کد انیمیشن حذف و شناور فوری ظاهر میشود.
- چاپ: پیشفرض کپی کد و شناور در چاپ حذف میشود.
توکنها
فایل توکنهای مصرفی: کپی کد. استایلها در کپی کد و ماده شیشهای مشترک در کپی کد. مقدار مرجع در کپی کد.
- معنایی: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- کامپوننتی: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
- تایپوگرافی، کنترل و مقیاس: کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد، کپی کد.
قرارداد ARCH
- این کامپوننت آیکون ندارد. اگر آیکون لازم شد فقط با کپی کد و نام معنایی بیاید.
- تم فقط حرکت (کپی کد) و توکنهای شیشهای را تغییر میدهد؛ جایگذاری و ساختار ثابتاند.
- gesture ندارد. معادل کیبوردی بستن Escape است.
نکات
- برای توضیح کوتاه یکخطی بدون تعامل: Tooltip.
- برای فهرست کنشها: ContextMenu.
- برای نمای موبایل: ResponsiveDialog.
- برای محتوای مرکزی با پرده: Dialog.