sdga-ui 1.0.5 → 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.
Files changed (79) hide show
  1. package/.github/workflows/deploy.yml +15 -1
  2. package/README.md +16 -24
  3. package/css/dga-ui.css +4146 -1055
  4. package/css/dga-ui.css.map +1 -1
  5. package/demo-angular/README.md +34 -2
  6. package/demo-angular/angular.json +6 -1
  7. package/demo-angular/package-lock.json +191 -50
  8. package/demo-angular/package.json +14 -11
  9. package/demo-angular/public/404.html +35 -0
  10. package/demo-angular/public/i18n/ar.json +50 -0
  11. package/demo-angular/public/i18n/en.json +50 -0
  12. package/demo-angular/src/app/app.routes.ts +12 -4
  13. package/demo-angular/src/app/app.ts +8 -2
  14. package/demo-angular/src/app/views/alerts/alerts.component.html +10 -10
  15. package/demo-angular/src/app/views/alerts/alerts.component.ts +10 -10
  16. package/demo-angular/src/app/views/buttons/buttons.component.html +23 -23
  17. package/demo-angular/src/app/views/buttons/buttons.component.ts +14 -14
  18. package/demo-angular/src/app/views/cards/cards.component.html +6 -6
  19. package/demo-angular/src/app/views/cards/cards.component.ts +10 -10
  20. package/demo-angular/src/app/views/contexts/contexts.component.html +204 -0
  21. package/demo-angular/src/app/views/contexts/contexts.component.ts +10 -0
  22. package/demo-angular/src/app/views/footer/footer.html +282 -0
  23. package/demo-angular/src/app/views/footer/footer.spec.ts +23 -0
  24. package/demo-angular/src/app/views/footer/footer.ts +142 -0
  25. package/demo-angular/src/app/views/header/header.html +1 -0
  26. package/demo-angular/src/app/views/header/header.scss +0 -0
  27. package/demo-angular/src/app/views/header/header.spec.ts +23 -0
  28. package/demo-angular/src/app/views/header/header.ts +11 -0
  29. package/demo-angular/src/app/views/home/home.component.html +0 -5
  30. package/demo-angular/src/app/views/links/links.component.html +11 -130
  31. package/demo-angular/src/app/views/links/links.component.scss +1 -50
  32. package/demo-angular/src/app/views/links/links.component.ts +5 -109
  33. package/demo-angular/src/app/views/toasts/toasts.component.html +7 -7
  34. package/demo-angular/src/app/views/toasts/toasts.component.ts +7 -7
  35. package/demo-angular/src/index.html +15 -1
  36. package/package.json +3 -2
  37. package/sdga-ui/README.md +45 -0
  38. package/sdga-ui/content/docs/components/alerts.mdx +475 -0
  39. package/sdga-ui/content/docs/index.mdx +239 -0
  40. package/sdga-ui/next.config.mjs +10 -0
  41. package/sdga-ui/package-lock.json +5851 -0
  42. package/sdga-ui/package.json +32 -0
  43. package/sdga-ui/postcss.config.mjs +5 -0
  44. package/sdga-ui/source.config.ts +27 -0
  45. package/sdga-ui/src/app/(home)/layout.tsx +6 -0
  46. package/sdga-ui/src/app/(home)/page.tsx +202 -0
  47. package/sdga-ui/src/app/api/search/route.ts +7 -0
  48. package/sdga-ui/src/app/docs/[[...slug]]/page.tsx +54 -0
  49. package/sdga-ui/src/app/docs/layout.tsx +11 -0
  50. package/sdga-ui/src/app/global.css +3 -0
  51. package/sdga-ui/src/app/layout.tsx +25 -0
  52. package/sdga-ui/src/app/llms-full.txt/route.ts +10 -0
  53. package/sdga-ui/src/app/og/docs/[...slug]/route.tsx +34 -0
  54. package/sdga-ui/src/app/sdga-scoped.css +7 -0
  55. package/sdga-ui/src/components/sdga-preview.tsx +105 -0
  56. package/sdga-ui/src/lib/layout.shared.tsx +9 -0
  57. package/sdga-ui/src/lib/source.ts +27 -0
  58. package/sdga-ui/src/mdx-components.tsx +9 -0
  59. package/sdga-ui/tsconfig.json +46 -0
  60. package/theme/_variables.scss +7 -5
  61. package/theme/components/_buttons.scss +105 -0
  62. package/theme/components/_cards.scss +0 -1
  63. package/theme/components/_pagination.scss +2 -2
  64. package/theme/config/_base.scss +4 -33
  65. package/theme/config/_contexts.scss +471 -0
  66. package/theme/customizations/_alerts.scss +105 -125
  67. package/theme/customizations/_badges.scss +15 -0
  68. package/theme/customizations/_buttons.scss +288 -146
  69. package/theme/customizations/_cards.scss +52 -0
  70. package/theme/customizations/_contexts.scss +432 -0
  71. package/theme/customizations/_footer.scss +83 -0
  72. package/theme/customizations/_links.scss +88 -84
  73. package/theme/customizations/_toasts.scss +81 -101
  74. package/theme/dga-ui.scss +3 -2
  75. package/demo-angular/src/app/views/bootstrap/bootstrap.component.html +0 -14
  76. package/demo-angular/src/app/views/bootstrap/bootstrap.component.scss +0 -91
  77. package/demo-angular/src/app/views/bootstrap/bootstrap.component.ts +0 -23
  78. package/theme/customizations/_utilities.scss +0 -138
  79. /package/demo-angular/{public/.nojekyll → src/app/views/footer/footer.scss} +0 -0
