sdga-ui 1.0.8 → 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 (90) hide show
  1. package/css/dga-ui.css +16 -2
  2. package/css/dga-ui.css.map +1 -1
  3. package/package.json +20 -4
  4. package/theme/customizations/_links.scss +22 -21
  5. package/.editorconfig +0 -23
  6. package/.github/workflows/deploy.yml +0 -71
  7. package/.github/workflows/publish.yml +0 -36
  8. package/.prettierignore +0 -73
  9. package/.prettierrc +0 -17
  10. package/demo-angular/.editorconfig +0 -17
  11. package/demo-angular/.vscode/extensions.json +0 -4
  12. package/demo-angular/.vscode/launch.json +0 -20
  13. package/demo-angular/.vscode/tasks.json +0 -42
  14. package/demo-angular/README.md +0 -91
  15. package/demo-angular/angular.json +0 -96
  16. package/demo-angular/package-lock.json +0 -10600
  17. package/demo-angular/package.json +0 -53
  18. package/demo-angular/public/404.html +0 -35
  19. package/demo-angular/public/favicon.ico +0 -0
  20. package/demo-angular/public/i18n/ar.json +0 -289
  21. package/demo-angular/public/i18n/en.json +0 -289
  22. package/demo-angular/src/app/app.config.ts +0 -20
  23. package/demo-angular/src/app/app.html +0 -52
  24. package/demo-angular/src/app/app.routes.ts +0 -49
  25. package/demo-angular/src/app/app.scss +0 -430
  26. package/demo-angular/src/app/app.spec.ts +0 -23
  27. package/demo-angular/src/app/app.ts +0 -97
  28. package/demo-angular/src/app/shared/code-example/code-example.component.html +0 -30
  29. package/demo-angular/src/app/shared/code-example/code-example.component.scss +0 -183
  30. package/demo-angular/src/app/shared/code-example/code-example.component.ts +0 -89
  31. package/demo-angular/src/app/views/alerts/alerts.component.html +0 -155
  32. package/demo-angular/src/app/views/alerts/alerts.component.scss +0 -3
  33. package/demo-angular/src/app/views/alerts/alerts.component.ts +0 -134
  34. package/demo-angular/src/app/views/buttons/buttons.component.html +0 -360
  35. package/demo-angular/src/app/views/buttons/buttons.component.scss +0 -11
  36. package/demo-angular/src/app/views/buttons/buttons.component.ts +0 -225
  37. package/demo-angular/src/app/views/cards/cards.component.html +0 -156
  38. package/demo-angular/src/app/views/cards/cards.component.html.backup +0 -156
  39. package/demo-angular/src/app/views/cards/cards.component.scss +0 -11
  40. package/demo-angular/src/app/views/cards/cards.component.ts +0 -194
  41. package/demo-angular/src/app/views/footer/footer.html +0 -270
  42. package/demo-angular/src/app/views/footer/footer.ts +0 -276
  43. package/demo-angular/src/app/views/forms/forms.component.html +0 -347
  44. package/demo-angular/src/app/views/forms/forms.component.scss +0 -3
  45. package/demo-angular/src/app/views/forms/forms.component.ts +0 -222
  46. package/demo-angular/src/app/views/header/header.html +0 -1
  47. package/demo-angular/src/app/views/header/header.scss +0 -0
  48. package/demo-angular/src/app/views/header/header.spec.ts +0 -23
  49. package/demo-angular/src/app/views/header/header.ts +0 -11
  50. package/demo-angular/src/app/views/home/home.component.html +0 -33
  51. package/demo-angular/src/app/views/home/home.component.scss +0 -35
  52. package/demo-angular/src/app/views/home/home.component.ts +0 -12
  53. package/demo-angular/src/app/views/links/links.component.html +0 -21
  54. package/demo-angular/src/app/views/links/links.component.scss +0 -11
  55. package/demo-angular/src/app/views/links/links.component.ts +0 -19
  56. package/demo-angular/src/app/views/tables/tables.component.html +0 -289
  57. package/demo-angular/src/app/views/tables/tables.component.scss +0 -3
  58. package/demo-angular/src/app/views/tables/tables.component.ts +0 -278
  59. package/demo-angular/src/app/views/toasts/toasts.component.html +0 -201
  60. package/demo-angular/src/app/views/toasts/toasts.component.scss +0 -0
  61. package/demo-angular/src/app/views/toasts/toasts.component.ts +0 -182
  62. package/demo-angular/src/index.html +0 -28
  63. package/demo-angular/src/main.ts +0 -6
  64. package/demo-angular/src/styles.scss +0 -4
  65. package/demo-angular/tsconfig.app.json +0 -16
  66. package/demo-angular/tsconfig.json +0 -33
  67. package/demo-angular/tsconfig.spec.json +0 -15
  68. package/sdga-ui/README.md +0 -45
  69. package/sdga-ui/content/docs/components/alerts.mdx +0 -475
  70. package/sdga-ui/content/docs/index.mdx +0 -239
  71. package/sdga-ui/next.config.mjs +0 -10
  72. package/sdga-ui/package-lock.json +0 -5851
  73. package/sdga-ui/package.json +0 -32
  74. package/sdga-ui/postcss.config.mjs +0 -5
  75. package/sdga-ui/source.config.ts +0 -27
  76. package/sdga-ui/src/app/(home)/layout.tsx +0 -6
  77. package/sdga-ui/src/app/(home)/page.tsx +0 -202
  78. package/sdga-ui/src/app/api/search/route.ts +0 -7
  79. package/sdga-ui/src/app/docs/[[...slug]]/page.tsx +0 -54
  80. package/sdga-ui/src/app/docs/layout.tsx +0 -11
  81. package/sdga-ui/src/app/global.css +0 -3
  82. package/sdga-ui/src/app/layout.tsx +0 -25
  83. package/sdga-ui/src/app/llms-full.txt/route.ts +0 -10
  84. package/sdga-ui/src/app/og/docs/[...slug]/route.tsx +0 -34
  85. package/sdga-ui/src/app/sdga-scoped.css +0 -7
  86. package/sdga-ui/src/components/sdga-preview.tsx +0 -105
  87. package/sdga-ui/src/lib/layout.shared.tsx +0 -9
  88. package/sdga-ui/src/lib/source.ts +0 -27
  89. package/sdga-ui/src/mdx-components.tsx +0 -9
  90. package/sdga-ui/tsconfig.json +0 -46
