sdga-ui 1.0.7 → 1.0.9

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 (105) hide show
  1. package/css/dga-ui.css +24882 -27623
  2. package/css/dga-ui.css.map +1 -1
  3. package/package.json +20 -4
  4. package/theme/_variables.scss +0 -1
  5. package/theme/components/_buttons.scss +1 -302
  6. package/theme/config/_base.scss +1 -1
  7. package/theme/customizations/_alerts.scss +15 -14
  8. package/theme/customizations/_buttons.scss +305 -244
  9. package/theme/customizations/_footer.scss +122 -45
  10. package/theme/customizations/_global.scss +20 -2
  11. package/theme/customizations/_links.scss +55 -53
  12. package/theme/customizations/_toasts.scss +13 -14
  13. package/theme/dga-ui.scss +1 -2
  14. package/.editorconfig +0 -23
  15. package/.github/workflows/deploy.yml +0 -71
  16. package/.github/workflows/publish.yml +0 -36
  17. package/.prettierignore +0 -73
  18. package/.prettierrc +0 -17
  19. package/demo-angular/.editorconfig +0 -17
  20. package/demo-angular/.vscode/extensions.json +0 -4
  21. package/demo-angular/.vscode/launch.json +0 -20
  22. package/demo-angular/.vscode/tasks.json +0 -42
  23. package/demo-angular/README.md +0 -91
  24. package/demo-angular/angular.json +0 -93
  25. package/demo-angular/package-lock.json +0 -10600
  26. package/demo-angular/package.json +0 -53
  27. package/demo-angular/public/404.html +0 -35
  28. package/demo-angular/public/favicon.ico +0 -0
  29. package/demo-angular/public/i18n/ar.json +0 -289
  30. package/demo-angular/public/i18n/en.json +0 -289
  31. package/demo-angular/src/app/app.config.ts +0 -20
  32. package/demo-angular/src/app/app.html +0 -52
  33. package/demo-angular/src/app/app.routes.ts +0 -53
  34. package/demo-angular/src/app/app.scss +0 -430
  35. package/demo-angular/src/app/app.spec.ts +0 -23
  36. package/demo-angular/src/app/app.ts +0 -94
  37. package/demo-angular/src/app/shared/code-example/code-example.component.html +0 -30
  38. package/demo-angular/src/app/shared/code-example/code-example.component.scss +0 -183
  39. package/demo-angular/src/app/shared/code-example/code-example.component.ts +0 -78
  40. package/demo-angular/src/app/views/alerts/alerts.component.html +0 -155
  41. package/demo-angular/src/app/views/alerts/alerts.component.scss +0 -3
  42. package/demo-angular/src/app/views/alerts/alerts.component.ts +0 -134
  43. package/demo-angular/src/app/views/buttons/buttons.component.html +0 -289
  44. package/demo-angular/src/app/views/buttons/buttons.component.scss +0 -14
  45. package/demo-angular/src/app/views/buttons/buttons.component.ts +0 -155
  46. package/demo-angular/src/app/views/cards/cards.component.html +0 -156
  47. package/demo-angular/src/app/views/cards/cards.component.html.backup +0 -156
  48. package/demo-angular/src/app/views/cards/cards.component.scss +0 -11
  49. package/demo-angular/src/app/views/cards/cards.component.ts +0 -194
  50. package/demo-angular/src/app/views/contexts/contexts.component.html +0 -204
  51. package/demo-angular/src/app/views/contexts/contexts.component.ts +0 -10
  52. package/demo-angular/src/app/views/footer/footer.html +0 -282
  53. package/demo-angular/src/app/views/footer/footer.scss +0 -0
  54. package/demo-angular/src/app/views/footer/footer.spec.ts +0 -23
  55. package/demo-angular/src/app/views/footer/footer.ts +0 -142
  56. package/demo-angular/src/app/views/forms/forms.component.html +0 -347
  57. package/demo-angular/src/app/views/forms/forms.component.scss +0 -3
  58. package/demo-angular/src/app/views/forms/forms.component.ts +0 -222
  59. package/demo-angular/src/app/views/header/header.html +0 -1
  60. package/demo-angular/src/app/views/header/header.scss +0 -0
  61. package/demo-angular/src/app/views/header/header.spec.ts +0 -23
  62. package/demo-angular/src/app/views/header/header.ts +0 -11
  63. package/demo-angular/src/app/views/home/home.component.html +0 -33
  64. package/demo-angular/src/app/views/home/home.component.scss +0 -35
  65. package/demo-angular/src/app/views/home/home.component.ts +0 -12
  66. package/demo-angular/src/app/views/links/links.component.html +0 -21
  67. package/demo-angular/src/app/views/links/links.component.scss +0 -11
  68. package/demo-angular/src/app/views/links/links.component.ts +0 -19
  69. package/demo-angular/src/app/views/tables/tables.component.html +0 -289
  70. package/demo-angular/src/app/views/tables/tables.component.scss +0 -3
  71. package/demo-angular/src/app/views/tables/tables.component.ts +0 -278
  72. package/demo-angular/src/app/views/toasts/toasts.component.html +0 -201
  73. package/demo-angular/src/app/views/toasts/toasts.component.scss +0 -0
  74. package/demo-angular/src/app/views/toasts/toasts.component.ts +0 -182
  75. package/demo-angular/src/index.html +0 -28
  76. package/demo-angular/src/main.ts +0 -6
  77. package/demo-angular/src/styles.scss +0 -4
  78. package/demo-angular/tsconfig.app.json +0 -15
  79. package/demo-angular/tsconfig.json +0 -33
  80. package/demo-angular/tsconfig.spec.json +0 -15
  81. package/sdga-ui/README.md +0 -45
  82. package/sdga-ui/content/docs/components/alerts.mdx +0 -475
  83. package/sdga-ui/content/docs/index.mdx +0 -239
  84. package/sdga-ui/next.config.mjs +0 -10
  85. package/sdga-ui/package-lock.json +0 -5851
  86. package/sdga-ui/package.json +0 -32
  87. package/sdga-ui/postcss.config.mjs +0 -5
  88. package/sdga-ui/source.config.ts +0 -27
  89. package/sdga-ui/src/app/(home)/layout.tsx +0 -6
  90. package/sdga-ui/src/app/(home)/page.tsx +0 -202
  91. package/sdga-ui/src/app/api/search/route.ts +0 -7
  92. package/sdga-ui/src/app/docs/[[...slug]]/page.tsx +0 -54
  93. package/sdga-ui/src/app/docs/layout.tsx +0 -11
  94. package/sdga-ui/src/app/global.css +0 -3
  95. package/sdga-ui/src/app/layout.tsx +0 -25
  96. package/sdga-ui/src/app/llms-full.txt/route.ts +0 -10
  97. package/sdga-ui/src/app/og/docs/[...slug]/route.tsx +0 -34
  98. package/sdga-ui/src/app/sdga-scoped.css +0 -7
  99. package/sdga-ui/src/components/sdga-preview.tsx +0 -105
  100. package/sdga-ui/src/lib/layout.shared.tsx +0 -9
  101. package/sdga-ui/src/lib/source.ts +0 -27
  102. package/sdga-ui/src/mdx-components.tsx +0 -9
  103. package/sdga-ui/tsconfig.json +0 -46
  104. package/theme/config/_contexts.scss +0 -471
  105. package/theme/customizations/_contexts.scss +0 -432
