@iamproperty/components 7.7.1--beta19 → 7.7.1--beta21

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 (155) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/address-lookup.component.css +1 -1
  4. package/assets/css/components/address-lookup.component.css.map +1 -1
  5. package/assets/css/components/advanced-select.component.css +1 -1
  6. package/assets/css/components/advanced-select.component.css.map +1 -1
  7. package/assets/css/components/applied-filters.css +1 -1
  8. package/assets/css/components/applied-filters.css.map +1 -1
  9. package/assets/css/components/banner.component.css +1 -0
  10. package/assets/css/components/banner.component.css.map +1 -0
  11. package/assets/css/components/calendar.component.css +1 -1
  12. package/assets/css/components/calendar.component.css.map +1 -1
  13. package/assets/css/components/card.component.css +1 -1
  14. package/assets/css/components/card.component.css.map +1 -1
  15. package/assets/css/components/carousel.config.css +1 -1
  16. package/assets/css/components/carousel.config.css.map +1 -1
  17. package/assets/css/components/multiselect.css +1 -1
  18. package/assets/css/components/multiselect.css.map +1 -1
  19. package/assets/css/components/search.component.css +1 -1
  20. package/assets/css/components/search.component.css.map +1 -1
  21. package/assets/css/components/skeleton.component.css +1 -0
  22. package/assets/css/components/skeleton.component.css.map +1 -0
  23. package/assets/css/components/skeleton.global.css +1 -0
  24. package/assets/css/components/skeleton.global.css.map +1 -0
  25. package/assets/css/components/split-button.component.css +1 -1
  26. package/assets/css/components/split-button.component.css.map +1 -1
  27. package/assets/css/components/std-nav-standalone.component.css +1 -1
  28. package/assets/css/components/std-nav-standalone.component.css.map +1 -1
  29. package/assets/css/components/tabs.component.css +1 -1
  30. package/assets/css/components/tabs.component.css.map +1 -1
  31. package/assets/css/components/tabs.config.css +1 -1
  32. package/assets/css/components/tabs.config.css.map +1 -1
  33. package/assets/css/components/tag.component.css +1 -1
  34. package/assets/css/components/tag.component.css.map +1 -1
  35. package/assets/css/core.min.css +1 -1
  36. package/assets/css/core.min.css.map +1 -1
  37. package/assets/css/elements/badge-tag.css +1 -1
  38. package/assets/css/elements/badge-tag.css.map +1 -1
  39. package/assets/css/elements/dropdown.css +1 -1
  40. package/assets/css/elements/dropdown.css.map +1 -1
  41. package/assets/css/elements/spinner.css +1 -0
  42. package/assets/css/elements/spinner.css.map +1 -0
  43. package/assets/css/style.min.css +1 -1
  44. package/assets/css/style.min.css.map +1 -1
  45. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  46. package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
  47. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  48. package/assets/js/components/advanced-select/advanced-select.component.min.js +2 -2
  49. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  50. package/assets/js/components/banner/banner.component.js +44 -0
  51. package/assets/js/components/banner/banner.component.min.js +20 -0
  52. package/assets/js/components/banner/banner.component.min.js.map +1 -0
  53. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  54. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  55. package/assets/js/components/bone/bone.component.js +20 -0
  56. package/assets/js/components/bone/bone.component.min.js +9 -0
  57. package/assets/js/components/bone/bone.component.min.js.map +1 -0
  58. package/assets/js/components/button/button.component.min.js +1 -1
  59. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  60. package/assets/js/components/card/card.component.js +2 -0
  61. package/assets/js/components/card/card.component.min.js +5 -5
  62. package/assets/js/components/card/card.component.min.js.map +1 -1
  63. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  64. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  65. package/assets/js/components/config/config.component.min.js +1 -1
  66. package/assets/js/components/content/content.component.js +9 -5
  67. package/assets/js/components/content/content.component.min.js +3 -3
  68. package/assets/js/components/content/content.component.min.js.map +1 -1
  69. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  70. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  71. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  72. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  73. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  74. package/assets/js/components/form/form.component.js +40 -1
  75. package/assets/js/components/form/form.component.min.js +3 -3
  76. package/assets/js/components/form/form.component.min.js.map +1 -1
  77. package/assets/js/components/header/header.component.min.js +1 -1
  78. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  79. package/assets/js/components/input/input.component.min.js +1 -1
  80. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  81. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  82. package/assets/js/components/menu/menu.component.min.js +1 -1
  83. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  84. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  85. package/assets/js/components/modal/modal.component.min.js +1 -1
  86. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  87. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  88. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  89. package/assets/js/components/nav/nav.component.min.js +1 -1
  90. package/assets/js/components/notification/notification.component.min.js +1 -1
  91. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  92. package/assets/js/components/password/password.component.min.js +1 -1
  93. package/assets/js/components/popover/popover.component.min.js +1 -1
  94. package/assets/js/components/rank/rank.component.min.js +1 -1
  95. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  96. package/assets/js/components/rating/rating.component.min.js +1 -1
  97. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  98. package/assets/js/components/search/search.component.js +6 -2
  99. package/assets/js/components/search/search.component.min.js +5 -5
  100. package/assets/js/components/search/search.component.min.js.map +1 -1
  101. package/assets/js/components/skeleton/skeleton.component.js +34 -0
  102. package/assets/js/components/skeleton/skeleton.component.min.js +11 -0
  103. package/assets/js/components/skeleton/skeleton.component.min.js.map +1 -0
  104. package/assets/js/components/slider/slider.component.min.js +1 -1
  105. package/assets/js/components/split-button/split-button.component.min.js +2 -2
  106. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +2 -2
  107. package/assets/js/components/std-nav/std-nav.component.min.js +1 -1
  108. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +2 -2
  109. package/assets/js/components/table/table.component.min.js +1 -1
  110. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  111. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  112. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  113. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  114. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  115. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  116. package/assets/js/components/tag/tag.component.min.js +2 -2
  117. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  118. package/assets/js/components/video/video.component.min.js +1 -1
  119. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  120. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  121. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  122. package/assets/js/modules/tabs.js +6 -2
  123. package/assets/js/scripts.bundle.js +1 -1
  124. package/assets/js/scripts.bundle.min.js +1 -1
  125. package/assets/sass/_components.scss +1 -0
  126. package/assets/sass/_elements.scss +1 -0
  127. package/assets/sass/components/banner.component.scss +100 -0
  128. package/assets/sass/components/card.component.scss +1 -1
  129. package/assets/sass/components/carousel.config.scss +27 -18
  130. package/assets/sass/components/search.component.scss +46 -1
  131. package/assets/sass/components/skeleton.component.scss +104 -0
  132. package/assets/sass/components/skeleton.global.scss +27 -0
  133. package/assets/sass/components/tabs.component.scss +1 -0
  134. package/assets/sass/components/tabs.config.scss +21 -0
  135. package/assets/sass/elements/badge-tag.css +2 -2
  136. package/assets/sass/elements/dropdown.css +0 -5
  137. package/assets/sass/elements/spinner.css +29 -0
  138. package/assets/sass/foundations/root.scss +7 -5
  139. package/assets/sass/utilities/shadow.css +4 -0
  140. package/assets/sass/utilities/text.css +6 -6
  141. package/assets/ts/components/banner/banner.component.ts +57 -0
  142. package/assets/ts/components/bone/bone.component.ts +25 -0
  143. package/assets/ts/components/card/card.component.ts +4 -0
  144. package/assets/ts/components/content/content.component.ts +14 -6
  145. package/assets/ts/components/form/form.component.ts +58 -1
  146. package/assets/ts/components/search/search.component.ts +7 -1
  147. package/assets/ts/components/skeleton/skeleton.component.ts +46 -0
  148. package/assets/ts/modules/tabs.ts +10 -2
  149. package/dist/components.es.js +443 -471
  150. package/dist/components.umd.js +149 -124
  151. package/package.json +1 -1
  152. package/src/components/Banner/Banner.vue +14 -29
  153. package/src/components/Skeleton/Bone.vue +19 -0
  154. package/src/components/Skeleton/Skeleton.vue +19 -0
  155. package/src/components/Banner/Banner.spec.js +0 -26
