@iamproperty/components 5.0.0 → 5.1.0-beta10

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 (208) hide show
  1. package/assets/css/components/accordion.css +1 -1
  2. package/assets/css/components/accordion.css.map +1 -1
  3. package/assets/css/components/accordion.global.css +1 -0
  4. package/assets/css/components/accordion.global.css.map +1 -0
  5. package/assets/css/components/actionbar.css +1 -1
  6. package/assets/css/components/actionbar.css.map +1 -1
  7. package/assets/css/components/actionbar.global.css +1 -0
  8. package/assets/css/components/actionbar.global.css.map +1 -0
  9. package/assets/css/components/card.css +1 -1
  10. package/assets/css/components/card.css.map +1 -1
  11. package/assets/css/components/card.global.css +1 -0
  12. package/assets/css/components/card.global.css.map +1 -0
  13. package/assets/css/components/carousel.css +1 -1
  14. package/assets/css/components/carousel.css.map +1 -1
  15. package/assets/css/components/component.native.css +1 -0
  16. package/assets/css/components/component.native.css.map +1 -0
  17. package/assets/css/components/component.reset.css +1 -1
  18. package/assets/css/components/component.reset.css.map +1 -1
  19. package/assets/css/components/fileupload.css +1 -1
  20. package/assets/css/components/fileupload.css.map +1 -1
  21. package/assets/css/components/header.css +1 -1
  22. package/assets/css/components/header.css.map +1 -1
  23. package/assets/css/components/marketing.css +1 -0
  24. package/assets/css/components/marketing.css.map +1 -0
  25. package/assets/css/components/nav.css +1 -1
  26. package/assets/css/components/nav.css.map +1 -1
  27. package/assets/css/components/nav.global.css +1 -0
  28. package/assets/css/components/nav.global.css.map +1 -0
  29. package/assets/css/components/notification.global.css +1 -0
  30. package/assets/css/components/notification.global.css.map +1 -0
  31. package/assets/css/components/pagination.css +1 -1
  32. package/assets/css/components/pagination.css.map +1 -1
  33. package/assets/css/components/slider.css +1 -0
  34. package/assets/css/components/slider.css.map +1 -0
  35. package/assets/css/components/table.css +1 -1
  36. package/assets/css/components/table.css.map +1 -1
  37. package/assets/css/components/{table.extras.css → table.global.css} +1 -1
  38. package/assets/css/components/{table.extras.css.map → table.global.css.map} +1 -1
  39. package/assets/css/components/tabs.css +1 -1
  40. package/assets/css/components/tabs.css.map +1 -1
  41. package/assets/css/core.min.css +1 -1
  42. package/assets/css/core.min.css.map +1 -1
  43. package/assets/css/style.min.css +1 -1
  44. package/assets/css/style.min.css.map +1 -1
  45. package/assets/img/illustrations/add-new-property.png +0 -0
  46. package/assets/img/illustrations/auctioneer.png +0 -0
  47. package/assets/img/illustrations/branch.png +0 -0
  48. package/assets/img/illustrations/company-level.png +0 -0
  49. package/assets/img/illustrations/contractors.png +0 -0
  50. package/assets/img/illustrations/find-existing-property.png +0 -0
  51. package/assets/img/illustrations/green/add-new-property.png +0 -0
  52. package/assets/img/illustrations/green/auctioneer.png +0 -0
  53. package/assets/img/illustrations/green/branch.png +0 -0
  54. package/assets/img/illustrations/green/buyer.png +0 -0
  55. package/assets/img/illustrations/green/company-level.png +0 -0
  56. package/assets/img/illustrations/green/contractors.png +0 -0
  57. package/assets/img/illustrations/green/estate-agents.png +0 -0
  58. package/assets/img/illustrations/green/find-existing-property.png +0 -0
  59. package/assets/img/illustrations/green/landlords.png +0 -0
  60. package/assets/img/illustrations/green/seller.png +0 -0
  61. package/assets/img/illustrations/green/whats-new-2.png +0 -0
  62. package/assets/img/illustrations/green/whats-new.png +0 -0
  63. package/assets/img/illustrations/information-works.png +0 -0
  64. package/assets/img/illustrations/landlords.png +0 -0
  65. package/assets/img/illustrations/whats-new-2.png +0 -0
  66. package/assets/img/illustrations/whats-new.png +0 -0
  67. package/assets/img/signin-bg.png +0 -0
  68. package/assets/js/components/accordion/accordion.component.js +4 -0
  69. package/assets/js/components/accordion/accordion.component.min.js +6 -5
  70. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  71. package/assets/js/components/actionbar/actionbar.component.js +4 -0
  72. package/assets/js/components/actionbar/actionbar.component.min.js +5 -4
  73. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  74. package/assets/js/components/address-lookup/address-lookup.component.js +18 -4
  75. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  76. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  77. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  78. package/assets/js/components/card/card.component.js +6 -1
  79. package/assets/js/components/card/card.component.min.js +6 -4
  80. package/assets/js/components/card/card.component.min.js.map +1 -1
  81. package/assets/js/components/carousel/carousel.component.js +61 -0
  82. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  83. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  84. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  85. package/assets/js/components/header/header.component.js +6 -12
  86. package/assets/js/components/header/header.component.min.js +8 -14
  87. package/assets/js/components/header/header.component.min.js.map +1 -1
  88. package/assets/js/components/marketing/marketing.component.js +37 -0
  89. package/assets/js/components/nav/nav.component.js +8 -36
  90. package/assets/js/components/nav/nav.component.min.js +10 -12
  91. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  92. package/assets/js/components/notification/notification.component.js +4 -0
  93. package/assets/js/components/notification/notification.component.min.js +4 -3
  94. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  95. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  96. package/assets/js/components/search/search.component.js +148 -0
  97. package/assets/js/components/search/search.component.min.js +14 -0
  98. package/assets/js/components/search/search.component.min.js.map +1 -0
  99. package/assets/js/components/slider/slider.component.js +143 -0
  100. package/assets/js/components/table/table.component.js +1 -1
  101. package/assets/js/components/table/table.component.min.js +6 -6
  102. package/assets/js/components/table/table.component.min.js.map +1 -1
  103. package/assets/js/components/tabs/tabs.component.js +2 -0
  104. package/assets/js/components/tabs/tabs.component.min.js +5 -3
  105. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  106. package/assets/js/dynamic.js +1 -1
  107. package/assets/js/dynamic.min.js +5 -5
  108. package/assets/js/dynamic.min.js.map +1 -1
  109. package/assets/js/modules/carousel.js +15 -23
  110. package/assets/js/modules/dynamicEvents.js +28 -13
  111. package/assets/js/modules/helpers.js +4 -1
  112. package/assets/js/modules/inputs.js +44 -3
  113. package/assets/js/modules/table.js +8 -6
  114. package/assets/js/modules/tabs.js +29 -31
  115. package/assets/js/scripts.bundle.js +31 -35
  116. package/assets/js/scripts.bundle.js.map +1 -1
  117. package/assets/js/scripts.bundle.min.js +2 -2
  118. package/assets/js/scripts.bundle.min.js.map +1 -1
  119. package/assets/js/tests/slider.spec.js +20 -0
  120. package/assets/sass/_components.scss +0 -6
  121. package/assets/sass/_corefiles.scss +9 -88
  122. package/assets/sass/_elements.scss +1 -2
  123. package/assets/sass/_functions/mixins.scss +16 -0
  124. package/assets/sass/_functions/utilities.scss +0 -17
  125. package/assets/sass/_functions/variables.scss +1 -0
  126. package/assets/sass/components/accordion.global.scss +135 -0
  127. package/assets/sass/components/accordion.scss +6 -192
  128. package/assets/sass/components/{actionbar-global.scss → actionbar.global.scss} +3 -1
  129. package/assets/sass/components/actionbar.scss +2 -2
  130. package/assets/sass/components/{card-global.scss → card.global.scss} +2 -23
  131. package/assets/sass/components/card.scss +44 -3
  132. package/assets/sass/components/carousel.scss +86 -159
  133. package/assets/sass/components/component.native.scss +120 -0
  134. package/assets/sass/components/component.reset.scss +1 -3
  135. package/assets/sass/components/fileupload.scss +1 -1
  136. package/assets/sass/components/header.scss +55 -52
  137. package/assets/sass/components/marketing.scss +64 -0
  138. package/assets/sass/components/{nav-global.scss → nav.global.scss} +2 -1
  139. package/assets/sass/components/nav.scss +7 -1
  140. package/assets/sass/components/notification.global.scss +41 -0
  141. package/assets/sass/components/pagination.scss +4 -0
  142. package/assets/sass/components/slider.scss +121 -0
  143. package/assets/sass/components/{table.extras.scss → table.global.scss} +5 -1
  144. package/assets/sass/components/table.scss +1 -1
  145. package/assets/sass/components/tabs.scss +2 -5
  146. package/assets/sass/core.scss +1 -2
  147. package/assets/sass/elements/admin-panel.scss +9 -7
  148. package/assets/sass/elements/badge.scss +29 -0
  149. package/assets/sass/elements/container.scss +17 -0
  150. package/assets/sass/elements/dialog.scss +4 -4
  151. package/assets/sass/elements/forms.scss +142 -14
  152. package/assets/sass/elements/links.scss +2 -1
  153. package/assets/sass/elements/table.element.scss +1 -2
  154. package/assets/sass/error.scss +1 -1
  155. package/assets/sass/foundations/reboot.scss +59 -12
  156. package/assets/sass/foundations/root.scss +11 -3
  157. package/assets/sass/helpers/max-height.scss +78 -4
  158. package/assets/sass/main.scss +0 -1
  159. package/assets/sass/templates/auth.scss +112 -0
  160. package/assets/sass/templates/form.scss +1 -0
  161. package/assets/ts/components/accordion/accordion.component.ts +5 -0
  162. package/assets/ts/components/actionbar/actionbar.component.ts +5 -0
  163. package/assets/ts/components/address-lookup/address-lookup.component.ts +24 -5
  164. package/assets/ts/components/card/card.component.ts +7 -1
  165. package/assets/ts/components/carousel/README.md +39 -0
  166. package/assets/ts/components/carousel/carousel.component.ts +75 -0
  167. package/assets/ts/components/header/header.component.ts +6 -12
  168. package/assets/ts/components/marketing/marketing.component.ts +49 -0
  169. package/assets/ts/components/nav/README.md +2 -13
  170. package/assets/ts/components/nav/nav.component.ts +9 -47
  171. package/assets/ts/components/notification/notification.component.ts +4 -0
  172. package/assets/ts/components/search/search.component.ts +177 -0
  173. package/assets/ts/components/slider/README.md +26 -0
  174. package/assets/ts/components/slider/slider.component.ts +189 -0
  175. package/assets/ts/components/table/table.component.ts +1 -1
  176. package/assets/ts/components/tabs/tabs.component.ts +2 -0
  177. package/assets/ts/dynamic.ts +1 -1
  178. package/assets/ts/modules/carousel.ts +21 -33
  179. package/assets/ts/modules/dynamicEvents.ts +44 -24
  180. package/assets/ts/modules/helpers.ts +8 -2
  181. package/assets/ts/modules/inputs.ts +61 -4
  182. package/assets/ts/modules/table.ts +11 -14
  183. package/assets/ts/modules/tabs.ts +38 -41
  184. package/assets/ts/tests/slider.spec.ts +33 -0
  185. package/dist/components.es.js +893 -1542
  186. package/dist/components.umd.js +328 -161
  187. package/dist/style.css +1 -1
  188. package/package.json +5 -4
  189. package/src/components/Accordion/Accordion.vue +12 -5
  190. package/src/components/Actionbar/Actionbar.vue +12 -5
  191. package/src/components/Card/Card.vue +1 -1
  192. package/src/components/Carousel/Carousel.vue +18 -103
  193. package/src/components/Header/Header.vue +10 -6
  194. package/src/components/Marketing/Marketing.vue +39 -0
  195. package/src/components/Marketing/README.md +20 -0
  196. package/src/components/Nav/Nav.vue +1 -1
  197. package/src/components/Nav/README.md +1 -12
  198. package/src/components/Search/Search.vue +25 -0
  199. package/src/components/Slider/README.md +11 -0
  200. package/src/components/Slider/Slider.vue +25 -0
  201. package/src/components/Tabs/Tabs.vue +14 -5
  202. package/assets/css/components/actionbar-global.css +0 -1
  203. package/assets/css/components/actionbar-global.css.map +0 -1
  204. package/assets/css/components/card-global.css +0 -1
  205. package/assets/css/components/card-global.css.map +0 -1
  206. package/assets/css/components/nav-global.css +0 -1
  207. package/assets/css/components/nav-global.css.map +0 -1
  208. package/src/components/Carousel/Carousel.spec.js +0 -45
