@iamproperty/components 5.0.0 → 5.1.0-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/assets/css/components/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/component.native.css +1 -0
  14. package/assets/css/components/component.native.css.map +1 -0
  15. package/assets/css/components/component.reset.css +1 -1
  16. package/assets/css/components/component.reset.css.map +1 -1
  17. package/assets/css/components/header.css +1 -1
  18. package/assets/css/components/header.css.map +1 -1
  19. package/assets/css/components/{nav-global.css → nav.global.css} +1 -1
  20. package/assets/css/components/{nav-global.css.map → nav.global.css.map} +1 -1
  21. package/assets/css/components/notification.global.css +1 -0
  22. package/assets/css/components/notification.global.css.map +1 -0
  23. package/assets/css/components/slider.css +1 -0
  24. package/assets/css/components/slider.css.map +1 -0
  25. package/assets/css/components/table.css +1 -1
  26. package/assets/css/components/table.css.map +1 -1
  27. package/assets/css/components/{table.extras.css → table.global.css} +1 -1
  28. package/assets/css/components/{table.extras.css.map → table.global.css.map} +1 -1
  29. package/assets/css/components/tabs.css +1 -1
  30. package/assets/css/components/tabs.css.map +1 -1
  31. package/assets/css/core.min.css +1 -1
  32. package/assets/css/core.min.css.map +1 -1
  33. package/assets/css/style.min.css +1 -1
  34. package/assets/css/style.min.css.map +1 -1
  35. package/assets/img/illustrations/add-new-property.png +0 -0
  36. package/assets/img/illustrations/auctioneer.png +0 -0
  37. package/assets/img/illustrations/branch.png +0 -0
  38. package/assets/img/illustrations/company-level.png +0 -0
  39. package/assets/img/illustrations/contractors.png +0 -0
  40. package/assets/img/illustrations/find-existing-property.png +0 -0
  41. package/assets/img/illustrations/green/add-new-property.png +0 -0
  42. package/assets/img/illustrations/green/auctioneer.png +0 -0
  43. package/assets/img/illustrations/green/branch.png +0 -0
  44. package/assets/img/illustrations/green/buyer.png +0 -0
  45. package/assets/img/illustrations/green/company-level.png +0 -0
  46. package/assets/img/illustrations/green/contractors.png +0 -0
  47. package/assets/img/illustrations/green/estate-agents.png +0 -0
  48. package/assets/img/illustrations/green/find-existing-property.png +0 -0
  49. package/assets/img/illustrations/green/landlords.png +0 -0
  50. package/assets/img/illustrations/green/seller.png +0 -0
  51. package/assets/img/illustrations/green/whats-new-2.png +0 -0
  52. package/assets/img/illustrations/green/whats-new.png +0 -0
  53. package/assets/img/illustrations/information-works.png +0 -0
  54. package/assets/img/illustrations/landlords.png +0 -0
  55. package/assets/img/illustrations/whats-new-2.png +0 -0
  56. package/assets/img/illustrations/whats-new.png +0 -0
  57. package/assets/js/components/accordion/accordion.component.js +4 -0
  58. package/assets/js/components/accordion/accordion.component.min.js +6 -5
  59. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  60. package/assets/js/components/actionbar/actionbar.component.js +4 -0
  61. package/assets/js/components/actionbar/actionbar.component.min.js +5 -4
  62. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  63. package/assets/js/components/address-lookup/address-lookup.component.js +1 -1
  64. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  65. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  66. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  67. package/assets/js/components/card/card.component.js +4 -0
  68. package/assets/js/components/card/card.component.min.js +4 -3
  69. package/assets/js/components/card/card.component.min.js.map +1 -1
  70. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  71. package/assets/js/components/fileupload/fileupload.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 +2 -2
  74. package/assets/js/components/nav/nav.component.js +4 -0
  75. package/assets/js/components/nav/nav.component.min.js +4 -3
  76. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  77. package/assets/js/components/notification/notification.component.js +4 -0
  78. package/assets/js/components/notification/notification.component.min.js +4 -3
  79. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  80. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  81. package/assets/js/components/slider/slider.component.js +143 -0
  82. package/assets/js/components/table/table.component.js +1 -1
  83. package/assets/js/components/table/table.component.min.js +3 -3
  84. package/assets/js/components/table/table.component.min.js.map +1 -1
  85. package/assets/js/components/tabs/tabs.component.js +2 -0
  86. package/assets/js/components/tabs/tabs.component.min.js +5 -3
  87. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  88. package/assets/js/dynamic.min.js +5 -5
  89. package/assets/js/dynamic.min.js.map +1 -1
  90. package/assets/js/modules/dynamicEvents.js +18 -11
  91. package/assets/js/modules/helpers.js +1 -1
  92. package/assets/js/modules/inputs.js +44 -3
  93. package/assets/js/modules/tabs.js +29 -31
  94. package/assets/js/scripts.bundle.js +24 -23
  95. package/assets/js/scripts.bundle.js.map +1 -1
  96. package/assets/js/scripts.bundle.min.js +2 -2
  97. package/assets/js/scripts.bundle.min.js.map +1 -1
  98. package/assets/js/tests/slider.spec.js +20 -0
  99. package/assets/sass/_components.scss +0 -6
  100. package/assets/sass/_corefiles.scss +8 -88
  101. package/assets/sass/_elements.scss +0 -1
  102. package/assets/sass/components/accordion.global.scss +135 -0
  103. package/assets/sass/components/accordion.scss +6 -192
  104. package/assets/sass/components/{actionbar-global.scss → actionbar.global.scss} +3 -1
  105. package/assets/sass/components/actionbar.scss +2 -2
  106. package/assets/sass/components/{card-global.scss → card.global.scss} +2 -23
  107. package/assets/sass/components/card.scss +21 -0
  108. package/assets/sass/components/component.native.scss +37 -0
  109. package/assets/sass/components/component.reset.scss +1 -3
  110. package/assets/sass/components/header.scss +6 -1
  111. package/assets/sass/components/notification.global.scss +41 -0
  112. package/assets/sass/components/slider.scss +121 -0
  113. package/assets/sass/components/{table.extras.scss → table.global.scss} +5 -1
  114. package/assets/sass/components/table.scss +1 -1
  115. package/assets/sass/components/tabs.scss +2 -5
  116. package/assets/sass/core.scss +1 -2
  117. package/assets/sass/elements/container.scss +17 -0
  118. package/assets/sass/elements/forms.scss +138 -10
  119. package/assets/sass/elements/table.element.scss +1 -2
  120. package/assets/sass/error.scss +1 -1
  121. package/assets/sass/foundations/reboot.scss +48 -0
  122. package/assets/sass/main.scss +0 -1
  123. package/assets/sass/templates/form.scss +1 -0
  124. package/assets/ts/components/accordion/accordion.component.ts +5 -0
  125. package/assets/ts/components/actionbar/actionbar.component.ts +5 -0
  126. package/assets/ts/components/address-lookup/address-lookup.component.ts +1 -1
  127. package/assets/ts/components/card/card.component.ts +5 -0
  128. package/assets/ts/components/nav/nav.component.ts +5 -0
  129. package/assets/ts/components/notification/notification.component.ts +4 -0
  130. package/assets/ts/components/slider/README.md +26 -0
  131. package/assets/ts/components/slider/slider.component.ts +189 -0
  132. package/assets/ts/components/table/table.component.ts +1 -1
  133. package/assets/ts/components/tabs/tabs.component.ts +2 -0
  134. package/assets/ts/modules/dynamicEvents.ts +31 -22
  135. package/assets/ts/modules/helpers.ts +1 -1
  136. package/assets/ts/modules/inputs.ts +61 -4
  137. package/assets/ts/modules/tabs.ts +38 -41
  138. package/assets/ts/tests/slider.spec.ts +33 -0
  139. package/dist/components.es.js +1002 -1446
  140. package/dist/components.umd.js +292 -131
  141. package/dist/style.css +1 -1
  142. package/package.json +5 -4
  143. package/src/components/Accordion/Accordion.vue +12 -5
  144. package/src/components/Actionbar/Actionbar.vue +12 -5
  145. package/src/components/Card/Card.vue +1 -1
  146. package/src/components/Header/Header.vue +9 -3
  147. package/src/components/Nav/Nav.vue +1 -1
  148. package/src/components/Slider/README.md +11 -0
  149. package/src/components/Slider/Slider.vue +25 -0
  150. package/src/components/Tabs/Tabs.vue +14 -5
  151. package/assets/css/components/actionbar-global.css +0 -1
  152. package/assets/css/components/actionbar-global.css.map +0 -1
  153. package/assets/css/components/card-global.css +0 -1
  154. package/assets/css/components/card-global.css.map +0 -1
  155. /package/assets/sass/components/{nav-global.scss → nav.global.scss} +0 -0
