@iamproperty/components 5.1.0-beta6 → 5.1.0-beta8

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 (94) hide show
  1. package/assets/css/components/accordion.global.css.map +1 -1
  2. package/assets/css/components/card.css +1 -1
  3. package/assets/css/components/card.css.map +1 -1
  4. package/assets/css/components/carousel.css +1 -1
  5. package/assets/css/components/carousel.css.map +1 -1
  6. package/assets/css/components/component.native.css +1 -1
  7. package/assets/css/components/component.native.css.map +1 -1
  8. package/assets/css/components/component.reset.css +1 -1
  9. package/assets/css/components/component.reset.css.map +1 -1
  10. package/assets/css/components/fileupload.css +1 -1
  11. package/assets/css/components/fileupload.css.map +1 -1
  12. package/assets/css/components/header.css +1 -1
  13. package/assets/css/components/header.css.map +1 -1
  14. package/assets/css/components/marketing.css +1 -0
  15. package/assets/css/components/marketing.css.map +1 -0
  16. package/assets/css/components/nav.css +1 -1
  17. package/assets/css/components/nav.css.map +1 -1
  18. package/assets/css/components/nav.global.css +1 -1
  19. package/assets/css/components/nav.global.css.map +1 -1
  20. package/assets/css/components/pagination.css +1 -1
  21. package/assets/css/components/pagination.css.map +1 -1
  22. package/assets/css/components/slider.css.map +1 -1
  23. package/assets/css/core.min.css +1 -1
  24. package/assets/css/core.min.css.map +1 -1
  25. package/assets/css/style.min.css +1 -1
  26. package/assets/css/style.min.css.map +1 -1
  27. package/assets/img/signin-bg.png +0 -0
  28. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  29. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  30. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  31. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  32. package/assets/js/components/card/card.component.js +2 -1
  33. package/assets/js/components/card/card.component.min.js +4 -3
  34. package/assets/js/components/card/card.component.min.js.map +1 -1
  35. package/assets/js/components/carousel/carousel.component.js +61 -0
  36. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  37. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  38. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  39. package/assets/js/components/header/header.component.js +6 -12
  40. package/assets/js/components/header/header.component.min.js +8 -14
  41. package/assets/js/components/header/header.component.min.js.map +1 -1
  42. package/assets/js/components/marketing/marketing.component.js +37 -0
  43. package/assets/js/components/nav/nav.component.min.js +3 -3
  44. package/assets/js/components/notification/notification.component.min.js +1 -1
  45. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  46. package/assets/js/components/search/search.component.min.js +1 -1
  47. package/assets/js/components/table/table.component.min.js +1 -1
  48. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  49. package/assets/js/dynamic.js +1 -1
  50. package/assets/js/dynamic.min.js +3 -3
  51. package/assets/js/dynamic.min.js.map +1 -1
  52. package/assets/js/modules/carousel.js +15 -23
  53. package/assets/js/scripts.bundle.js +11 -16
  54. package/assets/js/scripts.bundle.js.map +1 -1
  55. package/assets/js/scripts.bundle.min.js +2 -2
  56. package/assets/js/scripts.bundle.min.js.map +1 -1
  57. package/assets/sass/_corefiles.scss +1 -0
  58. package/assets/sass/_elements.scss +1 -1
  59. package/assets/sass/_functions/mixins.scss +16 -0
  60. package/assets/sass/_functions/utilities.scss +0 -17
  61. package/assets/sass/_functions/variables.scss +1 -0
  62. package/assets/sass/components/card.scss +23 -3
  63. package/assets/sass/components/carousel.scss +86 -159
  64. package/assets/sass/components/component.native.scss +86 -3
  65. package/assets/sass/components/fileupload.scss +1 -1
  66. package/assets/sass/components/header.scss +53 -55
  67. package/assets/sass/components/marketing.scss +64 -0
  68. package/assets/sass/components/nav.global.scss +1 -0
  69. package/assets/sass/components/nav.scss +7 -1
  70. package/assets/sass/components/pagination.scss +4 -0
  71. package/assets/sass/elements/admin-panel.scss +9 -7
  72. package/assets/sass/elements/badge.scss +29 -0
  73. package/assets/sass/elements/forms.scss +3 -3
  74. package/assets/sass/elements/links.scss +2 -1
  75. package/assets/sass/foundations/reboot.scss +12 -13
  76. package/assets/sass/foundations/root.scss +11 -3
  77. package/assets/sass/helpers/max-height.scss +78 -4
  78. package/assets/sass/templates/auth.scss +112 -0
  79. package/assets/ts/components/card/card.component.ts +2 -1
  80. package/assets/ts/components/carousel/README.md +39 -0
  81. package/assets/ts/components/carousel/carousel.component.ts +75 -0
  82. package/assets/ts/components/header/header.component.ts +6 -12
  83. package/assets/ts/components/marketing/marketing.component.ts +49 -0
  84. package/assets/ts/dynamic.ts +1 -1
  85. package/assets/ts/modules/carousel.ts +21 -33
  86. package/dist/components.es.js +460 -664
  87. package/dist/components.umd.js +96 -84
  88. package/dist/style.css +1 -1
  89. package/package.json +1 -1
  90. package/src/components/Carousel/Carousel.vue +18 -103
  91. package/src/components/Header/Header.vue +1 -3
  92. package/src/components/Marketing/Marketing.vue +39 -0
  93. package/src/components/Marketing/README.md +20 -0
  94. package/src/components/Carousel/Carousel.spec.js +0 -45
