@iamproperty/components 7.7.1--beta20 → 7.7.1--beta22

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 (135) 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/fileupload.css +1 -1
  18. package/assets/css/components/fileupload.css.map +1 -1
  19. package/assets/css/components/multiselect.css +1 -1
  20. package/assets/css/components/multiselect.css.map +1 -1
  21. package/assets/css/components/search.component.css +1 -1
  22. package/assets/css/components/search.component.css.map +1 -1
  23. package/assets/css/components/split-button.component.css +1 -1
  24. package/assets/css/components/split-button.component.css.map +1 -1
  25. package/assets/css/components/std-nav-standalone.component.css +1 -1
  26. package/assets/css/components/std-nav-standalone.component.css.map +1 -1
  27. package/assets/css/components/tabs.component.css +1 -1
  28. package/assets/css/components/tabs.component.css.map +1 -1
  29. package/assets/css/components/tabs.config.css +1 -1
  30. package/assets/css/components/tabs.config.css.map +1 -1
  31. package/assets/css/components/tag.component.css +1 -1
  32. package/assets/css/components/tag.component.css.map +1 -1
  33. package/assets/css/core.min.css +1 -1
  34. package/assets/css/core.min.css.map +1 -1
  35. package/assets/css/elements/badge-tag.css +1 -1
  36. package/assets/css/elements/badge-tag.css.map +1 -1
  37. package/assets/css/elements/dropdown.css +1 -1
  38. package/assets/css/elements/dropdown.css.map +1 -1
  39. package/assets/css/style.min.css +1 -1
  40. package/assets/css/style.min.css.map +1 -1
  41. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  42. package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
  43. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  44. package/assets/js/components/advanced-select/advanced-select.component.min.js +2 -2
  45. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  46. package/assets/js/components/banner/banner.component.js +44 -0
  47. package/assets/js/components/banner/banner.component.min.js +20 -0
  48. package/assets/js/components/banner/banner.component.min.js.map +1 -0
  49. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  50. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  51. package/assets/js/components/bone/bone.component.min.js +1 -1
  52. package/assets/js/components/button/button.component.min.js +1 -1
  53. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  54. package/assets/js/components/card/card.component.js +2 -0
  55. package/assets/js/components/card/card.component.min.js +5 -5
  56. package/assets/js/components/card/card.component.min.js.map +1 -1
  57. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  58. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  59. package/assets/js/components/config/config.component.min.js +1 -1
  60. package/assets/js/components/content/content.component.js +9 -5
  61. package/assets/js/components/content/content.component.min.js +3 -3
  62. package/assets/js/components/content/content.component.min.js.map +1 -1
  63. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  64. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  65. package/assets/js/components/fileupload/fileupload.component.min.js +3 -3
  66. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  67. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  68. package/assets/js/components/form/form.component.min.js +1 -1
  69. package/assets/js/components/header/header.component.min.js +1 -1
  70. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  71. package/assets/js/components/input/input.component.min.js +1 -1
  72. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  73. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  74. package/assets/js/components/menu/menu.component.min.js +1 -1
  75. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  76. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  77. package/assets/js/components/modal/modal.component.min.js +1 -1
  78. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  79. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  80. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  81. package/assets/js/components/nav/nav.component.min.js +1 -1
  82. package/assets/js/components/notification/notification.component.min.js +1 -1
  83. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  84. package/assets/js/components/password/password.component.min.js +1 -1
  85. package/assets/js/components/popover/popover.component.min.js +1 -1
  86. package/assets/js/components/rank/rank.component.min.js +1 -1
  87. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  88. package/assets/js/components/rating/rating.component.min.js +1 -1
  89. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  90. package/assets/js/components/search/search.component.js +6 -2
  91. package/assets/js/components/search/search.component.min.js +5 -5
  92. package/assets/js/components/search/search.component.min.js.map +1 -1
  93. package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
  94. package/assets/js/components/slider/slider.component.min.js +1 -1
  95. package/assets/js/components/split-button/split-button.component.min.js +2 -2
  96. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +2 -2
  97. package/assets/js/components/std-nav/std-nav.component.min.js +1 -1
  98. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +2 -2
  99. package/assets/js/components/table/table.component.min.js +1 -1
  100. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  101. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  102. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  103. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  104. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  105. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  106. package/assets/js/components/tag/tag.component.min.js +2 -2
  107. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  108. package/assets/js/components/video/video.component.min.js +1 -1
  109. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  110. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  111. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  112. package/assets/js/modules/tabs.js +6 -2
  113. package/assets/js/scripts.bundle.js +1 -1
  114. package/assets/js/scripts.bundle.min.js +1 -1
  115. package/assets/sass/components/banner.component.scss +101 -0
  116. package/assets/sass/components/card.component.scss +1 -1
  117. package/assets/sass/components/carousel.config.scss +24 -15
  118. package/assets/sass/components/fileupload.scss +7 -0
  119. package/assets/sass/components/search.component.scss +46 -1
  120. package/assets/sass/components/tabs.component.scss +1 -0
  121. package/assets/sass/components/tabs.config.scss +21 -0
  122. package/assets/sass/elements/badge-tag.css +2 -2
  123. package/assets/sass/elements/dropdown.css +0 -5
  124. package/assets/sass/utilities/shadow.css +4 -0
  125. package/assets/sass/utilities/text.css +6 -6
  126. package/assets/ts/components/banner/banner.component.ts +57 -0
  127. package/assets/ts/components/card/card.component.ts +4 -0
  128. package/assets/ts/components/content/content.component.ts +14 -6
  129. package/assets/ts/components/search/search.component.ts +7 -1
  130. package/assets/ts/modules/tabs.ts +10 -2
  131. package/dist/components.es.js +441 -469
  132. package/dist/components.umd.js +142 -127
  133. package/package.json +1 -1
  134. package/src/components/Banner/Banner.vue +14 -29
  135. package/src/components/Banner/Banner.spec.js +0 -26
