@iamproperty/components 7.5.1--beta2 → 7.5.1--beta4

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 (152) 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/address-lookup.preload.css +1 -0
  6. package/assets/css/components/address-lookup.preload.css.map +1 -0
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/calendar.component.css +1 -1
  10. package/assets/css/components/calendar.component.css.map +1 -1
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/collapsible-side.css +1 -1
  16. package/assets/css/components/collapsible-side.css.map +1 -1
  17. package/assets/css/components/content.component.css +1 -1
  18. package/assets/css/components/content.component.css.map +1 -1
  19. package/assets/css/components/doughnutchart.component.css +1 -1
  20. package/assets/css/components/doughnutchart.component.css.map +1 -1
  21. package/assets/css/components/fileupload.css +1 -1
  22. package/assets/css/components/fileupload.css.map +1 -1
  23. package/assets/css/components/inline-edit.css +1 -1
  24. package/assets/css/components/inline-edit.css.map +1 -1
  25. package/assets/css/components/multiselect.css +1 -1
  26. package/assets/css/components/multiselect.css.map +1 -1
  27. package/assets/css/components/nav.component.css +1 -1
  28. package/assets/css/components/nav.component.css.map +1 -1
  29. package/assets/css/components/pagination.css +1 -1
  30. package/assets/css/components/pagination.css.map +1 -1
  31. package/assets/css/components/slider.css +1 -1
  32. package/assets/css/components/slider.css.map +1 -1
  33. package/assets/css/components/split-button.component.css +1 -1
  34. package/assets/css/components/split-button.component.css.map +1 -1
  35. package/assets/css/components/table-basic.global.css +1 -1
  36. package/assets/css/components/table-basic.global.css.map +1 -1
  37. package/assets/css/components/table.global.css +1 -1
  38. package/assets/css/components/table.global.css.map +1 -1
  39. package/assets/css/components/tabs.component.css +1 -1
  40. package/assets/css/components/tabs.component.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/mobile-core.min.css +1 -1
  44. package/assets/css/mobile-core.min.css.map +1 -1
  45. package/assets/css/mobile.min.css +1 -1
  46. package/assets/css/mobile.min.css.map +1 -1
  47. package/assets/css/style.min.css +1 -1
  48. package/assets/css/style.min.css.map +1 -1
  49. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  50. package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
  51. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  52. package/assets/js/components/address-lookup/address-lookup.component.js +336 -102
  53. package/assets/js/components/address-lookup/address-lookup.component.min.js +32 -14
  54. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  55. package/assets/js/components/advanced-select/advanced-select.component.min.js +3 -3
  56. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  57. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  58. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  59. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  60. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  61. package/assets/js/components/calendar/calendar.component.min.js +5 -5
  62. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  63. package/assets/js/components/card/card.component.min.js +2 -2
  64. package/assets/js/components/carousel/carousel.component.min.js +2 -2
  65. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  66. package/assets/js/components/content/content.component.min.js +2 -2
  67. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  68. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  69. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  70. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  71. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  72. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  73. package/assets/js/components/header/header.component.min.js +1 -1
  74. package/assets/js/components/inline-edit/inline-edit.component.min.js +3 -3
  75. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  76. package/assets/js/components/menu/menu.component.min.js +1 -1
  77. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  78. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  79. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  80. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  81. package/assets/js/components/nav/nav.component.min.js +5 -5
  82. package/assets/js/components/notification/notification.component.min.js +1 -1
  83. package/assets/js/components/pagination/pagination.component.min.js +3 -3
  84. package/assets/js/components/password-indicator/password-indicator.component.min.js +1 -1
  85. package/assets/js/components/rank/rank.component.min.js +1 -1
  86. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  87. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  88. package/assets/js/components/search/search.component.js +65 -25
  89. package/assets/js/components/search/search.component.min.js +5 -5
  90. package/assets/js/components/search/search.component.min.js.map +1 -1
  91. package/assets/js/components/slider/slider.component.min.js +3 -3
  92. package/assets/js/components/split-button/split-button.component.min.js +3 -3
  93. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +1715 -0
  94. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +172 -0
  95. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -0
  96. package/assets/js/components/table/table.component.min.js +2 -2
  97. package/assets/js/components/table/table.component.min.js.map +1 -1
  98. package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
  99. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  100. package/assets/js/components/table-basic/table-basic.component.min.js +4 -4
  101. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  102. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +5 -5
  103. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  104. package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
  105. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  106. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  107. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  108. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  109. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  110. package/assets/js/modules/advanced-select.js +35 -26
  111. package/assets/js/modules/helpers.js +19 -3
  112. package/assets/js/scripts.bundle.js +3 -3
  113. package/assets/js/scripts.bundle.js.map +1 -1
  114. package/assets/js/scripts.bundle.min.js +2 -2
  115. package/assets/js/scripts.bundle.min.js.map +1 -1
  116. package/assets/js/tests/helpers.spec.js +26 -0
  117. package/assets/sass/_components.scss +6 -0
  118. package/assets/sass/components/address-lookup.component.scss +91 -5
  119. package/assets/sass/components/address-lookup.preload.scss +81 -0
  120. package/assets/sass/components/table-basic.global.scss +175 -0
  121. package/assets/sass/components/table.global.scss +0 -163
  122. package/assets/sass/elements/buttons--action.scss +26 -0
  123. package/assets/sass/elements/buttons--global.scss +1 -4
  124. package/assets/sass/elements/forms.scss +182 -37
  125. package/assets/ts/components/address-lookup/address-lookup.component.ts +432 -109
  126. package/assets/ts/components/advanced-select/advanced-select.component.ts +1 -0
  127. package/assets/ts/components/search/search.component.ts +86 -27
  128. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1757 -0
  129. package/assets/ts/modules/advanced-select.ts +55 -27
  130. package/assets/ts/modules/helpers.ts +25 -3
  131. package/assets/ts/tests/helpers.spec.ts +38 -0
  132. package/dist/components.es.js +144 -144
  133. package/dist/components.umd.js +376 -191
  134. package/package.json +2 -1
  135. package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -0
  136. /package/assets/js/{tests → ui-tests}/card.spec.js +0 -0
  137. /package/assets/js/{tests → ui-tests}/carousel.spec.js +0 -0
  138. /package/assets/js/{tests → ui-tests}/chart.spec.js +0 -0
  139. /package/assets/js/{tests → ui-tests}/fileupload.spec.js +0 -0
  140. /package/assets/js/{tests → ui-tests}/filterlist.spec.js +0 -0
  141. /package/assets/js/{tests → ui-tests}/multistep.spec.js +0 -0
  142. /package/assets/js/{tests → ui-tests}/slider.spec.js +0 -0
  143. /package/assets/js/{tests → ui-tests}/table.spec.js +0 -0
  144. /package/assets/ts/{tests → ui-tests}/card.spec.ts +0 -0
  145. /package/assets/ts/{tests → ui-tests}/carousel.spec.ts +0 -0
  146. /package/assets/ts/{tests → ui-tests}/chart.spec.ts +0 -0
  147. /package/assets/ts/{tests → ui-tests}/data-layer.spec.js +0 -0
  148. /package/assets/ts/{tests → ui-tests}/fileupload.spec.ts +0 -0
  149. /package/assets/ts/{tests → ui-tests}/filterlist.spec.ts +0 -0
  150. /package/assets/ts/{tests → ui-tests}/multistep.spec.ts +0 -0
  151. /package/assets/ts/{tests → ui-tests}/slider.spec.ts +0 -0
  152. /package/assets/ts/{tests → ui-tests}/table.spec.ts +0 -0
