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,35 +0,0 @@
1
- .hero-section {
2
- padding: 4rem 0;
3
- }
4
-
5
- .components-grid {
6
- display: grid;
7
- grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
8
- gap: 2rem;
9
- margin-top: 3rem;
10
- }
11
-
12
- .component-card {
13
- padding: 2rem;
14
- background: white;
15
- border-radius: 1rem;
16
- text-decoration: none;
17
- color: inherit;
18
- box-shadow: 0 4px 8px -2px rgba(16, 24, 40, 0.1), 0 2px 4px -2px rgba(16, 24, 40, 0.06);
19
- transition: all 0.3s ease;
20
-
21
- &:hover {
22
- transform: translateY(-4px);
23
- box-shadow: 0 8px 16px -4px rgba(16, 24, 40, 0.15), 0 4px 8px -4px rgba(16, 24, 40, 0.1);
24
- }
25
-
26
- h3 {
27
- margin-bottom: 0.5rem;
28
- color: var(--dga-primary);
29
- }
30
-
31
- p {
32
- margin: 0;
33
- color: var(--dga-neutral);
34
- }
35
- }
@@ -1,12 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { RouterLink } from '@angular/router';
3
- import { TranslateModule } from '@ngx-translate/core';
4
-
5
- @Component({
6
- selector: 'app-home',
7
- imports: [RouterLink, TranslateModule],
8
- templateUrl: './home.component.html',
9
- styleUrl: './home.component.scss',
10
- changeDetection: ChangeDetectionStrategy.OnPush
11
- })
12
- export class HomeComponent {}
@@ -1,21 +0,0 @@
1
- <div class="container py-5">
2
- <h1 class="display-4 mb-4">{{ 'links.title' | translate }}</h1>
3
- <p class="lead mb-5">{{ 'links.subtitle' | translate }}</p>
4
-
5
- <section class="demo-section mb-5">
6
- <h2>{{ 'links.section_basic' | translate }}</h2>
7
- <div class="d-flex flex-column gap-3 component-showcase">
8
- <!-- Primary link -->
9
- <a href="javascript:void(0);" class="link-primary link-offset-2">{{ 'links.primary_link' | translate }}</a>
10
- <!-- Neutral link -->
11
- <a href="javascript:void(0);" class="link-neutral link-offset-2">{{ 'links.neutral_link' | translate }}</a>
12
- <!-- On-color link displayed on a primary background -->
13
- <div class="p-3 on-primary rounded-2" style="width:max-content;">
14
- <a href="javascript:void(0);" class="link-neutral link-offset-2">{{ 'links.neutral_link' | translate }}</a>
15
- </div>
16
- <!-- Disabled link (non-interactive) -->
17
- <a href="javascript:void(0);" class="link-primary disabled link-offset-2" aria-disabled="true" tabindex="-1">{{ 'links.disabled_link' | translate }}</a>
18
- </div>
19
- <app-code-example [htmlCode]="basicLinksCode"></app-code-example>
20
- </section>
21
- </div>
@@ -1,11 +0,0 @@
1
- // Links Component Styles
2
-
3
- .demo-section {
4
- margin-bottom: 3rem;
5
-
6
- h2 {
7
- margin-bottom: 1.5rem;
8
- padding-bottom: 0.5rem;
9
- border-bottom: 1px solid var(--dga-border-color);
10
- }
11
- }
@@ -1,19 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { TranslateModule } from '@ngx-translate/core';
4
- import { CodeExampleComponent } from '../../shared/code-example/code-example.component';
5
-
6
- @Component({
7
- selector: 'app-links',
8
- imports: [CommonModule, TranslateModule, CodeExampleComponent],
9
- templateUrl: './links.component.html',
10
- styleUrl: './links.component.scss'
11
- })
12
- export class LinksComponent {
13
- // Basic link variants (primary, neutral, on-color, disabled)
14
- basicLinksCode = `<a href=\"javascript:void(0);\" class=\"link-primary link-offset-2\">Primary link</a>
15
- <a href=\"javascript:void(0);\" class=\"link-neutral link-offset-2\">Neutral link</a>
16
- <div class=\"p-3 bg-primary rounded-2\"><a href=\"javascript:void(0);\" class=\"link-oncolor link-offset-2\">On-color link</a></div>
17
- <a href=\"javascript:void(0);\" class=\"link-primary disabled link-offset-2\" aria-disabled=\"true\" tabindex=\"-1\">Disabled link</a>`;
18
-
19
- }
@@ -1,289 +0,0 @@
1
- <div class="container py-5">
2
- <h1 class="display-4 mb-4">{{ 'tables.title' | translate }}</h1>
3
- <p class="lead mb-5">{{ 'tables.subtitle' | translate }}</p>
4
-
5
- <section class="demo-section">
6
- <h2>{{ 'tables.section_default' | translate }}</h2>
7
- <p class="mb-4">Default table with checkboxes and link integration. The table includes checkbox inputs in the first column for row selection and links in data cells.</p>
8
-
9
- <div class="table-responsive">
10
- <table class="table">
11
- <thead>
12
- <tr>
13
- <th scope="col" style="width: 3.25rem;"><input type="checkbox"
14
- class="form-check-input form-check-input-sm ripple" id="chkDemoMd"></th>
15
- <th scope="col">First</th>
16
- <th scope="col">Last</th>
17
- <th scope="col">Handle</th>
18
- </tr>
19
- </thead>
20
- <tbody>
21
- <tr>
22
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple"
23
- id="chkNeutralMd"></th>
24
- <td><a href="javascript:void(0);">Mark</a></td>
25
- <td>Otto</td>
26
- <td>@mdo</td>
27
- </tr>
28
- <tr>
29
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
30
- </th>
31
- <td><a href="javascript:void(0);">Jacob</a></td>
32
- <td>Thornton</td>
33
- <td>@fat</td>
34
- </tr>
35
- <tr>
36
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
37
- </th>
38
- <td><a href="javascript:void(0);">John</a></td>
39
- <td>Doe</td>
40
- <td>@social</td>
41
- </tr>
42
- </tbody>
43
- </table>
44
- </div>
45
-
46
- <app-code-example [htmlCode]="defaultTableCode" title="Default Table with Checkboxes"></app-code-example>
47
- </section>
48
-
49
- <section class="demo-section">
50
- <h2>Side-Borderless Table</h2>
51
- <p class="mb-4">Table without left and right borders using the <code>side-borderless</code> class. This creates a cleaner look by removing the side borders while maintaining horizontal dividers.</p>
52
-
53
- <div class="table-responsive">
54
- <table class="table side-borderless">
55
- <thead>
56
- <tr>
57
- <th scope="col" style="width: 3.25rem;"><input type="checkbox"
58
- class="form-check-input form-check-input-sm ripple" id="chkDemoMd"></th>
59
- <th scope="col">First</th>
60
- <th scope="col">Last</th>
61
- <th scope="col">Handle</th>
62
- </tr>
63
- </thead>
64
- <tbody>
65
- <tr>
66
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
67
- </th>
68
- <td><a href="javascript:void(0);">Mark</a></td>
69
- <td>Otto</td>
70
- <td>@mdo</td>
71
- </tr>
72
- <tr>
73
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
74
- </th>
75
- <td><a href="javascript:void(0);">Jacob</a></td>
76
- <td>Thornton</td>
77
- <td>@fat</td>
78
- </tr>
79
- <tr>
80
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
81
- </th>
82
- <td><a href="javascript:void(0);">John</a></td>
83
- <td>Doe</td>
84
- <td>@social</td>
85
- </tr>
86
- </tbody>
87
- </table>
88
- </div>
89
-
90
- <app-code-example [htmlCode]="sideBorderlessTableCode" title="Side-Borderless Table"></app-code-example>
91
- </section>
92
-
93
- <section class="demo-section">
94
- <h2>Striped Table</h2>
95
- <p class="mb-4">Table with alternating row colors using the <code>table-striped</code> class. This improves readability by creating visual separation between rows.</p>
96
-
97
- <div class="table-responsive">
98
- <table class="table table-striped">
99
- <thead>
100
- <tr>
101
- <th scope="col" style="width: 3.25rem;"><input type="checkbox"
102
- class="form-check-input form-check-input-sm ripple" id="chkDemoMd"></th>
103
- <th scope="col">First</th>
104
- <th scope="col">Last</th>
105
- <th scope="col">Handle</th>
106
- </tr>
107
- </thead>
108
- <tbody>
109
- <tr>
110
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
111
- </th>
112
- <td><a href="javascript:void(0);">Mark</a></td>
113
- <td>Otto</td>
114
- <td>@mdo</td>
115
- </tr>
116
- <tr>
117
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
118
- </th>
119
- <td><a href="javascript:void(0);">Jacob</a></td>
120
- <td>Thornton</td>
121
- <td>@fat</td>
122
- </tr>
123
- <tr>
124
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
125
- </th>
126
- <td><a href="javascript:void(0);">John</a></td>
127
- <td>Doe</td>
128
- <td>@social</td>
129
- </tr>
130
- </tbody>
131
- </table>
132
- </div>
133
-
134
- <app-code-example [htmlCode]="stripedTableCode" title="Striped Table"></app-code-example>
135
- </section>
136
-
137
- <section class="demo-section">
138
- <h2>Striped + Side-Borderless Table</h2>
139
- <p class="mb-4">Combination of striped rows and side-borderless styling using <code>table-striped side-borderless</code> classes. This creates a modern, clean appearance with enhanced readability.</p>
140
-
141
- <div class="table-responsive">
142
- <table class="table table-striped side-borderless">
143
- <thead>
144
- <tr>
145
- <th scope="col" style="width: 3.25rem;"><input type="checkbox"
146
- class="form-check-input form-check-input-sm ripple" id="chkDemoMd"></th>
147
- <th scope="col">First</th>
148
- <th scope="col">Last</th>
149
- <th scope="col">Handle</th>
150
- </tr>
151
- </thead>
152
- <tbody>
153
- <tr>
154
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
155
- </th>
156
- <td><a href="javascript:void(0);">Mark</a></td>
157
- <td>Otto</td>
158
- <td>@mdo</td>
159
- </tr>
160
- <tr>
161
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
162
- </th>
163
- <td><a href="javascript:void(0);">Jacob</a></td>
164
- <td>Thornton</td>
165
- <td>@fat</td>
166
- </tr>
167
- <tr>
168
- <th scope="row"><input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkDemoMd">
169
- </th>
170
- <td><a href="javascript:void(0);">John</a></td>
171
- <td>Doe</td>
172
- <td>@social</td>
173
- </tr>
174
- </tbody>
175
- </table>
176
- </div>
177
-
178
- <app-code-example [htmlCode]="stripedSideBorderlessTableCode" title="Striped + Side-Borderless Table"></app-code-example>
179
- </section>
180
-
181
- <section class="demo-section">
182
- <h2>Table with Links</h2>
183
- <p class="mb-4">Comprehensive example showing multiple link types within table cells. Includes links for names, email addresses (mailto:), and action links.</p>
184
-
185
- <div class="table-responsive">
186
- <table class="table">
187
- <thead>
188
- <tr>
189
- <th scope="col">ID</th>
190
- <th scope="col">Name</th>
191
- <th scope="col">Email</th>
192
- <th scope="col">Department</th>
193
- <th scope="col">Actions</th>
194
- </tr>
195
- </thead>
196
- <tbody>
197
- <tr>
198
- <th scope="row">1</th>
199
- <td><a href="javascript:void(0);">John Doe</a></td>
200
- <td><a href="mailto:john.doe@example.com">john.doe@example.com</a></td>
201
- <td>Engineering</td>
202
- <td>
203
- <a href="javascript:void(0);">Edit</a> |
204
- <a href="javascript:void(0);">Delete</a>
205
- </td>
206
- </tr>
207
- <tr>
208
- <th scope="row">2</th>
209
- <td><a href="javascript:void(0);">Jane Smith</a></td>
210
- <td><a href="mailto:jane.smith@example.com">jane.smith@example.com</a></td>
211
- <td>Marketing</td>
212
- <td>
213
- <a href="javascript:void(0);">Edit</a> |
214
- <a href="javascript:void(0);">Delete</a>
215
- </td>
216
- </tr>
217
- <tr>
218
- <th scope="row">3</th>
219
- <td><a href="javascript:void(0);">Mike Johnson</a></td>
220
- <td><a href="mailto:mike.johnson@example.com">mike.johnson@example.com</a></td>
221
- <td>Sales</td>
222
- <td>
223
- <a href="javascript:void(0);">Edit</a> |
224
- <a href="javascript:void(0);">Delete</a>
225
- </td>
226
- </tr>
227
- </tbody>
228
- </table>
229
- </div>
230
-
231
- <app-code-example [htmlCode]="tableWithLinksCode" title="Table with Links in Cells"></app-code-example>
232
- </section>
233
-
234
- <section class="demo-section">
235
- <h2>Responsive Table</h2>
236
- <p class="mb-4">Table wrapped in <code>table-responsive</code> div to enable horizontal scrolling on smaller screens. Essential for tables with many columns to maintain usability on mobile devices.</p>
237
-
238
- <div class="table-responsive">
239
- <table class="table">
240
- <thead>
241
- <tr>
242
- <th scope="col">ID</th>
243
- <th scope="col">First Name</th>
244
- <th scope="col">Last Name</th>
245
- <th scope="col">Email</th>
246
- <th scope="col">Department</th>
247
- <th scope="col">Position</th>
248
- <th scope="col">Hire Date</th>
249
- <th scope="col">Status</th>
250
- </tr>
251
- </thead>
252
- <tbody>
253
- <tr>
254
- <th scope="row">1</th>
255
- <td>John</td>
256
- <td>Doe</td>
257
- <td>john.doe@example.com</td>
258
- <td>Engineering</td>
259
- <td>Senior Developer</td>
260
- <td>2020-01-15</td>
261
- <td>Active</td>
262
- </tr>
263
- <tr>
264
- <th scope="row">2</th>
265
- <td>Jane</td>
266
- <td>Smith</td>
267
- <td>jane.smith@example.com</td>
268
- <td>Marketing</td>
269
- <td>Marketing Manager</td>
270
- <td>2019-06-20</td>
271
- <td>Active</td>
272
- </tr>
273
- <tr>
274
- <th scope="row">3</th>
275
- <td>Mike</td>
276
- <td>Johnson</td>
277
- <td>mike.johnson@example.com</td>
278
- <td>Sales</td>
279
- <td>Sales Representative</td>
280
- <td>2021-03-10</td>
281
- <td>Active</td>
282
- </tr>
283
- </tbody>
284
- </table>
285
- </div>
286
-
287
- <app-code-example [htmlCode]="responsiveTableCode" title="Responsive Table Wrapper"></app-code-example>
288
- </section>
289
- </div>
@@ -1,3 +0,0 @@
1
- .demo-section {
2
- margin-bottom: 4rem;
3
- }
@@ -1,278 +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-tables',
7
- imports: [TranslateModule, CodeExampleComponent],
8
- templateUrl: './tables.component.html',
9
- styleUrl: './tables.component.scss',
10
- changeDetection: ChangeDetectionStrategy.OnPush
11
- })
12
- export class TablesComponent {
13
- // Default table with checkboxes
14
- defaultTableCode = `<div class="table-responsive">
15
- <table class="table">
16
- <thead>
17
- <tr>
18
- <th scope="col" style="width: 3.25rem;">
19
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkSelectAll">
20
- </th>
21
- <th scope="col">First</th>
22
- <th scope="col">Last</th>
23
- <th scope="col">Handle</th>
24
- </tr>
25
- </thead>
26
- <tbody>
27
- <tr>
28
- <th scope="row">
29
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow1">
30
- </th>
31
- <td><a href="javascript:void(0);">Mark</a></td>
32
- <td>Otto</td>
33
- <td>@mdo</td>
34
- </tr>
35
- <tr>
36
- <th scope="row">
37
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow2">
38
- </th>
39
- <td><a href="javascript:void(0);">Jacob</a></td>
40
- <td>Thornton</td>
41
- <td>@fat</td>
42
- </tr>
43
- <tr>
44
- <th scope="row">
45
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow3">
46
- </th>
47
- <td><a href="javascript:void(0);">John</a></td>
48
- <td>Doe</td>
49
- <td>@social</td>
50
- </tr>
51
- </tbody>
52
- </table>
53
- </div>`;
54
-
55
- // Side-borderless table
56
- sideBorderlessTableCode = `<div class="table-responsive">
57
- <table class="table side-borderless">
58
- <thead>
59
- <tr>
60
- <th scope="col" style="width: 3.25rem;">
61
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkSelectAll">
62
- </th>
63
- <th scope="col">First</th>
64
- <th scope="col">Last</th>
65
- <th scope="col">Handle</th>
66
- </tr>
67
- </thead>
68
- <tbody>
69
- <tr>
70
- <th scope="row">
71
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow1">
72
- </th>
73
- <td><a href="javascript:void(0);">Mark</a></td>
74
- <td>Otto</td>
75
- <td>@mdo</td>
76
- </tr>
77
- <tr>
78
- <th scope="row">
79
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow2">
80
- </th>
81
- <td><a href="javascript:void(0);">Jacob</a></td>
82
- <td>Thornton</td>
83
- <td>@fat</td>
84
- </tr>
85
- <tr>
86
- <th scope="row">
87
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow3">
88
- </th>
89
- <td><a href="javascript:void(0);">John</a></td>
90
- <td>Doe</td>
91
- <td>@social</td>
92
- </tr>
93
- </tbody>
94
- </table>
95
- </div>`;
96
-
97
- // Striped table
98
- stripedTableCode = `<div class="table-responsive">
99
- <table class="table table-striped">
100
- <thead>
101
- <tr>
102
- <th scope="col" style="width: 3.25rem;">
103
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkSelectAll">
104
- </th>
105
- <th scope="col">First</th>
106
- <th scope="col">Last</th>
107
- <th scope="col">Handle</th>
108
- </tr>
109
- </thead>
110
- <tbody>
111
- <tr>
112
- <th scope="row">
113
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow1">
114
- </th>
115
- <td><a href="javascript:void(0);">Mark</a></td>
116
- <td>Otto</td>
117
- <td>@mdo</td>
118
- </tr>
119
- <tr>
120
- <th scope="row">
121
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow2">
122
- </th>
123
- <td><a href="javascript:void(0);">Jacob</a></td>
124
- <td>Thornton</td>
125
- <td>@fat</td>
126
- </tr>
127
- <tr>
128
- <th scope="row">
129
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow3">
130
- </th>
131
- <td><a href="javascript:void(0);">John</a></td>
132
- <td>Doe</td>
133
- <td>@social</td>
134
- </tr>
135
- </tbody>
136
- </table>
137
- </div>`;
138
-
139
- // Combination: striped + side-borderless
140
- stripedSideBorderlessTableCode = `<div class="table-responsive">
141
- <table class="table table-striped side-borderless">
142
- <thead>
143
- <tr>
144
- <th scope="col" style="width: 3.25rem;">
145
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkSelectAll">
146
- </th>
147
- <th scope="col">First</th>
148
- <th scope="col">Last</th>
149
- <th scope="col">Handle</th>
150
- </tr>
151
- </thead>
152
- <tbody>
153
- <tr>
154
- <th scope="row">
155
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow1">
156
- </th>
157
- <td><a href="javascript:void(0);">Mark</a></td>
158
- <td>Otto</td>
159
- <td>@mdo</td>
160
- </tr>
161
- <tr>
162
- <th scope="row">
163
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow2">
164
- </th>
165
- <td><a href="javascript:void(0);">Jacob</a></td>
166
- <td>Thornton</td>
167
- <td>@fat</td>
168
- </tr>
169
- <tr>
170
- <th scope="row">
171
- <input type="checkbox" class="form-check-input form-check-input-sm ripple" id="chkRow3">
172
- </th>
173
- <td><a href="javascript:void(0);">John</a></td>
174
- <td>Doe</td>
175
- <td>@social</td>
176
- </tr>
177
- </tbody>
178
- </table>
179
- </div>`;
180
-
181
- // Table with links in cells - more comprehensive example
182
- tableWithLinksCode = `<div class="table-responsive">
183
- <table class="table">
184
- <thead>
185
- <tr>
186
- <th scope="col">ID</th>
187
- <th scope="col">Name</th>
188
- <th scope="col">Email</th>
189
- <th scope="col">Department</th>
190
- <th scope="col">Actions</th>
191
- </tr>
192
- </thead>
193
- <tbody>
194
- <tr>
195
- <th scope="row">1</th>
196
- <td><a href="javascript:void(0);">John Doe</a></td>
197
- <td><a href="mailto:john.doe@example.com">john.doe@example.com</a></td>
198
- <td>Engineering</td>
199
- <td>
200
- <a href="javascript:void(0);">Edit</a> |
201
- <a href="javascript:void(0);">Delete</a>
202
- </td>
203
- </tr>
204
- <tr>
205
- <th scope="row">2</th>
206
- <td><a href="javascript:void(0);">Jane Smith</a></td>
207
- <td><a href="mailto:jane.smith@example.com">jane.smith@example.com</a></td>
208
- <td>Marketing</td>
209
- <td>
210
- <a href="javascript:void(0);">Edit</a> |
211
- <a href="javascript:void(0);">Delete</a>
212
- </td>
213
- </tr>
214
- <tr>
215
- <th scope="row">3</th>
216
- <td><a href="javascript:void(0);">Mike Johnson</a></td>
217
- <td><a href="mailto:mike.johnson@example.com">mike.johnson@example.com</a></td>
218
- <td>Sales</td>
219
- <td>
220
- <a href="javascript:void(0);">Edit</a> |
221
- <a href="javascript:void(0);">Delete</a>
222
- </td>
223
- </tr>
224
- </tbody>
225
- </table>
226
- </div>`;
227
-
228
- // Responsive table wrapper
229
- responsiveTableCode = `<!-- Responsive wrapper ensures horizontal scrolling on small screens -->
230
- <div class="table-responsive">
231
- <table class="table">
232
- <thead>
233
- <tr>
234
- <th scope="col">ID</th>
235
- <th scope="col">First Name</th>
236
- <th scope="col">Last Name</th>
237
- <th scope="col">Email</th>
238
- <th scope="col">Department</th>
239
- <th scope="col">Position</th>
240
- <th scope="col">Hire Date</th>
241
- <th scope="col">Status</th>
242
- </tr>
243
- </thead>
244
- <tbody>
245
- <tr>
246
- <th scope="row">1</th>
247
- <td>John</td>
248
- <td>Doe</td>
249
- <td>john.doe@example.com</td>
250
- <td>Engineering</td>
251
- <td>Senior Developer</td>
252
- <td>2020-01-15</td>
253
- <td>Active</td>
254
- </tr>
255
- <tr>
256
- <th scope="row">2</th>
257
- <td>Jane</td>
258
- <td>Smith</td>
259
- <td>jane.smith@example.com</td>
260
- <td>Marketing</td>
261
- <td>Marketing Manager</td>
262
- <td>2019-06-20</td>
263
- <td>Active</td>
264
- </tr>
265
- <tr>
266
- <th scope="row">3</th>
267
- <td>Mike</td>
268
- <td>Johnson</td>
269
- <td>mike.johnson@example.com</td>
270
- <td>Sales</td>
271
- <td>Sales Representative</td>
272
- <td>2021-03-10</td>
273
- <td>Active</td>
274
- </tr>
275
- </tbody>
276
- </table>
277
- </div>`;
278
- }