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.
Files changed (71) hide show
  1. package/README.md +4 -4
  2. package/css/dga-ui.css +4146 -1040
  3. package/css/dga-ui.css.map +1 -1
  4. package/demo-angular/package-lock.json +41 -41
  5. package/demo-angular/package.json +8 -8
  6. package/demo-angular/public/404.html +35 -0
  7. package/demo-angular/public/i18n/ar.json +47 -0
  8. package/demo-angular/public/i18n/en.json +47 -0
  9. package/demo-angular/src/app/app.routes.ts +12 -4
  10. package/demo-angular/src/app/app.ts +8 -2
  11. package/demo-angular/src/app/views/alerts/alerts.component.html +10 -10
  12. package/demo-angular/src/app/views/alerts/alerts.component.ts +10 -10
  13. package/demo-angular/src/app/views/buttons/buttons.component.html +23 -23
  14. package/demo-angular/src/app/views/buttons/buttons.component.ts +14 -14
  15. package/demo-angular/src/app/views/cards/cards.component.html +6 -6
  16. package/demo-angular/src/app/views/cards/cards.component.ts +10 -10
  17. package/demo-angular/src/app/views/contexts/contexts.component.html +204 -0
  18. package/demo-angular/src/app/views/contexts/contexts.component.ts +10 -0
  19. package/demo-angular/src/app/views/footer/footer.html +282 -0
  20. package/demo-angular/src/app/views/footer/footer.scss +0 -0
  21. package/demo-angular/src/app/views/footer/footer.spec.ts +23 -0
  22. package/demo-angular/src/app/views/footer/footer.ts +142 -0
  23. package/demo-angular/src/app/views/header/header.html +1 -0
  24. package/demo-angular/src/app/views/header/header.scss +0 -0
  25. package/demo-angular/src/app/views/header/header.spec.ts +23 -0
  26. package/demo-angular/src/app/views/header/header.ts +11 -0
  27. package/demo-angular/src/app/views/home/home.component.html +0 -5
  28. package/demo-angular/src/app/views/links/links.component.html +2 -2
  29. package/demo-angular/src/app/views/toasts/toasts.component.html +7 -7
  30. package/demo-angular/src/app/views/toasts/toasts.component.ts +7 -7
  31. package/demo-angular/src/index.html +15 -1
  32. package/package.json +2 -2
  33. package/sdga-ui/README.md +45 -0
  34. package/sdga-ui/content/docs/components/alerts.mdx +475 -0
  35. package/sdga-ui/content/docs/index.mdx +239 -0
  36. package/sdga-ui/next.config.mjs +10 -0
  37. package/sdga-ui/package-lock.json +5851 -0
  38. package/sdga-ui/package.json +32 -0
  39. package/sdga-ui/postcss.config.mjs +5 -0
  40. package/sdga-ui/source.config.ts +27 -0
  41. package/sdga-ui/src/app/(home)/layout.tsx +6 -0
  42. package/sdga-ui/src/app/(home)/page.tsx +202 -0
  43. package/sdga-ui/src/app/api/search/route.ts +7 -0
  44. package/sdga-ui/src/app/docs/[[...slug]]/page.tsx +54 -0
  45. package/sdga-ui/src/app/docs/layout.tsx +11 -0
  46. package/sdga-ui/src/app/global.css +3 -0
  47. package/sdga-ui/src/app/layout.tsx +25 -0
  48. package/sdga-ui/src/app/llms-full.txt/route.ts +10 -0
  49. package/sdga-ui/src/app/og/docs/[...slug]/route.tsx +34 -0
  50. package/sdga-ui/src/app/sdga-scoped.css +7 -0
  51. package/sdga-ui/src/components/sdga-preview.tsx +105 -0
  52. package/sdga-ui/src/lib/layout.shared.tsx +9 -0
  53. package/sdga-ui/src/lib/source.ts +27 -0
  54. package/sdga-ui/src/mdx-components.tsx +9 -0
  55. package/sdga-ui/tsconfig.json +46 -0
  56. package/theme/_variables.scss +7 -5
  57. package/theme/components/_buttons.scss +105 -0
  58. package/theme/config/_base.scss +10 -0
  59. package/theme/config/_contexts.scss +471 -0
  60. package/theme/customizations/_alerts.scss +100 -112
  61. package/theme/customizations/_badges.scss +15 -0
  62. package/theme/customizations/_buttons.scss +288 -146
  63. package/theme/customizations/_cards.scss +52 -0
  64. package/theme/customizations/_contexts.scss +432 -0
  65. package/theme/customizations/_footer.scss +83 -0
  66. package/theme/customizations/_links.scss +55 -39
  67. package/theme/customizations/_toasts.scss +79 -100
  68. package/theme/dga-ui.scss +2 -0
  69. package/demo-angular/src/app/views/bootstrap/bootstrap.component.html +0 -14
  70. package/demo-angular/src/app/views/bootstrap/bootstrap.component.scss +0 -91
  71. package/demo-angular/src/app/views/bootstrap/bootstrap.component.ts +0 -23