@@ -360,3 +360,178 @@ table {
360
360
  }
361
361
  }
362
362
  // #endregion
363
+
364
+ // #region Tables are only stacked on mobile
365
+ :is(#{$selector}):not(.table--fullwidth).table--cta {
366
+ @container (width < 23.4375em) {
367
+ tbody tr td:last-child {
368
+ display: block !important;
369
+ }
370
+ }
371
+ }
372
+
373
+
374
+ // #endregion
375
+
376
+ // #region As part of the iam-table component
377
+
378
+ :is(#{$selector}) iam-actionbar {
379
+ margin: 0 1.5rem 1rem 1.5rem;
380
+
381
+ @container (width < 23.4375em) {
382
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
383
+ border-radius: 0.5rem;
384
+ }
385
+ }
386
+ :is(#{$selector}).table--fullwidth:has(iam-actionbar) {
387
+ padding-top: 0;
388
+ }
389
+ :is(#{$selector}).table--fullwidth iam-actionbar {
390
+ margin: -2rem -2rem 2rem -2rem;
391
+ box-shadow: none;
392
+ border-radius: 0;
393
+ }
394
+
395
+ :is(#{$selector}).table--fullwidth iam-actionbar:has(+ table input:checked) {
396
+ margin: -2rem -2rem 2rem -2rem;
397
+ box-shadow: none;
398
+ border-radius: 0;
399
+
400
+ @include light-mode($darkMode) {
401
+ background-color: #e6eaec;
402
+ }
403
+ }
404
+
405
+ // Actionbar
406
+ .actionbar__sticky-wrapper {
407
+ container-type: inline-size;
408
+
409
+ @include media-breakpoint-up(sm, $mobileOnly) {
410
+ padding: 0 !important;
411
+ }
412
+ }
413
+
414
+ @container (width < 23.4375em) {
415
+ :is(#{$selector}):is(.actionbar__sticky-wrapper) > .actionbar__sticky {
416
+ display: block;
417
+ position: sticky;
418
+ left: 0;
419
+ top: calc(var(--sticky-padding) + #{rem(16)});
420
+ z-index: var(--index-menu);
421
+ pointer-events: none;
422
+
423
+ &:after {
424
+ content: '';
425
+ display: block;
426
+ width: 100%;
427
+ height: calc(100vh - #{rem(68 + 24 + 16)});
428
+ pointer-events: none;
429
+ }
430
+
431
+ & + * {
432
+ margin-top: calc(-100vh - -6.75rem);
433
+ }
434
+ }
435
+
436
+ :is(#{$selector}):is(.actionbar__sticky) > iam-actionbar {
437
+ pointer-events: all !important;
438
+ display: block;
439
+ border: none;
440
+ background: var(--colour-canvas-2);
441
+ //box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
442
+ border-radius: 0.5rem;
443
+ margin-bottom: rem(24);
444
+ }
445
+ }
446
+
447
+ @include container-up(sm) {
448
+ :is(#{$selector}).table--fullwidth iam-actionbar,
449
+ :is(#{$selector}) iam-actionbar {
450
+ margin-left: -2rem;
451
+ margin-right: -2rem;
452
+ margin-top: -2rem;
453
+ margin-bottom: 2rem;
454
+ }
455
+ }
456
+ // #endregion
457
+
458
+ // #region Table with actionbar
459
+
460
+ :is(#{$selector}) {
461
+ input:is([type='radio'], [type='checkbox']) + label:not(.radio--tick) {
462
+ padding-left: 0 !important;
463
+ margin: 0 !important;
464
+
465
+ &:before,
466
+ &:after {
467
+ top: 0.75rem !important;
468
+ left: 0.25rem !important;
469
+ --border-radius: 0.25rem;
470
+ }
471
+ }
472
+
473
+ &:has([type='checkbox']:checked) tr:has([type='checkbox']):not(:has(.tag)) {
474
+ [type='checkbox'] {
475
+ width: 100vw;
476
+ height: 100%;
477
+ max-height: var(--row-height);
478
+ max-width: 100vw;
479
+ cursor: pointer;
480
+ pointer-events: all;
481
+ top: auto;
482
+ margin: 0;
483
+ margin-top: 0rem;
484
+ }
485
+ }
486
+
487
+ @container (width > 23.4375em) {
488
+ tr:has([type='checkbox']:checked) {
489
+ height: calc(4.625rem - 2px);
490
+ }
491
+ }
492
+
493
+ tr:has([type='checkbox']:hover, [type='checkbox']:focus):not(:has(.tag)) {
494
+ --row-bg: #eeeeee;
495
+ }
496
+ tr:has([type='checkbox']:hover:checked, [type='checkbox']:focus:checked, [type='checkbox']:checked):not(:has(.tag)) {
497
+ --row-bg: #e0e0e0;
498
+ }
499
+ }
500
+
501
+ @container (width < 23.4375em) {
502
+ :is(#{$selector}) {
503
+ iam-actionbar {
504
+ @include light-mode($darkMode) {
505
+ background-color: #e6eaec;
506
+ }
507
+ }
508
+ .actionbar__sticky + * {
509
+ margin-top: 0 !important;
510
+ }
511
+ }
512
+
513
+ :is(#{$selector}) {
514
+ input:is([type='radio'], [type='checkbox']) + label:not(.radio--tick) {
515
+ padding-left: 0 !important;
516
+ margin: 0 !important;
517
+ min-height: 2rem;
518
+
519
+ &:before,
520
+ &:after {
521
+ top: 0.25rem !important;
522
+ left: 0 !important;
523
+ }
524
+ }
525
+
526
+ &:has([type='checkbox']:checked) tr:has([type='checkbox']) {
527
+ [type='checkbox'] {
528
+ width: 100%;
529
+ height: 100%;
530
+ max-height: 100%;
531
+ max-width: 100%;
532
+ margin-top: -2rem;
533
+ }
534
+ }
535
+ }
536
+ }
537
+ // #endregion
@@ -23,169 +23,6 @@ $selector: 'iam-table, iam-table-basic, iam-table-no-submit, iam-table-submit, i
23
23
 
24
24
  // #endregion
25
25
 
26
- // #region As part of the iam-table component
27
-
28
- :is(#{$selector}) iam-actionbar {
29
- margin: 0 1.5rem 1rem 1.5rem;
30
-
31
- @container (width < 23.4375em) {
32
- box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
33
- border-radius: 0.5rem;
34
- }
35
- }
36
- :is(#{$selector}).table--fullwidth:has(iam-actionbar) {
37
- padding-top: 0;
38
- }
39
- :is(#{$selector}).table--fullwidth iam-actionbar {
40
- margin: -2rem -2rem 2rem -2rem;
41
- box-shadow: none;
42
- border-radius: 0;
43
- }
44
-
45
- :is(#{$selector}).table--fullwidth iam-actionbar:has(+ table input:checked) {
46
- margin: -2rem -2rem 2rem -2rem;
47
- box-shadow: none;
48
- border-radius: 0;
49
-
50
- @include light-mode($darkMode) {
51
- background-color: #e6eaec;
52
- }
53
- }
54
-
55
- // Actionbar
56
- .actionbar__sticky-wrapper {
57
- container-type: inline-size;
58
-
59
- @include media-breakpoint-up(sm, $mobileOnly) {
60
- padding: 0 !important;
61
- }
62
- }
63
-
64
- @container (width < 23.4375em) {
65
- :is(#{$selector}):is(.actionbar__sticky-wrapper) > .actionbar__sticky {
66
- display: block;
67
- position: sticky;
68
- left: 0;
69
- top: calc(var(--sticky-padding) + #{rem(16)});
70
- z-index: var(--index-menu);
71
- pointer-events: none;
72
-
73
- &:after {
74
- content: '';
75
- display: block;
76
- width: 100%;
77
- height: calc(100vh - #{rem(68 + 24 + 16)});
78
- pointer-events: none;
79
- }
80
-
81
- & + * {
82
- margin-top: calc(-100vh - -6.75rem);
83
- }
84
- }
85
-
86
- :is(#{$selector}):is(.actionbar__sticky) > iam-actionbar {
87
- pointer-events: all !important;
88
- display: block;
89
- border: none;
90
- background: var(--colour-canvas-2);
91
- //box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
92
- border-radius: 0.5rem;
93
- margin-bottom: rem(24);
94
- }
95
- }
96
-
97
- @include container-up(sm) {
98
- :is(#{$selector}).table--fullwidth iam-actionbar,
99
- :is(#{$selector}) iam-actionbar {
100
- margin-left: -2rem;
101
- margin-right: -2rem;
102
- margin-top: -2rem;
103
- margin-bottom: 2rem;
104
- }
105
- }
106
- // #endregion
107
-
108
- // #region Table with actionbar
109
-
110
- :is(#{$selector}) {
111
- input:is([type='radio'], [type='checkbox']) + label:not(.radio--tick) {
112
- padding-left: 0 !important;
113
- margin: 0 !important;
114
-
115
- &:before,
116
- &:after {
117
- top: 0.75rem !important;
118
- left: 0.25rem !important;
119
- --border-radius: 0.25rem;
120
- }
121
- }
122
-
123
- &:has([type='checkbox']:checked) tr:has([type='checkbox']):not(:has(.tag)) {
124
- [type='checkbox'] {
125
- width: 100vw;
126
- height: 100%;
127
- max-height: var(--row-height);
128
- max-width: 100vw;
129
- cursor: pointer;
130
- pointer-events: all;
131
- top: auto;
132
- margin: 0;
133
- margin-top: 0rem;
134
- }
135
- }
136
-
137
- @container (width > 23.4375em) {
138
- tr:has([type='checkbox']:checked) {
139
- height: calc(4.625rem - 2px);
140
- }
141
- }
142
-
143
- tr:has([type='checkbox']:hover, [type='checkbox']:focus):not(:has(.tag)) {
144
- --row-bg: #eeeeee;
145
- }
146
- tr:has([type='checkbox']:hover:checked, [type='checkbox']:focus:checked, [type='checkbox']:checked):not(:has(.tag)) {
147
- --row-bg: #e0e0e0;
148
- }
149
- }
150
-
151
- @container (width < 23.4375em) {
152
- :is(#{$selector}) {
153
- iam-actionbar {
154
- @include light-mode($darkMode) {
155
- background-color: #e6eaec;
156
- }
157
- }
158
- .actionbar__sticky + * {
159
- margin-top: 0 !important;
160
- }
161
- }
162
-
163
- :is(#{$selector}) {
164
- input:is([type='radio'], [type='checkbox']) + label:not(.radio--tick) {
165
- padding-left: 0 !important;
166
- margin: 0 !important;
167
- min-height: 2rem;
168
-
169
- &:before,
170
- &:after {
171
- top: 0.25rem !important;
172
- left: 0 !important;
173
- }
174
- }
175
-
176
- &:has([type='checkbox']:checked) tr:has([type='checkbox']) {
177
- [type='checkbox'] {
178
- width: 100%;
179
- height: 100%;
180
- max-height: 100%;
181
- max-width: 100%;
182
- margin-top: -2rem;
183
- }
184
- }
185
- }
186
- }
187
- // #endregion
188
-
189
26
  // #region Expandable tables
190
27
  :is(#{$selector})[data-expandable] {
191
28
  td:has([data-expand-button]),
@@ -52,4 +52,30 @@ $darkMode: 'true' !default;
52
52
  }
53
53
  }
54
54
  // #endregion
55
+
56
+ .btn-action:not(.btn-compact).fa-compact-only:before {
57
+
58
+ display: none!important;
59
+ }
60
+
61
+ // #region Select as button
62
+ .btn:has(select) {
63
+ padding-block: 0;
64
+ padding-right: 2rem;
65
+
66
+
67
+ select {
68
+ //all: unset !important;
69
+ margin: 0rem 0rem !important;
70
+ padding-right: 2rem!important;
71
+ margin-right: -2rem !important;
72
+ //field-sizing: content
73
+ }
74
+
75
+ &:after {
76
+ top: 0.2rem;
77
+ right: rem(8);
78
+ }
79
+ }
80
+ // #endregion
55
81
  }
@@ -241,10 +241,6 @@ $darkMode: 'true' !default;
241
241
  position: relative;
242
242
  padding-right: rem(56);
243
243
 
244
- &:not(.mw-100) {
245
- max-width: rem(112 + 40 + 56);
246
- }
247
-
248
244
  select {
249
245
  all: unset !important;
250
246
  margin: calc(rem(-12)) calc(rem(-40)) !important;
@@ -262,6 +258,7 @@ $darkMode: 'true' !default;
262
258
  font-weight: 500;
263
259
  font-size: var(--btn-font-size) !important;
264
260
  line-height: var(--btn-line-height) !important;
261
+ field-sizing: content!important;
265
262
 
266
263
  option {
267
264
  padding: 0;
@@ -218,29 +218,7 @@ $optionalText: 'true' !default;
218
218
  }
219
219
  // #endregion
220
220
 
221
- // #region Optional text
222
- :is(label:not(.tag), .label) {
223
- @if $optionalText == 'true' {
224
- &:has(
225
- + input:not(:disabled):not([readonly]):not(:required):not([type='radio']):not([type='checkbox']):not(
226
- [type='file']
227
- )
228
- ):after {
229
- content: ' (Optional)';
230
- }
231
- }
232
-
233
- &:has(
234
- input:not(:disabled):not([readonly]):not(:required):not([type='radio']):not([type='checkbox']):not(
235
- [type='file']
236
- )
237
- )
238
- .optional-text:before {
239
- content: ' (Optional)';
240
- }
241
- }
242
221
 
243
- // #endregion
244
222
 
245
223
  // #region input field
246
224
  :is(
@@ -462,8 +440,12 @@ $optionalText: 'true' !default;
462
440
  // #region prefix
463
441
  :is(.prefix, .suffix) {
464
442
  display: none;
443
+ }
444
+
445
+ :not(button):is(.prefix, .suffix) {
465
446
  pointer-events: none;
466
447
  }
448
+
467
449
  @supports selector(:has(*)) {
468
450
  :is(.prefix, .suffix) {
469
451
  display: inline-block;
@@ -675,7 +657,9 @@ $optionalText: 'true' !default;
675
657
 
676
658
  .was-validated iam-address-lookup:has([required]:invalid) {
677
659
  --error-border: var(--colour-danger);
660
+ --error-bg: #{escape-svg($icon-error)};
678
661
  --error-display: block;
662
+ --error-hide: none;
679
663
  }
680
664
 
681
665
  // Password checker
@@ -1320,7 +1304,7 @@ $optionalText: 'true' !default;
1320
1304
  }
1321
1305
 
1322
1306
  // #region datalist
1323
- :is(iam-advanced-select, iam-search) {
1307
+ :is(iam-advanced-select, iam-search, .postcode-lookup) {
1324
1308
  position: relative;
1325
1309
  display: block;
1326
1310
 
@@ -1362,9 +1346,8 @@ $optionalText: 'true' !default;
1362
1346
  }
1363
1347
  }
1364
1348
 
1365
- .was-validated
1366
- :is(iam-advanced-select, iam-search)
1367
- label:has(:is(input:not([type='radio']):not([type='checkbox']), select)) {
1349
+ .was-validated :is(iam-advanced-select, iam-search, postcode-lookup) label:has(:is(input:not([type='radio']):not([type='checkbox']), select)),
1350
+ :is(iam-advanced-select, iam-search, postcode-lookup).was-validated label:has(:is(input:not([type='radio']):not([type='checkbox']), select)) {
1368
1351
  margin-bottom: 2.5rem;
1369
1352
 
1370
1353
  input {
@@ -1376,29 +1359,38 @@ $optionalText: 'true' !default;
1376
1359
  }
1377
1360
  }
1378
1361
 
1379
- :is(iam-advanced-select, iam-search) datalist {
1362
+
1363
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup) datalist {
1364
+
1380
1365
  &:empty {
1381
1366
  display: none !important;
1382
1367
  }
1383
1368
 
1384
- z-index: 99;
1369
+ z-index: 100;
1385
1370
  top: 100%;
1386
1371
  position: absolute;
1387
1372
  background-color: white;
1388
1373
  border-top: none;
1389
- padding: 0.5rem;
1390
- max-height: 10rem;
1374
+
1375
+ &:not(:empty):has(option:not(.hide)){
1376
+
1377
+ padding: 0.5rem;
1378
+ }
1379
+
1380
+
1381
+ max-height: 25rem;
1391
1382
  overflow-y: auto;
1392
1383
  width: 100%;
1393
1384
  max-width: var(--input-max-width, 50rem);
1394
1385
  border: none !important;
1395
1386
  border-radius: 0.5rem;
1396
1387
  box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
1388
+ display: none;
1397
1389
 
1398
1390
  option {
1399
1391
  background-color: white;
1400
1392
  padding: 0.5rem;
1401
- color: blue !important;
1393
+
1402
1394
  cursor: pointer;
1403
1395
  background: unset !important;
1404
1396
  border: unset !important;
@@ -1409,10 +1401,17 @@ $optionalText: 'true' !default;
1409
1401
  line-height: rem(19) !important;
1410
1402
  margin: var(--menu-item-margin, 0 0 0.25rem 0) !important;
1411
1403
  padding-block: var(--menu-item-padding, 0.5rem) !important;
1412
- width: var(--menu-item-width, 100%) !important;
1413
- max-width: var(--menu-item-width, 100%) !important;
1404
+ width: 100% !important;
1405
+ max-width: 100% !important;
1414
1406
  text-align: var(--menu-item-text-align, left) !important;
1415
1407
 
1408
+ display: -webkit-box;
1409
+ -webkit-line-clamp: 2;
1410
+ -webkit-box-orient: vertical;
1411
+ white-space: normal;
1412
+ text-overflow: ellipsis;
1413
+ overflow: clip;
1414
+
1416
1415
  &:is(:hover, :focus) {
1417
1416
  background: var(--colour-light) !important;
1418
1417
  border-radius: 0.25rem !important;
@@ -1422,11 +1421,7 @@ $optionalText: 'true' !default;
1422
1421
  background: rgba(224, 224, 224, 1) !important;
1423
1422
  border-radius: 0.25rem !important;
1424
1423
  }
1425
- }
1426
- }
1427
1424
 
1428
- iam-advanced-select datalist {
1429
- option {
1430
1425
  &.active {
1431
1426
  border-left: 4px solid var(--colour-info) !important;
1432
1427
  border-radius: 0.25rem !important;
@@ -1435,4 +1430,154 @@ iam-advanced-select datalist {
1435
1430
  }
1436
1431
  }
1437
1432
 
1433
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active),:active) datalist {
1434
+
1435
+ display: block;
1436
+
1437
+ &:empty {
1438
+ display: block !important;
1439
+ }
1440
+ }
1441
+
1442
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper {
1443
+
1444
+ top: 100%;
1445
+ position: absolute;
1446
+ border-radius: 0.5rem;
1447
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
1448
+ width: var(--menu-item-width, 50rem) !important;
1449
+ max-width: var(--menu-item-width, 50rem) !important;
1450
+ z-index: 100;
1451
+ display: none;
1452
+ max-height: 25rem;
1453
+ overflow-y: auto;
1454
+
1455
+ > datalist {
1456
+ border: none!important;
1457
+ box-shadow: none!important;
1458
+ position: relative;
1459
+ display: block!important;
1460
+ border-radius: 0!important;
1461
+ max-height: 100%!important;
1462
+ }
1463
+
1464
+ &:focus {
1465
+ outline: none!important;
1466
+ }
1467
+ }
1468
+
1469
+ iam-address-lookup [slot="preloadedList"]{
1470
+ border: none!important;
1471
+ box-shadow: none!important;
1472
+ position: relative;
1473
+ display: block!important;
1474
+ border-radius: 0!important;
1475
+ max-height: 100%!important;
1476
+
1477
+ &.noresults {
1478
+ display: block !important;
1479
+ }
1480
+
1481
+ &.noresults:before {
1482
+ content: "No addresses found";
1483
+ background-color: white;
1484
+ padding: 1rem 0.5rem;
1485
+ color: var(--colour-primary) !important;
1486
+ font-weight: inherit !important;
1487
+ font-family: inherit !important;
1488
+ font-size: 1rem !important;
1489
+ line-height: 1.1875rem !important;
1490
+ padding-block: var(--menu-item-padding, 1rem) !important;
1491
+ display: block;
1492
+ }
1493
+ }
1494
+
1495
+
1496
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist:not(:empty)),
1497
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.loading),
1498
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.noresults),
1499
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper:hover {
1500
+
1501
+ display: block;
1502
+ }
1503
+
1504
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper:has(datalist.noresults){
1505
+ datalist {
1506
+
1507
+ display: block;
1508
+
1509
+ &:before {
1510
+ content: "No addresses found";
1511
+ background-color: white;
1512
+ padding: 0.5rem;
1513
+ color: var(--colour-primary) !important;
1514
+ font-weight: inherit !important;
1515
+ font-family: inherit !important;
1516
+ font-size: 1rem !important;
1517
+ line-height: rem(19) !important;
1518
+ padding-block: var(--menu-item-padding, 0.5rem) !important;
1519
+ display: block;
1520
+ }
1521
+ }
1522
+ }
1523
+
1524
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(option:active)) .datalist__wrapper:has(datalist.loading) {
1525
+
1526
+ datalist {
1527
+
1528
+ height: 5rem;
1529
+
1530
+ &:before {
1531
+ content: "\f021";
1532
+ font-family: "Font Awesome 6 Pro";
1533
+ font-size: 1.75rem;
1534
+ font-weight: 300;
1535
+ display: block;
1536
+ position: absolute;
1537
+ top: calc(50% - 1rem);
1538
+ left: calc(50% - 1rem);
1539
+ /*transform: translate(-50%,-50%);*/
1540
+
1541
+ animation-name: spin;
1542
+ animation-duration: 4000ms;
1543
+ animation-iteration-count: infinite;
1544
+ animation-timing-function: linear;
1545
+ }
1546
+ }
1547
+ }
1548
+
1549
+ @-ms-keyframes spin {
1550
+ from { -ms-transform: rotate(0deg); }
1551
+ to { -ms-transform: rotate(360deg); }
1552
+ }
1553
+ @-moz-keyframes spin {
1554
+ from { -moz-transform: rotate(0deg); }
1555
+ to { -moz-transform: rotate(360deg); }
1556
+ }
1557
+ @-webkit-keyframes spin {
1558
+ from { -webkit-transform: rotate(0deg); }
1559
+ to { -webkit-transform: rotate(360deg); }
1560
+ }
1561
+ @keyframes spin {
1562
+ from {
1563
+ transform:rotate(0deg);
1564
+ }
1565
+ to {
1566
+ transform:rotate(360deg);
1567
+ }
1568
+ }
1569
+
1570
+ :is(iam-advanced-select, iam-search, .postcode-lookup) {
1571
+
1572
+ [name="beforeList"] {
1573
+ display: none;
1574
+ }
1575
+
1576
+ [name="beforeList"]:has(+ .show-welsh-banner) {
1577
+ display: block;
1578
+ }
1579
+ .datalist__wrapper.show-welsh-banner [name="beforeList"] {
1580
+ display: block;
1581
+ }
1582
+ }
1438
1583
  // #endregion