@@ -31,6 +31,7 @@
31
31
 
32
32
  @include layer('templates') {
33
33
  @import "templates/form.scss";
34
+ @import "templates/auth.scss";
34
35
  }
35
36
 
36
37
  @include layer('utilities') {
@@ -15,4 +15,4 @@
15
15
 
16
16
  @import "elements/forms.scss";
17
17
 
18
- @import "../bootstrap/scss/_badge.scss";
18
+ @import "elements/badge.scss";
@@ -211,3 +211,19 @@
211
211
  --colour-#{$color}: #{$value};
212
212
  }
213
213
  }
214
+
215
+ @mixin slotted($el, $isComponent:"true"){
216
+
217
+ @if $isComponent == "true" {
218
+ ::slotted(#{$el}) {
219
+
220
+ @content;
221
+ }
222
+ }
223
+ @else {
224
+ #{$el} {
225
+
226
+ @content;
227
+ }
228
+ }
229
+ }
@@ -201,23 +201,6 @@ $utilities: map-merge(
201
201
  );
202
202
  // #endregion
203
203
 
204
- // #region Max height classes
205
- $utilities: map-merge(
206
- $utilities,
207
- (
208
- "max-heights": (
209
- property: max-height,
210
- class: mh,
211
- values: (
212
- "sm": #{rem(200)},
213
- "md": #{rem(400)},
214
- "lg": #{rem(600)}
215
- )
216
- )
217
- )
218
- );
219
- // #endregion
220
-
221
204
  // #region Max height classes