@@ -1,160 +1,302 @@
1
1
  // Button Customizations - SDGA Custom Enhancements
2
+ // Following Bootstrap 5.3 recommended practices
2
3
 
3
4
  @use 'sass:color';
4
5
 
5
6
  // ============================================
6
- // BUTTON VARIANTS - Primary
7
+ // BUTTON VARIANTS - Using Sass map and @each loop
7
8
  // ============================================
8
9
 
9
- .btn-primary {
10
- --#{$prefix}btn-color: #{$btn-primary-color};
11
- --#{$prefix}btn-bg: #{$btn-primary-bg};
12
- --#{$prefix}btn-border-color: #{$btn-primary-border-color};
13
- --#{$prefix}btn-hover-color: #{$btn-primary-hover-color};
14
- --#{$prefix}btn-hover-bg: #{$btn-primary-hover-bg};
15
- --#{$prefix}btn-hover-border-color: #{$btn-primary-hover-border-color};
16
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-primary-focus-shadow-rgb};
17
- --#{$prefix}btn-active-color: #{$btn-primary-active-color};
18
- --#{$prefix}btn-active-bg: #{$btn-primary-active-bg};
19
- --#{$prefix}btn-active-border-color: #{$btn-primary-active-border-color};
20
- --#{$prefix}btn-disabled-color: #{$btn-primary-disabled-color};
21
- --#{$prefix}btn-disabled-bg: #{$btn-primary-disabled-bg};
22
- --#{$prefix}btn-disabled-border-color: #{$btn-primary-disabled-border-color};
23
- }
24
-
25
- .btn-outline-primary {
26
- --#{$prefix}btn-color: #{$btn-outline-primary-color};
27
- --#{$prefix}btn-border-color: #{$btn-outline-primary-border-color};
28
- --#{$prefix}btn-hover-color: #{$btn-outline-primary-hover-color};
29
- --#{$prefix}btn-hover-bg: #{$btn-outline-primary-hover-bg};
30
- --#{$prefix}btn-hover-border-color: #{$btn-outline-primary-hover-border-color};
31
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-outline-primary-focus-shadow-rgb};
32
- --#{$prefix}btn-active-color: #{$btn-outline-primary-active-color};
33
- --#{$prefix}btn-active-bg: #{$btn-outline-primary-active-bg};
34
- --#{$prefix}btn-active-border-color: #{$btn-outline-primary-active-border-color};
35
- --#{$prefix}btn-disabled-color: #{$btn-outline-primary-disabled-color};
36
- --#{$prefix}btn-disabled-bg: #{$btn-outline-primary-disabled-bg};
37
- --#{$prefix}btn-disabled-border-color: #{$btn-outline-primary-disabled-border-color};
38
- }
39
-
40
- // ============================================
41
- // BUTTON VARIANTS - Secondary
42
- // ============================================
10
+ // Define button variants with their CSS custom properties
11
+ $button-variants: (
12
+ "primary": (
13
+ color: $btn-primary-color,
14
+ bg: $btn-primary-bg,
15
+ border-color: $btn-primary-border-color,
16
+ hover-color: $btn-primary-hover-color,
17
+ hover-bg: $btn-primary-hover-bg,
18
+ hover-border-color: $btn-primary-hover-border-color,
19
+ focus-shadow-rgb: $btn-primary-focus-shadow-rgb,
20
+ active-color: $btn-primary-active-color,
21
+ active-bg: $btn-primary-active-bg,
22
+ active-border-color: $btn-primary-active-border-color,
23
+ disabled-color: $btn-primary-disabled-color,
24
+ disabled-bg: $btn-primary-disabled-bg,
25
+ disabled-border-color: $btn-primary-disabled-border-color
26
+ ),
27
+ "secondary": (
28
+ color: $btn-secondary-color,
29
+ bg: $btn-secondary-bg,
30
+ border-color: $btn-secondary-border-color,
31
+ hover-color: $btn-secondary-hover-color,
32
+ hover-bg: $btn-secondary-hover-bg,
33
+ hover-border-color: $btn-secondary-hover-border-color,
34
+ focus-shadow-rgb: $btn-secondary-focus-shadow-rgb,
35
+ active-color: $btn-secondary-active-color,
36
+ active-bg: $btn-secondary-active-bg,
37
+ active-border-color: $btn-secondary-active-border-color,
38
+ disabled-color: $btn-secondary-disabled-color,
39
+ disabled-bg: $btn-secondary-disabled-bg,
40
+ disabled-border-color: $btn-secondary-disabled-border-color
41
+ ),
42
+ "danger": (
43
+ color: $btn-danger-color,
44
+ bg: $btn-danger-bg,
45
+ border-color: $btn-danger-border-color,
46
+ hover-color: $btn-danger-hover-color,
47
+ hover-bg: $btn-danger-hover-bg,
48
+ hover-border-color: $btn-danger-hover-border-color,
49
+ focus-shadow-rgb: $btn-danger-focus-shadow-rgb,
50
+ active-color: $btn-danger-active-color,
51
+ active-bg: $btn-danger-active-bg,
52
+ active-border-color: $btn-danger-active-border-color,
53
+ disabled-color: $btn-danger-disabled-color,
54
+ disabled-bg: $btn-danger-disabled-bg,
55
+ disabled-border-color: $btn-danger-disabled-border-color
56
+ ),
57
+ "success": (
58
+ color: $btn-success-color,
59
+ bg: $btn-success-bg,
60
+ border-color: $btn-success-border-color,
61
+ hover-color: $btn-success-hover-color,
62
+ hover-bg: $btn-success-hover-bg,
63
+ hover-border-color: $btn-success-hover-border-color,
64
+ focus-shadow-rgb: $btn-success-focus-shadow-rgb,
65
+ active-color: $btn-success-active-color,
66
+ active-bg: $btn-success-active-bg,
67
+ active-border-color: $btn-success-active-border-color,
68
+ disabled-color: $btn-success-disabled-color,
69
+ disabled-bg: $btn-success-disabled-bg,
70
+ disabled-border-color: $btn-success-disabled-border-color
71
+ ),
72
+ "warning": (
73
+ color: $btn-warning-color,
74
+ bg: $btn-warning-bg,
75
+ border-color: $btn-warning-border-color,
76
+ hover-color: $btn-warning-hover-color,
77
+ hover-bg: $btn-warning-hover-bg,
78
+ hover-border-color: $btn-warning-hover-border-color,
79
+ focus-shadow-rgb: $btn-warning-focus-shadow-rgb,
80
+ active-color: $btn-warning-active-color,
81
+ active-bg: $btn-warning-active-bg,
82
+ active-border-color: $btn-warning-active-border-color,
83
+ disabled-color: $btn-warning-disabled-color,
84
+ disabled-bg: $btn-warning-disabled-bg,
85
+ disabled-border-color: $btn-warning-disabled-border-color
86
+ ),
87
+ "info": (
88
+ color: $btn-info-color,
89
+ bg: $btn-info-bg,
90
+ border-color: $btn-info-border-color,
91
+ hover-color: $btn-info-hover-color,
92
+ hover-bg: $btn-info-hover-bg,
93
+ hover-border-color: $btn-info-hover-border-color,
94
+ focus-shadow-rgb: $btn-info-focus-shadow-rgb,
95
+ active-color: $btn-info-active-color,
96
+ active-bg: $btn-info-active-bg,
97
+ active-border-color: $btn-info-active-border-color,
98
+ disabled-color: $btn-info-disabled-color,
99
+ disabled-bg: $btn-info-disabled-bg,
100
+ disabled-border-color: $btn-info-disabled-border-color
101
+ ),
102
+ "lavender": (
103
+ color: $btn-lavender-color,
104
+ bg: $btn-lavender-bg,
105
+ border-color: $btn-lavender-border-color,
106
+ hover-color: $btn-lavender-hover-color,
107
+ hover-bg: $btn-lavender-hover-bg,
108
+ hover-border-color: $btn-lavender-hover-border-color,
109
+ focus-shadow-rgb: $btn-lavender-focus-shadow-rgb,
110
+ active-color: $btn-lavender-active-color,
111
+ active-bg: $btn-lavender-active-bg,
112
+ active-border-color: $btn-lavender-active-border-color,
113
+ disabled-color: $btn-lavender-disabled-color,
114
+ disabled-bg: $btn-lavender-disabled-bg,
115
+ disabled-border-color: $btn-lavender-disabled-border-color
116
+ ),
117
+ "neutral": (
118
+ color: $btn-neutral-color,
119
+ bg: $btn-neutral-bg,
120
+ border-color: $btn-neutral-border-color,
121
+ hover-color: $btn-neutral-hover-color,
122
+ hover-bg: $btn-neutral-hover-bg,
123
+ hover-border-color: $btn-neutral-hover-border-color,
124
+ focus-shadow-rgb: $btn-neutral-focus-shadow-rgb,
125
+ active-color: $btn-neutral-active-color,
126
+ active-bg: $btn-neutral-active-bg,
127
+ active-border-color: $btn-neutral-active-border-color,
128
+ disabled-color: $btn-neutral-disabled-color,
129
+ disabled-bg: $btn-neutral-disabled-bg,
130
+ disabled-border-color: $btn-neutral-disabled-border-color
131
+ ),
132
+ "subtle": (
133
+ color: $btn-subtle-color,
134
+ bg: transparent,
135
+ border-color: $btn-subtle-border-color,
136
+ hover-color: $btn-subtle-hover-color,
137
+ hover-bg: $btn-subtle-hover-bg,
138
+ hover-border-color: $btn-subtle-hover-border-color,
139
+ focus-shadow-rgb: $btn-subtle-focus-shadow-rgb,
140
+ active-color: $btn-subtle-active-color,
141
+ active-bg: $btn-subtle-active-bg,
142
+ active-border-color: $btn-subtle-active-border-color,
143
+ disabled-color: $btn-subtle-disabled-color,
144
+ disabled-bg: $btn-subtle-disabled-bg,
145
+ disabled-border-color: $btn-subtle-disabled-border-color
146
+ )
147
+ );
43
148
 