@@ -0,0 +1,100 @@
1
+ @use '../elements/buttons--global';
2
+ @use '../elements/buttons--tertiary';
3
+
4
+ @layer components {
5
+
6
+
7
+ :host {
8
+
9
+
10
+ padding: 1.5rem;
11
+ border-radius: 0.5rem;
12
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
13
+
14
+ margin-bottom: 2rem;
15
+ position: relative;
16
+ }
17
+
18
+ :host(:not([class*="bg-"])) {
19
+
20
+ --colour-heading: var(--colour-primary-theme);
21
+ --colour-body: var(--colour-primary-theme);
22
+ color: var(--colour-primary-theme);
23
+
24
+ color-scheme: light!important;
25
+
26
+
27
+ background-color: var(--colour-canvas-2)!important;
28
+ color: var(--colour-primary-theme)!important;
29
+ }
30
+
31
+ :host(:is(.bg-primary, .bg-danger, .bg-dark, .gradient-primary)) {
32
+
33
+ --colour-heading: var(--colour-white);
34
+ --colour-body: var(--colour-white);
35
+ color: var(--colour-white);
36
+
37
+ & > * {
38
+
39
+ color-scheme: dark;
40
+ }
41
+ }
42
+
43
+ .banner__img,
44
+ #dismiss {
45
+ display: none;
46
+ }
47
+
48
+ .banner__btns {
49
+ display: flex;
50
+ flex-wrap: wrap;
51
+ align-items: center;
52
+ gap: 1rem;
53
+
54
+ .btn {
55
+ margin: 0!important;
56
+ }
57
+ }
58
+
59
+ :host([data-dismiss]) #dismiss {
60
+ display: block;
61
+ }
62
+
63
+ ::slotted(*:not([slot="buttons"],hr)) {
64
+ margin: 0!important;
65
+ padding-bottom: 1rem!important;
66
+ }
67
+
68
+ ::slotted([slot="buttons"]){
69
+ margin: 0!important;
70
+ }
71
+
72
+ ::slotted(:is(h2,h3,h4,h5,h6)){
73
+
74
+ font-size: var(--h4-fs)!important;
75
+ line-height: var(--h4-lh)!important;
76
+ max-width: var(--content-max-width)!important;
77
+ }
78
+
79
+ :host([data-image]){
80
+
81
+ .wrapper {
82
+ padding-right: 50%;
83
+ }
84
+
85
+ .banner__img {
86
+ display: block;
87
+ position: absolute;
88
+ inset: 0;
89
+ left: 60%;
90
+
91
+ img {
92
+ position: absolute;
93
+ inset: 0;
94
+ height: 100%;
95
+ width: 100%;
96
+ object-fit: cover;
97
+ }
98
+ }
99
+ }
100
+ }
@@ -188,7 +188,7 @@ slot[name='secondary'] {
188
188
  /* #endregion */
189
189
 
190
190
  /* #region link */
191
- slot[name="link"] {
191
+ :host(.hasLink) slot[name="link"] {
192
192
 
193
193
  position: absolute;
194
194
  display: block;
@@ -62,10 +62,10 @@
62
62
  iam-carousel > * {
63
63
 
64
64
  container-type: scroll-state;
65
- grid-column: auto;
65
+ grid-column: auto!important;
66
66
  min-height: 100%;
67
67
  margin: 0;
68
- scroll-snap-align: start;
68
+ scroll-snap-align: start!important;
69
69
  }
70
70
  /* #endregion */
71
71
 
@@ -127,7 +127,7 @@
127
127
  /* #endregion */
128
128
 
129
129
  /* #region left and right buttons on desktop */
130
- iam-carousel-wrapper iam-carousel {
130
+ main > iam-carousel {
131
131
 
132
132
  @container (min-width: 62em) {
133
133
 
@@ -223,7 +223,7 @@
223
223
  /* #endregion */
224
224
 
225
225
  /* #region count the number of items and set variables to hide the controls/markers */
226
- iam-carousel:has(> *:first-child:last-child) {
226
+ iam-carousel:has(> *:not(.carousel__controls):first-child + .carousel__controls) {
227
227
 
228
228
  --hide-buttons: 1;
229
229
  --hide-markers: 1;
@@ -231,8 +231,8 @@
231
231
 
232
232
  iam-carousel {
233
233
 
234
- @container (min-width: 36em) {
235
- &[data-smcols='2']:not(:has(> *:nth-child(3))) {
234
+ @container (min-width: 30em) { /* TODO work out this number - shoule be 6 columns */
235
+ &[data-smcols='2']:not(:has(> *:not(.carousel__controls):nth-child(3))) {
236
236
 
237
237
  --hide-buttons: 1;
238
238
  --hide-markers: 1;
@@ -241,7 +241,7 @@
241
241
  --marker-height: 0rem;
242
242
  --marker-mb: 0rem;
243
243
  }
244
- &[data-smcols='3']:not(:has(> *:nth-child(4))) {
244
+ &[data-smcols='3']:not(:has(> *:not(.carousel__controls):nth-child(4))) {
245
245
 
246
246
  --hide-buttons: 1;
247
247
  --hide-markers: 1;
@@ -253,7 +253,7 @@
253
253
  }
254
254
 
255
255
  @container (min-width: 62em) {
256
- &[data-mdcols='2']:not(:has(> *:nth-child(3))) {
256
+ &[data-mdcols='2']:not(:has(> *:not(.carousel__controls):nth-child(3))) {
257
257
 
258
258
  --hide-buttons: 1;
259
259
  --hide-markers: 1;
@@ -262,7 +262,7 @@
262
262
  --marker-height: 0rem;
263
263
  --marker-mb: 0rem;
264
264
  }
265
- &[data-mdcols='3']:not(:has(> *:nth-child(4))) {
265
+ &[data-mdcols='3']:not(:has(> *:not(.carousel__controls):nth-child(4))) {
266
266
 
267
267
  --hide-buttons: 1;
268
268
  --hide-markers: 1;
@@ -278,7 +278,16 @@
278
278
  /* #region change the item count via queries */
279
279
  iam-carousel {
280
280
 
281
- @container (min-width: 36em) {
281
+ &[data-xscols='2'] {
282
+
283
+ --count: 2;
284
+ }
285
+ &[data-xscols='3'] {
286
+
287
+ --count: 3;
288
+ }
289
+
290
+ @container (min-width: 30em) {
282
291
  &[data-smcols='2'] {
283
292
 
284
293
  --count: 2;
@@ -319,17 +328,17 @@
319
328
 
320
329
  @container not scroll-state(snapped: x) {
321
330
 
322
- --opacity: 0;
331
+ //--opacity: 0;
323
332
  }
324
333
 
325
334
  @container style(--count: 2) {
326
335
 
327
- &:nth-child(2n - 1) {
336
+ &:not(.carousel__controls):nth-child(2n - 1) {
328
337
  scroll-snap-align: start;
329
338
  scroll-snap-stop: always;
330
339
  }
331
340
 
332
- &:nth-child(2n - 1)::scroll-marker{
341
+ &:not(.carousel__controls):nth-child(2n - 1)::scroll-marker{
333
342
 
334
343
  display: block;
335
344
  }
@@ -337,12 +346,12 @@
337
346
 
338
347
  @container style(--count: 3) {
339
348
 
340
- &:nth-child(3n - 2) {
349
+ &:not(.carousel__controls):nth-child(3n - 2) {
341
350
  scroll-snap-align: start;
342
351
  scroll-snap-stop: always;
343
352
  }
344
353
 
345
- &:nth-child(3n - 2)::scroll-marker{
354
+ &:not(.carousel__controls):nth-child(3n - 2)::scroll-marker{
346
355
 
347
356
  display: block;
348
357
  }
@@ -536,7 +545,7 @@
536
545
  display: block;
537
546
  }
538
547
 
539
- @container (min-width: 36em) {
548
+ @container (min-width: 30em) {
540
549
 
541
550
  .carousel__progress-xs {
542
551
  display: none;
@@ -561,7 +570,7 @@
561
570
  @supports selector(::scroll-marker-group) {
562
571
 
563
572
 
564
- @container (max-width: 36em) {
573
+ @container (max-width: 30em) {
565
574
  iam-carousel:has(> *:nth-child(5)){
566
575
 
567
576
  --button-height: 0rem;
@@ -578,7 +587,7 @@
578
587
  }
579
588
  }
580
589
 
581
- @container (min-width: 36em) {
590
+ @container (min-width: 30em) {
582
591
 
583
592
  .carousel__progress {
584
593
  display: none;
@@ -1,2 +1,47 @@
1
1
 
2
- @use 'advanced-select.component';
2
+ @use 'advanced-select.component';
3
+
4
+ @layer components {
5
+ :host(.search--stylised) ::slotted(input) {
6
+
7
+ outline: 1px solid var(--colour-border)!important;
8
+
9
+ border: none!important;
10
+ border-radius: 1.5rem!important; /* 24px */
11
+ padding-left: 3rem!important; /* Magic number */
12
+ background-color: var(--colour-canvas);
13
+ }
14
+ :host(.search--stylised) ::slotted(input.input--sm) {
15
+
16
+ padding-left: 2.5rem!important; /* Magic number */
17
+ }
18
+
19
+ :host(.search--stylised) ::slotted(input:is(:focus)) {
20
+
21
+ outline: 1px solid var(--colour-info)!important;
22
+ }
23
+
24
+ :host(.search--stylised) ::slotted(button) {
25
+
26
+
27
+ background: transparent!important;
28
+ border-color: transparent!important;
29
+ color: var(--colour-heading)!important;
30
+ position: absolute!important;
31
+ top: 0;
32
+ left: 0;
33
+ }
34
+
35
+ :host(.hasInputSm) ::slotted(button) {
36
+
37
+ min-width: 2.5rem!important;
38
+ }
39
+
40
+ :host(.search--stylised) .clear-search {
41
+
42
+ border-radius: 50% !important;
43
+ outline: none !important;
44
+ border: none !important;
45
+ }
46
+
47
+ }
@@ -0,0 +1,104 @@
1
+ @layer components {
2
+
3
+ ::slotted(.heading) {
4
+
5
+ --bone-height: var(--h2-fs);
6
+ }
7
+
8
+ /* #region Cards */
9
+ :host(.hasCard) {
10
+ display: flex;
11
+ column-gap: 1rem;
12
+ flex-direction: column;
13
+ }
14
+
15
+ @container (min-width: 36em) {
16
+ :host(.hasCard) {
17
+
18
+ flex-direction: row;
19
+ }
20
+ }
21
+
22
+ ::slotted(.card) {
23
+
24
+ background-color: var(--colour-light)!important;
25
+ height: unset!important;
26
+ min-height: unset!important;
27
+ aspect-ratio: 1.2/1;
28
+ border: 1px solid var(--colour-border);
29
+ display: flex!important;
30
+ padding: 1rem 0.75rem;
31
+ flex-direction: column;
32
+ justify-content: flex-end;
33
+
34
+ &:before {
35
+
36
+ margin-bottom: 0.75rem;
37
+ }
38
+ &:before,
39
+ &:after {
40
+ content: "";
41
+ display: block;
42
+ background-color: #D9D9D9; /* TODO: needs to be a variable */
43
+ display: block;
44
+ width: auto;
45
+ height: var(--bone-height);
46
+ border-radius: 0.5rem;
47
+ }
48
+ }
49
+ /* #endregion */
50
+
51
+ /* search */
52
+ ::slotted(.search) {
53
+
54
+ background-color: var(--colour-white)!important;
55
+ height: 3rem!important;
56
+ min-height: 3rem!important;
57
+ border: 1px solid var(--colour-border)!important;
58
+ border-radius: 1.5rem!important;
59
+ }
60
+
61
+ /* buttons */
62
+ ::slotted(.btn) {
63
+ min-width: 19rem!important; /* 304px*/
64
+ width: 19rem!important; /* 304px*/
65
+ //min-height: calc(var(--btn-line-height) + var(--btn-padding-block) + var(--btn-padding-block))!important;
66
+ }
67
+
68
+ ::slotted(:is(.btn,.badge,.tag):empty):before {
69
+ content: "\00a0";
70
+ margin: 0;
71
+ }
72
+
73
+ :host(:is(.hasBtn, .hasBadge, .hasTag)) {
74
+ display: flex;
75
+ flex-wrap: wrap;
76
+ }
77
+
78
+ ::slotted(:is(.badge,.tag)) {
79
+ min-width: 5rem!important; /* 80px */
80
+ width: 5rem!important; /* 80px */
81
+ }
82
+
83
+ ::slotted(.link) {
84
+
85
+ min-width: 8rem!important; /* 128px */
86
+ width: 8rem!important; /* 128px */
87
+ }
88
+ ::slotted(.link):after {
89
+
90
+ margin-top: 0.25rem;
91
+ }
92
+
93
+ /* spinner */
94
+ :host(.hasSpinner) ::slotted(*) {
95
+
96
+ width: var(--spinner-size)!important;
97
+ margin-inline: auto!important;
98
+ }
99
+
100
+ ::slotted(.spinner){
101
+
102
+ background-color: transparent!important;
103
+ }
104
+ }
@@ -0,0 +1,27 @@
1
+ @layer components {
2
+
3
+ iam-skeleton {
4
+ --bone-height: 0.8125rem; /* 13px */;
5
+ --colour-heading: #D9D9D9;
6
+ --colour-underline: #D9D9D9;
7
+ container-type: inline-size;
8
+ }
9
+
10
+ iam-bone {
11
+ background-color: #D9D9D9; /* TODO: needs to be a variable */
12
+ border: unset;
13
+ display: block;
14
+ width: 100%;
15
+ min-height: var(--bone-height);
16
+ pointer-events: none!important;
17
+ margin-bottom: 1rem;
18
+
19
+ &:not(.btn,.badge,.tag){
20
+
21
+ height: var(--bone-height);
22
+ border-radius: 0.5rem;
23
+ }
24
+ }
25
+
26
+
27
+ }
@@ -1,6 +1,7 @@
1
1
  @use '../_func' as *;
2
2
  @use '../elements/links';
3
3
  @use '../elements/buttons';
4
+ @use '../elements/badge-tag';
4
5
  @use '../components/tabs.config';
5
6
 
6
7
 
@@ -256,3 +256,24 @@ iam-tabs.tabs--guided::part(next-button):not(:hover) {
256
256
  width: 100%;
257
257
  }
258
258
  }
259
+
260
+
261
+ /* #region tabs - toggle tags */
262
+
263
+ .tabs--toggle-tags {
264
+ .tabs__links {
265
+
266
+ flex-wrap: wrap;
267
+ margin: 0;
268
+ padding: 1px;
269
+
270
+ -webkit-mask-image: unset!important;
271
+ mask-image: unset!important;
272
+ }
273
+ }
274
+
275
+ .tabs--toggle-tags .tabs__links__wrapper:after {
276
+ display: none!important;
277
+ }
278
+
279
+ /* #endregion */
@@ -91,12 +91,12 @@
91
91
  }
92
92
 
93
93
  &:has(input:checked),
94
- &.selected {
94
+ &.selected,
95
+ &[aria-pressed='true'] {
95
96
  background: #e9f9fd!important;
96
97
  outline: 1px solid #1ebee6!important;
97
98
  }
98
99
  }
99
-
100
100
  /* Quick fix for badges in buttons */
101
101
  .btn :is(.badge, .tag) {
102
102
  position: relative;
@@ -95,11 +95,6 @@
95
95
  top: 100%;
96
96
  left: 0;
97
97
 
98
-
99
- &:empty {
100
- display: block !important;
101
- }
102
-
103
98
  &:empty:before {
104
99
  content: "No results found"; /* TODO Allow for text to be overwritten */
105
100
  background-color: white;
@@ -0,0 +1,29 @@
1
+
2
+
3
+ .spinner {
4
+
5
+ font-size: var(--spinner-size);
6
+
7
+ display: block;
8
+ margin-inline: auto;
9
+ position: relative;
10
+ width: var(--spinner-size);
11
+ height: var(--spinner-size);
12
+ color: var(--colour-heading);
13
+
14
+ &:before {
15
+ font-family: var(--fa-family-classic);
16
+ content: '\f3f4';
17
+ position: absolute;
18
+ font-weight: 900;
19
+ color: var(--colour-heading);
20
+ animation: spin 1.5s infinite steps(10);
21
+ font-size: 1em;
22
+ top: 50%;
23
+ left: 50%;
24
+ translate: -50% -50%;
25
+ z-index: 1;
26
+
27
+ font-weight: normal;
28
+ }
29
+ }
@@ -236,22 +236,24 @@
236
236
  --max-height-lg: 37.5rem; /* 600px */
237
237
 
238
238
 
239
+ /* #region Dropdown */
239
240
  --dropdown-bg: var(--colour-canvas-2);
240
241
  --dropdown-margin-block: 0.25rem;
241
242
  --dropdown-padding: 0.5rem;
242
243
  --dropdown-border-radius: 0.5rem;
243
244
  --dropdown-box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
244
-
245
245
  --option-border-radius: 0.25rem;
246
-
247
- --option-color: var(--colour-primary);
248
-
246
+ --option-color: var(--colour-primary);
249
247
  --option-bg-hover: var(--colour-light);
250
248
  --option-padding: 0.5rem;
251
249
  --option-color-hover: #595959; /* Magic number */
252
250
  --option-bg-active: hsl(from var(--colour-info) h s l / 10%);
253
-
254
251
  --option-border-left-active: 4px solid var(--colour-info);
252
+ /* #endregion */
253
+
254
+ /* #region Spinner */
255
+ --spinner-size: 7rem; /* 112px */
256
+ /* #endregion */
255
257
 
256
258
  /* Add in media query based updates to the global vars like updating the heading 1 font size */
257
259
  @media screen and (min-width: 36em) {
@@ -3,5 +3,9 @@
3
3
  .shadow-none {
4
4
  box-shadow: none!important;
5
5
  }
6
+ .box-shadow {
7
+
8
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
9
+ }
6
10
  }
7
11
  /* #endregion */
@@ -8,27 +8,27 @@
8
8
  }
9
9
 
10
10
  .fs-1 {
11
- font-size: rfs-fluid-value(2.5rem) !important;
11
+ font-size: 2.5rem !important;
12
12
  }
13
13
 
14
14
  .fs-2 {
15
- font-size: rfs-fluid-value(2rem) !important;
15
+ font-size: 2rem !important;
16
16
  }
17
17
 
18
18
  .fs-3 {
19
- font-size: rfs-fluid-value(1.75rem) !important;
19
+ font-size: 1.75rem !important;
20
20
  }
21
21
 
22
22
  .fs-4 {
23
- font-size: rfs-fluid-value(1.5rem) !important;
23
+ font-size: 1.5rem !important;
24
24
  }
25
25
 
26
26
  .fs-5 {
27
- font-size: rfs-fluid-value(1.25rem) !important;
27
+ font-size: 1.25rem !important;
28
28
  }
29
29
 
30
30
  .fs-6 {
31
- font-size: rfs-fluid-value(1rem) !important;
31
+ font-size: 1rem !important;
32
32
  }
33
33
 
34
34
  .fst-italic {
@@ -0,0 +1,57 @@
1
+ // Data layer Web component created
2
+ declare global {
3
+ interface Window {
4
+ dataLayer: Array<object>;
5
+ }
6
+ }
7
+ window.dataLayer = window.dataLayer || [];
8
+ window.dataLayer.push({
9
+ event: 'customElementRegistered',
10
+ element: 'banner',
11
+ });
12
+
13
+ class iamBentoGrid extends HTMLElement {
14
+ constructor() {
15
+ super();
16
+ this.attachShadow({ mode: 'open' });
17
+
18
+ const assetLocation = document.body.hasAttribute('data-assets-location')
19
+ ? document.body.getAttribute('data-assets-location')
20
+ : '/assets';
21
+ const loadCSS = `@import "${assetLocation}/css/components/banner.component.css";`;
22
+
23
+ const template = document.createElement('template');
24
+ template.innerHTML = `
25
+ <style>
26
+ ${loadCSS}
27
+ </style>
28
+ <div class="wrapper">
29
+ <slot></slot>
30
+ <div class="banner__btns"><slot name="buttons"></slot><button class="btn btn-tertiary" id="dismiss">Dismiss</button></div>
31
+
32
+ </div>
33
+ <div class="banner__img">
34
+ <picture>
35
+ <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
36
+ </picture>
37
+ </div>
38
+ `;
39
+ this.shadowRoot?.appendChild(template.content.cloneNode(true));
40
+ }
41
+
42
+ connectedCallback(): void {
43
+
44
+ const dismissBtn = this.shadowRoot?.querySelector('#dismiss');
45
+ const bgImg = this.shadowRoot?.querySelector('.banner__img img');
46
+
47
+ dismissBtn?.addEventListener('click',() => {
48
+
49
+ this.remove();
50
+ });
51
+
52
+ if(this.hasAttribute('data-image'))
53
+ bgImg?.setAttribute('src',this.getAttribute('data-image'));
54
+ }
55
+ }
56
+
57
+ export default iamBentoGrid;
@@ -0,0 +1,25 @@
1
+ import { trackComponent, trackComponentRegistered } from '../_global';
2
+
3
+ trackComponentRegistered('iam-bone');
4
+
5
+ class iamBone extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.attachShadow({ mode: 'open' });
9
+
10
+ const template = document.createElement('template');
11
+ template.innerHTML = `
12
+ <div class="wrapper">
13
+ <slot></slot>
14
+ </div>
15
+ `;
16
+ this.shadowRoot?.appendChild(template.content.cloneNode(true));
17
+ }
18
+
19
+ connectedCallback(): void {
20
+ console.log('bone');
21
+ }
22
+ }
23
+
24
+
25
+ export default iamBone;
@@ -161,6 +161,10 @@ class iamCard extends HTMLElement {
161
161
  });
162
162
  });
163
163
 
164
+
165
+ if(this.querySelector('[slot="link"]'))
166
+ this.classList.add('hasLink');
167
+
164
168
  trackComponent(cardComponent, 'iam-card', [
165
169
  'select-card',
166
170
  'unselect-card',