@@ -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
  },
@@ -209,6 +213,9 @@
209
213
  "danger_link": "رابط خطر",
210
214
  "warning_link": "رابط تحذير",
211
215
  "info_link": "رابط معلومات",
216
+ "neutral_link": "رابط محايد",
217
+ "oncolor_link": "رابط على لون خلفية",
218
+ "disabled_link": "رابط معطل",
212
219
  "underline_link": "رابط مع تسطير",
213
220
  "no_underline": "رابط بدون تسطير",
214
221
  "underline_25": "رابط مع شفافية تسطير 25%",
@@ -227,6 +234,49 @@
227
234
  "bold_link": "نمط رابط عريض",
228
235
  "decorated_link": "رابط مع تسطير متحرك"
229
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
+ },
230
280
  "code": {
231
281
  "show": "إظهار الكود",
232
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
  },
@@ -209,6 +213,9 @@
209
213
  "danger_link": "Danger link",
210
214
  "warning_link": "Warning link",
211
215
  "info_link": "Info link",
216
+ "neutral_link": "Neutral link",
217
+ "oncolor_link": "Link on colored background",
218
+ "disabled_link": "Disabled link",
212
219
  "underline_link": "Link with underline",
213
220
  "no_underline": "Link without underline",
214
221
  "underline_25": "Link with 25% underline opacity",
@@ -227,6 +234,49 @@
227
234
  "bold_link": "Bold link style",
228
235
  "decorated_link": "Animated underline link"
