gd-bs 5.3.6 → 5.3.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 (153) hide show
  1. package/build/bs.js +1 -1
  2. package/build/components/form/control.js +22 -26
  3. package/build/icons/iconTypes.js +1 -1
  4. package/build/icons/index.js +2 -2
  5. package/build/icons/svgs/badgeSdFill.js +1 -1
  6. package/build/icons/svgs/bagHeartFill.js +1 -1
  7. package/build/icons/svgs/box2.js +1 -1
  8. package/build/icons/svgs/box2Fill.js +1 -1
  9. package/build/icons/svgs/box2Heart.js +1 -1
  10. package/build/icons/svgs/box2HeartFill.js +1 -1
  11. package/build/icons/svgs/calendar2HeartFill.js +1 -1
  12. package/build/icons/svgs/calendarHeartFill.js +1 -1
  13. package/build/icons/svgs/chatHeartFill.js +1 -1
  14. package/build/icons/svgs/chatLeftHeartFill.js +1 -1
  15. package/build/icons/svgs/chatRightHeartFill.js +1 -1
  16. package/build/icons/svgs/chatSquareHeartFill.js +1 -1
  17. package/build/icons/svgs/clipboard2.js +1 -1
  18. package/build/icons/svgs/clipboard2Check.js +1 -1
  19. package/build/icons/svgs/clipboard2CheckFill.js +1 -1
  20. package/build/icons/svgs/clipboard2Data.js +1 -1
  21. package/build/icons/svgs/clipboard2DataFill.js +1 -1
  22. package/build/icons/svgs/clipboard2Fill.js +1 -1
  23. package/build/icons/svgs/clipboard2Heart.js +1 -1
  24. package/build/icons/svgs/clipboard2HeartFill.js +1 -1
  25. package/build/icons/svgs/clipboard2Minus.js +1 -1
  26. package/build/icons/svgs/clipboard2MinusFill.js +1 -1
  27. package/build/icons/svgs/clipboard2Plus.js +1 -1
  28. package/build/icons/svgs/clipboard2PlusFill.js +1 -1
  29. package/build/icons/svgs/clipboard2Pulse.js +1 -1
  30. package/build/icons/svgs/clipboard2PulseFill.js +1 -1
  31. package/build/icons/svgs/clipboard2X.js +1 -1
  32. package/build/icons/svgs/clipboard2XFill.js +1 -1
  33. package/build/icons/svgs/clipboardCheckFill.js +1 -1
  34. package/build/icons/svgs/clipboardDataFill.js +1 -1
  35. package/build/icons/svgs/clipboardHeart.js +1 -1
  36. package/build/icons/svgs/clipboardHeartFill.js +1 -1
  37. package/build/icons/svgs/clipboardMinusFill.js +1 -1
  38. package/build/icons/svgs/clipboardPlusFill.js +1 -1
  39. package/build/icons/svgs/clipboardXFill.js +1 -1
  40. package/build/icons/svgs/envelopeHeartFill.js +1 -1
  41. package/build/icons/svgs/envelopeOpenHeartFill.js +1 -1
  42. package/build/icons/svgs/envelopePaper.js +1 -1
  43. package/build/icons/svgs/heartArrow.js +1 -1
  44. package/build/icons/svgs/hospital.js +1 -1
  45. package/build/icons/svgs/hospitalFill.js +1 -1
  46. package/build/icons/svgs/houseHeart.js +1 -1
  47. package/build/icons/svgs/houseHeartFill.js +1 -1
  48. package/build/icons/svgs/index.d.ts +2 -2
  49. package/build/icons/svgs/index.js +1 -1
  50. package/build/icons/svgs/magnet.js +1 -1
  51. package/build/icons/svgs/magnetFill.js +1 -1
  52. package/build/icons/svgs/personHeart.js +1 -1
  53. package/build/icons/svgs/piggyBankFill.js +1 -1
  54. package/build/icons/svgs/postage.js +1 -1
  55. package/build/icons/svgs/postageFill.js +1 -1
  56. package/build/icons/svgs/postageHeart.js +1 -1
  57. package/build/icons/svgs/postageHeartFill.js +1 -1
  58. package/build/icons/svgs/postcardFill.js +1 -1
  59. package/build/icons/svgs/postcardHeart.js +1 -1
  60. package/build/icons/svgs/projector.js +1 -1
  61. package/build/icons/svgs/screwdriver.js +1 -1
  62. package/build/icons/svgs/searchHeart.js +1 -1
  63. package/build/icons/svgs/searchHeartFill.js +1 -1
  64. package/build/icons/svgs/sendFill.js +1 -1
  65. package/build/icons/svgs/trash3.js +1 -1
  66. package/build/icons/svgs/trash3Fill.js +1 -1
  67. package/build/icons/svgs/valentine.js +1 -1
  68. package/build/icons/svgs/valentine2.js +1 -1
  69. package/build/icons/svgs/wrenchAdjustable.js +1 -1
  70. package/build/icons/svgs/wrenchAdjustableCircle.js +8 -0
  71. package/build/icons/svgs/wrenchAdjustableCircleFill.js +1 -1
  72. package/dist/gd-bs-icons.js +681 -670
  73. package/dist/gd-bs-icons.min.js +1 -1
  74. package/dist/gd-bs.js +564 -564
  75. package/dist/gd-bs.min.js +1 -1
  76. package/package.json +10 -10
  77. package/pnpm-lock.yaml +472 -452
  78. package/src/bs.scss +300 -36
  79. package/src/components/form/control.ts +20 -20
  80. package/src/icons/iconTypes.ts +1 -1
  81. package/src/icons/index.d.ts +2 -2
  82. package/src/icons/index.ts +2 -2
  83. package/src/icons/svgs/badgeSdFill.ts +1 -1
  84. package/src/icons/svgs/bagHeartFill.ts +1 -1
  85. package/src/icons/svgs/box2.ts +1 -1
  86. package/src/icons/svgs/box2Fill.ts +1 -1
  87. package/src/icons/svgs/box2Heart.ts +1 -1
  88. package/src/icons/svgs/box2HeartFill.ts +1 -1
  89. package/src/icons/svgs/calendar2HeartFill.ts +1 -1
  90. package/src/icons/svgs/calendarHeartFill.ts +1 -1
  91. package/src/icons/svgs/chatHeartFill.ts +1 -1
  92. package/src/icons/svgs/chatLeftHeartFill.ts +1 -1
  93. package/src/icons/svgs/chatRightHeartFill.ts +1 -1
  94. package/src/icons/svgs/chatSquareHeartFill.ts +1 -1
  95. package/src/icons/svgs/clipboard2.ts +1 -1
  96. package/src/icons/svgs/clipboard2Check.ts +1 -1
  97. package/src/icons/svgs/clipboard2CheckFill.ts +1 -1
  98. package/src/icons/svgs/clipboard2Data.ts +1 -1
  99. package/src/icons/svgs/clipboard2DataFill.ts +1 -1
  100. package/src/icons/svgs/clipboard2Fill.ts +1 -1
  101. package/src/icons/svgs/clipboard2Heart.ts +1 -1
  102. package/src/icons/svgs/clipboard2HeartFill.ts +1 -1
  103. package/src/icons/svgs/clipboard2Minus.ts +1 -1
  104. package/src/icons/svgs/clipboard2MinusFill.ts +1 -1
  105. package/src/icons/svgs/clipboard2Plus.ts +1 -1
  106. package/src/icons/svgs/clipboard2PlusFill.ts +1 -1
  107. package/src/icons/svgs/clipboard2Pulse.ts +1 -1
  108. package/src/icons/svgs/clipboard2PulseFill.ts +1 -1
  109. package/src/icons/svgs/clipboard2X.ts +1 -1
  110. package/src/icons/svgs/clipboard2XFill.ts +1 -1
  111. package/src/icons/svgs/clipboardCheckFill.ts +1 -1
  112. package/src/icons/svgs/clipboardDataFill.ts +1 -1
  113. package/src/icons/svgs/clipboardHeart.ts +1 -1
  114. package/src/icons/svgs/clipboardHeartFill.ts +1 -1
  115. package/src/icons/svgs/clipboardMinusFill.ts +1 -1
  116. package/src/icons/svgs/clipboardPlusFill.ts +1 -1
  117. package/src/icons/svgs/clipboardXFill.ts +1 -1
  118. package/src/icons/svgs/envelopeHeartFill.ts +1 -1
  119. package/src/icons/svgs/envelopeOpenHeartFill.ts +1 -1
  120. package/src/icons/svgs/envelopePaper.ts +1 -1
  121. package/src/icons/svgs/heartArrow.ts +1 -1
  122. package/src/icons/svgs/hospital.ts +1 -1
  123. package/src/icons/svgs/hospitalFill.ts +1 -1
  124. package/src/icons/svgs/houseHeart.ts +1 -1
  125. package/src/icons/svgs/houseHeartFill.ts +1 -1
  126. package/src/icons/svgs/index.d.ts +2 -2
  127. package/src/icons/svgs/index.ts +1 -1
  128. package/src/icons/svgs/magnet.ts +1 -1
  129. package/src/icons/svgs/magnetFill.ts +1 -1
  130. package/src/icons/svgs/personHeart.ts +1 -1
  131. package/src/icons/svgs/piggyBankFill.ts +1 -1
  132. package/src/icons/svgs/postage.ts +1 -1
  133. package/src/icons/svgs/postageFill.ts +1 -1
  134. package/src/icons/svgs/postageHeart.ts +1 -1
  135. package/src/icons/svgs/postageHeartFill.ts +1 -1
  136. package/src/icons/svgs/postcardFill.ts +1 -1
  137. package/src/icons/svgs/postcardHeart.ts +1 -1
  138. package/src/icons/svgs/projector.ts +1 -1
  139. package/src/icons/svgs/screwdriver.ts +1 -1
  140. package/src/icons/svgs/searchHeart.ts +1 -1
  141. package/src/icons/svgs/searchHeartFill.ts +1 -1
  142. package/src/icons/svgs/sendFill.ts +1 -1
  143. package/src/icons/svgs/trash3.ts +1 -1
  144. package/src/icons/svgs/trash3Fill.ts +1 -1
  145. package/src/icons/svgs/valentine.ts +1 -1
  146. package/src/icons/svgs/valentine2.ts +1 -1
  147. package/src/icons/svgs/wrenchAdjustable.ts +1 -1
  148. package/src/icons/svgs/wrenchAdjustableCircle.d.ts +1 -0
  149. package/src/icons/svgs/wrenchAdjustableCircle.ts +4 -0
  150. package/src/icons/svgs/wrenchAdjustableCircleFill.ts +1 -1
  151. package/build/icons/svgs/wrenchAdjustableCricle.js +0 -8
  152. package/src/icons/svgs/wrenchAdjustableCricle.d.ts +0 -1
  153. package/src/icons/svgs/wrenchAdjustableCricle.ts +0 -4