@@ -0,0 +1,101 @@
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
+ overflow: hidden;
17
+ }
18
+
19
+ :host(:not([class*="bg-"])) {
20
+
21
+ --colour-heading: var(--colour-primary-theme);
22
+ --colour-body: var(--colour-primary-theme);
23
+ color: var(--colour-primary-theme);
24
+
25
+ color-scheme: light!important;
26
+
27
+
28
+ background-color: var(--colour-canvas-2)!important;
29
+ color: var(--colour-primary-theme)!important;
30
+ }
31
+
32
+ :host(:is(.bg-primary, .bg-danger, .bg-dark, .gradient-primary)) {
33
+
34
+ --colour-heading: var(--colour-white);
35
+ --colour-body: var(--colour-white);
36
+ color: var(--colour-white);
37
+
38
+ & > * {
39
+
40
+ color-scheme: dark;
41
+ }
42
+ }
43
+
44
+ .banner__img,
45
+ #dismiss {
46
+ display: none;
47
+ }
48
+
49
+ .banner__btns {
50
+ display: flex;
51
+ flex-wrap: wrap;
52
+ align-items: center;
53
+ gap: 1rem;
54
+
55
+ .btn {
56
+ margin: 0!important;
57
+ }
58
+ }
59
+
60
+ :host([data-dismiss]) #dismiss {
61
+ display: block;
62
+ }
63
+
64
+ ::slotted(*:not([slot="buttons"],hr)) {
65
+ margin: 0!important;
66
+ padding-bottom: 1rem!important;
67
+ }
68
+
69
+ ::slotted([slot="buttons"]){
70
+ margin: 0!important;
71
+ }
72
+
73
+ ::slotted(:is(h2,h3,h4,h5,h6)){
74
+
75
+ font-size: var(--h4-fs)!important;
76
+ line-height: var(--h4-lh)!important;
77
+ max-width: var(--content-max-width)!important;
78
+ }
79
+
80
+ :host([data-image]){
81
+
82
+ .wrapper {
83
+ padding-right: 50%;
84
+ }
85
+
86
+ .banner__img {
87
+ display: block;
88
+ position: absolute;
89
+ inset: 0;
90
+ left: 60%;
91
+
92
+ img {
93
+ position: absolute;
94
+ inset: 0;
95
+ height: 100%;
96
+ width: 100%;
97
+ object-fit: cover;
98
+ }
99
+ }
100
+ }
101
+ }
@@ -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;
@@ -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;
@@ -2,6 +2,7 @@
2
2
  @use '../_func' as *;
3
3
  @use '../elements/forms' as *;
4
4
  @use '../elements/buttons' as *;
5
+ @use '../elements/type' as *;
5
6
 
6
7
  @use '../utilities/display' as *;
7
8
 
@@ -47,9 +48,15 @@ hr {
47
48
 
48
49
  .helper-text {
49
50
  max-width: 16.875rem; /* (270); */
51
+ padding-bottom: 2rem;
50
52
  }
51
53
  }
52
54
 
