sdga-ui 1.0.2 → 1.0.4
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/.editorconfig +23 -23
- package/.github/workflows/deploy.yml +57 -0
- package/.github/workflows/publish.yml +36 -33
- package/.prettierignore +73 -73
- package/.prettierrc +17 -17
- package/LICENSE +21 -21
- package/README.md +175 -167
- package/css/dga-ui.css +60 -30
- package/css/dga-ui.css.map +1 -1
- package/demo-angular/.editorconfig +17 -0
- package/demo-angular/.vscode/extensions.json +4 -0
- package/demo-angular/.vscode/launch.json +20 -0
- package/demo-angular/.vscode/tasks.json +42 -0
- package/demo-angular/README.md +59 -0
- package/demo-angular/angular.json +90 -0
- package/demo-angular/package-lock.json +10459 -0
- package/demo-angular/package.json +50 -0
- package/demo-angular/public/.nojekyll +0 -0
- package/demo-angular/public/favicon.ico +0 -0
- package/demo-angular/public/i18n/ar.json +239 -0
- package/demo-angular/public/i18n/en.json +239 -0
- package/demo-angular/src/app/app.config.ts +20 -0
- package/demo-angular/src/app/app.html +52 -0
- package/demo-angular/src/app/app.routes.ts +45 -0
- package/demo-angular/src/app/app.scss +430 -0
- package/demo-angular/src/app/app.spec.ts +23 -0
- package/demo-angular/src/app/app.ts +88 -0
- package/demo-angular/src/app/shared/code-example/code-example.component.html +30 -0
- package/demo-angular/src/app/shared/code-example/code-example.component.scss +183 -0
- package/demo-angular/src/app/shared/code-example/code-example.component.ts +78 -0
- package/demo-angular/src/app/views/alerts/alerts.component.html +155 -0
- package/demo-angular/src/app/views/alerts/alerts.component.scss +3 -0
- package/demo-angular/src/app/views/alerts/alerts.component.ts +134 -0
- package/demo-angular/src/app/views/bootstrap/bootstrap.component.html +14 -0
- package/demo-angular/src/app/views/bootstrap/bootstrap.component.scss +91 -0
- package/demo-angular/src/app/views/bootstrap/bootstrap.component.ts +23 -0
- package/demo-angular/src/app/views/buttons/buttons.component.html +289 -0
- package/demo-angular/src/app/views/buttons/buttons.component.scss +14 -0
- package/demo-angular/src/app/views/buttons/buttons.component.ts +155 -0
- package/demo-angular/src/app/views/cards/cards.component.html +156 -0
- package/demo-angular/src/app/views/cards/cards.component.html.backup +156 -0
- package/demo-angular/src/app/views/cards/cards.component.scss +11 -0
- package/demo-angular/src/app/views/cards/cards.component.ts +194 -0
- package/demo-angular/src/app/views/forms/forms.component.html +347 -0
- package/demo-angular/src/app/views/forms/forms.component.scss +3 -0
- package/demo-angular/src/app/views/forms/forms.component.ts +222 -0
- package/demo-angular/src/app/views/home/home.component.html +38 -0
- package/demo-angular/src/app/views/home/home.component.scss +35 -0
- package/demo-angular/src/app/views/home/home.component.ts +12 -0
- package/demo-angular/src/app/views/links/links.component.html +140 -0
- package/demo-angular/src/app/views/links/links.component.scss +60 -0
- package/demo-angular/src/app/views/links/links.component.ts +123 -0
- package/demo-angular/src/app/views/tables/tables.component.html +289 -0
- package/demo-angular/src/app/views/tables/tables.component.scss +3 -0
- package/demo-angular/src/app/views/tables/tables.component.ts +278 -0
- package/demo-angular/src/app/views/toasts/toasts.component.html +201 -0
- package/demo-angular/src/app/views/toasts/toasts.component.scss +0 -0
- package/demo-angular/src/app/views/toasts/toasts.component.ts +182 -0
- package/demo-angular/src/index.html +14 -0
- package/demo-angular/src/main.ts +6 -0
- package/demo-angular/src/styles.scss +4 -0
- package/demo-angular/tsconfig.app.json +15 -0
- package/demo-angular/tsconfig.json +33 -0
- package/demo-angular/tsconfig.spec.json +15 -0
- package/fonts/IBM_Plex_Sans_Arabic/OFL.txt +93 -93
- package/package.json +50 -47
- package/theme/_fonts.scss +58 -58
- package/theme/_functions.scss +11 -11
- package/theme/_variables.scss +50 -50
- package/theme/components/_accordion.scss +35 -35
- package/theme/components/_alerts.scss +11 -11
- package/theme/components/_badges.scss +8 -8
- package/theme/components/_breadcrumb.scss +13 -13
- package/theme/components/_buttons.scss +270 -270
- package/theme/components/_cards.scss +21 -21
- package/theme/components/_carousel.scss +33 -33
- package/theme/components/_content.scss +211 -211
- package/theme/components/_dropdowns.scss +45 -45
- package/theme/components/_forms-check.scss +124 -124
- package/theme/components/_forms-floating.scss +17 -17
- package/theme/components/_forms-inputs.scss +70 -70
- package/theme/components/_forms-range.scss +26 -26
- package/theme/components/_forms-select.scss +47 -47
- package/theme/components/_forms-switch.scss +63 -63
- package/theme/components/_forms-validation.scss +16 -16
- package/theme/components/_forms.scss +14 -14
- package/theme/components/_list-group.scss +26 -26
- package/theme/components/_modals.scss +42 -42
- package/theme/components/_navbar.scss +40 -40
- package/theme/components/_navigation.scss +151 -151
- package/theme/components/_offcanvas.scss +15 -15
- package/theme/components/_overlays.scss +112 -112
- package/theme/components/_pagination.scss +39 -39
- package/theme/components/_popovers.scss +26 -26
- package/theme/components/_progress.scss +11 -11
- package/theme/components/_spinners.scss +11 -11
- package/theme/components/_tables.scss +47 -47
- package/theme/components/_toasts.scss +16 -16
- package/theme/components/_tooltips.scss +15 -15
- package/theme/config/_base.scss +111 -111
- package/theme/config/_colors.scss +303 -303
- package/theme/config/_effects.scss +227 -227
- package/theme/config/_radius.scss +78 -78
- package/theme/config/_spacing.scss +155 -155
- package/theme/config/_typography.scss +118 -118
- package/theme/customizations/_alerts.scss +242 -242
- package/theme/customizations/_badges.scss +15 -15
- package/theme/customizations/_buttons.scss +209 -209
- package/theme/customizations/_cards.scss +117 -117
- package/theme/customizations/_forms-check.scss +278 -278
- package/theme/customizations/_forms-inputs.scss +9 -9
- package/theme/customizations/_forms-switch.scss +91 -91
- package/theme/customizations/_forms.scss +5 -5
- package/theme/customizations/_global.scss +25 -25
- package/theme/customizations/_links.scss +94 -46
- package/theme/customizations/_tables.scss +67 -67
- package/theme/customizations/_toasts.scss +221 -221
- package/theme/customizations/_utilities.scss +138 -138
- package/theme/dga-ui.scss +28 -28
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "demo-angular",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"ng": "ng",
|
|
6
|
+
"start": "ng serve -o",
|
|
7
|
+
"build": "ng build",
|
|
8
|
+
"build:prod": "ng build --configuration production",
|
|
9
|
+
"deploy": "ng deploy --base-href=/dga-ui/",
|
|
10
|
+
"watch": "ng build --watch --configuration development",
|
|
11
|
+
"test": "ng test"
|
|
12
|
+
},
|
|
13
|
+
"prettier": {
|
|
14
|
+
"printWidth": 100,
|
|
15
|
+
"singleQuote": true,
|
|
16
|
+
"overrides": [
|
|
17
|
+
{
|
|
18
|
+
"files": "*.html",
|
|
19
|
+
"options": {
|
|
20
|
+
"parser": "angular"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"private": true,
|
|
26
|
+
"packageManager": "npm@11.6.3",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@angular/common": "^21.0.0",
|
|
29
|
+
"@angular/compiler": "^21.0.0",
|
|
30
|
+
"@angular/core": "^21.0.0",
|
|
31
|
+
"@angular/forms": "^21.0.0",
|
|
32
|
+
"@angular/platform-browser": "^21.0.0",
|
|
33
|
+
"@angular/router": "^21.0.0",
|
|
34
|
+
"@ngx-translate/core": "^17.0.0",
|
|
35
|
+
"@ngx-translate/http-loader": "^17.0.0",
|
|
36
|
+
"highlight.js": "^11.11.1",
|
|
37
|
+
"rxjs": "~7.8.0",
|
|
38
|
+
"sdga-ui": "^1.0.3",
|
|
39
|
+
"tslib": "^2.3.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@angular/build": "^21.0.1",
|
|
43
|
+
"@angular/cli": "^21.0.1",
|
|
44
|
+
"@angular/compiler-cli": "^21.0.0",
|
|
45
|
+
"angular-cli-ghpages": "^2.0.3",
|
|
46
|
+
"jsdom": "^27.1.0",
|
|
47
|
+
"typescript": "~5.9.2",
|
|
48
|
+
"vitest": "^4.0.8"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
File without changes
|
|
Binary file
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
{
|
|
2
|
+
"app": {
|
|
3
|
+
"title": "مكتبة مكونات SDGA",
|
|
4
|
+
"tagline": "مكتبة المكونات",
|
|
5
|
+
"version": "الإصدار 0.0.1"
|
|
6
|
+
},
|
|
7
|
+
"nav": {
|
|
8
|
+
"getting_started": "البدء",
|
|
9
|
+
"components": "المكونات",
|
|
10
|
+
"home": "الرئيسية",
|
|
11
|
+
"alerts": "التنبيهات",
|
|
12
|
+
"buttons": "الأزرار",
|
|
13
|
+
"cards": "البطاقات",
|
|
14
|
+
"forms": "النماذج",
|
|
15
|
+
"tables": "الجداول",
|
|
16
|
+
"toasts": "الإشعارات",
|
|
17
|
+
"links": "الروابط",
|
|
18
|
+
"utilities": "الأدوات",
|
|
19
|
+
"all_components": "جميع المكونات"
|
|
20
|
+
},
|
|
21
|
+
"common": {
|
|
22
|
+
"toggle_menu": "تبديل القائمة",
|
|
23
|
+
"toggle_language": "English",
|
|
24
|
+
"close": "إغلاق"
|
|
25
|
+
},
|
|
26
|
+
"home": {
|
|
27
|
+
"title": "نظام تصميم SDGA",
|
|
28
|
+
"subtitle": "مكونات Bootstrap 5.3 الكاملة بتصميم SDGA",
|
|
29
|
+
"alerts_desc": "رسائل التنبيه بحالات متعددة",
|
|
30
|
+
"buttons_desc": "مكونات الأزرار التفاعلية",
|
|
31
|
+
"cards_desc": "بطاقات المحتوى مع الرموز والإجراءات",
|
|
32
|
+
"forms_desc": "حقول الإدخال وعناصر التحكم في النماذج",
|
|
33
|
+
"tables_desc": "جداول البيانات مع الفرز",
|
|
34
|
+
"toasts_desc": "إشعارات منبثقة مع إجراءات",
|
|
35
|
+
"utilities_desc": "الألوان والظلال والمسافات"
|
|
36
|
+
},
|
|
37
|
+
"alerts": {
|
|
38
|
+
"title": "التنبيهات",
|
|
39
|
+
"subtitle": "مكونات التنبيه من Bootstrap بتصميم SDGA",
|
|
40
|
+
"section_variants": "أنواع التنبيهات",
|
|
41
|
+
"section_dismissible": "تنبيه قابل للإغلاق",
|
|
42
|
+
"primary": "رئيسي!",
|
|
43
|
+
"primary_text": "هذا تنبيه رئيسي بلون SDGA الأخضر.",
|
|
44
|
+
"secondary": "ثانوي!",
|
|
45
|
+
"secondary_text": "هذا تنبيه ثانوي بلون SDGA الذهبي.",
|
|
46
|
+
"success": "نجاح!",
|
|
47
|
+
"success_text": "تم إكمال العملية بنجاح.",
|
|
48
|
+
"danger": "خطر!",
|
|
49
|
+
"danger_text": "حدث خطأ أثناء معالجة طلبك.",
|
|
50
|
+
"warning": "تحذير!",
|
|
51
|
+
"warning_text": "يرجى مراجعة المدخلات قبل المتابعة.",
|
|
52
|
+
"info": "معلومات!",
|
|
53
|
+
"info_text": "إليك بعض المعلومات المفيدة لك.",
|
|
54
|
+
"lavender": "لافندر!",
|
|
55
|
+
"lavender_text": "هذا متغير تنبيه لافندر مخصص.",
|
|
56
|
+
"neutral": "محايد!",
|
|
57
|
+
"neutral_text": "هذه رسالة معلومات محايدة.",
|
|
58
|
+
"dismissible_title": "يا إلهي!",
|
|
59
|
+
"dismissible_text": "يجب عليك التحقق من بعض هذه الحقول أدناه."
|
|
60
|
+
},
|
|
61
|
+
"buttons": {
|
|
62
|
+
"title": "الأزرار",
|
|
63
|
+
"subtitle": "مكونات الأزرار من Bootstrap بتصميم SDGA",
|
|
64
|
+
"section_solid": "الأزرار المصمتة",
|
|
65
|
+
"section_outline": "الأزرار المحددة",
|
|
66
|
+
"section_sizes": "أحجام الأزرار",
|
|
67
|
+
"section_states": "حالات الأزرار",
|
|
68
|
+
"section_icons": "أزرار مع أيقونات",
|
|
69
|
+
"section_icon_only": "أزرار الأيقونات فقط",
|
|
70
|
+
"section_dropdown": "أزرار القائمة المنسدلة",
|
|
71
|
+
"primary": "رئيسي",
|
|
72
|
+
"neutral": "محايد",
|
|
73
|
+
"secondary": "ثانوي",
|
|
74
|
+
"danger": "خطر",
|
|
75
|
+
"large": "زر كبير",
|
|
76
|
+
"default": "زر افتراضي",
|
|
77
|
+
"small": "زر صغير",
|
|
78
|
+
"extra_small": "زر صغير جداً",
|
|
79
|
+
"normal": "عادي",
|
|
80
|
+
"active": "نشط",
|
|
81
|
+
"disabled": "معطل",
|
|
82
|
+
"download": "تنزيل",
|
|
83
|
+
"upload": "رفع",
|
|
84
|
+
"edit": "تعديل",
|
|
85
|
+
"delete": "حذف",
|
|
86
|
+
"save": "حفظ",
|
|
87
|
+
"search": "بحث",
|
|
88
|
+
"settings": "الإعدادات",
|
|
89
|
+
"add": "إضافة",
|
|
90
|
+
"next": "التالي",
|
|
91
|
+
"previous": "السابق",
|
|
92
|
+
"dropdown_primary": "قائمة رئيسية",
|
|
93
|
+
"dropdown_neutral": "قائمة محايدة",
|
|
94
|
+
"dropdown_secondary": "قائمة ثانوية",
|
|
95
|
+
"dropdown_danger": "قائمة خطر",
|
|
96
|
+
"dropdown_outline": "قائمة محددة",
|
|
97
|
+
"dropdown_action": "إجراء",
|
|
98
|
+
"dropdown_another": "إجراء آخر",
|
|
99
|
+
"dropdown_something": "شيء آخر هنا"
|
|
100
|
+
},
|
|
101
|
+
"cards": {
|
|
102
|
+
"title": "البطاقات",
|
|
103
|
+
"subtitle": "مكونات البطاقات من Bootstrap بتصميم SDGA",
|
|
104
|
+
"section_examples": "أمثلة البطاقات",
|
|
105
|
+
"card_title": "عنوان البطاقة",
|
|
106
|
+
"card_text": "قم بضبط تفضيلاتك وإعداداتك هنا.",
|
|
107
|
+
"action": "إجراء",
|
|
108
|
+
"action_secondary": "إجراء ثانوي",
|
|
109
|
+
"select_card": "اختر البطاقة",
|
|
110
|
+
"expandable_title": "عنوان البطاقة",
|
|
111
|
+
"expandable_text": "قم بضبط تفضيلاتك وإعداداتك هنا.",
|
|
112
|
+
"expanded_content": "هذا محتوى إضافي يظهر عند توسيع البطاقة. يمكنك إضافة أي محتوى هنا.",
|
|
113
|
+
"detail_1": "معلومات تفصيلية 1",
|
|
114
|
+
"detail_2": "معلومات تفصيلية 2",
|
|
115
|
+
"detail_3": "معلومات تفصيلية 3",
|
|
116
|
+
"cancel": "إلغاء",
|
|
117
|
+
"go_somewhere": "اذهب إلى مكان ما",
|
|
118
|
+
"view_details": "عرض التفاصيل"
|
|
119
|
+
},
|
|
120
|
+
"forms": {
|
|
121
|
+
"title": "النماذج",
|
|
122
|
+
"subtitle": "مكونات النماذج من Bootstrap بتصميم SDGA",
|
|
123
|
+
"checkboxes": "مربعات الاختيار",
|
|
124
|
+
"checkbox_default": "مربع اختيار افتراضي",
|
|
125
|
+
"checkbox_checked": "مربع اختيار محدد",
|
|
126
|
+
"checkbox_disabled": "مربع اختيار معطل",
|
|
127
|
+
"checkbox_disabled_checked": "مربع اختيار معطل ومحدد",
|
|
128
|
+
"radios": "أزرار الاختيار",
|
|
129
|
+
"radio_default": "زر اختيار افتراضي",
|
|
130
|
+
"radio_second": "زر اختيار افتراضي ثاني",
|
|
131
|
+
"radio_disabled": "زر اختيار معطل",
|
|
132
|
+
"radio_disabled_checked": "زر اختيار معطل ومحدد",
|
|
133
|
+
"switches": "مفاتيح التبديل",
|
|
134
|
+
"switch_default": "مفتاح افتراضي",
|
|
135
|
+
"switch_disabled": "مفتاح معطل",
|
|
136
|
+
"switch_checked": "مفتاح محدد",
|
|
137
|
+
"text_inputs": "حقول النص",
|
|
138
|
+
"select": "القائمة المنسدلة",
|
|
139
|
+
"select_default": "افتح هذه القائمة المنسدلة",
|
|
140
|
+
"select_option_1": "واحد",
|
|
141
|
+
"select_option_2": "اثنان",
|
|
142
|
+
"select_option_3": "ثلاثة",
|
|
143
|
+
"range": "المدى",
|
|
144
|
+
"input_sizes": "أحجام الحقول",
|
|
145
|
+
"large_input": "حقل كبير",
|
|
146
|
+
"default_input": "حقل افتراضي",
|
|
147
|
+
"small_input": "حقل صغير",
|
|
148
|
+
"actions": "الإجراءات",
|
|
149
|
+
"submit": "إرسال",
|
|
150
|
+
"reset": "إعادة تعيين"
|
|
151
|
+
},
|
|
152
|
+
"tables": {
|
|
153
|
+
"title": "الجداول",
|
|
154
|
+
"subtitle": "مكونات الجداول من Bootstrap بتصميم SDGA",
|
|
155
|
+
"section_default": "الجدول الافتراضي",
|
|
156
|
+
"section_striped": "جدول مخطط وقابل للتمرير",
|
|
157
|
+
"header_name": "الاسم",
|
|
158
|
+
"header_email": "البريد الإلكتروني",
|
|
159
|
+
"header_role": "الدور",
|
|
160
|
+
"header_status": "الحالة"
|
|
161
|
+
},
|
|
162
|
+
"toasts": {
|
|
163
|
+
"title": "الإشعارات",
|
|
164
|
+
"subtitle": "إشعارات Toast من Bootstrap بتصميم SDGA",
|
|
165
|
+
"section_basic": "الإشعارات الأساسية",
|
|
166
|
+
"section_with_footer": "إشعارات مع تذييل",
|
|
167
|
+
"section_variants": "جميع أنواع الإشعارات",
|
|
168
|
+
"show_all": "إظهار جميع الإشعارات",
|
|
169
|
+
"primary": "إشعار رئيسي",
|
|
170
|
+
"primary_text": "هذا إشعار رئيسي مع معلومات إضافية.",
|
|
171
|
+
"secondary": "إشعار ثانوي",
|
|
172
|
+
"secondary_text": "هذا إشعار ثانوي مع معلومات إضافية.",
|
|
173
|
+
"success": "إشعار نجاح",
|
|
174
|
+
"success_text": "تم إكمال العملية بنجاح!",
|
|
175
|
+
"danger": "إشعار خطر",
|
|
176
|
+
"danger_text": "حدث خطأ. يرجى المحاولة مرة أخرى.",
|
|
177
|
+
"warning": "إشعار تحذير",
|
|
178
|
+
"warning_text": "يرجى مراجعة هذه المعلومات بعناية.",
|
|
179
|
+
"info": "إشعار معلومات",
|
|
180
|
+
"info_text": "إليك بعض المعلومات المفيدة لك.",
|
|
181
|
+
"lavender": "إشعار لافندر",
|
|
182
|
+
"lavender_text": "هذا إشعار لافندر خاص.",
|
|
183
|
+
"neutral": "إشعار محايد",
|
|
184
|
+
"neutral_text": "هذه رسالة إشعار محايدة.",
|
|
185
|
+
"action": "إجراء",
|
|
186
|
+
"dismiss": "إغلاق"
|
|
187
|
+
},
|
|
188
|
+
"utilities": {
|
|
189
|
+
"title": "الأدوات",
|
|
190
|
+
"subtitle": "فئات الأدوات من Bootstrap بتصميم SDGA",
|
|
191
|
+
"section_colors": "أدوات الألوان"
|
|
192
|
+
},
|
|
193
|
+
"bootstrap": {
|
|
194
|
+
"title": "عرض مكونات Bootstrap 5.3",
|
|
195
|
+
"subtitle": "عرض كامل لجميع مكونات Bootstrap بتصميم SDGA"
|
|
196
|
+
},
|
|
197
|
+
"links": {
|
|
198
|
+
"title": "الروابط",
|
|
199
|
+
"subtitle": "أدوات الروابط من Bootstrap وأنماط الروابط المخصصة",
|
|
200
|
+
"section_basic": "ألوان الروابط الأساسية",
|
|
201
|
+
"section_underline": "أدوات التسطير",
|
|
202
|
+
"section_hover": "حالات التمرير",
|
|
203
|
+
"section_offset": "إزاحة التسطير",
|
|
204
|
+
"section_icons": "روابط مع أيقونات",
|
|
205
|
+
"section_custom": "أنماط روابط مخصصة",
|
|
206
|
+
"primary_link": "رابط رئيسي",
|
|
207
|
+
"secondary_link": "رابط ثانوي",
|
|
208
|
+
"success_link": "رابط نجاح",
|
|
209
|
+
"danger_link": "رابط خطر",
|
|
210
|
+
"warning_link": "رابط تحذير",
|
|
211
|
+
"info_link": "رابط معلومات",
|
|
212
|
+
"underline_link": "رابط مع تسطير",
|
|
213
|
+
"no_underline": "رابط بدون تسطير",
|
|
214
|
+
"underline_25": "رابط مع شفافية تسطير 25%",
|
|
215
|
+
"underline_50": "رابط مع شفافية تسطير 50%",
|
|
216
|
+
"underline_75": "رابط مع شفافية تسطير 75%",
|
|
217
|
+
"underline_100": "رابط مع شفافية تسطير 100%",
|
|
218
|
+
"hover_underline": "تسطير عند التمرير",
|
|
219
|
+
"hover_remove": "إزالة التسطير عند التمرير",
|
|
220
|
+
"offset_1": "رابط مع إزاحة 1 بكسل",
|
|
221
|
+
"offset_2": "رابط مع إزاحة 2 بكسل",
|
|
222
|
+
"offset_3": "رابط مع إزاحة 3 بكسل",
|
|
223
|
+
"link_with_icon": "رابط مع أيقونة",
|
|
224
|
+
"external_link": "رابط خارجي",
|
|
225
|
+
"arrow_link": "رابط مع سهم",
|
|
226
|
+
"subtle_link": "نمط رابط خفيف",
|
|
227
|
+
"bold_link": "نمط رابط عريض",
|
|
228
|
+
"decorated_link": "رابط مع تسطير متحرك"
|
|
229
|
+
},
|
|
230
|
+
"code": {
|
|
231
|
+
"show": "إظهار الكود",
|
|
232
|
+
"hide": "إخفاء الكود",
|
|
233
|
+
"copy": "نسخ الكود",
|
|
234
|
+
"copied": "تم النسخ!",
|
|
235
|
+
"html": "HTML",
|
|
236
|
+
"ts": "TypeScript",
|
|
237
|
+
"scss": "SCSS"
|
|
238
|
+
}
|
|
239
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
{
|
|
2
|
+
"app": {
|
|
3
|
+
"title": "SDGA Component UI",
|
|
4
|
+
"tagline": "Component Library",
|
|
5
|
+
"version": "v0.0.1"
|
|
6
|
+
},
|
|
7
|
+
"nav": {
|
|
8
|
+
"getting_started": "Getting Started",
|
|
9
|
+
"components": "Components",
|
|
10
|
+
"home": "Home",
|
|
11
|
+
"alerts": "Alerts",
|
|
12
|
+
"buttons": "Buttons",
|
|
13
|
+
"cards": "Cards",
|
|
14
|
+
"forms": "Forms",
|
|
15
|
+
"tables": "Tables",
|
|
16
|
+
"toasts": "Toasts",
|
|
17
|
+
"links": "Links",
|
|
18
|
+
"utilities": "Utilities",
|
|
19
|
+
"all_components": "All Components"
|
|
20
|
+
},
|
|
21
|
+
"common": {
|
|
22
|
+
"toggle_menu": "Toggle Menu",
|
|
23
|
+
"toggle_language": "العربية",
|
|
24
|
+
"close": "Close"
|
|
25
|
+
},
|
|
26
|
+
"home": {
|
|
27
|
+
"title": "SDGA Design System",
|
|
28
|
+
"subtitle": "Complete Bootstrap 5.3 components styled with SDGA theme",
|
|
29
|
+
"alerts_desc": "Alert messages with various states",
|
|
30
|
+
"buttons_desc": "Interactive button components",
|
|
31
|
+
"cards_desc": "Content cards with icons and actions",
|
|
32
|
+
"forms_desc": "Input fields and form controls",
|
|
33
|
+
"tables_desc": "Data tables with sorting",
|
|
34
|
+
"toasts_desc": "Toast notifications with actions",
|
|
35
|
+
"utilities_desc": "Colors, shadows, and spacing"
|
|
36
|
+
},
|
|
37
|
+
"alerts": {
|
|
38
|
+
"title": "Alerts",
|
|
39
|
+
"subtitle": "Bootstrap alert components styled with SDGA theme",
|
|
40
|
+
"section_variants": "Alert Variants",
|
|
41
|
+
"section_dismissible": "Dismissible Alert",
|
|
42
|
+
"primary": "Primary!",
|
|
43
|
+
"primary_text": "This is a primary alert with SDGA green color.",
|
|
44
|
+
"secondary": "Secondary!",
|
|
45
|
+
"secondary_text": "This is a secondary alert with SDGA gold color.",
|
|
46
|
+
"success": "Success!",
|
|
47
|
+
"success_text": "Your action was completed successfully.",
|
|
48
|
+
"danger": "Danger!",
|
|
49
|
+
"danger_text": "There was an error processing your request.",
|
|
50
|
+
"warning": "Warning!",
|
|
51
|
+
"warning_text": "Please review your input before proceeding.",
|
|
52
|
+
"info": "Info!",
|
|
53
|
+
"info_text": "Here's some helpful information for you.",
|
|
54
|
+
"lavender": "Lavender!",
|
|
55
|
+
"lavender_text": "This is a custom lavender alert variant.",
|
|
56
|
+
"neutral": "Neutral!",
|
|
57
|
+
"neutral_text": "This is a neutral informational message.",
|
|
58
|
+
"dismissible_title": "Holy guacamole!",
|
|
59
|
+
"dismissible_text": "You should check in on some of those fields below."
|
|
60
|
+
},
|
|
61
|
+
"buttons": {
|
|
62
|
+
"title": "Buttons",
|
|
63
|
+
"subtitle": "Bootstrap button components styled with SDGA theme",
|
|
64
|
+
"section_solid": "Solid Buttons",
|
|
65
|
+
"section_outline": "Outline Buttons",
|
|
66
|
+
"section_sizes": "Button Sizes",
|
|
67
|
+
"section_states": "Button States",
|
|
68
|
+
"section_icons": "Buttons with Icons",
|
|
69
|
+
"section_icon_only": "Icon-Only Buttons",
|
|
70
|
+
"section_dropdown": "Dropdown Buttons",
|
|
71
|
+
"primary": "Primary",
|
|
72
|
+
"neutral": "Neutral",
|
|
73
|
+
"secondary": "Secondary",
|
|
74
|
+
"danger": "Danger",
|
|
75
|
+
"large": "Large button",
|
|
76
|
+
"default": "Default button",
|
|
77
|
+
"small": "Small button",
|
|
78
|
+
"extra_small": "Extra small",
|
|
79
|
+
"normal": "Normal",
|
|
80
|
+
"active": "Active",
|
|
81
|
+
"disabled": "Disabled",
|
|
82
|
+
"download": "Download",
|
|
83
|
+
"upload": "Upload",
|
|
84
|
+
"edit": "Edit",
|
|
85
|
+
"delete": "Delete",
|
|
86
|
+
"save": "Save",
|
|
87
|
+
"search": "Search",
|
|
88
|
+
"settings": "Settings",
|
|
89
|
+
"add": "Add",
|
|
90
|
+
"next": "Next",
|
|
91
|
+
"previous": "Previous",
|
|
92
|
+
"dropdown_primary": "Primary Dropdown",
|
|
93
|
+
"dropdown_neutral": "Neutral Dropdown",
|
|
94
|
+
"dropdown_secondary": "Secondary Dropdown",
|
|
95
|
+
"dropdown_danger": "Danger Dropdown",
|
|
96
|
+
"dropdown_outline": "Outline Dropdown",
|
|
97
|
+
"dropdown_action": "Action",
|
|
98
|
+
"dropdown_another": "Another action",
|
|
99
|
+
"dropdown_something": "Something else here"
|
|
100
|
+
},
|
|
101
|
+
"cards": {
|
|
102
|
+
"title": "Cards",
|
|
103
|
+
"subtitle": "Bootstrap card components styled with SDGA theme",
|
|
104
|
+
"section_examples": "Card Examples",
|
|
105
|
+
"card_title": "Card Title",
|
|
106
|
+
"card_text": "Adjust your preferences and settings here.",
|
|
107
|
+
"action": "Action",
|
|
108
|
+
"action_secondary": "Action",
|
|
109
|
+
"select_card": "Select card",
|
|
110
|
+
"expandable_title": "Expandable Card",
|
|
111
|
+
"expandable_text": "Click the arrow to expand this card and see more content.",
|
|
112
|
+
"expanded_content": "This is additional content that appears when the card is expanded. You can add any content here.",
|
|
113
|
+
"detail_1": "Detail item 1",
|
|
114
|
+
"detail_2": "Detail item 2",
|
|
115
|
+
"detail_3": "Detail item 3",
|
|
116
|
+
"cancel": "Cancel",
|
|
117
|
+
"go_somewhere": "Go somewhere",
|
|
118
|
+
"view_details": "View Details"
|
|
119
|
+
},
|
|
120
|
+
"forms": {
|
|
121
|
+
"title": "Forms",
|
|
122
|
+
"subtitle": "Bootstrap form components styled with SDGA theme",
|
|
123
|
+
"checkboxes": "Checkboxes",
|
|
124
|
+
"checkbox_default": "Default checkbox",
|
|
125
|
+
"checkbox_checked": "Checked checkbox",
|
|
126
|
+
"checkbox_disabled": "Disabled checkbox",
|
|
127
|
+
"checkbox_disabled_checked": "Disabled checked checkbox",
|
|
128
|
+
"radios": "Radios",
|
|
129
|
+
"radio_default": "Default radio",
|
|
130
|
+
"radio_second": "Second default radio",
|
|
131
|
+
"radio_disabled": "Disabled radio",
|
|
132
|
+
"radio_disabled_checked": "Disabled checked radio",
|
|
133
|
+
"switches": "Switches",
|
|
134
|
+
"switch_default": "Default switch",
|
|
135
|
+
"switch_disabled": "Disabled switch",
|
|
136
|
+
"switch_checked": "Checked switch",
|
|
137
|
+
"text_inputs": "Text Inputs",
|
|
138
|
+
"select": "Select",
|
|
139
|
+
"select_default": "Open this select menu",
|
|
140
|
+
"select_option_1": "One",
|
|
141
|
+
"select_option_2": "Two",
|
|
142
|
+
"select_option_3": "Three",
|
|
143
|
+
"range": "Range",
|
|
144
|
+
"input_sizes": "Input Sizes",
|
|
145
|
+
"large_input": "Large input",
|
|
146
|
+
"default_input": "Default input",
|
|
147
|
+
"small_input": "Small input",
|
|
148
|
+
"actions": "Actions",
|
|
149
|
+
"submit": "Submit",
|
|
150
|
+
"reset": "Reset"
|
|
151
|
+
},
|
|
152
|
+
"tables": {
|
|
153
|
+
"title": "Tables",
|
|
154
|
+
"subtitle": "Bootstrap table components styled with SDGA theme",
|
|
155
|
+
"section_default": "Default Table",
|
|
156
|
+
"section_striped": "Striped & Hoverable Table",
|
|
157
|
+
"header_name": "Name",
|
|
158
|
+
"header_email": "Email",
|
|
159
|
+
"header_role": "Role",
|
|
160
|
+
"header_status": "Status"
|
|
161
|
+
},
|
|
162
|
+
"toasts": {
|
|
163
|
+
"title": "Toasts",
|
|
164
|
+
"subtitle": "Bootstrap toast notifications styled with SDGA theme",
|
|
165
|
+
"section_basic": "Basic Toasts",
|
|
166
|
+
"section_with_footer": "Toasts with Footer",
|
|
167
|
+
"section_variants": "All Toast Variants",
|
|
168
|
+
"show_all": "Show All Toasts",
|
|
169
|
+
"primary": "Primary Toast",
|
|
170
|
+
"primary_text": "This is a primary toast message with additional information.",
|
|
171
|
+
"secondary": "Secondary Toast",
|
|
172
|
+
"secondary_text": "This is a secondary toast message with additional information.",
|
|
173
|
+
"success": "Success Toast",
|
|
174
|
+
"success_text": "Your action has been completed successfully!",
|
|
175
|
+
"danger": "Danger Toast",
|
|
176
|
+
"danger_text": "An error occurred. Please try again.",
|
|
177
|
+
"warning": "Warning Toast",
|
|
178
|
+
"warning_text": "Please review this information carefully.",
|
|
179
|
+
"info": "Information Toast",
|
|
180
|
+
"info_text": "Here's some helpful information for you.",
|
|
181
|
+
"lavender": "Lavender Toast",
|
|
182
|
+
"lavender_text": "This is a special lavender notification.",
|
|
183
|
+
"neutral": "Neutral Toast",
|
|
184
|
+
"neutral_text": "This is a neutral notification message.",
|
|
185
|
+
"action": "Action",
|
|
186
|
+
"dismiss": "Dismiss"
|
|
187
|
+
},
|
|
188
|
+
"utilities": {
|
|
189
|
+
"title": "Utilities",
|
|
190
|
+
"subtitle": "Bootstrap utility classes styled with SDGA theme",
|
|
191
|
+
"section_colors": "Color Utilities"
|
|
192
|
+
},
|
|
193
|
+
"bootstrap": {
|
|
194
|
+
"title": "Bootstrap 5.3 Components Showcase",
|
|
195
|
+
"subtitle": "Complete demonstration of all Bootstrap components styled with SDGA theme"
|
|
196
|
+
},
|
|
197
|
+
"links": {
|
|
198
|
+
"title": "Links",
|
|
199
|
+
"subtitle": "Bootstrap link utilities and custom link styles",
|
|
200
|
+
"section_basic": "Basic Link Colors",
|
|
201
|
+
"section_underline": "Underline Utilities",
|
|
202
|
+
"section_hover": "Hover States",
|
|
203
|
+
"section_offset": "Underline Offset",
|
|
204
|
+
"section_icons": "Links with Icons",
|
|
205
|
+
"section_custom": "Custom Link Styles",
|
|
206
|
+
"primary_link": "Primary link",
|
|
207
|
+
"secondary_link": "Secondary link",
|
|
208
|
+
"success_link": "Success link",
|
|
209
|
+
"danger_link": "Danger link",
|
|
210
|
+
"warning_link": "Warning link",
|
|
211
|
+
"info_link": "Info link",
|
|
212
|
+
"underline_link": "Link with underline",
|
|
213
|
+
"no_underline": "Link without underline",
|
|
214
|
+
"underline_25": "Link with 25% underline opacity",
|
|
215
|
+
"underline_50": "Link with 50% underline opacity",
|
|
216
|
+
"underline_75": "Link with 75% underline opacity",
|
|
217
|
+
"underline_100": "Link with 100% underline opacity",
|
|
218
|
+
"hover_underline": "Underline on hover",
|
|
219
|
+
"hover_remove": "Remove underline on hover",
|
|
220
|
+
"offset_1": "Link with 1px offset",
|
|
221
|
+
"offset_2": "Link with 2px offset",
|
|
222
|
+
"offset_3": "Link with 3px offset",
|
|
223
|
+
"link_with_icon": "Link with icon",
|
|
224
|
+
"external_link": "External link",
|
|
225
|
+
"arrow_link": "Link with arrow",
|
|
226
|
+
"subtle_link": "Subtle link style",
|
|
227
|
+
"bold_link": "Bold link style",
|
|
228
|
+
"decorated_link": "Animated underline link"
|
|
229
|
+
},
|
|
230
|
+
"code": {
|
|
231
|
+
"show": "Show Code",
|
|
232
|
+
"hide": "Hide Code",
|
|
233
|
+
"copy": "Copy Code",
|
|
234
|
+
"copied": "Copied!",
|
|
235
|
+
"html": "HTML",
|
|
236
|
+
"ts": "TypeScript",
|
|
237
|
+
"scss": "SCSS"
|
|
238
|
+
}
|
|
239
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZonelessChangeDetection, importProvidersFrom } from '@angular/core';
|
|
2
|
+
import { provideRouter } from '@angular/router';
|
|
3
|
+
import { provideHttpClient, withFetch } from '@angular/common/http';
|
|
4
|
+
import { provideTranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
5
|
+
|
|
6
|
+
import { routes } from './app.routes';
|
|
7
|
+
import { provideTranslateService } from '@ngx-translate/core';
|
|
8
|
+
|
|
9
|
+
export const appConfig: ApplicationConfig = {
|
|
10
|
+
providers: [
|
|
11
|
+
provideBrowserGlobalErrorListeners(),
|
|
12
|
+
provideZonelessChangeDetection(),
|
|
13
|
+
provideRouter(routes),
|
|
14
|
+
provideHttpClient(withFetch()),
|
|
15
|
+
provideTranslateService({
|
|
16
|
+
loader: provideTranslateHttpLoader({prefix:'./i18n/', suffix:'.json'}),
|
|
17
|
+
fallbackLang: 'en'
|
|
18
|
+
})
|
|
19
|
+
]
|
|
20
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<div class="app-layout" [class.sidebar-collapsed]="!sidebarOpen()">
|
|
2
|
+
<!-- Sidebar -->
|
|
3
|
+
<aside class="sidebar">
|
|
4
|
+
<div class="sidebar-header">
|
|
5
|
+
<h1 class="logo">SDGA</h1>
|
|
6
|
+
<p class="tagline">{{ 'app.tagline' | translate }}</p>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<nav class="sidebar-nav">
|
|
10
|
+
@for (group of menuItems; track group.groupKey) {
|
|
11
|
+
<div class="nav-group">
|
|
12
|
+
<h3 class="nav-group-title">{{ group.groupKey | translate }}</h3>
|
|
13
|
+
<ul class="nav-list">
|
|
14
|
+
@for (item of group.items; track item.id) {
|
|
15
|
+
<li
|
|
16
|
+
class="nav-item"
|
|
17
|
+
[class.active]="router.url === item.route"
|
|
18
|
+
(click)="navigateTo(item.route)"
|
|
19
|
+
>
|
|
20
|
+
<span class="nav-icon">{{ item.icon }}</span>
|
|
21
|
+
<span class="nav-label">{{ item.labelKey | translate }}</span>
|
|
22
|
+
</li>
|
|
23
|
+
}
|
|
24
|
+
</ul>
|
|
25
|
+
</div>
|
|
26
|
+
}
|
|
27
|
+
</nav>
|
|
28
|
+
|
|
29
|
+
<div class="sidebar-footer">
|
|
30
|
+
<p class="version">{{ 'app.version' | translate }}</p>
|
|
31
|
+
</div>
|
|
32
|
+
</aside>
|
|
33
|
+
|
|
34
|
+
<!-- Main Content -->
|
|
35
|
+
<main class="main-content">
|
|
36
|
+
<header class="top-bar">
|
|
37
|
+
<button class="menu-toggle" (click)="toggleSidebar()" [attr.aria-label]="'common.toggle_menu' | translate">
|
|
38
|
+
<span class="hamburger">☰</span>
|
|
39
|
+
</button>
|
|
40
|
+
<h2 class="page-title">{{ 'app.title' | translate }}</h2>
|
|
41
|
+
<div class="top-bar-actions">
|
|
42
|
+
<button class="btn btn-sm btn-outline-primary" (click)="toggleLanguage()" [attr.aria-label]="'common.toggle_language' | translate">
|
|
43
|
+
{{ 'common.toggle_language' | translate }}
|
|
44
|
+
</button>
|
|
45
|
+
</div>
|
|
46
|
+
</header>
|
|
47
|
+
|
|
48
|
+
<div class="content-area">
|
|
49
|
+
<router-outlet />
|
|
50
|
+
</div>
|
|
51
|
+
</main>
|
|
52
|
+
</div>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Routes } from '@angular/router';
|
|
2
|
+
|
|
3
|
+
export const routes: Routes = [
|
|
4
|
+
{
|
|
5
|
+
path: '',
|
|
6
|
+
redirectTo: 'home',
|
|
7
|
+
pathMatch: 'full'
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
path: 'home',
|
|
11
|
+
loadComponent: () => import('./views/home/home.component').then(m => m.HomeComponent)
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
path: 'alerts',
|
|
15
|
+
loadComponent: () => import('./views/alerts/alerts.component').then(m => m.AlertsComponent)
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
path: 'buttons',
|
|
19
|
+
loadComponent: () => import('./views/buttons/buttons.component').then(m => m.ButtonsComponent)
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
path: 'cards',
|
|
23
|
+
loadComponent: () => import('./views/cards/cards.component').then(m => m.CardsComponent)
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
path: 'forms',
|
|
27
|
+
loadComponent: () => import('./views/forms/forms.component').then(m => m.FormsComponent)
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
path: 'tables',
|
|
31
|
+
loadComponent: () => import('./views/tables/tables.component').then(m => m.TablesComponent)
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
path: 'toasts',
|
|
35
|
+
loadComponent: () => import('./views/toasts/toasts.component').then(m => m.ToastsComponent)
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
path: 'bootstrap',
|
|
39
|
+
loadComponent: () => import('./views/bootstrap/bootstrap.component').then(m => m.BootstrapComponent)
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
path: 'links',
|
|
43
|
+
loadComponent: () => import('./views/links/links.component').then(m => m.LinksComponent)
|
|
44
|
+
}
|
|
45
|
+
];
|