@iamproperty/components 5.4.2-beta4 → 5.5.1-beta-1

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 (56) hide show
  1. package/assets/css/components/card.css +1 -1
  2. package/assets/css/components/card.css.map +1 -1
  3. package/assets/css/components/card.global.css +1 -1
  4. package/assets/css/components/card.global.css.map +1 -1
  5. package/assets/css/components/header.css +1 -1
  6. package/assets/css/components/header.css.map +1 -1
  7. package/assets/css/components/nav.css +1 -1
  8. package/assets/css/components/nav.css.map +1 -1
  9. package/assets/css/components/table.global.css +1 -1
  10. package/assets/css/components/table.global.css.map +1 -1
  11. package/assets/css/core.min.css +1 -1
  12. package/assets/css/core.min.css.map +1 -1
  13. package/assets/css/style.min.css +1 -1
  14. package/assets/css/style.min.css.map +1 -1
  15. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  16. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  17. package/assets/js/components/address-lookup/address-lookup.component.js +7 -0
  18. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  19. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  20. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  21. package/assets/js/components/card/card.component.js +5 -2
  22. package/assets/js/components/card/card.component.min.js +8 -5
  23. package/assets/js/components/card/card.component.min.js.map +1 -1
  24. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  25. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  26. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  27. package/assets/js/components/header/header.component.min.js +2 -2
  28. package/assets/js/components/nav/nav.component.min.js +2 -2
  29. package/assets/js/components/notification/notification.component.min.js +1 -1
  30. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  31. package/assets/js/components/search/search.component.min.js +1 -1
  32. package/assets/js/components/table/table.component.min.js +2 -2
  33. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  34. package/assets/js/dynamic.min.js +1 -1
  35. package/assets/js/scripts.bundle.js +6 -3
  36. package/assets/js/scripts.bundle.js.map +1 -1
  37. package/assets/js/scripts.bundle.min.js +2 -2
  38. package/assets/js/scripts.bundle.min.js.map +1 -1
  39. package/assets/sass/_elements.scss +2 -0
  40. package/assets/sass/_functions/utilities.scss +3 -1
  41. package/assets/sass/_functions/variables.scss +4 -1
  42. package/assets/sass/_utilities.scss +1 -0
  43. package/assets/sass/components/card.global.scss +6 -0
  44. package/assets/sass/components/card.scss +37 -30
  45. package/assets/sass/components/header.scss +8 -1
  46. package/assets/sass/components/nav.scss +3 -3
  47. package/assets/sass/components/table.global.scss +8 -1
  48. package/assets/sass/elements/progress.scss +71 -0
  49. package/assets/sass/helpers/line-clamp.scss +24 -0
  50. package/assets/ts/components/address-lookup/address-lookup.component.ts +9 -0
  51. package/assets/ts/components/card/card.component.ts +5 -2
  52. package/dist/components.es.js +187 -190
  53. package/dist/components.umd.js +42 -53
  54. package/package.json +1 -1
  55. package/src/components/Header/Header.vue +1 -1
  56. package/src/components/Table/Table.vue +2 -2
@@ -17,3 +17,5 @@
17
17
 
18
18
  @import "elements/badge.scss";
19
19
  @import "elements/details.scss";
20
+
21
+ @import "elements/progress.scss";
@@ -13,7 +13,8 @@ $utilities: map-merge(
13
13
  class: mw,
14
14
  values: (
15
15
  100: 100%,
16
- fit-content: fit-content
16
+ fit-content: fit-content,
17
+ content: var(--content-max-width)
17
18
  )
18
19
  ),