229
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
+ },
230
280
  "code": {
231
281
  "show": "Show Code",
232
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="hgi hgi-stroke hgi-tick-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-alert-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-tick-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-alert-02 alert-icon"></i>
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="hgi hgi-stroke hgi-alert-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-tick-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-alert-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-tick-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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="hgi hgi-stroke hgi-alert-02 alert-icon"></i>
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="hgi hgi-stroke hgi-alert-02 alert-icon"></i>
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="hgi hgi-stroke hgi-help-circle alert-icon"></i>
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">
@@ -56,78 +56,78 @@
56
56
  <h3 class="mt-5">{{ 'buttons.section_icons' | translate }}</h3>
57
57
  <div class="component-showcase mb-3">
58
58
  <button type="button" class="btn btn-primary btn-icon">
59
- <i class="hgi hgi-stroke hgi-download-04"></i>{{ 'buttons.download' | translate }}
59
+ <i class="bi bi-download"></i>{{ 'buttons.download' | translate }}
60
60
  </button>
61
61
  <button type="button" class="btn btn-neutral btn-icon">
62
- <i class="hgi hgi-stroke hgi-upload-04"></i>{{ 'buttons.upload' | translate }}
62
+ <i class="bi bi-upload"></i>{{ 'buttons.upload' | translate }}
63
63
  </button>
64
64
  <button type="button" class="btn btn-secondary btn-icon">
65
- <i class="hgi hgi-stroke hgi-pencil-edit-02"></i>{{ 'buttons.edit' | translate }}
65
+ <i class="bi bi-pencil"></i>{{ 'buttons.edit' | translate }}
66
66
  </button>
67
67
  <button type="button" class="btn btn-danger btn-icon">
68
- <i class="hgi hgi-stroke hgi-delete-02"></i>{{ 'buttons.delete' | translate }}
68
+ <i class="bi bi-trash"></i>{{ 'buttons.delete' | translate }}
69
69
  </button>
70
70
  </div>
71
71
  <app-code-example [htmlCode]="buttonIconLeftCode"></app-code-example>
72
72
  <div class="component-showcase mb-3">
73
73
  <button type="button" class="btn btn-primary btn-icon">
74
- {{ 'buttons.save' | translate }}<i class="hgi hgi-stroke hgi-tick-02"></i>
74
+ {{ 'buttons.save' | translate }}<i class="bi bi-check"></i>
75
75
  </button>
76
76
  <button type="button" class="btn btn-neutral btn-icon">
77
- {{ 'buttons.search' | translate }}<i class="hgi hgi-stroke hgi-search-01"></i>
77
+ {{ 'buttons.search' | translate }}<i class="bi bi-search"></i>
78
78
  </button>
79
79
  <button type="button" class="btn btn-secondary btn-icon">
80
- {{ 'buttons.settings' | translate }}<i class="hgi hgi-stroke hgi-settings-02"></i>
80
+ {{ 'buttons.settings' | translate }}<i class="bi bi-gear"></i>
81
81
  </button>
82
82
  </div>
83
83
  <app-code-example [htmlCode]="buttonIconRightCode"></app-code-example>
84
84
  <div class="component-showcase mb-3">
85
85
  <button type="button" class="btn btn-primary btn-icon btn-sm">
86
- <i class="hgi hgi-stroke hgi-plus-sign-circle"></i>{{ 'buttons.add' | translate }}
86
+ <i class="bi bi-plus-circle"></i>{{ 'buttons.add' | translate }}
87
87
  </button>
88
88
  <button type="button" class="btn btn-outline-primary btn-icon">
89
- <i class="hgi hgi-stroke hgi-arrow-right-01"></i>{{ 'buttons.next' | translate }}
89
+ <i class="bi bi-arrow-right"></i>{{ 'buttons.next' | translate }}
90
90
  </button>
91
91
  <button type="button" class="btn btn-outline-secondary btn-icon">
92
- <i class="hgi hgi-stroke hgi-arrow-left-01"></i>{{ 'buttons.previous' | translate }}
92
+ <i class="bi bi-arrow-left"></i>{{ 'buttons.previous' | translate }}
93
93
  </button>
94
94
  </div>
95
95
 
96
96
  <h3 class="mt-5">{{ 'buttons.section_icon_only' | translate }}</h3>
97
97
  <div class="component-showcase mb-3">
98
98
  <button type="button" class="btn btn-primary btn-icon" aria-label="{{ 'buttons.download' | translate }}">
99
- <i class="hgi hgi-stroke hgi-download-04"></i>
99
+ <i class="bi bi-download"></i>
100
100
  </button>
101
101
  <button type="button" class="btn btn-neutral btn-icon" aria-label="{{ 'buttons.upload' | translate }}">
102
- <i class="hgi hgi-stroke hgi-upload-04"></i>
102
+ <i class="bi bi-upload"></i>
103
103
  </button>
104
104
  <button type="button" class="btn btn-secondary btn-icon" aria-label="{{ 'buttons.edit' | translate }}">
105
- <i class="hgi hgi-stroke hgi-pencil-edit-02"></i>
105
+ <i class="bi bi-pencil"></i>
106
106
  </button>
107
107
  <button type="button" class="btn btn-danger btn-icon" aria-label="{{ 'buttons.delete' | translate }}">
108
- <i class="hgi hgi-stroke hgi-delete-02"></i>
108
+ <i class="bi bi-trash"></i>
109
109
  </button>
110
110
  </div>
111
111
  <div class="component-showcase mb-3">
112
112
  <button type="button" class="btn btn-outline-primary btn-icon" aria-label="{{ 'buttons.search' | translate }}">
113
- <i class="hgi hgi-stroke hgi-search-01"></i>
113
+ <i class="bi bi-search"></i>
114
114
  </button>
115
115
  <button type="button" class="btn btn-outline-secondary btn-icon" aria-label="{{ 'buttons.settings' | translate }}">
116
- <i class="hgi hgi-stroke hgi-settings-02"></i>
116
+ <i class="bi bi-gear"></i>
117
117
  </button>
118
118
  <button type="button" class="btn btn-outline-neutral btn-icon" aria-label="{{ 'buttons.add' | translate }}">
119
- <i class="hgi hgi-stroke hgi-plus-sign-circle"></i>
119
+ <i class="bi bi-plus-circle"></i>
120
120
  </button>
121
121
  </div>
122
122
  <div class="component-showcase">
123
123
  <button type="button" class="btn btn-primary btn-icon" aria-label="{{ 'buttons.search' | translate }}">
124
- <i class="hgi hgi-stroke hgi-search-01"></i>
124
+ <i class="bi bi-search"></i>
125
125
  </button>
126
126
  <button type="button" class="btn btn-neutral btn-icon btn-sm" aria-label="{{ 'buttons.settings' | translate }}">
127
- <i class="hgi hgi-stroke hgi-settings-02"></i>
127
+ <i class="bi bi-gear"></i>
128
128
  </button>
129
129
  <button type="button" class="btn btn-secondary btn-icon btn-xs" aria-label="{{ 'buttons.add' | translate }}">
130
- <i class="hgi hgi-stroke hgi-plus-sign-circle"></i>
130
+ <i class="bi bi-plus-circle"></i>
131
131
  </button>
132
132
  </div>
133
133
  <app-code-example [htmlCode]="buttonIconOnlyCode"></app-code-example>
@@ -253,7 +253,7 @@
253
253
  <div class="component-showcase">
254
254
  <div class="dropdown">
255
255
  <button class="btn btn-primary dropdown-toggle btn-lg" type="button" data-bs-toggle="dropdown" aria-expanded="false">
256
- <i class="hgi hgi-stroke hgi-settings-02"></i>
256
+ <i class="bi bi-gear"></i>
257
257
  </button>
258
258
  <ul class="dropdown-menu">
259
259
  <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_action' | translate }}</button></li>
@@ -264,7 +264,7 @@
264
264
 
265
265
  <div class="dropdown">
266
266
  <button class="btn btn-neutral dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
267
- <i class="hgi hgi-stroke hgi-settings-02"></i>
267
+ <i class="bi bi-gear"></i>
268
268
  </button>
269
269
  <ul class="dropdown-menu">
270
270
  <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_action' | translate }}</button></li>
@@ -275,7 +275,7 @@
275
275
 
276
276
  <div class="dropdown">
277
277
  <button class="btn btn-secondary dropdown-toggle btn-sm" type="button" data-bs-toggle="dropdown" aria-expanded="false">
278
- <i class="hgi hgi-stroke hgi-settings-02"></i>
278
+ <i class="bi bi-gear"></i>
279
279
  </button>
280
280
  <ul class="dropdown-menu">
281
281
  <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_action' | translate }}</button></li>
@@ -30,39 +30,39 @@ export class ButtonsComponent {
30
30
  <button type="button" class="btn btn-primary" disabled>Disabled</button>`;
31
31
 
32
32
  buttonIconLeftCode = `<button type="button" class="btn btn-primary btn-icon">
33
- <i class="hgi hgi-stroke hgi-download-04"></i>Download
33
+ <i class="bi bi-download"></i>Download
34
34
  </button>
35
35
  <button type="button" class="btn btn-neutral btn-icon">
36
- <i class="hgi hgi-stroke hgi-upload-04"></i>Upload
36
+ <i class="bi bi-upload"></i>Upload
37
37
  </button>
38
38
  <button type="button" class="btn btn-secondary btn-icon">
39
- <i class="hgi hgi-stroke hgi-pencil-edit-02"></i>Edit
39
+ <i class="bi bi-pencil"></i>Edit
40
40
  </button>
41
41
  <button type="button" class="btn btn-danger btn-icon">
42
- <i class="hgi hgi-stroke hgi-delete-02"></i>Delete
42
+ <i class="bi bi-trash"></i>Delete
43
43
  </button>`;
44
44
 
45
45
  buttonIconRightCode = `<button type="button" class="btn btn-primary btn-icon">
46
- Save<i class="hgi hgi-stroke hgi-tick-02"></i>
46
+ Save<i class="bi bi-check"></i>
47
47
  </button>
48
48
  <button type="button" class="btn btn-neutral btn-icon">
49
- Search<i class="hgi hgi-stroke hgi-search-01"></i>
49
+ Search<i class="bi bi-search"></i>
50
50
  </button>
51
51
  <button type="button" class="btn btn-secondary btn-icon">
52
- Settings<i class="hgi hgi-stroke hgi-settings-02"></i>
52
+ Settings<i class="bi bi-gear"></i>
53
53
  </button>`;
54
54
 
55
55
  buttonIconOnlyCode = `<button type="button" class="btn btn-primary btn-icon" aria-label="Download">
56
- <i class="hgi hgi-stroke hgi-download-04"></i>
56
+ <i class="bi bi-download"></i>
57
57
  </button>
58
58
  <button type="button" class="btn btn-neutral btn-icon" aria-label="Upload">
59
- <i class="hgi hgi-stroke hgi-upload-04"></i>
59
+ <i class="bi bi-upload"></i>
60
60
  </button>
61
61
  <button type="button" class="btn btn-secondary btn-icon" aria-label="Edit">
62
- <i class="hgi hgi-stroke hgi-pencil-edit-02"></i>
62
+ <i class="bi bi-pencil"></i>
63
63
  </button>
64
64
  <button type="button" class="btn btn-danger btn-icon" aria-label="Delete">
65
- <i class="hgi hgi-stroke hgi-delete-02"></i>
65
+ <i class="bi bi-trash"></i>
66
66
  </button>`;
67
67
 
68
68
  dropdownButtonCode = `<div class="dropdown">
@@ -122,7 +122,7 @@ export class ButtonsComponent {
122
122
 
123
123
  iconDropdownCode = `<div class="dropdown">
124
124
  <button class="btn btn-primary dropdown-toggle btn-lg" type="button" data-bs-toggle="dropdown" aria-expanded="false">
125
- <i class="hgi hgi-stroke hgi-settings-02"></i>
125
+ <i class="bi bi-gear"></i>
126
126
  </button>
127
127
  <ul class="dropdown-menu">
128
128
  <li><button class="dropdown-item" type="button">Action</button></li>
@@ -133,7 +133,7 @@ export class ButtonsComponent {
133
133
 
134
134
  <div class="dropdown">
135
135
  <button class="btn btn-neutral dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
136
- <i class="hgi hgi-stroke hgi-settings-02"></i>
136
+ <i class="bi bi-gear"></i>
137
137
  </button>
138
138
  <ul class="dropdown-menu">
139
139
  <li><button class="dropdown-item" type="button">Action</button></li>
@@ -144,7 +144,7 @@ export class ButtonsComponent {
144
144
 
145
145
  <div class="dropdown">
146
146
  <button class="btn btn-secondary dropdown-toggle btn-sm" type="button" data-bs-toggle="dropdown" aria-expanded="false">
147
- <i class="hgi hgi-stroke hgi-settings-02"></i>
147
+ <i class="bi bi-gear"></i>
148
148
  </button>
149
149
  <ul class="dropdown-menu">
150
150
  <li><button class="dropdown-item" type="button">Action</button></li>