@@ -23,24 +23,22 @@ html {
23
23
 
24
24
  @if $mobileOnly != "true" {
25
25
  @media (min-width: #{em(1280)}) {
26
- font-size: 100%;
26
+ font-size: 100%;
27
+ font-size: vw(1280);
28
+ }
29
+
30
+ @media (min-width: #{em(1440)}) {
31
+ font-size: 112.5%;
32
+ }
33
+
34
+ @media (min-width: #{em(1680)}) {
35
+ //font-size: 131.25%;
27
36
  }
28
37
 
29
38
  @media print {
30
39
  font-size: 16px;
31
40
  }
32
41
  }
33
- /*
34
- @media (min-width: #{em(1440)}) {
35
- font-size: vw(1440);
36
- }
37
- @media (min-width: #{em(1600)}) {
38
- font-size: 111.11%;
39
- }
40
- @media (min-width: #{em(1800)}) {
41
- font-size: 125%;
42
- }
43
- */
44
42
  }
45
43
 
46
44
  body {
@@ -141,3 +139,52 @@ details summary > * {
141
139
  details {
142
140
  width: 100%;
143
141
  }
142
+
143
+ // Main grid setup to avoid having to use continaer divs
144
+
145
+ *:not(.row) > main {
146
+ --padding-inline: 1.5rem;
147
+ --container-max-width: #{rem(1280)};
148
+ --full-width-start: 0;
149
+
150
+ @include media-breakpoint-up(sm) {
151
+ --padding-inline: 2.5rem;
152
+ }
153
+ @include media-breakpoint-up(md) {
154
+ --padding-inline: 5.25rem;
155
+ --full-width-start: calc((100% - var(--container-max-width)) / 2);
156
+ }
157
+
158
+ display: grid;
159
+ margin-left: auto;
160
+ margin-right: auto;
161
+ width: 100%;
162
+
163
+ grid-template-columns:
164
+ [full-width-start] var(--full-width-start)
165
+ [container-start] var(--padding-inline)
166
+ [content-start] min(
167
+ 100% - (var(--padding-inline) * 2),
168
+ calc(var(--container-max-width) - (var(--padding-inline) * 2))
169
+ )
170
+ [content-end]
171
+ var(--padding-inline) [container-end]
172
+ var(--full-width-start) [full-width-end];
173
+
174
+ &:not(:has(.container:last-child)){
175
+ padding-bottom: 1rem;
176
+ }
177
+ }
178
+
179
+ main > :not(.full-width, .container, iam-header, [class*="bg-"]) {
180
+ grid-column: content;
181
+ }
182
+
183
+
184
+ main > :is(.full-width, .container, iam-header) {
185
+ grid-column: container;
186
+ }
187
+
188
+ main > :is(.full-width, [class*="bg-"]) {
189
+ grid-column: full-width;
190
+ }
@@ -36,7 +36,7 @@ $root: ':root'!default;
36
36
  --card-bottom-padding: 2rem;
37
37
  --card-left-padding: 1rem;
38
38
  --card-border-radius: #{rem(8)};
39
- --card-box-shadow: 2px 6px 12px rgba(0,0,0,0.2);
39
+ --card-box-shadow: #{rem(2)} #{rem(3)} #{rem(6)} rgba(0,0,0,0.2);
40
40
  --nav-height: #{rem(96)};
41
41
  --code-color: #d63384;
42
42
 
@@ -46,6 +46,14 @@ $root: ':root'!default;
46
46
  --border-color: var(--colour-border);
47
47
  }
48
48
 
49
+ .reset-colours {
50
+
51
+ @each $color, $value in $theme-colors {
52
+ --colour-#{$color}: #{$value};
53
+ }
54
+ @include reset-colours();
55
+ }
56
+
49
57
  // Dark mode; functional colours get updated
50
58
  @include dark-mode() {
51
59
  #{$root} {
@@ -60,7 +68,7 @@ $root: ':root'!default;
60
68
  @include light-mode() {
61
69
 
62
70
  // Reset the colours of lighter backgrounds to make sure they aren't over written by dark mode. Some other tweaks to colours are applied
63
- [class*="bg-"]:not(.bg-primary):not(.bg-dark):not(.bg-danger):not(.bg-white):not(.bg-canvas):not(.bg-canvas-2):not(.invert-colours) {
71
+ [class*="bg-"]:not(.bg-primary):not(.bg-dark):not(.bg-danger):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.invert-colours) {
64
72
 
65
73
  @each $color, $value in $theme-colors {
66
74
  --colour-#{$color}: #{$value};
@@ -71,7 +79,7 @@ $root: ':root'!default;
71
79
  }
72
80
 
73
81
  // Override the colours when on a dark background, similiar to dark mode but on a module level
74
- [class*="bg-"]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert),
82
+ [class*="bg-"]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert),
75
83
  .invert-colours {
76
84
 
77
85
  @include invert-colours();
@@ -1,9 +1,10 @@
1
- :is(.mh-sm,.mh-md,.mh-lg){
2
- overflow: auto;
3
- overscroll-behavior: contain;
1
+ :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){
2
+
3
+
4
+ padding-inline: var(--mh-padding-inline,0);
5
+ margin-inline: calc(var(--mh-padding-inline,0) * -1);
4
6
 
5
7
  &::before {
6
- content: "";
7
8
  top: calc(100% - 1.5rem);
8
9
  bottom: 0;
9
10
  left: 0;
@@ -15,4 +16,77 @@
15
16
  z-index: 2;
16
17
  margin-bottom: -1.5rem;
17
18
  }
19
+ }
20
+
21
+ :is(.mh-sm,.mh-md,.mh-lg){
22
+
23
+ overflow: auto;
24
+ overscroll-behavior: contain;
25
+
26
+ &::before {
27
+ content: "";
28
+ }
29
+ }
30
+
31
+ .mh-sm {
32
+ max-height: calc(#{rem(200)} - var(--mh-modifier,0));
33
+ }
34
+
35
+ .mh-md {
36
+ max-height: calc(#{rem(400)} - var(--mh-modifier,0));
37
+ }
38
+
39
+ .mh-lg {
40
+ max-height: calc(#{rem(600)} - var(--mh-modifier,0));
41
+ }
42
+
43
+
44
+ @include media-breakpoint-up(sm) {
45
+
46
+ :is(.mh-sm-sm,.mh-sm-md,.mh-sm-lg){
47
+
48
+ overflow: auto;
49
+ overscroll-behavior: contain;
50
+
51
+ &::before {
52
+ content: "";
53
+ }
54
+ }
55
+
56
+ .mh-sm-sm {
57
+ max-height: calc(#{rem(200)} - var(--mh-modifier,0));
58
+ }
59
+
60
+ .mh-sm-md {
61
+ max-height: calc(#{rem(400)} - var(--mh-modifier,0));
62
+ }
63
+
64
+ .mh-sm-lg {
65
+ max-height: calc(#{rem(600)} - var(--mh-modifier,0));
66
+ }
67
+ }
68
+
69
+ @include media-breakpoint-up(md) {
70
+
71
+ :is(.mh-md-sm,.mh-md-md,.mh-md-lg){
72
+
73
+ overflow: auto;
74
+ overscroll-behavior: contain;
75
+
76
+ &::before {
77
+ content: "";
78
+ }
79
+ }
80
+
81
+ .mh-md-sm {
82
+ max-height: calc(#{rem(200)} - var(--mh-modifier,0));
83
+ }
84
+
85
+ .mh-md-md {
86
+ max-height: calc(#{rem(400)} - var(--mh-modifier,0));
87
+ }
88
+
89
+ .mh-md-lg {
90
+ max-height: calc(#{rem(600)} - var(--mh-modifier,0));
91
+ }
18
92
  }
@@ -2,6 +2,5 @@
2
2
 
3
3
  @use "_fonts";
4
4
  @use "_corefiles";
5
- @import '../../assets/sass/components/nav-global.scss';
6
5
  @import "_components";
7
6
  @import "_print";
@@ -0,0 +1,112 @@
1
+ @use "../_func" as *;
2
+
3
+
4
+ body:has(.template--auth) {
5
+
6
+ display: flex;
7
+ flex-direction: row;
8
+ justify-content: center;
9
+ background-color: var(--colour-canvas-2);
10
+ }
11
+
12
+ .template--auth {
13
+ --padding-top: #{rem(24)};
14
+ --brand-size: #{rem(36)};
15
+
16
+ @include media-breakpoint-up(md) {
17
+ --padding-top: #{rem(40)};
18
+ --brand-size: #{rem(64)};
19
+ }
20
+
21
+
22
+ display: flex;
23
+ flex-wrap: wrap;
24
+ max-width: rem(1280);
25
+ margin-inline: auto;
26
+
27
+
28
+ main {
29
+
30
+ display: flex;
31
+ flex-direction: column;
32
+ min-height: 100vh;
33
+ padding-top: var(--padding-top);
34
+ padding-bottom: var(--padding-top);
35
+ padding-inline: var(--container-padding-x);
36
+
37
+ @include media-breakpoint-up(md) {
38
+ flex: 0 0 auto;
39
+ width: 43.75%;
40
+ padding-inline-end: calc(var(--container-padding-x) - rem(16));
41
+ }
42
+
43
+ .brand {
44
+ font-size: var(--brand-size);
45
+ padding-top: 0;
46
+ }
47
+ }
48
+
49
+
50
+ aside {
51
+
52
+ display: none;
53
+
54
+ @include media-breakpoint-up(md) {
55
+ display: block;
56
+ flex: 0 0 auto;
57
+ width: 56.25%;
58
+ padding-inline: var(--container-padding-x) !important;
59
+ padding-block: var(--padding-top);
60
+ position: relative;
61
+ overflow: hidden;
62
+ }
63
+
64
+ background-color: var(--colour-primary-theme);
65
+
66
+ @include light-mode(){
67
+
68
+ background-color: #e9f9fd;
69
+ }
70
+
71
+
72
+ > figure {
73
+ position: relative;
74
+ display: block;
75
+ margin-top: calc(var(--padding-top) * -1);
76
+ margin-inline: calc(var(--container-padding-x-md) * -1);
77
+ min-width: calc(100% + var(--container-padding-x-md) + var(--container-padding-x-md));
78
+ margin-bottom: rem(40);
79
+ max-height: rem(400);
80
+ clip-path: ellipse(70% 80% at 50% 20%);
81
+ rotate: -5deg;
82
+
83
+ &:after {
84
+ content: "";
85
+ position: absolute;
86
+ display: block;
87
+
88
+ right: -2rem;
89
+ left: -2rem;
90
+ bottom: -1rem;
91
+ height: 50%;
92
+
93
+ rotate: -5deg;
94
+ background: linear-gradient(0deg, rgba(0,49,60,1) 0%, rgba(28,182,226,0.45) 40%, rgba(28,182,226,0) 100%);
95
+ opacity: 0.9;
96
+ }
97
+ }
98
+
99
+ img {
100
+
101
+ margin-inline: rem(-24);
102
+ min-width: calc(100% + rem(24) + rem(24));
103
+ margin-top: rem(-12);
104
+ max-height: rem(424);
105
+ object-fit: cover;
106
+ object-position: 50% 50%;
107
+ rotate: 5deg;
108
+ }
109
+ }
110
+
111
+ }
112
+
@@ -57,6 +57,7 @@ body:has(.template--form) {
57
57
  background-color: var(--colour-canvas-2);
58
58
  margin-bottom: 1.5rem;
59
59
  outline: var(--contrast-outline-width, 0px) solid var(--colour-primary);
60
+ width: 100%;
60
61
 
61
62
  @include media-breakpoint-up(sm) {
62
63
 
@@ -17,6 +17,7 @@ class iamAccordion extends HTMLElement {
17
17
  const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
18
18
  const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
19
19
  const loadCSS = `@import "${assetLocation}/css/components/accordion.css";`;
20
+ const loadExtraCSS = `@import "${assetLocation}/css/components/accordion.global.css";`;
20
21
 
21
22
  const template = document.createElement('template');
22
23
  template.innerHTML = `
@@ -30,6 +31,10 @@ class iamAccordion extends HTMLElement {
30
31
  </div>
31
32
  `;
32
33
  this.shadowRoot.appendChild(template.content.cloneNode(true));
34
+
35
+ // insert extra CSS
36
+ if(!document.getElementById('accordionGlobal'))
37
+ document.head.insertAdjacentHTML('beforeend',`<style id="accordionGlobal">${loadExtraCSS}</style>`);
33
38
  }
34
39
 
35
40
  connectedCallback() {
@@ -45,6 +45,7 @@ class iamActionbar extends HTMLElement {
45
45
  const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
46
46
  const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
47
47
  const loadCSS = `@import "${assetLocation}/css/components/actionbar.css";`;
48
+ const loadExtraCSS = `@import "${assetLocation}/css/components/actionbar.global.css";`;
48
49
 
49
50
  const template = document.createElement('template');
50
51
  template.innerHTML = `
@@ -96,6 +97,10 @@ class iamActionbar extends HTMLElement {
96
97
  </div>
97
98
  `;
98
99
  this.shadowRoot.appendChild(template.content.cloneNode(true));
100
+
101
+ // insert extra CSS
102
+ if(!document.getElementById('actionbarGlobal'))
103
+ document.head.insertAdjacentHTML('beforeend',`<style id="actionbarGlobal">${loadExtraCSS}</style>`);
99
104
  }
100
105
 
101
106
  connectedCallback() {
@@ -34,7 +34,7 @@ class iamAddressLookup extends HTMLElement {
34
34
  <div>
35
35
  <label class="mb-2">Search <span class="title text-lowercase"></span> <span class="optional">(Optional)</span>
36
36
  <span>
37
- <input type="text" name="postcode" list="address-lookup__addressess" autoComplete="new-password" aria-autocomplete="none" placeholder="Postcode" />
37
+ <input type="text" name="postcode" list="address-lookup__addressess" autocomplete="off" aria-autocomplete="none" placeholder="Postcode" />
38
38
  <span class="suffix fa-regular fa-search"></span>
39
39
  </span>
40
40
  <span class="invalid-feedback">Required Adddress fields missing</span>
@@ -51,7 +51,7 @@ class iamAddressLookup extends HTMLElement {
51
51
  </div>
52
52
  <div class="pre-filled pb-2 js-hide">
53
53
  <strong class="title text-primary d-block"></strong>
54
- <p><span class="pre-filled-address"></span><button class="text-primary text-decoration-none ms-1 cursor-pointer"><i class="fa-regular fa-pen-to-square"></i><span class="visually-hidden">Edit</span></button></p>
54
+ <p><span class="pre-filled-address"></span><button class="text-primary text-decoration-none ms-1 cursor-pointer"><i class="fa-regular fa-pen-to-square"></i><span class="visually-hidden">Edit</span></button><slot name="prefilled"></slot></p>
55
55
  </div>
56
56
  </div>
57
57
  `;
@@ -251,9 +251,28 @@ class iamAddressLookup extends HTMLElement {
251
251
  let listString = '';
252
252
  response.forEach((address, index) => {
253
253
 
254
-
255
- let values = JSON.stringify(address.value);
256
- listString += `<option value="${address['label']}, ${postcode}" data-values='${values}'></option>`;
254
+ // Deal with agent platform response
255
+ if(typeof address.value == "object"){
256
+ let values = JSON.stringify(address.value);
257
+ listString += `<option value="${address['label']}, ${postcode}" data-values='${values}'></option>`;
258
+ }
259
+ else {
260
+ let values = JSON.stringify(address);
261
+
262
+ let itemString = '';
263
+
264
+ for (const [key, value] of Object.entries(address)) {
265
+
266
+ if(key == "address_number_name")
267
+ itemString += `${value} `;
268
+ else if(key != "postcode" && key != "address_title")
269
+ itemString += `${value}, `;
270
+ }
271
+
272
+ listString += `<option value="${itemString}${postcode}" data-values='${values}'></option>`;
273
+ }
274
+
275
+
257
276
  });
258
277
  list.innerHTML = listString;
259
278
 
@@ -22,6 +22,7 @@ class iamCard extends HTMLElement {
22
22
  const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
23
23
  const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
24
24
  const loadCSS = `@import "${assetLocation}/css/components/card.css";`;
25
+ const loadExtraCSS = `@import "${assetLocation}/css/components/card.global.css";`;
25
26
 
26
27
  const template = document.createElement('template');
27
28
  template.innerHTML = `
@@ -31,8 +32,9 @@ class iamCard extends HTMLElement {
31
32
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
32
33
  </style>
33
34
  <div class="card ${classList}" tabindex="0" role="button">
34
- ${this.hasAttribute('data-image') ? `<div class="card__head"><img src="${this.getAttribute('data-image')}" alt="" loading="lazy" /></div>` : ''}
35
+ ${this.hasAttribute('data-image') ? `<div class="card__head"><img src="${this.getAttribute('data-image')}" alt="" loading="lazy" /><div class="card__badges"><slot name="badges"></slot></div></div>` : ''}
35
36
  <div class="card__body">
37
+ ${!this.hasAttribute('data-image') ? `<div class="card__badges"><slot name="badges"></slot></div>` : ''}
36
38
  ${this.classList.contains('card--filter') && this.hasAttribute('data-total') ? `<div class="card__total">${this.getAttribute('data-total')}</div>` : ''}
37
39
  ${this.hasAttribute('data-illustration') ? `<div class="card__illustration"><img src="${this.getAttribute('data-illustration')}" alt="" loading="lazy" /></div>` : ''}
38
40
  <slot></slot>
@@ -43,6 +45,10 @@ class iamCard extends HTMLElement {
43
45
  </div>
44
46
  `;
45
47
  this.shadowRoot.appendChild(template.content.cloneNode(true));
48
+
49
+ // insert extra CSS
50
+ if(!document.getElementById('cardGlobal'))
51
+ document.head.insertAdjacentHTML('beforeend',`<style id="cardGlobal">${loadExtraCSS}</style>`);
46
52
  }
47
53
 
48
54
  connectedCallback() {
@@ -0,0 +1,39 @@
1
+ **Add the below to your initialise script**
2
+
3
+ ```
4
+ import('../node_modules/@iamproperty/components/assets/js/components/filterlist/filterlist.component.min').then(module => { // Might need to update the path
5
+
6
+ if (!window.customElements.get(`iam-filterlist`))
7
+ window.customElements.define(`iam-filterlist`, module.default);
8
+
9
+ }).catch((err) => {
10
+ console.log(err.message);
11
+ });
12
+ ```
13
+
14
+ **Add the below HTML code to where you want the component to live.**
15
+
16
+ ```
17
+ <iam-header class="bg-secondary" image="/shutterstock_1229155495.webp">
18
+ <ul class="breadcrumb" slot="breadcrumb">
19
+ <li><a href="/">Home</a></li>
20
+ <li><a href="/top">Top level</a></li>
21
+ </ul>
22
+ <h1>Page title</h1>
23
+ <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
24
+ </iam-header>
25
+ ```
26
+
27
+ **Properties**
28
+
29
+ | Option | Type | Default Value | Description |
30
+ | ------ | ---- | ------------- | ----------- |
31
+ | image | String | - | Optional image url to display in the background |
32
+
33
+
34
+ **Slots**
35
+
36
+ | Option | Default Value | Description |
37
+ | ------ | ------------- | ----------- |
38
+ | default | - | Will display underneath the heading inside of the white box |
39
+ | breadcrumb | - | An optional space to add a breadcrumb trail list. |
@@ -0,0 +1,75 @@
1
+ // @ts-nocheck
2
+ import carousel from "../../modules/carousel";
3
+
4
+ // Data layer Web component created
5
+ window.dataLayer = window.dataLayer || [];
6
+ window.dataLayer.push({
7
+ "event": "customElementRegistered",
8
+ "element": "carousel"
9
+ });
10
+
11
+ class iamCarousel extends HTMLElement {
12
+
13
+ constructor(){
14
+ super();
15
+ this.attachShadow({ mode: 'open'});
16
+
17
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
18
+ const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
19
+ const loadCSS = `@import "${assetLocation}/css/components/carousel.css";`;
20
+
21
+ const template = document.createElement('template');
22
+ template.innerHTML = `
23
+ <style>
24
+ @import "${coreCSS}";
25
+ ${loadCSS}
26
+ ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
27
+ </style>
28
+ <div class="carousel" :id="'carousel'+id">
29
+ <div class="carousel__wrapper">
30
+ <div class="carousel__inner">
31
+
32
+ <slot></slot>
33
+ </div>
34
+
35
+ <div class="carousel__controls">
36
+
37
+ </div>
38
+
39
+ <button class="btn btn-prev" data-go="0" disabled>Prev</button>
40
+ <button class="btn btn-next" data-go="2">Next</button>
41
+
42
+ </div>
43
+ </div>
44
+ `;
45
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
46
+ }
47
+
48
+ connectedCallback() {
49
+
50
+ const carouselElement = this.shadowRoot.querySelector('.carousel');
51
+ const row = this.querySelector('.row');
52
+ const carouselControls = this.shadowRoot.querySelector('.carousel__controls');
53
+
54
+ let itemCount = this.querySelectorAll(':scope > .row > .col').length
55
+
56
+ carouselElement.setAttribute('data-row-class',row.className);
57
+
58
+ if(this.classList.contains('hide-btns'))
59
+ carouselElement.classList.add('hide-btns');
60
+
61
+ if(this.classList.contains('hide-controls'))
62
+ carouselElement.classList.add('hide-controls');
63
+
64
+ // populate the pips
65
+ let pips = "";
66
+ for (let i = 1; i <= itemCount; i++) {
67
+ pips += `<button class="control-${i}" data-slide="${i}" ${i == 1 ? "aria-current":""}>Slide ${i}</button>`;
68
+ }
69
+ carouselControls.innerHTML = pips;
70
+
71
+ carousel(carouselElement,row);
72
+ }
73
+ }
74
+
75
+ export default iamCarousel;
@@ -25,18 +25,12 @@ class iamHeader extends HTMLElement {
25
25
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
26
26
  </style>
27
27
  <div class="header-banner">
28
- <div class="container" part="container">
29
- <slot name="breadcrumb"></slot>
30
- <div class="header-banner__inner">
31
- <slot></slot>
32
- </div>
33
- </div>
34
28
  <picture>
35
- <!-- Actual image only loaded on desktops -->
36
- <source srcset="" media="(min-width: 62em)">
37
- <!-- Placeholder image -->
38
29
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
39
30
  </picture>
31
+ <div class="container">
32
+ <slot></slot>
33
+ </div>
40
34
  </div>
41
35
  `;
42
36
  this.shadowRoot.appendChild(template.content.cloneNode(true));
@@ -44,13 +38,13 @@ class iamHeader extends HTMLElement {
44
38
 
45
39
  connectedCallback() {
46
40
 
47
- this.classList.add('loaded');
41
+ this.classList.add('bg-primary');
48
42
 
49
43
  const picture = this.shadowRoot.querySelector('picture');
50
- const source = this.shadowRoot.querySelector('picture source');
44
+ const source = this.shadowRoot.querySelector('picture img');
51
45
 
52
46
  if(this.hasAttribute('image'))
53
- source.setAttribute('srcset', this.getAttribute('image'));
47
+ source.setAttribute('src', this.getAttribute('image'));
54
48
  else
55
49
  picture.remove();
56
50
 
@@ -0,0 +1,49 @@
1
+ // @ts-nocheck
2
+
3
+ // Data layer Web component created
4
+ window.dataLayer = window.dataLayer || [];
5
+ window.dataLayer.push({
6
+ "event": "customElementRegistered",
7
+ "element": "Marketing"
8
+ });
9
+
10
+ class iamMarketing extends HTMLElement {
11
+
12
+ constructor(){
13
+ super();
14
+ this.attachShadow({ mode: 'open'});
15
+
16
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets'
17
+ const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
18
+ const loadCSS = `@import "${assetLocation}/css/components/marketing.css";`;
19
+
20
+ const template = document.createElement('template');
21
+ template.innerHTML = `
22
+ <style>
23
+ @import "${coreCSS}";
24
+ ${loadCSS}
25
+
26
+ </style>
27
+ <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
28
+ <div class="marketing">
29
+
30
+ <slot></slot>
31
+ </div>
32
+ `;
33
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
34
+ }
35
+
36
+ connectedCallback() {
37
+
38
+ this.classList.add('invert-colours');
39
+
40
+ if(this.hasAttribute('data-img')){
41
+ this.shadowRoot.querySelector('.marketing').insertAdjacentHTML(
42
+ 'afterbegin',
43
+ `<figure><img src="${this.getAttribute('data-img')}" alt="" /></figure>`,
44
+ );
45
+ }
46
+ }
47
+ }
48
+
49
+ export default iamMarketing;