@iamproperty/components 7.1.0--beta6 → 7.1.0--beta7

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 (92) hide show
  1. package/assets/css/components/actionbar.css.map +1 -1
  2. package/assets/css/components/actionbar.global.css.map +1 -1
  3. package/assets/css/components/barchart.component.css +1 -1
  4. package/assets/css/components/barchart.component.css.map +1 -1
  5. package/assets/css/components/card.component.css.map +1 -1
  6. package/assets/css/components/carousel.component.css.map +1 -1
  7. package/assets/css/components/carousel.config.css.map +1 -1
  8. package/assets/css/components/charts.module.css +1 -1
  9. package/assets/css/components/charts.module.css.map +1 -1
  10. package/assets/css/components/collapsible-side.css.map +1 -1
  11. package/assets/css/components/header.css.map +1 -1
  12. package/assets/css/components/marketing.css.map +1 -1
  13. package/assets/css/components/multi-step.component.css.map +1 -1
  14. package/assets/css/components/multiselect.preload.css.map +1 -1
  15. package/assets/css/components/nav.css.map +1 -1
  16. package/assets/css/components/nav.docs.css.map +1 -1
  17. package/assets/css/components/nav.global.css.map +1 -1
  18. package/assets/css/components/nav.old.css.map +1 -1
  19. package/assets/css/components/nav.preload.css.map +1 -1
  20. package/assets/css/components/notification.css.map +1 -1
  21. package/assets/css/components/pagination.css.map +1 -1
  22. package/assets/css/components/property-searchbar.css.map +1 -1
  23. package/assets/css/components/snapshot.css.map +1 -1
  24. package/assets/css/components/stepper.css.map +1 -1
  25. package/assets/css/components/table.global.css.map +1 -1
  26. package/assets/css/components/tabs.css +1 -1
  27. package/assets/css/components/tabs.css.map +1 -1
  28. package/assets/css/components/testimonial.css.map +1 -1
  29. package/assets/css/components/timeline.css.map +1 -1
  30. package/assets/css/core.min.css +1 -1
  31. package/assets/css/core.min.css.map +1 -1
  32. package/assets/css/style.min.css +1 -1
  33. package/assets/css/style.min.css.map +1 -1
  34. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  35. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  36. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  37. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  38. package/assets/js/components/barchart/barchart.component.min.js +4 -4
  39. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  40. package/assets/js/components/card/card.component.min.js +1 -1
  41. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  42. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  43. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  44. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  45. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  46. package/assets/js/components/header/header.component.min.js +1 -1
  47. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  48. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  49. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  50. package/assets/js/components/nav/nav.component.min.js +1 -1
  51. package/assets/js/components/notification/notification.component.min.js +1 -1
  52. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  53. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  54. package/assets/js/components/search/search.component.min.js +1 -1
  55. package/assets/js/components/slider/slider.component.min.js +1 -1
  56. package/assets/js/components/table/table.component.js +4 -2
  57. package/assets/js/components/table/table.component.min.js +2 -2
  58. package/assets/js/components/table/table.component.min.js.map +1 -1
  59. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  60. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  61. package/assets/js/components.bundle.js +1 -1
  62. package/assets/js/modules/chart.module.js +19 -5
  63. package/assets/js/scripts.bundle.js +1 -1
  64. package/assets/js/scripts.bundle.min.js +1 -1
  65. package/assets/sass/_bs_grid.scss +36 -0
  66. package/assets/sass/_corefiles.scss +1 -18
  67. package/assets/sass/_func.scss +2 -4
  68. package/assets/sass/_functions/mixins.scss +0 -39
  69. package/assets/sass/_functions/utility-mixins.scss +1433 -0
  70. package/assets/sass/{foundations/grid.scss → _grid.scss} +83 -83
  71. package/assets/sass/_utilities.scss +26 -118
  72. package/assets/sass/_utility-mixins.scss +32 -0
  73. package/assets/sass/components/barchart.component.scss +2 -0
  74. package/assets/sass/components/charts.module.scss +29 -2
  75. package/assets/sass/components/tabs.scss +2 -3
  76. package/assets/sass/core.scss +3 -1
  77. package/assets/sass/elements/admin-panel.scss +62 -9
  78. package/assets/sass/elements/container.scss +33 -0
  79. package/assets/sass/email.scss +4 -0
  80. package/assets/sass/error.scss +4 -0
  81. package/assets/sass/helpers/line-clamp.scss +0 -23
  82. package/assets/sass/main.scss +4 -1
  83. package/assets/ts/components/table/table.component.ts +8 -5
  84. package/assets/ts/modules/chart.module.ts +24 -5
  85. package/assets/ts/modules/tabs.ts +1 -6
  86. package/dist/components.es.js +11 -11
  87. package/dist/components.umd.js +40 -40
  88. package/dist/style.css +1 -1
  89. package/package.json +1 -1
  90. package/assets/sass/components.reset.scss +0 -8
  91. package/assets/sass/foundations/bs_grid.scss +0 -32
  92. /package/assets/sass/_functions/{utilities.scss → bs_utilities.scss} +0 -0