222
205
  $utilities: map-merge(
223
206
  $utilities,
@@ -39,6 +39,7 @@ $vars: map-merge((
39
39
  "--container-padding-top": 0,
40
40
  "--container-padding-bottom": #{rem(16)},
41
41
  "--container-padding-x": #{rem($container-padding-x)},
42
+ "--container-padding-x-sm": #{rem($container-padding-x-sm)},
42
43
  "--container-padding-x-md": #{rem($container-padding-x-md)},
43
44
  "--container-padding": $container-padding,
44
45
  "--container-padding-sm": $container-padding-sm,
@@ -17,8 +17,8 @@
17
17
  overflow: hidden;
18
18
  z-index: 0;
19
19
  background: var(--colour-canvas-2);
20
- outline: var(--contrast-outline-width, 0px) solid var(--colour-primary);
21
- outline-offset: -1px;
20
+ outline: 2px solid var(--colour-canvas-2);
21
+ outline-offset: -2px;
22
22
 
23
23
  &.border-0 {
24
24
  box-shadow: none;
@@ -131,7 +131,7 @@
131
131
  vertical-align: middle!important;
132
132
  }
133
133
 
134
- ::slotted(span){
134
+ ::slotted(span:not(.badge)){
135
135
  display: block!important;
136
136
  font-weight: normal!important;
137
137
  padding-top: rem(24)!important;
@@ -139,6 +139,26 @@
139
139
  }
140
140
  // #endregion
141
141
 
142
+ // #region card bages
143
+ .card__badges {
144
+ position: absolute;
145
+ top: 0;
146
+ right: 0.25rem;
147
+ padding: 0.25rem;
148
+ z-index: 9;
149
+ text-align: right;
150
+ width: 1;
151
+ }
152
+ .card__head .card__badges {
153
+
154
+ top: auto;
155
+ bottom: 0;
156
+ text-align: left;
157
+ left: 0.25rem;
158
+ right: auto;
159
+ }
160
+ // #endregion
161
+
142
162
  // #region border left
143
163
  .card[class*="colour-"],
144
164
  .card--filter {
@@ -2,7 +2,6 @@
2
2
 
3
3
  // #region default carousel
4
4
  .carousel {
5
- padding-bottom: 3rem;
6
5
 
7
6
  .carousel__wrapper {
8
7
 
@@ -14,45 +13,31 @@
14
13
  --gutter-x: #{$grid-gutter-width};
15
14
  overflow: auto;
16
15
  scroll-snap-type: x mandatory;
17
- margin-right: calc(var(--gutter-x) * -.5);
18
- margin-left: calc(var(--gutter-x) * -.5);
19
-
20
- > .row {
21
- flex-wrap: nowrap;
22
- margin: 0;
23
-
24
- > .col {
25
- padding-top: rem(36);
26
- padding-bottom: rem(24);
27
- scroll-snap-align: start;
28
- scroll-padding: calc(var(--gutter-x) * -1);
29
- }
30
- }
31
16
  }
32
17
 
33
- .carousel__item > *:last-child {
18
+ .col > *:last-child {
34
19
  margin-bottom: 0;
35
20
  padding-bottom: 0;
36
21
  }
37
22
  }
23
+
24
+
38
25
  // #endregion
39
26
 
40
27
  // #region Remove the scrollbar
41
- body.js-enabled .carousel__inner {
28
+ .carousel__inner {
42
29
  // FireFox
43
30
  scrollbar-width: none;
44
31
  // IE10+
45
32
  -ms-overflow-style: none;
46
33
  }
47
34
 
48
- body.js-enabled .carousel__inner::-webkit-scrollbar {
35
+ .carousel__inner::-webkit-scrollbar {
49
36
  // Chrome, Safari, Edge
50
37
  display: none;
51
38
  }
52
39
  // #endregion
53
40
 
54
-
55
-
56
41
  // #region Direction button
57
42
  .btn-next,
58
43
  .btn-prev {
@@ -63,13 +48,8 @@ body.js-enabled .carousel__inner::-webkit-scrollbar {
63
48
  background: var(--marker-bg);
64
49
  border-radius: 100%;
65
50
  width: rem(36);
51
+ max-width: rem(36);
66
52
  height: rem(36);
67
-
68
- @include media-breakpoint-up(md) {
69
-
70
- width: rem(48);
71
- height: rem(48);
72
- }
73
53
  text-indent: -300rem;
74
54
  overflow: hidden;
75
55
  border: none;
@@ -77,6 +57,11 @@ body.js-enabled .carousel__inner::-webkit-scrollbar {
77
57
  margin: 0 rem(8);
78
58
  padding: 0;
79
59
 
60
+ position: absolute;
61
+ top: 50%;
62
+ left: 0rem;
63
+ transform: translate(0,-50%);
64
+
80
65
  &:disabled {
81
66
  opacity: 0.8;
82
67
  pointer-events: none;
@@ -114,194 +99,136 @@ body.js-enabled .carousel__inner::-webkit-scrollbar {
114
99
  }
115
100
  }
116
101
 
102
+ .btn-next {
103
+ left: auto;
104
+ right: 0;
105
+
106
+ @include media-breakpoint-up(md) {
107
+
108
+ margin-right: rem(-48);
109
+ }
110
+ }
111
+
117
112
  .btn-prev {
113
+
114
+ @include media-breakpoint-up(md) {
115
+
116
+ margin-left: rem(-48);
117
+ }
118
+
118
119
  &:after {
119
120
 
120
121
  transform: rotate(180deg);
121
122
  }
122
123
  }
123
- // #endregion
124
124
 
125
125
 
126
- // #region carousel controls/pips
127
- .carousel:not(.hide-controls) {
128
- padding-bottom: 4.5rem!important;
129
- }
130
126
 
131
- .carousel.hide-controls .carousel__controls {
132
- display: none;
133
- }
134
127
 
128
+
129
+ // #endregion
130
+
131
+ // #region carousel controls/pips
135
132
  .carousel .carousel__controls {
136
- position: absolute;
133
+
137
134
  text-align: center;
138
- width: auto;
139
- left: 0;
140
- width: calc(100% + 2rem);
141
- margin-left: -1rem;
142
- margin-right: -1rem;
143
- bottom: -3rem;
144
-
145
- a {
135
+ width: 10rem;
136
+ max-height: 1rem;
137
+ overflow: hidden;
138
+ margin-inline: auto;
139
+
140
+ @include media-breakpoint-up(sm) {
141
+ width: 100%;
142
+ }
143
+
144
+ button {
146
145
  width: 1rem;
147
146
  height: 1rem;
148
147
  min-height: 1rem;
149
148
  border-radius: 50%;
150
149
  text-indent: -50rem;
151
150
  overflow: hidden;
152
- background: currentColor;
151
+ background: var(--colour-primary-theme);
153
152
  padding: 0;
154
153
  margin: 0 0.5rem 0.5rem 0.5rem;
154
+ border: none;
155
155
 
156
156
  &:before {
157
157
  display: none;
158
158
  }
159
159
  }
160
160
 
161
- a:first-child:last-child {
161
+ button:first-child:last-child {
162
162
  display: none;
163
163
  }
164
164
  }
165
165
 
166
- .carousel .carousel__controls > a:nth-child(10) ~ a {
166
+ .carousel__controls > button[aria-current] {
167
167
 
168
- display: none;
168
+ background: var(--colour-success);
169
169
  }
170
+
170
171
  // #endregion
171
172
 
172
- // #region Carousel buttons
173
+ // #region Hide buttons and pips
173
174
  .carousel.hide-btns .carousel__wrapper > .btn {
174
175
  display: none;
175
176
  }
176
177
 
177
- .carousel:not(.hide-btns) .carousel__inner {
178
-
179
- margin-left: rem(28);
180
- margin-right: rem(28);
181
- }
182
-
183
- .carousel .carousel__wrapper > .btn {
184
- position: absolute;
185
- top: 50%;
186
- left: -1.25rem;
187
- transform: translate(0,-50%);
188
-
189
- &.btn-next {
190
- left: auto;
191
- right: -1.25rem;
192
- }
193
-
194
- @include media-breakpoint-up(md) {
195
-
196
- margin-left: -1rem;
197
- margin-right: -1rem;
198
- }
199
- }
200
-
201
-
202
- // #endregion
203
-
204
- .carousel .carousel__inner > .row > .col:first-child {
205
- margin-left: 0!important;
178
+ .carousel.hide-controls .carousel__controls {
179
+ display: none;
206
180
  }
207
181
 
208
182
  @include media-breakpoint-up(sm) {
209
183
 
210
- .carousel .carousel__controls > a:nth-child(10) ~ a {
211
-
212
- display: inline-block;
213
- }
214
-
215
- .carousel .carousel__inner > .row[class*="row-cols-sm-"] > .col{
216
- scroll-snap-align: unset;
217
- }
218
-
219
- .carousel .carousel__inner > .row-cols-sm-2 > .col:nth-child(odd),
220
- .carousel .carousel__inner > .row-cols-sm-3 > .col:nth-child(3n+1),
221
- .carousel .carousel__inner > .row-cols-sm-4 > .col:nth-child(4n+1),
222
- .carousel .carousel__inner > .row-cols-sm-5 > .col:nth-child(5n+1),
223
- .carousel .carousel__inner > .row-cols-sm-6 > .col:nth-child(6n+1) {
224
- scroll-snap-align: start;
225
-
226
- body:not(.js-enabled) & {
227
- margin-left: 4rem;
228
- }
229
- }
230
-
231
- .carousel .carousel__controls.cols-sm-2 > a:not(:nth-child(odd)),
232
- .carousel .carousel__controls.cols-sm-3 > a:not(:nth-child(3n+1)),
233
- .carousel .carousel__controls.cols-sm-4 > a:not(:nth-child(4n+1)),
234
- .carousel .carousel__controls.cols-sm-5 > a:not(:nth-child(5n+1)),
235
- .carousel .carousel__controls.cols-sm-6 > a:not(:nth-child(6n+1)) {
184
+ [data-row-class*="cols-sm-2"] .carousel__controls > button:not(:nth-child(odd)),
185
+ [data-row-class*="cols-sm-3"] .carousel__controls > button:not(:nth-child(3n+1)),
186
+ [data-row-class*="cols-sm-4"] .carousel__controls > button:not(:nth-child(4n+1)),
187
+ [data-row-class*="cols-sm-5"] .carousel__controls > button:not(:nth-child(5n+1)),
188
+ [data-row-class*="cols-sm-6"] .carousel__controls > button:not(:nth-child(6n+1)) {
236
189
  display: none;
237
190
  }
238
191
 
239
192
  // Make sure that we dont just have one pip showing
240
- .carousel .carousel__controls.cols-sm-2 > a:first-child:nth-last-child(2),
241
- .carousel .carousel__controls.cols-sm-3 > :is(a:first-child:nth-last-child(2), a:first-child:nth-last-child(3)),
242
- .carousel .carousel__controls.cols-sm-4 > :is(a:first-child:nth-last-child(2), a:first-child:nth-last-child(3), a:first-child:nth-last-child(4)),
243
- .carousel .carousel__controls.cols-sm-5 > :is(a:first-child:nth-last-child(2),a:first-child:nth-last-child(3),a:first-child:nth-last-child(4),a:first-child:nth-last-child(5)),
244
- .carousel .carousel__controls.cols-sm-6 > :is(a:first-child:nth-last-child(2),a:first-child:nth-last-child(3),a:first-child:nth-last-child(4),a:first-child:nth-last-child(5),a:first-child:nth-last-child(6)) {
245
- display: none;
246
- }
247
-
248
- // Hide buttons if not needed
249
- .carousel.hide-sm-btns .carousel__wrapper > .btn {
193
+ [data-row-class*="cols-sm-2"] .carousel__controls:has(button:first-child:nth-last-child(2)),
194
+ [data-row-class*="cols-sm-3"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3))),
195
+ [data-row-class*="cols-sm-4"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3), button:first-child:nth-last-child(4))),
196
+ [data-row-class*="cols-sm-5"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5))),
197
+ [data-row-class*="cols-sm-6"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5),button:first-child:nth-last-child(6))),
198
+ [data-row-class*="cols-sm-2"] .carousel__controls:has(button:first-child:nth-last-child(2)) ~ .btn,
199
+ [data-row-class*="cols-sm-3"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3))) ~ .btn,
200
+ [data-row-class*="cols-sm-4"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3), button:first-child:nth-last-child(4))) ~ .btn,
201
+ [data-row-class*="cols-sm-5"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5))) ~ .btn,
202
+ [data-row-class*="cols-sm-6"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5),button:first-child:nth-last-child(6))) ~ .btn {
250
203
  display: none;
251
204
  }
252
-
253
- .carousel.hide-sm-btns .carousel__inner {
254
-
255
- margin-left: 0;
256
- margin-right: 0;
257
- }
258
205
  }
259
206
 
260
207
  @include media-breakpoint-up(md) {
261
-
262
- .carousel .carousel__inner > .row[class*="row-cols-md-"] > .col{
263
- scroll-snap-align: unset;
264
- margin-left: 0;
208
+ .carousel__controls > button {
209
+ display: inline-block!important;
265
210
  }
266
-
267
- .carousel .carousel__inner > .row-cols-md-2 > .col:nth-child(odd),
268
- .carousel .carousel__inner > .row-cols-md-3 > .col:nth-child(3n+1),
269
- .carousel .carousel__inner > .row-cols-md-4 > .col:nth-child(4n+1),
270
- .carousel .carousel__inner > .row-cols-md-5 > .col:nth-child(5n+1),
271
- .carousel .carousel__inner > .row-cols-md-6 > .col:nth-child(6n+1) {
272
- scroll-snap-align: start;
273
-
274
- body:not(.js-enabled) & {
275
211
 
276
- margin-left: calc(50vw);
277
- }
278
- }
279
-
280
- .carousel .carousel__controls.cols-md-2 > a:not(:nth-child(odd)),
281
- .carousel .carousel__controls.cols-md-3 > a:not(:nth-child(3n+1)),
282
- .carousel .carousel__controls.cols-md-4 > a:not(:nth-child(4n+1)),
283
- .carousel .carousel__controls.cols-md-5 > a:not(:nth-child(5n+1)),
284
- .carousel .carousel__controls.cols-md-6 > a:not(:nth-child(6n+1)) {
285
- display: none;
212
+ [data-row-class*="cols-md-2"] .carousel__controls > button:not(:nth-child(odd)),
213
+ [data-row-class*="cols-md-3"] .carousel__controls > button:not(:nth-child(3n+1)),
214
+ [data-row-class*="cols-md-4"] .carousel__controls > button:not(:nth-child(4n+1)),
215
+ [data-row-class*="cols-md-5"] .carousel__controls > button:not(:nth-child(5n+1)),
216
+ [data-row-class*="cols-md-6"] .carousel__controls > button:not(:nth-child(6n+1)) {
217
+ display: none!important;
286
218
  }
287
219
 
288
220
  // Make sure that we dont just have one pip showing
289
- .carousel .carousel__controls.cols-md-2 > a:first-child:nth-last-child(2),
290
- .carousel .carousel__controls.cols-md-3 > :is(a:first-child:nth-last-child(2), a:first-child:nth-last-child(3)),
291
- .carousel .carousel__controls.cols-md-4 > :is(a:first-child:nth-last-child(2), a:first-child:nth-last-child(3), a:first-child:nth-last-child(4)),
292
- .carousel .carousel__controls.cols-md-5 > :is(a:first-child:nth-last-child(2),a:first-child:nth-last-child(3),a:first-child:nth-last-child(4),a:first-child:nth-last-child(5)),
293
- .carousel .carousel__controls.cols-md-6 > :is(a:first-child:nth-last-child(2),a:first-child:nth-last-child(3),a:first-child:nth-last-child(4),a:first-child:nth-last-child(5),a:first-child:nth-last-child(6)) {
294
- display: none;
295
- }
296
-
297
- // Hide buttons when not needed
298
- .carousel.hide-md-btns .carousel__wrapper > .btn {
221
+ [data-row-class*="cols-md-2"] .carousel__controls:has(button:first-child:nth-last-child(2)),
222
+ [data-row-class*="cols-md-3"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3))),
223
+ [data-row-class*="cols-md-4"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3), button:first-child:nth-last-child(4))),
224
+ [data-row-class*="cols-md-5"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5))),
225
+ [data-row-class*="cols-md-6"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5),button:first-child:nth-last-child(6))),
226
+ [data-row-class*="cols-md-2"] .carousel__controls:has(button:first-child:nth-last-child(2)) ~ .btn,
227
+ [data-row-class*="cols-md-3"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3))) ~ .btn,
228
+ [data-row-class*="cols-md-4"] .carousel__controls:has(:is(button:first-child:nth-last-child(2), button:first-child:nth-last-child(3), button:first-child:nth-last-child(4))) ~ .btn,
229
+ [data-row-class*="cols-md-5"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5))) ~ .btn,
230
+ [data-row-class*="cols-md-6"] .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5),button:first-child:nth-last-child(6))) ~ .btn {
299
231
  display: none;
300
232
  }
