sdga-ui 1.0.7 → 1.0.8

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 (33) hide show
  1. package/css/dga-ui.css +24869 -27624
  2. package/css/dga-ui.css.map +1 -1
  3. package/demo-angular/angular.json +3 -0
  4. package/demo-angular/package.json +2 -2
  5. package/demo-angular/src/app/app.html +1 -1
  6. package/demo-angular/src/app/app.routes.ts +0 -4
  7. package/demo-angular/src/app/app.ts +5 -2
  8. package/demo-angular/src/app/shared/code-example/code-example.component.html +1 -1
  9. package/demo-angular/src/app/shared/code-example/code-example.component.ts +12 -1
  10. package/demo-angular/src/app/views/buttons/buttons.component.html +95 -24
  11. package/demo-angular/src/app/views/buttons/buttons.component.scss +0 -3
  12. package/demo-angular/src/app/views/buttons/buttons.component.ts +77 -7
  13. package/demo-angular/src/app/views/footer/footer.html +138 -150
  14. package/demo-angular/src/app/views/footer/footer.ts +200 -66
  15. package/demo-angular/src/app/views/links/links.component.ts +1 -1
  16. package/demo-angular/tsconfig.app.json +2 -1
  17. package/package.json +1 -1
  18. package/theme/_variables.scss +0 -1
  19. package/theme/components/_buttons.scss +1 -302
  20. package/theme/config/_base.scss +1 -1
  21. package/theme/customizations/_alerts.scss +15 -14
  22. package/theme/customizations/_buttons.scss +305 -244
  23. package/theme/customizations/_footer.scss +122 -45
  24. package/theme/customizations/_global.scss +20 -2
  25. package/theme/customizations/_links.scss +45 -44
  26. package/theme/customizations/_toasts.scss +13 -14
  27. package/theme/dga-ui.scss +1 -2
  28. package/demo-angular/src/app/views/contexts/contexts.component.html +0 -204
  29. package/demo-angular/src/app/views/contexts/contexts.component.ts +0 -10
  30. package/demo-angular/src/app/views/footer/footer.scss +0 -0
  31. package/demo-angular/src/app/views/footer/footer.spec.ts +0 -23
  32. package/theme/config/_contexts.scss +0 -471
  33. package/theme/customizations/_contexts.scss +0 -432
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "demo-angular",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "scripts": {
5
5
  "ng": "ng",
6
6
  "start": "npm run use:local && ng serve -o",
@@ -38,7 +38,7 @@
38
38
  "bootstrap": "^5.3.8",
39
39
  "highlight.js": "^11.11.1",
40
40
  "rxjs": "~7.8.0",
41
- "sdga-ui": "^1.0.7",
41
+ "sdga-ui": "^1.0.8",
42
42
  "tslib": "^2.3.0"
43
43
  },
