التبني
أدخل @dev-dga إلى تطبيق قائم.
أضف الأنماط، وغلف الجذر بـ DgaProvider، واستبدل الشاشات واحدة تلو الأخرى. تصلح هذه الخطوات لتطبيق Laravel مع Inertia، أو تطبيق Next.js، أو أي مشروع React 19.
أعدّ ملف الأنماط
استورد @dev-dga/css مرة واحدة. ومع Tailwind v4 عرّف طبقات CSS أولاً لتقع المكتبة بين أساس Tailwind وأدواته، ثم أضف جسر الرموز لتحصل على bg-primary وtext-ink وبقية مقياس DGA.
احتفظ بأسطر @source في مشروعك. تأتي المكتبة بتصفير خاص بها، لذا يصبح preflight في Tailwind اختيارياً. التنسيق مع Tailwind
غلف التطبيق بـ DgaProvider
يضبط DgaProvider الاتجاه واللغة وخط DGA والوضع الفاتح أو الداكن عبر data-theme. وتعرض الطبقات المنبثقة مثل Modal وSelect وDatePicker داخله، مما يجعلها ترث السمة والاتجاه.
اختر المكونات
لكل حاجة مكونات تقابلها في @dev-dga. التسمية والنص المساعد والأخطاء خصائص في الحقل نفسه، لذا لا تحتاج إلى ربط المعرفات يدوياً.
| تحتاج إلى | مكونات @dev-dga | ملاحظات |
|---|---|---|
| الإجراءات والروابط | Button, Link | asChild يجعل رابط الموجه هو الزر نفسه. |
| حقول النص | TextInput, Textarea, NumberInput, SearchBox | label وhelperText وerror وerrorMessage خصائص. |
| الاختيارات | Select, Dropdown, Checkbox, RadioGroup, Switch | Dropdown يضيف البحث والاختيار المتعدد. |
| التواريخ | DatePicker, DateRangePicker | ميلادي وهجري، وname يرسل YYYY-MM-DD. |
| النوافذ واللوحات | Modal, Drawer, SlideoutMenu | SlideoutMenu هي لوحة التنقل في الجوال. |
| التنقل | Header, Sidebar, DropdownMenu, Breadcrumb, Tabs | SidebarMenuButton يقبل asChild لروابط الموجه. |
| التنبيهات | NotificationToast + toast(), InlineAlert, Tag, StatusTag | ركب NotificationToast مرة واحدة، واستدع toast() في أي مكان. |
| البيانات | Table, Pagination, Filtration, EmptyState, Skeleton | راجع وصفة الجدول المعتمد على الخادم في Storybook. |
| مبدلات العرض | ContentSwitcher, Toggle | تبدّل العرض ولا ترسل قيمة. داخل النماذج استخدم RadioGroup أو Checkbox. |
روابط الموجه
تقبل المكونات التي تعرض رابطاً أو زر قائمة الخاصية asChild، مما يجعل <Link> في Inertia أو Next.js هو العنصر نفسه: عنصر واحد قابل للتركيز، وتنقل من جهة العميل، وأنماط الحالة النشطة من isActive.
النماذج
ترسل كل عناصر النماذج عبر FormData متى أعطيتها اسماً، مما يجعل النماذج العادية و<Form> في Inertia وإجراءات React Router وإجراءات الخادم تعمل دون ربط إضافي.
القادم من مجموعة واجهات أخرى مبنية على Tailwind
استبدل المجموعة دفعة واحدة بدل تشغيل الاثنتين. مجموعات مثل shadcn/ui، التي تأتي مع قوالب Laravel وNext.js الجاهزة، تعرّف أسماء سمات Tailwind مثل --color-primary و--color-border في كتلة @theme. ويعرّف جسر رموز @dev-dga الأسماء نفسها، لذا يغير الملف الذي يحمّل أخيراً ألوان الآخر.
- احذف كتلة @theme الخاصة بالمجموعة ومتغيرات الألوان في :root و.dark.
- احذف إضافة الحركة الخاصة بالمجموعة وصيغة الوضع الداكن بالفئة، لأن خاصية mode في DgaProvider تتحكم في الوضع الداكن.
- استبدل مكونات المجموعة شاشةً شاشة، ثم احذف مجلد مكوناتها.
بعد الاستبدال، ابحث عن ترقيم الصفحات، بطاقات المؤشرات، الحالات الفارغة، ومؤشرات الخطوات التي بناها تطبيقك قبل الانتقال. يستبدل التحويل العناصر الأساسية للمجموعة وحدها، وتبقى الأجزاء التي ركبها تطبيقك منها كما هي. لكل منها بديل:
قبل الإطلاق
- يعرّف ملف الأنماط الطبقات قبل استيراد @dev-dga/css.
- يغلف DgaProvider الجذر، ويتبدل الوضع الداكن عبر خاصية mode.
- يرسل كل نموذج البيانات التي ينتظرها الخادم (راجع دليل النماذج).
- روجعت كل صفحة في الاتجاهين LTR وRTL، وفي الوضعين الفاتح والداكن.