@iamproperty/components 7.5.1--beta5 → 7.5.1--beta7

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 (196) 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/applied-filters.css +1 -1
  6. package/assets/css/components/applied-filters.css.map +1 -1
  7. package/assets/css/components/calendar.component.css +1 -1
  8. package/assets/css/components/calendar.component.css.map +1 -1
  9. package/assets/css/components/card.component.css +1 -1
  10. package/assets/css/components/card.component.css.map +1 -1
  11. package/assets/css/components/fileupload.css +1 -1
  12. package/assets/css/components/fileupload.css.map +1 -1
  13. package/assets/css/components/input-range.component.css +1 -0
  14. package/assets/css/components/input-range.component.css.map +1 -0
  15. package/assets/css/components/input.component.css +1 -0
  16. package/assets/css/components/input.component.css.map +1 -0
  17. package/assets/css/components/modal.component.css +1 -0
  18. package/assets/css/components/modal.component.css.map +1 -0
  19. package/assets/css/components/multi-step-modal.component.css +1 -0
  20. package/assets/css/components/multi-step-modal.component.css.map +1 -0
  21. package/assets/css/components/multi-step-modal.global.css +1 -0
  22. package/assets/css/components/multi-step-modal.global.css.map +1 -0
  23. package/assets/css/components/multiselect.css +1 -1
  24. package/assets/css/components/multiselect.css.map +1 -1
  25. package/assets/css/components/nav.component.css +1 -1
  26. package/assets/css/components/nav.component.css.map +1 -1
  27. package/assets/css/components/pagination.css +1 -1
  28. package/assets/css/components/pagination.css.map +1 -1
  29. package/assets/css/components/password.component.css +1 -0
  30. package/assets/css/components/password.component.css.map +1 -0
  31. package/assets/css/components/slider.css +1 -1
  32. package/assets/css/components/slider.css.map +1 -1
  33. package/assets/css/components/tabs.component.css +1 -1
  34. package/assets/css/components/tabs.component.css.map +1 -1
  35. package/assets/css/components/tabs.config.css +1 -1
  36. package/assets/css/components/tabs.config.css.map +1 -1
  37. package/assets/css/core.min.css +1 -1
  38. package/assets/css/core.min.css.map +1 -1
  39. package/assets/css/mobile-core.min.css +1 -1
  40. package/assets/css/mobile-core.min.css.map +1 -1
  41. package/assets/css/mobile.min.css +1 -1
  42. package/assets/css/mobile.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/js/components/accordion/accordion.component.js +1 -1
  46. package/assets/js/components/accordion/accordion.component.min.js +3 -3
  47. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  48. package/assets/js/components/actionbar/actionbar.component.js +2 -4
  49. package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
  50. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  51. package/assets/js/components/address-lookup/address-lookup.component.js +45 -0
  52. package/assets/js/components/address-lookup/address-lookup.component.min.js +12 -4
  53. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  54. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  55. package/assets/js/components/applied-filters/applied-filters.component.js +0 -2
  56. package/assets/js/components/applied-filters/applied-filters.component.min.js +5 -7
  57. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  58. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  59. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  60. package/assets/js/components/calendar/calendar.component.min.js +5 -5
  61. package/assets/js/components/card/card.component.min.js +8 -8
  62. package/assets/js/components/card/card.component.min.js.map +1 -1
  63. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  64. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  65. package/assets/js/components/content/content.component.min.js +1 -1
  66. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  67. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  68. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  69. package/assets/js/components/filter-card/filter-card.component.js +19 -0
  70. package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
  71. package/assets/js/components/filter-card/filter-card.component.min.js.map +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 +1 -1
  75. package/assets/js/components/input/input.component.js +128 -0
  76. package/assets/js/components/input/input.component.min.js +16 -0
  77. package/assets/js/components/input/input.component.min.js.map +1 -0
  78. package/assets/js/components/input-range/input-range.component.js +62 -0
  79. package/assets/js/components/input-range/input-range.component.min.js +14 -0
  80. package/assets/js/components/input-range/input-range.component.min.js.map +1 -0
  81. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  82. package/assets/js/components/menu/menu.component.min.js +1 -1
  83. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  84. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  85. package/assets/js/components/modal/modal.component.js +141 -0
  86. package/assets/js/components/modal/modal.component.min.js +28 -0
  87. package/assets/js/components/modal/modal.component.min.js.map +1 -0
  88. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  89. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +233 -0
  90. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +17 -0
  91. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -0
  92. package/assets/js/components/multiselect/multiselect.component.js +1 -1
  93. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  94. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  95. package/assets/js/components/nav/nav.component.min.js +5 -5
  96. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  97. package/assets/js/components/notification/notification.component.min.js +1 -1
  98. package/assets/js/components/pagination/pagination.component.min.js +3 -3
  99. package/assets/js/components/password/password.component.js +93 -0
  100. package/assets/js/components/password/password.component.min.js +17 -0
  101. package/assets/js/components/password/password.component.min.js.map +1 -0
  102. package/assets/js/components/rank/rank.component.min.js +1 -1
  103. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  104. package/assets/js/components/record-card/record-card.component.min.js +4 -4
  105. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  106. package/assets/js/components/search/search.component.js +1 -1
  107. package/assets/js/components/search/search.component.min.js +5 -5
  108. package/assets/js/components/search/search.component.min.js.map +1 -1
  109. package/assets/js/components/slider/slider.component.min.js +3 -3
  110. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  111. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +5 -1
  112. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +22 -9
  113. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  114. package/assets/js/components/table/table.component.min.js +3 -3
  115. package/assets/js/components/table/table.component.min.js.map +1 -1
  116. package/assets/js/components/table-ajax/table-ajax.component.min.js +4 -4
  117. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  118. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  119. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  120. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  121. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  122. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  123. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  124. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  125. package/assets/js/components/video-card/video-card.component.min.js +4 -4
  126. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  127. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  128. package/assets/js/modules/applied-filters.js +78 -61
  129. package/assets/js/modules/card.module.js +6 -1
  130. package/assets/js/modules/dialogs.js +6 -2
  131. package/assets/js/modules/password.js +72 -0
  132. package/assets/js/modules/table.js +10 -6
  133. package/assets/js/scripts.bundle.js +2 -3
  134. package/assets/js/scripts.bundle.js.map +1 -1
  135. package/assets/js/scripts.bundle.min.js +2 -2
  136. package/assets/js/scripts.bundle.min.js.map +1 -1
  137. package/assets/js/scripts.js +0 -2
  138. package/assets/js/tests/helpers.spec.js +54 -1
  139. package/assets/sass/_components.scss +2 -0
  140. package/assets/sass/_elements.scss +2 -0
  141. package/assets/sass/components/actionbar.component.scss +1 -0
  142. package/assets/sass/components/address-lookup.component.scss +24 -0
  143. package/assets/sass/components/applied-filters.scss +10 -14
  144. package/assets/sass/components/input-range.component.scss +38 -0
  145. package/assets/sass/components/input.component.scss +102 -0
  146. package/assets/sass/components/modal.component.scss +269 -0
  147. package/assets/sass/components/multi-step-modal.component.scss +255 -0
  148. package/assets/sass/components/multi-step-modal.global.scss +92 -0
  149. package/assets/sass/components/multiselect.scss +2 -2
  150. package/assets/sass/components/password.component.scss +60 -0
  151. package/assets/sass/components/tabs.config.scss +2 -2
  152. package/assets/sass/elements/badge-tag.scss +0 -1
  153. package/assets/sass/elements/details.scss +12 -7
  154. package/assets/sass/elements/dialog.scss +46 -5
  155. package/assets/sass/elements/forms.scss +41 -177
  156. package/assets/sass/elements/hr.scss +1 -1
  157. package/assets/sass/elements/modal.scss +19 -21
  158. package/assets/sass/elements/prefix.scss +115 -0
  159. package/assets/ts/components/accordion/accordion.component.ts +1 -1
  160. package/assets/ts/components/actionbar/actionbar.component.ts +3 -10
  161. package/assets/ts/components/address-lookup/address-lookup.component.ts +60 -0
  162. package/assets/ts/components/applied-filters/applied-filters.component.ts +0 -2
  163. package/assets/ts/components/filter-card/filter-card.component.ts +27 -0
  164. package/assets/ts/components/input/input.component.ts +168 -0
  165. package/assets/ts/components/input-range/input-range.component.ts +78 -0
  166. package/assets/ts/components/modal/modal.component.ts +188 -0
  167. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -0
  168. package/assets/ts/components/multiselect/multiselect.component.ts +1 -1
  169. package/assets/ts/components/password/password.component.ts +118 -0
  170. package/assets/ts/components/search/search.component.ts +1 -1
  171. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +5 -3
  172. package/assets/ts/modules/applied-filters.ts +107 -71
  173. package/assets/ts/modules/card.module.ts +9 -4
  174. package/assets/ts/modules/dialogs.ts +6 -2
  175. package/assets/ts/modules/password.ts +82 -0
  176. package/assets/ts/modules/table.ts +13 -6
  177. package/assets/ts/scripts.ts +2 -2
  178. package/assets/ts/tests/helpers.spec.ts +100 -1
  179. package/dist/components.es.js +641 -959
  180. package/dist/components.umd.js +281 -182
  181. package/package.json +2 -2
  182. package/src/components/Input/Input.vue +19 -363
  183. package/src/components/InputRange/InputRange.vue +22 -0
  184. package/src/components/Modal/Modal.vue +22 -0
  185. package/src/components/MultiStepModal/MultiStepModal.vue +23 -0
  186. package/src/components/{PasswordIndicator/PasswordIndicator.vue → Password/Password.vue} +23 -23
  187. package/assets/js/components/password-indicator/password-indicator.component.js +0 -19
  188. package/assets/js/components/password-indicator/password-indicator.component.min.js +0 -7
  189. package/assets/js/components/password-indicator/password-indicator.component.min.js.map +0 -1
  190. package/assets/js/modules/form.js +0 -125
  191. package/assets/js/modules/inputs.js +0 -151
  192. package/assets/js/modules/password-indicator.js +0 -21
  193. package/assets/ts/components/password-indicator/password-indicator.component.ts +0 -24
  194. package/assets/ts/modules/form.ts +0 -166
  195. package/assets/ts/modules/inputs.ts +0 -181
  196. package/assets/ts/modules/password-indicator.ts +0 -29