@@ -0,0 +1,121 @@
1
+ @use "../_func" as *;
2
+
3
+ .row {
4
+ align-items: center;
5
+ }
6
+
7
+ :is(.min, .max) {
8
+
9
+ max-width: fit-content;
10
+ line-height: 2rem;
11
+ }
12
+
13
+ .sliders {
14
+ position: relative;
15
+ padding: 0;
16
+ }
17
+
18
+ :host {
19
+ max-width: $input-max-width;
20
+ display: block;
21
+ }
22
+
23
+ // Track
24
+ input[type="range"]::-webkit-slider-runnable-track {
25
+
26
+ background: linear-gradient(to right, var(--track-colour), var(--track-colour) var(--start-percent, 0%), var(--thumb-colour) var(--start-percent, 0%), var(--thumb-colour) var(--percent, 0%), var(--track-colour) var(--percent, 0%));
27
+ }
28
+
29
+ input[type="range"]::-moz-range-track {
30
+
31
+ background: linear-gradient(to right, var(--track-colour), var(--track-colour) var(--start-percent, 0%), var(--thumb-colour) var(--start-percent, 0%), var(--thumb-colour) var(--percent, 0%), var(--track-colour) var(--percent, 0%));
32
+ }
33
+
34
+
35
+ // Two input fields
36
+ input[type="range"] + input[type="range"] {
37
+ position: absolute;
38
+ top: 0;
39
+ left: 50%;
40
+ width: 50%;
41
+ }
42
+
43
+ input[type="range"] + input[type="range"]::-webkit-slider-runnable-track {
44
+
45
+ background: transparent;
46
+ pointer-events: none;
47
+ width: 200%;
48
+ margin-left: -100%;
49
+ }
50
+
51
+ @supports (-moz-appearance:none) {
52
+ input[type="range"] + input[type="range"] {
53
+ left: 0;
54
+ width: 100%;
55
+
56
+
57
+ pointer-events: none;
58
+ }
59
+
60
+ }
61
+
62
+ input[type="range"] + input[type="range"]::-moz-range-track {
63
+ background: transparent;
64
+ pointer-events: none;
65
+ }
66
+
67
+
68
+ .input__wrapper {
69
+ display: flex;
70
+
71
+ justify-content: flex-end;
72
+ --max-width: #{rem(100)};
73
+ --padding-top: 0.75rem;
74
+
75
+
76
+ > span {
77
+ display: none;
78
+ }
79
+
80
+ &[data-elements="2"]{
81
+
82
+ justify-content: space-between;
83
+ --max-width: calc(50% - #{rem(48)});
84
+ --padding-top: 2rem;
85
+ position: relative;
86
+
87
+ &:before {
88
+ content: "";
89
+ position: absolute;
90
+ width: rem(64);
91
+ height: 2px;
92
+ top: calc(50% - 1px);
93
+ left: calc(50% - #{rem(32)});
94
+ background-color: var(--colour-border);
95
+ }
96
+
97
+ span {
98
+ display: block;
99
+ position: absolute;
100
+ top: 0.5rem;
101
+ left: 1rem;
102
+ color: #9D9D9D;
103
+ font-size: 1rem;
104
+ }
105
+
106
+ span + span {
107
+ left: calc(50% + #{rem(64)});
108
+ }
109
+
110
+ }
111
+ }
112
+
113
+ ::slotted(input){
114
+ margin-top: 0!important;
115
+ padding-top: var(--padding-top)!important;
116
+ max-width: var(--max-width)!important;
117
+ -webkit-appearance: none!important;
118
+ appearance: none!important;
119
+ min-height: auto!important;
120
+ max-height: none!important;
121
+ }
@@ -513,6 +513,10 @@ iam-table.table--fullwidth:not([data-expandable]) {
513
513
  }
514
514
  }
515
515
 
516
+ tr:not(:has(p)) [data-expand-button] {
517
+ display: none;
518
+ }
519
+
516
520
  tr:not([data-view="full"]) td p {
517
521
  display: -webkit-box;
518
522
  -webkit-box-orient: vertical;
@@ -566,7 +570,7 @@ iam-table.table--fullwidth:not([data-expandable]) {
566
570
  left: auto;
567
571
  top: auto;
568
572
  z-index: 3;
569
- padding: 0;
573
+ padding: rem(4) 0 0 0;
570
574
  min-width: rem(48 + 24);
571
575
  height: calc(var(--row-height) - 2px);
572
576
  text-align: left;
@@ -9,7 +9,7 @@
9
9
  background: white;
10
10
  padding: var(--wrapper-padding);
11
11
  box-shadow: 0px 6px 12px rgba(0,0,0,0.11);
12
- border-radius: rem(8);
12
+ border-radius: rem(10);
13
13
  margin-bottom: rem(32);
14
14
  overflow: hidden;
15
15
 
@@ -107,15 +107,12 @@
107
107
  }
108
108
 
109
109
  &:not(.disabled) {
110
- &[aria-pressed="true"]:after,
111
- &:active:after,
112
- &.active:after {
110
+ &:is([aria-pressed="true"],:active,.current):after {
113
111
  transform: translate(-50%, 0) scale(1, 1);
114
112
  }
115
113
  }
116
114
 
117
- &[aria-pressed="true"],
118
- &.active {
115
+ &:is([aria-pressed="true"],.current) {
119
116
  pointer-events: none;
120
117
  outline: var(--contrast-outline-width, 0px) solid var(--colour-primary-theme)!important;
121
118
  }
@@ -1,6 +1,5 @@
1
1
  @charset "UTF-8";
2
2
 
3
3
  @use "_fonts";
4
- @use "_corefiles";
5
- @use '../../assets/sass/components/nav-global.scss';
4
+ @use "_corefiles.scss";
6
5
  @use "_print";
@@ -57,6 +57,23 @@
57
57
  }
58
58
  }
59
59
  }
60
+
61
+
62
+ // replicate container padding-bottom
63
+ main > .row {
64
+
65
+ padding-bottom: #{rem(16)};
66
+
67
+ &[class*="bg-"] {
68
+ padding-top: #{rem(48)};
69
+ padding-bottom: #{rem(32)};
70
+ }
71
+
72
+ &[class*="bg-"] + :is(.row, .container):not([class*="bg-"]) {
73
+
74
+ padding-top: #{rem(32)};
75
+ }
76
+ }
60
77
  // #endregion
61
78
 
62
79
  // #region Circles
@@ -20,7 +20,7 @@ $icon-tick: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' view
20
20
  // #endregion
21
21
 
22
22
  // #region input field
23
- :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,output,select:not(.select--minimal)) {
23
+ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),textarea,output,select:not(.select--minimal)) {
24
24
  display: block;
25
25
  width: 100%;
26
26
  display: block;
@@ -61,7 +61,7 @@ $icon-tick: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' view
61
61
  }
