@iamproperty/components 7.7.1--beta6 → 7.7.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 (577) hide show
  1. package/README.md +4 -4
  2. package/assets/bootstrap/README.md +247 -247
  3. package/assets/bootstrap/js/index.esm.js +19 -19
  4. package/assets/bootstrap/js/index.umd.js +34 -34
  5. package/assets/bootstrap/js/src/alert.js +87 -87
  6. package/assets/bootstrap/js/src/base-component.js +85 -85
  7. package/assets/bootstrap/js/src/button.js +72 -72
  8. package/assets/bootstrap/js/src/carousel.js +475 -475
  9. package/assets/bootstrap/js/src/collapse.js +302 -302
  10. package/assets/bootstrap/js/src/dom/data.js +55 -55
  11. package/assets/bootstrap/js/src/dom/event-handler.js +320 -320
  12. package/assets/bootstrap/js/src/dom/manipulator.js +71 -71
  13. package/assets/bootstrap/js/src/dom/selector-engine.js +83 -83
  14. package/assets/bootstrap/js/src/dropdown.js +445 -445
  15. package/assets/bootstrap/js/src/modal.js +373 -373
  16. package/assets/bootstrap/js/src/offcanvas.js +283 -283
  17. package/assets/bootstrap/js/src/popover.js +97 -97
  18. package/assets/bootstrap/js/src/scrollspy.js +290 -290
  19. package/assets/bootstrap/js/src/tab.js +307 -307
  20. package/assets/bootstrap/js/src/toast.js +220 -220
  21. package/assets/bootstrap/js/src/tooltip.js +651 -651
  22. package/assets/bootstrap/js/src/util/backdrop.js +149 -149
  23. package/assets/bootstrap/js/src/util/component-functions.js +34 -34
  24. package/assets/bootstrap/js/src/util/config.js +66 -66
  25. package/assets/bootstrap/js/src/util/focustrap.js +115 -115
  26. package/assets/bootstrap/js/src/util/index.js +336 -336
  27. package/assets/bootstrap/js/src/util/sanitizer.js +118 -118
  28. package/assets/bootstrap/js/src/util/scrollbar.js +114 -114
  29. package/assets/bootstrap/js/src/util/swipe.js +146 -146
  30. package/assets/bootstrap/js/src/util/template-factory.js +160 -160
  31. package/assets/bootstrap/package.json +180 -180
  32. package/assets/bootstrap/scss/_accordion.scss +146 -146
  33. package/assets/bootstrap/scss/_button-group.scss +142 -142
  34. package/assets/bootstrap/scss/_buttons.scss +186 -186
  35. package/assets/bootstrap/scss/_carousel.scss +229 -229
  36. package/assets/bootstrap/scss/_dropdown.scss +248 -248
  37. package/assets/bootstrap/scss/_functions.scss +302 -302
  38. package/assets/bootstrap/scss/_list-group.scss +191 -191
  39. package/assets/bootstrap/scss/_modal.scss +237 -237
  40. package/assets/bootstrap/scss/_nav.scss +172 -172
  41. package/assets/bootstrap/scss/_navbar.scss +276 -276
  42. package/assets/bootstrap/scss/_offcanvas.scss +143 -143
  43. package/assets/bootstrap/scss/_pagination.scss +109 -109
  44. package/assets/bootstrap/scss/_popover.scss +196 -196
  45. package/assets/bootstrap/scss/_toasts.scss +70 -70
  46. package/assets/bootstrap/scss/_variables-dark.scss +87 -87
  47. package/assets/bootstrap/scss/_variables.scss +1633 -1633
  48. package/assets/bootstrap/scss/bootstrap-utilities.scss +15 -15
  49. package/assets/bootstrap/scss/forms/_floating-labels.scss +74 -74
  50. package/assets/bootstrap/scss/forms/_input-group.scss +129 -129
  51. package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -5
  52. package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -25
  53. package/assets/bootstrap/scss/mixins/_banner.scss +9 -9
  54. package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -21
  55. package/assets/bootstrap/scss/mixins/_forms.scss +152 -152
  56. package/assets/bootstrap/scss/mixins/_table-variants.scss +24 -24
  57. package/assets/bootstrap/scss/mixins/_utilities.scss +97 -97
  58. package/assets/css/components/notification.css +1 -1
  59. package/assets/css/components/notification.css.map +1 -1
  60. package/assets/favicons/README.md +20 -20
  61. package/assets/favicons/browserconfig.xml +9 -9
  62. package/assets/favicons/manifest.json +31 -31
  63. package/assets/favicons/safari-pinned-tab.svg +35 -35
  64. package/assets/favicons/site.webmanifest +20 -20
  65. package/assets/js/components/accordion/accordion.component.js +14 -14
  66. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  67. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  68. package/assets/js/components/actionbar/actionbar.component.js +66 -66
  69. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  70. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  71. package/assets/js/components/address-lookup/address-lookup.component.js +58 -58
  72. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  73. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  74. package/assets/js/components/advanced-select/advanced-select.component.js +18 -18
  75. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  76. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  77. package/assets/js/components/applied-filters/applied-filters.component.js +6 -6
  78. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  79. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  80. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  81. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  82. package/assets/js/components/bento-grid/bento-grid.component.js +9 -9
  83. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  84. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  85. package/assets/js/components/calendar/calendar.component.min.js +1 -1
  86. package/assets/js/components/card/card.component.min.js +1 -1
  87. package/assets/js/components/card/card.component.min.js.map +1 -1
  88. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  89. package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -20
  90. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  91. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  92. package/assets/js/components/config/config.component.js +53 -53
  93. package/assets/js/components/config/config.component.min.js +1 -1
  94. package/assets/js/components/config/config.component.min.js.map +1 -1
  95. package/assets/js/components/content/content.component.js +9 -9
  96. package/assets/js/components/content/content.component.min.js +1 -1
  97. package/assets/js/components/content/content.component.min.js.map +1 -1
  98. package/assets/js/components/darkmode/darkmode.component.js +4 -4
  99. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  100. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
  101. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  102. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  103. package/assets/js/components/fileupload/fileupload.component.js +16 -16
  104. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  105. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  106. package/assets/js/components/filter-card/filter-card.component.js +7 -7
  107. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  108. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  109. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  110. package/assets/js/components/form/form.component.js +4 -4
  111. package/assets/js/components/form/form.component.min.js +1 -1
  112. package/assets/js/components/form/form.component.min.js.map +1 -1
  113. package/assets/js/components/header/header.component.js +53 -53
  114. package/assets/js/components/header/header.component.min.js +1 -1
  115. package/assets/js/components/header/header.component.min.js.map +1 -1
  116. package/assets/js/components/inline-edit/inline-edit.component.js +16 -16
  117. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  118. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  119. package/assets/js/components/input/input.component.js +10 -10
  120. package/assets/js/components/input/input.component.min.js +1 -1
  121. package/assets/js/components/input/input.component.min.js.map +1 -1
  122. package/assets/js/components/input-range/input-range.component.js +8 -8
  123. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  124. package/assets/js/components/input-range/input-range.component.min.js.map +1 -1
  125. package/assets/js/components/marketing/marketing.component.js +10 -10
  126. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  127. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  128. package/assets/js/components/menu/menu.component.js +6 -6
  129. package/assets/js/components/menu/menu.component.min.js +1 -1
  130. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  131. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  132. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  133. package/assets/js/components/modal/modal.component.js +21 -21
  134. package/assets/js/components/modal/modal.component.min.js +1 -1
  135. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  136. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  137. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +11 -11
  138. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  139. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
  140. package/assets/js/components/multiselect/multiselect.component.js +20 -20
  141. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  142. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  143. package/assets/js/components/nav/nav.component.js +45 -45
  144. package/assets/js/components/nav/nav.component.min.js +1 -1
  145. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  146. package/assets/js/components/notification/notification.component.js +14 -13
  147. package/assets/js/components/notification/notification.component.min.js +5 -4
  148. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  149. package/assets/js/components/pagination/pagination.component.js +39 -39
  150. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  151. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  152. package/assets/js/components/password/password.component.js +10 -10
  153. package/assets/js/components/password/password.component.min.js +1 -1
  154. package/assets/js/components/password/password.component.min.js.map +1 -1
  155. package/assets/js/components/popover/popover.component.js +7 -7
  156. package/assets/js/components/popover/popover.component.min.js +1 -1
  157. package/assets/js/components/popover/popover.component.min.js.map +1 -1
  158. package/assets/js/components/rank/rank.component.js +359 -359
  159. package/assets/js/components/rank/rank.component.min.js +1 -1
  160. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  161. package/assets/js/components/rankings/rankings.component.js +16 -16
  162. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  163. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  164. package/assets/js/components/rating/rating.component.js +9 -9
  165. package/assets/js/components/rating/rating.component.min.js +1 -1
  166. package/assets/js/components/rating/rating.component.min.js.map +1 -1
  167. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  168. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  169. package/assets/js/components/search/search.component.js +17 -17
  170. package/assets/js/components/search/search.component.min.js +1 -1
  171. package/assets/js/components/search/search.component.min.js.map +1 -1
  172. package/assets/js/components/slider/slider.component.js +12 -12
  173. package/assets/js/components/slider/slider.component.min.js +1 -1
  174. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  175. package/assets/js/components/split-button/split-button.component.js +18 -18
  176. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  177. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  178. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +113 -113
  179. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +1 -1
  180. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  181. package/assets/js/components/table/table.component.js +15 -15
  182. package/assets/js/components/table/table.component.min.js +1 -1
  183. package/assets/js/components/table/table.component.min.js.map +1 -1
  184. package/assets/js/components/table-ajax/table-ajax.component.js +15 -15
  185. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  186. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  187. package/assets/js/components/table-basic/table-basic.component.js +15 -15
  188. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  189. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  190. package/assets/js/components/table-no-submit/table-no-submit.component.js +15 -15
  191. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  192. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  193. package/assets/js/components/table-submit/table-submit.component.js +15 -15
  194. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  195. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  196. package/assets/js/components/tabs/tabs.component.js +17 -17
  197. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  198. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  199. package/assets/js/components/tag/tag.component.js +12 -12
  200. package/assets/js/components/tag/tag.component.min.js +1 -1
  201. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  202. package/assets/js/components/tooltip/tooltip.component.js +8 -8
  203. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  204. package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -1
  205. package/assets/js/components/video/video.component.js +9 -9
  206. package/assets/js/components/video/video.component.min.js +1 -1
  207. package/assets/js/components/video/video.component.min.js.map +1 -1
  208. package/assets/js/components/video-card/video-card.component.js +12 -12
  209. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  210. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  211. package/assets/js/components/video-modal/video-modal.component.js +13 -13
  212. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  213. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
  214. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  215. package/assets/js/modules/card.module.js +14 -14
  216. package/assets/js/modules/chart.module.js +4 -4
  217. package/assets/js/modules/integration-tests.js +3 -3
  218. package/assets/js/modules/table.js +2 -2
  219. package/assets/js/modules/videos.js +6 -6
  220. package/assets/js/scripts.bundle.js +1 -1
  221. package/assets/js/scripts.bundle.js.map +1 -1
  222. package/assets/js/scripts.bundle.min.js +1 -1
  223. package/assets/js/scripts.bundle.min.js.map +1 -1
  224. package/assets/sass/_bs_grid.scss +41 -41
  225. package/assets/sass/_bs_utilities.scss +51 -51
  226. package/assets/sass/_components.scss +162 -162
  227. package/assets/sass/_corefiles.scss +31 -31
  228. package/assets/sass/_elements.scss +30 -30
  229. package/assets/sass/_fonts.scss +28 -28
  230. package/assets/sass/_func.scss +2 -2
  231. package/assets/sass/_functions/bs_functions.scss +487 -487
  232. package/assets/sass/_functions/bs_mixins.scss +2103 -2103
  233. package/assets/sass/_functions/bs_utilities.scss +922 -922
  234. package/assets/sass/_functions/bs_variables.scss +1701 -1701
  235. package/assets/sass/_functions/functions.scss +48 -48
  236. package/assets/sass/_functions/mixins.scss +1 -1
  237. package/assets/sass/_grid.scss +320 -320
  238. package/assets/sass/_print.scss +64 -64
  239. package/assets/sass/_utilities.scss +35 -35
  240. package/assets/sass/components/actionbar.component.scss +421 -421
  241. package/assets/sass/components/actionbar.global.scss +115 -115
  242. package/assets/sass/components/address-lookup.component.scss +160 -160
  243. package/assets/sass/components/address-lookup.preload.scss +90 -90
  244. package/assets/sass/components/applied-filters.scss +19 -19
  245. package/assets/sass/components/barchart.component.scss +347 -347
  246. package/assets/sass/components/bento-grid.component.scss +109 -109
  247. package/assets/sass/components/bento-grid.global.scss +248 -248
  248. package/assets/sass/components/calendar.component.scss +1272 -1272
  249. package/assets/sass/components/calendar.config.scss +423 -423
  250. package/assets/sass/components/card.component.scss +187 -187
  251. package/assets/sass/components/card.module.scss +154 -154
  252. package/assets/sass/components/carousel.component.scss +631 -631
  253. package/assets/sass/components/carousel.config.scss +84 -84
  254. package/assets/sass/components/charts.config.scss +86 -86
  255. package/assets/sass/components/charts.module.scss +588 -588
  256. package/assets/sass/components/charts.scss +1298 -1298
  257. package/assets/sass/components/collapsible-side.scss +307 -307
  258. package/assets/sass/components/config.component.scss +235 -235
  259. package/assets/sass/components/content.component.scss +18 -18
  260. package/assets/sass/components/darkmode.component.scss +20 -20
  261. package/assets/sass/components/doughnutchart.component.scss +206 -206
  262. package/assets/sass/components/fileupload.scss +162 -162
  263. package/assets/sass/components/filter-card.component.scss +99 -99
  264. package/assets/sass/components/header.scss +251 -251
  265. package/assets/sass/components/inline-edit.preload.scss +203 -203
  266. package/assets/sass/components/inline-edit.scss +40 -40
  267. package/assets/sass/components/input-range.component.scss +46 -46
  268. package/assets/sass/components/input.component.scss +101 -101
  269. package/assets/sass/components/marketing.component.scss +65 -65
  270. package/assets/sass/components/menu.component.scss +161 -161
  271. package/assets/sass/components/menu.global.scss +82 -82
  272. package/assets/sass/components/milestone.scss +216 -216
  273. package/assets/sass/components/modal.component.scss +252 -252
  274. package/assets/sass/components/multi-step-modal.component.scss +255 -255
  275. package/assets/sass/components/multi-step-modal.global.scss +91 -91
  276. package/assets/sass/components/multi-step.component.scss +144 -144
  277. package/assets/sass/components/multiselect.preload.scss +8 -8
  278. package/assets/sass/components/multiselect.scss +238 -238
  279. package/assets/sass/components/nav.component.scss +718 -718
  280. package/assets/sass/components/nav.docs.scss +55 -55
  281. package/assets/sass/components/nav.global.scss +870 -870
  282. package/assets/sass/components/nav.preload.scss +54 -54
  283. package/assets/sass/components/notification.scss +204 -217
  284. package/assets/sass/components/pagination.scss +237 -237
  285. package/assets/sass/components/password.component.scss +55 -55
  286. package/assets/sass/components/popover.component.scss +28 -28
  287. package/assets/sass/components/property-searchbar.scss +139 -139
  288. package/assets/sass/components/rank.component.scss +275 -275
  289. package/assets/sass/components/rankings.component.scss +70 -70
  290. package/assets/sass/components/rankings.global.scss +140 -140
  291. package/assets/sass/components/rating.component.css +211 -211
  292. package/assets/sass/components/record-card.component.scss +191 -191
  293. package/assets/sass/components/slider.scss +127 -127
  294. package/assets/sass/components/snapshot.scss +65 -65
  295. package/assets/sass/components/split-button.component.scss +83 -83
  296. package/assets/sass/components/stepper.scss +157 -157
  297. package/assets/sass/components/table-basic.component.scss +136 -136
  298. package/assets/sass/components/table-basic.global.scss +676 -676
  299. package/assets/sass/components/table.component.scss +51 -51
  300. package/assets/sass/components/table.global.scss +398 -398
  301. package/assets/sass/components/tabs.component.scss +34 -34
  302. package/assets/sass/components/tabs.config.scss +258 -258
  303. package/assets/sass/components/tag.component.scss +59 -59
  304. package/assets/sass/components/tag.preload.scss +20 -20
  305. package/assets/sass/components/testimonial.scss +125 -125
  306. package/assets/sass/components/timeline.scss +92 -92
  307. package/assets/sass/components/tooltip.component.scss +148 -148
  308. package/assets/sass/components/video-card.component.scss +48 -48
  309. package/assets/sass/components/video-modal.component.scss +26 -26
  310. package/assets/sass/components/video.component.scss +74 -74
  311. package/assets/sass/components/word-count.component.scss +26 -26
  312. package/assets/sass/core.scss +4 -4
  313. package/assets/sass/elements/admin-panel.css +310 -310
  314. package/assets/sass/elements/badge-tag.css +101 -101
  315. package/assets/sass/elements/brand.css +80 -80
  316. package/assets/sass/elements/button__group.css +135 -135
  317. package/assets/sass/elements/buttons--action.css +71 -71
  318. package/assets/sass/elements/buttons--compact.css +168 -168
  319. package/assets/sass/elements/buttons--global.css +239 -239
  320. package/assets/sass/elements/buttons--secondary.css +18 -18
  321. package/assets/sass/elements/buttons--special.css +164 -164
  322. package/assets/sass/elements/buttons--tertiary.css +51 -51
  323. package/assets/sass/elements/buttons.scss +9 -9
  324. package/assets/sass/elements/code.css +45 -45
  325. package/assets/sass/elements/container.scss +118 -118
  326. package/assets/sass/elements/details.css +224 -224
  327. package/assets/sass/elements/dialog.scss +75 -75
  328. package/assets/sass/elements/dropdown.css +85 -85
  329. package/assets/sass/elements/feature.css +174 -174
  330. package/assets/sass/elements/forms.scss +1337 -1337
  331. package/assets/sass/elements/highlight.css +76 -76
  332. package/assets/sass/elements/hr.css +41 -41
  333. package/assets/sass/elements/icons.css +48 -48
  334. package/assets/sass/elements/input.scss +212 -212
  335. package/assets/sass/elements/label.css +20 -20
  336. package/assets/sass/elements/links--collapsible-side.scss +129 -129
  337. package/assets/sass/elements/links--global.scss +155 -155
  338. package/assets/sass/elements/links--video.scss +73 -73
  339. package/assets/sass/elements/links.scss +4 -4
  340. package/assets/sass/elements/lists--breadcrumbs.scss +26 -26
  341. package/assets/sass/elements/lists--steps.css +171 -171
  342. package/assets/sass/elements/lists--tick-list.scss +112 -112
  343. package/assets/sass/elements/lists.scss +99 -99
  344. package/assets/sass/elements/media.css +20 -20
  345. package/assets/sass/elements/modal.scss +411 -411
  346. package/assets/sass/elements/popover.scss +259 -259
  347. package/assets/sass/elements/prefix.scss +139 -139
  348. package/assets/sass/elements/progress.scss +208 -208
  349. package/assets/sass/elements/table.element.scss +144 -144
  350. package/assets/sass/elements/textarea.css +84 -84
  351. package/assets/sass/elements/toggle-button.css +49 -49
  352. package/assets/sass/elements/tooltips.scss +152 -152
  353. package/assets/sass/elements/type.css +166 -166
  354. package/assets/sass/email.scss +68 -68
  355. package/assets/sass/error.scss +31 -31
  356. package/assets/sass/foundations/animations.scss +2 -2
  357. package/assets/sass/foundations/colours.scss +104 -104
  358. package/assets/sass/foundations/reboot.scss +166 -166
  359. package/assets/sass/foundations/root.scss +269 -269
  360. package/assets/sass/main.scss +7 -7
  361. package/assets/sass/templates/auth.scss +106 -106
  362. package/assets/sass/templates/form.scss +95 -95
  363. package/assets/sass/utilities/align.css +24 -24
  364. package/assets/sass/utilities/border.css +65 -65
  365. package/assets/sass/utilities/clearfix.css +8 -8
  366. package/assets/sass/utilities/colours.scss +43 -43
  367. package/assets/sass/utilities/columns.css +61 -61
  368. package/assets/sass/utilities/display.scss +89 -89
  369. package/assets/sass/utilities/fixed.css +16 -16
  370. package/assets/sass/utilities/flex.scss +291 -291
  371. package/assets/sass/utilities/font-awesome-iso-fallbacks.css +43 -43
  372. package/assets/sass/utilities/gap.css +25 -25
  373. package/assets/sass/utilities/gradients.css +39 -39
  374. package/assets/sass/utilities/js-display.css +12 -12
  375. package/assets/sass/utilities/line-clamp.css +24 -24
  376. package/assets/sass/utilities/margins.scss +74 -74
  377. package/assets/sass/utilities/max-height.scss +93 -93
  378. package/assets/sass/utilities/opacity.css +20 -20
  379. package/assets/sass/utilities/order.css +104 -104
  380. package/assets/sass/utilities/overflow.css +16 -16
  381. package/assets/sass/utilities/paddings.scss +33 -33
  382. package/assets/sass/utilities/pointer-events.css +8 -8
  383. package/assets/sass/utilities/position.css +67 -67
  384. package/assets/sass/utilities/ratio.css +33 -33
  385. package/assets/sass/utilities/rounded.css +56 -56
  386. package/assets/sass/utilities/shadow.css +6 -6
  387. package/assets/sass/utilities/sizes.css +92 -92
  388. package/assets/sass/utilities/sticky.css +38 -38
  389. package/assets/sass/utilities/text-truncate.css +6 -6
  390. package/assets/sass/utilities/text.css +190 -190
  391. package/assets/sass/utilities/visible.css +8 -8
  392. package/assets/sass/utilities/visually-hidden.css +13 -13
  393. package/assets/sass/utilities/wider-colours.scss +8 -8
  394. package/assets/svg/illustrations/table.svg +165 -165
  395. package/assets/svg/logo.svg +56 -56
  396. package/assets/ts/components/accordion/accordion.component.ts +77 -77
  397. package/assets/ts/components/actionbar/actionbar.component.ts +567 -567
  398. package/assets/ts/components/address-lookup/address-lookup.component.ts +672 -672
  399. package/assets/ts/components/advanced-select/advanced-select.component.ts +116 -116
  400. package/assets/ts/components/applied-filters/applied-filters.component.ts +37 -37
  401. package/assets/ts/components/bento-grid/bento-grid.component.ts +88 -88
  402. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +165 -165
  403. package/assets/ts/components/config/config.component.ts +699 -699
  404. package/assets/ts/components/content/content.component.ts +78 -78
  405. package/assets/ts/components/darkmode/darkmode.component.ts +108 -108
  406. package/assets/ts/components/fileupload/fileupload.component.ts +74 -74
  407. package/assets/ts/components/filter-card/filter-card.component.ts +106 -106
  408. package/assets/ts/components/form/form.component.ts +102 -102
  409. package/assets/ts/components/header/header.component.ts +97 -97
  410. package/assets/ts/components/inline-edit/inline-edit.component.ts +212 -212
  411. package/assets/ts/components/input/input.component.ts +278 -278
  412. package/assets/ts/components/input-range/input-range.component.ts +78 -78
  413. package/assets/ts/components/marketing/marketing.component.ts +44 -44
  414. package/assets/ts/components/menu/menu.component.ts +212 -212
  415. package/assets/ts/components/modal/modal.component.ts +184 -184
  416. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -304
  417. package/assets/ts/components/multiselect/multiselect.component.ts +349 -349
  418. package/assets/ts/components/nav/nav.component.ts +369 -369
  419. package/assets/ts/components/notification/notification.component.ts +173 -172
  420. package/assets/ts/components/pagination/pagination.component.ts +213 -213
  421. package/assets/ts/components/password/password.component.ts +118 -118
  422. package/assets/ts/components/popover/popover.component.ts +50 -50
  423. package/assets/ts/components/rank/rank.component.ts +394 -394
  424. package/assets/ts/components/rankings/rankings.component.ts +79 -79
  425. package/assets/ts/components/rating/rating.component.ts +86 -86
  426. package/assets/ts/components/search/search.component.ts +244 -244
  427. package/assets/ts/components/slider/slider.component.ts +170 -170
  428. package/assets/ts/components/split-button/split-button.component.ts +63 -63
  429. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1919 -1919
  430. package/assets/ts/components/table/table.component.ts +94 -94
  431. package/assets/ts/components/table-ajax/table-ajax.component.ts +70 -70
  432. package/assets/ts/components/table-basic/table-basic.component.ts +56 -56
  433. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +130 -130
  434. package/assets/ts/components/table-submit/table-submit.component.ts +71 -71
  435. package/assets/ts/components/tabs/tabs.component.ts +70 -70
  436. package/assets/ts/components/tag/tag.component.ts +104 -104
  437. package/assets/ts/components/tooltip/tooltip.component.ts +98 -98
  438. package/assets/ts/components/video/video.component.ts +74 -74
  439. package/assets/ts/components/video-card/video-card.component.ts +129 -129
  440. package/assets/ts/components/video-modal/video-modal.component.ts +88 -88
  441. package/assets/ts/modules/advanced-select.ts +186 -186
  442. package/assets/ts/modules/applied-filters.ts +238 -238
  443. package/assets/ts/modules/card.module.ts +46 -46
  444. package/assets/ts/modules/chart.module.ts +594 -594
  445. package/assets/ts/modules/data-layer.md +71 -71
  446. package/assets/ts/modules/dialogs.ts +259 -259
  447. package/assets/ts/modules/dropdown.ts +216 -216
  448. package/assets/ts/modules/helper.test.ts +143 -143
  449. package/assets/ts/modules/helpers.ts +212 -212
  450. package/assets/ts/modules/integration-tests.ts +525 -525
  451. package/assets/ts/modules/modal.ts +45 -45
  452. package/assets/ts/modules/password.ts +82 -82
  453. package/assets/ts/modules/table.ts +1500 -1500
  454. package/assets/ts/modules/test.ts +22 -22
  455. package/assets/ts/modules/videos.ts +233 -233
  456. package/assets/ts/scripts.ts +111 -111
  457. package/dist/components.es.js +24 -24
  458. package/dist/components.umd.js +3 -2
  459. package/package.json +115 -115
  460. package/src/components/AdvancedSelect/AdvancedSelect.vue +28 -28
  461. package/src/components/Config/Config.vue +23 -23
  462. package/src/components/DarkMode/DarkMode.vue +19 -19
  463. package/src/components/Filterlist/Filterlist.vue +23 -23
  464. package/src/components/Form/Form.vue +22 -22
  465. package/src/components/Header/Header.vue +36 -36
  466. package/src/components/Input/Input.vue +22 -22
  467. package/src/components/InputRange/InputRange.vue +22 -22
  468. package/src/components/Modal/Modal.vue +22 -22
  469. package/src/components/MultiStepModal/MultiStepModal.vue +23 -23
  470. package/src/components/NoteFeed/NoteFeed.vue +82 -82
  471. package/src/components/Password/Password.vue +23 -23
  472. package/src/components/Popover/Popover.vue +22 -22
  473. package/src/components/PropertySearchbar/PropertySearchbar.vue +235 -235
  474. package/src/components/PropertySearchbar/README.md +25 -25
  475. package/src/components/Rating/Rating.vue +22 -22
  476. package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -22
  477. package/src/components/Snapshot/Snapshot.vue +30 -30
  478. package/src/components/Tag/Tag.vue +22 -22
  479. package/src/components/Tooltip/Tooltip.vue +22 -22
  480. package/src/components/Video/Video.vue +22 -22
  481. package/src/components/VideoModal/VideoModal.vue +22 -22
  482. package/assets/bootstrap/dist/css/bootstrap-grid.css +0 -4124
  483. package/assets/bootstrap/dist/css/bootstrap-grid.css.map +0 -1
  484. package/assets/bootstrap/dist/css/bootstrap-grid.min.css +0 -7
  485. package/assets/bootstrap/dist/css/bootstrap-grid.min.css.map +0 -1
  486. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css +0 -4123
  487. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css.map +0 -1
  488. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -7
  489. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +0 -1
  490. package/assets/bootstrap/dist/css/bootstrap-reboot.css +0 -488
  491. package/assets/bootstrap/dist/css/bootstrap-reboot.css.map +0 -1
  492. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css +0 -7
  493. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css.map +0 -1
  494. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css +0 -485
  495. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +0 -1
  496. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -7
  497. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +0 -1
  498. package/assets/bootstrap/dist/css/bootstrap-utilities.css +0 -4197
  499. package/assets/bootstrap/dist/css/bootstrap-utilities.css.map +0 -1
  500. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css +0 -7
  501. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css.map +0 -1
  502. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css +0 -4188
  503. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +0 -1
  504. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -7
  505. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +0 -1
  506. package/assets/bootstrap/dist/css/bootstrap.css +0 -10907
  507. package/assets/bootstrap/dist/css/bootstrap.css.map +0 -1
  508. package/assets/bootstrap/dist/css/bootstrap.min.css +0 -7
  509. package/assets/bootstrap/dist/css/bootstrap.min.css.map +0 -1
  510. package/assets/bootstrap/dist/css/bootstrap.rtl.css +0 -10867
  511. package/assets/bootstrap/dist/css/bootstrap.rtl.css.map +0 -1
  512. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css +0 -7
  513. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css.map +0 -1
  514. package/assets/bootstrap/dist/js/bootstrap.bundle.js +0 -7066
  515. package/assets/bootstrap/dist/js/bootstrap.bundle.js.map +0 -1
  516. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js +0 -7
  517. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js.map +0 -1
  518. package/assets/bootstrap/dist/js/bootstrap.esm.js +0 -5204
  519. package/assets/bootstrap/dist/js/bootstrap.esm.js.map +0 -1
  520. package/assets/bootstrap/dist/js/bootstrap.esm.min.js +0 -7
  521. package/assets/bootstrap/dist/js/bootstrap.esm.min.js.map +0 -1
  522. package/assets/bootstrap/dist/js/bootstrap.js +0 -5251
  523. package/assets/bootstrap/dist/js/bootstrap.js.map +0 -1
  524. package/assets/bootstrap/dist/js/bootstrap.min.js +0 -7
  525. package/assets/bootstrap/dist/js/bootstrap.min.js.map +0 -1
  526. package/assets/bootstrap/js/dist/alert.js +0 -100
  527. package/assets/bootstrap/js/dist/alert.js.map +0 -1
  528. package/assets/bootstrap/js/dist/base-component.js +0 -100
  529. package/assets/bootstrap/js/dist/base-component.js.map +0 -1
  530. package/assets/bootstrap/js/dist/button.js +0 -82
  531. package/assets/bootstrap/js/dist/button.js.map +0 -1
  532. package/assets/bootstrap/js/dist/carousel.js +0 -471
  533. package/assets/bootstrap/js/dist/carousel.js.map +0 -1
  534. package/assets/bootstrap/js/dist/collapse.js +0 -311
  535. package/assets/bootstrap/js/dist/collapse.js.map +0 -1
  536. package/assets/bootstrap/js/dist/dom/data.js +0 -67
  537. package/assets/bootstrap/js/dist/dom/data.js.map +0 -1
  538. package/assets/bootstrap/js/dist/dom/event-handler.js +0 -284
  539. package/assets/bootstrap/js/dist/dom/event-handler.js.map +0 -1
  540. package/assets/bootstrap/js/dist/dom/manipulator.js +0 -85
  541. package/assets/bootstrap/js/dist/dom/manipulator.js.map +0 -1
  542. package/assets/bootstrap/js/dist/dom/selector-engine.js +0 -86
  543. package/assets/bootstrap/js/dist/dom/selector-engine.js.map +0 -1
  544. package/assets/bootstrap/js/dist/dropdown.js +0 -471
  545. package/assets/bootstrap/js/dist/dropdown.js.map +0 -1
  546. package/assets/bootstrap/js/dist/modal.js +0 -397
  547. package/assets/bootstrap/js/dist/modal.js.map +0 -1
  548. package/assets/bootstrap/js/dist/offcanvas.js +0 -298
  549. package/assets/bootstrap/js/dist/offcanvas.js.map +0 -1
  550. package/assets/bootstrap/js/dist/popover.js +0 -102
  551. package/assets/bootstrap/js/dist/popover.js.map +0 -1
  552. package/assets/bootstrap/js/dist/scrollspy.js +0 -308
  553. package/assets/bootstrap/js/dist/scrollspy.js.map +0 -1
  554. package/assets/bootstrap/js/dist/tab.js +0 -334
  555. package/assets/bootstrap/js/dist/tab.js.map +0 -1
  556. package/assets/bootstrap/js/dist/toast.js +0 -237
  557. package/assets/bootstrap/js/dist/toast.js.map +0 -1
  558. package/assets/bootstrap/js/dist/tooltip.js +0 -663
  559. package/assets/bootstrap/js/dist/tooltip.js.map +0 -1
  560. package/assets/bootstrap/js/dist/util/backdrop.js +0 -166
  561. package/assets/bootstrap/js/dist/util/backdrop.js.map +0 -1
  562. package/assets/bootstrap/js/dist/util/component-functions.js +0 -47
  563. package/assets/bootstrap/js/dist/util/component-functions.js.map +0 -1
  564. package/assets/bootstrap/js/dist/util/config.js +0 -80
  565. package/assets/bootstrap/js/dist/util/config.js.map +0 -1
  566. package/assets/bootstrap/js/dist/util/focustrap.js +0 -130
  567. package/assets/bootstrap/js/dist/util/focustrap.js.map +0 -1
  568. package/assets/bootstrap/js/dist/util/index.js +0 -351
  569. package/assets/bootstrap/js/dist/util/index.js.map +0 -1
  570. package/assets/bootstrap/js/dist/util/sanitizer.js +0 -123
  571. package/assets/bootstrap/js/dist/util/sanitizer.js.map +0 -1
  572. package/assets/bootstrap/js/dist/util/scrollbar.js +0 -139
  573. package/assets/bootstrap/js/dist/util/scrollbar.js.map +0 -1
  574. package/assets/bootstrap/js/dist/util/swipe.js +0 -156
  575. package/assets/bootstrap/js/dist/util/swipe.js.map +0 -1
  576. package/assets/bootstrap/js/dist/util/template-factory.js +0 -178
  577. package/assets/bootstrap/js/dist/util/template-factory.js.map +0 -1
