@qumra/fanar 0.0.0 → 0.0.2
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/README.md +62 -16
- package/dist/ai.d.ts +342 -0
- package/dist/ai.js +2 -0
- package/dist/chunk-3CTGRTYV.js +1 -0
- package/dist/chunk-APE2XWSN.js +2 -0
- package/dist/chunk-DDRJTIIP.js +2 -0
- package/dist/chunk-JJCKT5OO.js +2 -0
- package/dist/chunk-L3NDN5GB.js +2 -0
- package/dist/chunk-QJPINFN2.js +2 -0
- package/dist/editor.css +204 -0
- package/dist/editor.d.ts +24 -0
- package/dist/editor.js +2 -0
- package/dist/index.d.ts +88 -918
- package/dist/index.js +1 -8085
- package/dist/lib-DOXggTK6.d.ts +42 -0
- package/dist/lib.js +1 -92
- package/dist/notifications.d.ts +846 -0
- package/dist/notifications.js +2 -0
- package/dist/orb.d.ts +21 -0
- package/dist/orb.js +2 -0
- package/dist/tokens.css +36 -333
- package/dist/tokens.js +1 -20
- package/dist/tokens.json +64 -155
- package/package.json +64 -6
- package/dist/chunk-SFA2EQFK.js +0 -159
package/dist/tokens.css
CHANGED
|
@@ -1,87 +1,42 @@
|
|
|
1
|
-
/* ============================================================================
|
|
2
|
-
توكنز قمرة — تنزل في أي app بـ@import "@qumra/manara/tokens.css"
|
|
3
|
-
منقولة من v2 — منقولة حرفياً من Qumra Web App v2.dc.html (سطر 16-17).
|
|
4
|
-
دي مش إعادة تفسير: نفس الأسماء ونفس القيم، عشان أي مقارنة مع الملف
|
|
5
|
-
الأصلي تطلع مطابقة مش "قريبة".
|
|
6
|
-
========================================================================== */
|
|
7
|
-
|
|
8
1
|
@custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));
|
|
9
2
|
|
|
10
3
|
@theme static {
|
|
11
4
|
--font-sans: "Alexandria", system-ui, sans-serif;
|
|
12
5
|
|
|
13
|
-
/* الأسطح والنصوص — بتتقلب في الوضع الداكن (تحت) */
|
|
14
6
|
--color-surface: #ffffff;
|
|
15
7
|
--color-bg: #f7f9f9;
|
|
16
8
|
--color-line: #edf1f1;
|
|
17
9
|
--color-hover: #f2f6f6;
|
|
18
10
|
--color-ink: #020809;
|
|
19
11
|
--color-ink2: #3d4545;
|
|
20
|
-
|
|
21
|
-
muted2 كان #a5b0b0 = 2.23:1، يعني تسميات الرسوم والنص البديل
|
|
22
|
-
مكانوش بيتقروا. مفيش مساحة لدرجة خامسة تحت — العتبة بتقفل السلّم. */
|
|
12
|
+
|
|
23
13
|
--color-muted: #5f6a6a;
|
|
24
14
|
--color-muted2: #687373;
|
|
25
|
-
|
|
26
|
-
يعني الشيك بوكس الفاضي مكانش ليه أي وجود بصري. الكروت والفواصل
|
|
27
|
-
بتستخدم --color-line فمتأثرتش. */
|
|
15
|
+
|
|
28
16
|
--color-border: #7f8c8c;
|
|
29
17
|
--color-soft: #eaf2f3;
|
|
30
18
|
--color-soft2: #dceded;
|
|
31
19
|
--color-brand-ink: #0f4a4e;
|
|
32
20
|
|
|
33
|
-
/* ── تعبئة هيكل التحميل ────────────────────────────────────────────────
|
|
34
|
-
العصا اللي بتقف مكان النصّ لحدّ ما يوصل.
|
|
35
|
-
|
|
36
|
-
كانت `--color-hover`، وهو **لون حالة مرور** لا تعبئة — وعلى السطح
|
|
37
|
-
بيدّي 1.09:1 في الفاتح و1.14:1 في الداكن. فرق زي ده مايتشافش.
|
|
38
|
-
النتيجة كانت هيكل موجود في الـDOM وغايب عن العين.
|
|
39
|
-
|
|
40
|
-
والمدى ضيّق من الطرفين: تحت 1.2 مايتقريش، وفوق 1.6 بيتقري **محتوى**
|
|
41
|
-
لا انتظاراً — بلوك رمادي صريح بيبان كأنه صورة أو صندوق فاضي، فالعين
|
|
42
|
-
بتستنّى منه معنى بدل ما تعدّي عليه. القيم مقيسة على السطح:
|
|
43
|
-
|
|
44
|
-
فاتح #d6dcdc على #ffffff = 1.39 · 1.26 عند حضيض النبض
|
|
45
|
-
داكن #2c3232 على #101718 = 1.39 · 1.24 عند حضيض النبض
|
|
46
|
-
|
|
47
|
-
والرقمان متساويان عن قصد: الهيكل لازم يبان بنفس القوة في الوضعين،
|
|
48
|
-
وإلا الشاشة الواحدة بتتقري «بتحمّل» في وضع و«فاضية» في التاني.
|
|
49
|
-
|
|
50
|
-
── وليه توكن مستقلّ لا `soft2` ────────────────────────────────────────
|
|
51
|
-
`soft2` مسحته تركوازي — هو سطح العلامة الناعم. الهيكل بيه بياخد لون
|
|
52
|
-
هوية، وهو المفروض **حياد**: مساحة محجوزة لا عنصر له معنى. ده رمادي
|
|
53
|
-
مائل للبرودة (R أقلّ من G وB بستّ درجات) فيتناغم مع اللوحة بلا ما
|
|
54
|
-
ينتمي لها. */
|
|
55
21
|
--color-skeleton: #d6dcdc;
|
|
56
22
|
|
|
57
|
-
/* ألوان ثابتة مكتوبة صراحةً في v2 (مش متغيّرة مع الثيم) */
|
|
58
23
|
--color-brand: #207982;
|
|
59
24
|
--color-brand-hover: #1a646c;
|
|
60
25
|
--color-brand-100: #a5c9cc;
|
|
61
26
|
--color-brand-900: #0a2528;
|
|
62
27
|
--color-brand-deep: #0b3b3e;
|
|
63
|
-
|
|
64
|
-
الكبيرة. كانت #F4FAF8 مكتوبة بالإيد في شاشات الحسابات. */
|
|
28
|
+
|
|
65
29
|
--color-tint: #f4faf8;
|
|
66
|
-
|
|
67
|
-
القسم كله و`tint2` الكرت اللي جوّه، فالكرت يبان عليها. كانت
|
|
68
|
-
#EFF6F3 مكتوبة بالإيد ١٢ مرة في `Qumra Landing.dc.html`.
|
|
69
|
-
زي `tint` مالهاش قيمة داكنة — الاتنين أرضيات تسويقية فاتحة بالتعريف. */
|
|
30
|
+
|
|
70
31
|
--color-tint2: #eff6f3;
|
|
71
32
|
--color-mint: #7dd3c0;
|
|
72
33
|
|
|
73
|
-
/* ── ألوان الحالة ──────────────────────────────────────────────────────
|
|
74
|
-
كل واحدة ليها: نص (ink/اللون نفسه) + خلفية (bg) + حدّ (line).
|
|
75
|
-
التلاتة بيتقلبوا مع الثيم — من غير كده الشارة بتفضل بيضا وبتلمع
|
|
76
|
-
جوّه شاشة سودة حتى لو التباين جوّاها عدّى. */
|
|
77
34
|
--color-amber: #f8ac33;
|
|
78
35
|
--color-amber-bg: #fef6e9;
|
|
79
36
|
--color-amber-ink: #85570f;
|
|
80
37
|
--color-amber-line: #fbd79a;
|
|
81
38
|
--color-amber-900: #3d2a05;
|
|
82
|
-
|
|
83
|
-
كانت #DE9219 مكتوبة بالإيد. مع `amber-900` فوقها بتدّي 5.37:1.
|
|
84
|
-
ثابت مش بيتقلب — نفس منطق `amber` نفسه كتعبئة. */
|
|
39
|
+
|
|
85
40
|
--color-amber-hover: #de9219;
|
|
86
41
|
--color-green: #1e7a45;
|
|
87
42
|
--color-green-bg: #f1faf4;
|
|
@@ -91,39 +46,16 @@
|
|
|
91
46
|
--color-violet-bg: #edeaf6;
|
|
92
47
|
--color-violet-line: #ded8ef;
|
|
93
48
|
|
|
94
|
-
/* تعبئة صريحة بنص أبيض فوقها — نفس دور --color-danger.
|
|
95
|
-
`green`/`violet` لوحدهم ألوان نص وبيتقلبوا، فمينفعش يشيلوا أبيض
|
|
96
|
-
في الوضع الداكن (كان بيدّي 1.90 و2.04). دول ثابتين وبيعدّوا:
|
|
97
|
-
green-solid أبيض فوقه 5.35 · كعنصر 3.39–5.35
|
|
98
|
-
violet-solid أبيض فوقه 5.33 · كعنصر 3.41–5.33 */
|
|
99
49
|
--color-green-solid: #1e7a45;
|
|
100
50
|
--color-violet-solid: #6d5eb8;
|
|
101
51
|
|
|
102
|
-
/* ── الأحمر: دورين، توكنين ─────────────────────────────────────────────
|
|
103
|
-
`red` لون نص — لازم يعدّي 4.5:1 على السطح، فبيتقلب في الوضع الداكن (تحت).
|
|
104
|
-
`danger` لون تعبئة وحدّ — لازم يعدّي 3:1 كعنصر، والنص الأبيض فوقه 4.5:1.
|
|
105
|
-
قيمة واحدة بتعدّي في الوضعين فمش محتاجة تتقلب:
|
|
106
|
-
كعنصر 4.90 فاتح / 3.70 داكن · أبيض فوقه 4.90
|
|
107
|
-
كانت #D6493B مكتوبة بالإيد في ٩ مواضع، والأبيض فوقها 4.31 — تحت العتبة. */
|
|
108
52
|
--color-red: #8e2b20;
|
|
109
53
|
--color-red-bg: #fdecea;
|
|
110
54
|
--color-red-line: #f3c9c4;
|
|
111
55
|
--color-danger: #c94134;
|
|
112
|
-
|
|
113
|
-
`danger` كان الشاذ الوحيد: `brand` و`amber` كلٌّ منهم له `-hover`
|
|
114
|
-
مخصّص، و`danger` كان بيستعير `--color-red` في الـhover.
|
|
115
|
-
|
|
116
|
-
و`--color-red` **بيتقلب في الوضع الداكن** من `#8e2b20` (أحمر غامق)
|
|
117
|
-
لـ`#f3a79e` (وردي فاتح) — لأنه لون **نص** هناك لا تعبئة. فزرّ الحذف
|
|
118
|
-
في الداكن، أول ما الماوس يعدّي عليه، كان بيبقى أبيض على وردي فاتح
|
|
119
|
-
= **1.94**. نصّه عملياً مش مقروء.
|
|
120
|
-
|
|
121
|
-
القيمة مشتقّة لا مختارة: نسب القنوات بتاعة `brand → brand-hover`
|
|
122
|
-
مطبّقة على `danger`. النتيجة في نفس نطاق النظام (سطوع ٠.٦٤ مقابل
|
|
123
|
-
٠.٦٧ و٠.٧٣)، والأبيض فوقها **6.73** بدل 4.9. */
|
|
56
|
+
|
|
124
57
|
--color-danger-hover: #a3362b;
|
|
125
|
-
|
|
126
|
-
مش بيتقلب لأن أرضيته مش بتتقلب. نفس منطق --color-brand-100. */
|
|
58
|
+
|
|
127
59
|
--color-red-100: #f3a79e;
|
|
128
60
|
--color-night: #0b0f12;
|
|
129
61
|
--color-hero-body: #bfd9d8;
|
|
@@ -131,29 +63,14 @@
|
|
|
131
63
|
--color-hero-dim: #5e7a79;
|
|
132
64
|
--color-hero-text: #d7e3e2;
|
|
133
65
|
|
|
134
|
-
/* ── سلّم الخط ─────────────────────────────────────────────────────────
|
|
135
|
-
١٢ درجة، أعداد صحيحة بس. الـREADME كان بيوعد بالسلّم ده من غير ما
|
|
136
|
-
يبقى موجود، فالمكوّنات اخترعت ١٦ مقاس منهم ٨ كسرية — و12.5px
|
|
137
|
-
و13.5px لوحدهم كانوا ٣٥ استخدام. */
|
|
138
66
|
--text-micro: 11px;
|
|
139
67
|
--text-caption: 12px;
|
|
140
68
|
--text-ui: 13px;
|
|
141
69
|
--text-body: 14px;
|
|
142
70
|
--text-lead: 15px;
|
|
143
|
-
|
|
71
|
+
|
|
144
72
|
--text-base: 16px;
|
|
145
|
-
|
|
146
|
-
كل أسماء السلّم مخترَعة (micro · ui · body · lead · h4…) إلا `base`
|
|
147
|
-
— ده اسم مقاس مدمج، وTailwind بيعرّف معاه `--text-base--line-height`
|
|
148
|
-
بـ1.5. فتجاوز `--text-base` بياخد المقاس ويسيب ارتفاع السطر، وأداة
|
|
149
|
-
`text-base` بتطبع الاتنين.
|
|
150
|
-
|
|
151
|
-
والنتيجة إن الأداة بتغلب قاعدة ارتفاع السطر بتاعة الحقول (تحت في
|
|
152
|
-
`@layer base`) — الأدوات بتغلب الأساس مهما كانت الأولوية — فيرجع
|
|
153
|
-
الحقل الكبير لـ1.5 وتتقصّ ذيول «ي» و«ج» ١٫٨٥px. والباقي سليم لأن
|
|
154
|
-
أسماءه مالهاش نظير مدمج.
|
|
155
|
-
|
|
156
|
-
`initial` بتشيل الاقتران فتطبع الأداة المقاس بس زي بقية السلّم. */
|
|
73
|
+
|
|
157
74
|
--text-base--line-height: initial;
|
|
158
75
|
--text-h4: 17px;
|
|
159
76
|
--text-h3: 20px;
|
|
@@ -161,54 +78,13 @@
|
|
|
161
78
|
--text-h1: 30px;
|
|
162
79
|
--text-display: 36px;
|
|
163
80
|
--text-hero: 44px;
|
|
164
|
-
|
|
165
|
-
صفحة الهبوط سلّمها أكبر من سلّم اللوحة — اللوحة بتعرض بيانات كتير
|
|
166
|
-
في مساحة ضيقة، والهبوط بيعرض جملة واحدة على شاشة كاملة. المرجع
|
|
167
|
-
فيه ١٠ مقاسات بره السلّم؛ تمانية منهم بيتقرّبوا لدرجة موجودة
|
|
168
|
-
(38→display · 34→display · 29→h1 · 27→h2 · 25→h2 · 21→h3 · 19→h3
|
|
169
|
-
· 18→h4)، والاتنين دول مالهمش أقرب من ٤px فبيتضافوا.
|
|
170
|
-
مالهمش استخدام جوّه اللوحة — لو ظهروا فيها يبقى فيه غلط. */
|
|
81
|
+
|
|
171
82
|
--text-title: 40px;
|
|
172
83
|
--text-mega: 54px;
|
|
173
84
|
|
|
174
|
-
/* ── نصف القطر ─────────────────────────────────────────────────────────
|
|
175
|
-
٨ درجات بأدوار مسمّاة. السلّم ده **مشتقّ من الاستخدام الفعلي** مش
|
|
176
|
-
مفروض عليه: كان فيه ١٧ قيمة مختلفة في ٣١٧ موضع عبر المونوريبو،
|
|
177
|
-
والدرجات دي بتبلعهم بإزاحة ٢px كحد أقصى — يعني توحيد مش إعادة تصميم.
|
|
178
|
-
|
|
179
|
-
ملف الهوية القديم كان بيوعد بأربع قيم بس (9 · 13 · 18 · كامل)، وده
|
|
180
|
-
كان هيغيّر شكل ١٥١ استخدام في العنقود ٧–٩ لوحده. الأدوار أهم من
|
|
181
|
-
عدد الدرجات: الزرار الصغيّر مش كرت، والكرت مش قسم. */
|
|
182
|
-
/* ── عرض الحاويات ──────────────────────────────────────────────────────
|
|
183
|
-
مقاسان لا أكثر، وبأسماء لا بأرقام مكتوبة في الصفحات.
|
|
184
|
-
|
|
185
|
-
`shell` سقف اللوحة كلّها؛ و`page` عمود القراءة: كل صفحة تُقرأ سطراً
|
|
186
|
-
بعد سطر — تفصيل، أو نموذج، أو إعدادات — تأخذه، وكل صفحة جدولها هو
|
|
187
|
-
محتواها تأخذ `shell` كاملاً.
|
|
188
|
-
|
|
189
|
-
كان في المشروع أربعة مقاسات (٨٨٠ · ٩٢٠ · ٩٨٠ · ٥٨٠) مكتوبة بالإيد
|
|
190
|
-
في ستّ عشرة شاشة. الفرق بين ٨٨٠ و٩٢٠ لا يُقرأ سبباً — يُقرأ سهواً،
|
|
191
|
-
والتنقّل بين صفحتين متجاورتين يُظهر الحافّة وهي تقفز أربعين بكسل.
|
|
192
|
-
والرقم المكتوب بالإيد يعود يتفرّق: التوكن يمنع عودته. */
|
|
193
|
-
/* ── الفلسفة اتغيّرت: مفيش عصر ────────────────────────────────────
|
|
194
|
-
`page` كان ٨٨٠px كعمود قراءة، و`shell` ١٤٤٠. النتيجة إن تفاصيل
|
|
195
|
-
الطلب ومحرّر المنتج والإعدادات — ٢٤ شاشة — بيتحشروا في تلت الشاشة
|
|
196
|
-
على ٢٧ بوصة، والفراغ حواليهم بيتقري صفحة مش مخلّصة لا عمود مقصود.
|
|
197
|
-
|
|
198
|
-
الاتنين بقوا واحد: الصفحة بتاخد عرضها كامل لحد السقف. والسقف باقي
|
|
199
|
-
لأن غيابه مش «بلا حاوية» — هو حاوية بعرض الشاشة: صفّ «تسمية ← قيمة»
|
|
200
|
-
على ٣٤٤٠px بيبعد طرفيه تلات آلاف بكسل، والعين بتلفّ بدل ما تمسح.
|
|
201
|
-
|
|
202
|
-
لو رجعنا لعمود القراءة يوماً: `--container-page` يرجع ٨٨٠ وبس —
|
|
203
|
-
الـ٢٤ شاشة بتقراه من التوكن مش مكتوب فيها. */
|
|
204
85
|
--container-page: 1600px;
|
|
205
86
|
--container-shell: 1600px;
|
|
206
87
|
|
|
207
|
-
/* عرض السطر لا عرض الحاوية — سقف على النصّ حتى لا يمتدّ السطر
|
|
208
|
-
فيضيع طرفه على العين. درجتان: `note` للسطر أو السطرين تحت
|
|
209
|
-
عنوان أو في حالة فارغة، و`lead` للفقرة القائمة بنفسها.
|
|
210
|
-
كانت ستّ قيم (٣٢٠ · ٣٣٠ · ٣٤٠ · ٣٨٠ · ٤٦٠ · ٥٢٠) لا يفرّق
|
|
211
|
-
بينها شيء يُقصد. */
|
|
212
88
|
--container-note: 340px;
|
|
213
89
|
--container-lead: 520px;
|
|
214
90
|
|
|
@@ -221,12 +97,6 @@
|
|
|
221
97
|
--radius-section: 18px;
|
|
222
98
|
--radius-full: 999px;
|
|
223
99
|
|
|
224
|
-
/* ── الظل ──────────────────────────────────────────────────────────────
|
|
225
|
-
الأربعة الأولى بتستخدم `--shadow-color` فبتتقلب مع الثيم — دي ظلال
|
|
226
|
-
جوّه الصفحة، ولازم تقوى في الوضع الداكن عشان تفضل مقروءة.
|
|
227
|
-
|
|
228
|
-
التلاتة الأخيرة قيمها ثابتة عن قصد: دي طبقات فوق أرضية معتّمة
|
|
229
|
-
أصلاً (backdrop)، فالخلفية اللي وراها مش بتتغيّر مع الثيم. */
|
|
230
100
|
--shadow-raise: 0 1px 3px var(--shadow-color);
|
|
231
101
|
--shadow-tip: 0 6px 18px var(--shadow-color);
|
|
232
102
|
--shadow-panel: 0 10px 30px var(--shadow-color);
|
|
@@ -234,124 +104,50 @@
|
|
|
234
104
|
|
|
235
105
|
--shadow-modal: 0 24px 60px rgb(2 8 9 / 0.28);
|
|
236
106
|
--shadow-toast: 0 16px 40px rgb(2 8 9 / 0.26);
|
|
237
|
-
|
|
107
|
+
|
|
238
108
|
--shadow-sheet: 0 -14px 40px rgb(2 8 9 / 0.28), inset 0 1px 0 rgb(255 255 255 / 0.06);
|
|
239
109
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
القيم من `light_plus` و`dark_plus` حرفياً — أي «تقريب» بيضيّع
|
|
253
|
-
السبب كله.
|
|
254
|
-
|
|
255
|
-
ست أدوار مش خمسة: الكلمة المحجوزة (`const` · `import`) اتفصلت عن
|
|
256
|
-
الوسم لأنها كانت **مش ملوّنة أصلاً**، ودي أوضح فرق بين المقطع هنا
|
|
257
|
-
وبين نفسه في المحرّر.
|
|
258
|
-
|
|
259
|
-
── وليه داكن حتى في الوضع الفاتح ───────────────────────────────────
|
|
260
|
-
دي القيم الوحيدة في الملف اللي **مابتتقلبش مع الثيم**، ومعاها سبب
|
|
261
|
-
زي `--color-tint` و`--color-red-100` بالظبط: أرضيتها مش أرضية
|
|
262
|
-
الصفحة.
|
|
263
|
-
|
|
264
|
-
بلوك الكود مش «فقرة بخط تاني» — هو **نافذة محرّر متحطّة في
|
|
265
|
-
الصفحة**، والمحرّر داكن عند أغلب اللي هيقروا. لو اتقلب مع الثيم
|
|
266
|
-
بيبقى قطعة من الصفحة، ولو فضل داكن بيتقري مقتطع من المكان اللي
|
|
267
|
-
الكود ده رايح ليه.
|
|
268
|
-
|
|
269
|
-
والمقطع نفسه بيتنسخ ويتلزق في المحرّر — فالتطابق بيوفّر ترجمة
|
|
270
|
-
بصرية مرتين: وانت بتقراه، ولما تشوفه هناك.
|
|
271
|
-
|
|
272
|
-
التباين على `code-bg` — السبعة كلهم فوق 4.5:
|
|
273
|
-
11.12 · 5.59 · 8.09 · 11.05 · 6.24 · 9.70 · 4.95 */
|
|
274
|
-
--color-code-bg: #1f1f1f; /* أرضية المحرّر نفسها */
|
|
275
|
-
--color-code-plain: #d4d4d4; /* النص العادي — لون المحرّر مش لون الصفحة */
|
|
276
|
-
--color-code-key: #569cd6; /* `const` · `import` · `return` · `true` */
|
|
277
|
-
--color-code-tag: #4ec9b0; /* اسم الوسم والمكوّن — `<Button` */
|
|
278
|
-
--color-code-attr: #9cdcfe; /* اسم السمة، اسم الخاصية في JSON */
|
|
279
|
-
--color-code-str: #ce9178; /* النص بين علامتين */
|
|
280
|
-
--color-code-num: #b5cea8; /* الرقم */
|
|
281
|
-
--color-code-note: #6a9955; /* التعليق */
|
|
282
|
-
/* طاقم البلوك — شريط العنوان وزرار النسخ والفاصل الداخلي.
|
|
283
|
-
`muted2` و`line` بتوع الصفحة مش شغّالين هنا: أرضيتهم بتتقلب وأرضية
|
|
284
|
-
البلوك لأ، فـ`muted2` في الوضع الفاتح كان بيدّي 3.37 على الأسود.
|
|
285
|
-
دول مقاسين على `#1f1f1f` وبس. */
|
|
286
|
-
--color-code-dim: #858585; /* 4.47 على code-bg */
|
|
287
|
-
--color-code-line: #303031; /* الفاصل الداخلي — حدّ لوحة المحرّر */
|
|
288
|
-
|
|
289
|
-
/* أرضية الكود المضمّن جوّه جملة — **بتتقلب** مع الثيم عكس اللي فوق.
|
|
290
|
-
الكلمة جوّه فقرة عربية مش نافذة محرّر: أرضية سودة حواليها بتقطع
|
|
291
|
-
السطر وبتسحب العين لها بدل ما تخلّيها تكمّل قراية. الفرق في
|
|
292
|
-
الدور مش في الوسط. */
|
|
110
|
+
--color-code-bg: #1f1f1f;
|
|
111
|
+
--color-code-plain: #d4d4d4;
|
|
112
|
+
--color-code-key: #569cd6;
|
|
113
|
+
--color-code-tag: #4ec9b0;
|
|
114
|
+
--color-code-attr: #9cdcfe;
|
|
115
|
+
--color-code-str: #ce9178;
|
|
116
|
+
--color-code-num: #b5cea8;
|
|
117
|
+
--color-code-note: #6a9955;
|
|
118
|
+
|
|
119
|
+
--color-code-dim: #858585;
|
|
120
|
+
--color-code-line: #303031;
|
|
121
|
+
|
|
293
122
|
--color-code-chip: #f4f7f7;
|
|
294
123
|
|
|
295
124
|
--animate-qfade: qfade 0.16s ease-out;
|
|
296
125
|
--animate-qslide: qslidein 0.22s ease-out;
|
|
297
|
-
|
|
298
|
-
`qfade` عمداً: ما يظهر بلا طلب يجب أن يُرى وهو يظهر، لا أن يجد
|
|
299
|
-
المستخدم نفسه أمامه. */
|
|
126
|
+
|
|
300
127
|
--animate-tip: tip-in 0.26s cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
301
|
-
|
|
128
|
+
|
|
302
129
|
--animate-tip-up: tip-up 0.3s cubic-bezier(0.2, 0.9, 0.2, 1);
|
|
303
|
-
|
|
304
|
-
اللوح على الحافّة الطرفية، وهي اليمين في LTR واليسار في RTL. */
|
|
130
|
+
|
|
305
131
|
--animate-drawer: drawer-ltr 0.32s cubic-bezier(0.2, 0.9, 0.2, 1);
|
|
306
132
|
--animate-drawer-rtl: drawer-rtl 0.32s cubic-bezier(0.2, 0.9, 0.2, 1);
|
|
307
|
-
/* شريط الحفظ — ينزلق من فوق ويطلع من فوق. الحركة تقول إنه حلّ محلّ
|
|
308
|
-
ما كان هنا، لا إنه طبقة جديدة فوقه. أسرع من الدرج لأنه لا ينتظر
|
|
309
|
-
قراءة: المستخدم يعرف أنه عدّل، والشريط يؤكّد لا يُخبر. */
|
|
310
|
-
--animate-savebar: savebar-in 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
311
|
-
|
|
312
|
-
/* ── نبض الهيكل ────────────────────────────────────────────────────────
|
|
313
|
-
`animate-pulse` بتاع Tailwind بينزّل الشفافية لـ**٥٠٪**، وده بياكل
|
|
314
|
-
نصّ الفرق بين التعبئة والسطح: هيكل بـ1.39 بيوصل 1.12 عند الحضيض —
|
|
315
|
-
يعني بيختفي ويرجع مع كل دورة.
|
|
316
133
|
|
|
317
|
-
|
|
318
|
-
والهيكل بالتعريف **خافت**، فنسبة النزول لازم تبقى أقلّ.
|
|
134
|
+
--animate-savebar: savebar-in 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
319
135
|
|
|
320
|
-
٧٠٪ بتسيب 1.26 عند الحضيض — الحركة لسه بتتشاف والعصا مابتغيبش.
|
|
321
|
-
و1.6s أبطأ من 2s بتاعة Tailwind لأن الحركة الأضيق محتاجة وقت أطول
|
|
322
|
-
عشان تتقري كنبض لا كوميض. */
|
|
323
136
|
--animate-skeleton: skeleton-pulse 1.6s ease-in-out infinite;
|
|
324
137
|
}
|
|
325
138
|
|
|
326
139
|
:root {
|
|
327
|
-
/* ── إعلان الوضع للمتصفّح ────────────────────────────────────────────
|
|
328
|
-
المتصفّح بيرسم أجزاء **مش إحنا اللي بنلوّنها**: قائمة `<select>`
|
|
329
|
-
المنبثقة، وشريط التمرير، ومنتقي التاريخ، وأرضية الملء التلقائي،
|
|
330
|
-
وحلقة التركيز الافتراضية. دي بترسمها المنصّة لا الـCSS بتاعنا.
|
|
331
|
-
|
|
332
|
-
من غير `color-scheme` المتصفّح بيفترض **فاتح دايماً** — فقائمة
|
|
333
|
-
`<select>` في الوضع الداكن بتطلع بنصّ غامق على أرضية غامقة، والخيار
|
|
334
|
-
المحدَّد شريط أزرق فاضي بلا كلام. مافيش أي CSS على `<option>` بيصلّح
|
|
335
|
-
ده: العنصر بيترسم برّه الصفحة.
|
|
336
140
|
|
|
337
|
-
والسطر ده هو الإصلاح الوحيد — وبيشتغل على الخمس حاجات مرّة واحدة. */
|
|
338
141
|
color-scheme: light;
|
|
339
142
|
|
|
340
143
|
--shadow-color: rgb(2 8 9 / 0.14);
|
|
341
|
-
|
|
144
|
+
|
|
342
145
|
--num-align: right;
|
|
343
|
-
|
|
344
|
-
`far` = ناحية **نهاية الصفحة**، وهي ناحية اللاحقة.
|
|
345
|
-
و`pad-right`/`pad-left` **فيزيائيين عن قصد**: الحقل نفسه
|
|
346
|
-
`direction: ltr` (من `[data-num]`)، فأي حشو منطقي (`pe-`) بيتحسب
|
|
347
|
-
على LTR ويروح الناحية الغلط — وده اللي كان بيخلّي الرقم يتراكب
|
|
348
|
-
على «ج.م». */
|
|
146
|
+
|
|
349
147
|
--num-align-far: left;
|
|
350
148
|
--num-pad-right: 0.875rem;
|
|
351
149
|
--num-pad-left: 3.5rem;
|
|
352
|
-
|
|
353
|
-
**الصفحة** (`start-3.5` على الغلاف)، والحشو بحساب `ltr` بتاع الرقم
|
|
354
|
-
— فالاتنين بيقعوا في ناحية واحدة والرقم بيتراكب على الأيقونة. */
|
|
150
|
+
|
|
355
151
|
--num-icon-pad-right: 2.5rem;
|
|
356
152
|
--num-icon-pad-left: 0.875rem;
|
|
357
153
|
}
|
|
@@ -366,7 +162,7 @@ html[dir="ltr"] {
|
|
|
366
162
|
}
|
|
367
163
|
|
|
368
164
|
html[data-theme="dark"] {
|
|
369
|
-
|
|
165
|
+
|
|
370
166
|
color-scheme: dark;
|
|
371
167
|
|
|
372
168
|
--color-surface: #101718;
|
|
@@ -381,38 +177,29 @@ html[data-theme="dark"] {
|
|
|
381
177
|
--color-soft: #12363a;
|
|
382
178
|
--color-soft2: #17454a;
|
|
383
179
|
--color-brand-ink: #7dd3c0;
|
|
384
|
-
|
|
180
|
+
|
|
385
181
|
--color-skeleton: #2c3232;
|
|
386
182
|
--shadow-color: rgb(0 0 0 / 0.55);
|
|
387
183
|
|
|
388
|
-
/* الأحمر النصّي لازم يتقلب — #8e2b20 على #101718 بيدّي 2.17:1،
|
|
389
|
-
يعني رسالة الخطأ مكانتش بتتقري أصلاً. البديل 9.36:1. */
|
|
390
184
|
--color-red: #f3a79e;
|
|
391
185
|
--color-red-bg: #2c1613;
|
|
392
186
|
--color-red-line: #5c2a24;
|
|
393
187
|
|
|
394
|
-
|
|
395
|
-
--color-amber: #f8ac33; /* 8.33 على amber-bg */
|
|
188
|
+
--color-amber: #f8ac33;
|
|
396
189
|
--color-amber-bg: #2b2009;
|
|
397
|
-
--color-amber-ink: #f5c77a;
|
|
190
|
+
--color-amber-ink: #f5c77a;
|
|
398
191
|
--color-amber-line: #5c4415;
|
|
399
|
-
--color-green: #6ecf9a;
|
|
192
|
+
--color-green: #6ecf9a;
|
|
400
193
|
--color-green-bg: #0d2119;
|
|
401
194
|
--color-green-bg2: #102a22;
|
|
402
195
|
--color-green-line: #245140;
|
|
403
|
-
--color-violet: #b9aeea;
|
|
196
|
+
--color-violet: #b9aeea;
|
|
404
197
|
--color-violet-bg: #1e1a33;
|
|
405
198
|
--color-violet-line: #38305c;
|
|
406
199
|
|
|
407
|
-
/* ألوان الكود مش هنا — هي ثابتة في `@theme static` فوق ومابتتقلبش.
|
|
408
|
-
الوحيد اللي بيتقلب هو أرضية الكود المضمّن جوّه الجُمل. */
|
|
409
200
|
--color-code-chip: #17201f;
|
|
410
201
|
}
|
|
411
202
|
|
|
412
|
-
/* خطوط رأسية باهتة كل ٧٤px — بتدّي عمق للأرضية الداكنة من غير صورة.
|
|
413
|
-
موجودة في `Qumra Accounts.dc.html` و`Qumra Landing.dc.html` بنفس القيم،
|
|
414
|
-
فمكانها هنا مش جوّه تطبيق. تشتغل على الأرضيات الداكنة بس — الخطوط
|
|
415
|
-
بيضا بشفافية ٣.٥٪. */
|
|
416
203
|
@utility rule-grid {
|
|
417
204
|
background-image: repeating-linear-gradient(
|
|
418
205
|
90deg,
|
|
@@ -421,7 +208,6 @@ html[data-theme="dark"] {
|
|
|
421
208
|
);
|
|
422
209
|
}
|
|
423
210
|
|
|
424
|
-
/* نبض الهيكل — الشرح عند `--animate-skeleton` */
|
|
425
211
|
@keyframes skeleton-pulse {
|
|
426
212
|
0%, 100% { opacity: 1; }
|
|
427
213
|
50% { opacity: 0.7; }
|
|
@@ -467,20 +253,16 @@ html[data-theme="dark"] {
|
|
|
467
253
|
to { transform: none; }
|
|
468
254
|
}
|
|
469
255
|
|
|
470
|
-
/* ظهور بسيط — للقوايم المنسدلة والتولتيب والطبقات */
|
|
471
256
|
@keyframes fade-in {
|
|
472
257
|
from { opacity: 0; }
|
|
473
258
|
to { opacity: 1; }
|
|
474
259
|
}
|
|
475
260
|
|
|
476
|
-
/* التوست بيطلع من تحت شوية — بيربط الحركة بمكانه في الشاشة */
|
|
477
261
|
@keyframes toast-in {
|
|
478
262
|
from { opacity: 0; transform: translateY(10px) scale(.97); }
|
|
479
263
|
to { opacity: 1; transform: none; }
|
|
480
264
|
}
|
|
481
265
|
|
|
482
|
-
/* شريط تحميل غير محدّد — بيروح ويرجع بدل ما يدّعي نسبة مايعرفهاش.
|
|
483
|
-
منطقيّ الاتجاه: `inset-inline-start` بيتقلب مع الصفحة لوحده. */
|
|
484
266
|
@keyframes qload {
|
|
485
267
|
0% { inset-inline-start: -35%; }
|
|
486
268
|
100% { inset-inline-start: 100%; }
|
|
@@ -492,31 +274,6 @@ html[data-theme="dark"] {
|
|
|
492
274
|
height: 100%;
|
|
493
275
|
}
|
|
494
276
|
|
|
495
|
-
/* ── ذيول الحروف العربية داخل الحقول ──────────────────────────────────
|
|
496
|
-
الحقل يقصّ ما يخرج عن صندوقه، وصندوق نصّه ارتفاعه ارتفاع السطر. وفي
|
|
497
|
-
Alexandria ينزل ذيل «ي» و«ج» و«ص» تحت خطّ القاعدة أكثر ممّا يتركه
|
|
498
|
-
سطر بارتفاع 1.5 — فيُقصّ الذيل قصّاً مستوياً ويُقرأ الحرف ناقصاً.
|
|
499
|
-
اللاتينية لا تُظهر العيب لأن ذيولها أقصر، ولذلك يمرّ بلا انتباه.
|
|
500
|
-
|
|
501
|
-
1.9 يسع أطول ذيل في السلّم كلّه. ولا يزيد ارتفاع الحقل: المتصفّح
|
|
502
|
-
يوسّط سطر الحقل المفرد في صندوقه، والسطر الأطول يأخذ من الفراغ
|
|
503
|
-
الموجود أصلاً. والقاعدة على العنصر نفسه لا على الصنف، فتغطّي كل
|
|
504
|
-
حقل في المشروع — في المكتبة أو مكتوباً بالإيد.
|
|
505
|
-
|
|
506
|
-
── والرقم مقيس لا مختار ────────────────────────────────────────────
|
|
507
|
-
القصّ يقع عند **صندوق السطر** لا صندوق الحقل — فالحقل قد يكون
|
|
508
|
-
٥٦px والسطر ٢٤px فيُقصّ الذيل وحوله فراغ. والحدّ الأدنى:
|
|
509
|
-
|
|
510
|
-
الصعود − الهبوط المعلَن + ٢ × هبوط الحبر
|
|
511
|
-
14 − 4 + 2×7.92 = 25.85px عند 14px ≈ 1.85
|
|
512
|
-
|
|
513
|
-
لأن نصف الرصاص يوزَّع أعلى وأسفل. و1.9 فوقه بشعرة.
|
|
514
|
-
|
|
515
|
-
── وأداة `leading-*` على حقل تكسر هذا كلّه ─────────────────────────
|
|
516
|
-
القاعدة في `@layer base`، والأدوات تغلب الأساس مهما كانت الأولويّة.
|
|
517
|
-
فكل `leading-[…]` أو `text-*` يحمل ارتفاع سطر مقترناً يعيد العيب
|
|
518
|
-
في مكانه. وقعت مرّتين: `--text-base` (انظر أعلى) و`leading-[1.7]`
|
|
519
|
-
في `AiComposer` — والاثنتان كانتا تقصّان ذيل «ي». */
|
|
520
277
|
input:not([type='checkbox']):not([type='radio']):not([type='range']),
|
|
521
278
|
textarea,
|
|
522
279
|
select {
|
|
@@ -544,8 +301,6 @@ html[data-theme="dark"] {
|
|
|
544
301
|
font-family: inherit;
|
|
545
302
|
}
|
|
546
303
|
|
|
547
|
-
/* حلقة تركيز موحّدة — v2 مكانش فيها، وده الشيء الوحيد اللي بزوّده
|
|
548
|
-
على الأصل لأن التصميم من غيره مش قابل للتنقّل بالكيبورد. */
|
|
549
304
|
:focus-visible {
|
|
550
305
|
outline: 2px solid var(--color-brand);
|
|
551
306
|
outline-offset: 2px;
|
|
@@ -561,24 +316,6 @@ html[data-theme="dark"] {
|
|
|
561
316
|
border-radius: 999px;
|
|
562
317
|
}
|
|
563
318
|
|
|
564
|
-
/* الأرقام جوّه نص عربي.
|
|
565
|
-
`isolate` بيمنع الرقم من إنه يتلخبط مع اللي حواليه، و`tabular-nums`
|
|
566
|
-
بيخلّي الخانات بعرض واحد فالأعمدة تفضل مصطفّة. والمحاذاة متثبّتة على
|
|
567
|
-
اتجاه الصفحة بمتغيّر، ولأنها في @layer base أي كلاس محاذاة
|
|
568
|
-
(text-end / text-center) لسه بيكسبها.
|
|
569
|
-
|
|
570
|
-
── وليه مافيش `direction: ltr` هنا ──────────────────────────────────
|
|
571
|
-
كان موجود، وكان بيقلب كل مبلغ في المنصة: «34,330 ج.م» بتتقرا في
|
|
572
|
-
العربي من اليمين — الرقم يمين والرمز شماله. و`ltr` كان بيحطّ الرقم
|
|
573
|
-
شمال والرمز يمينه، فتُقرأ «ج.م ثم 34,330» زي «$34,330» الإنجليزية.
|
|
574
|
-
|
|
575
|
-
والرقم الخالص مابيفرقش معاه اتجاه العنصر — خانة واحدة بتتعرض LTR
|
|
576
|
-
في الحالتين. اللي بيحتاج `ltr` فعلاً هو النصّ المركّب اللي فيه أكتر
|
|
577
|
-
من مقطع: تليفون، ورمز تخزيني، ورقم طلب — ودول مكتوب عليهم
|
|
578
|
-
`dir="ltr"` صراحةً في مكانهم أصلاً.
|
|
579
|
-
|
|
580
|
-
وبيفضل على الحقول، لأن اتجاه الحقل بيحكم حركة علامة الإدخال وهي
|
|
581
|
-
بتكتب أرقام — ومش مسألة عرض. */
|
|
582
319
|
[data-num] {
|
|
583
320
|
unicode-bidi: isolate;
|
|
584
321
|
font-variant-numeric: tabular-nums;
|
|
@@ -590,30 +327,11 @@ html[data-theme="dark"] {
|
|
|
590
327
|
direction: ltr;
|
|
591
328
|
}
|
|
592
329
|
|
|
593
|
-
/* ── سهم حقل الرقم ────────────────────────────────────────────────────
|
|
594
|
-
تحكّم المتصفّح الأصلي مقفول في كل حقل `type="number"`.
|
|
595
|
-
|
|
596
|
-
مش تجميل — تلات أسباب:
|
|
597
|
-
|
|
598
|
-
١. **بيصطدم باللاحقة.** الحقل بلاحقة («ج.م») بيحجز مساحة في
|
|
599
|
-
نهايته بـ`pe-14`، والسهم بيتحطّ في نفس المكان من غير ما يعرف
|
|
600
|
-
إن فيه حاجة هناك. الاتنين بيتراكبوا.
|
|
601
|
-
|
|
602
|
-
٢. **موضعه بيتلخبط مع `[data-num]`.** الحقل جوّه صفحة عربية
|
|
603
|
-
والرقم `direction: ltr` — فالسهم بيتحطّ ناحية والقيمة ناحية،
|
|
604
|
-
والنتيجة سهم في نصّ الحقل زي ما في اللقطة.
|
|
605
|
-
|
|
606
|
-
٣. **مقاسه من نظام التشغيل.** ١٥ بكسل تقريباً وبيتغيّر بين
|
|
607
|
-
المتصفّحات، ومستحيل يعدّي حدّ الهدف اللمسي (٢٤ بكسل).
|
|
608
|
-
|
|
609
|
-
اللي عايز يزوّد وينقّص بزرار بيحطّ زرارين ظاهرين — دي عناصر
|
|
610
|
-
التحكّم بتاعتنا وليها حجم ومسافة مقروءين، مش أسهم النظام. */
|
|
611
330
|
input[type='number'] {
|
|
612
331
|
appearance: textfield;
|
|
613
332
|
-moz-appearance: textfield;
|
|
614
333
|
}
|
|
615
334
|
|
|
616
|
-
|
|
617
335
|
input[type='number']::-webkit-outer-spin-button,
|
|
618
336
|
input[type='number']::-webkit-inner-spin-button {
|
|
619
337
|
appearance: none;
|
|
@@ -631,21 +349,6 @@ html[data-theme="dark"] {
|
|
|
631
349
|
}
|
|
632
350
|
}
|
|
633
351
|
|
|
634
|
-
/* ── الرقم بلاحقة ────────────────────────────────────────────────────────
|
|
635
|
-
الرقم لوحده بيتحاذى ناحية بداية الصفحة (`--num-align`) — ده صح في عمود
|
|
636
|
-
جدول: كل الأرقام بتصطفّ تحت بعضها فالمقارنة بينها بنظرة.
|
|
637
|
-
|
|
638
|
-
لكن الحقل اللي ليه لاحقة («ج.م») مختلف: اللاحقة عنصر مطلق في **نهاية**
|
|
639
|
-
الحقل، والرقم في **بدايته** — فبينهم عرض الحقل كله. النتيجة إنك تقرا
|
|
640
|
-
«٠» وتقطع ٣٩٠ بكسل عشان تلاقي «ج.م».
|
|
641
|
-
|
|
642
|
-
هنا الرقم بيتحاذى ناحية اللاحقة فيلزق فيها، والوحدة بتبقى على شماله في
|
|
643
|
-
العربي — «١٢٥٠ ج.م» زي ما بتتكتب.
|
|
644
|
-
|
|
645
|
-
── وليه بره `@layer base` ────────────────────────────────────────────
|
|
646
|
-
الطبقات بتكسب على التخصيص: أي كلاس utility من Tailwind بيغلب أي قاعدة
|
|
647
|
-
في `base` مهما كان تخصيصها. والحقل عليه `pe-14`، فالقاعدة دي لازم تبقى
|
|
648
|
-
بعد الطبقات عشان تكسبه. */
|
|
649
352
|
[data-num][data-suffix] {
|
|
650
353
|
text-align: var(--num-align-far);
|
|
651
354
|
padding-right: var(--num-pad-right);
|
package/dist/tokens.js
CHANGED
|
@@ -1,20 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
ANIMATE_SCALE,
|
|
3
|
-
COLOR_SCALE,
|
|
4
|
-
CONTAINER_SCALE,
|
|
5
|
-
DARK_TOKENS,
|
|
6
|
-
RADIUS_SCALE,
|
|
7
|
-
SHADOW_SCALE,
|
|
8
|
-
TEXT_SCALE,
|
|
9
|
-
TOKENS
|
|
10
|
-
} from "./chunk-SFA2EQFK.js";
|
|
11
|
-
export {
|
|
12
|
-
ANIMATE_SCALE,
|
|
13
|
-
COLOR_SCALE,
|
|
14
|
-
CONTAINER_SCALE,
|
|
15
|
-
DARK_TOKENS,
|
|
16
|
-
RADIUS_SCALE,
|
|
17
|
-
SHADOW_SCALE,
|
|
18
|
-
TEXT_SCALE,
|
|
19
|
-
TOKENS
|
|
20
|
-
};
|
|
1
|
+
import{ANIMATE_SCALE,COLOR_SCALE,CONTAINER_SCALE,DARK_TOKENS,RADIUS_SCALE,SHADOW_SCALE,TEXT_SCALE,TOKENS}from"./chunk-3CTGRTYV.js";export{ANIMATE_SCALE,COLOR_SCALE,CONTAINER_SCALE,DARK_TOKENS,RADIUS_SCALE,SHADOW_SCALE,TEXT_SCALE,TOKENS};
|