62
62
  }
63
63
 
64
- :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"])){
64
+ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"])){
65
65
 
66
66
  max-width: $input-max-width;
67
67
  }
@@ -102,7 +102,7 @@ div:has(> label:first-child):has(> input) {
102
102
  margin-bottom: rem(24);
103
103
 
104
104
 
105
- input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), output, .prefix, .suffix {
105
+ input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]), output, .prefix, .suffix {
106
106
  margin-bottom: 0!important;
107
107
  }
108
108
 
@@ -111,12 +111,12 @@ div:has(> label:first-child):has(> input) {
111
111
  align-items: center;
112
112
 
113
113
 
114
- > *:not(input:not([type="checkbox"]):not([type="radio"]):not([type="file"])):not(output):not(.prefix):not(.suffix) {
114
+ > *:not(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"])):not(output):not(.prefix):not(.suffix) {
115
115
  flex-shrink: 0;
116
116
  width: 100%;
117
117
  }
118
118
 
119
- :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,output) {
119
+ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),textarea,output) {
120
120
  flex-shrink: 1;
121
121
  flex-grow: 1;
122
122
  width: 0;
@@ -310,14 +310,14 @@ div:has(> label:first-child):has(> input):has(> :is(.form-control-inline,.input-
310
310
  }
311
311
  }
312
312
 
313
- .prefix ~ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,output) {
313
+ .prefix ~ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),textarea,output) {
314
314
 
315
315
  border-end-start-radius: 0!important;
316
316
  border-start-start-radius: 0!important;
317
317
  }