44
- .btn-secondary {
45
- --#{$prefix}btn-color: #{$btn-secondary-color};
46
- --#{$prefix}btn-bg: #{$btn-secondary-bg};
47
- --#{$prefix}btn-border-color: #{$btn-secondary-border-color};
48
- --#{$prefix}btn-hover-color: #{$btn-secondary-hover-color};
49
- --#{$prefix}btn-hover-bg: #{$btn-secondary-hover-bg};
50
- --#{$prefix}btn-hover-border-color: #{$btn-secondary-hover-border-color};
51
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-secondary-focus-shadow-rgb};
52
- --#{$prefix}btn-active-color: #{$btn-secondary-active-color};
53
- --#{$prefix}btn-active-bg: #{$btn-secondary-active-bg};
54
- --#{$prefix}btn-active-border-color: #{$btn-secondary-active-border-color};
55
- --#{$prefix}btn-disabled-color: #{$btn-secondary-disabled-color};
56
- --#{$prefix}btn-disabled-bg: #{$btn-secondary-disabled-bg};
57
- --#{$prefix}btn-disabled-border-color: #{$btn-secondary-disabled-border-color};
58
- }
59
-
60
- .btn-outline-secondary {
61
- --#{$prefix}btn-color: #{$btn-outline-secondary-color};
62
- --#{$prefix}btn-border-color: #{$btn-outline-secondary-border-color};
63
- --#{$prefix}btn-hover-color: #{$btn-outline-secondary-hover-color};
64
- --#{$prefix}btn-hover-bg: #{$btn-outline-secondary-hover-bg};
65
- --#{$prefix}btn-hover-border-color: #{$btn-outline-secondary-hover-border-color};
66
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-outline-secondary-focus-shadow-rgb};
67
- --#{$prefix}btn-active-color: #{$btn-outline-secondary-active-color};
68
- --#{$prefix}btn-active-bg: #{$btn-outline-secondary-active-bg};
69
- --#{$prefix}btn-active-border-color: #{$btn-outline-secondary-active-border-color};
70
- --#{$prefix}btn-disabled-color: #{$btn-outline-secondary-disabled-color};
71
- --#{$prefix}btn-disabled-bg: #{$btn-outline-secondary-disabled-bg};
72
- --#{$prefix}btn-disabled-border-color: #{$btn-outline-secondary-disabled-border-color};
73
- }
74
-
75
- // ============================================
76
- // BUTTON VARIANTS - Danger/Destructive
77
- // ============================================
149
+ // Define outline button variants
150
+ $button-outline-variants: (
151
+ "primary": (
152
+ color: $btn-outline-primary-color,
153
+ border-color: $btn-outline-primary-border-color,
154
+ hover-color: $btn-outline-primary-hover-color,
155
+ hover-bg: $btn-outline-primary-hover-bg,
156
+ hover-border-color: $btn-outline-primary-hover-border-color,
157
+ focus-shadow-rgb: $btn-outline-primary-focus-shadow-rgb,
158
+ active-color: $btn-outline-primary-active-color,
159
+ active-bg: $btn-outline-primary-active-bg,
160
+ active-border-color: $btn-outline-primary-active-border-color,
161
+ disabled-color: $btn-outline-primary-disabled-color,
162
+ disabled-bg: $btn-outline-primary-disabled-bg,
163
+ disabled-border-color: $btn-outline-primary-disabled-border-color
164
+ ),
165
+ "secondary": (
166
+ color: $btn-outline-secondary-color,
167
+ border-color: $btn-outline-secondary-border-color,
168
+ hover-color: $btn-outline-secondary-hover-color,
169
+ hover-bg: $btn-outline-secondary-hover-bg,
170
+ hover-border-color: $btn-outline-secondary-hover-border-color,
171
+ focus-shadow-rgb: $btn-outline-secondary-focus-shadow-rgb,
172
+ active-color: $btn-outline-secondary-active-color,
173
+ active-bg: $btn-outline-secondary-active-bg,
174
+ active-border-color: $btn-outline-secondary-active-border-color,
175
+ disabled-color: $btn-outline-secondary-disabled-color,
176
+ disabled-bg: $btn-outline-secondary-disabled-bg,
177
+ disabled-border-color: $btn-outline-secondary-disabled-border-color
178
+ ),
179
+ "danger": (
180
+ color: $btn-outline-danger-color,
181
+ border-color: $btn-outline-danger-border-color,
182
+ hover-color: $btn-outline-danger-hover-color,
183
+ hover-bg: $btn-outline-danger-hover-bg,
184
+ hover-border-color: $btn-outline-danger-hover-border-color,
185
+ focus-shadow-rgb: $btn-outline-danger-focus-shadow-rgb,
186
+ active-color: $btn-outline-danger-active-color,
187
+ active-bg: $btn-outline-danger-active-bg,
188
+ active-border-color: $btn-outline-danger-active-border-color,
189
+ disabled-color: $btn-outline-danger-disabled-color,
190
+ disabled-bg: $btn-outline-danger-disabled-bg,
191
+ disabled-border-color: $btn-outline-danger-disabled-border-color
192
+ ),
193
+ "success": (
194
+ color: $btn-outline-success-color,
195
+ border-color: $btn-outline-success-border-color,
196
+ hover-color: $btn-outline-success-hover-color,
197
+ hover-bg: $btn-outline-success-hover-bg,
198
+ hover-border-color: $btn-outline-success-hover-border-color,
199
+ focus-shadow-rgb: $btn-outline-success-focus-shadow-rgb,
200
+ active-color: $btn-outline-success-active-color,
201
+ active-bg: $btn-outline-success-active-bg,
202
+ active-border-color: $btn-outline-success-active-border-color,
203
+ disabled-color: $btn-outline-success-disabled-color,
204
+ disabled-bg: $btn-outline-success-disabled-bg,
205
+ disabled-border-color: $btn-outline-success-disabled-border-color
206
+ ),
207
+ "warning": (
208
+ color: $btn-outline-warning-color,
209
+ border-color: $btn-outline-warning-border-color,
210
+ hover-color: $btn-outline-warning-hover-color,
211
+ hover-bg: $btn-outline-warning-hover-bg,
212
+ hover-border-color: $btn-outline-warning-hover-border-color,
213
+ focus-shadow-rgb: $btn-outline-warning-focus-shadow-rgb,
214
+ active-color: $btn-outline-warning-active-color,
215
+ active-bg: $btn-outline-warning-active-bg,
216
+ active-border-color: $btn-outline-warning-active-border-color,
217
+ disabled-color: $btn-outline-warning-disabled-color,
218
+ disabled-bg: $btn-outline-warning-disabled-bg,
219
+ disabled-border-color: $btn-outline-warning-disabled-border-color
220
+ ),
221
+ "info": (
222
+ color: $btn-outline-info-color,
223
+ border-color: $btn-outline-info-border-color,
224
+ hover-color: $btn-outline-info-hover-color,
225
+ hover-bg: $btn-outline-info-hover-bg,
226
+ hover-border-color: $btn-outline-info-hover-border-color,
227
+ focus-shadow-rgb: $btn-outline-info-focus-shadow-rgb,
228
+ active-color: $btn-outline-info-active-color,
229
+ active-bg: $btn-outline-info-active-bg,
230
+ active-border-color: $btn-outline-info-active-border-color,
231
+ disabled-color: $btn-outline-info-disabled-color,
232
+ disabled-bg: $btn-outline-info-disabled-bg,
233
+ disabled-border-color: $btn-outline-info-disabled-border-color
234
+ ),
235
+ "lavender": (
236
+ color: $btn-outline-lavender-color,
237
+ border-color: $btn-outline-lavender-border-color,
238
+ hover-color: $btn-outline-lavender-hover-color,
239
+ hover-bg: $btn-outline-lavender-hover-bg,
240
+ hover-border-color: $btn-outline-lavender-hover-border-color,
241
+ focus-shadow-rgb: $btn-outline-lavender-focus-shadow-rgb,
242
+ active-color: $btn-outline-lavender-active-color,
243
+ active-bg: $btn-outline-lavender-active-bg,
244
+ active-border-color: $btn-outline-lavender-active-border-color,
245
+ disabled-color: $btn-outline-lavender-disabled-color,
246
+ disabled-bg: $btn-outline-lavender-disabled-bg,
247
+ disabled-border-color: $btn-outline-lavender-disabled-border-color
248
+ ),
249
+ "neutral": (
250
+ color: $btn-outline-neutral-color,
251
+ border-color: $btn-outline-neutral-border-color,
252
+ hover-color: $btn-outline-neutral-hover-color,
253
+ hover-bg: $btn-outline-neutral-hover-bg,
254
+ hover-border-color: $btn-outline-neutral-hover-border-color,
255
+ focus-shadow-rgb: $btn-outline-neutral-focus-shadow-rgb,
256
+ active-color: $btn-outline-neutral-active-color,
257
+ active-bg: $btn-outline-neutral-active-bg,
258
+ active-border-color: $btn-outline-neutral-active-border-color,
259
+ disabled-color: $btn-outline-neutral-disabled-color,
260
+ disabled-bg: $btn-outline-neutral-disabled-bg,
261
+ disabled-border-color: $btn-outline-neutral-disabled-border-color
262
+ )
263
+ );
78
264
 