package/src/bs.scss CHANGED
@@ -41,7 +41,6 @@
41
41
  @import "~bootstrap/scss/placeholders";
42
42
  }
43
43
 
44
-
45
44
  /** Helpers */
46
45
 
47
46
  @import "~bootstrap/scss/helpers";
@@ -53,6 +52,65 @@
53
52
  /** Customizations */
54
53
 
55
54
  .bs {
55
+ /* Color match links to 'SharePoint Blue' */
56
+ a,
57
+ .link-primary {
58
+ color: #0078d4;
59
+ }
60
+ /* Color match hover links */
61
+ a:hover,
62
+ a:focus,
63
+ .link-primary:hover,
64
+ .link-primary:focus {
65
+ color: #004c86;
66
+ }
67
+ /* Color match active links */
68
+ a:active,
69
+ .link-primary:active {
70
+ color: #c4e4ff;
71
+ }
72
+ /* Color match accordion on focus */
73
+ .accordion-button:focus {
74
+ border-color: #2d8ad6;
75
+ box-shadow: 0 0 0 0.25rem rgba(45, 138, 214, 0.25);
76
+ }
77
+ /* Color match accordion while expanded */
78
+ .accordion-button:not(.collapsed) {
79
+ background-color: #c4e4ff;
80
+ color: #0078d4;
81
+ }
82
+ /* Create a reusable 'SharePoint Blue' background color */
83
+ .bg-sharepoint {
84
+ background-color: #0078d4 !important;
85
+ }
86
+ /* Fix breadcrumb alignment */
87
+ .breadcrumb {
88
+ margin-bottom: 0;
89
+ }
90
+ /* Color match breadcrumb links */
91
+ .breadcrumb-item.active, .breadcrumb-item > a {
92
+ color: #fff;
93
+ text-decoration: none;
94
+ }
95
+ /* Color match breadcrumb hover links */
96
+ .breadcrumb-item > a:hover, .breadcrumb-item > a:focus {
97
+ color: #dee2e6;
98
+ text-decoration: underline;
99
+ }
100
+ /* Color match breadcrumb active links */
101
+ .breadcrumb-item > a:active {
102
+ color: #333333;
103
+ font-weight: 500;
104
+ text-decoration: underline;
105
+ }
106
+ /* Fix breadcrumb alignment */
107
+ .breadcrumb-item+.breadcrumb-item::before {
108
+ padding-top: 0.15rem;
109
+ }
110
+ /* Close button alignment */
111
+ .btn-close {
112
+ min-width: auto;
113
+ }
56
114
  /** Button Icon - Custom class */
57
115
  .btn-icon {
58
116
  font-size: inherit;
@@ -60,9 +118,91 @@
60
118
  min-width: 0px;
61
119
  padding: 2px;
62
120
  }
63
- /* Close button alignment */
64
- .btn-close {
65
- min-width: auto;
121
+ /* Align icon properly when using btn-sm */
122
+ .btn-icon-sm {
123
+ margin: 0 0.25rem 0.14rem -0.25rem;
124
+ }
125
+ /* Color match the primary button to 'SharePoint Blue' */
126
+ /* Don't reorder the btn-primary classes. It breaks active colors. */
127
+ .btn-primary,
128
+ .btn-primary:disabled,
129
+ .btn-primary.disabled {
130
+ background-color: #0078d4;
131
+ border-color: #0078d4;
132
+ }
133
+ /* Color match the primary button hover */
134
+ .btn-primary:hover {
135
+ background-color: #004c86;
136
+ border-color: #004c86;
137
+ }
138
+ /* Color match primary outline button */
139
+ .btn-outline-primary,
140
+ .btn-outline-primary:disabled,
141
+ .btn-outline-primary.disabled {
142
+ border-color: #0078d4;
143
+ color: #0078d4;
144
+ }
145
+ /* Color match primary outline button hover */
146
+ .btn-outline-primary:hover {
147
+ background-color: #0078d4;
148
+ border-color: #0078d4;
149
+ }
150
+ /* Fix color for outline light focus */
151
+ .btn-outline-light:focus {
152
+ color: #f8f9fa;
153
+ }
154
+ /* Fix color for outline light active */
155
+ .btn-outline-light:active,
156
+ .btn-outline-light:hover {
157
+ color: #000;
158
+ }
159
+ /* Color match primary outline button focus */
160
+ .btn-check:focus+.bs .btn-outline-primary,
161
+ .btn-outline-primary:focus {
162
+ box-shadow: 0 0 0 0.25rem rgba(45, 138, 214, 0.5);
163
+ }
164
+ /* Color match primary outline button active */
165
+ .btn-check:checked+.bs .btn-outline-primary,
166
+ .btn-check:active+.bs .btn-outline-primary,
167
+ .btn-outline-primary:active,
168
+ .btn-outline-primary.active,
169
+ .btn-outline-primary.dropdown-toggle.show {
170
+ background-color: #004c86;
171
+ border-color: #004c86;
172
+ }
173
+ /* Color match the primary button focus */
174
+ .btn-check:focus+.btn-primary,
175
+ .btn-primary:focus {
176
+ background-color: #004c86;
177
+ border-color: #004c86;
178
+ box-shadow: 0 0 0 0.25rem rgba(45, 138, 214, 0.5);
179
+ }
180
+ /* Color match the primary button active */
181
+ .bs .btn-check:checked+.btn-primary,
182
+ .btn-check:active+.btn-primary,
183
+ .btn-primary:active,
184
+ .btn-primary.active,
185
+ .show>.btn-primary.dropdown-toggle {
186
+ background-color: #c4e4ff;
187
+ border-color: #c4e4ff;
188
+ }
189
+ /* Color match the shadow on active */
190
+ .btn-check:checked+.btn-primary:focus,
191
+ .btn-check:active+.btn-primary:focus,
192
+ .btn-primary:active:focus,
193
+ .btn-primary.active:focus,
194
+ .show>.btn-primary.dropdown-toggle:focus {
195
+ box-shadow: 0 0 0 0.25rem rgba(45, 138, 214, 0.5);
196
+ }
197
+ /* Color match dropdown hover */
198
+ .dropdown-item:hover,
199
+ .dropdown-item:focus {
200
+ background-color: #dee2e6;
201
+ }
202
+ /* Color match dropdown active */
203
+ .dropdown-item.active,
204
+ .dropdown-item:active {
205
+ background-color: #0078d4;
66
206
  }
67
207
  /* Dropdown Menu - Using the popover component for the menu, so we don't need to hide it by default */
68
208
  .dropdown-menu {
@@ -73,6 +213,15 @@
73
213
  cursor: pointer;
74
214
  height: 1.25em;
75
215
  }
216
+ /** Color match the toggle background color to 'SharePoint Blue' */
217
+ .form-check-input:checked {
218
+ background-color: #0078d4;
219
+ border-color: #0078d4;
220
+ }
221
+ /* Color match disabled form elements */
222
+ .form-control:disabled, .form-control[readonly] {
223
+ color: #a6a6a6;
224
+ }
76
225
  /* Bootstrap Icon: Custom - caret-up-fill + caret-down-fill */
77
226
  .form-select {
78
227
  background: #fff url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 16 25.333' fill='%236c757d' width='1em' height='1em'><path d='M0.34 8.03C-0.44 8.92 0.2 10.32 1.38 10.32C2.71 10.32 13.3 10.32 14.62 10.32C15.38 10.32 16 9.7 16 8.94C16 8.61 15.88 8.28 15.66 8.03C15 7.28 9.7 1.23 9.04 0.47C8.54 -0.1 7.67 -0.16 7.09 0.34C7.05 0.38 7 0.43 6.96 0.47C6.96 0.47 1.01 7.28 0.34 8.03Z'/><path d='M0.34 17.3C-0.44 16.41 0.2 15.01 1.38 15.01C2.71 15.01 13.3 15.01 14.62 15.01C15.38 15.01 16 15.63 16 16.39C16 16.73 15.88 17.05 15.66 17.3C15 18.06 9.7 24.11 9.04 24.86C8.54 25.43 7.67 25.49 7.09 24.99C7.05 24.95 7 24.91 6.96 24.86C6.96 24.86 1.01 18.06 0.34 17.3Z'/></svg>") no-repeat right 0.75rem center/8px 10px !important;
@@ -82,10 +231,24 @@
82
231
  .form-select:hover {
83
232
  cursor: pointer;
84
233
  }
234
+ /* Color match form-select active */
235
+ .form-select:active,
236
+ .form-select:focus {
237
+ border-color: #2d8ad6;
238
+ box-shadow: 0 0 0 0.25rem rgba(45, 138, 214, 0.25);
239
+ }
85
240
  /* Fix text width on dataTables_length */
86
241
  .form-select-sm {
87
242
  padding-right: 1.65rem;
88
243
  }
244
+ /* Color match the toggle on focus */
245
+ .form-switch .form-check-input:focus {
246
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%232d8ad6'/%3e%3c/svg%3e");
247
+ }
248
+ /* Update toggle to white after checked */
249
+ .form-switch .form-check-input:checked {
250
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
251
+ }
89
252
  /* Increase modal border size */
90
253
  .modal-footer {
91
254
  border-top: 2px solid #dee2e6;
@@ -102,6 +265,52 @@
102
265
  line-height: 1.2;
103
266
  margin: 0;
104
267
  }
268
+ /* Define a custom margin-end value */
269
+ .me-75 {
270
+ margin-right: 0.75rem !important;
271
+ }
272
+ /* Define a custom margin-start value */
273
+ .ms-75 {
274
+ margin-left: 0.75rem !important;
275
+ }
276
+ /* Define a custom margin-x value */
277
+ .mx-75 {
278
+ margin-left: 0.75rem !important;
279
+ margin-right: 0.75rem !important;
280
+ }
281
+ /* Set max-width to fit content */
282
+ .mw-fit {
283
+ max-width: fit-content !important;
284
+ }
285
+ /* Fix padding on the nav links */
286
+ .nav-link {
287
+ color: #0078d4;
288
+ padding: 0 !important;
289
+ }
290
+ /* Set background color and border for nav-tabs */
291
+ .nav-tabs .nav-link {
292
+ background-color: rgba(0, 0, 0, 0.05);
293
+ border-radius: 0.25rem 0.25rem 0 0;
294
+ border: 2px solid #dee2e6;
295
+ }
296
+ /* Color match nav-tabs hover to secondary color */
297
+ .nav-tabs .nav-link:hover {
298
+ background-color: #6c757d;
299
+ border-color: #6c757d;
300
+ color: #fff;
301
+ }
302
+ /* Color match nav-tabs active to SharePoint */
303
+ .nav-tabs .nav-link.active,
304
+ .nav-tabs .show>.nav-link,
305
+ .nav-tabs .nav-link:focus {
306
+ background-color: #0078d4;
307
+ border-color: #0078d4;
308
+ color: #fff;
309
+ }
310
+ /* Properly align the navbar brand text */
311
+ .navbar-brand {
312
+ align-items: baseline;
313
+ }
105
314
  /* Match off-canvas border color to modal */
106
315
  .offcanvas-header {
107
316
  border-bottom: 2px solid #dee2e6;
@@ -112,10 +321,80 @@
112
321
  margin: 0rem 0rem 0rem auto;
113
322
  padding: 1rem;
114
323
  }
324
+ /* Color match the pagination link color to 'SharePoint Blue' */
325
+ .page-link {
326
+ border-color: #6c757d;
327
+ color: #0078d4;
328
+ }
329
+ /* Color match the pagination active link colors */
330
+ .page-item.active .page-link {
331
+ background-color: #6c757d;
332
+ border-color: #6c757d;
333
+ z-index: inherit;
334
+ }
335
+ /* Color match the pagination disabled border colors */
336
+ .page-item.disabled .page-link {
337
+ border-color: #6c757d;
338
+ }
339
+ /* Color match for SharePoint */
340
+ .page-link:focus {
341
+ background-color: #dee2e6;
342
+ }
343
+ /* Color match for SharePoint */
344
+ .page-link:hover {
345
+ color: #333333;
346
+ background-color: #dee2e6;
347
+ border-color: #6c757d;
348
+ }
349
+ /* Color match for SharePoint */
350
+ .page-link:focus,
351
+ .form-control:focus,
352
+ .form-check-input:focus {
353
+ border-color: #2d8ad6;
354
+ box-shadow: 0 0 0 0.25rem rgba(45, 138, 214, 0.25);
355
+ color: #333333;
356
+ }
357
+ /* Define a custom padding-end value */
358
+ .pe-06 {
359
+ padding-right: 0.6rem !important;
360
+ }
361
+ /* Define a custom padding-end value */
362
+ .pe-75 {
363
+ padding-right: 0.75rem !important;
364
+ }
365
+ /* Define a custom padding-start value */
366
+ .ps-75 {
367
+ padding-left: 0.75rem !important;
368
+ }
369
+ /* Define a custom padding-top value */
370
+ .pt-03 {
371
+ padding-top: 0.3rem !important;
372
+ }
373
+ /* Define a custom padding-x value */
374
+ .px-75 {
375
+ padding-left: 0.75rem !important;
376
+ padding-right: 0.75rem !important;
377
+ }
115
378
  /* Fix for TippyJS Placement */
116
379
  .popover-body>* {
117
380
  position: relative !important;
118
381
  }
382
+ /* Fix extra top margin in Firefox */
383
+ table.dataTable {
384
+ margin-top: 0rem !important;
385
+ }
386
+ /* Match the table header to the table footer; size & color */
387
+ .table>:not(:last-child)>:last-child>* {
388
+ border-bottom: 3px solid #dee2e6;
389
+ }
390
+ /* Match the table footer to the table header; size & color */
391
+ .tbl-footer {
392
+ border-bottom: 2px solid #dee2e6;
393
+ }
394
+ /* Add the default text color */
395
+ .text-default {
396
+ color: #333333;
397
+ }
119
398
  /* Auto size the toast width */
120
399
  .toast {
121
400
  width: auto;
@@ -124,23 +403,13 @@
124
403
  .tooltip-body>* {
125
404
  position: relative !important;
126
405
  }
127
- /* Center the dataTables_info element properly */
128
- div.dataTables_wrapper div.dataTables_info {
129
- padding-top: 0.9rem;
130
- }
131
- /* Add proper width for dataTables_length select */
132
- div.dataTables_wrapper div.dataTables_length select {
133
- width: 3.75rem;
134
- }
135
- /* Fix extra top margin in Firefox */
136
- table.dataTable {
137
- margin-top: 0rem !important;
406
+ /* Define a custom width value */
407
+ .w-5 {
408
+ width: 5% !important;
138
409
  }
139
410
  }
140
411
 
141
-
142
412
  /** Modal background - Shouldn't be under the .bs class */
143
-
144
413
  .modal-backdrop {
145
414
  position: fixed;
146
415
  top: 0;
@@ -158,9 +427,7 @@
158
427
  }
159
428
  }
160
429
 
161
-
162
430
  /** Offcanvas background - Shouldn't be under the .bs class */
163
-
164
431
  .offcanvas-backdrop {
165
432
  position: fixed;
166
433
  top: 0;
@@ -178,12 +445,23 @@
178
445
  }
179
446
  }
180
447
 
448
+ /* Center the dataTables_info element properly */
449
+ div.dataTables_wrapper div.dataTables_info {
450
+ padding-top: 0.9rem;
451
+ }
181
452
 
182
- /* DataTables sorting with Bootstrap Icons */
453
+ /* Add proper width for dataTables_length select */
454
+ div.dataTables_wrapper div.dataTables_length select {
455
+ width: 3.75rem;
456
+ }
183
457
 
458
+ /* Color match colReorder line */
459
+ div.DTCR_pointer {
460
+ background-color: #0078d4;
461
+ }
184
462
 
185
463
  /* Be sure to escape any characters, such as # to %23 when specifying hex color values in background-image */
186
-
464
+ /* DataTables sorting with Bootstrap Icons */
187
465
  table.dataTable thead .sorting,
188
466
  table.dataTable thead .sorting_asc,
189
467
  table.dataTable thead .sorting_desc,
@@ -206,28 +484,21 @@ table.dataTable thead .sorting_desc_disabled:after {
206
484
  content: "" !important;
207
485
  }
208
486
 
209
-
210
487
  /* Bootstrap Icon: caret-up */
211
-
212
488
  table.dataTable thead .sorting {
213
489
  background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%236c757d' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M3.204 11L8 5.519 12.796 11H3.204zm-.753-.659l4.796-5.48a1 1 0 0 1 1.506 0l4.796 5.48c.566.647.106 1.659-.753 1.659H3.204a1 1 0 0 1-.753-1.659z'/></svg>");
214
490
  }
215
491
 
216
-
217
492
  /* Bootstrap Icon: caret-up-fill */
218
-
219
493
  table.dataTable thead .sorting_asc {
220
494
  background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%236c757d' xmlns='http://www.w3.org/2000/svg'><path d='M7.247 4.86l-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659l-4.796-5.48a1 1 0 0 0-1.506 0z'/></svg>");
221
495
  }
222
496
 
223
-
224
497
  /* Bootstrap Icon: caret-down-fill */
225
-
226
498
  table.dataTable thead .sorting_desc {
227
499
  background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%236c757d' xmlns='http://www.w3.org/2000/svg'><path d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/></svg>");
228
500
  }
229
501
 
230
-
231
502
  /* Tippy Tooltip primary theme color */
232
503
 
233
504
  .tippy-box[data-theme~='primary'] {
@@ -250,7 +521,6 @@ table.dataTable thead .sorting_desc {
250
521
  border-right-color: #0078d4;
251
522
  }
252
523
 
253
-
254
524
  /* Tippy Tooltip secondary theme color */
255
525
 
256
526
  .tippy-box[data-theme~='secondary'] {
@@ -273,7 +543,6 @@ table.dataTable thead .sorting_desc {
273
543
  border-right-color: #6c757d;
274
544
  }
275
545
 
276
-
277
546
  /* Tippy Tooltip success theme color */
278
547
 
279
548
  .tippy-box[data-theme~='success'] {
@@ -296,7 +565,6 @@ table.dataTable thead .sorting_desc {
296
565
  border-right-color: #198754;
297
566
  }
298
567
 
299
-
300
568
  /* Tippy Tooltip info theme color */
301
569
 
302
570
  .tippy-box[data-theme~='info'] {
@@ -320,7 +588,6 @@ table.dataTable thead .sorting_desc {
320
588
  border-right-color: #0dcaf0;
321
589
  }
322
590
 
323
-
324
591
  /* Tippy Tooltip warning theme color */
325
592
 
326
593
  .tippy-box[data-theme~='warning'] {
@@ -344,7 +611,6 @@ table.dataTable thead .sorting_desc {
344
611
  border-right-color: #ffc107;
345
612
  }
346
613
 
347
-
348
614
  /* Tippy Tooltip danger theme color */
349
615
 
350
616
  .tippy-box[data-theme~='danger'] {
@@ -367,7 +633,6 @@ table.dataTable thead .sorting_desc {
367
633
  border-right-color: #dc3545;
368
634
  }
369
635
 
370
-
371
636
  /* Tippy Tooltip light theme color - override Tippy default to match Bootstrap */
372
637
 
373
638
  .tippy-box[data-theme~='light'] {
@@ -391,7 +656,6 @@ table.dataTable thead .sorting_desc {
391
656
  border-right-color: #f8f9fa !important;
392
657
  }
393
658
 
394
-
395
659
  /* Tippy Tooltip dark theme color */
396
660
 
397
661
  .tippy-box[data-theme~='dark'] {
@@ -412,4 +676,4 @@ table.dataTable thead .sorting_desc {
412
676
 
413
677
  .tippy-box[data-theme~='dark'][data-placement^='right']>.tippy-arrow::before {
414
678
  border-right-color: #212529;
415
- }
679
+ }
@@ -615,11 +615,29 @@ export class FormControl implements IFormControl {
615
615
  if (elFormControl) {
616
616
  let useTooltip = this._formProps.validationType == FormValidationTypes.Tooltip;
617
617
 
618
+ // Clear the old valid message if it exists
619
+ let validClassName = useTooltip ? "valid-tooltip" : "valid-feedback";
620
+ let elMessage = elFormControl.parentNode.querySelector("." + validClassName) as HTMLElement;
621
+ if (elMessage) {
622
+ // Clear the message
623
+ elMessage.innerHTML = "";
624
+ elMessage.style.display = "";
625
+ }
626
+
627
+ // Clear the old valid message if it exists
628
+ let invalidClassName = useTooltip ? "invalid-tooltip" : "invalid-feedback";
629
+ elMessage = elFormControl.parentNode.querySelector("." + invalidClassName) as HTMLElement;
630
+ if (elMessage) {
631
+ // Clear the message
632
+ elMessage.innerHTML = "";
633
+ elMessage.style.display = "";
634
+ }
635
+
618
636
  // See if there is invalid feedback
619
637
  if (validation.invalidMessage || this._props.errorMessage) {
620
638
  // Get the element
621
639
  let invalidClassName = useTooltip ? "invalid-tooltip" : "invalid-feedback";
622
- let elMessage = elFormControl.parentNode.querySelector("." + invalidClassName) as HTMLElement;
640
+ elMessage = elFormControl.parentNode.querySelector("." + invalidClassName) as HTMLElement;
623
641
  if (elMessage == null) {
624
642
  // Create the element
625
643
  elMessage = document.createElement("div");
@@ -632,22 +650,13 @@ export class FormControl implements IFormControl {
632
650
 
633
651
  // Update the display
634
652
  elMessage.style.display = validation.isValid ? "" : "block";
635
- } else {
636
- // See if there is valid feedback
637
- let validClassName = useTooltip ? "valid-tooltip" : "valid-feedback";
638
- let elMessage = elFormControl.parentNode.querySelector("." + validClassName) as HTMLElement;
639
- if (elMessage) {
640
- // Clear the message
641
- elMessage.innerHTML = "";
642
- elMessage.style.display = "";
643
- }
644
653
  }
645
654
 
646
655
  // See if there is valid feedback
647
656
  if (validation.validMessage) {
648
657
  // Get the element
649
658
  let validClassName = useTooltip ? "valid-tooltip" : "valid-feedback";
650
- let elMessage = elFormControl.parentNode.querySelector("." + validClassName) as HTMLElement;
659
+ elMessage = elFormControl.parentNode.querySelector("." + validClassName) as HTMLElement;
651
660
  if (elMessage == null) {
652
661
  // Create the element
653
662
  elMessage = document.createElement("div");
@@ -660,15 +669,6 @@ export class FormControl implements IFormControl {
660
669
 
661
670
  // Update the display
662
671
  elMessage.style.display = validation.isValid ? "block" : "";
663
- } else {
664
- // See if there is invalid feedback
665
- let invalidClassName = useTooltip ? "invalid-tooltip" : "invalid-feedback";
666
- let elMessage = elFormControl.parentNode.querySelector("." + invalidClassName) as HTMLElement;
667
- if (elMessage) {
668
- // Clear the message
669
- elMessage.innerHTML = "";
670
- elMessage.style.display = "";
671
- }
672
672
  }
673
673
  }
674
674
  }
@@ -1650,7 +1650,7 @@ export enum IconTypes {
1650
1650
  Windows = 1648,
1651
1651
  Wordpress = 1649,
1652
1652
  WrenchAdjustableCircleFill = 1650,
1653
- WrenchAdjustableCricle = 1651,
1653
+ WrenchAdjustableCircle = 1651,
1654
1654
  WrenchAdjustable = 1652,
1655
1655
  Wrench = 1653,
1656
1656
  XCircleFill = 1654,
@@ -3330,8 +3330,8 @@ export const IconTypes: {
3330
3330
  Wordpress: number;
3331
3331
  // wrench-adjustable-circle-fill.svg
3332
3332
  WrenchAdjustableCircleFill: number;
3333
- // wrench-adjustable-cricle.svg
3334
- WrenchAdjustableCricle: number;
3333
+ // wrench-adjustable-circle.svg
3334
+ WrenchAdjustableCircle: number;
3335
3335
  // wrench-adjustable.svg
3336
3336
  WrenchAdjustable: number;
3337
3337
  // wrench.svg
@@ -4956,9 +4956,9 @@ export const Icons = (iconType:number, height?:number, width?:number, className?
4956
4956
  // wrench-adjustable-circle-fill.svg
4957
4957
  case 1650:
4958
4958
  return SVGIcons.wrenchAdjustableCircleFill(height, width, className);
4959
- // wrench-adjustable-cricle.svg
4959
+ // wrench-adjustable-circle.svg
4960
4960
  case 1651:
4961
- return SVGIcons.wrenchAdjustableCricle(height, width, className);
4961
+ return SVGIcons.wrenchAdjustableCircle(height, width, className);
4962
4962
  // wrench-adjustable.svg
4963
4963
  case 1652:
4964
4964
  return SVGIcons.wrenchAdjustable(height, width, className);
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function badgeSdFill(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-badge-sd-fill' viewBox='0 0 16 16'> <path fill-rule='evenodd' d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm5.077 7.114c-1.524 0-2.263-.8-2.315-1.749h1.147c.079.466.527.809 1.234.809.739 0 1.13-.339 1.13-.83 0-.418-.3-.634-.923-.779l-.927-.215c-.932-.21-1.52-.747-1.52-1.657 0-1.098.918-1.815 2.24-1.815 1.371 0 2.162.77 2.22 1.692H6.238c-.075-.43-.466-.76-1.103-.76-.655 0-1.046.338-1.046.804 0 .36.294.598.821.712l.932.216c.971.22 1.613.685 1.613 1.691 0 1.117-.857 1.881-2.378 1.881ZM8.307 11V5.001h2.19c1.823 0 2.684 1.09 2.684 2.984 0 1.908-.874 3.015-2.685 3.015H8.308Zm2.031-5.032h-.844v4.06h.844c1.116 0 1.622-.667 1.622-2.02 0-1.354-.51-2.04-1.622-2.04Z'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-badge-sd-fill' viewBox='0 0 16 16'> <path d='M10.338 5.968h-.844v4.06h.844c1.116 0 1.622-.667 1.622-2.02 0-1.354-.51-2.04-1.622-2.04Z'/> <path d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm5.077 7.114c1.521 0 2.378-.764 2.378-1.88 0-1.007-.642-1.473-1.613-1.692l-.932-.216c-.527-.114-.821-.351-.821-.712 0-.466.39-.804 1.046-.804.637 0 1.028.33 1.103.76h1.125c-.058-.923-.849-1.692-2.22-1.692-1.322 0-2.24.717-2.24 1.815 0 .91.588 1.446 1.52 1.657l.927.215c.624.145.923.36.923.778 0 .492-.391.83-1.13.83-.707 0-1.155-.342-1.234-.808H2.762c.052.95.79 1.75 2.315 1.75ZM8.307 11h2.19c1.81 0 2.684-1.107 2.684-3.015 0-1.894-.861-2.984-2.685-2.984H8.308V11Z'/> </svg>`, height, width, className);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function bagHeartFill(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-bag-heart-fill' viewBox='0 0 16 16'> <path fill-rule='evenodd' d='M10.5 3.5a2.5 2.5 0 0 0-5 0V4h5v-.5Zm1 0V4H15v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V4h3.5v-.5a3.5 3.5 0 1 1 7 0ZM8 7.993c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-bag-heart-fill' viewBox='0 0 16 16'> <path d='M11.5 4v-.5a3.5 3.5 0 1 0-7 0V4H1v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4h-3.5ZM8 1a2.5 2.5 0 0 1 2.5 2.5V4h-5v-.5A2.5 2.5 0 0 1 8 1Zm0 6.993c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z'/> </svg>`, height, width, className);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function box2(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2' viewBox='0 0 16 16'> <path stroke='#000' stroke-linejoin='round' d='M.5 4.5V15a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V4.5m-15 0L3.35.7a.5.5 0 0 1 .4-.2H8m-7.5 4H8m7.5 0L12.65.7a.5.5 0 0 0-.4-.2H8m7.5 4H8m0-4v4'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2' viewBox='0 0 16 16'> <path d='M2.95.4a1 1 0 0 1 .8-.4h8.5a1 1 0 0 1 .8.4l2.85 3.8a.5.5 0 0 1 .1.3V15a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V4.5a.5.5 0 0 1 .1-.3L2.95.4ZM7.5 1H3.75L1.5 4h6V1Zm1 0v3h6l-2.25-3H8.5ZM15 5H1v10h14V5Z'/> </svg>`, height, width, className);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function box2Fill(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2-fill' viewBox='0 0 16 16'> <path fill-rule='evenodd' d='M3.75 0a1 1 0 0 0-.8.4L.1 4.2a.5.5 0 0 0-.1.3V15a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V4.5a.5.5 0 0 0-.1-.3L13.05.4a1 1 0 0 0-.8-.4h-8.5ZM15 4.667 14.5 4h-6V1h-1v3h-6l-.5.667V5h14v-.333Z'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2-fill' viewBox='0 0 16 16'> <path d='M3.75 0a1 1 0 0 0-.8.4L.1 4.2a.5.5 0 0 0-.1.3V15a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V4.5a.5.5 0 0 0-.1-.3L13.05.4a1 1 0 0 0-.8-.4h-8.5ZM15 4.667V5H1v-.333L1.5 4h6V1h1v3h6l.5.667Z'/> </svg>`, height, width, className);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function box2Heart(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2-heart' viewBox='0 0 16 16'> <path fill-rule='evenodd' d='M3.75 0a1 1 0 0 0-.8.4L.1 4.2a.5.5 0 0 0-.1.3V15a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V4.5a.5.5 0 0 0-.1-.3L13.05.4a1 1 0 0 0-.8-.4h-8.5Zm0 1H7.5v3h-6l2.25-3ZM8.5 4V1h3.75l2.25 3h-6ZM8 5h7v10H1V5h7Zm0 2.982C9.664 6.309 13.825 9.236 8 13 2.175 9.236 6.336 6.31 8 7.982Z'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2-heart' viewBox='0 0 16 16'> <path d='M8 7.982C9.664 6.309 13.825 9.236 8 13 2.175 9.236 6.336 6.31 8 7.982Z'/> <path d='M3.75 0a1 1 0 0 0-.8.4L.1 4.2a.5.5 0 0 0-.1.3V15a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V4.5a.5.5 0 0 0-.1-.3L13.05.4a1 1 0 0 0-.8-.4h-8.5Zm0 1H7.5v3h-6l2.25-3ZM8.5 4V1h3.75l2.25 3h-6ZM15 5v10H1V5h14Z'/> </svg>`, height, width, className);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function box2HeartFill(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2-heart-fill' viewBox='0 0 16 16'> <path fill-rule='evenodd' d='M2.95.4a1 1 0 0 1 .8-.4h8.5a1 1 0 0 1 .8.4l2.85 3.8a.5.5 0 0 1 .1.3V15a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V4.5a.5.5 0 0 1 .1-.3L2.95.4ZM14.5 4l.5.667V5H1v-.333L1.5 4h6V1h1v3h6ZM8 7.982C9.664 6.309 13.825 9.236 8 13 2.175 9.236 6.336 6.31 8 7.982Z'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-box2-heart-fill' viewBox='0 0 16 16'> <path d='M3.75 0a1 1 0 0 0-.8.4L.1 4.2a.5.5 0 0 0-.1.3V15a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V4.5a.5.5 0 0 0-.1-.3L13.05.4a1 1 0 0 0-.8-.4h-8.5ZM8.5 4h6l.5.667V5H1v-.333L1.5 4h6V1h1v3ZM8 7.993c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z'/> </svg>`, height, width, className);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function calendar2HeartFill(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-calendar2-heart-fill' viewBox='0 0 16 16'> <path fill-rule='evenodd' d='M4 .5a.5.5 0 0 0-1 0V1H2a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2h-1V.5a.5.5 0 0 0-1 0V1H4V.5Zm-2 4v-1c0-.276.244-.5.545-.5h10.91c.3 0 .545.224.545.5v1c0 .276-.244.5-.546.5H2.545C2.245 5 2 4.776 2 4.5Zm6 3.493c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-calendar2-heart-fill' viewBox='0 0 16 16'> <path d='M4 .5a.5.5 0 0 0-1 0V1H2a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2h-1V.5a.5.5 0 0 0-1 0V1H4V.5Zm-2 4v-1c0-.276.244-.5.545-.5h10.91c.3 0 .545.224.545.5v1c0 .276-.244.5-.546.5H2.545C2.245 5 2 4.776 2 4.5Zm6 3.493c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z'/> </svg>`, height, width, className);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { generateIcon } from "../generate";
2
2
  export function calendarHeartFill(height, width, className?) {
3
- return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-calendar-heart-fill' viewBox='0 0 16 16'> <path fill-rule='evenodd' d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v1H0V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5ZM16 5v9a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V5h16ZM8 8.493c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z'/> </svg>`, height, width, className);
3
+ return generateIcon(`<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-calendar-heart-fill' viewBox='0 0 16 16'> <path d='M4 .5a.5.5 0 0 0-1 0V1H2a2 2 0 0 0-2 2v1h16V3a2 2 0 0 0-2-2h-1V.5a.5.5 0 0 0-1 0V1H4V.5ZM16 14V5H0v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2ZM8 7.993c1.664-1.711 5.825 1.283 0 5.132-5.825-3.85-1.664-6.843 0-5.132Z'/> </svg>`, height, width, className);
4
4
  }