انتقل إلى المحتوى
TopClass UI

نافذة منبثقة

لوحة مثبّتة بجانب مشغّلها لرابط أو حقل أو إجراء. تنقلب وتتقلّص إلى المساحة المتاحة بدلًا من أن تفيض.

client - الحجم لم يُقَس بعد

نافذة منبثقة

client - الحجم لم يُقَس بعد

لوحة مثبّتة بجانب مشغّلها لرابط أو حقل أو إجراء. تنقلب وتتقلّص إلى المساحة المتاحة بدلًا من أن تفيض.

تثبيت

جرّبه

placement
delay
closeDelay

الشيفرة

popover.tsx
import { Button } from 'topclassui/button'
import { PopoverDescription, PopoverPopup, PopoverRoot, PopoverTitle, PopoverTrigger } from 'topclassui/popover'

<PopoverRoot>
  <PopoverTrigger openOnHover render={<Button variant="outline">Share</Button>} />
  <PopoverPopup>
    <PopoverTitle>Share this page</PopoverTitle>
    <PopoverDescription>Anyone with the link can read it. Only your team can edit.</PopoverDescription>
    <Button size="sm" className="self-start">Copy link</Button>
  </PopoverPopup>
</PopoverRoot>

التلميح نص فقط: أبناؤه مكتوبون كنص. كل ما فيه رابط أو عنصر تحكم هو نافذة منبثقة.

كل الحالات، بدون تمرير الفأرة

5 حالات

أو استورده من الحزمة

topclassui/popover
import { PopoverRoot, PopoverClose, PopoverDescription, PopoverPopup, PopoverTitle, PopoverTrigger } from 'topclassui/popover'

ثبّت مرة واحدة:npm i topclassui@beta zod

أمثلة

  • ستة أجزاء بأسماء مسطّحة ولا يوجد Popover وحده: PopoverRoot وPopoverTrigger وPopoverPopup وPopoverTitle وPopoverDescription وPopoverClose.
  • placement على PopoverPopup: اثنتا عشرة قيمة، وbottom افتراضيًا. تفتح على الجهة الأخرى حين لا تتسع جهتها، وتبقى على بعد 8 بكسل داخل الشاشة.
  • عرض النافذة 280 بكسل ولا يتجاوز ارتفاعها المساحة المتاحة، وبعد ذلك تتمرّر داخلها. لعرض آخر، مرّر صنفًا.
  • PopoverClose بلا محتوى هو زر الإغلاق، وأنت تحدّد مكانه.
  • openOnHover على المشغّل يتيح للمؤشر فتحها أيضًا، بعد delay (300 مللي ثانية) وحتى closeDelay (0)، وكلاهما محصور بين 0 و10000.
  • ضع form داخل PopoverPopup، لا render={<form />} عليها، وأعطه action أو onSubmit.
basic
with-close
hover
with-form
modal
placements
long-content
بالعربية، من اليمين إلى اليسار

الخصائص

PopoverRoot

خصائص PopoverRoot
الخاصيةالنوعالافتراضيالحدودالوصف
childrenReactNode--The trigger and the popup. With no trigger, hold open in a client file.

PopoverClose

لا خصائص خاصة به: يأخذ سمات العنصر الذي يعرضه.

PopoverDescription

لا خصائص خاصة به: يأخذ سمات العنصر الذي يعرضه.

PopoverPopup

خصائص PopoverPopup
الخاصيةالنوعالافتراضيالحدودالوصف
placementtop | top-start | top-end | bottom | bottom-start | bottom-end | start | start-top | start-bottom | end | end-top | end-bottom"bottom"-PopoverPopup: the side and alignment it opens at; start and end mirror in Arabic.

PopoverTitle

لا خصائص خاصة به: يأخذ سمات العنصر الذي يعرضه.

PopoverTrigger

خصائص PopoverTrigger
الخاصيةالنوعالافتراضيالحدودالوصف
closeDelaynumber, min 0, max 100000min 0, max 10000PopoverTrigger, with openOnHover: milliseconds it stays open after the pointer leaves, clamped.
delaynumber, min 0, max 10000300min 0, max 10000PopoverTrigger, with openOnHover: milliseconds of hover before it opens, clamped.

لوحة المفاتيح وإمكانية الوصول

لوحة مفاتيح Popover
المفاتيحما يفعله
EnterSpaceعلى المشغّل، يفتح النافذة. ينتقل التركيز إلى أول عنصر تحكم، أو إلى النافذة.
Tabبعد آخر عنصر تحكم، يغلق النافذة ويتابع في الصفحة.
Shift+Tabمن أول عنصر تحكم، يعود إلى المشغّل.
Escapeيغلق أولًا تلميحًا مفتوحًا داخلها، ثم النافذة. يعود التركيز إلى المشغّل.
  • PopoverTitle يسمّي النافذة وPopoverDescription يصفها. إن لم يكن لها عنوان، مرّر aria-label إلى PopoverPopup.
  • قارئ الشاشة على شاشة لمس لا يملك مفتاح Escape: أعطِ النافذة التي تحمل أكثر من سطر PopoverClose.
  • ما دامت النافذة تتمرّر فهي محطة Tab، فتصل لوحة المفاتيح إلى نص طويل لا عنصر تحكم فيه.

من اليمين إلى اليسار

start تفتح على اليمين وend على اليسار، وbottom-start تحاذي الحواف اليمنى. تأخذ النافذة اتجاهها من أقرب TopClassProvider.

الخادم والمتصفح

مكوّن متصفح: يُعرض على الخادم ثم يُرطَّب في المتصفح.

الملفات: index.tsx, client.tsx.

على الشارة: client - الحجم لم يُقَس بعد.