پرش به مطلب اصلی

Data Card

کامپوننت x-data-card برای نمایش یک کارت اطلاعاتی با قابلیت نمایش تصویر (یا آیکن)، عنوان، توضیحات، اکشن‌ها و بخش‌های سفارشی در صفحات Blade استفاده می‌شود. این کامپوننت برای نمایش اطلاعات خلاصه، پروفایل، پیش‌نمایش فایل یا هر نوع داده‌ای که نیاز به نمایش ساختارمند دارد، مناسب است و قابلیت شخصی‌سازی بالایی دارد.


ویژگی‌ها

  • نمایش عنوان، آیکن عنوان و پسوند عنوان (titleSuffix)
  • نمایش توضیحات (description) با قابلیت افزودن کلاس سفارشی
  • پشتیبانی از پیش‌نمایش تصویر، ویدیو یا آیکن (previewSrc, previewIcon, previewMode)
  • امکان نمایش یا مخفی کردن پیش‌نمایش و آیکن پیش‌نمایش
  • پشتیبانی از حالت پاپ‌آپ برای پیش‌نمایش (showPreviewPopup)
  • نمایش برچسب روی پیش‌نمایش (previewBadgeTitle)
  • پشتیبانی از حالت غیرفعال (disabled) و تغییر ظاهر بر اساس آن
  • قابلیت تعیین جهت نمایش (عمودی یا افقی) با پراپ orientation
  • امکان افزودن بخش انتهایی سفارشی (endSection)
  • شخصی‌سازی کلاس‌های بخش‌های مختلف کارت
  • تعیین نوع و واریانت ظاهری کارت (type, previewVariant)
  • پشتیبانی از روت برای کلیک روی کارت (route)
  • کاملاً قابل شخصی‌سازی و واکنش‌گرا

ورودی‌های کامپوننت

نام پراپنوع دادهمقدار پیش‌فرضتوضیحات
titlestringnullعنوان اصلی کارت
titleIconstringnullکلاس آیکن FontAwesome برای نمایش کنار عنوان
titleSuffixstringnullمتن یا عنصر پسوند عنوان (مثلاً وضعیت یا مقدار)
descriptionstringnullتوضیحات یا متن زیر عنوان
previewSrcobject | int | stringnullمنبع تصویر یا فایل برای پیش‌نمایش (آیدی فایل، مدل فایل یا آدرس مستقیم)
previewIconstringnullکلاس آیکن FontAwesome برای پیش‌نمایش (در صورت نبود تصویر)
previewBadgeTitlestringnullمتن برچسب روی پیش‌نمایش
showPreviewbooltrueنمایش یا مخفی کردن بخش پیش‌نمایش
showPreviewIconbooltrueنمایش یا مخفی کردن آیکن پیش‌نمایش
showPreviewPopupbooltrueفعال‌سازی پاپ‌آپ برای پیش‌نمایش
showVideoThumbnailboolfalseنمایش تصویر بندانگشتی ویدیو (در حالت ویدیو)
previewModestringfancyboxنوع پیش‌نمایش: fancybox یا modal
previewTooltipstringnullتولتیپ کانتینر پیش نمایش
iconTooltipstringnullتولتیپ آیکن پیش نمایش
previewNotFoundTooltipstringnullتولتیپ در حالت پیدا نشدن فایل
endSectionstringnullمحتوای سفارشی انتهای کارت (مثلاً دکمه یا وضعیت)
orientationstringverticalجهت نمایش کارت: vertical یا horizontal
titleClassstringnullکلاس CSS اضافی برای عنوان
descriptionClassstringnullکلاس CSS اضافی برای توضیحات
previewClassstringnullکلاس CSS اضافی برای بخش پیش‌نمایش
endSectionClassstringnullکلاس CSS اضافی برای بخش انتهایی کارت
classstringnullکلاس CSS اضافی برای ظرف اصلی کارت
containerClassstringnullکلاس CSS اضافی برای کانتینر کارت
typestringdefaultنوع کارت (برای استایل‌دهی سفارشی)
routestring'/'مسیر روت برای کلیک روی کارت (در صورت نیاز)
previewVariantstringlightواریانت قسمت پیش نمایش کارت (light, secondary, ...)
disabledboolfalseغیرفعال کردن کارت (تغییر ظاهر و عدم امکان کلیک)
نکات مهم
  • اگر همزمان previewIcon و previewSrc مقداردهی شوند، خطا رخ می‌دهد و فقط یکی باید مقدار داشته باشد.
  • اگر کارت غیرفعال (disabled=true) باشد، واریانت به صورت خودکار به secondary تغییر می‌کند.
  • مقدار orientation فقط باید یکی از 'vertical' یا 'horizontal' باشد.
  • اگر مقدار previewSrc عدد یا مدل فایل باشد، آدرس فایل به صورت خودکار استخراج می‌شود.
  • اگر route مقداردهی شود، کارت به صورت کلیک‌پذیر عمل می‌کند.
  • برای شخصی‌سازی بیشتر، می‌توانید از اسلات‌ها و کلاس‌های سفارشی استفاده کنید.

مثال‌ها

نمونه پایه

<div class="row g-4">
<x-data-card
containerClass="col-12"
orientation="horizontal"
title="لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت"
previewSrc="https://marketplace.canva.com/zd64ZbHmEDc.jpg"
>

<x-slot name="titleSuffix">
<x-badge appearance="light" variant="info" value="اقتصادی" size="xs"/>
</x-slot>

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ.

</x-data-card>

<x-data-card
containerClass="col-12"
class="bg-gray-secondary"
orientation="horizontal"
title="لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت"
previewSrc="https://marketplace.canva.com/EAGDMVLSqu8.jpg"
>

<x-slot name="titleSuffix">
<x-badge appearance="light" variant="info" value="اقتصادی" size="xs"/>
</x-slot>

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ.

<x-slot name="endSection">
<x-button
variant="primary"
appearance="light"
title="عملیات"
size="xs"
icon="fa-regular fa-ellipsis-vertical"
/>
</x-slot>

</x-data-card>
</div>