@@ -1,183 +0,0 @@
1
- .code-example-wrapper {
2
- margin-top: 1rem;
3
- margin-bottom: 2rem;
4
- }
5
-
6
- .code-header {
7
- display: flex;
8
- justify-content: space-between;
9
- align-items: center;
10
- padding: 0.5rem 1rem;
11
- background: #f8f9fa;
12
- border: 1px solid #dee2e6;
13
- border-bottom: none;
14
- border-radius: 0.375rem 0.375rem 0 0;
15
-
16
- .code-title {
17
- font-size: 0.875rem;
18
- font-weight: 600;
19
- color: #495057;
20
- }
21
-
22
- .btn-toggle {
23
- padding: 0.25rem 0.75rem;
24
- font-size: 0.875rem;
25
- background: white;
26
- border: 1px solid #dee2e6;
27
- border-radius: 0.25rem;
28
- cursor: pointer;
29
- transition: all 0.2s;
30
-
31
- &:hover {
32
- background: #e9ecef;
33
- }
34
- }
35
- }
36
-
37
- .code-example {
38
- background: #282c34;
39
- border: 1px solid #dee2e6;
40
- border-radius: 0 0 0.375rem 0.375rem;
41
- overflow: hidden;
42
- direction: ltr;
43
-
44
- .code-tabs {
45
- display: flex;
46
- gap: 0.5rem;
47
- padding: 0.75rem 1rem;
48
- background: #21252b;
49
- border-bottom: 1px solid #181a1f;
50
-
51
- .tab-btn {
52
- padding: 0.375rem 0.875rem;
53
- font-size: 0.813rem;
54
- font-weight: 500;
55
- color: #abb2bf;
56
- background: transparent;
57
- border: 1px solid transparent;
58
- border-radius: 0.25rem;
59
- cursor: pointer;
60
- transition: all 0.2s;
61
- text-transform: uppercase;
62
-
63
- &:hover {
64
- color: #ffffff;
65
- background: #282c34;
66
- }
67
-
68
- &.active {
69
- color: #61afef;
70
- background: #282c34;
71
- border-color: #61afef;
72
- }
73
- }
74
-
75
- .btn-copy {
76
- margin-inline-start: auto;
77
- padding: 0.375rem 0.875rem;
78
- font-size: 0.813rem;
79
- font-weight: 500;
80
- color: #98c379;
81
- background: transparent;
82
- border: 1px solid #98c379;
83
- border-radius: 0.25rem;
84
- cursor: pointer;
85
- transition: all 0.2s;
86
-
87
- &:hover {
88
- background: #98c37920;
89
- }
90
-
91
- &:active {
92
- transform: scale(0.95);
93
- }
94
- }
95
- }
96
-
97
- pre {
98
- margin: 0;
99
- padding: 1rem;
100
- overflow-x: auto;
101
- background: #282c34;
102
-
103
- code {
104
- font-family: 'Fira Code', 'Consolas', 'Monaco', monospace;
105
- font-size: 0.875rem;
106
- line-height: 1.6;
107
- color: #abb2bf;
108
- }
109
- }
110
- }
111
-
112
- // Syntax highlighting styles (Atom One Dark theme)
113
- :host ::ng-deep {
114
- .hljs-comment,
115
- .hljs-quote {
116
- color: #5c6370;
117
- font-style: italic;
118
- }
119
-
120
- .hljs-doctag,
121
- .hljs-keyword,
122
- .hljs-formula {
123
- color: #c678dd;
124
- }
125
-
126
- .hljs-section,
127
- .hljs-name,
128
- .hljs-selector-tag,
129
- .hljs-deletion,
130
- .hljs-subst {
131
- color: #e06c75;
132
- }
133
-
134
- .hljs-literal {
135
- color: #56b6c2;
136
- }
137
-
138
- .hljs-string,
139
- .hljs-regexp,
140
- .hljs-addition,
141
- .hljs-attribute,
142
- .hljs-meta .hljs-string {
143
- color: #98c379;
144
- }
145
-
146
- .hljs-attr,
147
- .hljs-variable,
148
- .hljs-template-variable,
149
- .hljs-type,
150
- .hljs-selector-class,
151
- .hljs-selector-attr,
152
- .hljs-selector-pseudo,
153
- .hljs-number {
154
- color: #d19a66;
155
- }
156
-
157
- .hljs-symbol,
158
- .hljs-bullet,
159
- .hljs-link,
160
- .hljs-meta,
161
- .hljs-selector-id,
162
- .hljs-title {
163
- color: #61afef;
164
- }
165
-
166
- .hljs-built_in,
167
- .hljs-title.class_,
168
- .hljs-class .hljs-title {
169
- color: #e6c07b;
170
- }
171
-
172
- .hljs-emphasis {
173
- font-style: italic;
174
- }
175
-
176
- .hljs-strong {
177
- font-weight: bold;
178
- }
179
-
180
- .hljs-link {
181
- text-decoration: underline;
182
- }
183
- }
@@ -1,78 +0,0 @@
1
- import { Component, Input, signal } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { TranslateModule } from '@ngx-translate/core';
4
- import hljs from 'highlight.js';
5
-
6
- @Component({
7
- selector: 'app-code-example',
8
- imports: [CommonModule, TranslateModule],
9
- templateUrl: './code-example.component.html',
10
- styleUrls: ['./code-example.component.scss'],
11
- })
12
- export class CodeExampleComponent {
13
- @Input() htmlCode?: string;
14
- @Input() tsCode?: string;
15
- @Input() scssCode?: string;
16
- @Input() title?: string;
17
- @Input() expanded = false;
18
-
19
- isExpanded = signal(false);
20
- activeTab = signal<'html' | 'ts' | 'scss'>('html');
21
- copySuccess = signal(false);
22
-
23
- ngOnInit() {
24
- this.isExpanded.set(this.expanded);
25
- // Set initial active tab to first available code
26
- if (this.htmlCode) this.activeTab.set('html');
27
- else if (this.tsCode) this.activeTab.set('ts');
28
- else if (this.scssCode) this.activeTab.set('scss');
29
- }
30
-
31
- toggleExpand() {
32
- this.isExpanded.update((value) => !value);
33
- }
34
-
35
- setActiveTab(tab: 'html' | 'ts' | 'scss') {
36
- this.activeTab.set(tab);
37
- }
38
-
39
- get currentCode(): string {
40
- const tab = this.activeTab();
41
- if (tab === 'html' && this.htmlCode) return this.htmlCode;
42
- if (tab === 'ts' && this.tsCode) return this.tsCode;
43
- if (tab === 'scss' && this.scssCode) return this.scssCode;
44
- return '';
45
- }
46
-
47
- get highlightedCode(): string {
48
- const code = this.currentCode;
49
- const tab = this.activeTab();
50
- let language = 'html';
51
- if (tab === 'ts') language = 'typescript';
52
- if (tab === 'scss') language = 'scss';
53
-
54
- try {
55
- return hljs.highlight(code, { language }).value;
56
- } catch {
57
- return code;
58
- }
59
- }
60
-
61
- get availableTabs(): Array<'html' | 'ts' | 'scss'> {
62
- const tabs: Array<'html' | 'ts' | 'scss'> = [];
63
- if (this.htmlCode) tabs.push('html');
64
- if (this.tsCode) tabs.push('ts');
65
- if (this.scssCode) tabs.push('scss');
66
- return tabs;
67
- }
68
-
69
- async copyCode() {
70
- try {
71
- await navigator.clipboard.writeText(this.currentCode);
72
- this.copySuccess.set(true);
73
- setTimeout(() => this.copySuccess.set(false), 2000);
74
- } catch (err) {
75
- console.error('Failed to copy code:', err);
76
- }
77
- }
78
- }
@@ -1,155 +0,0 @@
1
- <div class="container py-5">
2
- <h1 class="display-4 mb-4">{{ 'alerts.title' | translate }}</h1>
3
- <p class="lead mb-5">{{ 'alerts.subtitle' | translate }}</p>
4
-
5
- <section class="demo-section">
6
- <h2>{{ 'alerts.section_dismissible' | translate }}</h2>
7
- <div class="d-flex flex-wrap gap-3">
8
- <section>
9
- <h3 class="h5 mb-3">Standard Alerts</h3>
10
- <div class="alert alert-success alert-dismissible fade show" role="alert">
11
- <i class="bi bi-check alert-icon"></i>
12
- <div>
13
- <strong class="alert-title">{{ 'alerts.success' | translate }}</strong> {{ 'alerts.success_text' | translate }}
14
- <div class="alert-footer">
15
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
16
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
17
- </div>
18
- </div>
19
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
20
- </div>
21
-
22
- <app-code-example [htmlCode]="successAlertCode"></app-code-example>
23
-
24
- <div class="alert alert-danger alert-dismissible fade show" role="alert">
25
- <i class="bi bi-exclamation-circle alert-icon"></i>
26
- <div>
27
- <strong class="alert-title">{{ 'alerts.danger' | translate }}</strong> {{ 'alerts.danger_text' | translate }}
28
- <div class="alert-footer">
29
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
30
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
31
- </div>
32
- </div>
33
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
34
- </div>
35
-
36
- <app-code-example [htmlCode]="dangerAlertCode"></app-code-example>
37
-
38
- <div class="alert alert-warning alert-dismissible fade show" role="alert">
39
- <i class="bi bi-exclamation-triangle alert-icon"></i>
40
- <div>
41
- <strong class="alert-title">{{ 'alerts.warning' | translate }}</strong> {{ 'alerts.warning_text' | translate }}
42
- <div class="alert-footer">
43
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
44
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
45
- </div>
46
- </div>
47
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
48
- </div>
49
-
50
- <app-code-example [htmlCode]="warningAlertCode"></app-code-example>
51
-
52
- <div class="alert alert-info alert-dismissible fade show" role="alert">
53
- <i class="bi bi-info-circle alert-icon"></i>
54
- <div>
55
- <strong class="alert-title">{{ 'alerts.info' | translate }}</strong> {{ 'alerts.info_text' | translate }}
56
- <div class="alert-footer">
57
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
58
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
59
- </div>
60
- </div>
61
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
62
- </div>
63
-
64
- <app-code-example [htmlCode]="infoAlertCode"></app-code-example>
65
-
66
- <div class="alert alert-neutral alert-dismissible fade show" role="alert">
67
- <i class="bi bi-info-circle alert-icon"></i>
68
- <div>
69
- <strong class="alert-title">{{ 'alerts.neutral' | translate }}</strong> {{ 'alerts.neutral_text' | translate }}
70
- <div class="alert-footer">
71
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
72
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
73
- </div>
74
- </div>
75
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
76
- </div>
77
-
78
- <app-code-example [htmlCode]="neutralAlertCode"></app-code-example>
79
- </section>
80
-
81
- <section>
82
- <h3 class="h5 mb-3">Side-bordered Alerts</h3>
83
- <div class="alert alert-side alert-success alert-dismissible fade show" role="alert">
84
- <i class="bi bi-check alert-icon"></i>
85
- <div>
86
- <strong class="alert-title">{{ 'alerts.success' | translate }}</strong> {{ 'alerts.success_text' | translate }}
87
- <div class="alert-footer">
88
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
89
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
90
- </div>
91
- </div>
92
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
93
- </div>
94
-
95
- <app-code-example [htmlCode]="sideSuccessAlertCode"></app-code-example>
96
-
97
- <div class="alert alert-side alert-danger alert-dismissible fade show" role="alert">
98
- <i class="bi bi-exclamation-circle alert-icon"></i>
99
- <div>
100
- <strong class="alert-title">{{ 'alerts.danger' | translate }}</strong> {{ 'alerts.danger_text' | translate }}
101
- <div class="alert-footer">
102
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
103
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
104
- </div>
105
- </div>
106
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
107
- </div>
108
-
109
- <app-code-example [htmlCode]="sideDangerAlertCode"></app-code-example>
110
-
111
- <div class="alert alert-side alert-warning alert-dismissible fade show" role="alert">
112
- <i class="bi bi-exclamation-triangle alert-icon"></i>
113
- <div>
114
- <strong class="alert-title">{{ 'alerts.warning' | translate }}</strong> {{ 'alerts.warning_text' | translate }}
115
- <div class="alert-footer">
116
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
117
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
118
- </div>
119
- </div>
120
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
121
- </div>
122
-
123
- <app-code-example [htmlCode]="sideWarningAlertCode"></app-code-example>
124
-
125
- <div class="alert alert-side alert-info alert-dismissible fade show" role="alert">
126
- <i class="bi bi-info-circle alert-icon"></i>
127
- <div>
128
- <strong class="alert-title">{{ 'alerts.info' | translate }}</strong> {{ 'alerts.info_text' | translate }}
129
- <div class="alert-footer">
130
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
131
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
132
- </div>
133
- </div>
134
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
135
- </div>
136
-
137
- <app-code-example [htmlCode]="sideInfoAlertCode"></app-code-example>
138
-
139
- <div class="alert alert-side alert-neutral alert-dismissible fade show" role="alert">
140
- <i class="bi bi-info-circle alert-icon"></i>
141
- <div>
142
- <strong class="alert-title">{{ 'alerts.neutral' | translate }}</strong> {{ 'alerts.neutral_text' | translate }}
143
- <div class="alert-footer">
144
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
145
- <button type="button" class="btn btn-subtle">{{ 'buttons.normal' | translate }}</button>
146
- </div>
147
- </div>
148
- <button type="button" class="btn-close" data-bs-dismiss="alert" [attr.aria-label]="'common.close' | translate"></button>
149
- </div>
150
-
151
- <app-code-example [htmlCode]="sideNeutralAlertCode"></app-code-example>
152
- </section>
153
- </div>
154
- </section>
155
- </div>
@@ -1,3 +0,0 @@
1
- .demo-section {
2
- margin-bottom: 4rem;
3
- }
@@ -1,134 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { TranslateModule } from '@ngx-translate/core';
3
- import { CodeExampleComponent } from '../../shared/code-example/code-example.component';
4
-
5
- @Component({
6
- selector: 'app-alerts',
7
- imports: [TranslateModule, CodeExampleComponent],
8
- templateUrl: './alerts.component.html',
9
- styleUrl: './alerts.component.scss',
10
- changeDetection: ChangeDetectionStrategy.OnPush
11
- })
12
- export class AlertsComponent {
13
- // Standard Dismissible Alerts
14
- successAlertCode = `<div class="alert alert-success alert-dismissible fade show" role="alert">
15
- <i class="bi bi-check alert-icon"></i>
16
- <div>
17
- <strong class="alert-title">Success!</strong> Your action completed successfully.
18
- <div class="alert-footer">
19
- <button type="button" class="btn btn-subtle">Action</button>
20
- <button type="button" class="btn btn-subtle">Cancel</button>
21
- </div>
22
- </div>
23
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
24
- </div>`;
25
-
26
- dangerAlertCode = `<div class="alert alert-danger alert-dismissible fade show" role="alert">
27
- <i class="bi bi-exclamation-circle alert-icon"></i>
28
- <div>
29
- <strong class="alert-title">Error!</strong> Something went wrong with your request.
30
- <div class="alert-footer">
31
- <button type="button" class="btn btn-subtle">Retry</button>
32
- <button type="button" class="btn btn-subtle">Cancel</button>
33
- </div>
34
- </div>
35
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
36
- </div>`;
37
-
38
- warningAlertCode = `<div class="alert alert-warning alert-dismissible fade show" role="alert">
39
- <i class="bi bi-exclamation-triangle alert-icon"></i>
40
- <div>
41
- <strong class="alert-title">Warning!</strong> Please review before proceeding.
42
- <div class="alert-footer">
43
- <button type="button" class="btn btn-subtle">Review</button>
44
- <button type="button" class="btn btn-subtle">Dismiss</button>
45
- </div>
46
- </div>
47
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
48
- </div>`;
49
-
50
- infoAlertCode = `<div class="alert alert-info alert-dismissible fade show" role="alert">
51
- <i class="bi bi-info-circle alert-icon"></i>
52
- <div>
53
- <strong class="alert-title">Info</strong> Here's some helpful information.
54
- <div class="alert-footer">
55
- <button type="button" class="btn btn-subtle">Learn More</button>
56
- <button type="button" class="btn btn-subtle">Dismiss</button>
57
- </div>
58
- </div>
59
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
60
- </div>`;
61
-
62
- neutralAlertCode = `<div class="alert alert-neutral alert-dismissible fade show" role="alert">
63
- <i class="bi bi-info-circle alert-icon"></i>
64
- <div>
65
- <strong class="alert-title">Neutral</strong> Standard notification message.
66
- <div class="alert-footer">
67
- <button type="button" class="btn btn-subtle">Action</button>
68
- <button type="button" class="btn btn-subtle">Cancel</button>
69
- </div>
70
- </div>
71
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
72
- </div>`;
73
-
74
- // Side-bordered Alerts
75
- sideSuccessAlertCode = `<div class="alert alert-side alert-success alert-dismissible fade show" role="alert">
76
- <i class="bi bi-check alert-icon"></i>
77
- <div>
78
- <strong class="alert-title">Success!</strong> Your action completed successfully.
79
- <div class="alert-footer">
80
- <button type="button" class="btn btn-subtle">Action</button>
81
- <button type="button" class="btn btn-subtle">Cancel</button>
82
- </div>
83
- </div>
84
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
85
- </div>`;
86
-
87
- sideDangerAlertCode = `<div class="alert alert-side alert-danger alert-dismissible fade show" role="alert">
88
- <i class="bi bi-exclamation-circle alert-icon"></i>
89
- <div>
90
- <strong class="alert-title">Error!</strong> Something went wrong with your request.
91
- <div class="alert-footer">
92
- <button type="button" class="btn btn-subtle">Retry</button>
93
- <button type="button" class="btn btn-subtle">Cancel</button>
94
- </div>
95
- </div>
96
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
97
- </div>`;
98
-
99
- sideWarningAlertCode = `<div class="alert alert-side alert-warning alert-dismissible fade show" role="alert">
100
- <i class="bi bi-exclamation-triangle alert-icon"></i>
101
- <div>
102
- <strong class="alert-title">Warning!</strong> Please review before proceeding.
103
- <div class="alert-footer">
104
- <button type="button" class="btn btn-subtle">Review</button>
105
- <button type="button" class="btn btn-subtle">Dismiss</button>
106
- </div>
107
- </div>
108
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
109
- </div>`;
110
-
111
- sideInfoAlertCode = `<div class="alert alert-side alert-info alert-dismissible fade show" role="alert">
112
- <i class="bi bi-info-circle alert-icon"></i>
113
- <div>
114
- <strong class="alert-title">Info</strong> Here's some helpful information.
115
- <div class="alert-footer">
116
- <button type="button" class="btn btn-subtle">Learn More</button>
117
- <button type="button" class="btn btn-subtle">Dismiss</button>
118
- </div>
119
- </div>
120
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
121
- </div>`;
122
-
123
- sideNeutralAlertCode = `<div class="alert alert-side alert-neutral alert-dismissible fade show" role="alert">
124
- <i class="bi bi-info-circle alert-icon"></i>
125
- <div>
126
- <strong class="alert-title">Neutral</strong> Standard notification message.
127
- <div class="alert-footer">
128
- <button type="button" class="btn btn-subtle">Action</button>
129
- <button type="button" class="btn btn-subtle">Cancel</button>
130
- </div>
131
- </div>
132
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
133
- </div>`;
134
- }