@@ -0,0 +1,1433 @@
1
+ $new_utilities: ();
2
+
3
+ $style_breakpoints: ();
4
+
5
+ @each $bp, $value in $grid-breakpoints {
6
+ @if $bp != 'xs' {
7
+ $style_breakpoints: map-merge((#{$bp}: ''), $style_breakpoints);
8
+ } @else {
9
+ $style_breakpoints: map-merge((#{$bp}: -#{$bp}), $style_breakpoints);
10
+ }
11
+ }
12
+
13
+ // #region Clearfix
14
+ $new_utilities: map-merge(
15
+ $new_utilities,
16
+ (
17
+ 'clearfix': 'Clear the floats from both sides',
18
+ )
19
+ );
20
+
21
+ @mixin clearfix() {
22
+ .clearfix {
23
+ &::after {
24
+ display: block;
25
+ clear: both;
26
+ content: '';
27
+ }
28
+ }
29
+ }
30
+ // #endregion
31
+
32
+ // #region visually-hidden
33
+ $new_utilities: map-merge(
34
+ $new_utilities,
35
+ (
36
+ 'visually-hidden': 'Hide an element from the standard user but not from screen readers',
37
+ )
38
+ );
39
+
40
+ @mixin visually-hidden() {
41
+ .visually-hidden,
42
+ .visually-hidden-focusable:not(:focus):not(:focus-within) {
43
+ position: absolute !important;
44
+ width: 1px !important;
45
+ height: 1px !important;
46
+ padding: 0 !important;
47
+ margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
48
+ overflow: hidden !important;
49
+ clip: rect(0, 0, 0, 0) !important;
50
+ white-space: nowrap !important;
51
+ border: 0 !important;
52
+ }
53
+ }
54
+ // #endregion
55
+
56
+ // #region text-truncate
57
+ $new_utilities: map-merge(
58
+ $new_utilities,
59
+ (
60
+ 'text-truncate': 'Keep the text onto one line and add an ellipsis if needed',
61
+ )
62
+ );
63
+
64
+ @mixin text-truncate() {
65
+ .text-truncate {
66
+ overflow: hidden;
67
+ text-overflow: ellipsis;
68
+ white-space: nowrap;
69
+ }
70
+ }
71
+ // #endregion
72
+
73
+ // #region ratio
74
+ $new_utilities: map-merge(
75
+ $new_utilities,
76
+ (
77
+ 'ratio': 'Use pre-defined aspect ratios to generate the sizing or elements',
78
+ )
79
+ );
80
+
81
+ @mixin ratio() {
82
+ .ratio {
83
+ position: relative;
84
+ width: 100%;
85
+
86
+ &::before {
87
+ display: block;
88
+ padding-top: var(--#{$prefix}aspect-ratio);
89
+ content: '';
90
+ }
91
+
92
+ > * {
93
+ position: absolute;
94
+ top: 0;
95
+ left: 0;
96
+ width: 100%;
97
+ height: 100%;
98
+ }
99
+ }
100
+
101
+ @each $key, $ratio in $aspect-ratios {
102
+ .ratio-#{$key} {
103
+ --#{$prefix}aspect-ratio: #{$ratio};
104
+ }
105
+ }
106
+ }
107
+ // #endregion
108
+
109
+ // #region fixed
110
+ $new_utilities: map-merge(
111
+ $new_utilities,
112
+ (
113
+ 'fixed': 'Fix elements to either the top or bottom',
114
+ )
115
+ );
116
+
117
+ @mixin fixed() {
118
+ .fixed-top {
119
+ position: fixed;
120
+ top: 0;
121
+ right: 0;
122
+ left: 0;
123
+ z-index: $zindex-fixed;
124
+ }
125
+
126
+ .fixed-bottom {
127
+ position: fixed;
128
+ right: 0;
129
+ bottom: 0;
130
+ left: 0;
131
+ z-index: $zindex-fixed;
132
+ }
133
+ }
134
+ // #endregion
135
+
136
+ // #region sticky
137
+ $new_utilities: map-merge(
138
+ $new_utilities,
139
+ (
140
+ 'sticky': 'Make elements stick to either the top or bottom',
141
+ )
142
+ );
143
+
144
+ @mixin sticky() {
145
+ @each $breakpoint in map-keys($grid-breakpoints) {
146
+ @include media-breakpoint-up($breakpoint) {
147
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
148
+
149
+ .sticky#{$infix}-top {
150
+ position: sticky;
151
+ top: 0;
152
+ z-index: $zindex-sticky;
153
+ }
154
+
155
+ .sticky#{$infix}-bottom {
156
+ position: sticky;
157
+ bottom: 0;
158
+ z-index: $zindex-sticky;
159
+ }
160
+ }
161
+ }
162
+ }
163
+ // #endregion
164
+
165
+ // #region max-height
166
+ $new_utilities: map-merge(
167
+ $new_utilities,
168
+ (
169
+ 'max-height':
170
+ 'Set a pre-defined max height on an element, note this will create a scrollable area if the content is larger than the max height.',
171
+ )
172
+ );
173
+
174
+ @mixin max-height() {
175
+ :is(.mh-sm, .mh-md, .mh-lg, .mh-sm-sm, .mh-sm-md, .mh-sm-lg, .mh-md-sm, .mh-md-md, .mh-md-lg, .mh-fluid) {
176
+ &:not(iam-table):not(.table__wrapper) {
177
+ padding-inline: var(--mh-padding-inline, 0);
178
+ margin-inline: calc(var(--mh-padding-inline, 0) * -1);
179
+ }
180
+
181
+ &::before {
182
+ top: calc(100% - 1.5rem);
183
+ bottom: 0;
184
+ left: 0;
185
+ right: 0;
186
+ height: 1.5rem;
187
+ position: sticky;
188
+ display: block;
189
+ background: linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);
190
+ z-index: 2;
191
+ margin-bottom: -1.5rem;
192
+ }
193
+ }
194
+
195
+ :is(.mh-sm, .mh-md, .mh-lg, .mh-fluid) {
196
+ overflow: auto;
197
+ overscroll-behavior: contain;
198
+
199
+ &::before {
200
+ content: '';
201
+ }
202
+ }
203
+
204
+ .mh-sm {
205
+ max-height: calc(#{rem(200)} - var(--mh-modifier, 0rem));
206
+ }
207
+
208
+ .mh-md {
209
+ max-height: calc(#{rem(400)} - var(--mh-modifier, 0rem));
210
+ }
211
+
212
+ .mh-lg {
213
+ max-height: calc(#{rem(600)} - var(--mh-modifier, 0rem));
214
+ }
215
+
216
+ .mh-fluid {
217
+ max-height: 100%;
218
+ }
219
+
220
+ @include media-breakpoint-up(sm) {
221
+ :is(.mh-sm-sm, .mh-sm-md, .mh-sm-lg) {
222
+ overflow: auto;
223
+ overscroll-behavior: contain;
224
+
225
+ &::before {
226
+ content: '';
227
+ }
228
+ }
229
+
230
+ .mh-sm-sm {
231
+ max-height: calc(#{rem(200)} - var(--mh-modifier, 0rem));
232
+ }
233
+
234
+ .mh-sm-md {
235
+ max-height: calc(#{rem(400)} - var(--mh-modifier, 0rem));
236
+ }
237
+
238
+ .mh-sm-lg {
239
+ max-height: calc(#{rem(600)} - var(--mh-modifier, 0rem));
240
+ }
241
+ }
242
+
243
+ @include media-breakpoint-up(md) {
244
+ :is(.mh-md-sm, .mh-md-md, .mh-md-lg) {
245
+ overflow: auto;
246
+ overscroll-behavior: contain;
247
+
248
+ &::before {
249
+ content: '';
250
+ }
251
+ }
252
+
253
+ .mh-md-sm {
254
+ max-height: calc(#{rem(200)} - var(--mh-modifier, 0rem));
255
+ }
256
+
257
+ .mh-md-md {
258
+ max-height: calc(#{rem(400)} - var(--mh-modifier, 0rem));
259
+ }
260
+
261
+ .mh-md-lg {
262
+ max-height: calc(#{rem(600)} - var(--mh-modifier, 0rem));
263
+ }
264
+ }
265
+ }
266
+ // #endregion
267
+
268
+ // #region js-display
269
+ $new_utilities: map-merge(
270
+ $new_utilities,
271
+ (
272
+ 'js-display': 'Show and hide elements depending upon if javascript is running or not',
273
+ )
274
+ );
275
+
276
+ @mixin js-display() {
277
+ @media (scripting: enabled) {
278
+ .js-show {
279
+ display: none !important;
280
+ }
281
+ }
282
+
283
+ @media (scripting: none) {
284
+ .js-hide {
285
+ display: none !important;
286
+ }
287
+ }
288
+ }
289
+ // #endregion
290
+
291
+ // #region Line clamp
292
+ $new_utilities: map-merge(
293
+ $new_utilities,
294
+ (
295
+ 'line-clamp': 'Restricts a texts height to a number of lines (1-5)',
296
+ )
297
+ );
298
+
299
+ @mixin line-clamp() {
300
+ .line-clamp {
301
+ display: -webkit-box;
302
+ -webkit-box-orient: vertical;
303
+ -webkit-line-clamp: 1;
304
+ text-overflow: hidden;
305
+ overflow: hidden;
306
+ }
307
+
308
+ .line-clamp--2 {
309
+ -webkit-line-clamp: 2;
310
+ }
311
+
312
+ .line-clamp--3 {
313
+ -webkit-line-clamp: 3;
314
+ }
315
+
316
+ .line-clamp--4 {
317
+ -webkit-line-clamp: 4;
318
+ }
319
+
320
+ .line-clamp--5 {
321
+ -webkit-line-clamp: 5;
322
+ }
323
+ }
324
+ // #endregion
325
+
326
+ // #region Wider colours
327
+ $new_utilities: map-merge(
328
+ $new_utilities,
329
+ (
330
+ 'wider-colours': 'Apply the wider range of colours in our design system',
331
+ )
332
+ );
333
+
334
+ @mixin wider-colours() {
335
+ @each $colour, $value in $wider-colours {
336
+ .wider-colour-#{$colour} {
337
+ --wider-colour: var(--wider-colour-#{$colour});
338
+ --wider-colour-hover: var(--wider-colour-#{$colour}-hover);
339
+ --wider-colour-active: var(--wider-colour-#{$colour}-active);
340
+ color: #262626 !important;
341
+ }
342
+ }
343
+ }
344
+ // #endregion
345
+
346
+ // #region Align
347
+ $new_utilities: map-merge(
348
+ $new_utilities,
349
+ (
350
+ 'align': 'Change the alignment of the text ',
351
+ )
352
+ );
353
+
354
+ @mixin align() {
355
+ .align-baseline {
356
+ vertical-align: baseline !important;
357
+ }
358
+
359
+ .align-top {
360
+ vertical-align: top !important;
361
+ }
362
+
363
+ .align-middle {
364
+ vertical-align: middle !important;
365
+ }
366
+
367
+ .align-bottom {
368
+ vertical-align: bottom !important;
369
+ }
370
+
371
+ .align-text-bottom {
372
+ vertical-align: text-bottom !important;
373
+ }
374
+
375
+ .align-text-top {
376
+ vertical-align: text-top !important;
377
+ }
378
+ }
379
+ // #endregion
380
+
381
+ // #region Opacity
382
+ $new_utilities: map-merge(
383
+ $new_utilities,
384
+ (
385
+ 'opacity': 'Apply the opacity of an element by intervals of 25%',
386
+ )
387
+ );
388
+
389
+ @mixin opacity() {
390
+ .opacity-0 {
391
+ opacity: 0 !important;
392
+ }
393
+
394
+ .opacity-25 {
395
+ opacity: 0.25 !important;
396
+ }
397
+
398
+ .opacity-50 {
399
+ opacity: 0.5 !important;
400
+ }
401
+
402
+ .opacity-75 {
403
+ opacity: 0.75 !important;
404
+ }
405
+
406
+ .opacity-100 {
407
+ opacity: 1 !important;
408
+ }
409
+ }
410
+ // #endregion
411
+
412
+ // #region Overflow
413
+ $new_utilities: map-merge(
414
+ $new_utilities,
415
+ (
416
+ 'overflow': 'Update the overflow of an element',
417
+ )
418
+ );
419
+
420
+ @mixin overflow() {
421
+ .overflow-auto {
422
+ overflow: auto !important;
423
+ }
424
+
425
+ .overflow-hidden {
426
+ overflow: hidden !important;
427
+ }
428
+
429
+ .overflow-visible {
430
+ overflow: visible !important;
431
+ }
432
+
433
+ .overflow-scroll {
434
+ overflow: scroll !important;
435
+ }
436
+ }
437
+ // #endregion
438
+
439
+ // #region Display
440
+ $new_utilities: map-merge(
441
+ $new_utilities,
442
+ (
443
+ 'display': 'Update the display of an element, can be applied at different breakpoints',
444
+ )
445
+ );
446
+
447
+ @mixin display() {
448
+ @each $breakpoint in map-keys($grid-breakpoints) {
449
+ @include media-breakpoint-up($breakpoint) {
450
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
451
+
452
+ .d#{$infix}-inline {
453
+ display: inline !important;
454
+ }
455
+
456
+ .d#{$infix}-inline-block {
457
+ display: inline-block !important;
458
+ }
459
+
460
+ .d#{$infix}-block {
461
+ display: block !important;
462
+ }
463
+
464
+ .d#{$infix}-grid {
465
+ display: grid !important;
466
+ }
467
+
468
+ .d#{$infix}-table {
469
+ display: table !important;
470
+ }
471
+
472
+ .d#{$infix}-table-row {
473
+ display: table-row !important;
474
+ }
475
+
476
+ .d#{$infix}-table-cell {
477
+ display: table-cell !important;
478
+ }
479
+
480
+ .d#{$infix}-flex {
481
+ display: flex !important;
482
+ }
483
+
484
+ .d#{$infix}-inline-flex {
485
+ display: inline-flex !important;
486
+ }
487
+
488
+ .d#{$infix}-none {
489
+ display: none !important;
490
+ }
491
+ }
492
+ }
493
+ }
494
+ // #endregion
495
+
496
+ // #region Position
497
+ $new_utilities: map-merge(
498
+ $new_utilities,
499
+ (
500
+ 'position': 'Update the position of an element, can be applied at different breakpoints',
501
+ )
502
+ );
503
+
504
+ @mixin position() {
505
+ @each $breakpoint in map-keys($grid-breakpoints) {
506
+ @include media-breakpoint-up($breakpoint) {
507
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
508
+ .position#{$infix}-static {
509
+ position: static !important;
510
+ }
511
+
512
+ .position#{$infix}-relative {
513
+ position: relative !important;
514
+ }
515
+
516
+ .position#{$infix}-absolute {
517
+ position: absolute !important;
518
+ }
519
+
520
+ .position#{$infix}-fixed {
521
+ position: fixed !important;
522
+ }
523
+
524
+ .position#{$infix}-sticky {
525
+ position: sticky !important;
526
+ }
527
+
528
+ .top#{$infix}-0 {
529
+ top: 0 !important;
530
+ }
531
+
532
+ .top#{$infix}-50 {
533
+ top: 50% !important;
534
+ }
535
+
536
+ .top#{$infix}-100 {
537
+ top: 100% !important;
538
+ }
539
+
540
+ .bottom#{$infix}-0 {
541
+ bottom: 0 !important;
542
+ }
543
+
544
+ .bottom#{$infix}-50 {
545
+ bottom: 50% !important;
546
+ }
547
+
548
+ .bottom#{$infix}-100 {
549
+ bottom: 100% !important;
550
+ }
551
+
552
+ .start#{$infix}-0 {
553
+ left: 0 !important;
554
+ }
555
+
556
+ .start#{$infix}-50 {
557
+ left: 50% !important;
558
+ }
559
+
560
+ .start#{$infix}-100 {
561
+ left: 100% !important;
562
+ }
563
+
564
+ .end#{$infix}-0 {
565
+ right: 0 !important;
566
+ }
567
+
568
+ .end#{$infix}-50 {
569
+ right: 50% !important;
570
+ }
571
+
572
+ .end#{$infix}-100 {
573
+ right: 100% !important;
574
+ }
575
+
576
+ .translate#{$infix}-middle {
577
+ transform: translate(-50%, -50%) !important;
578
+ }
579
+
580
+ .translate#{$infix}-middle-x {
581
+ transform: translateX(-50%) !important;
582
+ }
583
+
584
+ .translate#{$infix}-middle-y {
585
+ transform: translateY(-50%) !important;
586
+ }
587
+ }
588
+ }
589
+ }
590
+ // #endregion
591
+
592
+ // #region Border
593
+ $new_utilities: map-merge(
594
+ $new_utilities,
595
+ (
596
+ 'border': 'Apply a border and adjust its settings',
597
+ )
598
+ );
599
+
600
+ @mixin border() {
601
+ .border {
602
+ border: var(--border-width) var(--border-style) var(--border-color) !important;
603
+ }
604
+
605
+ .border-0 {
606
+ border: 0 !important;
607
+ }
608
+
609
+ .border-top {
610
+ border-top: var(--border-width) var(--border-style) var(--border-color) !important;
611
+ }
612
+
613
+ .border-top-0 {
614
+ border-top: 0 !important;
615
+ }
616
+
617
+ .border-end {
618
+ border-right: var(--border-width) var(--border-style) var(--border-color) !important;
619
+ }
620
+
621
+ .border-end-0 {
622
+ border-right: 0 !important;
623
+ }
624
+
625
+ .border-bottom {
626
+ border-bottom: var(--border-width) var(--border-style) var(--border-color) !important;
627
+ }
628
+
629
+ .border-bottom-0 {
630
+ border-bottom: 0 !important;
631
+ }
632
+
633
+ .border-start {
634
+ border-left: var(--border-width) var(--border-style) var(--border-color) !important;
635
+ }
636
+
637
+ .border-start-0 {
638
+ border-left: 0 !important;
639
+ }
640
+
641
+ .border-1 {
642
+ --border-width: 1px;
643
+ }
644
+
645
+ .border-2 {
646
+ --border-width: 2px;
647
+ }
648
+
649
+ .border-3 {
650
+ --border-width: 3px;
651
+ }
652
+
653
+ .border-4 {
654
+ --border-width: 4px;
655
+ }
656
+
657
+ .border-5 {
658
+ --border-width: 5px;
659
+ }
660
+
661
+ .border-opacity-10 {
662
+ --border-opacity: 0.1;
663
+ }
664
+
665
+ .border-opacity-25 {
666
+ --border-opacity: 0.25;
667
+ }
668
+
669
+ .border-opacity-50 {
670
+ --border-opacity: 0.5;
671
+ }
672
+
673
+ .border-opacity-75 {
674
+ --border-opacity: 0.75;
675
+ }
676
+
677
+ .border-opacity-100 {
678
+ --border-opacity: 1;
679
+ }
680
+ }
681
+ // #endregion
682
+
683
+ // #region Sizes
684
+ $new_utilities: map-merge(
685
+ $new_utilities,
686
+ (
687
+ 'sizes': 'Apply sizing rules to an element',
688
+ )
689
+ );
690
+
691
+ @mixin sizes() {
692
+ .w-25 {
693
+ width: 25% !important;
694
+ }
695
+
696
+ .w-50 {
697
+ width: 50% !important;
698
+ }
699
+
700
+ .w-75 {
701
+ width: 75% !important;
702
+ }
703
+
704
+ .w-100 {
705
+ width: 100% !important;
706
+ }
707
+
708
+ .w-auto {
709
+ width: auto !important;
710
+ }
711
+
712
+ .mw-100 {
713
+ max-width: 100% !important;
714
+ }
715
+
716
+ .mw-fit-content {
717
+ max-width: fit-content !important;
718
+ }
719
+
720
+ .mw-content {
721
+ max-width: var(--content-max-width) !important;
722
+ }
723
+
724
+ .vw-100 {
725
+ width: 100vw !important;
726
+ }
727
+
728
+ .min-vw-100 {
729
+ min-width: 100vw !important;
730
+ }
731
+
732
+ .h-25 {
733
+ height: 25% !important;
734
+ }
735
+
736
+ .h-50 {
737
+ height: 50% !important;
738
+ }
739
+
740
+ .h-75 {
741
+ height: 75% !important;
742
+ }
743
+
744
+ .h-100 {
745
+ height: 100% !important;
746
+ }
747
+
748
+ .h-auto {
749
+ height: auto !important;
750
+ }
751
+
752
+ .mh-100 {
753
+ max-height: 100% !important;
754
+ }
755
+
756
+ .vh-100 {
757
+ height: 100vh !important;
758
+ }
759
+
760
+ .min-vh-100 {
761
+ min-height: 100vh !important;
762
+ }
763
+
764
+ .min-100 {
765
+ min-width: 100% !important;
766
+ }
767
+
768
+ .min-fit-content {
769
+ min-width: fit-content !important;
770
+ }
771
+
772
+ .object-cover {
773
+ object-fit: cover !important;
774
+ }
775
+
776
+ .object-contain {
777
+ object-fit: contain !important;
778
+ }
779
+ }
780
+ // #endregion
781
+
782
+ // #region Flex
783
+ $new_utilities: map-merge(
784
+ $new_utilities,
785
+ (
786
+ 'flex': 'Update the flex rules of an element, can be applied at different breakpoints',
787
+ )
788
+ );
789
+
790
+ @mixin flex() {
791
+ @each $breakpoint in map-keys($grid-breakpoints) {
792
+ @include media-breakpoint-up($breakpoint) {
793
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
794
+
795
+ .flex#{$infix}-fill {
796
+ flex: 1 1 auto !important;
797
+ }
798
+
799
+ .flex#{$infix}-row {
800
+ flex-direction: row !important;
801
+ }
802
+
803
+ .flex#{$infix}-column {
804
+ flex-direction: column !important;
805
+ }
806
+
807
+ .flex#{$infix}-row-reverse {
808
+ flex-direction: row-reverse !important;
809
+ }
810
+
811
+ .flex#{$infix}-column-reverse {
812
+ flex-direction: column-reverse !important;
813
+ }
814
+
815
+ .flex#{$infix}-grow-0 {
816
+ flex-grow: 0 !important;
817
+ }
818
+
819
+ .flex#{$infix}-grow-1 {
820
+ flex-grow: 1 !important;
821
+ }
822
+
823
+ .flex#{$infix}-shrink-0 {
824
+ flex-shrink: 0 !important;
825
+ }
826
+
827
+ .flex#{$infix}-shrink-1 {
828
+ flex-shrink: 1 !important;
829
+ }
830
+
831
+ .flex#{$infix}-wrap {
832
+ flex-wrap: wrap !important;
833
+ }
834
+
835
+ .flex#{$infix}-nowrap {
836
+ flex-wrap: nowrap !important;
837
+ }
838
+
839
+ .flex#{$infix}-wrap-reverse {
840
+ flex-wrap: wrap-reverse !important;
841
+ }
842
+
843
+ .justify-content#{$infix}-start {
844
+ justify-content: flex-start !important;
845
+ }
846
+
847
+ .justify-content#{$infix}-end {
848
+ justify-content: flex-end !important;
849
+ }
850
+
851
+ .justify-content#{$infix}-center {
852
+ justify-content: center !important;
853
+ }
854
+
855
+ .justify-content#{$infix}-between {
856
+ justify-content: space-between !important;
857
+ }
858
+
859
+ .justify-content#{$infix}-around {
860
+ justify-content: space-around !important;
861
+ }
862
+
863
+ .justify-content#{$infix}-evenly {
864
+ justify-content: space-evenly !important;
865
+ }
866
+
867
+ .align-items#{$infix}-start {
868
+ align-items: flex-start !important;
869
+ }
870
+
871
+ .align-items#{$infix}-end {
872
+ align-items: flex-end !important;
873
+ }
874
+
875
+ .align-items#{$infix}-center {
876
+ align-items: center !important;
877
+ }
878
+
879
+ .align-items#{$infix}-baseline {
880
+ align-items: baseline !important;
881
+ }
882
+
883
+ .align-items#{$infix}-stretch {
884
+ align-items: stretch !important;
885
+ }
886
+
887
+ .align-content#{$infix}-start {
888
+ align-content: flex-start !important;
889
+ }
890
+
891
+ .align-content#{$infix}-end {
892
+ align-content: flex-end !important;
893
+ }
894
+
895
+ .align-content#{$infix}-center {
896
+ align-content: center !important;
897
+ }
898
+
899
+ .align-content#{$infix}-between {
900
+ align-content: space-between !important;
901
+ }
902
+
903
+ .align-content#{$infix}-around {
904
+ align-content: space-around !important;
905
+ }
906
+
907
+ .align-content#{$infix}-stretch {
908
+ align-content: stretch !important;
909
+ }
910
+
911
+ .align-self#{$infix}-auto {
912
+ align-self: auto !important;
913
+ }
914
+
915
+ .align-self#{$infix}-start {
916
+ align-self: flex-start !important;
917
+ }
918
+
919
+ .align-self#{$infix}-end {
920
+ align-self: flex-end !important;
921
+ }
922
+
923
+ .align-self#{$infix}-center {
924
+ align-self: center !important;
925
+ }
926
+
927
+ .align-self#{$infix}-baseline {
928
+ align-self: baseline !important;
929
+ }
930
+
931
+ .align-self#{$infix}-stretch {
932
+ align-self: stretch !important;
933
+ }
934
+ }
935
+ }
936
+ }
937
+ // #endregion
938
+
939
+ // #region Order
940
+ $new_utilities: map-merge(
941
+ $new_utilities,
942
+ (
943
+ 'order': 'Update the order of an element, can be applied at different breakpoints',
944
+ )
945
+ );
946
+
947
+ @mixin order() {
948
+ @each $breakpoint in map-keys($grid-breakpoints) {
949
+ @include media-breakpoint-up($breakpoint) {
950
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
951
+
952
+ .order#{$infix}-first {
953
+ order: -1 !important;
954
+ }
955
+
956
+ .order#{$infix}-0 {
957
+ order: 0 !important;
958
+ }
959
+
960
+ .order#{$infix}-1 {
961
+ order: 1 !important;
962
+ }
963
+
964
+ .order#{$infix}-2 {
965
+ order: 2 !important;
966
+ }
967
+
968
+ .order#{$infix}-3 {
969
+ order: 3 !important;
970
+ }
971
+
972
+ .order#{$infix}-4 {
973
+ order: 4 !important;
974
+ }
975
+
976
+ .order#{$infix}-5 {
977
+ order: 5 !important;
978
+ }
979
+
980
+ .order#{$infix}-last {
981
+ order: 6 !important;
982
+ }
983
+ }
984
+ }
985
+ }
986
+ // #endregion
987
+
988
+ // #region Margins
989
+ $new_utilities: map-merge(
990
+ $new_utilities,
991
+ (
992
+ 'margins': 'Adjust the margins of an element',
993
+ )
994
+ );
995
+
996
+ @mixin margins() {
997
+ @each $key, $value in $spacers {
998
+ .m-#{$key} {
999
+ margin: #{$value} !important;
1000
+ }
1001
+
1002
+ .mx-#{$key} {
1003
+ margin-left: #{$value} !important;
1004
+ margin-right: #{$value} !important;
1005
+ }
1006
+
1007
+ .my-#{$key} {
1008
+ margin-top: #{$value} !important;
1009
+ margin-bottom: #{$value} !important;
1010
+ }
1011
+
1012
+ .mt-#{$key} {
1013
+ margin-top: #{$value} !important;
1014
+ }
1015
+
1016
+ .me-#{$key} {
1017
+ margin-right: #{$value} !important;
1018
+ }
1019
+
1020
+ .mb-#{$key} {
1021
+ margin-bottom: #{$value} !important;
1022
+ }
1023
+
1024
+ .ms-#{$key} {
1025
+ margin-left: #{$value} !important;
1026
+ }
1027
+ }
1028
+
1029
+ .m-auto {
1030
+ margin: auto !important;
1031
+ }
1032
+
1033
+ .mx-auto {
1034
+ margin-right: auto !important;
1035
+ margin-left: auto !important;
1036
+ }
1037
+
1038
+ .my-auto {
1039
+ margin-top: auto !important;
1040
+ margin-bottom: auto !important;
1041
+ }
1042
+
1043
+ .mt-auto {
1044
+ margin-top: auto !important;
1045
+ }
1046
+
1047
+ .me-auto {
1048
+ margin-right: auto !important;
1049
+ }
1050
+
1051
+ .mb-auto {
1052
+ margin-bottom: auto !important;
1053
+ }
1054
+
1055
+ .ms-auto {
1056
+ margin-left: auto !important;
1057
+ }
1058
+ }
1059
+ // #endregion
1060
+
1061
+ // #region Paddings
1062
+ $new_utilities: map-merge(
1063
+ $new_utilities,
1064
+ (
1065
+ 'paddings': 'Adjust the paddings of an element',
1066
+ )
1067
+ );
1068
+
1069
+ @mixin paddings() {
1070
+ @each $key, $value in $spacers {
1071
+ .p-#{$key} {
1072
+ padding: #{$value} !important;
1073
+ }
1074
+
1075
+ .px-#{$key} {
1076
+ padding-left: #{$value} !important;
1077
+ padding-right: #{$value} !important;
1078
+ }
1079
+
1080
+ .py-#{$key} {
1081
+ padding-top: #{$value} !important;
1082
+ padding-bottom: #{$value} !important;
1083
+ }
1084
+
1085
+ .pt-#{$key} {
1086
+ padding-top: #{$value} !important;
1087
+ }
1088
+
1089
+ .pe-#{$key} {
1090
+ padding-right: #{$value} !important;
1091
+ }
1092
+
1093
+ .pb-#{$key} {
1094
+ padding-bottom: #{$value} !important;
1095
+ }
1096
+
1097
+ .ps-#{$key} {
1098
+ padding-left: #{$value} !important;
1099
+ }
1100
+ }
1101
+ }
1102
+ // #endregion
1103
+
1104
+ // #region Gap
1105
+ $new_utilities: map-merge(
1106
+ $new_utilities,
1107
+ (
1108
+ 'gap': 'Update the gap sizing of an element with the display flex',
1109
+ )
1110
+ );
1111
+
1112
+ @mixin gap() {
1113
+ @each $key, $value in $spacers {
1114
+ .gap-#{$key} {
1115
+ gap: #{$value} !important;
1116
+ }
1117
+ }
1118
+ }
1119
+ // #endregion
1120
+
1121
+ // #region Text
1122
+ $new_utilities: map-merge(
1123
+ $new_utilities,
1124
+ (
1125
+ 'text': 'Apply the text settings',
1126
+ )
1127
+ );
1128
+
1129
+ @mixin text() {
1130
+ .font-monospace {
1131
+ font-family: var(--font-monospace) !important;
1132
+ }
1133
+
1134
+ .font-body {
1135
+ font-family: var(--font-body) !important;
1136
+ }
1137
+
1138
+ .fs-1 {
1139
+ font-size: rfs-fluid-value(2.5rem) !important;
1140
+ }
1141
+
1142
+ .fs-2 {
1143
+ font-size: rfs-fluid-value(2rem) !important;
1144
+ }
1145
+
1146
+ .fs-3 {
1147
+ font-size: rfs-fluid-value(1.75rem) !important;
1148
+ }
1149
+
1150
+ .fs-4 {
1151
+ font-size: rfs-fluid-value(1.5rem) !important;
1152
+ }
1153
+
1154
+ .fs-5 {
1155
+ font-size: rfs-fluid-value(1.25rem) !important;
1156
+ }
1157
+
1158
+ .fs-6 {
1159
+ font-size: rfs-fluid-value(1rem) !important;
1160
+ }
1161
+
1162
+ .fst-italic {
1163
+ font-style: italic !important;
1164
+ }
1165
+
1166
+ .fst-normal {
1167
+ font-style: normal !important;
1168
+ }
1169
+
1170
+ .fw-light {
1171
+ font-weight: 300 !important;
1172
+ }
1173
+
1174
+ .fw-lighter {
1175
+ font-weight: lighter !important;
1176
+ }
1177
+
1178
+ .fw-normal {
1179
+ font-weight: 400 !important;
1180
+ }
1181
+
1182
+ .fw-bold {
1183
+ font-weight: 700 !important;
1184
+ }
1185
+
1186
+ .fw-semibold {
1187
+ font-weight: 600 !important;
1188
+ }
1189
+
1190
+ .fw-bolder {
1191
+ font-weight: bolder !important;
1192
+ }
1193
+
1194
+ .lh-0 {
1195
+ line-height: 0 !important;
1196
+ }
1197
+
1198
+ .lh-1 {
1199
+ line-height: 1 !important;
1200
+ }
1201
+
1202
+ .text-start {
1203
+ text-align: left !important;
1204
+ }
1205
+
1206
+ .text-end {
1207
+ text-align: right !important;
1208
+ }
1209
+
1210
+ .text-center {
1211
+ text-align: center !important;
1212
+ }
1213
+
1214
+ .text-decoration-none {
1215
+ text-decoration: none !important;
1216
+ }
1217
+
1218
+ .text-decoration-underline {
1219
+ text-decoration: underline !important;
1220
+ }
1221
+
1222
+ .text-decoration-line-through {
1223
+ text-decoration: line-through !important;
1224
+ }
1225
+
1226
+ .text-lowercase {
1227
+ text-transform: lowercase !important;
1228
+ }
1229
+
1230
+ .text-uppercase {
1231
+ text-transform: uppercase !important;
1232
+ }
1233
+
1234
+ .text-capitalize {
1235
+ text-transform: capitalize !important;
1236
+ }
1237
+
1238
+ .text-wrap {
1239
+ white-space: normal !important;
1240
+ }
1241
+
1242
+ .text-nowrap {
1243
+ white-space: nowrap !important;
1244
+ }
1245
+
1246
+ .text-break {
1247
+ word-wrap: break-word !important;
1248
+ word-break: break-word !important;
1249
+ }
1250
+ }
1251
+ // #endregion
1252
+
1253
+ // #region Colours
1254
+ $new_utilities: map-merge(
1255
+ $new_utilities,
1256
+ (
1257
+ 'colours': 'Applu our design system colours by either text colour or background',
1258
+ )
1259
+ );
1260
+
1261
+ @mixin colours() {
1262
+ @each $color, $value in $theme-colors {
1263
+ .text-#{$color} {
1264
+ --text-opacity: 1;
1265
+ color: var(--colour-#{$color}) !important;
1266
+ }
1267
+
1268
+ .bg-#{$color} {
1269
+ --bg-opacity: 1;
1270
+ background-color: var(--colour-#{$color}) !important;
1271
+ }
1272
+
1273
+ .colour-#{$color} {
1274
+ --colour: var(--colour-#{$color}) !important;
1275
+ }
1276
+ }
1277
+ }
1278
+ // #endregion
1279
+
1280
+ // #region gradients
1281
+ $new_utilities: map-merge(
1282
+ $new_utilities,
1283
+ (
1284
+ 'gradients': 'Add gradients to backgrounds',
1285
+ )
1286
+ );
1287
+
1288
+ @mixin gradients() {
1289
+ .bg-gradient {
1290
+ background-image: var(--gradient) !important;
1291
+ }
1292
+
1293
+ .gradient-success {
1294
+ --gradient-direction: 180deg;
1295
+ background-image: linear-gradient(
1296
+ var(--gradient-direction),
1297
+ var(--colour-success-theme) 0,
1298
+ transparent 100%
1299
+ ) !important;
1300
+ }
1301
+
1302
+ .gradient-primary {
1303
+ --gradient-direction: 180deg;
1304
+ background-image: linear-gradient(
1305
+ var(--gradient-direction),
1306
+ var(--colour-primary-theme) 0,
1307
+ transparent 100%
1308
+ ) !important;
1309
+ }
1310
+
1311
+ .gradient-info {
1312
+ --gradient-direction: 180deg;
1313
+ background-image: linear-gradient(
1314
+ var(--gradient-direction),
1315
+ var(--colour-info-theme) 0,
1316
+ transparent 100%
1317
+ ) !important;
1318
+ }
1319
+
1320
+ .gradient-direction-left {
1321
+ --gradient-direction: 90deg;
1322
+ }
1323
+
1324
+ .gradient-direction-angle {
1325
+ --gradient-direction: 135deg;
1326
+ }
1327
+ }
1328
+ // #endregion
1329
+
1330
+ // #region Pointer-events
1331
+ $new_utilities: map-merge(
1332
+ $new_utilities,
1333
+ (
1334
+ 'pointer-events': 'Disable or enable point events',
1335
+ )
1336
+ );
1337
+
1338
+ @mixin pointer-events() {
1339
+ .pe-none {
1340
+ pointer-events: none !important;
1341
+ }
1342
+
1343
+ .pe-auto {
1344
+ pointer-events: auto !important;
1345
+ }
1346
+ }
1347
+ // #endregion
1348
+
1349
+ // #region Rounded
1350
+ $new_utilities: map-merge(
1351
+ $new_utilities,
1352
+ (
1353
+ 'rounded': 'Add rounded corners',
1354
+ )
1355
+ );
1356
+
1357
+ @mixin rounded() {
1358
+ .rounded {
1359
+ border-radius: var(--border-radius) !important;
1360
+ }
1361
+
1362
+ .rounded-0 {
1363
+ border-radius: 0 !important;
1364
+ }
1365
+
1366
+ .rounded-1 {
1367
+ border-radius: var(--border-radius-sm) !important;
1368
+ }
1369
+
1370
+ .rounded-2 {
1371
+ border-radius: var(--border-radius) !important;
1372
+ }
1373
+
1374
+ .rounded-3 {
1375
+ border-radius: var(--border-radius-lg) !important;
1376
+ }
1377
+
1378
+ .rounded-4 {
1379
+ border-radius: var(--border-radius-xl) !important;
1380
+ }
1381
+
1382
+ .rounded-5 {
1383
+ border-radius: var(--border-radius-2xl) !important;
1384
+ }
1385
+
1386
+ .rounded-circle {
1387
+ border-radius: 50% !important;
1388
+ }
1389
+
1390
+ .rounded-pill {
1391
+ border-radius: var(--border-radius-pill) !important;
1392
+ }
1393
+
1394
+ .rounded-top {
1395
+ border-top-left-radius: var(--border-radius) !important;
1396
+ border-top-right-radius: var(--border-radius) !important;
1397
+ }
1398
+
1399
+ .rounded-end {
1400
+ border-top-right-radius: var(--border-radius) !important;
1401
+ border-bottom-right-radius: var(--border-radius) !important;
1402
+ }
1403
+
1404
+ .rounded-bottom {
1405
+ border-bottom-right-radius: var(--border-radius) !important;
1406
+ border-bottom-left-radius: var(--border-radius) !important;
1407
+ }
1408
+
1409
+ .rounded-start {
1410
+ border-bottom-left-radius: var(--border-radius) !important;
1411
+ border-top-left-radius: var(--border-radius) !important;
1412
+ }
1413
+ }
1414
+ // #endregion
1415
+
1416
+ // #region Visible
1417
+ $new_utilities: map-merge(
1418
+ $new_utilities,
1419
+ (
1420
+ 'visible': 'Change the visibility of elements',
1421
+ )
1422
+ );
1423
+
1424
+ @mixin visible() {
1425
+ .visible {
1426
+ visibility: visible !important;
1427
+ }
1428
+
1429
+ .invisible {
1430
+ visibility: hidden !important;
1431
+ }
1432
+ }
1433
+ // #endregion