79
- .btn-danger {
80
- --#{$prefix}btn-color: #{$btn-danger-color};
81
- --#{$prefix}btn-bg: #{$btn-danger-bg};
82
- --#{$prefix}btn-border-color: #{$btn-danger-border-color};
83
- --#{$prefix}btn-hover-color: #{$btn-danger-hover-color};
84
- --#{$prefix}btn-hover-bg: #{$btn-danger-hover-bg};
85
- --#{$prefix}btn-hover-border-color: #{$btn-danger-hover-border-color};
86
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-danger-focus-shadow-rgb};
87
- --#{$prefix}btn-active-color: #{$btn-danger-active-color};
88
- --#{$prefix}btn-active-bg: #{$btn-danger-active-bg};
89
- --#{$prefix}btn-active-border-color: #{$btn-danger-active-border-color};
90
- --#{$prefix}btn-disabled-color: #{$btn-danger-disabled-color};
91
- --#{$prefix}btn-disabled-bg: #{$btn-danger-disabled-bg};
92
- --#{$prefix}btn-disabled-border-color: #{$btn-danger-disabled-border-color};
93
- }
94
-
95
- .btn-outline-danger {
96
- --#{$prefix}btn-color: #{$btn-outline-danger-color};
97
- --#{$prefix}btn-border-color: #{$btn-outline-danger-border-color};
98
- --#{$prefix}btn-hover-color: #{$btn-outline-danger-hover-color};
99
- --#{$prefix}btn-hover-bg: #{$btn-outline-danger-hover-bg};
100
- --#{$prefix}btn-hover-border-color: #{$btn-outline-danger-hover-border-color};
101
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-outline-danger-focus-shadow-rgb};
102
- --#{$prefix}btn-active-color: #{$btn-outline-danger-active-color};
103
- --#{$prefix}btn-active-bg: #{$btn-outline-danger-active-bg};
104
- --#{$prefix}btn-active-border-color: #{$btn-outline-danger-active-border-color};
105
- --#{$prefix}btn-disabled-color: #{$btn-outline-danger-disabled-color};
106
- --#{$prefix}btn-disabled-bg: #{$btn-outline-danger-disabled-bg};
107
- --#{$prefix}btn-disabled-border-color: #{$btn-outline-danger-disabled-border-color};
108
- }
109
-
110
- // ============================================
111
- // BUTTON VARIANTS - Neutral
112
- // ============================================
113
-
114
- .btn-neutral {
115
- --#{$prefix}btn-color: #{$btn-neutral-color};
116
- --#{$prefix}btn-bg: #{$btn-neutral-bg};
117
- --#{$prefix}btn-border-color: #{$btn-neutral-border-color};
118
- --#{$prefix}btn-hover-color: #{$btn-neutral-hover-color};
119
- --#{$prefix}btn-hover-bg: #{$btn-neutral-hover-bg};
120
- --#{$prefix}btn-hover-border-color: #{$btn-neutral-hover-border-color};
121
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-neutral-focus-shadow-rgb};
122
- --#{$prefix}btn-active-color: #{$btn-neutral-active-color};
123
- --#{$prefix}btn-active-bg: #{$btn-neutral-active-bg};
124
- --#{$prefix}btn-active-border-color: #{$btn-neutral-active-border-color};
125
- --#{$prefix}btn-disabled-color: #{$btn-neutral-disabled-color};
126
- --#{$prefix}btn-disabled-bg: #{$btn-neutral-disabled-bg};
127
- --#{$prefix}btn-disabled-border-color: #{$btn-neutral-disabled-border-color};
128
- }
129
-
130
- .btn-outline-neutral {
131
- --#{$prefix}btn-color: #{$btn-outline-neutral-color};
132
- --#{$prefix}btn-border-color: #{$btn-outline-neutral-border-color};
133
- --#{$prefix}btn-hover-color: #{$btn-outline-neutral-hover-color};
134
- --#{$prefix}btn-hover-bg: #{$btn-outline-neutral-hover-bg};
135
- --#{$prefix}btn-hover-border-color: #{$btn-outline-neutral-hover-border-color};
136
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-outline-neutral-focus-shadow-rgb};
137
- --#{$prefix}btn-active-color: #{$btn-outline-neutral-active-color};
138
- --#{$prefix}btn-active-bg: #{$btn-outline-neutral-active-bg};
139
- --#{$prefix}btn-active-border-color: #{$btn-outline-neutral-active-border-color};
140
- --#{$prefix}btn-disabled-color: #{$btn-outline-neutral-disabled-color};
141
- --#{$prefix}btn-disabled-bg: #{$btn-outline-neutral-disabled-bg};
142
- --#{$prefix}btn-disabled-border-color: #{$btn-outline-neutral-disabled-border-color};
265
+ // Generate button variant classes
266
+ @each $name, $props in $button-variants {
267
+ .btn-#{$name} {
268
+ --#{$prefix}btn-color: #{map-get($props, color)};
269
+ --#{$prefix}btn-bg: #{map-get($props, bg)};
270
+ --#{$prefix}btn-border-color: #{map-get($props, border-color)};
271
+ --#{$prefix}btn-hover-color: #{map-get($props, hover-color)};
272
+ --#{$prefix}btn-hover-bg: #{map-get($props, hover-bg)};
273
+ --#{$prefix}btn-hover-border-color: #{map-get($props, hover-border-color)};
274
+ --#{$prefix}btn-focus-shadow-rgb: #{map-get($props, focus-shadow-rgb)};
275
+ --#{$prefix}btn-active-color: #{map-get($props, active-color)};
276
+ --#{$prefix}btn-active-bg: #{map-get($props, active-bg)};
277
+ --#{$prefix}btn-active-border-color: #{map-get($props, active-border-color)};
278
+ --#{$prefix}btn-disabled-color: #{map-get($props, disabled-color)};
279
+ --#{$prefix}btn-disabled-bg: #{map-get($props, disabled-bg)};
280
+ --#{$prefix}btn-disabled-border-color: #{map-get($props, disabled-border-color)};
281
+ }
143
282
  }