301
-
302
- .carousel.hide-md-btns .carousel__inner {
303
-
304
- margin-left: 0;
305
- margin-right: 0;
306
- }
307
- }
233
+ }
234
+ // #endregion
@@ -2,7 +2,7 @@
2
2
  @use "../_func" as *;
3
3
 
4
4
  // #region Undefined web components
5
- :is(*):not(:defined):not(iam-nav):not(iam-pagination) {
5
+ :is(*):not(:defined):not(iam-nav):not(iam-pagination):not(iam-carousel) {
6
6
  display: block;
7
7
  padding: rem(24);
8
8
  margin-bottom: rem(24);
@@ -12,7 +12,7 @@
12
12
  max-width: 80rem;
13
13
  }
14
14
 
15
- main > :is(*):not(:defined) {
15
+ main > :is(*):not(:defined):not(iam-carousel) {
16
16
 
17
17
  padding: var(--container-padding);
18
18
  padding-top: 1rem;
@@ -20,7 +20,7 @@ main > :is(*):not(:defined) {
20
20
 
21
21
  @include media-breakpoint-up(md) {
22
22
 
23
- main > :is(*):not(:defined) {
23
+ main > :is(*):not(:defined):not(iam-carousel) {
24
24
  max-width: 100%!important;
25
25
  padding-inline: calc(50% - #{rem(math.div(1112,2))});
26
26
  }
@@ -34,4 +34,87 @@ main > :is(*):not(:defined) {
34
34
  box-shadow: var(--card-box-shadow);
35
35
  border-radius: var(--card-border-radius);
36
36
  padding: var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);
37
+ }
38
+
39
+ // carousel
40
+ iam-carousel {
41
+
42
+ margin-inline: calc(var(--container-padding-x) * -1);
43
+ margin-bottom: 5rem;
44
+ overflow: auto;
45
+ display: block;
46
+
47
+ > .row {
48
+
49
+ flex-wrap: nowrap!important;
50
+ margin-inline-end: 0;
51
+ padding-inline-start: var(--container-padding-x);
52
+ padding-inline-end: var(--container-padding-x);
53
+
54
+ .col:last-child{
55
+ padding-inline-end: var(--container-padding-x);
56
+ }
57
+ }
58
+
59
+ @include media-breakpoint-up(md) {
60
+
61
+ margin-inline: calc(-0.5 * $grid-gutter-width);
62
+
63
+ > .row {
64
+
65
+ padding-inline: 0;
66
+ margin-inline: 0;
67
+
68
+ .col:last-child{
69
+ padding-inline-end: calc(0.5 * $grid-gutter-width);
70
+ }
71
+ }
72
+ }
73
+ }
74
+
75
+
76
+
77
+
78
+ // For extra file
79
+ iam-carousel:defined {
80
+
81
+ overflow: visible;
82
+ }
83
+ iam-carousel > .row .col {
84
+ scroll-snap-align: start;
85
+ scroll-margin-left: calc(var(--container-padding-x) - calc(0.5 * $grid-gutter-width));
86
+ }
87
+
88
+
89
+ @include media-breakpoint-up(sm) {
90
+
91
+ iam-carousel > .row[class*="row-cols-sm-"] > .col{
92
+ scroll-snap-align: unset;
93
+ }
94
+
95
+ iam-carousel > .row-cols-sm-2 > .col:nth-child(odd),
96
+ iam-carousel > .row-cols-sm-3 > .col:nth-child(3n+1),
97
+ iam-carousel > .row-cols-sm-4 > .col:nth-child(4n+1),
98
+ iam-carousel > .row-cols-sm-5 > .col:nth-child(5n+1),
99
+ iam-carousel > .row-cols-sm-6 > .col:nth-child(6n+1) {
100
+ scroll-snap-align: start;
101
+ }
102
+ }
103
+
104
+ @include media-breakpoint-up(md) {
105
+
106
+ iam-carousel > .row[class*="row-cols-md-"] > .col{
107
+ scroll-snap-align: unset;
108
+ margin-left: 0;
109
+ scroll-margin-left: 0;
110
+ }
111
+
112
+ iam-carousel > .row-cols-md-2 > .col:nth-child(odd),
113
+ iam-carousel > .row-cols-md-3 > .col:nth-child(3n+1),
114
+ iam-carousel > .row-cols-md-4 > .col:nth-child(4n+1),
115
+ iam-carousel > .row-cols-md-5 > .col:nth-child(5n+1),
116
+ iam-carousel > .row-cols-md-6 > .col:nth-child(6n+1) {
117
+ scroll-snap-align: start;
118
+
119
+ }
37
120
  }
@@ -57,7 +57,7 @@
57
57
 
58
58
  background: var(--colour-canvas-2);
59
59
  border-color: var(--colour-canvas-2);
60
- color: var(--colour-white);
60
+ color: var(--colour-body);
61
61
  }
62
62
 
63
63