تخطّي إلى المحتوى الرئيسي

Popover (مربع منبثق)

مشابه لـ Tooltip، ولكنه يستوعب عنوانًا ومحتوى أغنى (بنية HTML، وقوائم، إلخ)، ويُطلَق بالنقر أو بالتمرير.

الاستخدام الأساسي​

الموضع وطريقة الإطلاق والسهم
import { LhButton, LhPopover } from '@lh-ui/react'

export default function Demo() {
return (
<LhPopover title="العنوان" content="هذا محتوى البطاقة الفقاعية." placement="top">
<LhButton>أعلى</LhButton>
</LhPopover>
)
}

Popover Props​

الخاصيةالوصفالنوعالقيم المتاحةالافتراضي
childrenعقدة المُشغِّلReactNode——
titleالعنوان (يُعرَض في منطقة __title)ReactNode——
contentالمحتوى (يُعرَض في منطقة __content)ReactNode——
placementموضع العرضLhPopoverPlacementtop / bottom / left / right (شاملًا -start / -end)'top'
triggerطريقة الإطلاقLhPopoverTrigger'hover' | 'click' | 'focus' | 'manual''click'
disabledتعطيل البطاقةboolean—false
arrowإظهار السهمboolean—true
widthعرض الطبقة العائمةstring | number——
visibleالظهور المتحكَّم بهboolean——
defaultVisibleالظهور الافتراضي غير المتحكَّم بهboolean—false
showAfterتأخير الإظهار (بالملي ثانية، افتراضي 200 للحماية من النقر غير المقصود)number—200
hideAfterتأخير الإخفاء (بالملي ثانية، افتراضي 100 للسماح بدخول المؤشر إلى الطبقة العائمة)number—100
popperClassصنف مخصَّص للطبقة العائمةstring——
themeVarsمتغيّرات سمة خاصة بالمكوّنRecord<string, string>——
bgPatternنمط خلفية خاص بالمكوّنstring——
sxخصائص تخطيط سريعة (تُطبَّق على المُشغِّل)SxProps——

Popover أحداث​

الحدثالوصفمعامل الاستدعاءالمقابل في Vue
onVisibleChangeتغيُّر الظهور (يُطلَق في الوضعين المتحكَّم وغير المتحكَّم)(visible: boolean) => voidupdate:visible

المرجع​

forwardRef<HTMLDivElement> —— العنصر الجذري للمُشغِّل. يكشف LhPopoverInstance عن show() / hide() / toggle() / isVisible.

حصر التركيز

عند trigger="click" تحتجز الطبقة المنبثقة التركيز وفق دلالات مربع الحوار (يدور Tab داخلها)، وتُعاده عند الإغلاق؛ أما الإطلاق عبر hover / focus فلا يستلب التركيز، وذلك يتوافق مع سلوك isModal في plus.

إمكانية الوصول

الطبقة العائمة تحمل role="dialog"؛ وعند وجود العنوان تُربط عبر aria-labelledby، بينما يُربط المُشغِّل بالطبقة عبر aria-describedby.

الأنماط​

import '@lh-ui/react/style/popover'