19
20
  "min-width": (
@@ -129,6 +130,7 @@ $utilities: map-merge(
129
130
  "secondary": var(--colour-secondary),
130
131
  "info": var(--colour-info),
131
132
  "success": var(--colour-success),
133
+ "complete": var(--colour-complete),
132
134
  "warning": var(--colour-warning),
133
135
  "danger": var(--colour-danger),
134
136
  "light": var(--colour-light),
@@ -448,11 +448,14 @@ $icon-arrow: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' wid
448
448
  $icon-close: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>");
449
449
  $icon-question: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 28'><path d='M14 21.5v-3c0-0.281-0.219-0.5-0.5-0.5h-3c-0.281 0-0.5 0.219-0.5 0.5v3c0 0.281 0.219 0.5 0.5 0.5h3c0.281 0 0.5-0.219 0.5-0.5zM18 11c0-2.859-3-5-5.688-5-2.547 0-4.453 1.094-5.797 3.328-0.141 0.219-0.078 0.5 0.125 0.656l2.063 1.563c0.078 0.063 0.187 0.094 0.297 0.094 0.141 0 0.297-0.063 0.391-0.187 0.734-0.938 1.047-1.219 1.344-1.437 0.266-0.187 0.781-0.375 1.344-0.375 1 0 1.922 0.641 1.922 1.328 0 0.812-0.422 1.219-1.375 1.656-1.109 0.5-2.625 1.797-2.625 3.313v0.562c0 0.281 0.219 0.5 0.5 0.5h3c0.281 0 0.5-0.219 0.5-0.5v0c0-0.359 0.453-1.125 1.188-1.547 1.188-0.672 2.812-1.578 2.812-3.953zM24 14c0 6.625-5.375 12-12 12s-12-5.375-12-12 5.375-12 12-12 12 5.375 12 12z'/></svg>");
450
450
 
451
+ $icon-new-tab: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M304 24c0 13.3 10.7 24 24 24H430.1L207 271c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l223-223V184c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V440c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z'/></svg>");
452
+
451
453
 
452
454
  $vars: map-merge((
453
455
  --icon-arrow: #{escape-svg($icon-arrow)},
454
456
  --icon-close: #{escape-svg($icon-close)},
455
- --icon-question: #{escape-svg($icon-question)}
457
+ --icon-question: #{escape-svg($icon-question)},
458
+ --icon-new-tab: #{escape-svg($icon-new-tab)}
456
459
  ), $vars);
457
460
  // #endregion
458
461
 
@@ -13,6 +13,7 @@
13
13
  // Helpers
14
14
  @import "helpers/max-height.scss";
15
15
  @import "helpers/dynamic.scss";
16
+ @import "helpers/line-clamp.scss";
16
17
 
17
18
  // Utilities
18
19
  @import "../bootstrap/scss/utilities/_api.scss";
@@ -55,3 +55,9 @@ iam-card {
55
55
 
56
56
 
57
57
  // #endregion
58
+
59
+
60
+ a[target="_blank"] iam-card::part(card) {
61
+
62
+ --icon: var(--icon-new-tab);
63
+ }
@@ -13,13 +13,18 @@
13
13
  min-height: 100%;
14
14
  width: 100%;
15
15
  text-align: left;
16
- display: block;
16
+ display: flex;
17
+ flex-direction: column;
17
18
  overflow: hidden;
18
19
  z-index: 0;
19
20
  background: var(--colour-canvas-2);
20
21
  outline: 2px solid var(--colour-canvas-2);
21
22
  outline-offset: -2px;
22
23
 
24
+ > *:not(.btn-compact) {
25
+ min-width: 100%;
26
+ }
27
+
23
28
  &.border-0 {
24
29
  box-shadow: none;
25
30
  --card-left-padding: 0rem;
@@ -28,10 +33,28 @@
28
33
 
29
34
  &__body {
30
35
  position: relative;
31
- padding: var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);
36
+ padding: var(--card-top-padding) var(--card-right-padding) 0 var(--card-left-padding);
32
37
  z-index: -1;
33
38
  }
34
39
 
40
+ &__footer {
41
+ margin-top: auto;
42
+ padding: 0 var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);
43
+ }
44
+
45
+ &:is(:hover,:focus) {
46
+ .link:after {
47
+ width: 50%;
48
+ }
49
+ }
50
+
51
+ &:has(.card__footer .link) {
52
+ &:before,
53
+ &:after {
54
+ display: none;
55
+ }
56
+ }
57
+
35
58
  &:before,
36
59
  &:after {
37
60
  content: "";
@@ -46,11 +69,11 @@
46
69
 
47
70
  &:after {
48
71
  background: var(--colour-primary-theme);
49
- mask-image: var(--icon-arrow);
72
+ mask-image: var(--icon,var(--icon-arrow));
50
73
  mask-size: 50%;
51
74
  mask-repeat: no-repeat;
52
75
  mask-position: 50% 50%;
53
- -webkit-mask-image: var(--icon-arrow);
76
+ -webkit-mask-image: var(--icon,var(--icon-arrow));
54
77
  -webkit-mask-size: 50%;
55
78
  -webkit-mask-repeat: no-repeat;
56
79
  -webkit-mask-position: 50% 50%;
@@ -144,13 +167,12 @@
144
167
 
145
168
  &.card--has-icon:not(.card--secondary):not(.card--filter) .card__body {
146
169
  padding-left: 4rem;
147
- min-height: 100%;
148
- display: flex;
149
- flex-direction: column;
150
- position: relative;
151
- inset: 0;
152
- align-items: flex-start;
153
- justify-content: center;
170
+ margin-block: auto;
171
+ padding-bottom: var(--card-bottom-padding);
172
+ }
173
+ &.card--has-icon:not(.card--secondary):not(.card--filter) .card__footer {
174
+ padding: 0;
175
+ display: none;
154
176
  }
155
177
  }
156
178
 
@@ -166,9 +188,11 @@
166
188
  ::slotted(span:not(.badge)){
167
189
  display: block!important;
168
190
  font-weight: normal!important;
169
- padding-top: rem(24)!important;
170
191
  font-size: rem(16)!important;
171
192
  }
193
+ ::slotted(span:not(.badge):not([class*="pt-"])){
194
+ padding-top: rem(24)!important;
195
+ }
172
196
  // #endregion
173
197
 
174
198
  // #region card bages
@@ -222,7 +246,7 @@
222
246
  &:is(:hover,:focus,.hover) {
223
247
  outline: none;
224
248
 
225
- .card__body {
249
+ :is(.card__body,.card__footer) {
226
250
  background: #EEEEEE;
227
251
  }
228
252
  }
@@ -303,23 +327,6 @@
303
327
  }
304
328
  // #endregion
305
329
 
306
- //#region card with a footer
307
- .card:has(.card__footer){
308
-
309
- &:after {
310
- display: none;
311
- }
312
-
313
- .card__footer {
314
- position: relative;
315
- background: #ffffff;
316
- padding: var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);
317
- z-index: -1;
318
- display: block;
319
- }
320
- }
321
- //#endregion
322
-
323
330
 
324
331
  :host([data-selected]) .card {
325
332
  //background-color: yellow!important;
@@ -62,7 +62,14 @@
62
62
  }
63
63
 
64
64
 
65
-
65
+ :host(.header--contain) {
66
+ .header-banner {
67
+ padding-bottom: 2rem;
68
+ }
69
+ .header-banner > picture {
70
+ max-height: 100%;
71
+ }
72
+ }
66
73
 
67
74
 
68
75
 
@@ -250,7 +250,7 @@
250
250
  }
251
251
  }