@@ -0,0 +1,92 @@
1
+ @use '../_func.scss' as *;
2
+
3
+ // #region Multi step modal
4
+ @layer components {
5
+ iam-multi-step-modal {
6
+
7
+
8
+ :is(.h1, .h2, .h3, .h4, .h5, .h6) {
9
+ padding-right: calc(var(--dialog-padding) * 3);
10
+ padding-bottom: var(--dialog-padding);
11
+ }
12
+
13
+ form {
14
+ overflow: auto;
15
+ padding-bottom: var(--dialog-padding);
16
+ padding-top: var(--dialog-padding);
17
+ max-height: calc(min(90vh, 47rem) - 6rem);
18
+ }
19
+
20
+ fieldset {
21
+ > :last-child {
22
+ margin-bottom: var(--dialog-padding) !important;
23
+ }
24
+
25
+ > p:last-child {
26
+ padding-bottom: 0 !important;
27
+ margin-bottom: var(--dialog-padding) !important;
28
+ }
29
+ }
30
+
31
+ fieldset:not(.active) {
32
+ display: none;
33
+ }
34
+
35
+ @include media-breakpoint-up(sm, $mobileOnly) {
36
+
37
+
38
+ .btn--wrapper {
39
+ margin-top: auto;
40
+ text-align: right;
41
+ }
42
+
43
+ form {
44
+ height: calc(100vh - 6rem);
45
+ padding-left: 0 !important;
46
+ padding-right: var(--dialog-padding) !important;
47
+ }
48
+ }
49
+
50
+ @include media-breakpoint-up(md, $mobileOnly) {
51
+
52
+ form {
53
+ display: flex;
54
+ flex-direction: column;
55
+ }
56
+
57
+ fieldset {
58
+
59
+ &.active {
60
+
61
+ display: flex;
62
+ }
63
+ flex-direction: column;
64
+ flex-grow: 1;
65
+ position: relative;
66
+
67
+ overflow: auto;
68
+ margin-bottom: calc(var(--dialog-padding) * -1);
69
+ padding-right: calc(var(--dialog-padding) - 10px);
70
+ margin-right: calc((var(--dialog-padding) * -1) + 10px);
71
+
72
+ max-height: rem(370);
73
+
74
+ &::before {
75
+ content: '';
76
+ top: 100%;
77
+ bottom: 0;
78
+ left: 0;
79
+ right: 0;
80
+ height: var(--dialog-padding);
81
+ min-height: var(--dialog-padding);
82
+ position: sticky;
83
+ display: block;
84
+ background: linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);
85
+ z-index: 2;
86
+ margin-bottom: calc(var(--dialog-padding) * -1);
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ // #endregion
@@ -3,6 +3,8 @@
3
3
 
4
4
  @use '../elements/forms.scss' as *;
5
5
  @use '../elements/admin-panel.scss' as *;
6
+ @use '../elements/buttons.scss' as *;
7
+ @use '../elements/buttons--action.scss' as *;
6
8
 
7
9
 
8
10
  *, *::before, *::after {
@@ -124,10 +126,8 @@ label {
124
126
 
125
127
  button {
126
128
  position: absolute;
127
- top: 0.75rem;
128
129
  right: 0.5rem;
129
130
  border: none;
130
- background: none;
131
131
  padding-inline: 0.5rem;
132
132
  display: var(--display-button, none);
133
133
 
@@ -0,0 +1,60 @@
1
+ @use '../func' as *;
2
+ @use '../elements/prefix.scss' as *;
3
+
4
+ $icon-error: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='#dc3545'/></svg>");
5
+
6
+ $icon-tick: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d='M441 103c9.4 9.4 9.4 24.6 0 33.9L177 401c-9.4 9.4-24.6 9.4-33.9 0L7 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l119 119L407 103c9.4-9.4 24.6-9.4 33.9 0z' fill='#0f9d58' /></svg>");
7
+
8
+ *,
9
+ *::before,
10
+ *::after {
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ .wrapper {
15
+ display: flex;
16
+ margin-top: 0.5rem;
17
+ }
18
+
19
+ :host {
20
+ display: block;
21
+ }
22
+
23
+ ::slotted(input) {
24
+ margin: 0!important;
25
+
26
+ border-start-end-radius: 0!important;
27
+ border-end-end-radius: 0!important;
28
+ }
29
+
30
+ // Password checker
31
+ .invalid-feedback {
32
+ color: var(--colour-danger);
33
+ margin-top: rem(8);
34
+ background-image: escape-svg($icon-error);
35
+ background-repeat: no-repeat;
36
+ background-position: left top 1px;
37
+ background-size: var(--input-fs, #{rem(16)}) var(--input-fs, #{rem(16)});
38
+ padding-left: calc(var(--input-fs, #{rem(16)}) + #{rem(8)});
39
+ //display: none;
40
+ }
41
+
42
+ .pwd-checker {
43
+ display: block;
44
+ background-repeat: no-repeat !important;
45
+ background-position: left center;
46
+ background-size: 1em 1em;
47
+ padding-left: 1.5rem !important;
48
+ margin-top: 0.5rem;
49
+ }
50
+ .pwd-checker.invalid-feedback {
51
+ background-image: escape-svg($icon-error);
52
+ }
53
+
54
+ .pwd-checker:not(.invalid-feedback) {
55
+ background-image: escape-svg($icon-tick) !important;
56
+ }
57
+ label:has(.pwd-checker.invalid-feedback):after {
58
+ display: none !important;
59
+ }
60
+ // #endregion
@@ -142,7 +142,7 @@ iam-tabs.tabs--guided::part(next-button):not(:hover) {
142
142
  height: 3px;
143
143
  width: 100%;
144
144
  transform: translate(-50%, 0) scale(0, 0); // translate pulls this left so it's centered
145
- background: var(--colour-tab-underline);
145
+ background: var(--colour-tab-underline, var(--colour-info));
146
146
  transition: transform 0.4s;
147
147
  }
148
148
 
@@ -155,7 +155,7 @@ iam-tabs.tabs--guided::part(next-button):not(:hover) {
155
155
  }
156
156
 
157
157
  &:not(.disabled) {
158
- &:is([aria-pressed='true'], :active, .current):after {
158
+ &:is([aria-pressed='true'], :active, .current, .active):after {
159
159
  transform: translate(-50%, 0) scale(1, 1);
160
160
  }
161
161
  }
@@ -74,7 +74,6 @@ $darkMode: 'true' !default;
74
74
  }
75
75
  }
76
76
 
77
- .tag.tag--not-set,
78
77
  iam-multiselect:not(:defined) .tag,
79
78
  .tag.tag--toggle {
80
79
  background: var(--colour-canvas);
@@ -127,7 +127,7 @@ $darkMode: 'true' !default;
127
127
  &[open] summary :is(h1, h2, h4, h5, h6, .h1, .h2, .h4, .h5, .h6, .label) {
128
128
  &:after {
129
129
  content: '\f056';
130
- font-weight: 900;
130
+ font-weight: 400;
131
131
  }
132
132
  }
133
133
 
@@ -147,7 +147,7 @@ $darkMode: 'true' !default;
147
147
  font-size: rem(18);
148
148
  line-height: var(--line-height);
149
149
  padding-bottom: map.get($heading-sizes, 'h3_pb');
150
- font-weight: 700;
150
+ font-weight: 500;
151
151
  max-width: 100%;
152
152
 
153
153
  &:after {
@@ -165,15 +165,13 @@ $darkMode: 'true' !default;
165
165
  font-family: 'Font Awesome 6 Pro';
166
166
  }
167
167
 
168
- @include media-breakpoint-up(sm, $mobileOnly) {
169
- font-weight: 900;
170
- }
168
+
171
169
  }
172
170
 
173
171
  &[open] summary:not(:has(h1, h2, h4, h5, h6, .h1, .h2, .h4, .h5, .h6)) {
174
172
  &:after {
175
173
  content: '\f056';
176
- font-weight: 900;
174
+
177
175
  }
178
176
  }
179
177
  }
@@ -182,6 +180,7 @@ $darkMode: 'true' !default;
182
180
  --inline-padding: var(--dialog-padding);
183
181
 
184
182
  margin-inline: calc(var(--dialog-padding) * -1);
183
+ padding-inline: var(--dialog-padding);
185
184
  width: calc(100% + var(--dialog-padding) + var(--dialog-padding));
186
185
 
187
186
  &:has(summary:is(:hover, :focus-visible)),
@@ -190,6 +189,13 @@ $darkMode: 'true' !default;
190
189
  overflow: hidden;
191
190
  }
192
191
 
192
+ @include media-breakpoint-up(sm, $mobileOnly) {
193
+ --dialog-padding: #{rem(32)};
194
+
195
+ margin-inline: calc(var(--dialog-padding) * -1);
196
+ padding-inline: var(--dialog-padding);
197
+ }
198
+
193
199
  // Fix the border bottom issue
194
200
  &:has(+ details[open]),
195
201
  &:has(summary:is(:hover, :focus-visible)),
@@ -213,7 +219,6 @@ $darkMode: 'true' !default;
213
219
  --inline-padding: 0;
214
220
  }
215
221
 
216
- padding-inline: var(--dialog-padding);
217
222
 
218
223
  &::before {
219
224
  content: '';
@@ -5,7 +5,7 @@ $layers: 'true' !default;
5
5
  $mobileOnly: 'false' !default;
6
6
  $darkMode: 'true' !default;
7
7
 
8
- @include layer('elements', $layers) {
8
+ @layer elements {
9
9
  // non-js fallback
10
10
  body:not(.js-enabled) dialog:not([open]):target {
11
11
  display: block;
@@ -26,19 +26,60 @@ $darkMode: 'true' !default;
26
26
  border-radius: rem(10);
27
27
  padding: var(--dialog-padding);
28
28
  outline: var(--contrast-outline-width, 0px) solid var(--colour-primary);
29
+
30
+ > *:last-child {
31
+ margin-bottom: 0;
32
+ }
33
+
34
+ > :is(p):last-child {
35
+ padding-bottom: 0;
36
+ }
37
+ }
38
+
39
+ dialog::backdrop {
40
+ background: rgba(0, 0, 0, 0.3);
41
+ backdrop-filter: blur(4px);
42
+ overscroll-behavior: contain;
29
43
  }
30
44
 
31
45
  dialog[open] {
32
46
  display: flex;
33
47
  flex-direction: column;
48
+ }
34
49
 
35
- > *:last-child {
36
- margin-bottom: 0;
50
+ // TODO: when the old modals are depreciated this selector can be simplified
51
+ *:not(.dialog__wrapper) > dialog[open]:not([popover]) {
52
+
53
+ overflow-y: auto;
54
+ width: 90vw;
55
+ max-width: rem(324); // col-width*4
56
+
57
+ //height: 90vh;
58
+ max-height: min(90vh, #{rem(752)});
59
+ overscroll-behavior: contain;
60
+
61
+ @include media-breakpoint-up(sm, $mobileOnly) {
62
+ --dialog-padding: #{rem(32)};
63
+ padding: var(--dialog-padding);
64
+ min-width: rem(335);
65
+ width: fit-content;
66
+ max-width: rem(686);
37
67
  }
38
68
 
39
- > :is(p):last-child {
40
- padding-bottom: 0;
69
+ @include media-breakpoint-up(md, $mobileOnly) {
70
+ min-width: rem(454);
71
+ width: fit-content;
72
+ max-width: rem(736);
41
73
  }
74
+
42
75
  }
43
76
  // #endregion
77
+
78
+
79
+ details.bg-light {
80
+ margin-inline: calc(var(--dialog-padding) * -1);
81
+ padding-inline: var(--dialog-padding);
82
+ }
83
+
44
84
  }
85
+
@@ -164,6 +164,16 @@ $optionalText: 'true' !default;
164
164
  padding: 0;
165
165
  }
166
166
 
167
+ ::-moz-color-swatch {
168
+ border-radius: 0;
169
+ border: none;
170
+ }
171
+
172
+ ::-webkit-color-swatch {
173
+ border-radius: 0;
174
+ border: none;
175
+ }
176
+
167
177
  // 1. Inherit font family and line height for file input buttons
168
178
  // 2. Correct the inability to style clickable types in iOS and Safari.
169
179
 
@@ -279,6 +289,12 @@ $optionalText: 'true' !default;
279
289
  }
280
290
  }
281
291
 
292
+ input[type='color'] {
293
+
294
+ padding: 0!important;
295
+ max-width: 3rem!important;
296
+ }
297
+
282
298
  [disabled] :is(
283
299
  input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']),
284
300
  textarea,
@@ -369,60 +385,21 @@ $optionalText: 'true' !default;
369
385
  }
370
386
  }
371
387
 
372
- // #region colors
373
-
374
- input[type='color'] {
375
- width: 3rem !important;
376
- flex-shrink: 0 !important;
377
- flex-grow: 0 !important;
378
- border-start-end-radius: 0 !important;
379
- border-end-end-radius: 0 !important;
380
- padding: 0 !important;
381
- overflow: hidden;
382
- cursor: pointer !important;
383
-
384
- &::-moz-color-swatch {
385
- border-radius: 0;
386
- border: none;
387
- }
388
-
389
- &::-webkit-color-swatch {
390
- border-radius: 0;
391
- border: none;
392
- }
393
- }
394
-
395
- label :is(div, span, fieldset):has(input[type='color'] + output) {
396
- display: flex;
397
- }
398
-
399
- input[type='color'] + output {
400
- border-left: none !important;
401
- border-end-start-radius: 0 !important;
402
- border-start-start-radius: 0 !important;
403
- margin: 0 !important;
404
- }
405
-
406
- output {
407
- margin-top: 0.5rem !important;
408
- margin-bottom: 0 !important;
409
- }
410
- // #endregion
411
388
 
412
- div:has(> :is(.form-control-sm, .input--sm)) {
389
+ *:has(> :is(.form-control-sm, .input--sm)) {
413
390
  --input-fs: #{rem(14)};
414
391
  --input-lh: #{rem(16)};
415
392
  --input-padding-block: #{rem(10)};
416
393
  --input-padding-inline: #{rem(14)};
417
394
  }
418
- div:has(> :is(.form-control-lg, .input--sm)) {
395
+ *:has(> :is(.form-control-lg, .input--lg)) {
419
396
  --input-fs: #{rem(24)};
420
397
  --input-lh: #{rem(29)};
421
398
  --input-padding-block: #{rem(20)};
422
399
  --input-padding-inline: #{rem(22)};
423
400
  }
424
401
 
425
- div:has(> label:first-child):has(> input):has(> :is(.form-control-inline, .input--inline)) {
402
+ *:has(> label:first-child):has(> input):has(> :is(.form-control-inline, .input--inline)) {
426
403
  label {
427
404
  flex-shrink: 0;
428
405
  white-space: nowrap;
@@ -456,119 +433,10 @@ $optionalText: 'true' !default;
456
433
  // #endregion
457
434
 
458
435
  // #region prefix
459
- :is(.prefix, .suffix) {
460
- display: none;
461
- }
462
-
463
- :not(button):is(.prefix, .suffix) {
464
- pointer-events: none;
465
- }
466
436
 
467
437
  @supports selector(:has(*)) {
468
- :is(.prefix, .suffix) {
469
- display: inline-block;
470
- width: auto;
471
- padding: var(--input-padding-block, #{rem(12)}) var(--input-padding-block, #{rem(16)});
472
- font-size: var(--input-fs, #{rem(16)});
473
- line-height: var(--input-lh, #{rem(20)});
474
- color: var(--colour-body);
475
- background-color: var(--colour-primary-theme);
476
- border: 2px solid var(--colour-primary);
477
- color: var(--colour-white);
478
- margin-top: 0 !important;
479
- margin-bottom: 1rem;
480
- border-end-start-radius: rem(8);
481
- border-start-start-radius: rem(8);
482
- min-width: calc(#{rem(20 + 12 + 12)} + 4px);
483
- overflow: hidden;
484
- white-space: nowrap;
485
- text-align: center;
486
- text-overflow: ellipsis;
487
- position: relative;
488
-
489
- min-height: calc(
490
- var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) +
491
- 4px
492
- );
493
- max-height: calc(
494
- var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) +
495
- 4px
496
- );
497
- flex-shrink: 0;
498
-
499
- &:after {
500
- display: inline-block;
501
- max-width: rem(20);
502
- }
503
-
504
- &[class*='fa-'] {
505
- width: calc(#{rem(20 + 12 + 12)} + 4px);
506
- padding-inline: 0;
507
- }
508
-
509
- select {
510
- position: absolute;
511
- inset: 0;
512
- opacity: 0;
513
- cursor: pointer;
514
- }
515
-
516
- span {
517
- display: none;
518
- }
519
-
520
- select:has(option:nth-child(1):checked) ~ span:nth-of-type(1),
521
- select:has(option:nth-child(2):checked) ~ span:nth-of-type(2),
522
- select:has(option:nth-child(3):checked) ~ span:nth-of-type(3),
523
- select:has(option:nth-child(4):checked) ~ span:nth-of-type(4),
524
- select:has(option:nth-child(5):checked) ~ span:nth-of-type(5),
525
- select:has(option:nth-child(6):checked) ~ span:nth-of-type(6),
526
- select:has(option:nth-child(7):checked) ~ span:nth-of-type(7),
527
- select:has(option:nth-child(8):checked) ~ span:nth-of-type(8),
528
- select:has(option:nth-child(9):checked) ~ span:nth-of-type(9),
529
- select:has(option:nth-child(10):checked) ~ span:nth-of-type(10) {
530
- display: block;
531
- }
532
-
533
- select ~ span:after {
534
- content: ' \f078';
535
- font-family: 'Font Awesome 6 Pro';
536
- font-size: 0.8em;
537
- display: inline-block;
538
- padding-left: 1em;
539
- }
540
-
541
- select:focus-visible ~ span:after {
542
- content: '\f077';
543
- }
544
- }
545
-
546
- .prefix {
547
- border-right: none;
548
- }
549
-
550
- .suffix {
551
- border-left: none;
552
- border-end-start-radius: 0;
553
- border-start-start-radius: 0;
554
- border-start-end-radius: rem(8) !important;
555
- border-end-end-radius: rem(8) !important;
556
- order: 2;
557
- }
558
-
559
- .prefix span {
560
- display: none;
561
-
562
- small {
563
- font-size: 0.8em;
564
- }
565
- }
566
-
567
- .prefix
568
- ~ :is(input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']), textarea, output) {
569
- border-end-start-radius: 0 !important;
570
- border-start-start-radius: 0 !important;
571
- }
438
+
439
+
572
440
 
573
441
  .suffix
574
442
  ~ :is(
@@ -680,26 +548,6 @@ $optionalText: 'true' !default;
680
548
  --error-hide: none;
681
549
  }
682
550
 
683
- // Password checker
684
- .pwd-checker {
685
- display: block;
686
- background-repeat: no-repeat !important;
687
- background-position: left center;
688
- background-size: 1em 1em;
689
- padding-left: 1.5rem !important;
690
- }
691
- .pwd-checker.invalid-feedback {
692
- background-image: escape-svg($icon-error);
693
- }
694
-
695
- .pwd-checker:not(.invalid-feedback) {
696
- background-image: escape-svg($icon-tick) !important;
697
- }
698
- label:has(.pwd-checker.invalid-feedback):after {
699
- display: none !important;
700
- }
701
- // #endregion
702
-
703
551
  // #region radio/checkbox field
704
552
  @supports selector(:has(*)) {
705
553
  input:is([type='radio'], [type='checkbox']) {
@@ -827,6 +675,15 @@ $optionalText: 'true' !default;
827
675
  }
828
676
  }
829
677
 
678
+ fieldset:has(label > input:is([type="radio"],[type="checkbox"])){
679
+
680
+ label {
681
+ margin-bottom: 0!important;
682
+ }
683
+
684
+ margin-bottom: 1.5rem;
685
+ }
686
+
830
687
  input:is([type='radio'], [type='checkbox']):checked + label,
831
688
  label:not(.tag):has(input:is([type='radio'], [type='checkbox']):checked) {
832
689
  --tick-colour: var(--colour-info);
@@ -1145,7 +1002,8 @@ $optionalText: 'true' !default;
1145
1002
  }
1146
1003
 
1147
1004
  :is(input, select) ~ span:not(:is(.suffix, .prefix, .invalid-feedback)),
1148
- span:has(> :is(input, select)) ~ span:not(:is(.suffix, .prefix, .invalid-feedback)) {
1005
+ span:has(> :is(input, select)) ~ span:not(:is(.suffix, .prefix, .invalid-feedback)),
1006
+ .hint-text {
1149
1007
  all: initial;
1150
1008
  font-family: var(--font-body);
1151
1009
  color: var(--colour-body);
@@ -1298,25 +1156,31 @@ $optionalText: 'true' !default;
1298
1156
  // #endregion
1299
1157
 
1300
1158
  // #region Date and time fields
1301
- :is(input[type='date'], input[type='time']) {
1159
+ :is(input[type='date'],input[type='datetime-local'],input[type='year'],input[type='month'],input[type='week'], input[type='time']) {
1302
1160
  position: relative;
1303
1161
  margin-right: -3rem;
1304
1162
  padding-right: 3rem !important;
1305
1163
  background-position: right 4rem center;
1306
1164
  border-radius: 0.5rem !important;
1307
1165
  }
1308
- :is(input[type='date'], input[type='time'])::-webkit-calendar-picker-indicator {
1166
+ ::-webkit-calendar-picker-indicator {
1309
1167
  background: transparent;
1310
1168
  bottom: 0;
1311
1169
  color: transparent;
1312
1170
  cursor: pointer;
1313
1171
  height: auto;
1314
- left: 4em;
1172
+ left: 0;
1315
1173
  position: absolute;
1316
1174
  right: 0;
1317
1175
  top: 0;
1318
1176
  width: auto;
1319
1177
  order: 3;
1178
+ z-index: 98;
1179
+ }
1180
+ ::-webkit-datetime-edit {
1181
+ position: relative;
1182
+ z-index: 99;
1183
+ max-width: fit-content;
1320
1184
  }
1321
1185
  // #endregion
1322
1186
  }
@@ -27,7 +27,7 @@ $darkMode: 'true' !default;
27
27
  }
28
28
  }
29
29
 
30
- hr:not(.border-0) {
30
+ hr[class*="border-"] {
31
31
  border-bottom: var(--border-width) var(--border-style) var(--border-color);
32
32
  }
33
33