144
283
 
145
- .btn-subtle {
146
- --#{$prefix}btn-color: #{$btn-subtle-color};
147
- --#{$prefix}btn-border-color: #{$btn-subtle-border-color};
148
- --#{$prefix}btn-hover-color: #{$btn-subtle-hover-color};
149
- --#{$prefix}btn-hover-bg: #{$btn-subtle-hover-bg};
150
- --#{$prefix}btn-hover-border-color: #{$btn-subtle-hover-border-color};
151
- --#{$prefix}btn-focus-shadow-rgb: #{$btn-subtle-focus-shadow-rgb};
152
- --#{$prefix}btn-active-color: #{$btn-subtle-active-color};
153
- --#{$prefix}btn-active-bg: #{$btn-subtle-active-bg};
154
- --#{$prefix}btn-active-border-color: #{$btn-subtle-active-border-color};
155
- --#{$prefix}btn-disabled-color: #{$btn-subtle-disabled-color};
156
- --#{$prefix}btn-disabled-bg: #{$btn-subtle-disabled-bg};
157
- --#{$prefix}btn-disabled-border-color: #{$btn-subtle-disabled-border-color};
284
+ // Generate outline button variant classes
285
+ @each $name, $props in $button-outline-variants {
286
+ .btn-outline-#{$name} {
287
+ --#{$prefix}btn-color: #{map-get($props, color)};
288
+ --#{$prefix}btn-border-color: #{map-get($props, border-color)};
289
+ --#{$prefix}btn-hover-color: #{map-get($props, hover-color)};
290
+ --#{$prefix}btn-hover-bg: #{map-get($props, hover-bg)};
291
+ --#{$prefix}btn-hover-border-color: #{map-get($props, hover-border-color)};
292
+ --#{$prefix}btn-focus-shadow-rgb: #{map-get($props, focus-shadow-rgb)};
293
+ --#{$prefix}btn-active-color: #{map-get($props, active-color)};
294
+ --#{$prefix}btn-active-bg: #{map-get($props, active-bg)};
295
+ --#{$prefix}btn-active-border-color: #{map-get($props, active-border-color)};
296
+ --#{$prefix}btn-disabled-color: #{map-get($props, disabled-color)};
297
+ --#{$prefix}btn-disabled-bg: #{map-get($props, disabled-bg)};
298
+ --#{$prefix}btn-disabled-border-color: #{map-get($props, disabled-border-color)};
299
+ }
158
300
  }