@@ -1,1337 +1,1337 @@
1
- @use 'sass:map';
2
- @use 'sass:math';
3
-
4
- @use '../_func' as *;
5
-
6
- @use './label' as *;
7
- @use './input' as *;
8
- @use './textarea' as *;
9
-
10
-
11
- $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>");
12
- $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>");
13
-
14
- @layer elements {
15
- /* #region RESETS */
16
-
17
-
18
- /* 1. Remove the margin in Firefox and Safari */
19
- select,
20
- optgroup {
21
- margin: 0; /* 1 */
22
- font-family: inherit;
23
- font-size: inherit;
24
- line-height: inherit;
25
- }
26
-
27
- /* Remove the inheritance of text transform in Firefox */
28
- select {
29
- text-transform: none;
30
- }
31
- /* Set the cursor for non-`<button>` buttons */
32
- /* */
33
- /* Details at https://github.com/twbs/bootstrap/pull/30562 */
34
-
35
- select {
36
- /* Remove the inheritance of word-wrap in Safari. */
37
- /* See https://github.com/twbs/bootstrap/issues/24990 */
38
- word-wrap: normal;
39
-
40
- /* Undo the opacity change from Chrome */
41
- &:disabled {
42
- opacity: 1;
43
- }
44
- }
45
-
46
-
47
- /* 1. Browsers set a default `min-width: min-content;` on fieldsets, */
48
- /* unlike e.g. `<div>`s, which have `min-width: 0;` by default. */
49
- /* So we reset that to ensure fieldsets behave more like a standard block element. */
50
- /* See https://github.com/twbs/bootstrap/issues/12359 */
51
- /* and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements */
52
- /* 2. Reset the default outline behavior of fieldsets so they don't affect page layout. */
53
-
54
- fieldset {
55
- min-width: 0; /* 1 */
56
- padding: 0; /* 2 */
57
- margin: 0; /* 2 */
58
- border: 0; /* 2 */
59
- }
60
-
61
- /* Correct element displays */
62
-
63
- output {
64
- display: inline-block;
65
- }
66
-
67
- /* Remove border from iframe */
68
-
69
- iframe {
70
- border: 0;
71
- }
72
-
73
- /* Summary */
74
- /* */
75
- /* 1. Add the correct display in all browsers */
76
-
77
- summary {
78
- display: list-item; /* 1 */
79
- cursor: pointer;
80
- }
81
-
82
- /* Progress */
83
- /* */
84
- /* Add the correct vertical alignment in Chrome, Firefox, and Opera. */
85
-
86
- progress {
87
- vertical-align: baseline;
88
- }
89
-
90
- /* Hidden attribute */
91
- /* */
92
- /* Always hide an element with the `hidden` HTML attribute. */
93
-
94
- /* #endregion */
95
-
96
- /* #region input field */
97
- :is(select:not(.select--minimal, .btn)) {
98
-
99
- display: block;
100
- width: 100%;
101
- display: block;
102
- width: 100%;
103
- padding: var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);
104
- font-size: var(--input-fs, 1rem);
105
- line-height: var(--input-lh, 1.25rem);
106
- color: var(--colour-heading);
107
- background-color: var(--colour-canvas-2);
108
- background-clip: padding-box;
109
- border: 2px solid var(--colour-primary);
110
- appearance: none; /* Fix appearance for date inputs in Safari */
111
- border-radius: 0.5rem;
112
- margin-bottom: 1.5rem;
113
- min-height: calc(
114
- var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) +
115
- 4px
116
- );
117
- max-height: calc(
118
- var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) +
119
- 4px
120
- );
121
-
122
-
123
- /* Customize the `:focus` state to imitate native WebKit styles. */
124
- &:is(:focus, .focus):not(:disabled) {
125
- border-color: var(--colour-info);
126
- outline: 0;
127
- }
128
-
129
- &:is(:focus, .focus):not(:disabled):not(:invalid) {
130
- box-shadow: 0 0 0 0.1rem rgba(30, 190, 230, 0.25);
131
- }
132
-
133
- /* Disabled inputs */
134
- &:disabled {
135
- background-color: #ccd6d8;
136
- opacity: 0.4;
137
- cursor: not-allowed;
138
- }
139
- }
140
-
141
- [disabled] :is(
142
- select:not(.select--minimal, .btn)
143
- ) {
144
- background-color: #ccd6d8;
145
- opacity: 0.4;
146
- cursor: not-allowed;
147
- pointer-events: none;
148
- }
149
-
150
- [disabled] label {
151
-
152
- cursor: not-allowed;
153
- pointer-events: none;
154
- }
155
- /* #endregion */
156
-
157
- /* #region legend */
158
- fieldset {
159
- width: 100%;
160
- position: relative;
161
- }
162
- legend {
163
- font-family: var(--font-heading);
164
- font-style: normal;
165
- font-weight: var(--heading-weight);
166
- line-height: 2rem;
167
- color: var(--colour-heading);
168
- margin: 0;
169
- clear: both;
170
- display: block;
171
- float: none;
172
- font-size: var(--h4-fs);
173
- line-height: var(--heading-lh);
174
- padding-bottom: 0.5rem;
175
- max-width: var(--content-max-width);
176
- min-width: 100%;
177
- }
178
-
179
- /* #endregion */
180
-
181
- /* #region wrappers */
182
- div:has(> label:first-child):has(> input) {
183
- position: relative;
184
- max-width: var(--input-max-width);
185
- margin-bottom: 1.5rem;
186
-
187
- input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']),
188
- output,
189
- .prefix,
190
- .suffix {
191
- margin-bottom: 0 !important;
192
- }
193
-
194
- display: flex;
195
- flex-wrap: wrap;
196
- align-items: center;
197
-
198
- > *:not(input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range'])):not(output):not(
199
- .prefix
200
- ):not(.suffix) {
201
- flex-shrink: 0;
202
- width: 100%;
203
- }
204
-
205
- :is(input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']), output) {
206
- flex-shrink: 1;
207
- flex-grow: 1;
208
- width: 0;
209
- }
210
-
211
- input ~ *:not(output) {
212
- order: 5;
213
- margin-top: 0.5rem;
214
- }
215
- }
216
-
217
-
218
- *:has(> :is(.form-control-sm, .input--sm)) {
219
- --input-fs: 0.875rem; /* 14/16 */
220
- --input-lh: 1rem;
221
- --input-padding-block: #{0.625rem};
222
- --input-padding-inline: 0.875rem; /* 14/16 */
223
- }
224
- *:has(> :is(.form-control-lg, .input--lg)) {
225
- --input-fs: 1.5rem;
226
- --input-lh: 1.8125rem; /* 29 */
227
- --input-padding-block: 1.25rem;
228
- --input-padding-inline: 1.375rem; /* 22 */
229
- }
230
-
231
- *:has(> label:first-child):has(> input):has(> :is(.form-control-inline, .input--inline)) {
232
- label {
233
- flex-shrink: 0;
234
- white-space: nowrap;
235
- width: fit-content !important;
236
- margin: 0;
237
- margin-inline-end: 1rem;
238
- }
239
- }
240
- /* #endregion */
241
-
242
- /* #region readonly */
243
- *:has(> input[readonly]) {
244
- position: relative;
245
-
246
- max-width: var(--input-max-width);
247
-
248
- &:after {
249
- font-family: 'Font Awesome 7 Pro';
250
- font-weight: 300;
251
- content: '\f023';
252
- position: absolute;
253
- font-size: var(--input-lh, 1.25rem);
254
- height: var(--input-lh, 1.25rem);
255
- width: var(--input-lh, 1.25rem);
256
- bottom: calc(var(--input-padding-block, 0.75rem) + 2px);
257
- right: calc(var(--input-padding-block, 1rem) + 2px);
258
- text-align: center;
259
- }
260
- }
261
-
262
- /* #endregion */
263
-
264
- /* #region prefix */
265
-
266
- @supports selector(:has(*)) {
267
-
268
-
269
-
270
- .suffix
271
- ~ :is(
272
- input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']):not([type='date']):not(
273
- [type='time']
274
- ),
275
- output
276
- ),
277
- :is(
278
- input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']):not([type='date']):not(
279
- [type='time']
280
- ),
281
- output
282
- ):has(~ .suffix) {
283
- order: 1;
284
-
285
- border-start-end-radius: 0 !important;
286
- border-end-end-radius: 0 !important;
287
- }
288
-
289
- :is(
290
- input
291
- ):has(~ iam-password-indicator) {
292
- border-start-end-radius: 0 !important;
293
- border-end-end-radius: 0 !important;
294
- }
295
- }
296
-
297
- /* #endregion */
298
-
299
- /* #region Form validation */
300
-
301
- .was-validated *:not(button):is(:invalid, .is-invalid, [aria-invalid]):not(.is-valid) + label,
302
- .was-validated label:has(*:not(button):is(:invalid, .is-invalid, [aria-invalid]):not(.is-valid)) {
303
- --colour-check-border: var(--colour-danger);
304
- --colour-check-bg: #fcebec;
305
- border-color: var(--colour-danger);
306
- }
307
-
308
- .was-validated *:not(button):is(:invalid, .is-invalid, [aria-invalid], :-internal-autofill-selected) {
309
- border-color: var(--colour-danger) !important;
310
- }
311
-
312
- .was-validated select:not(.btn):is(:invalid, .is-invalid, [aria-invalid], :-internal-autofill-selected) {
313
- $form-select-indicator-new: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/></svg>") !default;
314
-
315
- background:
316
- var(--icon-select) right var(--input-padding-block, 0.75rem) top
317
- var(--input-padding-block, 0.75rem) / var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,
318
- linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top /
319
- calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem))
320
- calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem))
321
- no-repeat,
322
- var(--icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem) /
323
- var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;
324
- padding-right: 6rem !important;
325
- }
326
-
327
- .was-validated input:is(:invalid, .is-invalid, [aria-invalid], :-internal-autofill-selected) {
328
- background-image: var(--icon-error);
329
- background-repeat: no-repeat;
330
- background-position: right var(--input-padding-inline, 1rem) center;
331
- background-size: var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);
332
- padding-right: calc(
333
- var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)
334
- ) !important;
335
- }
336
-
337
- .was-validated *:not(button):is(:valid, .is-valid):not(.is-invalid) {
338
- border-color: var(--colour-complete);
339
- }
340
-
341
- .was-validated input:is(:valid, .is-valid):not(:is(:invalid, .is-invalid)) {
342
- background-image: var(--icon-tick);
343
- background-repeat: no-repeat;
344
- background-position: right var(--input-padding-inline, 1rem) center;
345
- background-size: var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);
346
- padding-right: calc(
347
- var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)
348
- ) !important;
349
- }
350
-
351
- .invalid-feedback {
352
- color: var(--colour-danger);
353
- margin-top: 0.5rem;
354
- background-image: var(--icon-error);
355
- background-repeat: no-repeat;
356
- background-position: left top 1px;
357
- background-size: var(--input-fs, 1rem) var(--input-fs, 1rem);
358
- padding-left: calc(var(--input-fs, 1rem) + 0.5rem);
359
- display: none;
360
- }
361
-
362
- /* Postcode lookup validation */
363
- iam-address-lookup:has([required]) {
364
- --req-display: none;
365
- }
366
-
367
- .was-validated :is(:invalid, .is-invalid) ~ .invalid-feedback {
368
- display: block;
369
- }
370
-
371
- .was-validated iam-address-lookup:has([required]:invalid) {
372
- --error-border: var(--colour-danger);
373
- --error-bg: #{var(--icon-error)};
374
- --error-display: block;
375
- --error-hide: none;
376
- }
377
-
378
- /* #region radio/checkbox field */
379
- @supports selector(:has(*)) {
380
- input:is([type='radio'], [type='checkbox']) {
381
- position: absolute;
382
- top: 0;
383
- left: 0;
384
- opacity: 0;
385
- height: 0;
386
- width: 0;
387
- margin: 0;
388
- pointer-events: none;
389
- }
390
-
391
- :is(div, fieldset, label:not(.tag)):has(> input:is([type='radio'], [type='checkbox'])):not(:has(label input)) {
392
- position: relative;
393
- margin-bottom: 1.5rem;
394
- }
395
-
396
- :is(div, fieldset, label:not(.tag)):has(> input[type='radio']) {
397
- --border-radius: 50%;
398
- --outline-width: 0.5rem;
399
- }
400
-
401
- :is(div, fieldset, label:not(.tag)):has(> input[type='checkbox']) {
402
- --border-radius: 0.25rem;
403
- --outline-width: 0.25rem;
404
- }
405
-
406
- input:is([type='radio'], [type='checkbox']) + label:not(:has(> iam-card)),
407
- label:not(.tag):has(input:is([type='radio'], [type='checkbox'])):not(:has(> iam-card)) {
408
- --tick-colour: transparent;
409
-
410
- color: var(--colour-heading);
411
- position: relative;
412
- font-size: 1rem;
413
- line-height: 1.25rem;
414
- padding-left: 2.5rem;
415
- padding-top: 0.625rem; /* 10 */
416
- padding-bottom: 0.625rem; /* 10 */
417
- margin-bottom: 1.5rem;
418
- margin-right: 1.5rem;
419
- cursor: pointer;
420
-
421
- &:has(+ span) {
422
- margin-bottom: 0;
423
- }
424
-
425
- &:has(+ input) {
426
- margin-bottom: 0;
427
- }
428
-
429
- &:last-child {
430
- margin-bottom: 0;
431
- }
432
-
433
- &:before {
434
- content: '';
435
- border: 2px solid var(--colour-check-border, var(--colour-primary));
436
- background: var(--colour-check-bg, transparent);
437
- border-radius: var(--border-radius);
438
- height: var(--radio-size, 1.5rem);
439
- width: var(--radio-size, 1.5rem);
440
- display: inline-block;
441
- position: absolute;
442
- top: 0.5rem;
443
- left: var(--outline-width);
444
- }
445
-
446
- &.btn:before {
447
- opacity: 0;
448
- }
449
- }
450
-
451
- input[type='radio'] + label:not(:has(> iam-card)),
452
- label:not(.tag):has(input[type='radio']):not(:has(> iam-card)) {
453
- &:after {
454
- content: '' !important;
455
- background: var(--colour-info);
456
- border-radius: var(--border-radius);
457
- height: 0.875rem; /* 14/16 */
458
- width: 0.875rem; /* 14/16 */
459
-
460
- height: var(--radio-inner-size, 0.875rem);
461
- width: var(--radio-inner-size, 0.875rem);
462
-
463
- display: none;
464
- position: absolute;
465
- top: var(--radio-inner-top, 0.8125rem);
466
- left: var(--radio-inner-left, calc(0.3125rem + var(--outline-width)));
467
- }
468
-
469
- &.radio--tick {
470
- &:before {
471
- content: '\f00c';
472
- position: absolute;
473
- font-size: 1.5em;
474
- line-height: 1;
475
- color: var(--tick-colour);
476
- font-family: 'Font Awesome 7 Pro';
477
-
478
- background: none !important;
479
- border: none !important;
480
- outline: none !important;
481
- left: 0.25rem;
482
- }
483
- &:after {
484
- display: none;
485
- }
486
- }
487
- }
488
-
489
- @media (forced-colors: active) {
490
- input:is([type='radio'], [type='checkbox']):not(:checked) + label.radio--tick:not(:has(> iam-card)),
491
- label:has(input:is([type='radio'], [type='checkbox']):not(:checked)).radio--tick:not(:has(> iam-card)) {
492
- &:before {
493
- display: none;
494
- }
495
- }
496
- }
497
-
498
- /* multiple radio's together */
499
- :is(div, fieldset):has(> :is(input[type='radio'], input[type='checkbox']):nth-of-type(2)) {
500
- label:not(.tag):not(:has(> iam-card)) {
501
- margin-bottom: 0rem;
502
- }
503
- }
504
-
505
- fieldset:has(label > input:is([type="radio"],[type="checkbox"])){
506
-
507
- label {
508
- margin-bottom: 0!important;
509
- }
510
-
511
- margin-bottom: 1.5rem;
512
- }
513
-
514
- input:is([type='radio'], [type='checkbox']):checked + label,
515
- label:not(.tag):has(input:is([type='radio'], [type='checkbox']):checked) {
516
- --tick-colour: var(--colour-info);
517
-
518
- &:before {
519
- border-color: var(--colour-info);
520
- }
521
-
522
- &:after {
523
- display: inline-block;
524
- }
525
-
526
- iam-card {
527
- --colour: var(--colour, var(--colour-info));
528
- }
529
- }
530
-
531
- input[type='checkbox']:not([disabled]):checked + label,
532
- label:not(.tag):has(input[type='checkbox']:not([disabled]):checked) {
533
- &:before {
534
- background: var(--colour-info) !important;
535
- }
536
- }
537
-
538
- input[type='checkbox']:checked + label:not(:has(> iam-card)),
539
- label:not(.tag):has(input[type='checkbox']:checked) {
540
- &:after {
541
- content: '\f00c';
542
- position: absolute;
543
- font-size: var(--checkbox-tick-size, 1em);
544
- line-height: 1;
545
- color: var(--colour-primary-theme);
546
- font-family: 'Font Awesome 7 Pro';
547
- font-weight: bold;
548
- height: var(--checkbox-inner-size, 1.5rem);
549
- width: var(--checkbox-inner-size, 1.5rem);
550
- line-height: 1.625rem; /* 26 */
551
- background: none !important;
552
- border: none !important;
553
- outline: none !important;
554
- top: var(--checkbox-inner-top, 0.5rem);
555
- left: var(--checkbox-inner-left, var(--outline-width));
556
- text-align: center;
557
- }
558
- }
559
-
560
- input[type='checkbox']:indeterminate + label,
561
- label:not(.tag):has(input[type='checkbox']:indeterminate) {
562
- &:before {
563
- background: var(--colour-info) !important;
564
- border-color: var(--colour-info) !important;
565
- }
566
-
567
- &:after {
568
- content: '\f068';
569
- position: absolute;
570
- font-size: var(--checkbox-tick-size, 1em);
571
- line-height: 1;
572
- color: var(--colour-primary-theme);
573
- font-family: 'Font Awesome 7 Pro';
574
- font-weight: bold;
575
- height: var(--checkbox-inner-size, 1.5rem);
576
- width: var(--checkbox-inner-size, 1.5rem);
577
- line-height: 1.625rem; /* 26 */
578
- background: none !important;
579
- border: none !important;
580
- outline: none !important;
581
- top: var(--checkbox-inner-top, 0.5rem);
582
- left: var(--checkbox-inner-left, var(--outline-width));
583
- text-align: center;
584
- }
585
- }
586
-
587
- input:is([type='radio'], [type='checkbox']):checked:is(:focus, :hover, .focus) + label,
588
- label:not(.tag):has(input:is([type='radio'], [type='checkbox']):checked:is(:focus, :hover, .focus)) {
589
- --tick-colour: var(--colour-info);
590
- }
591
-
592
- input:is([type='radio'], [type='checkbox']):is(:focus, :hover, .focus) + label,
593
- input:is([type='radio'], [type='checkbox']) + label.hover,
594
- label:not(.tag):has(input:is([type='radio'], [type='checkbox']):is(:focus, :hover, .focus)) {
595
- --tick-colour: var(--colour-muted);
596
-
597
- &:before {
598
- background: var(--colour-check-bg, light-dark(var(--colour-light), #444444));
599
- outline: var(--outline-width) solid light-dark(var(--colour-light), #444444);
600
- }
601
- }
602
- input:is([type='radio'], [type='checkbox']):is(:active, .active) + label,
603
- input:is([type='radio'], [type='checkbox']) + label.active,
604
- label:not(.tag):has(input:is([type='radio'], [type='checkbox']):is(:active, .active)) {
605
- --tick-colour: var(--colour-light);
606
-
607
- &:before {
608
- background: var(--colour-check-bg, #e0e0e0);
609
- outline: var(--outline-width) solid #e0e0e0;
610
- }
611
- }
612
-
613
- /* Disabled */
614
- input:is([type='radio'], [type='checkbox']):disabled + label,
615
- label:not(.tag):has(input:is([type='radio'], [type='checkbox']):disabled) {
616
- opacity: 0.4;
617
- cursor: not-allowed;
618
-
619
- > iam-card {
620
- pointer-events: none;
621
- }
622
-
623
- &:before {
624
- background-color: none !important;
625
- outline: none !important;
626
- border-color: var(--colour-primary) !important;
627
- }
628
- }
629
-
630
- input[type='radio'][disabled]:checked + label,
631
- label:not(.tag):has(input[type='radio'][disabled]:checked) {
632
- &:after {
633
- background-color: var(--colour-primary) !important;
634
- }
635
- }
636
-
637
- input[type='checkbox'][disabled]:checked + label,
638
- label:not(.tag):has(input[type='checkbox'][disabled]:checked) {
639
- &:before {
640
- background: #e0e0e0 !important;
641
- border-color: #e0e0e0 !important;
642
- }
643
- }
644
- }
645
- /* #endregion */
646
-
647
- /* #region Conditional reveal */
648
- .conditional {
649
- display: none;
650
- }
651
-
652
- input:checked + .conditional,
653
- input:checked + label + .conditional,
654
- label:has(:checked) + .conditional,
655
- .was-validated .conditional:has(input[required]:invalid),
656
- .was-validated .conditional:focus-within {
657
- display: block;
658
- clear: both;
659
- }
660
-
661
- input:not([class*='conditional-input-']):nth-of-type(1):checked ~ .conditional-1,
662
- input:not([class*='conditional-input-']):nth-of-type(2):checked ~ .conditional-2,
663
- input:not([class*='conditional-input-']):nth-of-type(3):checked ~ .conditional-3,
664
- input:not([class*='conditional-input-']):nth-of-type(4):checked ~ .conditional-4,
665
- input:not([class*='conditional-input-']):nth-of-type(5):checked ~ .conditional-5,
666
- input.conditional-input-1:checked ~ .conditional-1,
667
- input.conditional-input-2:checked ~ .conditional-2,
668
- input.conditional-input-3:checked ~ .conditional-3,
669
- input.conditional-input-4:checked ~ .conditional-4,
670
- input.conditional-input-5:checked ~ .conditional-5,
671
- label:has(input.conditional-input-1:checked) ~ .conditional-1,
672
- label:has(input.conditional-input-2:checked) ~ .conditional-2,
673
- label:has(input.conditional-input-3:checked) ~ .conditional-3,
674
- label:has(input.conditional-input-4:checked) ~ .conditional-4,
675
- label:has(input.conditional-input-5:checked) ~ .conditional-5 {
676
- display: block;
677
- clear: both;
678
- }
679
- /* #endregion */
680
-
681
- /* #region Multi-select */
682
- select[multiple] {
683
- border-radius: 0.35rem;
684
- }
685
- select[multiple]::-webkit-scrollbar {
686
- width: 0.7rem; /* manage scrollbar width here */
687
- }
688
- select[multiple]::-webkit-scrollbar * {
689
- background-color: transparent; /* manage scrollbar background color here */
690
- }
691
- select[multiple]::-webkit-scrollbar-thumb {
692
- background-color: rgba(0, 0, 0, 0.2);
693
- /* background-color:#000000!important; // manage scrollbar thumb background color here */
694
- border-radius: 0.35rem;
695
- }
696
- /* #endregion */
697
-
698
- /* #region Select */
699
-
700
- select:not(.select--minimal, .btn) {
701
- $form-select-indicator-new: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/></svg>") !default;
702
-
703
- background:
704
- var(--icon-select) right var(--input-padding-block, 0.75rem) top
705
- var(--input-padding-block, 0.75rem) / var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,
706
- linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top /
707
- calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem))
708
- calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem))
709
- no-repeat,
710
- linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));
711
-
712
- padding-right: calc(
713
- var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)
714
- ) !important;
715
- option {
716
- font-size: 1.2em;
717
- }
718
-
719
- box-shadow: inset -2px 0px 0px var(--colour-primary-theme);
720
-
721
- max-width: var(--select-max-width);
722
-
723
- &[multiple],
724
- &[size]:not([size='1']) {
725
- background: none;
726
- max-height: none !important;
727
- }
728
-
729
- &:disabled {
730
-
731
- background-color: gray;
732
- border-color: black;
733
- }
734
-
735
- /* Remove outline from select box in FF */
736
- &:-moz-focusring {
737
- color: transparent;
738
- text-shadow: 0 0 0 inherit;
739
- }
740
- }
741
-
742
- div:has(> select) {
743
- margin-bottom: 1.5rem;
744
-
745
- select {
746
- margin-bottom: 0 !important;
747
- }
748
- }
749
-
750
- .select--minimal {
751
- all: unset;
752
- font-size: inherit;
753
- line-height: inherit;
754
- background: none;
755
- border: 2px solid transparent;
756
- display: inline-block;
757
- padding: 0.4em calc(1em + 0.8ch) 0.4rem var(--select-padding-left, 0.4em) !important;
758
- font-weight: normal !important;
759
- margin: -0.4em 0 !important;
760
- border-radius: 0.25em;
761
-
762
- color: var(--colour-body);
763
-
764
- height: auto;
765
- cursor: pointer;
766
- font-family: var(--font-body) !important;
767
-
768
- option {
769
- background-color: var(--colour-canvas);
770
- padding-left: 1em;
771
- font-size: inherit;
772
- line-height: inherit;
773
- }
774
-
775
- &:hover {
776
- /* border: none; */
777
- background: var(--colour-light);
778
- }
779
-
780
- &:is(:focus, .focus):not(:disabled) {
781
- border-color: var(--colour-info);
782
- outline: 0;
783
- box-shadow: 0 0 0 0.1rem rgba(30, 190, 230, 0.25);
784
- }
785
- }
786
-
787
- *:has(> .select--minimal) {
788
- position: relative;
789
- display: inline-block !important;
790
- width: auto !important;
791
- font-size: inherit !important;
792
- line-height: 1 !important;
793
-
794
- padding: 0 !important;
795
- margin: 0 !important;
796
-
797
- font-family: var(--font-body) !important;
798
-
799
- &:after {
800
- font-size: 0.8em;
801
- line-height: 1em;
802
- content: '\f078';
803
- font-family: 'Font Awesome 7 Pro';
804
- position: absolute;
805
- top: 40%;
806
- transform: translate(0, -50%);
807
- right: calc(0.8ch);
808
- pointer-events: none;
809
-
810
- color: var(--colour-body);
811
- }
812
- }
813
- /* #endregion */
814
-
815
- /* #region file upload */
816
- iam-fileupload {
817
- input {
818
- display: none;
819
- }
820
- }
821
- /* #endregion */
822
-
823
- /* #region label with input field in */
824
- :is(label:not(.tag), .label):has(:is(input, select, textarea)) {
825
- display: block;
826
- margin-bottom: 1.5rem;
827
- max-width: var(--input-max-width);
828
-
829
- :is(input:not([type='range']), select) {
830
- margin-top: 0.5rem;
831
- margin-bottom: 0 !important;
832
- }
833
-
834
- :is(input, select) ~ span:not(:is(.suffix, .prefix, .invalid-feedback)),
835
- span:has(> :is(input, select)) ~ span:not(:is(.suffix, .prefix, .invalid-feedback)),
836
- .hint-text {
837
- all: initial;
838
- font-family: var(--font-body);
839
- color: var(--colour-body);
840
- margin-top: 0.5rem;
841
- display: block;
842
- line-height: 1.2;
843
- }
844
- .invalid-feedback {
845
- font-size: 1rem;
846
- font-weight: normal;
847
- line-height: 1.2;
848
- }
849
-
850
- span:has(:is(input, select)) {
851
- display: flex;
852
- width: 100%;
853
- }
854
-
855
- :is(.suffix, .prefix):not(.mt-0) {
856
- margin: 0.5rem 0 0 0 !important;
857
- }
858
- }
859
-
860
- .was-validated label:has(:is(input:not([type='radio']):not([type='checkbox']), select)),
861
- .was-validated fieldset:has(label input:is([type='radio'], [type='checkbox']):invalid) {
862
- margin-bottom: 1.5rem;
863
-
864
- &:has(:is(:invalid, .is-invalid)):after {
865
- content: 'This field is required';
866
- color: var(--colour-danger);
867
- margin-top: 0.5rem;
868
- background-image: var(--icon-error);
869
- background-repeat: no-repeat;
870
- background-position: left top 1px;
871
- background-size: var(--input-fs, 1rem) var(--input-fs, 1rem);
872
- padding-left: calc(var(--input-fs, 1rem) + 0.5rem);
873
- display: block;
874
- width: 100%;
875
- font-size: 1rem;
876
- line-height: 1.2;
877
- }
878
-
879
- &[data-error]:has(:is(:invalid, .is-invalid)):after {
880
- content: attr(data-error) !important;
881
- }
882
-
883
- &.error-nowrap:after {
884
- white-space: nowrap;
885
- }
886
- }
887
-
888
- /* #endregion */
889
-
890
- /* #region input range */
891
- input[type='range'] {
892
- --track-size: 0.5rem;
893
- --track-colour: var(--colour-light);
894
- --thumb-colour: var(--colour-info);
895
- --thumb-size: 1.5rem;
896
- width: 100%;
897
- background: transparent;
898
- cursor: pointer;
899
- margin-top: 2rem;
900
- margin-bottom: 2rem;
901
- height: 2rem;
902
- border-radius: 50%;
903
- accent-color: var(--thumb-colour);
904
- -webkit-appearance: none;
905
- appearance: none;
906
- }
907
-
908
- *:has(> input[type='range']) {
909
- position: relative;
910
- padding-bottom: 6rem;
911
- max-width: var(--input-max-width);
912
- }
913
-
914
- label input[type='range'] {
915
- position: absolute;
916
- top: 1.5rem;
917
- left: 0;
918
- }
919
-
920
- /* Track Styles */
921
- input[type='range']::-webkit-slider-runnable-track {
922
- background: var(--track-colour);
923
- height: var(--track-size);
924
- border-radius: 0.5rem;
925
- }
926
-
927
- input[type='range']::-moz-range-track {
928
- background: var(--track-colour);
929
- height: var(--track-size);
930
- border-radius: 0.5rem;
931
- }
932
-
933
- /* Thumb Styles */
934
- input[type='range']::-webkit-slider-thumb {
935
- -webkit-appearance: none; /* Override default look */
936
- appearance: none;
937
- margin-top: -0.5rem; /* Centers thumb on the track */
938
- background-color: var(--thumb-colour);
939
- height: var(--thumb-size);
940
- width: var(--thumb-size);
941
- border-radius: 50%;
942
- position: relative;
943
- z-index: 99;
944
- pointer-events: all;
945
- }
946
-
947
- input[type='range']::-moz-range-thumb {
948
- border: none; /*Removes extra border that FF applies*/
949
- background-color: var(--thumb-colour); /*Removes default border-radius that FF applies*/
950
- height: var(--thumb-size);
951
- width: var(--thumb-size);
952
- border-radius: 50%;
953
- position: relative;
954
- z-index: 99;
955
- pointer-events: all;
956
- }
957
-
958
- /* Focus Styles */
959
- input[type='range']:focus {
960
- outline: none;
961
- }
962
-
963
- input[type='range']:hover::-webkit-slider-thumb,
964
- input[type='range']:focus::-webkit-slider-thumb {
965
- outline: 0.5rem solid rgba(30, 190, 231, 0.2);
966
- }
967
-
968
- input[type='range']:active::-webkit-slider-thumb {
969
- outline: 0.5rem solid rgba(30, 190, 231, 0.4);
970
- }
971
-
972
- input[type='range']:hover::-moz-range-thumb,
973
- input[type='range']:focus::-moz-range-thumb {
974
- outline: 0.5rem solid rgba(30, 190, 231, 0.2);
975
- }
976
- input[type='range']:focus::-moz-range-thumb {
977
- outline: 0.5rem solid rgba(30, 190, 231, 0.4);
978
- }
979
-
980
- iam-slider input::-webkit-outer-spin-button,
981
- iam-slider input::-webkit-inner-spin-button {
982
- -webkit-appearance: none;
983
- margin: 0;
984
- }
985
-
986
- /* #endregion */
987
-
988
- /* #region Date and time fields */
989
- :is(input[type='date'],input[type='datetime-local'],input[type='year'],input[type='month'],input[type='week'], input[type='time']) {
990
- position: relative;
991
- margin-right: -3rem;
992
- padding-right: 3rem !important;
993
- background-position: right 4rem center;
994
- border-radius: 0.5rem !important;
995
- }
996
- ::-webkit-calendar-picker-indicator {
997
- background: transparent;
998
- bottom: 0;
999
- color: transparent;
1000
- cursor: pointer;
1001
- height: auto;
1002
- left: 0;
1003
- position: absolute;
1004
- right: 0;
1005
- top: 0;
1006
- width: auto;
1007
- order: 3;
1008
- z-index: 98;
1009
- }
1010
- ::-webkit-datetime-edit {
1011
- position: relative;
1012
- z-index: 99;
1013
- max-width: fit-content;
1014
- }
1015
- /* #endregion */
1016
- }
1017
-
1018
- /* #region datalist */
1019
- :is(iam-advanced-select, iam-search, .postcode-lookup) {
1020
- position: relative;
1021
- display: block;
1022
-
1023
- label {
1024
- position: relative;
1025
- }
1026
-
1027
- input {
1028
- padding-right: 3rem;
1029
- }
1030
-
1031
- .empty {
1032
- position: absolute;
1033
- bottom: 0.5rem;
1034
- right: 3.5rem;
1035
- margin: 0;
1036
- aspect-ratio: 1 / 1;
1037
-
1038
- width: 2rem;
1039
- height: 2rem;
1040
-
1041
- text-align: center;
1042
- line-height: 1;
1043
-
1044
- &:not(:hover, :focus) {
1045
- border-color: transparent;
1046
- background-color: transparent;
1047
- }
1048
-
1049
- i {
1050
- font-size: 1.2rem;
1051
- }
1052
- }
1053
-
1054
- &:has([name="postcode"][disabled]) .empty{
1055
-
1056
- display: none;
1057
- }
1058
-
1059
- &:has(input:is([name$="Alt"]):not([data-value],[data-placeholder])) .empty {
1060
- display: none;
1061
- }
1062
-
1063
- label:after,
1064
- .hint-text {
1065
- position: absolute;
1066
- top: 100%;
1067
- }
1068
-
1069
- label[for="use"]:after {
1070
- top: var(--checkbox-inner-top, 0.5rem);
1071
- }
1072
- }
1073
-
1074
- .was-validated :is(iam-advanced-select, iam-search, postcode-lookup) label:has(:is(input:not([type='radio']):not([type='checkbox']), select)),
1075
- :is(iam-advanced-select, iam-search, postcode-lookup).was-validated label:has(:is(input:not([type='radio']):not([type='checkbox']), select)) {
1076
- margin-bottom: 2.5rem;
1077
-
1078
- input {
1079
- background: none !important;
1080
- }
1081
-
1082
- &:has(:invalid, .is-invalid) .hint-text {
1083
- display: none;
1084
- }
1085
- }
1086
-
1087
-
1088
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup) datalist {
1089
-
1090
- &:empty {
1091
- display: none !important;
1092
- }
1093
-
1094
- z-index: 100;
1095
- top: 100%;
1096
- position: absolute;
1097
- background-color: var(--colour-canvas);
1098
- border-top: none;
1099
-
1100
- &:not(:empty):has(option:not(.hide)){
1101
-
1102
- padding: 0.5rem;
1103
- }
1104
-
1105
-
1106
- max-height: 25rem;
1107
- overflow-y: auto;
1108
- width: 100%;
1109
- max-width: var(--input-max-width, 50rem);
1110
- border: none !important;
1111
- border-radius: 0.5rem;
1112
- box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
1113
- display: none;
1114
-
1115
- option {
1116
- background-color: var(--colour-canvas);
1117
- padding: 0.5rem;
1118
-
1119
- cursor: pointer;
1120
- background: unset !important;
1121
- border: unset !important;
1122
- color: var(--colour-primary) !important;
1123
- font-weight: inherit !important;
1124
- font-family: inherit !important;
1125
- font-size: 1rem !important;
1126
- line-height: 1.5rem !important;
1127
- margin: var(--menu-item-margin, 0 0 0.25rem 0) !important;
1128
- padding-block: var(--menu-item-padding, 0.25rem) !important;
1129
- width: 100% !important;
1130
- max-width: 100% !important;
1131
- text-align: var(--menu-item-text-align, left) !important;
1132
-
1133
- display: -webkit-box;
1134
- -webkit-line-clamp: 2;
1135
- -webkit-box-orient: vertical;
1136
- white-space: normal;
1137
- text-overflow: ellipsis;
1138
- overflow: clip;
1139
-
1140
- &:is(:hover, :focus) {
1141
- background: var(--colour-light) !important;
1142
- color: #595959 !important;
1143
- border-radius: 0.25rem !important;
1144
- }
1145
-
1146
- &:active {
1147
- background: rgba(224, 224, 224, 1) !important;
1148
- border-radius: 0.25rem !important;
1149
- }
1150
-
1151
- &.active {
1152
- border-left: 4px solid var(--colour-info) !important;
1153
- border-radius: 0.25rem !important;
1154
- background: hsl(from var(--colour-info) h s l / 10%) !important;
1155
- }
1156
- }
1157
- }
1158
-
1159
- .dark-theme :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup) datalist {
1160
-
1161
- color-scheme: dark;
1162
- }
1163
-
1164
- @media (prefers-color-scheme: dark) {
1165
- html:not(.light-theme) :is(.bg-primary, .bg-danger, .bg-dark):not(iam-header) {
1166
-
1167
- --colour-heading: var(--colour-primary-theme);
1168
- --colour-body: var(--colour-primary-theme);
1169
- color: var(--colour-primary-theme);
1170
-
1171
- /* Apply the light colour scheme not on the background element but just its children so that the background colour isn't overwritten */
1172
- > * {
1173
- color-scheme: light;
1174
- }
1175
- }
1176
-
1177
- html:not(.light-theme) .bg-light {
1178
-
1179
- color-scheme: light;
1180
- }
1181
- }
1182
-
1183
-
1184
-
1185
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active),:active) datalist {
1186
-
1187
- display: block;
1188
-
1189
- &:empty {
1190
- display: block !important;
1191
- }
1192
- }
1193
-
1194
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper {
1195
-
1196
- top: 100%;
1197
- position: absolute;
1198
- border-radius: 0.5rem;
1199
- box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
1200
- width: 100% !important;
1201
- /* max-width: var(--menu-item-width, 50rem) !important; */
1202
- z-index: 100;
1203
- display: none;
1204
- max-height: 25rem;
1205
- overflow-y: auto;
1206
-
1207
- max-width: var(--input-max-width) !important;
1208
-
1209
- > datalist {
1210
- border: none!important;
1211
- box-shadow: none!important;
1212
- position: relative;
1213
- display: block!important;
1214
- border-radius: 0!important;
1215
- max-height: 100%!important;
1216
- }
1217
-
1218
- &:focus {
1219
- outline: none!important;
1220
- }
1221
- }
1222
-
1223
- iam-address-lookup [slot="preloadedList"]{
1224
- border: none!important;
1225
- box-shadow: none!important;
1226
- position: relative;
1227
- display: block!important;
1228
- border-radius: 0!important;
1229
- max-height: 100%!important;
1230
-
1231
- &.noresults {
1232
- display: block !important;
1233
- }
1234
-
1235
- &.noresults:before {
1236
- content: "No addresses found";
1237
- background-color: white;
1238
- padding: 1rem 0.5rem;
1239
- color: var(--colour-primary) !important;
1240
- font-weight: inherit !important;
1241
- font-family: inherit !important;
1242
- font-size: 1rem !important;
1243
- line-height: 1.1875rem !important;
1244
- padding-block: var(--menu-item-padding, 1rem) !important;
1245
- display: block;
1246
- }
1247
- }
1248
-
1249
-
1250
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist:not(:empty)),
1251
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.loading),
1252
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.noresults),
1253
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper:hover {
1254
-
1255
- display: block;
1256
- }
1257
-
1258
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper:has(datalist.noresults){
1259
- datalist {
1260
-
1261
- display: block;
1262
-
1263
- &:before {
1264
- content: "No addresses found";
1265
- background-color: white;
1266
- padding: 0.5rem;
1267
- color: var(--colour-primary) !important;
1268
- font-weight: inherit !important;
1269
- font-family: inherit !important;
1270
- font-size: 1rem !important;
1271
- line-height: 1.1875rem !important;
1272
- padding-block: var(--menu-item-padding, 0.5rem) !important;
1273
- display: block;
1274
- }
1275
- }
1276
- }
1277
-
1278
- :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(option:active)) .datalist__wrapper:has(datalist.loading) {
1279
-
1280
- datalist {
1281
-
1282
- height: 5rem;
1283
-
1284
- &:before {
1285
- content: "\f021";
1286
- font-family: "Font Awesome 7 Pro";
1287
- font-size: 1.75rem;
1288
- font-weight: 300;
1289
- display: block;
1290
- position: absolute;
1291
- top: calc(50% - 1rem);
1292
- left: calc(50% - 1rem);
1293
- /*transform: translate(-50%,-50%);*/
1294
-
1295
- animation-name: spin;
1296
- animation-duration: 4000ms;
1297
- animation-iteration-count: infinite;
1298
- animation-timing-function: linear;
1299
- }
1300
- }
1301
- }
1302
-
1303
- @-ms-keyframes spin {
1304
- from { -ms-transform: rotate(0deg); }
1305
- to { -ms-transform: rotate(360deg); }
1306
- }
1307
- @-moz-keyframes spin {
1308
- from { -moz-transform: rotate(0deg); }
1309
- to { -moz-transform: rotate(360deg); }
1310
- }
1311
- @-webkit-keyframes spin {
1312
- from { -webkit-transform: rotate(0deg); }
1313
- to { -webkit-transform: rotate(360deg); }
1314
- }
1315
- @keyframes spin {
1316
- from {
1317
- transform:rotate(0deg);
1318
- }
1319
- to {
1320
- transform:rotate(360deg);
1321
- }
1322
- }
1323
-
1324
- :is(iam-advanced-select, iam-search, .postcode-lookup) {
1325
-
1326
- [name="beforeList"] {
1327
- display: none;
1328
- }
1329
-
1330
- [name="beforeList"]:has(+ .show-welsh-banner) {
1331
- display: block;
1332
- }
1333
- .datalist__wrapper.show-welsh-banner [name="beforeList"] {
1334
- display: block;
1335
- }
1336
- }
1337
- /* #endregion */
1
+ @use 'sass:map';
2
+ @use 'sass:math';
3
+
4
+ @use '../_func' as *;
5
+
6
+ @use './label' as *;
7
+ @use './input' as *;
8
+ @use './textarea' as *;
9
+
10
+
11
+ $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>");
12
+ $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>");
13
+
14
+ @layer elements {
15
+ /* #region RESETS */
16
+
17
+
18
+ /* 1. Remove the margin in Firefox and Safari */
19
+ select,
20
+ optgroup {
21
+ margin: 0; /* 1 */
22
+ font-family: inherit;
23
+ font-size: inherit;
24
+ line-height: inherit;
25
+ }
26
+
27
+ /* Remove the inheritance of text transform in Firefox */
28
+ select {
29
+ text-transform: none;
30
+ }
31
+ /* Set the cursor for non-`<button>` buttons */
32
+ /* */
33
+ /* Details at https://github.com/twbs/bootstrap/pull/30562 */
34
+
35
+ select {
36
+ /* Remove the inheritance of word-wrap in Safari. */
37
+ /* See https://github.com/twbs/bootstrap/issues/24990 */
38
+ word-wrap: normal;
39
+
40
+ /* Undo the opacity change from Chrome */
41
+ &:disabled {
42
+ opacity: 1;
43
+ }
44
+ }
45
+
46
+
47
+ /* 1. Browsers set a default `min-width: min-content;` on fieldsets, */
48
+ /* unlike e.g. `<div>`s, which have `min-width: 0;` by default. */
49
+ /* So we reset that to ensure fieldsets behave more like a standard block element. */
50
+ /* See https://github.com/twbs/bootstrap/issues/12359 */
51
+ /* and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements */
52
+ /* 2. Reset the default outline behavior of fieldsets so they don't affect page layout. */
53
+
54
+ fieldset {
55
+ min-width: 0; /* 1 */
56
+ padding: 0; /* 2 */
57
+ margin: 0; /* 2 */
58
+ border: 0; /* 2 */
59
+ }
60
+
61
+ /* Correct element displays */
62
+
63
+ output {
64
+ display: inline-block;
65
+ }
66
+
67
+ /* Remove border from iframe */
68
+
69
+ iframe {
70
+ border: 0;
71
+ }
72
+
73
+ /* Summary */
74
+ /* */
75
+ /* 1. Add the correct display in all browsers */
76
+
77
+ summary {
78
+ display: list-item; /* 1 */
79
+ cursor: pointer;
80
+ }
81
+
82
+ /* Progress */
83
+ /* */
84
+ /* Add the correct vertical alignment in Chrome, Firefox, and Opera. */
85
+
86
+ progress {
87
+ vertical-align: baseline;
88
+ }
89
+
90
+ /* Hidden attribute */
91
+ /* */
92
+ /* Always hide an element with the `hidden` HTML attribute. */
93
+
94
+ /* #endregion */
95
+
96
+ /* #region input field */
97
+ :is(select:not(.select--minimal, .btn)) {
98
+
99
+ display: block;
100
+ width: 100%;
101
+ display: block;
102
+ width: 100%;
103
+ padding: var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);
104
+ font-size: var(--input-fs, 1rem);
105
+ line-height: var(--input-lh, 1.25rem);
106
+ color: var(--colour-heading);
107
+ background-color: var(--colour-canvas-2);
108
+ background-clip: padding-box;
109
+ border: 2px solid var(--colour-primary);
110
+ appearance: none; /* Fix appearance for date inputs in Safari */
111
+ border-radius: 0.5rem;
112
+ margin-bottom: 1.5rem;
113
+ min-height: calc(
114
+ var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) +
115
+ 4px
116
+ );
117
+ max-height: calc(
118
+ var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) +
119
+ 4px
120
+ );
121
+
122
+
123
+ /* Customize the `:focus` state to imitate native WebKit styles. */
124
+ &:is(:focus, .focus):not(:disabled) {
125
+ border-color: var(--colour-info);
126
+ outline: 0;
127
+ }
128
+
129
+ &:is(:focus, .focus):not(:disabled):not(:invalid) {
130
+ box-shadow: 0 0 0 0.1rem rgba(30, 190, 230, 0.25);
131
+ }
132
+
133
+ /* Disabled inputs */
134
+ &:disabled {
135
+ background-color: #ccd6d8;
136
+ opacity: 0.4;
137
+ cursor: not-allowed;
138
+ }
139
+ }
140
+
141
+ [disabled] :is(
142
+ select:not(.select--minimal, .btn)
143
+ ) {
144
+ background-color: #ccd6d8;
145
+ opacity: 0.4;
146
+ cursor: not-allowed;
147
+ pointer-events: none;
148
+ }
149
+
150
+ [disabled] label {
151
+
152
+ cursor: not-allowed;
153
+ pointer-events: none;
154
+ }
155
+ /* #endregion */
156
+
157
+ /* #region legend */
158
+ fieldset {
159
+ width: 100%;
160
+ position: relative;
161
+ }
162
+ legend {
163
+ font-family: var(--font-heading);
164
+ font-style: normal;
165
+ font-weight: var(--heading-weight);
166
+ line-height: 2rem;
167
+ color: var(--colour-heading);
168
+ margin: 0;
169
+ clear: both;
170
+ display: block;
171
+ float: none;
172
+ font-size: var(--h4-fs);
173
+ line-height: var(--heading-lh);
174
+ padding-bottom: 0.5rem;
175
+ max-width: var(--content-max-width);
176
+ min-width: 100%;
177
+ }
178
+
179
+ /* #endregion */
180
+
181
+ /* #region wrappers */
182
+ div:has(> label:first-child):has(> input) {
183
+ position: relative;
184
+ max-width: var(--input-max-width);
185
+ margin-bottom: 1.5rem;
186
+
187
+ input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']),
188
+ output,
189
+ .prefix,
190
+ .suffix {
191
+ margin-bottom: 0 !important;
192
+ }
193
+
194
+ display: flex;
195
+ flex-wrap: wrap;
196
+ align-items: center;
197
+
198
+ > *:not(input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range'])):not(output):not(
199
+ .prefix
200
+ ):not(.suffix) {
201
+ flex-shrink: 0;
202
+ width: 100%;
203
+ }
204
+
205
+ :is(input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']), output) {
206
+ flex-shrink: 1;
207
+ flex-grow: 1;
208
+ width: 0;
209
+ }
210
+
211
+ input ~ *:not(output) {
212
+ order: 5;
213
+ margin-top: 0.5rem;
214
+ }
215
+ }
216
+
217
+
218
+ *:has(> :is(.form-control-sm, .input--sm)) {
219
+ --input-fs: 0.875rem; /* 14/16 */
220
+ --input-lh: 1rem;
221
+ --input-padding-block: #{0.625rem};
222
+ --input-padding-inline: 0.875rem; /* 14/16 */
223
+ }
224
+ *:has(> :is(.form-control-lg, .input--lg)) {
225
+ --input-fs: 1.5rem;
226
+ --input-lh: 1.8125rem; /* 29 */
227
+ --input-padding-block: 1.25rem;
228
+ --input-padding-inline: 1.375rem; /* 22 */
229
+ }
230
+
231
+ *:has(> label:first-child):has(> input):has(> :is(.form-control-inline, .input--inline)) {
232
+ label {
233
+ flex-shrink: 0;
234
+ white-space: nowrap;
235
+ width: fit-content !important;
236
+ margin: 0;
237
+ margin-inline-end: 1rem;
238
+ }
239
+ }
240
+ /* #endregion */
241
+
242
+ /* #region readonly */
243
+ *:has(> input[readonly]) {
244
+ position: relative;
245
+
246
+ max-width: var(--input-max-width);
247
+
248
+ &:after {
249
+ font-family: 'Font Awesome 7 Pro';
250
+ font-weight: 300;
251
+ content: '\f023';
252
+ position: absolute;
253
+ font-size: var(--input-lh, 1.25rem);
254
+ height: var(--input-lh, 1.25rem);
255
+ width: var(--input-lh, 1.25rem);
256
+ bottom: calc(var(--input-padding-block, 0.75rem) + 2px);
257
+ right: calc(var(--input-padding-block, 1rem) + 2px);
258
+ text-align: center;
259
+ }
260
+ }
261
+
262
+ /* #endregion */
263
+
264
+ /* #region prefix */
265
+
266
+ @supports selector(:has(*)) {
267
+
268
+
269
+
270
+ .suffix
271
+ ~ :is(
272
+ input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']):not([type='date']):not(
273
+ [type='time']
274
+ ),
275
+ output
276
+ ),
277
+ :is(
278
+ input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']):not([type='date']):not(
279
+ [type='time']
280
+ ),
281
+ output
282
+ ):has(~ .suffix) {
283
+ order: 1;
284
+
285
+ border-start-end-radius: 0 !important;
286
+ border-end-end-radius: 0 !important;
287
+ }
288
+
289
+ :is(
290
+ input
291
+ ):has(~ iam-password-indicator) {
292
+ border-start-end-radius: 0 !important;
293
+ border-end-end-radius: 0 !important;
294
+ }
295
+ }
296
+
297
+ /* #endregion */
298
+
299
+ /* #region Form validation */
300
+
301
+ .was-validated *:not(button):is(:invalid, .is-invalid, [aria-invalid]):not(.is-valid) + label,
302
+ .was-validated label:has(*:not(button):is(:invalid, .is-invalid, [aria-invalid]):not(.is-valid)) {
303
+ --colour-check-border: var(--colour-danger);
304
+ --colour-check-bg: #fcebec;
305
+ border-color: var(--colour-danger);
306
+ }
307
+
308
+ .was-validated *:not(button):is(:invalid, .is-invalid, [aria-invalid], :-internal-autofill-selected) {
309
+ border-color: var(--colour-danger) !important;
310
+ }
311
+
312
+ .was-validated select:not(.btn):is(:invalid, .is-invalid, [aria-invalid], :-internal-autofill-selected) {
313
+ $form-select-indicator-new: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/></svg>") !default;
314
+
315
+ background:
316
+ var(--icon-select) right var(--input-padding-block, 0.75rem) top
317
+ var(--input-padding-block, 0.75rem) / var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,
318
+ linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top /
319
+ calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem))
320
+ calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem))
321
+ no-repeat,
322
+ var(--icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem) /
323
+ var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;
324
+ padding-right: 6rem !important;
325
+ }
326
+
327
+ .was-validated input:is(:invalid, .is-invalid, [aria-invalid], :-internal-autofill-selected) {
328
+ background-image: var(--icon-error);
329
+ background-repeat: no-repeat;
330
+ background-position: right var(--input-padding-inline, 1rem) center;
331
+ background-size: var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);
332
+ padding-right: calc(
333
+ var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)
334
+ ) !important;
335
+ }
336
+
337
+ .was-validated *:not(button):is(:valid, .is-valid):not(.is-invalid) {
338
+ border-color: var(--colour-complete);
339
+ }
340
+
341
+ .was-validated input:is(:valid, .is-valid):not(:is(:invalid, .is-invalid)) {
342
+ background-image: var(--icon-tick);
343
+ background-repeat: no-repeat;
344
+ background-position: right var(--input-padding-inline, 1rem) center;
345
+ background-size: var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);
346
+ padding-right: calc(
347
+ var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)
348
+ ) !important;
349
+ }
350
+
351
+ .invalid-feedback {
352
+ color: var(--colour-danger);
353
+ margin-top: 0.5rem;
354
+ background-image: var(--icon-error);
355
+ background-repeat: no-repeat;
356
+ background-position: left top 1px;
357
+ background-size: var(--input-fs, 1rem) var(--input-fs, 1rem);
358
+ padding-left: calc(var(--input-fs, 1rem) + 0.5rem);
359
+ display: none;
360
+ }
361
+
362
+ /* Postcode lookup validation */
363
+ iam-address-lookup:has([required]) {
364
+ --req-display: none;
365
+ }
366
+
367
+ .was-validated :is(:invalid, .is-invalid) ~ .invalid-feedback {
368
+ display: block;
369
+ }
370
+
371
+ .was-validated iam-address-lookup:has([required]:invalid) {
372
+ --error-border: var(--colour-danger);
373
+ --error-bg: #{var(--icon-error)};
374
+ --error-display: block;
375
+ --error-hide: none;
376
+ }
377
+
378
+ /* #region radio/checkbox field */
379
+ @supports selector(:has(*)) {
380
+ input:is([type='radio'], [type='checkbox']) {
381
+ position: absolute;
382
+ top: 0;
383
+ left: 0;
384
+ opacity: 0;
385
+ height: 0;
386
+ width: 0;
387
+ margin: 0;
388
+ pointer-events: none;
389
+ }
390
+
391
+ :is(div, fieldset, label:not(.tag)):has(> input:is([type='radio'], [type='checkbox'])):not(:has(label input)) {
392
+ position: relative;
393
+ margin-bottom: 1.5rem;
394
+ }
395
+
396
+ :is(div, fieldset, label:not(.tag)):has(> input[type='radio']) {
397
+ --border-radius: 50%;
398
+ --outline-width: 0.5rem;
399
+ }
400
+
401
+ :is(div, fieldset, label:not(.tag)):has(> input[type='checkbox']) {
402
+ --border-radius: 0.25rem;
403
+ --outline-width: 0.25rem;
404
+ }
405
+
406
+ input:is([type='radio'], [type='checkbox']) + label:not(:has(> iam-card)),
407
+ label:not(.tag):has(input:is([type='radio'], [type='checkbox'])):not(:has(> iam-card)) {
408
+ --tick-colour: transparent;
409
+
410
+ color: var(--colour-heading);
411
+ position: relative;
412
+ font-size: 1rem;
413
+ line-height: 1.25rem;
414
+ padding-left: 2.5rem;
415
+ padding-top: 0.625rem; /* 10 */
416
+ padding-bottom: 0.625rem; /* 10 */
417
+ margin-bottom: 1.5rem;
418
+ margin-right: 1.5rem;
419
+ cursor: pointer;
420
+
421
+ &:has(+ span) {
422
+ margin-bottom: 0;
423
+ }
424
+
425
+ &:has(+ input) {
426
+ margin-bottom: 0;
427
+ }
428
+
429
+ &:last-child {
430
+ margin-bottom: 0;
431
+ }
432
+
433
+ &:before {
434
+ content: '';
435
+ border: 2px solid var(--colour-check-border, var(--colour-primary));
436
+ background: var(--colour-check-bg, transparent);
437
+ border-radius: var(--border-radius);
438
+ height: var(--radio-size, 1.5rem);
439
+ width: var(--radio-size, 1.5rem);
440
+ display: inline-block;
441
+ position: absolute;
442
+ top: 0.5rem;
443
+ left: var(--outline-width);
444
+ }
445
+
446
+ &.btn:before {
447
+ opacity: 0;
448
+ }
449
+ }
450
+
451
+ input[type='radio'] + label:not(:has(> iam-card)),
452
+ label:not(.tag):has(input[type='radio']):not(:has(> iam-card)) {
453
+ &:after {
454
+ content: '' !important;
455
+ background: var(--colour-info);
456
+ border-radius: var(--border-radius);
457
+ height: 0.875rem; /* 14/16 */
458
+ width: 0.875rem; /* 14/16 */
459
+
460
+ height: var(--radio-inner-size, 0.875rem);
461
+ width: var(--radio-inner-size, 0.875rem);
462
+
463
+ display: none;
464
+ position: absolute;
465
+ top: var(--radio-inner-top, 0.8125rem);
466
+ left: var(--radio-inner-left, calc(0.3125rem + var(--outline-width)));
467
+ }
468
+
469
+ &.radio--tick {
470
+ &:before {
471
+ content: '\f00c';
472
+ position: absolute;
473
+ font-size: 1.5em;
474
+ line-height: 1;
475
+ color: var(--tick-colour);
476
+ font-family: 'Font Awesome 7 Pro';
477
+
478
+ background: none !important;
479
+ border: none !important;
480
+ outline: none !important;
481
+ left: 0.25rem;
482
+ }
483
+ &:after {
484
+ display: none;
485
+ }
486
+ }
487
+ }
488
+
489
+ @media (forced-colors: active) {
490
+ input:is([type='radio'], [type='checkbox']):not(:checked) + label.radio--tick:not(:has(> iam-card)),
491
+ label:has(input:is([type='radio'], [type='checkbox']):not(:checked)).radio--tick:not(:has(> iam-card)) {
492
+ &:before {
493
+ display: none;
494
+ }
495
+ }
496
+ }
497
+
498
+ /* multiple radio's together */
499
+ :is(div, fieldset):has(> :is(input[type='radio'], input[type='checkbox']):nth-of-type(2)) {
500
+ label:not(.tag):not(:has(> iam-card)) {
501
+ margin-bottom: 0rem;
502
+ }
503
+ }
504
+
505
+ fieldset:has(label > input:is([type="radio"],[type="checkbox"])){
506
+
507
+ label {
508
+ margin-bottom: 0!important;
509
+ }
510
+
511
+ margin-bottom: 1.5rem;
512
+ }
513
+
514
+ input:is([type='radio'], [type='checkbox']):checked + label,
515
+ label:not(.tag):has(input:is([type='radio'], [type='checkbox']):checked) {
516
+ --tick-colour: var(--colour-info);
517
+
518
+ &:before {
519
+ border-color: var(--colour-info);
520
+ }
521
+
522
+ &:after {
523
+ display: inline-block;
524
+ }
525
+
526
+ iam-card {
527
+ --colour: var(--colour, var(--colour-info));
528
+ }
529
+ }
530
+
531
+ input[type='checkbox']:not([disabled]):checked + label,
532
+ label:not(.tag):has(input[type='checkbox']:not([disabled]):checked) {
533
+ &:before {
534
+ background: var(--colour-info) !important;
535
+ }
536
+ }
537
+
538
+ input[type='checkbox']:checked + label:not(:has(> iam-card)),
539
+ label:not(.tag):has(input[type='checkbox']:checked) {
540
+ &:after {
541
+ content: '\f00c';
542
+ position: absolute;
543
+ font-size: var(--checkbox-tick-size, 1em);
544
+ line-height: 1;
545
+ color: var(--colour-primary-theme);
546
+ font-family: 'Font Awesome 7 Pro';
547
+ font-weight: bold;
548
+ height: var(--checkbox-inner-size, 1.5rem);
549
+ width: var(--checkbox-inner-size, 1.5rem);
550
+ line-height: 1.625rem; /* 26 */
551
+ background: none !important;
552
+ border: none !important;
553
+ outline: none !important;
554
+ top: var(--checkbox-inner-top, 0.5rem);
555
+ left: var(--checkbox-inner-left, var(--outline-width));
556
+ text-align: center;
557
+ }
558
+ }
559
+
560
+ input[type='checkbox']:indeterminate + label,
561
+ label:not(.tag):has(input[type='checkbox']:indeterminate) {
562
+ &:before {
563
+ background: var(--colour-info) !important;
564
+ border-color: var(--colour-info) !important;
565
+ }
566
+
567
+ &:after {
568
+ content: '\f068';
569
+ position: absolute;
570
+ font-size: var(--checkbox-tick-size, 1em);
571
+ line-height: 1;
572
+ color: var(--colour-primary-theme);
573
+ font-family: 'Font Awesome 7 Pro';
574
+ font-weight: bold;
575
+ height: var(--checkbox-inner-size, 1.5rem);
576
+ width: var(--checkbox-inner-size, 1.5rem);
577
+ line-height: 1.625rem; /* 26 */
578
+ background: none !important;
579
+ border: none !important;
580
+ outline: none !important;
581
+ top: var(--checkbox-inner-top, 0.5rem);
582
+ left: var(--checkbox-inner-left, var(--outline-width));
583
+ text-align: center;
584
+ }
585
+ }
586
+
587
+ input:is([type='radio'], [type='checkbox']):checked:is(:focus, :hover, .focus) + label,
588
+ label:not(.tag):has(input:is([type='radio'], [type='checkbox']):checked:is(:focus, :hover, .focus)) {
589
+ --tick-colour: var(--colour-info);
590
+ }
591
+
592
+ input:is([type='radio'], [type='checkbox']):is(:focus, :hover, .focus) + label,
593
+ input:is([type='radio'], [type='checkbox']) + label.hover,
594
+ label:not(.tag):has(input:is([type='radio'], [type='checkbox']):is(:focus, :hover, .focus)) {
595
+ --tick-colour: var(--colour-muted);
596
+
597
+ &:before {
598
+ background: var(--colour-check-bg, light-dark(var(--colour-light), #444444));
599
+ outline: var(--outline-width) solid light-dark(var(--colour-light), #444444);
600
+ }
601
+ }
602
+ input:is([type='radio'], [type='checkbox']):is(:active, .active) + label,
603
+ input:is([type='radio'], [type='checkbox']) + label.active,
604
+ label:not(.tag):has(input:is([type='radio'], [type='checkbox']):is(:active, .active)) {
605
+ --tick-colour: var(--colour-light);
606
+
607
+ &:before {
608
+ background: var(--colour-check-bg, #e0e0e0);
609
+ outline: var(--outline-width) solid #e0e0e0;
610
+ }
611
+ }
612
+
613
+ /* Disabled */
614
+ input:is([type='radio'], [type='checkbox']):disabled + label,
615
+ label:not(.tag):has(input:is([type='radio'], [type='checkbox']):disabled) {
616
+ opacity: 0.4;
617
+ cursor: not-allowed;
618
+
619
+ > iam-card {
620
+ pointer-events: none;
621
+ }
622
+
623
+ &:before {
624
+ background-color: none !important;
625
+ outline: none !important;
626
+ border-color: var(--colour-primary) !important;
627
+ }
628
+ }
629
+
630
+ input[type='radio'][disabled]:checked + label,
631
+ label:not(.tag):has(input[type='radio'][disabled]:checked) {
632
+ &:after {
633
+ background-color: var(--colour-primary) !important;
634
+ }
635
+ }
636
+
637
+ input[type='checkbox'][disabled]:checked + label,
638
+ label:not(.tag):has(input[type='checkbox'][disabled]:checked) {
639
+ &:before {
640
+ background: #e0e0e0 !important;
641
+ border-color: #e0e0e0 !important;
642
+ }
643
+ }
644
+ }
645
+ /* #endregion */
646
+
647
+ /* #region Conditional reveal */
648
+ .conditional {
649
+ display: none;
650
+ }
651
+
652
+ input:checked + .conditional,
653
+ input:checked + label + .conditional,
654
+ label:has(:checked) + .conditional,
655
+ .was-validated .conditional:has(input[required]:invalid),
656
+ .was-validated .conditional:focus-within {
657
+ display: block;
658
+ clear: both;
659
+ }
660
+
661
+ input:not([class*='conditional-input-']):nth-of-type(1):checked ~ .conditional-1,
662
+ input:not([class*='conditional-input-']):nth-of-type(2):checked ~ .conditional-2,
663
+ input:not([class*='conditional-input-']):nth-of-type(3):checked ~ .conditional-3,
664
+ input:not([class*='conditional-input-']):nth-of-type(4):checked ~ .conditional-4,
665
+ input:not([class*='conditional-input-']):nth-of-type(5):checked ~ .conditional-5,
666
+ input.conditional-input-1:checked ~ .conditional-1,
667
+ input.conditional-input-2:checked ~ .conditional-2,
668
+ input.conditional-input-3:checked ~ .conditional-3,
669
+ input.conditional-input-4:checked ~ .conditional-4,
670
+ input.conditional-input-5:checked ~ .conditional-5,
671
+ label:has(input.conditional-input-1:checked) ~ .conditional-1,
672
+ label:has(input.conditional-input-2:checked) ~ .conditional-2,
673
+ label:has(input.conditional-input-3:checked) ~ .conditional-3,
674
+ label:has(input.conditional-input-4:checked) ~ .conditional-4,
675
+ label:has(input.conditional-input-5:checked) ~ .conditional-5 {
676
+ display: block;
677
+ clear: both;
678
+ }
679
+ /* #endregion */
680
+
681
+ /* #region Multi-select */
682
+ select[multiple] {
683
+ border-radius: 0.35rem;
684
+ }
685
+ select[multiple]::-webkit-scrollbar {
686
+ width: 0.7rem; /* manage scrollbar width here */
687
+ }
688
+ select[multiple]::-webkit-scrollbar * {
689
+ background-color: transparent; /* manage scrollbar background color here */
690
+ }
691
+ select[multiple]::-webkit-scrollbar-thumb {
692
+ background-color: rgba(0, 0, 0, 0.2);
693
+ /* background-color:#000000!important; // manage scrollbar thumb background color here */
694
+ border-radius: 0.35rem;
695
+ }
696
+ /* #endregion */
697
+
698
+ /* #region Select */
699
+
700
+ select:not(.select--minimal, .btn) {
701
+ $form-select-indicator-new: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/></svg>") !default;
702
+
703
+ background:
704
+ var(--icon-select) right var(--input-padding-block, 0.75rem) top
705
+ var(--input-padding-block, 0.75rem) / var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,
706
+ linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top /
707
+ calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem))
708
+ calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem))
709
+ no-repeat,
710
+ linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));
711
+
712
+ padding-right: calc(
713
+ var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)
714
+ ) !important;
715
+ option {
716
+ font-size: 1.2em;
717
+ }
718
+
719
+ box-shadow: inset -2px 0px 0px var(--colour-primary-theme);
720
+
721
+ max-width: var(--select-max-width);
722
+
723
+ &[multiple],
724
+ &[size]:not([size='1']) {
725
+ background: none;
726
+ max-height: none !important;
727
+ }
728
+
729
+ &:disabled {
730
+
731
+ background-color: gray;
732
+ border-color: black;
733
+ }
734
+
735
+ /* Remove outline from select box in FF */
736
+ &:-moz-focusring {
737
+ color: transparent;
738
+ text-shadow: 0 0 0 inherit;
739
+ }
740
+ }
741
+
742
+ div:has(> select) {
743
+ margin-bottom: 1.5rem;
744
+
745
+ select {
746
+ margin-bottom: 0 !important;
747
+ }
748
+ }
749
+
750
+ .select--minimal {
751
+ all: unset;
752
+ font-size: inherit;
753
+ line-height: inherit;
754
+ background: none;
755
+ border: 2px solid transparent;
756
+ display: inline-block;
757
+ padding: 0.4em calc(1em + 0.8ch) 0.4rem var(--select-padding-left, 0.4em) !important;
758
+ font-weight: normal !important;
759
+ margin: -0.4em 0 !important;
760
+ border-radius: 0.25em;
761
+
762
+ color: var(--colour-body);
763
+
764
+ height: auto;
765
+ cursor: pointer;
766
+ font-family: var(--font-body) !important;
767
+
768
+ option {
769
+ background-color: var(--colour-canvas);
770
+ padding-left: 1em;
771
+ font-size: inherit;
772
+ line-height: inherit;
773
+ }
774
+
775
+ &:hover {
776
+ /* border: none; */
777
+ background: var(--colour-light);
778
+ }
779
+
780
+ &:is(:focus, .focus):not(:disabled) {
781
+ border-color: var(--colour-info);
782
+ outline: 0;
783
+ box-shadow: 0 0 0 0.1rem rgba(30, 190, 230, 0.25);
784
+ }
785
+ }
786
+
787
+ *:has(> .select--minimal) {
788
+ position: relative;
789
+ display: inline-block !important;
790
+ width: auto !important;
791
+ font-size: inherit !important;
792
+ line-height: 1 !important;
793
+
794
+ padding: 0 !important;
795
+ margin: 0 !important;
796
+
797
+ font-family: var(--font-body) !important;
798
+
799
+ &:after {
800
+ font-size: 0.8em;
801
+ line-height: 1em;
802
+ content: '\f078';
803
+ font-family: 'Font Awesome 7 Pro';
804
+ position: absolute;
805
+ top: 40%;
806
+ transform: translate(0, -50%);
807
+ right: calc(0.8ch);
808
+ pointer-events: none;
809
+
810
+ color: var(--colour-body);
811
+ }
812
+ }
813
+ /* #endregion */
814
+
815
+ /* #region file upload */
816
+ iam-fileupload {
817
+ input {
818
+ display: none;
819
+ }
820
+ }
821
+ /* #endregion */
822
+
823
+ /* #region label with input field in */
824
+ :is(label:not(.tag), .label):has(:is(input, select, textarea)) {
825
+ display: block;
826
+ margin-bottom: 1.5rem;
827
+ max-width: var(--input-max-width);
828
+
829
+ :is(input:not([type='range']), select) {
830
+ margin-top: 0.5rem;
831
+ margin-bottom: 0 !important;
832
+ }
833
+
834
+ :is(input, select) ~ span:not(:is(.suffix, .prefix, .invalid-feedback)),
835
+ span:has(> :is(input, select)) ~ span:not(:is(.suffix, .prefix, .invalid-feedback)),
836
+ .hint-text {
837
+ all: initial;
838
+ font-family: var(--font-body);
839
+ color: var(--colour-body);
840
+ margin-top: 0.5rem;
841
+ display: block;
842
+ line-height: 1.2;
843
+ }
844
+ .invalid-feedback {
845
+ font-size: 1rem;
846
+ font-weight: normal;
847
+ line-height: 1.2;
848
+ }
849
+
850
+ span:has(:is(input, select)) {
851
+ display: flex;
852
+ width: 100%;
853
+ }
854
+
855
+ :is(.suffix, .prefix):not(.mt-0) {
856
+ margin: 0.5rem 0 0 0 !important;
857
+ }
858
+ }
859
+
860
+ .was-validated label:has(:is(input:not([type='radio']):not([type='checkbox']), select)),
861
+ .was-validated fieldset:has(label input:is([type='radio'], [type='checkbox']):invalid) {
862
+ margin-bottom: 1.5rem;
863
+
864
+ &:has(:is(:invalid, .is-invalid)):after {
865
+ content: 'This field is required';
866
+ color: var(--colour-danger);
867
+ margin-top: 0.5rem;
868
+ background-image: var(--icon-error);
869
+ background-repeat: no-repeat;
870
+ background-position: left top 1px;
871
+ background-size: var(--input-fs, 1rem) var(--input-fs, 1rem);
872
+ padding-left: calc(var(--input-fs, 1rem) + 0.5rem);
873
+ display: block;
874
+ width: 100%;
875
+ font-size: 1rem;
876
+ line-height: 1.2;
877
+ }
878
+
879
+ &[data-error]:has(:is(:invalid, .is-invalid)):after {
880
+ content: attr(data-error) !important;
881
+ }
882
+
883
+ &.error-nowrap:after {
884
+ white-space: nowrap;
885
+ }
886
+ }
887
+
888
+ /* #endregion */
889
+
890
+ /* #region input range */
891
+ input[type='range'] {
892
+ --track-size: 0.5rem;
893
+ --track-colour: var(--colour-light);
894
+ --thumb-colour: var(--colour-info);
895
+ --thumb-size: 1.5rem;
896
+ width: 100%;
897
+ background: transparent;
898
+ cursor: pointer;
899
+ margin-top: 2rem;
900
+ margin-bottom: 2rem;
901
+ height: 2rem;
902
+ border-radius: 50%;
903
+ accent-color: var(--thumb-colour);
904
+ -webkit-appearance: none;
905
+ appearance: none;
906
+ }
907
+
908
+ *:has(> input[type='range']) {
909
+ position: relative;
910
+ padding-bottom: 6rem;
911
+ max-width: var(--input-max-width);
912
+ }
913
+
914
+ label input[type='range'] {
915
+ position: absolute;
916
+ top: 1.5rem;
917
+ left: 0;
918
+ }
919
+
920
+ /* Track Styles */
921
+ input[type='range']::-webkit-slider-runnable-track {
922
+ background: var(--track-colour);
923
+ height: var(--track-size);
924
+ border-radius: 0.5rem;
925
+ }
926
+
927
+ input[type='range']::-moz-range-track {
928
+ background: var(--track-colour);
929
+ height: var(--track-size);
930
+ border-radius: 0.5rem;
931
+ }
932
+
933
+ /* Thumb Styles */
934
+ input[type='range']::-webkit-slider-thumb {
935
+ -webkit-appearance: none; /* Override default look */
936
+ appearance: none;
937
+ margin-top: -0.5rem; /* Centers thumb on the track */
938
+ background-color: var(--thumb-colour);
939
+ height: var(--thumb-size);
940
+ width: var(--thumb-size);
941
+ border-radius: 50%;
942
+ position: relative;
943
+ z-index: 99;
944
+ pointer-events: all;
945
+ }
946
+
947
+ input[type='range']::-moz-range-thumb {
948
+ border: none; /*Removes extra border that FF applies*/
949
+ background-color: var(--thumb-colour); /*Removes default border-radius that FF applies*/
950
+ height: var(--thumb-size);
951
+ width: var(--thumb-size);
952
+ border-radius: 50%;
953
+ position: relative;
954
+ z-index: 99;
955
+ pointer-events: all;
956
+ }
957
+
958
+ /* Focus Styles */
959
+ input[type='range']:focus {
960
+ outline: none;
961
+ }
962
+
963
+ input[type='range']:hover::-webkit-slider-thumb,
964
+ input[type='range']:focus::-webkit-slider-thumb {
965
+ outline: 0.5rem solid rgba(30, 190, 231, 0.2);
966
+ }
967
+
968
+ input[type='range']:active::-webkit-slider-thumb {
969
+ outline: 0.5rem solid rgba(30, 190, 231, 0.4);
970
+ }
971
+
972
+ input[type='range']:hover::-moz-range-thumb,
973
+ input[type='range']:focus::-moz-range-thumb {
974
+ outline: 0.5rem solid rgba(30, 190, 231, 0.2);
975
+ }
976
+ input[type='range']:focus::-moz-range-thumb {
977
+ outline: 0.5rem solid rgba(30, 190, 231, 0.4);
978
+ }
979
+
980
+ iam-slider input::-webkit-outer-spin-button,
981
+ iam-slider input::-webkit-inner-spin-button {
982
+ -webkit-appearance: none;
983
+ margin: 0;
984
+ }
985
+
986
+ /* #endregion */
987
+
988
+ /* #region Date and time fields */
989
+ :is(input[type='date'],input[type='datetime-local'],input[type='year'],input[type='month'],input[type='week'], input[type='time']) {
990
+ position: relative;
991
+ margin-right: -3rem;
992
+ padding-right: 3rem !important;
993
+ background-position: right 4rem center;
994
+ border-radius: 0.5rem !important;
995
+ }
996
+ ::-webkit-calendar-picker-indicator {
997
+ background: transparent;
998
+ bottom: 0;
999
+ color: transparent;
1000
+ cursor: pointer;
1001
+ height: auto;
1002
+ left: 0;
1003
+ position: absolute;
1004
+ right: 0;
1005
+ top: 0;
1006
+ width: auto;
1007
+ order: 3;
1008
+ z-index: 98;
1009
+ }
1010
+ ::-webkit-datetime-edit {
1011
+ position: relative;
1012
+ z-index: 99;
1013
+ max-width: fit-content;
1014
+ }
1015
+ /* #endregion */
1016
+ }
1017
+
1018
+ /* #region datalist */
1019
+ :is(iam-advanced-select, iam-search, .postcode-lookup) {
1020
+ position: relative;
1021
+ display: block;
1022
+
1023
+ label {
1024
+ position: relative;
1025
+ }
1026
+
1027
+ input {
1028
+ padding-right: 3rem;
1029
+ }
1030
+
1031
+ .empty {
1032
+ position: absolute;
1033
+ bottom: 0.5rem;
1034
+ right: 3.5rem;
1035
+ margin: 0;
1036
+ aspect-ratio: 1 / 1;
1037
+
1038
+ width: 2rem;
1039
+ height: 2rem;
1040
+
1041
+ text-align: center;
1042
+ line-height: 1;
1043
+
1044
+ &:not(:hover, :focus) {
1045
+ border-color: transparent;
1046
+ background-color: transparent;
1047
+ }
1048
+
1049
+ i {
1050
+ font-size: 1.2rem;
1051
+ }
1052
+ }
1053
+
1054
+ &:has([name="postcode"][disabled]) .empty{
1055
+
1056
+ display: none;
1057
+ }
1058
+
1059
+ &:has(input:is([name$="Alt"]):not([data-value],[data-placeholder])) .empty {
1060
+ display: none;
1061
+ }
1062
+
1063
+ label:after,
1064
+ .hint-text {
1065
+ position: absolute;
1066
+ top: 100%;
1067
+ }
1068
+
1069
+ label[for="use"]:after {
1070
+ top: var(--checkbox-inner-top, 0.5rem);
1071
+ }
1072
+ }
1073
+
1074
+ .was-validated :is(iam-advanced-select, iam-search, postcode-lookup) label:has(:is(input:not([type='radio']):not([type='checkbox']), select)),
1075
+ :is(iam-advanced-select, iam-search, postcode-lookup).was-validated label:has(:is(input:not([type='radio']):not([type='checkbox']), select)) {
1076
+ margin-bottom: 2.5rem;
1077
+
1078
+ input {
1079
+ background: none !important;
1080
+ }
1081
+
1082
+ &:has(:invalid, .is-invalid) .hint-text {
1083
+ display: none;
1084
+ }
1085
+ }
1086
+
1087
+
1088
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup) datalist {
1089
+
1090
+ &:empty {
1091
+ display: none !important;
1092
+ }
1093
+
1094
+ z-index: 100;
1095
+ top: 100%;
1096
+ position: absolute;
1097
+ background-color: var(--colour-canvas);
1098
+ border-top: none;
1099
+
1100
+ &:not(:empty):has(option:not(.hide)){
1101
+
1102
+ padding: 0.5rem;
1103
+ }
1104
+
1105
+
1106
+ max-height: 25rem;
1107
+ overflow-y: auto;
1108
+ width: 100%;
1109
+ max-width: var(--input-max-width, 50rem);
1110
+ border: none !important;
1111
+ border-radius: 0.5rem;
1112
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
1113
+ display: none;
1114
+
1115
+ option {
1116
+ background-color: var(--colour-canvas);
1117
+ padding: 0.5rem;
1118
+
1119
+ cursor: pointer;
1120
+ background: unset !important;
1121
+ border: unset !important;
1122
+ color: var(--colour-primary) !important;
1123
+ font-weight: inherit !important;
1124
+ font-family: inherit !important;
1125
+ font-size: 1rem !important;
1126
+ line-height: 1.5rem !important;
1127
+ margin: var(--menu-item-margin, 0 0 0.25rem 0) !important;
1128
+ padding-block: var(--menu-item-padding, 0.25rem) !important;
1129
+ width: 100% !important;
1130
+ max-width: 100% !important;
1131
+ text-align: var(--menu-item-text-align, left) !important;
1132
+
1133
+ display: -webkit-box;
1134
+ -webkit-line-clamp: 2;
1135
+ -webkit-box-orient: vertical;
1136
+ white-space: normal;
1137
+ text-overflow: ellipsis;
1138
+ overflow: clip;
1139
+
1140
+ &:is(:hover, :focus) {
1141
+ background: var(--colour-light) !important;
1142
+ color: #595959 !important;
1143
+ border-radius: 0.25rem !important;
1144
+ }
1145
+
1146
+ &:active {
1147
+ background: rgba(224, 224, 224, 1) !important;
1148
+ border-radius: 0.25rem !important;
1149
+ }
1150
+
1151
+ &.active {
1152
+ border-left: 4px solid var(--colour-info) !important;
1153
+ border-radius: 0.25rem !important;
1154
+ background: hsl(from var(--colour-info) h s l / 10%) !important;
1155
+ }
1156
+ }
1157
+ }
1158
+
1159
+ .dark-theme :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup) datalist {
1160
+
1161
+ color-scheme: dark;
1162
+ }
1163
+
1164
+ @media (prefers-color-scheme: dark) {
1165
+ html:not(.light-theme) :is(.bg-primary, .bg-danger, .bg-dark):not(iam-header) {
1166
+
1167
+ --colour-heading: var(--colour-primary-theme);
1168
+ --colour-body: var(--colour-primary-theme);
1169
+ color: var(--colour-primary-theme);
1170
+
1171
+ /* Apply the light colour scheme not on the background element but just its children so that the background colour isn't overwritten */
1172
+ > * {
1173
+ color-scheme: light;
1174
+ }
1175
+ }
1176
+
1177
+ html:not(.light-theme) .bg-light {
1178
+
1179
+ color-scheme: light;
1180
+ }
1181
+ }
1182
+
1183
+
1184
+
1185
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active),:active) datalist {
1186
+
1187
+ display: block;
1188
+
1189
+ &:empty {
1190
+ display: block !important;
1191
+ }
1192
+ }
1193
+
1194
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper {
1195
+
1196
+ top: 100%;
1197
+ position: absolute;
1198
+ border-radius: 0.5rem;
1199
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
1200
+ width: 100% !important;
1201
+ /* max-width: var(--menu-item-width, 50rem) !important; */
1202
+ z-index: 100;
1203
+ display: none;
1204
+ max-height: 25rem;
1205
+ overflow-y: auto;
1206
+
1207
+ max-width: var(--input-max-width) !important;
1208
+
1209
+ > datalist {
1210
+ border: none!important;
1211
+ box-shadow: none!important;
1212
+ position: relative;
1213
+ display: block!important;
1214
+ border-radius: 0!important;
1215
+ max-height: 100%!important;
1216
+ }
1217
+
1218
+ &:focus {
1219
+ outline: none!important;
1220
+ }
1221
+ }
1222
+
1223
+ iam-address-lookup [slot="preloadedList"]{
1224
+ border: none!important;
1225
+ box-shadow: none!important;
1226
+ position: relative;
1227
+ display: block!important;
1228
+ border-radius: 0!important;
1229
+ max-height: 100%!important;
1230
+
1231
+ &.noresults {
1232
+ display: block !important;
1233
+ }
1234
+
1235
+ &.noresults:before {
1236
+ content: "No addresses found";
1237
+ background-color: white;
1238
+ padding: 1rem 0.5rem;
1239
+ color: var(--colour-primary) !important;
1240
+ font-weight: inherit !important;
1241
+ font-family: inherit !important;
1242
+ font-size: 1rem !important;
1243
+ line-height: 1.1875rem !important;
1244
+ padding-block: var(--menu-item-padding, 1rem) !important;
1245
+ display: block;
1246
+ }
1247
+ }
1248
+
1249
+
1250
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist:not(:empty)),
1251
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.loading),
1252
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.noresults),
1253
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper:hover {
1254
+
1255
+ display: block;
1256
+ }
1257
+
1258
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div) .datalist__wrapper:has(datalist.noresults){
1259
+ datalist {
1260
+
1261
+ display: block;
1262
+
1263
+ &:before {
1264
+ content: "No addresses found";
1265
+ background-color: white;
1266
+ padding: 0.5rem;
1267
+ color: var(--colour-primary) !important;
1268
+ font-weight: inherit !important;
1269
+ font-family: inherit !important;
1270
+ font-size: 1rem !important;
1271
+ line-height: 1.1875rem !important;
1272
+ padding-block: var(--menu-item-padding, 0.5rem) !important;
1273
+ display: block;
1274
+ }
1275
+ }
1276
+ }
1277
+
1278
+ :is(iam-advanced-select, iam-search, iam-address-lookup, .postcode-lookup > div):is(:focus-within,:has(option:active)) .datalist__wrapper:has(datalist.loading) {
1279
+
1280
+ datalist {
1281
+
1282
+ height: 5rem;
1283
+
1284
+ &:before {
1285
+ content: "\f021";
1286
+ font-family: "Font Awesome 7 Pro";
1287
+ font-size: 1.75rem;
1288
+ font-weight: 300;
1289
+ display: block;
1290
+ position: absolute;
1291
+ top: calc(50% - 1rem);
1292
+ left: calc(50% - 1rem);
1293
+ /*transform: translate(-50%,-50%);*/
1294
+
1295
+ animation-name: spin;
1296
+ animation-duration: 4000ms;
1297
+ animation-iteration-count: infinite;
1298
+ animation-timing-function: linear;
1299
+ }
1300
+ }
1301
+ }
1302
+
1303
+ @-ms-keyframes spin {
1304
+ from { -ms-transform: rotate(0deg); }
1305
+ to { -ms-transform: rotate(360deg); }
1306
+ }
1307
+ @-moz-keyframes spin {
1308
+ from { -moz-transform: rotate(0deg); }
1309
+ to { -moz-transform: rotate(360deg); }
1310
+ }
1311
+ @-webkit-keyframes spin {
1312
+ from { -webkit-transform: rotate(0deg); }
1313
+ to { -webkit-transform: rotate(360deg); }
1314
+ }
1315
+ @keyframes spin {
1316
+ from {
1317
+ transform:rotate(0deg);
1318
+ }
1319
+ to {
1320
+ transform:rotate(360deg);
1321
+ }
1322
+ }
1323
+
1324
+ :is(iam-advanced-select, iam-search, .postcode-lookup) {
1325
+
1326
+ [name="beforeList"] {
1327
+ display: none;
1328
+ }
1329
+
1330
+ [name="beforeList"]:has(+ .show-welsh-banner) {
1331
+ display: block;
1332
+ }
1333
+ .datalist__wrapper.show-welsh-banner [name="beforeList"] {
1334
+ display: block;
1335
+ }
1336
+ }
1337
+ /* #endregion */