318
318
 
319
- .suffix ~ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,output),
320
- :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,output):has(~ .suffix) {
319
+ .suffix ~ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),textarea,output),
320
+ :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),textarea,output):has(~ .suffix) {
321
321
  order: 1;
322
322
 
323
323
  border-start-end-radius: 0!important;
@@ -484,8 +484,13 @@ label:has(input:is([type="radio"],[type="checkbox"])):not(:has(> iam-card)){
484
484
  top: rem(10 - 2);
485
485
  left: var(--outline-width);
486
486
  }
487
+
488
+ &.btn:before {
489
+ opacity: 0;
490
+ }
487
491
  }
488
492
 
493
+
489
494
  input[type="radio"] + label:not(:has(> iam-card)),
490
495
  label:has(input[type="radio"]):not(:has(> iam-card)) {
491
496
 
@@ -826,13 +831,15 @@ iam-fileupload {
826
831
 
827
832
  display: block;
828
833
  margin-bottom: rem(24);
834
+ max-width: $input-max-width;
829
835
 
830
- :is(input,select) {
836
+ :is(input:not([type="range"]),select) {
831
837
  margin-top: rem(8);
832
838
  margin-bottom: 0!important;
833
839
  }
834
840
 
835
- :is(input,select) ~ span:not(:is(.suffix,.prefix,.invalid-feedback)) {
841
+ :is(input,select) ~ span:not(:is(.suffix,.prefix,.invalid-feedback)),
842
+ span:has(> :is(input,select)) ~ span:not(:is(.suffix,.prefix,.invalid-feedback)) {
836
843
  all: initial;
837
844
  font-family: var(--font-body);
838
845
  color: var(--colour-body);
@@ -886,3 +893,124 @@ iam-fileupload {
886
893
  }
887
894
 
888
895
  // #endregion
896
+
897
+ // #region input range
898
+ input[type="range"] {
899
+
900
+ --track-size: #{rem(8)};
901
+ --track-colour: var(--colour-light);
902
+ --thumb-colour: var(--colour-info);
903
+ --thumb-size: #{rem(24)};
904
+ width: 100%;
905
+ background: transparent;
906
+ cursor: pointer;
907
+ margin-top: rem(32);
908
+ margin-bottom: rem(32);
909
+ height: rem(32);
910
+ border-radius: 50%;
911
+ accent-color: var(--thumb-colour);
912
+ -webkit-appearance: none;
913
+ appearance: none;
914
+ }
915
+
916
+ *:has(> input[type="range"]) {
917
+ position: relative;
918
+ padding-bottom: 6rem;
919
+ max-width: $input-max-width;
920
+ }
921
+
922
+ label input[type=range] {
923
+ position: absolute;
924
+ top: 1.5rem;
925
+ left: 0;
926
+ }
927
+
928
+
929
+ // Track Styles
930
+ input[type="range"]::-webkit-slider-runnable-track {
931
+
932
+ background: var(--track-colour);
933
+ height: var(--track-size);
934
+ border-radius: 0.5rem;
935
+ }
936
+
937
+ input[type="range"]::-moz-range-track {
938
+ background: var(--track-colour);
939
+ height: var(--track-size);
940
+ border-radius: 0.5rem;
941
+ }
942
+
943
+ // Thumb Styles
944
+ input[type="range"]::-webkit-slider-thumb {
945
+ -webkit-appearance: none; /* Override default look */
946
+ appearance: none;
947
+ margin-top: rem(-8); /* Centers thumb on the track */
948
+ background-color: var(--thumb-colour);
949
+ height: var(--thumb-size);
950
+ width: var(--thumb-size);
951
+ border-radius: 50%;
952
+ position: relative;
953
+ z-index: 99;
954
+ pointer-events: all;
955
+ }
956
+
957
+ input[type="range"]::-moz-range-thumb {
958
+ border: none; /*Removes extra border that FF applies*/
959
+ background-color: var(--thumb-colour); /*Removes default border-radius that FF applies*/
960
+ height: var(--thumb-size);
961
+ width: var(--thumb-size);
962
+ border-radius: 50%;
963
+ position: relative;
964
+ z-index: 99;
965
+ pointer-events: all;
966
+ }
967
+
968
+ // Focus Styles
969
+ input[type="range"]:focus {
970
+ outline: none;
971
+ }
972
+
973
+ input[type="range"]:hover::-webkit-slider-thumb,
974
+ input[type="range"]:focus::-webkit-slider-thumb {
975
+ outline: 0.5rem solid rgba(30, 190, 231, .2);
976
+ }
977
+
978
+ input[type="range"]:active::-webkit-slider-thumb {
979
+ outline: 0.5rem solid rgba(30, 190, 231, .4);
980
+ }
981
+
982
+ input[type="range"]:hover::-moz-range-thumb,
983
+ input[type="range"]:focus::-moz-range-thumb {
984
+ outline: 0.5rem solid rgba(30, 190, 231, .2);
985
+ }
986
+ input[type="range"]:focus::-moz-range-thumb {
987
+ outline: 0.5rem solid rgba(30, 190, 231, .4);
988
+ }
989
+
990
+
991
+ iam-slider input::-webkit-outer-spin-button,
992
+ iam-slider input::-webkit-inner-spin-button {
993
+ -webkit-appearance: none;
994
+ margin: 0;
995
+ }
996
+
997
+ // #endregion
998
+
999
+ // #region Date and time fields
1000
+ :is(input[type="date"],input[type="time"]) {
1001
+ position: relative;
1002
+ }
1003
+ :is(input[type="date"],input[type="time"])::-webkit-calendar-picker-indicator {
1004
+ background: transparent;
1005
+ bottom: 0;
1006
+ color: transparent;
1007
+ cursor: pointer;
1008
+ height: auto;
1009
+ left: 8em;
1010
+ position: absolute;
1011
+ right: 0;
1012
+ top: 0;
1013
+ width: auto;
1014
+ order: 3;
1015
+ }
1016
+ // #endregion
@@ -40,7 +40,6 @@ table {
40
40
  }
41
41
 
42
42
  th {
43
- padding-top: 0;
44
43
  font-weight: bold;
45
44
  @include var(color,--colour-heading);
46
45
  }
@@ -52,7 +51,7 @@ thead {
52
51
  @include var(border-color,--colour-primary);
53
52
  }
54
53
  th {
55
- font-weight: bold;
54
+ padding-top: 0;
56
55
  vertical-align: bottom;
57
56
  }
58
57
  }
@@ -3,4 +3,4 @@
3
3
  // Set mobile only variable so that the media query mixin doesn't print out non mobile rules
4
4
  @use "_func" as *;
5
5
  @import "_corefiles";
6
- @import '../../assets/sass/components/nav-global.scss';
6
+ @import '../../assets/sass/components/nav.global.scss';
@@ -141,3 +141,51 @@ details summary > * {
141
141
  details {
142
142
  width: 100%;
143
143
  }
144
+
145
+ // Main grid setup to avoid having to use continaer divs
146
+ main {
147
+ --padding-inline: 1.5rem;
148
+ --container-max-width: #{rem(1280)};
149
+ --full-width-start: 0;
150
+
151
+ @include media-breakpoint-up(sm) {
152
+ --padding-inline: 2.5rem;
153
+ }
154
+ @include media-breakpoint-up(md) {
155
+ --padding-inline: 5.25rem;
156
+ --full-width-start: calc((100% - var(--container-max-width)) / 2);
157
+ }
158
+
159
+ display: grid;
160
+ margin-left: auto;
161
+ margin-right: auto;
162
+ width: 100%;
163
+
164
+ grid-template-columns:
165
+ [full-width-start] var(--full-width-start)
166
+ [container-start] var(--padding-inline)
167
+ [content-start] min(
168
+ 100% - (var(--padding-inline) * 2),
169
+ calc(var(--container-max-width) - (var(--padding-inline) * 2))
170
+ )
171
+ [content-end]
172
+ var(--padding-inline) [container-end]
173
+ var(--full-width-start) [full-width-end];
174
+
175
+ &:not(:has(.container:last-child)){
176
+ padding-bottom: 1rem;
177
+ }
178
+ }
179
+
180
+ main > :not(.full-width, .container, iam-header, [class*="bg-"]) {
181
+ grid-column: content;
182
+ }
183
+
184
+
185
+ main > :is(.full-width, .container, iam-header) {
186
+ grid-column: container;
187
+ }
188
+
189
+ main > :is(.full-width, [class*="bg-"]) {
190
+ grid-column: full-width;
191
+ }
@@ -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";
@@ -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() {
@@ -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
  `;
@@ -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 = `
@@ -43,6 +44,10 @@ class iamCard extends HTMLElement {
43
44
  </div>
44
45
  `;
45
46
  this.shadowRoot.appendChild(template.content.cloneNode(true));
47
+
48
+ // insert extra CSS
49
+ if(!document.getElementById('cardGlobal'))
50
+ document.head.insertAdjacentHTML('beforeend',`<style id="cardGlobal">${loadExtraCSS}</style>`);
46
51
  }
47
52
 
48
53
  connectedCallback() {
@@ -16,6 +16,7 @@ class iamNav extends HTMLElement {
16
16
  const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
17
17
  const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
18
18
  const loadCSS = `@import "${assetLocation}/css/components/nav.css";`;
19
+ const loadExtraCSS = `@import "${assetLocation}/css/components/nav.global.css";`;
19
20
 
20
21
  const template = document.createElement('template');
21
22
  template.innerHTML = `
@@ -52,6 +53,10 @@ class iamNav extends HTMLElement {
52
53
  `;
53
54
 
54
55
  shadowRoot.appendChild(template.content.cloneNode(true));
56
+
57
+ // insert extra CSS
58
+ if(!document.getElementById('navGlobal'))
59
+ document.head.insertAdjacentHTML('beforeend',`<style id="navGlobal">${loadExtraCSS}</style>`);
55
60
  }
56
61
 
57
62
  connectedCallback() {
@@ -17,6 +17,7 @@ class iamNotification 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/notification.css";`;
20
+ const loadExtraCSS = `@import "${assetLocation}/css/components/notification.global.css";`;
20
21
 
21
22
  const buttons = this.querySelectorAll('a,button');
22
23
 
@@ -45,6 +46,9 @@ class iamNotification extends HTMLElement {
45
46
  `;
46
47
  this.shadowRoot.appendChild(template.content.cloneNode(true));
47
48
 
49
+ // insert extra CSS
50
+ if(!document.getElementById('notificationHolder'))
51
+ document.head.insertAdjacentHTML('beforeend',`<style id="notificationHolder">${loadExtraCSS}</style>`);
48
52
  }
49
53
 
50
54
  connectedCallback() {
@@ -0,0 +1,26 @@
1
+ **Add the below to your initialise script**
2
+
3
+ ```
4
+ import('../node_modules/@iamproperty/components/assets/js/components/slider/slider.component.min').then(module => { // Might need to update the path
5
+
6
+ if (!window.customElements.get(`iam-slider`))
7
+ window.customElements.define(`iam-slider`, 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
+ <label>Input field label <iam-slider><input type="number" name="percent" min="0" max="100" value="15" step="1" /></iam-slider></label>
18
+ ```
19
+
20
+ **Note**
21
+
22
+ The slider component is best put inside of a label and wrapped around an input field. The component is there to enhance the input field.
23
+
24
+ **Properties**
25
+
26
+ The properties of the slider are reflected by the attributes of the input field. So the min and max used to create the range are taken from the first input inside of the component.