44
44
  "devDependencies": {
@@ -27,7 +27,7 @@
27
27
  </nav>
28
28
 
29
29
  <div class="sidebar-footer">
30
- <p class="version">{{ 'app.version' | translate }}</p>
30
+ <p class="version">v{{ version }}</p>
31
31
  </div>
32
32
  </aside>
33
33
 
@@ -14,10 +14,6 @@ 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
- },
21
17
  {
22
18
  path: 'buttons',
23
19
  loadComponent: () => import('./views/buttons/buttons.component').then(m => m.ButtonsComponent)
@@ -2,6 +2,9 @@ import { Component, signal, inject, effect } from '@angular/core';
2
2
  import { RouterOutlet, Router } from '@angular/router';
3
3
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
4
4
 
5
+ // Import package.json to get version
6
+ import packageJson from '../../package.json';
7
+
5
8
  @Component({
6
9
  selector: 'app-root',
7
10
  imports: [RouterOutlet, TranslateModule],
@@ -16,6 +19,7 @@ export class App {
16
19
  protected readonly currentTheme = signal<string | null>(null);
17
20
  protected readonly currentLang = signal<'en' | 'ar'>('en');
18
21
  protected readonly isRTL = signal(false);
22
+ protected readonly version = packageJson.version;
19
23
 
20
24
  constructor() {
21
25
  // Initialize translations
@@ -43,7 +47,7 @@ export class App {
43
47
  {
44
48
  groupKey: 'nav.layout',
45
49
  items: [
46
- { id: 'header', labelKey: 'nav.header', icon: '📋', route: '/header' },
50
+ // { id: 'header', labelKey: 'nav.header', icon: '📋', route: '/header' },
47
51
  { id: 'footer', labelKey: 'nav.footer', icon: '📄', route: '/footer' }
48
52
  ]
49
53
  },
@@ -51,7 +55,6 @@ export class App {
51
55
  groupKey: 'nav.components',
52
56
  items: [
53
57
  { id: 'alerts', labelKey: 'nav.alerts', icon: '⚠️', route: '/alerts' },
54
- { id: 'contexts', labelKey: 'nav.contexts', icon: '🧩', route: '/contexts' },
55
58
  { id: 'buttons', labelKey: 'nav.buttons', icon: '🔘', route: '/buttons' },
56
59
  { id: 'cards', labelKey: 'nav.cards', icon: '🃏', route: '/cards' },
57
60
  { id: 'forms', labelKey: 'nav.forms', icon: '📝', route: '/forms' },
@@ -1,4 +1,4 @@
1
- <div class="code-example-wrapper">
1
+ <div class="code-example-wrapper" [class]="onColor ? 'on-' + onColor : ''">
2
2
  <div class="code-header">
3
3
  @if (title) {
4
4
  <span class="code-title">{{ title }}</span>
@@ -15,6 +15,7 @@ export class CodeExampleComponent {
15
15
  @Input() scssCode?: string;
16
16
  @Input() title?: string;
17
17
  @Input() expanded = false;
18
+ @Input() onColor?: string;
18
19
 
19
20
  isExpanded = signal(false);
20
21
  activeTab = signal<'html' | 'ts' | 'scss'>('html');
@@ -38,12 +39,22 @@ export class CodeExampleComponent {
38
39
 
39
40
  get currentCode(): string {
40
41
  const tab = this.activeTab();
41
- if (tab === 'html' && this.htmlCode) return this.htmlCode;
42
+ if (tab === 'html' && this.htmlCode) return this.wrappedHtmlCode;
42
43
  if (tab === 'ts' && this.tsCode) return this.tsCode;
43
44
  if (tab === 'scss' && this.scssCode) return this.scssCode;
44
45
  return '';
45
46
  }
46
47
 
48
+ get wrappedHtmlCode(): string {
49
+ if (!this.htmlCode) return '';
50
+ if (this.onColor) {
51
+ return `<div class="on-${this.onColor}">
52
+ ${this.htmlCode.split('\n').join('\n ')}
53
+ </div>`;
54
+ }
55
+ return this.htmlCode;
56
+ }
57
+
47
58
  get highlightedCode(): string {
48
59
  const code = this.currentCode;
49
60
  const tab = this.activeTab();
@@ -5,19 +5,45 @@
5
5
  <section class="demo-section">
6
6
  <h2>{{ 'buttons.section_solid' | translate }}</h2>
7
7
  <div class="component-showcase">
8
- <button type="button" class="btn btn-primary">{{ 'buttons.primary' | translate }}</button>
9
- <button type="button" class="btn btn-neutral">{{ 'buttons.neutral' | translate }}</button>
10
- <button type="button" class="btn btn-secondary">{{ 'buttons.secondary' | translate }}</button>
11
- <button type="button" class="btn btn-danger">{{ 'buttons.danger' | translate }}</button>
8
+ <button type="button" class="btn btn-primary">Primary</button>
9
+ <button type="button" class="btn btn-neutral">Neutral</button>
10
+ <button type="button" class="btn btn-secondary">Secondary</button>
11
+ <button type="button" class="btn btn-subtle">Subtle</button>
12
+ <button type="button" class="btn btn-transparent">Transparent</button>
12
13
  </div>
13
14
  <app-code-example [htmlCode]="solidButtonsCode"></app-code-example>
14
15
 
16
+ <h3 class="mt-5">Destructive Variants</h3>
17
+ <div class="component-showcase">
18
+ <button type="button" class="btn btn-destructive-primary">Destructive Primary</button>
19
+ <button type="button" class="btn btn-destructive-secondary">Destructive Secondary</button>
20
+ <button type="button" class="btn btn-destructive-subtle">Destructive Subtle</button>
21
+ <button type="button" class="btn btn-destructive-transparent">Destructive Transparent</button>
22
+ </div>
23
+ <app-code-example [htmlCode]="destructiveButtonsCode"></app-code-example>
24
+
25
+ <h3 class="mt-5">On Primary Context</h3>
26
+ <div class="on-primary p-4 rounded-2">
27
+ <div class="component-showcase mb-3">
28
+ <button type="button" class="btn btn-primary">Primary</button>
29
+ <button type="button" class="btn btn-neutral">Neutral</button>
30
+ <button type="button" class="btn btn-secondary">Secondary</button>
31
+ <button type="button" class="btn btn-outline-secondary">Outline Secondary</button>
32
+ <button type="button" class="btn btn-subtle">Subtle</button>
33
+ <button type="button" class="btn btn-transparent">Transparent</button>
34
+ <button type="button" class="btn btn-destructive-primary">Destructive Primary</button>
35
+ <button type="button" class="btn btn-destructive-secondary">Destructive Secondary</button>
36
+ <button type="button" class="btn btn-destructive-outline-secondary">Destructive Outline</button>
37
+ <button type="button" class="btn btn-destructive-subtle">Destructive Subtle</button>
38
+ <button type="button" class="btn btn-destructive-transparent">Destructive Transparent</button>
39
+ </div>
40
+ </div>
41
+ <app-code-example [htmlCode]="onPrimaryButtonsCode" [onColor]="'primary'"></app-code-example>
42
+
15
43
  <h3 class="mt-5">{{ 'buttons.section_outline' | translate }}</h3>
16
44
  <div class="component-showcase">
17
- <button type="button" class="btn btn-outline-primary">{{ 'buttons.primary' | translate }}</button>
18
45
  <button type="button" class="btn btn-outline-secondary">{{ 'buttons.secondary' | translate }}</button>
19
- <button type="button" class="btn btn-outline-neutral">{{ 'buttons.neutral' | translate }}</button>
20
- <button type="button" class="btn btn-outline-danger">{{ 'buttons.danger' | translate }}</button>
46
+ <button type="button" class="btn btn-destructive-outline-secondary">{{ 'buttons.danger' | translate }}</button>
21
47
  </div>
22
48
  <app-code-example [htmlCode]="outlineButtonsCode"></app-code-example>
23
49
 
@@ -46,10 +72,35 @@
46
72
  <button type="button" class="btn btn-secondary active">{{ 'buttons.active' | translate }}</button>
47
73
  <button type="button" class="btn btn-secondary" disabled>{{ 'buttons.disabled' | translate }}</button>
48
74
  </div>
75
+ <div class="component-showcase mb-3">
76
+ <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
77
+ <button type="button" class="btn btn-subtle active">{{ 'buttons.active' | translate }}</button>
78
+ <button type="button" class="btn btn-subtle" disabled>{{ 'buttons.disabled' | translate }}</button>
79
+ </div>
80
+ <div class="component-showcase mb-3">
81
+ <button type="button" class="btn btn-transparent">{{ 'buttons.normal' | translate }}</button>
82
+ <button type="button" class="btn btn-transparent active">{{ 'buttons.active' | translate }}</button>
83
+ <button type="button" class="btn btn-transparent" disabled>{{ 'buttons.disabled' | translate }}</button>
84
+ </div>
85
+ <div class="component-showcase mb-3">
86
+ <button type="button" class="btn btn-destructive-primary">{{ 'buttons.normal' | translate }}</button>
87
+ <button type="button" class="btn btn-destructive-primary active">{{ 'buttons.active' | translate }}</button>
88
+ <button type="button" class="btn btn-destructive-primary" disabled>{{ 'buttons.disabled' | translate }}</button>
89
+ </div>
90
+ <div class="component-showcase mb-3">
91
+ <button type="button" class="btn btn-destructive-secondary">{{ 'buttons.normal' | translate }}</button>
92
+ <button type="button" class="btn btn-destructive-secondary active">{{ 'buttons.active' | translate }}</button>
93
+ <button type="button" class="btn btn-destructive-secondary" disabled>{{ 'buttons.disabled' | translate }}</button>
94
+ </div>
95
+ <div class="component-showcase mb-3">
96
+ <button type="button" class="btn btn-destructive-subtle">{{ 'buttons.normal' | translate }}</button>
97
+ <button type="button" class="btn btn-destructive-subtle active">{{ 'buttons.active' | translate }}</button>
98
+ <button type="button" class="btn btn-destructive-subtle" disabled>{{ 'buttons.disabled' | translate }}</button>
99
+ </div>
49
100
  <div class="component-showcase">
50
- <button type="button" class="btn btn-danger">{{ 'buttons.normal' | translate }}</button>
51
- <button type="button" class="btn btn-danger active">{{ 'buttons.active' | translate }}</button>
52
- <button type="button" class="btn btn-danger" disabled>{{ 'buttons.disabled' | translate }}</button>
101
+ <button type="button" class="btn btn-destructive-transparent">{{ 'buttons.normal' | translate }}</button>
102
+ <button type="button" class="btn btn-destructive-transparent active">{{ 'buttons.active' | translate }}</button>
103
+ <button type="button" class="btn btn-destructive-transparent" disabled>{{ 'buttons.disabled' | translate }}</button>
53
104
  </div>
54
105
  <app-code-example [htmlCode]="buttonStatesCode"></app-code-example>
55
106
 
@@ -64,9 +115,18 @@
64
115
  <button type="button" class="btn btn-secondary btn-icon">
65
116
  <i class="bi bi-pencil"></i>{{ 'buttons.edit' | translate }}
66
117
  </button>
67
- <button type="button" class="btn btn-danger btn-icon">
118
+ <button type="button" class="btn btn-subtle btn-icon">
119
+ <i class="bi bi-eye"></i>View
120
+ </button>
121
+ <button type="button" class="btn btn-transparent btn-icon">
122
+ <i class="bi bi-link"></i>Link
123
+ </button>
124
+ <button type="button" class="btn btn-destructive-primary btn-icon">
68
125
  <i class="bi bi-trash"></i>{{ 'buttons.delete' | translate }}
69
126
  </button>
127
+ <button type="button" class="btn btn-destructive-secondary btn-icon">
128
+ <i class="bi bi-x-circle"></i>Cancel
129
+ </button>
70
130
  </div>
71
131
  <app-code-example [htmlCode]="buttonIconLeftCode"></app-code-example>
72
132
  <div class="component-showcase mb-3">
@@ -85,7 +145,7 @@
85
145
  <button type="button" class="btn btn-primary btn-icon btn-sm">
86
146
  <i class="bi bi-plus-circle"></i>{{ 'buttons.add' | translate }}
87
147
  </button>
88
- <button type="button" class="btn btn-outline-primary btn-icon">
148
+ <button type="button" class="btn btn-outline-secondary btn-icon">
89
149
  <i class="bi bi-arrow-right"></i>{{ 'buttons.next' | translate }}
90
150
  </button>
91
151
  <button type="button" class="btn btn-outline-secondary btn-icon">
@@ -104,18 +164,18 @@
104
164
  <button type="button" class="btn btn-secondary btn-icon" aria-label="{{ 'buttons.edit' | translate }}">
105
165
  <i class="bi bi-pencil"></i>
106
166
  </button>
107
- <button type="button" class="btn btn-danger btn-icon" aria-label="{{ 'buttons.delete' | translate }}">
167
+ <button type="button" class="btn btn-destructive-primary btn-icon" aria-label="{{ 'buttons.delete' | translate }}">
108
168
  <i class="bi bi-trash"></i>
109
169
  </button>
110
170
  </div>
111
171
  <div class="component-showcase mb-3">
112
- <button type="button" class="btn btn-outline-primary btn-icon" aria-label="{{ 'buttons.search' | translate }}">
172
+ <button type="button" class="btn btn-outline-secondary btn-icon" aria-label="{{ 'buttons.search' | translate }}">
113
173
  <i class="bi bi-search"></i>
114
174
  </button>
115
175
  <button type="button" class="btn btn-outline-secondary btn-icon" aria-label="{{ 'buttons.settings' | translate }}">
116
176
  <i class="bi bi-gear"></i>
117
177
  </button>
118
- <button type="button" class="btn btn-outline-neutral btn-icon" aria-label="{{ 'buttons.add' | translate }}">
178
+ <button type="button" class="btn btn-outline-secondary btn-icon" aria-label="{{ 'buttons.add' | translate }}">
119
179
  <i class="bi bi-plus-circle"></i>
120
180
  </button>
121
181
  </div>
@@ -168,8 +228,8 @@
168
228
  </div>
169
229
 
170
230
  <div class="dropdown">
171
- <button class="btn btn-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
172
- {{ 'buttons.dropdown_danger' | translate }}
231
+ <button class="btn btn-subtle dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
232
+ Subtle
173
233
  </button>
174
234
  <ul class="dropdown-menu">
175
235
  <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_action' | translate }}</button></li>
@@ -177,13 +237,10 @@
177
237
  <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_something' | translate }}</button></li>
178
238
  </ul>
179
239
  </div>
180
- </div>
181
- <app-code-example [htmlCode]="dropdownButtonCode"></app-code-example>
182
-
183
- <div class="component-showcase mb-3">
240
+
184
241
  <div class="dropdown">
185
- <button class="btn btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
186
- {{ 'buttons.dropdown_outline' | translate }}
242
+ <button class="btn btn-transparent dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
243
+ Transparent
187
244
  </button>
188
245
  <ul class="dropdown-menu">
189
246
  <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_action' | translate }}</button></li>
@@ -192,6 +249,20 @@
192
249
  </ul>
193
250
  </div>
194
251
 
252
+ <div class="dropdown">
253
+ <button class="btn btn-destructive-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
254
+ {{ 'buttons.dropdown_danger' | translate }}
255
+ </button>
256
+ <ul class="dropdown-menu">
257
+ <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_action' | translate }}</button></li>
258
+ <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_another' | translate }}</button></li>
259
+ <li><button class="dropdown-item" type="button">{{ 'buttons.dropdown_something' | translate }}</button></li>
260
+ </ul>
261
+ </div>
262
+ </div>
263
+ <app-code-example [htmlCode]="dropdownButtonCode"></app-code-example>
264
+
265
+ <div class="component-showcase mb-3">
195
266
  <div class="dropdown">
196
267
  <button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
197
268
  {{ 'buttons.dropdown_outline' | translate }}
@@ -204,7 +275,7 @@
204
275
  </div>
205
276
 
206
277
  <div class="dropdown">
207
- <button class="btn btn-outline-neutral dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
278
+ <button class="btn btn-destructive-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
208
279
  {{ 'buttons.dropdown_outline' | translate }}
209
280
  </button>
210
281
  <ul class="dropdown-menu">
@@ -7,8 +7,5 @@
7
7
  gap: 1rem;
8
8
  flex-wrap: wrap;
9
9
  align-items: center;
10
- padding: 1.5rem;
11
- background: #f8f9fa;
12
- border-radius: 0.5rem;
13
10
  }
14
11
 
@@ -13,12 +13,29 @@ export class ButtonsComponent {
13
13
  solidButtonsCode = `<button type="button" class="btn btn-primary">Primary</button>
14
14
  <button type="button" class="btn btn-neutral">Neutral</button>
15
15
  <button type="button" class="btn btn-secondary">Secondary</button>
16
- <button type="button" class="btn btn-danger">Danger</button>`;
16
+ <button type="button" class="btn btn-subtle">Subtle</button>
17
+ <button type="button" class="btn btn-transparent">Transparent</button>`;
17
18
 
18
- outlineButtonsCode = `<button type="button" class="btn btn-outline-primary">Primary</button>
19
- <button type="button" class="btn btn-outline-secondary">Secondary</button>
20
- <button type="button" class="btn btn-outline-neutral">Neutral</button>
21
- <button type="button" class="btn btn-outline-danger">Danger</button>`;
19
+ destructiveButtonsCode = `<button type="button" class="btn btn-destructive-primary">Destructive Primary</button>
20
+ <button type="button" class="btn btn-destructive-secondary">Destructive Secondary</button>
21
+ <button type="button" class="btn btn-destructive-subtle">Destructive Subtle</button>
22
+ <button type="button" class="btn btn-destructive-transparent">Destructive Transparent</button>`;
23
+
24
+ onPrimaryButtonsCode = `<button type="button" class="btn btn-primary">Primary</button>
25
+ <button type="button" class="btn btn-neutral">Neutral</button>
26
+ <button type="button" class="btn btn-secondary">Secondary</button>
27
+ <button type="button" class="btn btn-outline-secondary">Outline Secondary</button>
28
+ <button type="button" class="btn btn-subtle">Subtle</button>
29
+ <button type="button" class="btn btn-transparent">Transparent</button>
30
+
31
+ <button type="button" class="btn btn-destructive-primary">Destructive Primary</button>
32
+ <button type="button" class="btn btn-destructive-secondary">Destructive Secondary</button>
33
+ <button type="button" class="btn btn-destructive-outline-secondary">Destructive Outline</button>
34
+ <button type="button" class="btn btn-destructive-subtle">Destructive Subtle</button>
35
+ <button type="button" class="btn btn-destructive-transparent">Destructive Transparent</button>`;
36
+
37
+ outlineButtonsCode = `<button type="button" class="btn btn-outline-secondary">Secondary</button>
38
+ <button type="button" class="btn btn-destructive-outline-secondary">Destructive</button>`;
22
39
 
23
40
  buttonSizesCode = `<button type="button" class="btn btn-primary btn-lg">Large</button>
24
41
  <button type="button" class="btn btn-primary">Default</button>
@@ -38,8 +55,17 @@ export class ButtonsComponent {
38
55
  <button type="button" class="btn btn-secondary btn-icon">
39
56
  <i class="bi bi-pencil"></i>Edit
40
57
  </button>
41
- <button type="button" class="btn btn-danger btn-icon">
58
+ <button type="button" class="btn btn-subtle btn-icon">
59
+ <i class="bi bi-eye"></i>View
60
+ </button>
61
+ <button type="button" class="btn btn-transparent btn-icon">
62
+ <i class="bi bi-link"></i>Link
63
+ </button>
64
+ <button type="button" class="btn btn-destructive-primary btn-icon">
42
65
  <i class="bi bi-trash"></i>Delete
66
+ </button>
67
+ <button type="button" class="btn btn-destructive-secondary btn-icon">
68
+ <i class="bi bi-x-circle"></i>Cancel
43
69
  </button>`;
44
70
 
45
71
  buttonIconRightCode = `<button type="button" class="btn btn-primary btn-icon">
@@ -61,7 +87,7 @@ export class ButtonsComponent {
61
87
  <button type="button" class="btn btn-secondary btn-icon" aria-label="Edit">
62
88
  <i class="bi bi-pencil"></i>
63
89
  </button>
64
- <button type="button" class="btn btn-danger btn-icon" aria-label="Delete">
90
+ <button type="button" class="btn btn-destructive-primary btn-icon" aria-label="Delete">
65
91
  <i class="bi bi-trash"></i>
66
92
  </button>`;
67
93
 
@@ -85,6 +111,50 @@ export class ButtonsComponent {
85
111
  <li><button class="dropdown-item" type="button">Another action</button></li>
86
112
  <li><button class="dropdown-item" type="button">Something else here</button></li>
87
113
  </ul>
114
+ </div>
115
+
116
+ <div class="dropdown">
117
+ <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
118
+ Dropdown Secondary
119
+ </button>
120
+ <ul class="dropdown-menu">
121
+ <li><button class="dropdown-item" type="button">Action</button></li>
122
+ <li><button class="dropdown-item" type="button">Another action</button></li>
123
+ <li><button class="dropdown-item" type="button">Something else here</button></li>
124
+ </ul>
125
+ </div>
126
+
127
+ <div class="dropdown">
128
+ <button class="btn btn-subtle dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
129
+ Subtle
130
+ </button>
131
+ <ul class="dropdown-menu">
132
+ <li><button class="dropdown-item" type="button">Action</button></li>
133
+ <li><button class="dropdown-item" type="button">Another action</button></li>
134
+ <li><button class="dropdown-item" type="button">Something else here</button></li>
135
+ </ul>
136
+ </div>
137
+
138
+ <div class="dropdown">
139
+ <button class="btn btn-transparent dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
140
+ Transparent
141
+ </button>
142
+ <ul class="dropdown-menu">
143
+ <li><button class="dropdown-item" type="button">Action</button></li>
144
+ <li><button class="dropdown-item" type="button">Another action</button></li>
145
+ <li><button class="dropdown-item" type="button">Something else here</button></li>
146
+ </ul>
147
+ </div>
148
+
149
+ <div class="dropdown">
150
+ <button class="btn btn-destructive-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
151
+ Destructive Primary
152
+ </button>
153
+ <ul class="dropdown-menu">
154
+ <li><button class="dropdown-item" type="button">Action</button></li>
155
+ <li><button class="dropdown-item" type="button">Another action</button></li>
156
+ <li><button class="dropdown-item" type="button">Something else here</button></li>
157
+ </ul>
88
158
  </div>`;
89
159
 
90
160
  dropdownSizesCode = `<div class="dropdown">