@@ -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,89 +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
- @Input() onColor?: string;
19
-
20
- isExpanded = signal(false);
21
- activeTab = signal<'html' | 'ts' | 'scss'>('html');
22
- copySuccess = signal(false);
23
-
24
- ngOnInit() {
25
- this.isExpanded.set(this.expanded);
26
- // Set initial active tab to first available code
27
- if (this.htmlCode) this.activeTab.set('html');
28
- else if (this.tsCode) this.activeTab.set('ts');
29
- else if (this.scssCode) this.activeTab.set('scss');
30
- }
31
-
32
- toggleExpand() {
33
- this.isExpanded.update((value) => !value);
34
- }
35
-
36
- setActiveTab(tab: 'html' | 'ts' | 'scss') {
37
- this.activeTab.set(tab);
38
- }
39
-
40
- get currentCode(): string {
41
- const tab = this.activeTab();
42
- if (tab === 'html' && this.htmlCode) return this.wrappedHtmlCode;
43
- if (tab === 'ts' && this.tsCode) return this.tsCode;
44
- if (tab === 'scss' && this.scssCode) return this.scssCode;
45
- return '';
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
-
58
- get highlightedCode(): string {
59
- const code = this.currentCode;
60
- const tab = this.activeTab();
61
- let language = 'html';
62
- if (tab === 'ts') language = 'typescript';
63
- if (tab === 'scss') language = 'scss';
64
-
65
- try {
66
- return hljs.highlight(code, { language }).value;
67
- } catch {
68
- return code;
69
- }
70
- }
71
-
72
- get availableTabs(): Array<'html' | 'ts' | 'scss'> {
73
- const tabs: Array<'html' | 'ts' | 'scss'> = [];
74
- if (this.htmlCode) tabs.push('html');
75
- if (this.tsCode) tabs.push('ts');
76
- if (this.scssCode) tabs.push('scss');
77
- return tabs;
78
- }
79
-
80
- async copyCode() {
81
- try {
82
- await navigator.clipboard.writeText(this.currentCode);
83
- this.copySuccess.set(true);
84
- setTimeout(() => this.copySuccess.set(false), 2000);
85
- } catch (err) {
86
- console.error('Failed to copy code:', err);
87
- }
88
- }
89
- }
@@ -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
- }