@jadmadi/hasan-ui-preset 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,148 @@
1
+ ## Hasan-UI License Declaration
2
+
3
+ هذا العمل هو وَقْفٌ لله تعالى تحت شروط رُخصة وَقْف الرَّقْمِيَّة العامَّة - الإصدار الأول.
4
+ المُستوى المُطَبَّق هو: وَقْفٌ خَيْرِيٌّ مُلْزِمٌ بالإِسْنَادِ (WaqfDPL-Khayri-Mulzim 1.0).
5
+
6
+ Full license text below.
7
+
8
+ ---
9
+
10
+ # **رُخصة وَقْف الرَّقْمِيَّة العامَّة - الإصدار الأول (Waqf-DPL 1.0)**
11
+
12
+ الإصدار الأول من رُخصة وَقْف الرَّقْمِيَّة العامَّة، 1447هـ
13
+
14
+ ## **ديباجة: مفهوم الوَقْف في هذه الرُخصة**
15
+
16
+ هذه الرُخصة هي أداةٌ شرعيَّة وقانونيَّة لتطبيق مفهوم الوَقْف الإسلامي على الأعمال الفكرية والرقمية. الوَقْف هو "حَبْس الأصل وتَسْبِيل المنفعة"، أي جَعْل العمل الفكري بحد ذاته وَقْفًا لله تعالى لا يُباع ولا يُوهَب، مع إتاحة منفعته لعموم الناس كصَدَقَةٍ جاريةٍ يرجو بها الواقف الأجر من الله.
17
+
18
+ باستخدامك أو توزيعك للعمل المُرخَّص بموجب هذه الرُخصة، فإنك تُقِر وتوافق على شروطها باعتبارها عَقْدًا مُلْزِمًا بينك وبين الواقف. نحن نؤمن بأنّ العِلم والمعرفة النافعة يجب أن تكون مُتاحة للجميع، وهذه الرُخصة هي بديلٌ إسلاميٌّ يُوازِن بين حق المُبتكِر في الأجر الدائم وحق الأُمَّة في الانتفاع.
19
+
20
+ ## **1\. تعريفات**
21
+
22
+ * **العمل**: أيُّ مادَّة فكرية أو رقمية (مثل نصوص بَرْمَجِيَّة، كُتُب، ملفات صوتية، مرئية، صُوَر، وغيرها) يضعها صاحبها تحت هذه الرُخصة.
23
+ * **الواقف**: هو صاحب العمل الأصلي الذي يملك الحقوق الفكرية ويختار طَوْعًا أن يُوقِف عمله تحت هذه الرُخصة.
24
+ * **المُنتفِع**: هو أيُّ شخص أو جهة تستخدم العمل أو تستفيد منه بأي شكلٍ من الأشكال.
25
+ * **الناظر**: هو الشخص الطبيعي أو الاعتباري المعيَّن من قِبل الواقف (أو من تؤول إليه نظارة الوقف شرعاً وقانوناً بعد وفاة الواقف أو عجزه) لإدارة الوقف وحمايته وإنفاذ شروطه، ويمثل الجهة المخولة باتخاذ الإجراءات الإدارية والقانونية لحماية الوقف (مثل إلغاء الرخصة عن المخالفين أو إعادة الترخيص لهم). ويُثبت التعيين بقرار مكتوب من الواقف، أو توقيع رقمي معتمد، أو بقرار من الجهة الشرعية/القضائية المختصة عند شغور النظارة. ويلتزم الناظر بالرعاية والرقابة المستمرة؛ وبما أن أتمتة المهام الوقفية برمجياً (كالفحص التلقائي والفسخ الوقائي الآلي للأكواد) جائزة ومندوبة شرعاً لتسهيل العمل وتوفير الوقت وضبط الالتزام، فإن مسؤولية الناظر تتركز في التدخل البشري لمعالجة الأعطال وإصلاح الثغرات البرمجية والأمنية فور حدوثها، ويُعتبر إهمال الأنظمة البرمجية الوقفية بعد تعطلها أو تجاهل معالجة ثغراتها تفريطاً يوجب المسؤولية والضمان شرعاً. ويُعفى الناظر من الضمان والمسؤولية في حالات القوة القاهرة والأعطال التقنية الخارجة عن إرادته (مثل تعطل خوادم شركة الاستضافة الخارجية، أو الاختراقات السيبرانية القاهرة بالرغم من اتخاذه معايير الحماية الأمنية المناسبة لقدرات الوقف). ويملك الناظر صلاحية استبدال الوقف الرقمي (الاستبدال والتعويض الفني) بنقله لبيئات تقنية أحدث أو تصفية أصوله وتوجيهها لمشروع برمجي آخر يحقق مصلحة وقفية راجحة عند تقادم التقنية الأصلية أو كثرة تكاليف تشغيلها.
26
+ * **العمل** **المُشْتَقّ**: هو أيُّ عمل جديد ينتج عن تعديل العمل الأصلي أو ترجمته أو الاقتباس منه أو البناء عليه.
27
+ * **الترجمة** **المجهولة**: هي ترجمة العمل إلى لغة أخرى دون الإسناد الصريح والواضح إلى الواقف الأصلي أو دون ذكر الرخصة الأصلية التي يخضع لها العمل (مثل نشر الترجمة باسم المترجم فقط دون ذكر الواقف أو الرخصة).
28
+ * **الاستخدام** **التجاري**: هو أي استخدام للعمل أو لمشتقاته يكون الغرض الأساسي منه تحقيق ربح مادي مباشر أو غير مباشر، أو تحقيق مكاسب مالية وتجارية خاصة، بصرف النظر عن الطبيعة القانونية للجهة المستخدمة للعمل (سواء كانت تجارية، حكومية، أو غير ربحية). ويُستثنى من ذلك المكاسب الثانوية التبعية غير المقصودة للمنتفع (مثل زيادة زوار الموقع الشخصي للمنتفع نتيجة لعرض المصنف الوقفي فيه بما يزيد من أرباح إعلانات موقعه الإجمالية بصفة تبعية غير مقصودة بالذات للمصنف)، كما يُستثنى من ذلك آليات "الدعم الذاتي" (Self-Funding) التي تهدف حصراً لتغطية تكاليف التشغيل والصيانة الفنية للوقف (مثل وضع روابط التبرعات، أو تفعيل وسيط إعلاني منضبط بضوابط الشريعة لتغطية فواتير الخوادم والتشغيل فقط دون تحقيق أرباح شخصية خاصة)، طالما كان أصل عرض المصنف مجانياً لعموم الناس ولم يتم بيعه أو استغلاله للتربح بشكل مباشر مقصود.
29
+ * **حماية بيانات المستفيدين وخصوصيتهم (أمانة البيانات)**: تُعد البيانات الشخصية والسرية للمستفيدين من الوقف الرقمي جزءاً لا يتجزأ من أمانة الوقف المعظّمة شرعاً وقانوناً؛ وبناءً عليه يلتزم المنتفع بوضع تدابير الحماية الأمنية المناسبة لخصوصية المستخدمين، ويُمنع منعاً باتاً استغلال بياناتهم تجارياً أو تسريبها أو التفريط في حمايتها، ويُعتبر خرق خصوصية بيانات المستفيدين أو بيعها بمثابة خرق جسيم لشروط الوقف يوجب بطلان رخصة الانتفاع وسقوطها فوراً.
30
+ * **الرُخصة**: هذه الوثيقة بجميع بنودها ومستوياتها.
31
+
32
+ ## **2\. مستويات الرُخصة**
33
+
34
+ يمنح الواقف الحقوق التالية للمُنتفِع شريطة اختيار أحد المستويات السبعة التالية وذكره بوضوح مع العمل:
35
+
36
+ ### **المستوى الأول: وَقْفٌ بالإِسْنَادِ (WaqfDPL-Isnad)**
37
+
38
+ *الإسناد (Attribution): هذا المستوى هو الأكثر تساهلاً، ويسمح بالانتفاع المُطْلَق مع حفظ الحق الأدبي.*
39
+ يحق لك بحرية:
40
+
41
+ * **المشاركة**: نَسْخ وتوزيع العمل بأي وسيط أو شكل.
42
+ * **التعديل**: تعديل العمل وإعادة دمجه والبناء عليه.
43
+ * **الاستخدام**: استخدام العمل لأي غرض، بما في ذلك الأغراض التجارية.
44
+
45
+ **بالشرط الوحيد التالي:**
46
+
47
+ * **الإسناد**: يجب عليك نِسْبَة العمل إلى الواقف الأصلي وذِكْر هذه الرُخصة (WaqfDPL-Isnad 1.0) ورابطها إن أمكن، دون الإيحاء بأنّ الواقف يتبنَّى عملَك المُشْتَقّ.
48
+
49
+ ### **المستوى الثاني: وَقْفٌ مُلْزِمٌ بالإِسْنَادِ (WaqfDPL-Mulzim)**
50
+
51
+ *المُلْزِم (Binding/ShareAlike): هذا المستوى يضمن استمرارية الوقف في الأعمال المشتقة (Copyleft - حقوق متروكة).*
52
+ **يحق لك بحرية:**
53
+
54
+ * **المشاركة**: نَسْخ وتوزيع العمل بأي وسيط أو شكل.
55
+ * **التعديل**: تعديل العمل وإعادة دمجه والبناء عليه.
56
+ * **الاستخدام**: استخدام العمل لأي غرض، بما في ذلك الأغراض التجارية.
57
+
58
+ **بالشروط التالية:**
59
+
60
+ * **الإسناد**: يجب عليك نِسْبَة العمل إلى الواقف الأصلي وذِكْر هذه الرُخصة (WaqfDPL-Mulzim 1.0).
61
+ * **الإلزام**: إذا قمت بتعديل العمل أو بنيت عليه، فيجب عليك توزيع عملك المُشْتَقّ تحت نفس الرُخصة (WaqfDPL-Mulzim 1.0) حَصْرًا. هذا الشرط يُلْزِم باستمرارية الوقف ويُحقِّق مبدأ "حَبْس الأصل".
62
+
63
+ ### **المستوى الثالث: وَقْفٌ خَيْرِيٌّ بالإِسْنَادِ (WaqfDPL-Khayri)**
64
+
65
+ *الخَيْرِيّ (NonCommercial): هذا المستوى يَقْصُر الانتفاع على الأغراض غير الربحية والخيرية.*
66
+ **يحق لك بحرية:**
67
+
68
+ * **المشاركة**: نَسْخ وتوزيع العمل بأي وسيط أو شكل.
69
+ * **التعديل**: تعديل العمل وإعادة دمجه والبناء عليه، على ألا تكون رخصة العمل المشتق أكثر تقييداً من رخصة الأصل لضمان عدم تضييق المنفعة الوقفية.
70
+
71
+ **بالشروط التالية:**
72
+
73
+ * **الإسناد**: يجب عليك نِسْبَة العمل إلى الواقف الأصلي وذِكْر هذه الرُخصة (WaqfDPL-Khayri 1.0).
74
+ * **الاستخدام** **الخيري**: لا يجوز لك استخدام العمل لأغراض تجارية أو ربحية بشكلٍ أساسي، ويقتصر على الأغراض الشخصية والخيرية والتعليمية والدعوية.
75
+
76
+ ###
77
+
78
+ ### **المستوى الرابع: وَقْفٌ خَيْرِيٌّ مُلْزِمٌ بالإِسْنَادِ (WaqfDPL-Khayri-Mulzim)**
79
+
80
+ *الخيري الملزم (NonCommercial-ShareAlike): هذا المستوى يدمج حظر الربح المادي مع اشتراط استمرارية النية الوقفية في جميع التعديلات والأعمال المشتقة.*
81
+ **يحق لك بحرية:**
82
+
83
+ * **المشاركة**: نَسْخ وتوزيع العمل بأي وسيط أو شكل.
84
+ * **التعديل**: تعديل العمل وإعادة دمجه والبناء عليه.
85
+
86
+ **بالشروط التالية:**
87
+
88
+ * **الإسناد**: يجب عليك نِسْبَة العمل إلى الواقف الأصلي وذِكْر هذه الرُخصة (WaqfDPL-Khayri-Mulzim 1.0).
89
+ * **الاستخدام** **الخيري**: لا يجوز لك استخدام العمل لأغراض تجارية أو ربحية مادية مباشرة.
90
+ * **الإلزام** **الخيري**: إذا قمت بتعديل العمل أو بنيت عليه، فيجب عليك توزيع عملك المُشْتَقّ تحت نفس الرُخصة (WaqfDPL-Khayri-Mulzim 1.0) حَصْرًا وبشكل خيري ومفتوح للجميع.
91
+
92
+ ### **المستوى الخامس: وَقْفٌ مَحْفُوظٌ بالإِسْنَادِ (WaqfDPL-Mahfudh)**
93
+
94
+ *المَحْفُوظ (NoDerivatives): هذا المستوى يحفظ العمل على صورته الأصلية ويمنع تعديله أو ترجمته أو اقتباسه، مع تعميم منفعته بنشره ككتلة صلبة واحدة.*
95
+ **يحق لك بحرية:**
96
+
97
+ * **المشاركة**: نَسْخ وتوزيع العمل بصورته الأصلية فقط بأي وسيط أو شكل ولأي غرض، بما في ذلك التجاري.
98
+
99
+ **بالشروط التالية:**
100
+
101
+ * **الإسناد**: يجب عليك نِسْبَة العمل إلى الواقف الأصلي وذِكْر هذه الرُخصة (WaqfDPL-Mahfudh 1.0).
102
+ * **الحِفْظ**: لا يجوز للمنتفعين تعديل العمل أو البناء عليه، ويُمنع توزيع أي عمل مُشْتَقٍّ منه، ويُمنع منعاً باتاً إجراء أي ترجمة أو اقتباس للعمل بأي شكلٍ من الأشكال. ويُستثنى من ذلك التحديثات الفنية أو أعمال الصيانة البرمجية اللازمة التي يقوم بها الواقف أو الناظر المعتمد حمايةً للوقف من الموت التقني والتقادم.
103
+
104
+ ### **المستوى السادس: وَقْفٌ خَيْرِيٌّ مَحْفُوظٌ بالإِسْنَادِ (WaqfDPL-Khayri-Mahfudh)**
105
+
106
+ *الخيري المحفوظ (NonCommercial-NoDerivatives): هذا المستوى يجمع بين حظر الربح المادي ومنع أي تعديل أو تحوير للعمل لحماية سلامته التامة وموثوقيته.*
107
+ **يحق لك بحرية:**
108
+
109
+ * **المشاركة**: نَسْخ وتوزيع العمل بصورته الأصلية فقط مجاناً في جميع القطاعات الخيرية والدعوية والتعليمية والشخصية.
110
+
111
+ **بالشروط التالية:**
112
+
113
+ * الإسناد: يجب عليك نِسْبَة العمل إلى الواقف الأصلي وذِكْر هذه الرُخصة (WaqfDPL-Khayri-Mahfudh 1.0).
114
+ * **الاستخدام** **الخيري**: يمنع منعاً باتاً البيع أو الاستخدام التجاري الربحي للعمل.
115
+ * **الحفظ** **التام**: لا يجوز للمنتفعين تعديل العمل أو دمج أجزاء منه أو قصها وتجزئتها، ويُمنع منعاً باتاً إجراء أي ترجمة أو اقتباس للعمل بأي شكلٍ من الأشكال. ويُستثنى من ذلك التحديثات الفنية أو أعمال الصيانة البرمجية اللازمة التي يقوم بها الواقف أو الناظر المعتمد حمايةً للوقف من الموت التقني والتقادم.
116
+
117
+
118
+
119
+ ### **المستوى السابع: وَقْفٌ مُقَيَّدٌ بالإِسْنَادِ (WaqfDPL-Muqayyad)**
120
+
121
+ *المُقَيَّد (Restricted): هذا المستوى يسمح للواقف بوضع شرط إضافي خاص به، وهو بمثابة وعاء مرن (Wrapper) يُطبق إلزاماً استناداً إلى أحد المستويات الستة القياسية السابقة.*
122
+ **صيغة التطبيق الإلزامية للمستوى السابع:**
123
+
124
+ * **المستوى** **الأساسي** **المطبَّق:** \[يجب ذكر أحد المستويات الستة الأولى حصراً كأساس للرخصة، مثلاً: المستوى الثالث: الوقف الخيري (WaqfDPL-Khayri 1.0)\].
125
+ * **الشرط** **الخاص** **الإضافي** **للواقف**: \[اكتب شرطك الخاص هنا بوضوح تام، مثال: "يُقصر منفعة هذا العمل على الأغراض التعليمية لجمعيات ودور رعاية الأيتام فقط"\].
126
+
127
+ **قواعد التوافق ومنع التناقض الهيكلي (Consistency & Non-Contradiction Rules)**: للحفاظ على تماسك الرخصة وصلاحيتها القانونية، يخضع الشرط الخاص لقاعدة عدم التناقض مع المستوى الأساسي المختار:
128
+
129
+ 1. **قاعدة حظر التجارة**: إذا أراد الواقف منع الاستخدام التجاري بالشرط الخاص، يجب عليه اختيار مستوى أساسي يمنع التجارة أصلاً (المستويات 3 أو 4 أو 6). ويُمنع منعاً باتاً اختيار أساس يبيح التجارة (مثل المستويات 1 أو 2\) ثم حظرها بالشرط الخاص.
130
+ 2. **قاعدة حظر التعديل**: إذا أراد الواقف منع التعديل بالشرط الخاص، يجب عليه اختيار مستوى أساسي محفوظ يمنع التعديل (المستويات 5 أو 6). ويُمنع اختيار أساس يبيح التعديل (مثل المستويات 1 أو 2\) ثم حظره بالشرط الخاص.
131
+ 3. **قاعدة الأولوية والفساد**: في حال وجود أي تعارض أو تناقض صريح بين الشرط الخاص والمستوى الأساسي المختار، يُعتبر الشرط الخاص باطلاً ومُلغى وتُطبق شروط المستوى القياسي الأساسي المختار حمايةً لاستقرار الانتفاع ومصلحة الوقف العامة.
132
+
133
+ ## **3\. أحكام عامَّة (تنطبق على جميع المستويات)**
134
+
135
+ * **الغرض الشرعي (سقوط الإذن بالاستخدام المحرم)**: هذا العمل هو وَقْفٌ لله تعالى لخدمة المجتمع ونشر النفع العام. ويُشترط شرعاً وقانوناً ألا يُسخر العمل أو مشتقاته في أي أغراض تخالف مبادئ الشريعة الإسلامية ومحرماتها الصارخة (مثل استخدام العمل أو دمجه في منصات القمار، أو المحتوى الإباحي، أو ترويج الشبهات العقدية الهدامة، أو المعاملات الربوية الصريحة). والواقف والناظر غير مسؤولين عن أي استخدام غير مشروع يقوم به المُنتفِع، ويُعتبر توجيه العمل لهذه المحرمات خروجاً صريحاً عن غاية الوقف يبطل عقد الإذن ويسقط رخصة الاستخدام فوراً وبشكل تلقائي عن المخالف.
136
+ * **الدوام** **والأبديَّة**: هذه الرُخصة أبديَّةٌ ولا تُلغَى. إذا انتهت مُدَّة حماية حقوق المِلكية الفكرية وِفْقًا للقوانين المحلية، ينتقل العمل إلى المِلْك العامّ (Public Domain)، مع بقاء نيَّة الوَقْف كصَدَقَةٍ جاريةٍ قائمةً شرعًا.
137
+ * **إلغاء الرخصة التلقائي عند المخالفة (الفسخ الوقائي التلقائي)**: تسقط هذه الرخصة وتُلغى حقوق الاستخدام والتوزيع الممنوحة بموجبها تلقائياً وفوراً بمجرد وقوع أي مخالفة أو خرق لشروطها من قِبل المُنتفِع (مثل عدم الإسناد، أو الاستخدام التجاري في المستويات الخيرية، أو التعديل والترجمة والاقتباس المحظور في المستويات المحفوظة، أو الترجمة دون إسناد في المستويات الأخرى، أو خرق خصوصية بيانات المستفيدين واستغلالها تجارياً، أو توجيه العمل في المحرمات الشرعية الصارخة). ويترتب على هذا الإلغاء التلقائي سقوط كافة الحقوق فوراً وتوقف المخالف عن أي منفعة جديدة، مع منحه مهلة تقنية لا تتجاوز 30 يوماً فقط للإزالة المادية والحذف لكافة النسخ التي قام بنشرها أو توزيعها مسبقاً، دون أن يؤثر ذلك على بقية المنتفعين الملتزمين. وللواقف أو الناظر إخطار المخالف رسمياً بالإلغاء، ولا يجوز إعادة الترخيص للمخالف إلا بطلب جديد وموافقة صريحة من الواقف أو الناظر بعد تصحيح المخالفة تماماً.
138
+ * **عدم الضمان وإخلاء المسؤولية**: يُقدِّم الواقف العمل "كما هو" دون أي ضمانات من أي نوع، صريحةً أو ضمنيَّة. لا يتحمَّل الواقف أي مسؤولية عن أي أضرار مباشرة أو غير مباشرة قد تنشأ عن استخدام العمل، إلى أقصى حدٍّ يسمح به القانون.
139
+ * **استخدامات الذكاء الاصطناعي والتعلُّم الآلي**: يخضع استخدام العمل في تدريب النماذج البرمجية أو أنظمة الذكاء الاصطناعي وتوليد البيانات لنفس شروط الوقف؛ حيث يلتزم المُنتفِع بالحفاظ على الإسناد للواقف، كما يُمنع منعاً باتاً استخدام العمل أو أجزائه أو مشتقاته في تدريب أي نماذج تُوزَّع تجارياً أو تُستخدم للتربح المادي والربح التجاري الخاص في جميع المستويات الخيرية (المستويات 3 و4 و6).
140
+ * **اقتصار الرخصة على الصيغة الرقمية**: تنطبق هذه الرخصة على المصنف في صيغته الرقمية والبرمجية والإلكترونية فقط (سواء كان كوداً، أو تطبيقاً، أو كتاباً إلكترونياً، أو وثيقة رقمية). ونشير إلى أن نسخ المصنف الرقمي أو حفظه على وسيط مادي ملموس (كأجهزة الحاسب، أو الخوادم، أو الأقراص المدمجة، أو بطاقات الذاكرة) لا يُخرجه عن كونه وقفاً رقمياً خاضعاً لأحكام هذه الرخصة؛ حيث يظل المحتوى الرقمي المخزن داخلها وقفاً رقمياً، بينما يُعتبر الوعاء المادي الحامل له (القرص أو الجهاز المادي) وقفاً منقولاً موازياً. ويخرج المصنف عن النطاق الرقمي للرخصة فقط في حال طباعته مادية على ورق فيزيائي، حيث يخضع حينها للوقف المنقول التقليدي.
141
+ * **دمج الأوقاف الرقمية (Waqf Integration)**: يجوز دمج المصنف الموقوف بموجب هذه الرخصة مع مصنف وقفي رقمي آخر خاضع لرخصة وقف (أو رخصة متوافقة)، لتتحد إدارتهما تحت ناظر أو إدارة واحدة، إذا كان ذلك يحقق مصلحة راجحة، كزيادة النفع العام وتخفيض التكاليف والجهود التقنية، بشرط ألا يؤدي هذا الدمج إلى نزاع أو تصادم مع الشروط الجوهرية للواقفين الأصليين.
142
+ * الإصدارات المستقبلية: قد تُصدِر "وَقْف" إصدارات جديدة من هذه الرُخصة. يبقى العمل مُرخَّصًا بالإصدار الذي تم نشره به، وللواقف الخيار في إعادة ترخيصه بالإصدارات الأحدث.
143
+
144
+ ## **ثانياً: كيفية تطبيق الرخصة وتخصيصها للمستويات الأخرى (قالب التخصيص)**
145
+
146
+ لتطبيق هذه الرُخصة وتخصيصها لمستوى مختلف من المستويات السبعة على عملك، قُمْ بتضمين النص التالي في مكانٍ بارز (مثل ملف README في مشروع بَرْمَجِي، أو في صفحة حقوق النشر الإلكترونية في كتاب رقمي):
147
+
148
+ "هذا العمل هو وَقْفٌ لله تعالى تحت شروط رُخصة وَقْف الرَّقْمِيَّة العامَّة - الإصدار الأول. المُستوى المُطَبَّق هو: \[اذكر هنا اسم المستوى، مثلاً: وَقْفٌ مُلْزِمٌ بالإِسْنَادِ (WaqfDPL-Mulzim 1.0)\]. \[في حال اختيار "الوقف المقيد"، أضف السطر التالي:\] الشرط الخاص للواقف هو: \[اكتب شرطك هنا\]. يمكن الاطلاع على نسخة كاملة من الرُخصة هنا: \[رابط إلى نص الرُخصة\]"
package/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # @jadmadi/hasan-ui-preset
2
+
3
+ Tailwind CSS v4 preset for the hasan-ui Arabic-first design system.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @jadmadi/hasan-ui-preset
9
+ # or
10
+ pnpm add @jadmadi/hasan-ui-preset
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ In your `globals.css`:
16
+
17
+ ```css
18
+ @import "tailwindcss";
19
+ @import "@jadmadi/hasan-ui-preset";
20
+
21
+ :root {
22
+ --radius: 0.625rem;
23
+ --background: 40 15% 97%;
24
+ --foreground: 30 7% 21%;
25
+ --primary: 28 78% 60%;
26
+ --primary-foreground: 0 0% 100%;
27
+ /* ... etc */
28
+ }
29
+ ```
30
+
31
+ ## What it provides
32
+
33
+ - Theme color tokens (background, foreground, card, popover, primary, secondary, muted, accent, destructive, border, input, ring)
34
+ - Radius scale (sm, md, lg, xl)
35
+ - Font family mappings for Arabic (`Noto Kufi Arabic`) and Latin (`Inter`)
36
+ - RTL utility classes (`rtl-flip`)
@@ -0,0 +1,44 @@
1
+ /*
2
+ @jadmadi/hasan-ui-preset
3
+ Tailwind CSS v4 preset for hasan-ui Arabic-first design system.
4
+
5
+ Usage in your globals.css:
6
+ @import "tailwindcss";
7
+ @import "@jadmadi/hasan-ui-preset";
8
+
9
+ Or copy this file into your project and import it.
10
+ */
11
+
12
+ @theme {
13
+ --color-background: hsl(var(--background));
14
+ --color-foreground: hsl(var(--foreground));
15
+ --color-card: hsl(var(--card));
16
+ --color-card-foreground: hsl(var(--card-foreground));
17
+ --color-popover: hsl(var(--popover));
18
+ --color-popover-foreground: hsl(var(--popover-foreground));
19
+ --color-primary: hsl(var(--primary));
20
+ --color-primary-foreground: hsl(var(--primary-foreground));
21
+ --color-secondary: hsl(var(--secondary));
22
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
23
+ --color-muted: hsl(var(--muted));
24
+ --color-muted-foreground: hsl(var(--muted-foreground));
25
+ --color-accent: hsl(var(--accent));
26
+ --color-accent-foreground: hsl(var(--accent-foreground));
27
+ --color-destructive: hsl(var(--destructive));
28
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
29
+ --color-border: hsl(var(--border));
30
+ --color-input: hsl(var(--input));
31
+ --color-ring: hsl(var(--ring));
32
+ --radius-sm: calc(var(--radius) - 4px);
33
+ --radius-md: calc(var(--radius) - 2px);
34
+ --radius-lg: var(--radius);
35
+ --radius-xl: calc(var(--radius) + 4px);
36
+ --font-sans: var(--font-arabic), ui-sans-serif, system-ui, sans-serif;
37
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
38
+ --font-arabic: 'Noto Kufi Arabic', ui-sans-serif, system-ui, sans-serif;
39
+ --font-latin: 'Inter', ui-sans-serif, system-ui, sans-serif;
40
+ }
41
+
42
+ @utility rtl-flip {
43
+ transform: scaleX(-1);
44
+ }
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@jadmadi/hasan-ui-preset",
3
+ "version": "0.3.0",
4
+ "license": "SEE LICENSE IN ../../LICENSE",
5
+ "type": "module",
6
+ "description": "Tailwind CSS preset for hasan-ui Arabic-first design system",
7
+ "main": "./dist/hasan-preset.css",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "peerDependencies": {
12
+ "tailwindcss": "^4.0.0"
13
+ },
14
+ "engines": {
15
+ "node": ">=18"
16
+ },
17
+ "publishConfig": {
18
+ "access": "public"
19
+ },
20
+ "keywords": [
21
+ "tailwindcss",
22
+ "preset",
23
+ "arabic",
24
+ "rtl",
25
+ "ui",
26
+ "design-system"
27
+ ],
28
+ "scripts": {
29
+ "build": "mkdir -p dist && cp src/hasan-preset.css dist/hasan-preset.css"
30
+ }
31
+ }