sdga-ui 1.0.6 → 1.0.7
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 +4 -4
- package/css/dga-ui.css +4146 -1040
- package/css/dga-ui.css.map +1 -1
- package/demo-angular/package-lock.json +41 -41
- package/demo-angular/package.json +8 -8
- package/demo-angular/public/404.html +35 -0
- package/demo-angular/public/i18n/ar.json +47 -0
- package/demo-angular/public/i18n/en.json +47 -0
- package/demo-angular/src/app/app.routes.ts +12 -4
- package/demo-angular/src/app/app.ts +8 -2
- package/demo-angular/src/app/views/alerts/alerts.component.html +10 -10
- package/demo-angular/src/app/views/alerts/alerts.component.ts +10 -10
- package/demo-angular/src/app/views/buttons/buttons.component.html +23 -23
- package/demo-angular/src/app/views/buttons/buttons.component.ts +14 -14
- package/demo-angular/src/app/views/cards/cards.component.html +6 -6
- package/demo-angular/src/app/views/cards/cards.component.ts +10 -10
- package/demo-angular/src/app/views/contexts/contexts.component.html +204 -0
- package/demo-angular/src/app/views/contexts/contexts.component.ts +10 -0
- package/demo-angular/src/app/views/footer/footer.html +282 -0
- package/demo-angular/src/app/views/footer/footer.scss +0 -0
- package/demo-angular/src/app/views/footer/footer.spec.ts +23 -0
- package/demo-angular/src/app/views/footer/footer.ts +142 -0
- package/demo-angular/src/app/views/header/header.html +1 -0
- package/demo-angular/src/app/views/header/header.scss +0 -0
- package/demo-angular/src/app/views/header/header.spec.ts +23 -0
- package/demo-angular/src/app/views/header/header.ts +11 -0
- package/demo-angular/src/app/views/home/home.component.html +0 -5
- package/demo-angular/src/app/views/links/links.component.html +2 -2
- package/demo-angular/src/app/views/toasts/toasts.component.html +7 -7
- package/demo-angular/src/app/views/toasts/toasts.component.ts +7 -7
- package/demo-angular/src/index.html +15 -1
- package/package.json +2 -2
- package/sdga-ui/README.md +45 -0
- package/sdga-ui/content/docs/components/alerts.mdx +475 -0
- package/sdga-ui/content/docs/index.mdx +239 -0
- package/sdga-ui/next.config.mjs +10 -0
- package/sdga-ui/package-lock.json +5851 -0
- package/sdga-ui/package.json +32 -0
- package/sdga-ui/postcss.config.mjs +5 -0
- package/sdga-ui/source.config.ts +27 -0
- package/sdga-ui/src/app/(home)/layout.tsx +6 -0
- package/sdga-ui/src/app/(home)/page.tsx +202 -0
- package/sdga-ui/src/app/api/search/route.ts +7 -0
- package/sdga-ui/src/app/docs/[[...slug]]/page.tsx +54 -0
- package/sdga-ui/src/app/docs/layout.tsx +11 -0
- package/sdga-ui/src/app/global.css +3 -0
- package/sdga-ui/src/app/layout.tsx +25 -0
- package/sdga-ui/src/app/llms-full.txt/route.ts +10 -0
- package/sdga-ui/src/app/og/docs/[...slug]/route.tsx +34 -0
- package/sdga-ui/src/app/sdga-scoped.css +7 -0
- package/sdga-ui/src/components/sdga-preview.tsx +105 -0
- package/sdga-ui/src/lib/layout.shared.tsx +9 -0
- package/sdga-ui/src/lib/source.ts +27 -0
- package/sdga-ui/src/mdx-components.tsx +9 -0
- package/sdga-ui/tsconfig.json +46 -0
- package/theme/_variables.scss +7 -5
- package/theme/components/_buttons.scss +105 -0
- package/theme/config/_base.scss +10 -0
- package/theme/config/_contexts.scss +471 -0
- package/theme/customizations/_alerts.scss +100 -112
- package/theme/customizations/_badges.scss +15 -0
- package/theme/customizations/_buttons.scss +288 -146
- package/theme/customizations/_cards.scss +52 -0
- package/theme/customizations/_contexts.scss +432 -0
- package/theme/customizations/_footer.scss +83 -0
- package/theme/customizations/_links.scss +55 -39
- package/theme/customizations/_toasts.scss +79 -100
- package/theme/dga-ui.scss +2 -0
- package/demo-angular/src/app/views/bootstrap/bootstrap.component.html +0 -14
- package/demo-angular/src/app/views/bootstrap/bootstrap.component.scss +0 -91
- package/demo-angular/src/app/views/bootstrap/bootstrap.component.ts +0 -23
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
"name": "demo-angular",
|
|
9
9
|
"version": "0.0.0",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@angular/common": "^21.0.
|
|
12
|
-
"@angular/compiler": "^21.0.
|
|
13
|
-
"@angular/core": "^21.0.
|
|
14
|
-
"@angular/forms": "^21.0.
|
|
15
|
-
"@angular/platform-browser": "^21.0.
|
|
16
|
-
"@angular/router": "^21.0.
|
|
11
|
+
"@angular/common": "^21.0.2",
|
|
12
|
+
"@angular/compiler": "^21.0.2",
|
|
13
|
+
"@angular/core": "^21.0.2",
|
|
14
|
+
"@angular/forms": "^21.0.2",
|
|
15
|
+
"@angular/platform-browser": "^21.0.2",
|
|
16
|
+
"@angular/router": "^21.0.2",
|
|
17
17
|
"@ngx-translate/core": "^17.0.0",
|
|
18
18
|
"@ngx-translate/http-loader": "^17.0.0",
|
|
19
19
|
"bootstrap": "^5.3.8",
|
|
20
20
|
"highlight.js": "^11.11.1",
|
|
21
21
|
"rxjs": "~7.8.0",
|
|
22
|
-
"sdga-ui": "
|
|
22
|
+
"sdga-ui": "^1.0.6",
|
|
23
23
|
"tslib": "^2.3.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"..": {
|
|
36
36
|
"name": "sdga-ui",
|
|
37
|
-
"version": "1.0.
|
|
37
|
+
"version": "1.0.6",
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"autoprefixer": "^10.4.19",
|
|
@@ -477,9 +477,9 @@
|
|
|
477
477
|
}
|
|
478
478
|
},
|
|
479
479
|
"node_modules/@angular/common": {
|
|
480
|
-
"version": "21.0.
|
|
481
|
-
"resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.
|
|
482
|
-
"integrity": "sha512-
|
|
480
|
+
"version": "21.0.2",
|
|
481
|
+
"resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.2.tgz",
|
|
482
|
+
"integrity": "sha512-dOi7w0dsUCJ5ZFnXD2eR/8LWy9/XAzXuo9zU6zu7qP4vimjTQRs11IawnuC+jaAQtCFiySshzEPPsuAw9bPkOA==",
|
|
483
483
|
"license": "MIT",
|
|
484
484
|
"peer": true,
|
|
485
485
|
"dependencies": {
|
|
@@ -489,14 +489,14 @@
|
|
|
489
489
|
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
|
|
490
490
|
},
|
|
491
491
|
"peerDependencies": {
|
|
492
|
-
"@angular/core": "21.0.
|
|
492
|
+
"@angular/core": "21.0.2",
|
|
493
493
|
"rxjs": "^6.5.3 || ^7.4.0"
|
|
494
494
|
}
|
|
495
495
|
},
|
|
496
496
|
"node_modules/@angular/compiler": {
|
|
497
|
-
"version": "21.0.
|
|
498
|
-
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.0.
|
|
499
|
-
"integrity": "sha512-
|
|
497
|
+
"version": "21.0.2",
|
|
498
|
+
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.0.2.tgz",
|
|
499
|
+
"integrity": "sha512-Rs69yqT1M+l0DqAAZcGDt2TntKAPyldEViq3GQHbkM1W4f/hoRgBRsE6StxvP6wszW6VVHH3uQQdyeZV8Z4rpw==",
|
|
500
500
|
"license": "MIT",
|
|
501
501
|
"peer": true,
|
|
502
502
|
"dependencies": {
|
|
@@ -507,9 +507,9 @@
|
|
|
507
507
|
}
|
|
508
508
|
},
|
|
509
509
|
"node_modules/@angular/compiler-cli": {
|
|
510
|
-
"version": "21.0.
|
|
511
|
-
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.0.
|
|
512
|
-
"integrity": "sha512
|
|
510
|
+
"version": "21.0.2",
|
|
511
|
+
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.0.2.tgz",
|
|
512
|
+
"integrity": "sha512-+6lyvDV0rY1qbc9+rzFCBZDGCfJU0ah3p+4Tu0YYgKRbpbwvqj/O4cG1mLknEuQ2G61Y/tTKnTa4ng1XNtqVyw==",
|
|
513
513
|
"dev": true,
|
|
514
514
|
"license": "MIT",
|
|
515
515
|
"peer": true,
|
|
@@ -531,7 +531,7 @@
|
|
|
531
531
|
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
|
|
532
532
|
},
|
|
533
533
|
"peerDependencies": {
|
|
534
|
-
"@angular/compiler": "21.0.
|
|
534
|
+
"@angular/compiler": "21.0.2",
|
|
535
535
|
"typescript": ">=5.9 <6.0"
|
|
536
536
|
},
|
|
537
537
|
"peerDependenciesMeta": {
|
|
@@ -541,9 +541,9 @@
|
|
|
541
541
|
}
|
|
542
542
|
},
|
|
543
543
|
"node_modules/@angular/core": {
|
|
544
|
-
"version": "21.0.
|
|
545
|
-
"resolved": "https://registry.npmjs.org/@angular/core/-/core-21.0.
|
|
546
|
-
"integrity": "sha512-
|
|
544
|
+
"version": "21.0.2",
|
|
545
|
+
"resolved": "https://registry.npmjs.org/@angular/core/-/core-21.0.2.tgz",
|
|
546
|
+
"integrity": "sha512-jj2lYmwMKYY7tmZ7ml8rXJRKwkVMJamFIf6VQuIlSFK79Pmn6AeUhZwDlrAmK7sY9kakEKUmslSg0XLL3bfiyw==",
|
|
547
547
|
"license": "MIT",
|
|
548
548
|
"peer": true,
|
|
549
549
|
"dependencies": {
|
|
@@ -553,7 +553,7 @@
|
|
|
553
553
|
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
|
|
554
554
|
},
|
|
555
555
|
"peerDependencies": {
|
|
556
|
-
"@angular/compiler": "21.0.
|
|
556
|
+
"@angular/compiler": "21.0.2",
|
|
557
557
|
"rxjs": "^6.5.3 || ^7.4.0",
|
|
558
558
|
"zone.js": "~0.15.0 || ~0.16.0"
|
|
559
559
|
},
|
|
@@ -567,9 +567,9 @@
|
|
|
567
567
|
}
|
|
568
568
|
},
|
|
569
569
|
"node_modules/@angular/forms": {
|
|
570
|
-
"version": "21.0.
|
|
571
|
-
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.0.
|
|
572
|
-
"integrity": "sha512-
|
|
570
|
+
"version": "21.0.2",
|
|
571
|
+
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.0.2.tgz",
|
|
572
|
+
"integrity": "sha512-QZHGKmYlyiQMXyAcuWgQ93kTi9OvoD9tzLX+iQt8O3O8sJT1kEKiANmKR6jKihTG1W3Ckmti804kcbpjCeoGyg==",
|
|
573
573
|
"license": "MIT",
|
|
574
574
|
"dependencies": {
|
|
575
575
|
"tslib": "^2.3.0"
|
|
@@ -578,17 +578,17 @@
|
|
|
578
578
|
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
|
|
579
579
|
},
|
|
580
580
|
"peerDependencies": {
|
|
581
|
-
"@angular/common": "21.0.
|
|
582
|
-
"@angular/core": "21.0.
|
|
583
|
-
"@angular/platform-browser": "21.0.
|
|
581
|
+
"@angular/common": "21.0.2",
|
|
582
|
+
"@angular/core": "21.0.2",
|
|
583
|
+
"@angular/platform-browser": "21.0.2",
|
|
584
584
|
"@standard-schema/spec": "^1.0.0",
|
|
585
585
|
"rxjs": "^6.5.3 || ^7.4.0"
|
|
586
586
|
}
|
|
587
587
|
},
|
|
588
588
|
"node_modules/@angular/platform-browser": {
|
|
589
|
-
"version": "21.0.
|
|
590
|
-
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.0.
|
|
591
|
-
"integrity": "sha512-
|
|
589
|
+
"version": "21.0.2",
|
|
590
|
+
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.0.2.tgz",
|
|
591
|
+
"integrity": "sha512-Qygk215mRK2S1tvD6B5dy3ekMidGmmLktxr5i01YC8synHYcex7HK18JcWuCrFbY6NbCnHsMD3bYi0mwhag+Sg==",
|
|
592
592
|
"license": "MIT",
|
|
593
593
|
"peer": true,
|
|
594
594
|
"dependencies": {
|
|
@@ -598,9 +598,9 @@
|
|
|
598
598
|
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
|
|
599
599
|
},
|
|
600
600
|
"peerDependencies": {
|
|
601
|
-
"@angular/animations": "21.0.
|
|
602
|
-
"@angular/common": "21.0.
|
|
603
|
-
"@angular/core": "21.0.
|
|
601
|
+
"@angular/animations": "21.0.2",
|
|
602
|
+
"@angular/common": "21.0.2",
|
|
603
|
+
"@angular/core": "21.0.2"
|
|
604
604
|
},
|
|
605
605
|
"peerDependenciesMeta": {
|
|
606
606
|
"@angular/animations": {
|
|
@@ -609,9 +609,9 @@
|
|
|
609
609
|
}
|
|
610
610
|
},
|
|
611
611
|
"node_modules/@angular/router": {
|
|
612
|
-
"version": "21.0.
|
|
613
|
-
"resolved": "https://registry.npmjs.org/@angular/router/-/router-21.0.
|
|
614
|
-
"integrity": "sha512-
|
|
612
|
+
"version": "21.0.2",
|
|
613
|
+
"resolved": "https://registry.npmjs.org/@angular/router/-/router-21.0.2.tgz",
|
|
614
|
+
"integrity": "sha512-fm02ICYhqY+0xO+Skn7UsMRepgbh6vermKRLf2mVZYZl6bNWvq0WiolB2y34ntOkh3ZsbRbmMNhL8auLMU8mPA==",
|
|
615
615
|
"license": "MIT",
|
|
616
616
|
"dependencies": {
|
|
617
617
|
"tslib": "^2.3.0"
|
|
@@ -620,9 +620,9 @@
|
|
|
620
620
|
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
|
|
621
621
|
},
|
|
622
622
|
"peerDependencies": {
|
|
623
|
-
"@angular/common": "21.0.
|
|
624
|
-
"@angular/core": "21.0.
|
|
625
|
-
"@angular/platform-browser": "21.0.
|
|
623
|
+
"@angular/common": "21.0.2",
|
|
624
|
+
"@angular/core": "21.0.2",
|
|
625
|
+
"@angular/platform-browser": "21.0.2",
|
|
626
626
|
"rxjs": "^6.5.3 || ^7.4.0"
|
|
627
627
|
}
|
|
628
628
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "demo-angular",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"ng": "ng",
|
|
6
6
|
"start": "npm run use:local && ng serve -o",
|
|
@@ -27,18 +27,18 @@
|
|
|
27
27
|
"private": true,
|
|
28
28
|
"packageManager": "npm@11.6.3",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@angular/common": "^21.0.
|
|
31
|
-
"@angular/compiler": "^21.0.
|
|
32
|
-
"@angular/core": "^21.0.
|
|
33
|
-
"@angular/forms": "^21.0.
|
|
34
|
-
"@angular/platform-browser": "^21.0.
|
|
35
|
-
"@angular/router": "^21.0.
|
|
30
|
+
"@angular/common": "^21.0.2",
|
|
31
|
+
"@angular/compiler": "^21.0.2",
|
|
32
|
+
"@angular/core": "^21.0.2",
|
|
33
|
+
"@angular/forms": "^21.0.2",
|
|
34
|
+
"@angular/platform-browser": "^21.0.2",
|
|
35
|
+
"@angular/router": "^21.0.2",
|
|
36
36
|
"@ngx-translate/core": "^17.0.0",
|
|
37
37
|
"@ngx-translate/http-loader": "^17.0.0",
|
|
38
38
|
"bootstrap": "^5.3.8",
|
|
39
39
|
"highlight.js": "^11.11.1",
|
|
40
40
|
"rxjs": "~7.8.0",
|
|
41
|
-
"sdga-ui": "^1.0.
|
|
41
|
+
"sdga-ui": "^1.0.7",
|
|
42
42
|
"tslib": "^2.3.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>Redirecting...</title>
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
+
<meta http-equiv="refresh" content="0; url=/dga-ui/">
|
|
8
|
+
<script>
|
|
9
|
+
// GitHub Pages SPA fallback
|
|
10
|
+
// For project pages, the first path segment is the repo name.
|
|
11
|
+
(function() {
|
|
12
|
+
var segmentCount = 1; // keep '/dga-ui'
|
|
13
|
+
var l = window.location;
|
|
14
|
+
var path = l.pathname.split('/').slice(0, 1 + segmentCount).join('/') + '/';
|
|
15
|
+
var rest = l.pathname.split('/').slice(1 + segmentCount).join('/');
|
|
16
|
+
var query = l.search || '';
|
|
17
|
+
var hash = l.hash || '';
|
|
18
|
+
// Persist the intended route for index.html to restore
|
|
19
|
+
var data = {
|
|
20
|
+
path: path + rest.replace(/\/?$/, ''),
|
|
21
|
+
query: query,
|
|
22
|
+
hash: hash
|
|
23
|
+
};
|
|
24
|
+
try {
|
|
25
|
+
sessionStorage.setItem('ghspa-redirect', JSON.stringify(data));
|
|
26
|
+
} catch (e) {}
|
|
27
|
+
// Navigate to the app root so the SPA can boot
|
|
28
|
+
l.replace(path);
|
|
29
|
+
})();
|
|
30
|
+
</script>
|
|
31
|
+
</head>
|
|
32
|
+
<body>
|
|
33
|
+
Redirecting...
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
"nav": {
|
|
8
8
|
"getting_started": "البدء",
|
|
9
9
|
"components": "المكونات",
|
|
10
|
+
"layout": "التخطيط",
|
|
10
11
|
"home": "الرئيسية",
|
|
11
12
|
"alerts": "التنبيهات",
|
|
12
13
|
"buttons": "الأزرار",
|
|
@@ -15,6 +16,9 @@
|
|
|
15
16
|
"tables": "الجداول",
|
|
16
17
|
"toasts": "الإشعارات",
|
|
17
18
|
"links": "الروابط",
|
|
19
|
+
"header": "الرأس",
|
|
20
|
+
"footer": "التذييل",
|
|
21
|
+
"contexts": "السياقات",
|
|
18
22
|
"utilities": "الأدوات",
|
|
19
23
|
"all_components": "جميع المكونات"
|
|
20
24
|
},
|
|
@@ -230,6 +234,49 @@
|
|
|
230
234
|
"bold_link": "نمط رابط عريض",
|
|
231
235
|
"decorated_link": "رابط مع تسطير متحرك"
|
|
232
236
|
},
|
|
237
|
+
"header": {
|
|
238
|
+
"title": "الرأس",
|
|
239
|
+
"subtitle": "مكون رأس متجاوب مع التنقل والعلامة التجارية",
|
|
240
|
+
"section_default": "الرأس الافتراضي",
|
|
241
|
+
"section_variants": "أنواع الرأس"
|
|
242
|
+
},
|
|
243
|
+
"footer": {
|
|
244
|
+
"title": "التذييل",
|
|
245
|
+
"subtitle": "مكون تذييل متجاوب مع الروابط ووسائل التواصل الاجتماعي",
|
|
246
|
+
"section_primary": "التذييل الرئيسي (خلفية on-primary)",
|
|
247
|
+
"section_secondary": "التذييل الثانوي (خلفية on-secondary)",
|
|
248
|
+
"group_label": "عنوان المجموعة",
|
|
249
|
+
"footer_link": "رابط التذييل",
|
|
250
|
+
"social_media": "وسائل التواصل الاجتماعي",
|
|
251
|
+
"accessibility_tools": "أدوات إمكانية الوصول",
|
|
252
|
+
"all_rights_reserved": "جميع الحقوق محفوظة للهيئة الرقمية للحكومة © 2024",
|
|
253
|
+
"terms_conditions": "الشروط والأحكام",
|
|
254
|
+
"privacy_policy": "سياسة الخصوصية"
|
|
255
|
+
},
|
|
256
|
+
"contexts": {
|
|
257
|
+
"title": "السياقات",
|
|
258
|
+
"subtitle": "نظام تخصيص حسب السياق لألوان المكونات التكيفية",
|
|
259
|
+
"section_intro": "مقدمة",
|
|
260
|
+
"intro_text": "يقوم نظام السياق بتكييف ألوان المكونات تلقائيًا بناءً على خلفية العنصر الأب. قم بلف المكونات في فئات السياق لضمان التباين المناسب وسهولة الوصول.",
|
|
261
|
+
"section_primary": "السياق الرئيسي (on-primary)",
|
|
262
|
+
"section_dark": "السياق الداكن (on-dark)",
|
|
263
|
+
"section_danger": "سياق الخطر (on-danger)",
|
|
264
|
+
"section_success": "سياق النجاح (on-success)",
|
|
265
|
+
"section_warning": "سياق التحذير (on-warning)",
|
|
266
|
+
"section_light": "السياق الفاتح (on-light)",
|
|
267
|
+
"section_neutral": "السياق المحايد (on-neutral)",
|
|
268
|
+
"section_info": "سياق المعلومات (on-info)",
|
|
269
|
+
"section_lavender": "سياق اللافندر (on-lavender)",
|
|
270
|
+
"section_secondary": "السياق الثانوي (on-secondary)",
|
|
271
|
+
"demo_heading": "عرض توضيحي للسياق",
|
|
272
|
+
"demo_text": "يتكيف هذا المحتوى تلقائيًا مع ألوانه بناءً على غلاف السياق.",
|
|
273
|
+
"button_primary": "زر رئيسي",
|
|
274
|
+
"button_secondary": "زر ثانوي",
|
|
275
|
+
"button_outline": "زر محدد",
|
|
276
|
+
"link_text": "هذا رابط",
|
|
277
|
+
"link_primary": "رابط رئيسي",
|
|
278
|
+
"link_neutral": "رابط محايد"
|
|
279
|
+
},
|
|
233
280
|
"code": {
|
|
234
281
|
"show": "إظهار الكود",
|
|
235
282
|
"hide": "إخفاء الكود",
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
"nav": {
|
|
8
8
|
"getting_started": "Getting Started",
|
|
9
9
|
"components": "Components",
|
|
10
|
+
"layout": "Layout",
|
|
10
11
|
"home": "Home",
|
|
11
12
|
"alerts": "Alerts",
|
|
12
13
|
"buttons": "Buttons",
|
|
@@ -15,6 +16,9 @@
|
|
|
15
16
|
"tables": "Tables",
|
|
16
17
|
"toasts": "Toasts",
|
|
17
18
|
"links": "Links",
|
|
19
|
+
"header": "Header",
|
|
20
|
+
"footer": "Footer",
|
|
21
|
+
"contexts": "Contexts",
|
|
18
22
|
"utilities": "Utilities",
|
|
19
23
|
"all_components": "All Components"
|
|
20
24
|
},
|
|
@@ -230,6 +234,49 @@
|
|
|
230
234
|
"bold_link": "Bold link style",
|
|
231
235
|
"decorated_link": "Animated underline link"
|
|
232
236
|
},
|
|
237
|
+
"header": {
|
|
238
|
+
"title": "Header",
|
|
239
|
+
"subtitle": "Responsive header component with navigation and branding",
|
|
240
|
+
"section_default": "Default Header",
|
|
241
|
+
"section_variants": "Header Variants"
|
|
242
|
+
},
|
|
243
|
+
"footer": {
|
|
244
|
+
"title": "Footer",
|
|
245
|
+
"subtitle": "Responsive footer component with links and social media",
|
|
246
|
+
"section_primary": "Primary Footer (on-primary background)",
|
|
247
|
+
"section_secondary": "Secondary Footer (on-secondary background)",
|
|
248
|
+
"group_label": "Group Label",
|
|
249
|
+
"footer_link": "Footer Link",
|
|
250
|
+
"social_media": "Social Media",
|
|
251
|
+
"accessibility_tools": "Accessibility Tools",
|
|
252
|
+
"all_rights_reserved": "All Rights Reserved For Digital Government Authority © 2024",
|
|
253
|
+
"terms_conditions": "Terms and Conditions",
|
|
254
|
+
"privacy_policy": "Privacy Policy"
|
|
255
|
+
},
|
|
256
|
+
"contexts": {
|
|
257
|
+
"title": "Contexts",
|
|
258
|
+
"subtitle": "Context-aware theming system for adaptive component colors",
|
|
259
|
+
"section_intro": "Introduction",
|
|
260
|
+
"intro_text": "The context system automatically adapts component colors based on their parent background. Wrap components in context classes to ensure proper contrast and accessibility.",
|
|
261
|
+
"section_primary": "Primary Context (on-primary)",
|
|
262
|
+
"section_dark": "Dark Context (on-dark)",
|
|
263
|
+
"section_danger": "Danger Context (on-danger)",
|
|
264
|
+
"section_success": "Success Context (on-success)",
|
|
265
|
+
"section_warning": "Warning Context (on-warning)",
|
|
266
|
+
"section_light": "Light Context (on-light)",
|
|
267
|
+
"section_neutral": "Neutral Context (on-neutral)",
|
|
268
|
+
"section_info": "Info Context (on-info)",
|
|
269
|
+
"section_lavender": "Lavender Context (on-lavender)",
|
|
270
|
+
"section_secondary": "Secondary Context (on-secondary)",
|
|
271
|
+
"demo_heading": "Context Demo",
|
|
272
|
+
"demo_text": "This content automatically adapts its colors based on the context wrapper.",
|
|
273
|
+
"button_primary": "Primary Button",
|
|
274
|
+
"button_secondary": "Secondary Button",
|
|
275
|
+
"button_outline": "Outline Button",
|
|
276
|
+
"link_text": "This is a link",
|
|
277
|
+
"link_primary": "Primary Link",
|
|
278
|
+
"link_neutral": "Neutral Link"
|
|
279
|
+
},
|
|
233
280
|
"code": {
|
|
234
281
|
"show": "Show Code",
|
|
235
282
|
"hide": "Hide Code",
|
|
@@ -14,6 +14,10 @@ export const routes: Routes = [
|
|
|
14
14
|
path: 'alerts',
|
|
15
15
|
loadComponent: () => import('./views/alerts/alerts.component').then(m => m.AlertsComponent)
|
|
16
16
|
},
|
|
17
|
+
{
|
|
18
|
+
path: 'contexts',
|
|
19
|
+
loadComponent: () => import('./views/contexts/contexts.component').then(m => m.ContextsComponent)
|
|
20
|
+
},
|
|
17
21
|
{
|
|
18
22
|
path: 'buttons',
|
|
19
23
|
loadComponent: () => import('./views/buttons/buttons.component').then(m => m.ButtonsComponent)
|
|
@@ -34,12 +38,16 @@ export const routes: Routes = [
|
|
|
34
38
|
path: 'toasts',
|
|
35
39
|
loadComponent: () => import('./views/toasts/toasts.component').then(m => m.ToastsComponent)
|
|
36
40
|
},
|
|
37
|
-
{
|
|
38
|
-
path: 'bootstrap',
|
|
39
|
-
loadComponent: () => import('./views/bootstrap/bootstrap.component').then(m => m.BootstrapComponent)
|
|
40
|
-
},
|
|
41
41
|
{
|
|
42
42
|
path: 'links',
|
|
43
43
|
loadComponent: () => import('./views/links/links.component').then(m => m.LinksComponent)
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
path: 'header',
|
|
47
|
+
loadComponent: () => import('./views/header/header').then(m => m.Header)
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
path: 'footer',
|
|
51
|
+
loadComponent: () => import('./views/footer/footer').then(m => m.Footer)
|
|
44
52
|
}
|
|
45
53
|
];
|
|
@@ -40,18 +40,24 @@ export class App {
|
|
|
40
40
|
{ id: 'home', labelKey: 'nav.home', icon: '🏠', route: '/home' }
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
|
+
{
|
|
44
|
+
groupKey: 'nav.layout',
|
|
45
|
+
items: [
|
|
46
|
+
{ id: 'header', labelKey: 'nav.header', icon: '📋', route: '/header' },
|
|
47
|
+
{ id: 'footer', labelKey: 'nav.footer', icon: '📄', route: '/footer' }
|
|
48
|
+
]
|
|
49
|
+
},
|
|
43
50
|
{
|
|
44
51
|
groupKey: 'nav.components',
|
|
45
52
|
items: [
|
|
46
53
|
{ id: 'alerts', labelKey: 'nav.alerts', icon: '⚠️', route: '/alerts' },
|
|
54
|
+
{ id: 'contexts', labelKey: 'nav.contexts', icon: '🧩', route: '/contexts' },
|
|
47
55
|
{ id: 'buttons', labelKey: 'nav.buttons', icon: '🔘', route: '/buttons' },
|
|
48
56
|
{ id: 'cards', labelKey: 'nav.cards', icon: '🃏', route: '/cards' },
|
|
49
57
|
{ id: 'forms', labelKey: 'nav.forms', icon: '📝', route: '/forms' },
|
|
50
58
|
{ id: 'tables', labelKey: 'nav.tables', icon: '📊', route: '/tables' },
|
|
51
59
|
{ id: 'toasts', labelKey: 'nav.toasts', icon: '🔔', route: '/toasts' },
|
|
52
60
|
{ id: 'links', labelKey: 'nav.links', icon: '🔗', route: '/links' },
|
|
53
|
-
{ id: 'utilities', labelKey: 'nav.utilities', icon: '🛠️', route: '/utilities' },
|
|
54
|
-
{ id: 'bootstrap', labelKey: 'nav.all_components', icon: '🎨', route: '/bootstrap' }
|
|
55
61
|
]
|
|
56
62
|
}
|
|
57
63
|
];
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<section>
|
|
9
9
|
<h3 class="h5 mb-3">Standard Alerts</h3>
|
|
10
10
|
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
|
11
|
-
<i class="
|
|
11
|
+
<i class="bi bi-check alert-icon"></i>
|
|
12
12
|
<div>
|
|
13
13
|
<strong class="alert-title">{{ 'alerts.success' | translate }}</strong> {{ 'alerts.success_text' | translate }}
|
|
14
14
|
<div class="alert-footer">
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<app-code-example [htmlCode]="successAlertCode"></app-code-example>
|
|
23
23
|
|
|
24
24
|
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
|
25
|
-
<i class="
|
|
25
|
+
<i class="bi bi-exclamation-circle alert-icon"></i>
|
|
26
26
|
<div>
|
|
27
27
|
<strong class="alert-title">{{ 'alerts.danger' | translate }}</strong> {{ 'alerts.danger_text' | translate }}
|
|
28
28
|
<div class="alert-footer">
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
<app-code-example [htmlCode]="dangerAlertCode"></app-code-example>
|
|
37
37
|
|
|
38
38
|
<div class="alert alert-warning alert-dismissible fade show" role="alert">
|
|
39
|
-
<i class="
|
|
39
|
+
<i class="bi bi-exclamation-triangle alert-icon"></i>
|
|
40
40
|
<div>
|
|
41
41
|
<strong class="alert-title">{{ 'alerts.warning' | translate }}</strong> {{ 'alerts.warning_text' | translate }}
|
|
42
42
|
<div class="alert-footer">
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<app-code-example [htmlCode]="warningAlertCode"></app-code-example>
|
|
51
51
|
|
|
52
52
|
<div class="alert alert-info alert-dismissible fade show" role="alert">
|
|
53
|
-
<i class="
|
|
53
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
54
54
|
<div>
|
|
55
55
|
<strong class="alert-title">{{ 'alerts.info' | translate }}</strong> {{ 'alerts.info_text' | translate }}
|
|
56
56
|
<div class="alert-footer">
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
<app-code-example [htmlCode]="infoAlertCode"></app-code-example>
|
|
65
65
|
|
|
66
66
|
<div class="alert alert-neutral alert-dismissible fade show" role="alert">
|
|
67
|
-
<i class="
|
|
67
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
68
68
|
<div>
|
|
69
69
|
<strong class="alert-title">{{ 'alerts.neutral' | translate }}</strong> {{ 'alerts.neutral_text' | translate }}
|
|
70
70
|
<div class="alert-footer">
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
<section>
|
|
82
82
|
<h3 class="h5 mb-3">Side-bordered Alerts</h3>
|
|
83
83
|
<div class="alert alert-side alert-success alert-dismissible fade show" role="alert">
|
|
84
|
-
<i class="
|
|
84
|
+
<i class="bi bi-check alert-icon"></i>
|
|
85
85
|
<div>
|
|
86
86
|
<strong class="alert-title">{{ 'alerts.success' | translate }}</strong> {{ 'alerts.success_text' | translate }}
|
|
87
87
|
<div class="alert-footer">
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<app-code-example [htmlCode]="sideSuccessAlertCode"></app-code-example>
|
|
96
96
|
|
|
97
97
|
<div class="alert alert-side alert-danger alert-dismissible fade show" role="alert">
|
|
98
|
-
<i class="
|
|
98
|
+
<i class="bi bi-exclamation-circle alert-icon"></i>
|
|
99
99
|
<div>
|
|
100
100
|
<strong class="alert-title">{{ 'alerts.danger' | translate }}</strong> {{ 'alerts.danger_text' | translate }}
|
|
101
101
|
<div class="alert-footer">
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
<app-code-example [htmlCode]="sideDangerAlertCode"></app-code-example>
|
|
110
110
|
|
|
111
111
|
<div class="alert alert-side alert-warning alert-dismissible fade show" role="alert">
|
|
112
|
-
<i class="
|
|
112
|
+
<i class="bi bi-exclamation-triangle alert-icon"></i>
|
|
113
113
|
<div>
|
|
114
114
|
<strong class="alert-title">{{ 'alerts.warning' | translate }}</strong> {{ 'alerts.warning_text' | translate }}
|
|
115
115
|
<div class="alert-footer">
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
<app-code-example [htmlCode]="sideWarningAlertCode"></app-code-example>
|
|
124
124
|
|
|
125
125
|
<div class="alert alert-side alert-info alert-dismissible fade show" role="alert">
|
|
126
|
-
<i class="
|
|
126
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
127
127
|
<div>
|
|
128
128
|
<strong class="alert-title">{{ 'alerts.info' | translate }}</strong> {{ 'alerts.info_text' | translate }}
|
|
129
129
|
<div class="alert-footer">
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
<app-code-example [htmlCode]="sideInfoAlertCode"></app-code-example>
|
|
138
138
|
|
|
139
139
|
<div class="alert alert-side alert-neutral alert-dismissible fade show" role="alert">
|
|
140
|
-
<i class="
|
|
140
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
141
141
|
<div>
|
|
142
142
|
<strong class="alert-title">{{ 'alerts.neutral' | translate }}</strong> {{ 'alerts.neutral_text' | translate }}
|
|
143
143
|
<div class="alert-footer">
|
|
@@ -12,7 +12,7 @@ import { CodeExampleComponent } from '../../shared/code-example/code-example.com
|
|
|
12
12
|
export class AlertsComponent {
|
|
13
13
|
// Standard Dismissible Alerts
|
|
14
14
|
successAlertCode = `<div class="alert alert-success alert-dismissible fade show" role="alert">
|
|
15
|
-
<i class="
|
|
15
|
+
<i class="bi bi-check alert-icon"></i>
|
|
16
16
|
<div>
|
|
17
17
|
<strong class="alert-title">Success!</strong> Your action completed successfully.
|
|
18
18
|
<div class="alert-footer">
|
|
@@ -24,7 +24,7 @@ export class AlertsComponent {
|
|
|
24
24
|
</div>`;
|
|
25
25
|
|
|
26
26
|
dangerAlertCode = `<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
|
27
|
-
<i class="
|
|
27
|
+
<i class="bi bi-exclamation-circle alert-icon"></i>
|
|
28
28
|
<div>
|
|
29
29
|
<strong class="alert-title">Error!</strong> Something went wrong with your request.
|
|
30
30
|
<div class="alert-footer">
|
|
@@ -36,7 +36,7 @@ export class AlertsComponent {
|
|
|
36
36
|
</div>`;
|
|
37
37
|
|
|
38
38
|
warningAlertCode = `<div class="alert alert-warning alert-dismissible fade show" role="alert">
|
|
39
|
-
<i class="
|
|
39
|
+
<i class="bi bi-exclamation-triangle alert-icon"></i>
|
|
40
40
|
<div>
|
|
41
41
|
<strong class="alert-title">Warning!</strong> Please review before proceeding.
|
|
42
42
|
<div class="alert-footer">
|
|
@@ -48,7 +48,7 @@ export class AlertsComponent {
|
|
|
48
48
|
</div>`;
|
|
49
49
|
|
|
50
50
|
infoAlertCode = `<div class="alert alert-info alert-dismissible fade show" role="alert">
|
|
51
|
-
<i class="
|
|
51
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
52
52
|
<div>
|
|
53
53
|
<strong class="alert-title">Info</strong> Here's some helpful information.
|
|
54
54
|
<div class="alert-footer">
|
|
@@ -60,7 +60,7 @@ export class AlertsComponent {
|
|
|
60
60
|
</div>`;
|
|
61
61
|
|
|
62
62
|
neutralAlertCode = `<div class="alert alert-neutral alert-dismissible fade show" role="alert">
|
|
63
|
-
<i class="
|
|
63
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
64
64
|
<div>
|
|
65
65
|
<strong class="alert-title">Neutral</strong> Standard notification message.
|
|
66
66
|
<div class="alert-footer">
|
|
@@ -73,7 +73,7 @@ export class AlertsComponent {
|
|
|
73
73
|
|
|
74
74
|
// Side-bordered Alerts
|
|
75
75
|
sideSuccessAlertCode = `<div class="alert alert-side alert-success alert-dismissible fade show" role="alert">
|
|
76
|
-
<i class="
|
|
76
|
+
<i class="bi bi-check alert-icon"></i>
|
|
77
77
|
<div>
|
|
78
78
|
<strong class="alert-title">Success!</strong> Your action completed successfully.
|
|
79
79
|
<div class="alert-footer">
|
|
@@ -85,7 +85,7 @@ export class AlertsComponent {
|
|
|
85
85
|
</div>`;
|
|
86
86
|
|
|
87
87
|
sideDangerAlertCode = `<div class="alert alert-side alert-danger alert-dismissible fade show" role="alert">
|
|
88
|
-
<i class="
|
|
88
|
+
<i class="bi bi-exclamation-circle alert-icon"></i>
|
|
89
89
|
<div>
|
|
90
90
|
<strong class="alert-title">Error!</strong> Something went wrong with your request.
|
|
91
91
|
<div class="alert-footer">
|
|
@@ -97,7 +97,7 @@ export class AlertsComponent {
|
|
|
97
97
|
</div>`;
|
|
98
98
|
|
|
99
99
|
sideWarningAlertCode = `<div class="alert alert-side alert-warning alert-dismissible fade show" role="alert">
|
|
100
|
-
<i class="
|
|
100
|
+
<i class="bi bi-exclamation-triangle alert-icon"></i>
|
|
101
101
|
<div>
|
|
102
102
|
<strong class="alert-title">Warning!</strong> Please review before proceeding.
|
|
103
103
|
<div class="alert-footer">
|
|
@@ -109,7 +109,7 @@ export class AlertsComponent {
|
|
|
109
109
|
</div>`;
|
|
110
110
|
|
|
111
111
|
sideInfoAlertCode = `<div class="alert alert-side alert-info alert-dismissible fade show" role="alert">
|
|
112
|
-
<i class="
|
|
112
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
113
113
|
<div>
|
|
114
114
|
<strong class="alert-title">Info</strong> Here's some helpful information.
|
|
115
115
|
<div class="alert-footer">
|
|
@@ -121,7 +121,7 @@ export class AlertsComponent {
|
|
|
121
121
|
</div>`;
|
|
122
122
|
|
|
123
123
|
sideNeutralAlertCode = `<div class="alert alert-side alert-neutral alert-dismissible fade show" role="alert">
|
|
124
|
-
<i class="
|
|
124
|
+
<i class="bi bi-info-circle alert-icon"></i>
|
|
125
125
|
<div>
|
|
126
126
|
<strong class="alert-title">Neutral</strong> Standard notification message.
|
|
127
127
|
<div class="alert-footer">
|