159
301
 
160
302
  // ============================================
@@ -1,4 +1,45 @@
1
1
  // Card Customizations - SDGA Custom Enhancements
2
+ // Following Bootstrap 5.3 recommended practices
3
+
4
+ // ============================================
5
+ // CARD ICON VARIANTS - Using Sass map and @each loop
6
+ // ============================================
7
+
8
+ // Define card icon color variants
9
+ $card-icon-variants: (
10
+ "success": (
11
+ icon-bg: $success-50,
12
+ icon-color: $success-700
13
+ ),
14
+ "primary": (
15
+ icon-bg: $primary-50,
16
+ icon-color: $primary-700
17
+ ),
18
+ "danger": (
19
+ icon-bg: $danger-50,
20
+ icon-color: $danger-700
21
+ ),
22
+ "warning": (
23
+ icon-bg: $warning-50,
24
+ icon-color: $warning-700
25
+ ),
26
+ "info": (
27
+ icon-bg: $info-50,
28
+ icon-color: $info-700
29
+ ),
30
+ "secondary": (
31
+ icon-bg: $secondary-50,
32
+ icon-color: $secondary-700
33
+ ),
34
+ "neutral": (
35
+ icon-bg: $neutral-50,
36
+ icon-color: $neutral-700
37
+ )
38
+ );
39
+
40
+ // ============================================
41
+ // CARD BASE STYLES
42
+ // ============================================
2
43
 
3
44
  .card {
4
45
  transition: transform 0.3s ease;
@@ -71,6 +112,17 @@
71
112
  justify-content: center;
72
113
  color: $success-700;
73
114
  z-index: 1;
115
+
116
+ // Generate card icon variant classes
117
+ @each $name, $colors in $card-icon-variants {
118
+ &.card-title-icon-#{$name} {
119
+ color: map-get($colors, icon-color);
120
+
121
+ &::after {
122
+ background-color: map-get($colors, icon-bg);
123
+ }
124
+ }
125
+ }
74
126
  }
75
127
 
76
128
  .card-title-checked {