55
+ :host(.fileupload--hide-title) .file-upload .file-upload__title{
56
+
57
+ display: none!important;
58
+ }
59
+
53
60
  .files {
54
61
  span {
55
62
  display: block;
@@ -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
+ }
@@ -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;
@@ -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;
@@ -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',
@@ -27,7 +27,7 @@ class iamContent extends HTMLElement {
27
27
 
28
28
  if(this.hasAttribute('data-title-tag')){
29
29
 
30
- return `<${this.getAttribute('data-title-tag')} class="${this.getAttribute('data-title-class')}">${title}</${this.getAttribute('data-title-tag')}>`;
30
+ return `<${this.getAttribute('data-title-tag')} class="${this.getAttribute('data-title-class')} iam-content--title">${title}</${this.getAttribute('data-title-tag')}>`;
31
31
  }
32
32
 
33
33
  return '';
@@ -83,7 +83,7 @@ class iamContent extends HTMLElement {
83
83
  const addTitle = this.addTitle;
84
84
 
85
85
  const registerComponents = (contentComponent): void => {
86
- const components = ['carousel', 'card', 'marketing', 'notification'];
86
+ const components = ['skeleton','bone','carousel', 'card', 'banner', 'notification'];
87
87
 
88
88
  const assetLocation = document.body.hasAttribute('data-assets-location')
89
89
  ? document.body.getAttribute('data-assets-location')
@@ -123,23 +123,31 @@ class iamContent extends HTMLElement {
123
123
  if(Array.isArray(response))
124
124
  response = response[0];
125
125
 
126
- component.insertAdjacentHTML('beforebegin',addTitle(response.title.rendered));
126
+ const renderedContent = response.content.rendered.replaceAll(/<p>\[(.*)\]<\/p>/g, "<span data-shortcode=\"$1\"><iam-skeleton><iam-bone class=\"search\"></iam-bone></iam-skeleton></span>");
127
+
128
+
127
129
 
130
+ component.parentElement?.querySelector('.iam-content--title')?.remove();
131
+ component.insertAdjacentHTML('beforebegin',addTitle(response.title.rendered));
132
+
133
+
128
134
 
129
135
  if(transform){
130
136
 
131
- component.innerHTML = `<${transform} ${elementAttributes}>${response.content.rendered}</${transform}>`;
137
+ component.innerHTML = `<${transform} ${elementAttributes}>${renderedContent}</${transform}>`;
132
138
  component.removeAttribute('class');
133
139
  }
134
140
  else {
135
141
 
136
- component.innerHTML = `${response.content.rendered}`;
137
- console.log(response.content);
142
+ component.innerHTML = `${renderedContent}`;
138
143
  }
139
144
 
140
145
  fixContent(component);
141
146
  registerComponents(component);
142
147
  transformButtons(component);
148
+
149
+ const changeEvent = new CustomEvent('loaded', { detail: {triggered: true} });
150
+ component?.dispatchEvent(changeEvent);
143
151
  }
144
152
  };
145
153
 
@@ -37,6 +37,9 @@ class iamSearch extends HTMLElement {
37
37
  // Make the datalist a dropdown
38
38
  this.classList.add('dropdown__wrapper');
39
39
 
40
+ if(this.querySelector('input.input--sm'))
41
+ this.classList.add('hasInputSm');
42
+
40
43
 
41
44
  if(this.querySelector('label'))
42
45
  this.classList.add('has-label');
@@ -79,7 +82,7 @@ class iamSearch extends HTMLElement {
79
82
  advancedSelect(this, displayInputField, datalist, false);
80
83
 
81
84
 
82
- function checkMatch(): void {
85
+ const checkMatch = (): void => {
83
86
  const match = datalist.querySelector(`option[value="${displayInputField.value}" i]`);
84
87
  const subMatch = datalist.querySelector(`option[value*="${displayInputField.value}" i]`);
85
88
 
@@ -105,6 +108,9 @@ class iamSearch extends HTMLElement {
105
108
 
106
109
  const search = async (searchterm): any => {
107
110
 
111
+ if(!this.getAttribute('data-url'))
112
+ return false;
113
+
108
114
  let ajaxURL = this.getAttribute('data-url');
109
115
  ajaxURL += `${encodeURI(searchterm)}`;
110
116
 
@@ -45,7 +45,15 @@ export const createTabsLinks = function (tabsElement: Element): void {
45
45
  button.setAttribute('aria-pressed', true);
46
46
  }
47
47
  button.innerHTML = `${summary.innerText}`;
48
- button.classList.add('link');
48
+
49
+ if(tabsElement.classList.contains('tabs--toggle-tags')){
50
+
51
+ button.classList.add('tag');
52
+ button.classList.add('tag--toggle');
53
+ }
54
+ else
55
+ button.classList.add('link');
56
+
49
57
  button.setAttribute('data-index', tabindex);
50
58
  button.setAttribute('part', 'tab-link');
51
59
 
@@ -64,7 +72,7 @@ export const createTabsLinks = function (tabsElement: Element): void {
64
72
  button = element;
65
73
  }
66
74
 
67
- button.classList.add('link');
75
+
68
76
  tabLinks.appendChild(button);
69
77
 
70
78
  tabDropdown.appendChild(dropdownOpt);