252
252
 
253
- ::slotted(a:not([slot="logo"]):not(.btn-compact)) {
253
+ ::slotted(a:not([slot="logo"]):not(.btn-compact):not(.btn-primary)) {
254
254
  display: block!important;
255
255
  line-height: rem(20)!important;
256
256
  padding: rem(24) 0!important;
@@ -281,7 +281,7 @@
281
281
  padding-bottom: rem(48);
282
282
  }
283
283
 
284
- ::slotted(.btn:not(.btn-compact)) {
284
+ ::slotted(.btn:not(.btn-compact):not(.btn-primary)) {
285
285
 
286
286
  display: block!important;
287
287
  margin: 0 0 rem(24) 0!important;
@@ -431,7 +431,7 @@
431
431
  margin-right: 0!important;
432
432
  }
433
433
 
434
- ::slotted(a:not([slot="logo"]):not(.btn-compact)) {
434
+ ::slotted(a:not([slot="logo"]):not(.btn-compact):not(.btn-primary)) {
435
435
 
436
436
  font-size: rem(16)!important;
437
437
  font-weight: normal!important;
@@ -16,7 +16,6 @@ iam-table {
16
16
  }
17
17
  tbody tr {
18
18
  background: var(--row-bg);
19
- height: 3.5rem;
20
19
 
21
20
  &:is(:hover,:focus-within,.hover) {
22
21
 
@@ -429,6 +428,10 @@ iam-table {
429
428
  }
430
429
  }
431
430
 
431
+ tr:has([type="checkbox"]:checked){
432
+ height: 3.5rem;
433
+ }
434
+
432
435
  tr:has([type="checkbox"]:checked){
433
436
  --row-bg: #E0E0E0;
434
437
 
@@ -591,6 +594,10 @@ iam-table.table--fullwidth:not([data-expandable]) {
591
594
 
592
595
  tr {
593
596
 
597
+ &:has(.td--fixed) {
598
+ height: 3.5rem;
599
+ }
600
+
594
601
  &:is(:hover,:focus) .td--fixed{
595
602
  background: linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%);
596
603
  }
@@ -0,0 +1,71 @@
1
+ @use "../_func" as *;
2
+
3
+ :is(label,.label):has(progress){
4
+ position: relative;
5
+ max-width: $input-max-width;
6
+ margin-bottom: 2rem;
7
+
8
+ padding-right: 3rem;
9
+ }
10
+
11
+ progress {
12
+ border-radius: rem(5);
13
+ display: block;
14
+ margin-top: rem(8);
15
+ width: calc(100% + 3rem);
16
+ height: rem(8);
17
+ margin-left: 0;
18
+ border: none;
19
+ }
20
+
21
+ progress:before {
22
+ content: attr(value)'%';
23
+ vertical-align: 0;
24
+ line-height: 1;
25
+
26
+ /*Position text over the progress bar */
27
+ position:absolute;
28
+ top: auto;
29
+ left:auto;
30
+ right:0;
31
+ bottom: rem(16);
32
+ color: var(--colour-heading);
33
+ font-weight: bold;
34
+ }
35
+
36
+ progress::-webkit-progress-bar {
37
+ background-color: var(--colour-light);
38
+ border-radius: rem(5);
39
+ }
40
+ progress::-webkit-progress-value {
41
+ background-color: var(--colour, var(--colour-info));
42
+ border-radius: rem(5);
43
+ }
44
+
45
+
46
+
47
+
48
+ progress::-moz-progress-bar {
49
+ /* style rules */
50
+ }
51
+
52
+
53
+ // #region inline progress
54
+
55
+ :is(label, .label):has(.progress--inline){
56
+
57
+ font-size: 1rem;
58
+ color: var(--colour-body);
59
+
60
+
61
+ progress.progress--inline {
62
+
63
+ width: 100%;
64
+
65
+ &:before {
66
+ bottom: -0.25em;
67
+ }
68
+ }
69
+ }
70
+
71
+ // #endregion
@@ -0,0 +1,24 @@
1
+ .line-clamp {
2
+ display: -webkit-box;
3
+ -webkit-box-orient: vertical;
4
+ -webkit-line-clamp: 1;
5
+ text-overflow: hidden;
6
+ overflow: hidden;
7
+ }
8
+
9
+
10
+ .line-clamp--2 {
11
+ -webkit-line-clamp: 2;
12
+ }
13
+
14
+ .line-clamp--3 {
15
+ -webkit-line-clamp: 3;
16
+ }
17
+
18
+ .line-clamp--4 {
19
+ -webkit-line-clamp: 4;
20
+ }
21
+
22
+ .line-clamp--5 {
23
+ -webkit-line-clamp: 5;
24
+ }
@@ -141,6 +141,15 @@ class iamAddressLookup extends HTMLElement {
141
141
  });
142
142
  }
143
143
 
144
+ if(this.hasAttribute('data-manual')){
145
+ lookupWrapper.classList.add('js-hide');
146
+ manualWrapper.classList.remove('js-hide');
147
+
148
+ Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input, index) => {
149
+ input.setAttribute('required','true');
150
+ });
151
+ }
152
+
144
153
  function openManualWrapper (){
145
154
  lookupWrapper.classList.add('js-hide');
146
155
  manualWrapper.classList.remove('js-hide');
@@ -32,7 +32,7 @@ class iamCard extends HTMLElement {
32
32
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
33
33
  </style>
34
34
  <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous">
35
- <div class="card ${classList}" tabindex="0" role="button">
35
+ <div class="card ${classList}" tabindex="0" part="card">
36
36
  ${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>` : ''}
37
37
  <div class="card__body">
38
38
  ${!this.hasAttribute('data-image') ? `<div class="card__badges"><slot name="badges"></slot></div>` : ''}
@@ -42,7 +42,10 @@ class iamCard extends HTMLElement {
42
42
  </div>
43
43
  ${this.hasAttribute('data-add-link') ? `<button class="btn btn-compact btn-secondary fa-plus">Add property</button>` : ''}
44
44
  <slot name="checkbox"></slot>
45
- ${this.hasAttribute('data-cta') ? `<div class="card__footer"><span class="link">${this.getAttribute('data-cta')}</span></div>` : ''}
45
+ <div class="card__footer">
46
+ <slot name="footer"></slot>
47
+ ${this.hasAttribute('data-cta') ? `<span class="link d-inline-block pt-0 mb-0">${this.getAttribute('data-cta')}</span>` : ''}
48
+ </div>
46
49
  </div>
47
50
  `;
48
51
  this.shadowRoot.appendChild(template.content.cloneNode(true));