@iamproperty/components 7.3.0 → 7.5.0

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 (327) hide show
  1. package/README.md +1 -1
  2. package/assets/css/components/actionbar.component.css +1 -1
  3. package/assets/css/components/actionbar.component.css.map +1 -1
  4. package/assets/css/components/actionbar.global.css +1 -1
  5. package/assets/css/components/actionbar.global.css.map +1 -1
  6. package/assets/css/components/address-lookup.component.css +1 -0
  7. package/assets/css/components/address-lookup.component.css.map +1 -0
  8. package/assets/css/components/barchart.component.css +1 -1
  9. package/assets/css/components/barchart.component.css.map +1 -1
  10. package/assets/css/components/calendar.component.css +1 -0
  11. package/assets/css/components/calendar.component.css.map +1 -0
  12. package/assets/css/components/calendar.config.css +1 -0
  13. package/assets/css/components/calendar.config.css.map +1 -0
  14. package/assets/css/components/card.component.css +1 -1
  15. package/assets/css/components/card.component.css.map +1 -1
  16. package/assets/css/components/carousel.component.css +1 -1
  17. package/assets/css/components/carousel.component.css.map +1 -1
  18. package/assets/css/components/charts.css +1 -1
  19. package/assets/css/components/charts.css.map +1 -1
  20. package/assets/css/components/collapsible-side.css +1 -1
  21. package/assets/css/components/collapsible-side.css.map +1 -1
  22. package/assets/css/components/content.component.css +1 -0
  23. package/assets/css/components/content.component.css.map +1 -0
  24. package/assets/css/components/darkmode.component.css +1 -0
  25. package/assets/css/components/darkmode.component.css.map +1 -0
  26. package/assets/css/components/doughnutchart.component.css +1 -1
  27. package/assets/css/components/doughnutchart.component.css.map +1 -1
  28. package/assets/css/components/fileupload.css.map +1 -1
  29. package/assets/css/components/inline-edit.css +1 -1
  30. package/assets/css/components/inline-edit.css.map +1 -1
  31. package/assets/css/components/marketing.component.css +1 -0
  32. package/assets/css/components/marketing.component.css.map +1 -0
  33. package/assets/css/components/menu.component.css.map +1 -1
  34. package/assets/css/components/{menu.css → menu.global.css} +1 -1
  35. package/assets/css/components/menu.global.css.map +1 -0
  36. package/assets/css/components/milestone.css +1 -0
  37. package/assets/css/components/milestone.css.map +1 -0
  38. package/assets/css/components/multi-step.component.css +1 -1
  39. package/assets/css/components/multi-step.component.css.map +1 -1
  40. package/assets/css/components/multiselect.css +1 -1
  41. package/assets/css/components/multiselect.css.map +1 -1
  42. package/assets/css/components/multiselect.preload.css +1 -1
  43. package/assets/css/components/multiselect.preload.css.map +1 -1
  44. package/assets/css/components/nav.component.css +1 -1
  45. package/assets/css/components/nav.component.css.map +1 -1
  46. package/assets/css/components/nav.global.css +1 -1
  47. package/assets/css/components/nav.global.css.map +1 -1
  48. package/assets/css/components/notification.css +1 -1
  49. package/assets/css/components/notification.css.map +1 -1
  50. package/assets/css/components/pagination.css.map +1 -1
  51. package/assets/css/components/property-searchbar.css +1 -1
  52. package/assets/css/components/property-searchbar.css.map +1 -1
  53. package/assets/css/components/rank.component.css +1 -1
  54. package/assets/css/components/rank.component.css.map +1 -1
  55. package/assets/css/components/rankings.component.css +1 -1
  56. package/assets/css/components/rankings.component.css.map +1 -1
  57. package/assets/css/components/rankings.global.css +1 -1
  58. package/assets/css/components/rankings.global.css.map +1 -1
  59. package/assets/css/components/slider.css.map +1 -1
  60. package/assets/css/components/split-button.component.css +1 -0
  61. package/assets/css/components/split-button.component.css.map +1 -0
  62. package/assets/css/components/word-count.component.css +1 -0
  63. package/assets/css/components/word-count.component.css.map +1 -0
  64. package/assets/css/core.min.css +1 -1
  65. package/assets/css/core.min.css.map +1 -1
  66. package/assets/css/mobile-core.min.css +1 -1
  67. package/assets/css/mobile-core.min.css.map +1 -1
  68. package/assets/css/mobile.min.css +1 -1
  69. package/assets/css/mobile.min.css.map +1 -1
  70. package/assets/css/style.min.css +1 -1
  71. package/assets/css/style.min.css.map +1 -1
  72. package/assets/js/components/accordion/accordion.component.js +40 -19
  73. package/assets/js/components/accordion/accordion.component.min.js +15 -15
  74. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  75. package/assets/js/components/actionbar/actionbar.component.js +59 -31
  76. package/assets/js/components/actionbar/actionbar.component.min.js +18 -17
  77. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  78. package/assets/js/components/address-lookup/address-lookup.component.js +6 -8
  79. package/assets/js/components/address-lookup/address-lookup.component.min.js +10 -12
  80. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  81. package/assets/js/components/advanced-select/advanced-select.component.js +63 -0
  82. package/assets/js/components/advanced-select/advanced-select.component.min.js +23 -0
  83. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -0
  84. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  85. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  86. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  87. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  88. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  89. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  90. package/assets/js/components/calendar/calendar.component.js +1100 -0
  91. package/assets/js/components/calendar/calendar.component.min.js +170 -0
  92. package/assets/js/components/calendar/calendar.component.min.js.map +1 -0
  93. package/assets/js/components/card/card.component.js +14 -8
  94. package/assets/js/components/card/card.component.min.js +16 -10
  95. package/assets/js/components/card/card.component.min.js.map +1 -1
  96. package/assets/js/components/carousel/carousel.component.js +17 -19
  97. package/assets/js/components/carousel/carousel.component.min.js +17 -19
  98. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  99. package/assets/js/components/collapsible-side/collapsible-side.component.js +47 -12
  100. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +6 -5
  101. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  102. package/assets/js/components/content/content.component.js +66 -0
  103. package/assets/js/components/content/content.component.min.js +15 -0
  104. package/assets/js/components/content/content.component.min.js.map +1 -0
  105. package/assets/js/components/darkmode/darkmode.component.js +70 -0
  106. package/assets/js/components/darkmode/darkmode.component.min.js +10 -0
  107. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -0
  108. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  109. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  110. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  111. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  112. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  113. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  114. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  115. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  116. package/assets/js/components/header/header.component.min.js +1 -1
  117. package/assets/js/components/header/header.component.min.js.map +1 -1
  118. package/assets/js/components/inline-edit/inline-edit.component.min.js +5 -5
  119. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  120. package/assets/js/components/marketing/marketing.component.js +1 -1
  121. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  122. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  123. package/assets/js/components/menu/menu.component.js +12 -4
  124. package/assets/js/components/menu/menu.component.min.js +4 -5
  125. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  126. package/assets/js/components/milestone/milestone.component.js +36 -0
  127. package/assets/js/components/milestone/milestone.component.min.js +15 -0
  128. package/assets/js/components/milestone/milestone.component.min.js.map +1 -0
  129. package/assets/js/components/milestone-group/milestone-group.component.js +33 -0
  130. package/assets/js/components/milestone-group/milestone-group.component.min.js +13 -0
  131. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -0
  132. package/assets/js/components/multi-step/multi-step.component.min.js +3 -3
  133. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  134. package/assets/js/components/multiselect/multiselect.component.js +54 -2
  135. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  136. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  137. package/assets/js/components/nav/nav.component.js +18 -0
  138. package/assets/js/components/nav/nav.component.min.js +6 -6
  139. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  140. package/assets/js/components/notification/notification.component.js +15 -11
  141. package/assets/js/components/notification/notification.component.min.js +4 -4
  142. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  143. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  144. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  145. package/assets/js/components/rank/rank.component.js +346 -210
  146. package/assets/js/components/rank/rank.component.min.js +346 -211
  147. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  148. package/assets/js/components/rankings/rankings.component.js +17 -8
  149. package/assets/js/components/rankings/rankings.component.min.js +14 -8
  150. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  151. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  152. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  153. package/assets/js/components/search/search.component.js +5 -3
  154. package/assets/js/components/search/search.component.min.js +6 -6
  155. package/assets/js/components/search/search.component.min.js.map +1 -1
  156. package/assets/js/components/slider/slider.component.min.js +1 -1
  157. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  158. package/assets/js/components/split-button/split-button.component.js +58 -0
  159. package/assets/js/components/split-button/split-button.component.min.js +31 -0
  160. package/assets/js/components/split-button/split-button.component.min.js.map +1 -0
  161. package/assets/js/components/table/table.component.js +12 -0
  162. package/assets/js/components/table/table.component.min.js +3 -3
  163. package/assets/js/components/table/table.component.min.js.map +1 -1
  164. package/assets/js/components/table-ajax/table-ajax.component.js +12 -0
  165. package/assets/js/components/table-ajax/table-ajax.component.min.js +3 -3
  166. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  167. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  168. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  169. package/assets/js/components/table-no-submit/table-no-submit.component.js +12 -0
  170. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +3 -3
  171. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  172. package/assets/js/components/table-submit/table-submit.component.js +12 -0
  173. package/assets/js/components/table-submit/table-submit.component.min.js +3 -3
  174. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  175. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  176. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  177. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  178. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  179. package/assets/js/components/word-count/word-count.component.js +81 -0
  180. package/assets/js/components/word-count/word-count.component.min.js +12 -0
  181. package/assets/js/components/word-count/word-count.component.min.js.map +1 -0
  182. package/assets/js/components.js +59 -0
  183. package/assets/js/modules/advanced-select.js +106 -0
  184. package/assets/js/modules/dialogs.js +53 -51
  185. package/assets/js/modules/dynamicEvents.js +7 -0
  186. package/assets/js/modules/inputs.js +0 -18
  187. package/assets/js/modules/milestone-group.js +30 -0
  188. package/assets/js/modules/milestone.js +89 -0
  189. package/assets/js/modules/table.js +11 -1
  190. package/assets/js/modules/videos.js +1 -1
  191. package/assets/js/scripts.bundle.js +3 -3
  192. package/assets/js/scripts.bundle.js.map +1 -1
  193. package/assets/js/scripts.bundle.min.js +2 -2
  194. package/assets/js/scripts.bundle.min.js.map +1 -1
  195. package/assets/js/scripts.js +5 -0
  196. package/assets/sass/_components.scss +15 -4
  197. package/assets/sass/_example.scss +1 -1
  198. package/assets/sass/_functions/utility-mixins.scss +40 -0
  199. package/assets/sass/_functions/variables.scss +11 -5
  200. package/assets/sass/components/actionbar.component.scss +23 -1
  201. package/assets/sass/components/actionbar.global.scss +5 -5
  202. package/assets/sass/components/{address-lookup.scss → address-lookup.component.scss} +10 -0
  203. package/assets/sass/components/calendar.component.scss +1272 -0
  204. package/assets/sass/components/calendar.config.scss +423 -0
  205. package/assets/sass/components/card.component.scss +4 -34
  206. package/assets/sass/components/carousel.component.scss +5 -0
  207. package/assets/sass/components/collapsible-side.scss +91 -95
  208. package/assets/sass/components/content.component.scss +18 -0
  209. package/assets/sass/components/darkmode.component.scss +22 -0
  210. package/assets/sass/components/inline-edit.scss +2 -0
  211. package/assets/sass/components/{marketing.scss → marketing.component.scss} +2 -6
  212. package/assets/sass/components/menu.component.scss +3 -8
  213. package/assets/sass/components/milestone.scss +216 -0
  214. package/assets/sass/components/multi-step.component.scss +1 -1
  215. package/assets/sass/components/multiselect.preload.scss +1 -1
  216. package/assets/sass/components/multiselect.scss +2 -0
  217. package/assets/sass/components/nav.component.scss +17 -6
  218. package/assets/sass/components/nav.global.scss +29 -3
  219. package/assets/sass/components/notification.scss +32 -13
  220. package/assets/sass/components/rank.component.scss +197 -24
  221. package/assets/sass/components/rankings.component.scss +38 -28
  222. package/assets/sass/components/rankings.global.scss +64 -2
  223. package/assets/sass/components/split-button.component.scss +79 -0
  224. package/assets/sass/components/table-basic.global.scss +32 -32
  225. package/assets/sass/components/word-count.component.scss +26 -0
  226. package/assets/sass/elements/admin-panel.scss +1 -1
  227. package/assets/sass/elements/badge-tag.scss +5 -1
  228. package/assets/sass/elements/buttons--compact.scss +4 -0
  229. package/assets/sass/elements/details.scss +33 -7
  230. package/assets/sass/elements/forms.scss +135 -28
  231. package/assets/sass/elements/links.scss +132 -4
  232. package/assets/sass/elements/lists.scss +62 -1
  233. package/assets/sass/elements/popover.scss +64 -10
  234. package/assets/sass/elements/toggle-button.scss +8 -8
  235. package/assets/sass/elements/type.scss +7 -10
  236. package/assets/sass/foundations/colours.scss +0 -0
  237. package/assets/sass/foundations/reboot.scss +8 -1
  238. package/assets/sass/foundations/root.scss +41 -51
  239. package/assets/sass/templates/form.scss +0 -2
  240. package/assets/ts/components/accordion/accordion.component.ts +47 -26
  241. package/assets/ts/components/actionbar/actionbar.component.ts +58 -22
  242. package/assets/ts/components/address-lookup/address-lookup.component.ts +6 -8
  243. package/assets/ts/components/advanced-select/advanced-select.component.ts +74 -0
  244. package/assets/ts/components/calendar/calendar.component.ts +1330 -0
  245. package/assets/ts/components/card/card.component.ts +15 -14
  246. package/assets/ts/components/carousel/carousel.component.ts +17 -19
  247. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +53 -12
  248. package/assets/ts/components/content/content.component.ts +78 -0
  249. package/assets/ts/components/darkmode/darkmode.component.ts +85 -0
  250. package/assets/ts/components/marketing/marketing.component.ts +1 -1
  251. package/assets/ts/components/menu/menu.component.ts +18 -10
  252. package/assets/ts/components/milestone/milestone.component.ts +43 -0
  253. package/assets/ts/components/milestone-group/milestone-group.component.ts +39 -0
  254. package/assets/ts/components/multiselect/multiselect.component.ts +60 -3
  255. package/assets/ts/components/nav/nav.component.ts +18 -0
  256. package/assets/ts/components/notification/notification.component.ts +30 -11
  257. package/assets/ts/components/rank/rank.component.ts +345 -209
  258. package/assets/ts/components/rankings/rankings.component.ts +27 -8
  259. package/assets/ts/components/search/search.component.ts +6 -4
  260. package/assets/ts/components/split-button/split-button.component.ts +67 -0
  261. package/assets/ts/components/table/table.component.ts +14 -0
  262. package/assets/ts/components/table-ajax/table-ajax.component.ts +14 -0
  263. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +14 -0
  264. package/assets/ts/components/table-submit/table-submit.component.ts +14 -0
  265. package/assets/ts/components/video-card/video-card.component.ts +2 -3
  266. package/assets/ts/components/word-count/word-count.component.ts +91 -0
  267. package/assets/ts/components.ts +64 -0
  268. package/assets/ts/modules/advanced-select.ts +120 -0
  269. package/assets/ts/modules/data-layer.md +0 -5
  270. package/assets/ts/modules/dialogs.ts +64 -61
  271. package/assets/ts/modules/dynamicEvents.ts +10 -0
  272. package/assets/ts/modules/inputs.ts +0 -25
  273. package/assets/ts/modules/milestone-group.ts +39 -0
  274. package/assets/ts/modules/milestone.ts +119 -0
  275. package/assets/ts/modules/table.ts +15 -1
  276. package/assets/ts/modules/videos.ts +19 -37
  277. package/assets/ts/scripts.ts +6 -3
  278. package/dist/components.es.js +849 -1079
  279. package/dist/components.umd.js +1052 -220
  280. package/package.json +6 -6
  281. package/src/components/Accordion/Accordion.vue +14 -23
  282. package/src/components/Accordion/AccordionItem.vue +27 -43
  283. package/src/components/Actionbar/Actionbar.vue +17 -19
  284. package/src/components/AddressLookup/AddressLookup.vue +17 -18
  285. package/src/components/AdvancedSelect/AdvancedSelect.vue +22 -0
  286. package/src/components/AppliedFilters/AppliedFilters.vue +16 -18
  287. package/src/components/Banner/Banner.vue +18 -21
  288. package/src/components/BarChart/BarChart.vue +17 -18
  289. package/src/components/Calendar/Calendar.vue +20 -0
  290. package/src/components/Card/Card.vue +17 -17
  291. package/src/components/Carousel/Carousel.vue +17 -20
  292. package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +7 -13
  293. package/src/components/Content/Content.vue +22 -0
  294. package/src/components/DarkMode/DarkMode.vue +19 -0
  295. package/src/components/DoughnutChart/DoughnutChart.vue +17 -18
  296. package/src/components/FileUpload/FileUpload.vue +22 -28
  297. package/src/components/FilterCard/FilterCard.vue +17 -18
  298. package/src/components/Filterlist/Filterlist.vue +17 -0
  299. package/src/components/Header/Header.vue +28 -29
  300. package/src/components/InlineEdit/InlineEdit.vue +11 -19
  301. package/src/components/Menu/Menu.vue +17 -17
  302. package/src/components/Milestones/Milestone.vue +22 -0
  303. package/src/components/Milestones/MilestoneGroup.vue +24 -0
  304. package/src/components/Multiselect/Multiselect.vue +17 -18
  305. package/src/components/Nav/Nav.vue +17 -19
  306. package/src/components/Notification/Notification.vue +17 -15
  307. package/src/components/Pagination/Pagination.vue +16 -16
  308. package/src/components/Rank/Rank.vue +17 -18
  309. package/src/components/Rankings/Rankings.vue +17 -27
  310. package/src/components/RecordCard/RecordCard.vue +17 -18
  311. package/src/components/Search/Search.vue +17 -17
  312. package/src/components/Slider/Slider.vue +17 -17
  313. package/src/components/SplitButton/README.md +19 -0
  314. package/src/components/SplitButton/SplitButton.vue +23 -0
  315. package/src/components/Tabs/Tabs.vue +17 -17
  316. package/src/components/VideoCard/VideoCard.vue +17 -18
  317. package/src/components/WordCount/WordCount.vue +22 -0
  318. package/src/index.js +2 -0
  319. package/assets/css/components/address-lookup.css +0 -1
  320. package/assets/css/components/address-lookup.css.map +0 -1
  321. package/assets/css/components/marketing.css +0 -1
  322. package/assets/css/components/marketing.css.map +0 -1
  323. package/assets/css/components/menu.css.map +0 -1
  324. package/assets/css/components/nav.old.css +0 -1
  325. package/assets/css/components/nav.old.css.map +0 -1
  326. package/assets/sass/components/nav.old.scss +0 -891
  327. /package/assets/sass/components/{menu.scss → menu.global.scss} +0 -0
@@ -60,6 +60,32 @@ $darkMode: 'true' !default;
60
60
  }
61
61
  }
62
62
 
63
+ > [popover] {
64
+ display: var(--menu-display, none);
65
+ position: fixed;
66
+ top: anchor(bottom) !important;
67
+
68
+ left: anchor(left) !important;
69
+
70
+ position-try-fallbacks: flip-block, flip-inline !important;
71
+
72
+ //right: auto;
73
+ margin: 0 0 0 #{rem(4)};
74
+ padding: rem(16);
75
+
76
+ &::backdrop {
77
+ display: none;
78
+ }
79
+ }
80
+
81
+ > [popover]:popover-open {
82
+ display: block !important;
83
+ }
84
+
85
+ &:has([popover]:popover-open) > button {
86
+ background-color: var(--colour);
87
+ }
88
+
63
89
  > :is(dialog[open], dialog:popover-open) {
64
90
  left: 0;
65
91
  margin-top: -1rem;
@@ -79,22 +105,27 @@ $darkMode: 'true' !default;
79
105
 
80
106
  &.dialog--list {
81
107
  width: fit-content !important;
82
-
83
- min-width: rem(140) !important;
84
- max-width: rem(280) !important;
85
- padding: rem(16);
108
+ min-width: rem(160) !important;
109
+ max-width: rem(240) !important;
110
+ padding: var(--menu-padding, 0.5rem);
86
111
  margin: 0;
112
+ background: var(--menu-bg, canvas);
113
+ border: var(--menu-border, 2px solid grey);
114
+ overflow: auto;
115
+ border: none !important;
116
+ border-radius: 0.5rem;
117
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
87
118
 
88
119
  @include media-breakpoint-up(sm, $mobileOnly) {
89
120
  width: max-content !important;
90
121
  }
91
122
 
92
123
  hr {
93
- height: 2px;
94
- background: var(--colour-border);
95
- margin-left: -#{rem(16)};
96
- margin-right: -#{rem(16)};
97
- margin-block: 0.25rem;
124
+ height: 1px !important;
125
+ background-color: var(--menu-hr-border-color, var(--border-color, grey)) !important;
126
+ width: 100%;
127
+ margin: var(--menu-item-margin, 0 0 0.25rem 0) !important;
128
+ padding: 0 !important;
98
129
  }
99
130
 
100
131
  .radio--tick {
@@ -123,10 +154,33 @@ $darkMode: 'true' !default;
123
154
  }
124
155
 
125
156
  .btn-action {
157
+ background: unset;
158
+ border: unset;
159
+ color: var(--colour-primary);
160
+ font-weight: inherit;
161
+ font-family: inherit;
162
+ font-size: 1rem;
163
+ line-height: rem(19);
164
+ display: block;
165
+ margin: var(--menu-item-margin, 0 0 0.25rem 0);
166
+ padding-block: var(--menu-item-padding, 0.5rem);
167
+ width: var(--menu-item-width, 100%);
168
+ max-width: var(--menu-item-width, 100%);
169
+ text-align: var(--menu-item-text-align, left);
170
+
126
171
  &:not(:hover, :focus, :active) {
127
172
  border-color: transparent;
128
173
  }
129
- margin: 0;
174
+
175
+ &:is(:hover, :focus) {
176
+ background: var(--colour-light) !important;
177
+ border-radius: 0.25rem !important;
178
+ }
179
+
180
+ &:is(:active) {
181
+ background: rgba(224, 224, 224, 1) !important;
182
+ border-radius: 0.25rem !important;
183
+ }
130
184
  }
131
185
  }
132
186
 
@@ -5,11 +5,11 @@ $mobileOnly: 'false' !default;
5
5
  $darkMode: 'true' !default;
6
6
 
7
7
  @include layer('elements', $layers) {
8
-
9
- // #region toggle
8
+ // #region toggle
10
9
  .toggle {
11
- --outline-width: 0.25rem!important;
10
+ --outline-width: 0.25rem !important;
12
11
  padding-left: 3.25rem !important;
12
+ max-width: fit-content !important;
13
13
  }
14
14
 
15
15
  .toggle:before {
@@ -21,14 +21,14 @@ $darkMode: 'true' !default;
21
21
  left: 0.25rem !important;
22
22
  }
23
23
 
24
- label.toggle:has(:is(input[type='checkbox'],input[type="radio"]):not([disabled]):checked):before {
24
+ label.toggle:has(:is(input[type='checkbox'], input[type='radio']):not([disabled]):checked):before {
25
25
  background: var(--colour-primary-theme) !important;
26
26
  }
27
27
 
28
28
  .toggle:after {
29
29
  position: absolute !important;
30
30
  content: '' !important;
31
- display: block!important;
31
+ display: block !important;
32
32
  top: 0.5rem !important;
33
33
  height: 1em !important;
34
34
  width: 1em !important;
@@ -40,7 +40,7 @@ $darkMode: 'true' !default;
40
40
  border-radius: 0.5em;
41
41
  }
42
42
 
43
- label.toggle:has(:is(input[type='checkbox'],input[type='radio']):not([disabled]):not([disabled]):checked):after {
43
+ label.toggle:has(:is(input[type='checkbox'], input[type='radio']):not([disabled]):not([disabled]):checked):after {
44
44
  background: var(--colour-primary-theme) !important;
45
45
  background-color: white !important;
46
46
  -webkit-transform: translateX(1rem) !important;
@@ -50,6 +50,6 @@ $darkMode: 'true' !default;
50
50
  // #endregion
51
51
 
52
52
  label.toggle:has(+ label.toggle) {
53
- margin-bottom: 0!important;
53
+ margin-bottom: 0 !important;
54
54
  }
55
- }
55
+ }
@@ -17,15 +17,14 @@ $darkMode: 'true' !default;
17
17
  // #region headings
18
18
 
19
19
  %heading {
20
-
21
20
  margin-top: 0; // 1
22
21
  margin-bottom: 0;
23
22
  font-family: $headings-font-family;
24
23
  font-style: $headings-font-style;
25
24
  font-weight: bold;
26
25
 
27
- line-height: round(calc(1em * var(--type-scale)),0.25rem);
28
- padding-bottom: round(calc(1em * var(--type-scale)),0.25rem);
26
+ line-height: round(calc(1em * var(--type-scale)), 0.25rem);
27
+ padding-bottom: round(calc(1em * var(--type-scale)), 0.25rem);
29
28
  color: $headings-color;
30
29
  clear: both;
31
30
  display: block;
@@ -40,12 +39,10 @@ $darkMode: 'true' !default;
40
39
  }
41
40
 
42
41
  :is(.h1, h1) {
43
-
44
42
  font-size: map.get($heading-sizes, 'h1_fs');
45
43
  font-weight: 900;
46
44
  }
47
45
 
48
-
49
46
  :is(h2, .h2) {
50
47
  font-size: map.get($heading-sizes, 'h2_fs');
51
48
  font-weight: 900;
@@ -55,16 +52,16 @@ $darkMode: 'true' !default;
55
52
  font-size: map.get($heading-sizes, 'h3_fs');
56
53
  max-width: var(--content-max-width);
57
54
 
58
- line-height: round(calc(1em * var(--type-scale)),0.25rem);
59
- padding-bottom: round(calc(1em * var(--type-scale)),0.25rem);
55
+ line-height: round(calc(1em * var(--type-scale)), 0.25rem);
56
+ padding-bottom: round(calc(1em * var(--type-scale)), 0.25rem);
60
57
  }
61
58
 
62
59
  :is(.h4, h4, .h5, h5, .h6, h6) {
63
60
  font-size: map.get($heading-sizes, 'h4_fs');
64
61
  max-width: var(--content-max-width);
65
-
66
- line-height: round(calc(1em * var(--type-scale)),0.25rem);
67
- padding-bottom: round(calc(1em * var(--type-scale)),0.25rem);
62
+
63
+ line-height: round(calc(1em * var(--type-scale)), 0.25rem);
64
+ padding-bottom: round(calc(1em * var(--type-scale)), 0.25rem);
68
65
  }
69
66
  // #endregion
70
67
 
File without changes
@@ -117,12 +117,19 @@ $darkMode: 'true' !default;
117
117
  color-scheme: light dark;
118
118
  @include var(background, --colour-canvas);
119
119
  @include var(font-family, --font-body);
120
- @include var(color, --colour-body);
120
+
121
121
  width: 100%;
122
122
  line-height: 1.2;
123
123
  min-height: 100%;
124
124
  -webkit-text-size-adjust: 100%; // 3
125
125
  -webkit-tap-highlight-color: rgba($black, 0); // 4
126
+
127
+ @container style(--theme: dark) {
128
+ color: var(--colour-body);
129
+ }
130
+ @container style(--theme: light) {
131
+ color: var(--colour-body);
132
+ }
126
133
  }
127
134
 
128
135
  // #region scrollbars
@@ -95,78 +95,68 @@ $darkMode: 'true' !default;
95
95
  }
96
96
  }
97
97
 
98
- .reset-colours {
99
- @each $color, $value in $theme-colors {
100
- --colour-#{$color}: #{$value};
98
+ // Dark mode; functional colours get updated
99
+ @media screen and (prefers-color-scheme: light) {
100
+ :root {
101
+ --theme: light;
102
+ --body-theme: light;
103
+ }
104
+ }
105
+ @media screen and (prefers-color-scheme: dark) {
106
+ :root {
107
+ --theme: dark;
108
+ --body-theme: dark;
101
109
  }
102
- @include reset-colours();
103
110
  }
104
111
 
105
- // Dark mode; functional colours get updated
106
- @include dark-mode($darkMode) {
107
- #{$root} {
108
- @each $color, $value in $dark-mode-colors {
109
- --colour-#{$color}: #{$value};
110
- }
111
- @include invert-colours();
112
+
113
+ :is(.bg-primary, .bg-danger, .bg-dark) {
114
+ --theme: dark;
115
+
116
+ > * {
117
+ color: var(--colour-heading);
112
118
  }
113
119
  }
114
120
 
115
- @include light-mode($darkMode) {
116
- // Reset the colours of lighter backgrounds to make sure they aren't over written by dark mode. Some other tweaks to colours are applied
117
- html:not(.dark-theme)
118
- [class*='bg-']:not(.bg-primary):not(.bg-dark):not(.bg-danger):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(
119
- .bg-canvas-2
120
- ):not(.invert-colours) {
121
- @each $color, $value in $theme-colors {
121
+
122
+ @container style(--theme: dark) {
123
+ * > *,
124
+ [class*='bg-'] {
125
+ @each $color, $value in $dark-mode-colors {
126
+ --colour-#{$color}: #{$value};
127
+ }
128
+ @each $color, $value in $dark-mode-functional-colors {
122
129
  --colour-#{$color}: #{$value};
123
130
  }
124
- @include reset-colours();
125
- --colour-body: rgb(89, 89, 89);
126
- color: var(--colour-body);
127
131
  }
132
+ }
128
133
 
129
- // Override the colours when on a dark background, similiar to dark mode but on a module level
130
- [class*='bg-']:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(
131
- .bg-canvas
132
- ):not(.bg-canvas-2):not(.prevent-invert),
133
- .invert-colours {
134
- @include invert-colours();
134
+ @container style(--body-theme: dark) {
135
135
 
136
- color: #{$colour-inverted};
137
- }
138
- }
139
136
 
140
- @include dark-mode($darkMode) {
141
- // Reset the colours of lighter backgrounds to make sure they aren't over written by dark mode. Some other tweaks to colours are applied
142
- [class*='bg-']:not(.bg-canvas):not(.bg-canvas-2):not(.bg-light) {
143
- @include reset-colours();
144
- --colour-body: #{$primary};
145
- color: var(--colour-body);
146
- }
137
+ [class*='bg-']:not(.bg-canvas):not(.bg-canvas-2):not(.bg-light):not(.ds-header):not(iam-header) {
138
+ --theme: light;
147
139
 
148
- @each $color, $value in $theme-colors {
149
- .bg-#{$color}[class*='gradient-'] {
150
- background-color: var(--colour-#{$color}-theme) !important;
140
+ > * {
141
+ color: var(--colour-heading);
151
142
  }
152
- }
143
+ }
144
+
145
+ }
153
146
 
154
- [class*='bg-'][class*='gradient-']:not(.bg-primary):not(.bg-dark):not(.bg-danger) {
147
+
148
+ @container style(--theme: light) {
149
+ * > * {
155
150
  @each $color, $value in $theme-colors {
156
151
  --colour-#{$color}: #{$value};
157
152
  }
158
- @include reset-colours();
159
- --colour-body: var(--colour-primary-theme);
160
- color: var(--colour-body);
161
- }
162
-
163
- [class*='bg-'][class*='gradient-']:not(.bg-info):not(.bg-success):not(.bg-warning):not(.prevent-invert) {
164
- @include invert-colours();
165
-
166
- color: #{$colour-inverted};
153
+ @each $color, $value in $non-theme-colors {
154
+ --colour-#{$color}: #{$value};
155
+ }
167
156
  }
168
157
  }
169
158
 
159
+
170
160
  @media (forced-colors: active) {
171
161
  #{$root} {
172
162
  --contrast-outline-width: 1px;
@@ -35,8 +35,6 @@ $darkMode: 'true' !default;
35
35
  line-height: map.get($heading-sizes, 'h3_lh');
36
36
  padding-bottom: map.get($heading-sizes, 'h3_pb');
37
37
  max-width: var(--content-max-width);
38
-
39
-
40
38
  }
41
39
 
42
40
  @include light-mode($darkMode) {
@@ -1,14 +1,6 @@
1
- // Data layer Web component created
2
- declare global {
3
- interface Window {
4
- dataLayer: Array<object>;
5
- }
6
- }
7
- window.dataLayer = window.dataLayer || [];
8
- window.dataLayer.push({
9
- event: 'customElementRegistered',
10
- element: 'accordion',
11
- });
1
+ import { trackComponent, trackComponentRegistered } from '../_global';
2
+
3
+ trackComponentRegistered('iam-accordion');
12
4
 
13
5
  class iamAccordion extends HTMLElement {
14
6
  constructor() {
@@ -23,29 +15,34 @@ class iamAccordion extends HTMLElement {
23
15
  : `${assetLocation}/css/core.min.css`;
24
16
 
25
17
  const template = document.createElement('template');
26
- template.innerHTML = `
27
- <style>
28
- @import "${coreCSS}";
18
+ template.innerHTML = /* HTML */ `
19
+ <style>
20
+ @import '${coreCSS}';
29
21
 
30
- :host {
31
- margin-bottom: 2.5rem;
32
- display: block;
33
- }
34
-
35
- ::slotted(details) {
36
- --border-radius: 0!important;
37
- padding-bottom: 0!important;
38
- }
39
- </style>
22
+ :host {
23
+ margin-bottom: 2.5rem;
24
+ display: block;
25
+ }
26
+
27
+ ::slotted(details) {
28
+ --border-radius: 0 !important;
29
+ padding-bottom: 0 !important;
30
+ }
31
+ </style>
40
32
  <slot></slot>
41
33
  `;
42
34
  this.shadowRoot?.appendChild(template.content.cloneNode(true));
43
35
  }
44
36
 
45
37
  connectedCallback(): void {
46
- if (!this.classList.contains('accordion--keep-open')) {
47
- const details: NodeListOf<HTMLElement> = this.querySelectorAll(':scope > details');
38
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
39
+ const accordionComponent = this;
40
+
41
+ trackComponent(accordionComponent, 'iam-accordion', ['accordion-item-closed', 'accordion-item-opened']);
42
+
43
+ const details: NodeListOf<HTMLElement> = this.querySelectorAll(':scope > details');
48
44
 
45
+ if (!this.classList.contains('accordion--keep-open')) {
49
46
  // Add the toggle listeners.
50
47
  details.forEach((targetDetail) => {
51
48
  targetDetail.addEventListener('toggle', () => {
@@ -58,6 +55,30 @@ class iamAccordion extends HTMLElement {
58
55
  });
59
56
  });
60
57
  }
58
+
59
+ // Fire tracking events
60
+ details.forEach((targetDetail) => {
61
+ const summaryEle = targetDetail.querySelector('summary');
62
+ const summaryText = summaryEle?.innerText;
63
+
64
+ targetDetail.addEventListener('toggle', () => {
65
+ if (targetDetail?.hasAttribute('open')) {
66
+ itemInteractionEvent('accordion-item-opened', summaryText);
67
+ } else {
68
+ itemInteractionEvent('accordion-item-closed', summaryText);
69
+ }
70
+ });
71
+ });
72
+
73
+ const itemInteractionEvent = function (eventName: string, itemSummary: string): void {
74
+ const customEvent = new CustomEvent(eventName, {
75
+ detail: {
76
+ title: itemSummary,
77
+ },
78
+ });
79
+
80
+ accordionComponent.dispatchEvent(customEvent);
81
+ };
61
82
  }
62
83
  }
63
84
 
@@ -1,4 +1,4 @@
1
- import extendDialogs from '../../modules/dialogs';
1
+ import { uniqueID } from '../../modules/helpers';
2
2
 
3
3
  // Data layer Web component created
4
4
  declare global {
@@ -58,23 +58,23 @@ class iamActionbar extends HTMLElement {
58
58
  <div class="safe-area">
59
59
  <slot></slot>
60
60
  <div class="body">
61
- <div class="dialog__wrapper dialog__wrapper--right dialog-overflow d-none show">
62
- <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0">More actions</button>
63
- <dialog class="dialog--list" part="overflow">
61
+ <div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
62
+ <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="overflow" style="anchor-name: --anchor-overflow;">More actions</button>
63
+ <iam-menu class="dialog--list" part="overflow" id="overflow" style="position-anchor: --anchor-overflow;" popover>
64
64
  <slot name="overflow"></slot>
65
65
  <slot name="menu"></slot>
66
- </dialog>
66
+ </iam-menu>
67
67
  </div>
68
68
 
69
69
 
70
- <div class="dialog__wrapper dialog__wrapper--right filter-columns">
71
- <button class="btn btn-secondary btn-compact btn-sm mb-0 me-0 fa-regular fa-table-columns" title="Select colums">Filter</button>
72
- <dialog class="dialog--list">
70
+ <div class="menu__wrapper menu__wrapper --right filter-columns">
71
+ <button class="btn btn-secondary btn-compact btn-sm mb-0 me-0 fa-regular fa-table-columns" title="Select colums" popovertarget="filter" style="anchor-name: --anchor-filter;">Filter</button>
72
+ <iam-menu class="dialog--list" id="filter" style="position-anchor: --anchor-filter;" popover>
73
73
  <div class="pb-0 mb-0 checklists">
74
74
 
75
75
  </div>
76
76
  <div class="text-right checklist-btns"><button id="cancelColumns" class="btn btn-action">Cancel</button><button id="saveColumns" class="btn btn-action btn-secondary">Save</button></div>
77
- </dialog>
77
+ </iam-menu>
78
78
  </div>
79
79
 
80
80
  <button class="btn btn-secondary btn-compact btn-sm fa-search" data-search="" part="search-btn">Search</button>
@@ -85,11 +85,11 @@ class iamActionbar extends HTMLElement {
85
85
  <div class="safe-area">
86
86
  <slot name="selected"></slot>
87
87
  <div class="body">
88
- <div class="dialog__wrapper dialog__wrapper--right dialog-overflow d-none show">
89
- <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0">More actions</button>
90
- <dialog class="dialog--list" part="selected-overflow">
88
+ <div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
89
+ <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="selected-overflow" style="anchor-name: --anchor-selected-overflow;">More actions</button>
90
+ <iam-menu class="dialog--list" part="selected-overflow" id="selected-overflow" style="position-anchor: --anchor-selected-overflow;" popover>
91
91
  <slot name="selected-overflow"></slot>
92
- </dialog>
92
+ </iam-menu>
93
93
  </div>
94
94
  </div>
95
95
  </div>
@@ -102,6 +102,7 @@ class iamActionbar extends HTMLElement {
102
102
  <label for="search" class="visually-hidden">Input field label</label>
103
103
  <button class="suffix" part="search-btn"><i class="fa-regular fa-search"></i></button>
104
104
  <input type="text" id="search" name="search" required="" part="search-input">
105
+ <button class="empty btn btn-action"><i class="fa-light fa-times me-0" aria-hidden="true"></i></button>
105
106
  </div>
106
107
 
107
108
  </div>
@@ -121,6 +122,37 @@ class iamActionbar extends HTMLElement {
121
122
  const actionbarWrapper = this.shadowRoot?.querySelector('.actionbar__wrapper');
122
123
  const checklistHolder = this.shadowRoot?.querySelector('.checklists');
123
124
 
125
+ const assetLocation = document.body.hasAttribute('data-assets-location')
126
+ ? document.body.getAttribute('data-assets-location')
127
+ : '/assets';
128
+
129
+ if (!window.customElements.get(`iam-menu`)) {
130
+ import(/* @vite-ignore */ `${assetLocation}/js/components/menu/menu.component.js`)
131
+ .then((module) => {
132
+ window.customElements.define(`iam-menu`, module.default);
133
+ })
134
+ .catch((err) => {
135
+ console.log(err.message);
136
+ });
137
+ }
138
+
139
+ const dialog = this.querySelector('.dialog__wrapper dialog');
140
+
141
+ // Transform dialog into a menu custom element
142
+ if (dialog) {
143
+ const btn = dialog.parentElement.querySelector('.btn');
144
+ const id = `menu${uniqueID(1)}`;
145
+
146
+ dialog.setAttribute('id', id);
147
+ dialog.setAttribute('popover', 'auto');
148
+ btn.setAttribute('popovertarget', id);
149
+
150
+ dialog.outerHTML = dialog.outerHTML.replace(/<dialog/g, '<iam-menu').replace(/<\/dialog>/g, '</iam-menu>');
151
+
152
+ dialog.parentElement?.classList.add('menu__wrapper');
153
+ dialog.parentElement?.classList.remove('dialog__wrapper');
154
+ }
155
+
124
156
  // #region select all
125
157
  if (this.hasAttribute('data-selectall')) {
126
158
  actionbarWrapper?.insertAdjacentHTML(
@@ -246,12 +278,16 @@ class iamActionbar extends HTMLElement {
246
278
  this.dispatchEvent(submitEvent);
247
279
  }
248
280
  });
249
- // #endregion
250
281
 
251
- // Make sure dialogs created in the shadow dom work
252
- Array.from(this.shadowRoot.querySelectorAll('.body')).forEach((element) => {
253
- extendDialogs(element);
282
+ const clearBtn = searchBar.querySelector('.empty');
283
+ const searchInput = searchBar.querySelector('#search');
284
+
285
+ clearBtn.addEventListener('click', function (e) {
286
+ searchInput.removeAttribute('placeholder');
287
+ searchInput.removeAttribute('data-value');
288
+ searchInput.value = '';
254
289
  });
290
+ // #endregion
255
291
 
256
292
  // #region Reponsive safe area
257
293
  const hideButtons = (): void => {
@@ -294,7 +330,7 @@ class iamActionbar extends HTMLElement {
294
330
  if (wrapperWidth < 576) {
295
331
  Array.from(
296
332
  this.querySelectorAll(
297
- ':scope > .btn:not(.js-updated), :scope > .dialog__wrapper > .btn[class*="fa-"]:first-child:not(.js-updated)'
333
+ ':scope > .btn:not(.js-updated), :scope > .menu__wrapper > .btn[class*="fa-"]:first-child:not(.js-updated)'
298
334
  )
299
335
  ).forEach((element: HTMLElement) => {
300
336
  element.className = element.className.replace(' btn-compact', ' _btn-compact');
@@ -303,7 +339,7 @@ class iamActionbar extends HTMLElement {
303
339
  });
304
340
  } else {
305
341
  Array.from(
306
- this.querySelectorAll(':scope > .btn.js-updated, :scope > .dialog__wrapper > .btn.js-updated:first-child')
342
+ this.querySelectorAll(':scope > .btn.js-updated, :scope > .menu__wrapper > .btn.js-updated:first-child')
307
343
  ).forEach((element: HTMLElement) => {
308
344
  element.classList.remove('btn-compact');
309
345
  element.classList.remove('js-updated');
@@ -342,7 +378,7 @@ class iamActionbar extends HTMLElement {
342
378
 
343
379
  // Foreach element this isn't an action button or dialog wrapper add to the width, these will not be moved into the overflow slot
344
380
  for (let i = 0; i < elements.length; i++) {
345
- if (!elements[i].classList.contains('btn-action') && !elements[i].classList.contains('dialog__wrapper')) {
381
+ if (!elements[i].classList.contains('btn-action') && !elements[i].classList.contains('menu__wrapper ')) {
346
382
  tempWidth += elements[i].offsetWidth;
347
383
  tempWidth += elementMargin;
348
384
  }
@@ -350,7 +386,7 @@ class iamActionbar extends HTMLElement {
350
386
 
351
387
  // Foreach dialog wrapper decide if safe in safe area or move into the overflow slot, dialog wrappers have priority over the action buttons
352
388
  for (let i = 0; i < elements.length; i++) {
353
- if (elements[i].classList.contains('dialog__wrapper')) {
389
+ if (elements[i].classList.contains('menu__wrapper ')) {
354
390
  elements[i].classList.add('show');
355
391
  tempWidth += elements[i].offsetWidth;
356
392
  tempWidth += elementMargin / 2;
@@ -384,7 +420,7 @@ class iamActionbar extends HTMLElement {
384
420
 
385
421
  // Decide which elements go into the overflow slot
386
422
  for (let i = 0; i < elements.length; i++) {
387
- if (elements[i].classList.contains('btn-action') || elements[i].classList.contains('dialog__wrapper')) {
423
+ if (elements[i].classList.contains('btn-action') || elements[i].classList.contains('menu__wrapper ')) {
388
424
  if (!elements[i].classList.contains('show')) {
389
425
  // Move to the slot by changing the attribute
390
426
  elements[i].setAttribute('slot', overflowSlot);
@@ -28,10 +28,8 @@ class iamAddressLookup extends HTMLElement {
28
28
  const template = document.createElement('template');
29
29
  template.innerHTML = `
30
30
  <style>
31
- @import "${coreCSS}";
32
31
  ${loadCSS}
33
32
 
34
- ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
35
33
  </style>
36
34
  <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
37
35
  <div class="wrapper">
@@ -40,25 +38,25 @@ class iamAddressLookup extends HTMLElement {
40
38
  <div>
41
39
  <label class="mb-2">Search <span class="title text-lowercase"></span> <span class="optional">(Optional)</span>
42
40
  <span>
43
- <input type="text" name="postcode" list="address-lookup__addressess" autocomplete="off" aria-autocomplete="none" placeholder="Postcode" />
44
- <span class="suffix fa-regular fa-search"></span>
41
+ <input type="text" name="postcode" list="address-lookup__addressess" autocomplete="off" aria-autocomplete="none" placeholder="Postcode" part="input" />
42
+ <span class="suffix fa-regular fa-search" part="suffix"></span>
45
43
  </span>
46
44
  <span class="invalid-feedback">Required Adddress fields missing</span>
47
45
  </label>
48
46
 
49
47
  </div>
50
- <button class="btn btn-tertiary switch-to-manual-btn" type="button">Or enter address manually</button>
48
+ <button class="btn btn-tertiary switch-to-manual-btn" type="button" part="button">Or enter address manually</button>
51
49
  </div>
52
50
  <datalist id="address-lookup__addressess"></datalist>
53
51
 
54
52
  <div class="manual-address pb-2 js-hide">
55
- <slot></slot>
56
- <button class="btn btn-tertiary switch-to-lookup-btn" type="button">Use postcode lookup</button>
53
+ <slot part="contents"></slot>
54
+ <button class="btn btn-tertiary switch-to-lookup-btn" type="button" part="button">Use postcode lookup</button>
57
55
  <slot name="after"></slot>
58
56
  </div>
59
57
  <div class="pre-filled pb-2 js-hide">
60
58
  <strong class="title text-primary d-block"></strong>
61
- <p><span class="pre-filled-address"></span><button class="text-primary text-decoration-none ms-1 cursor-pointer" type="button"><i class="fa-regular fa-pen-to-square"></i><span class="visually-hidden">Edit</span></button><slot name="prefilled"></slot></p>
59
+ <p><span class="pre-filled-address"></span><button class="text-primary text-decoration-none ms-1 cursor-pointer" type="button" part="edit-button"><i class="fa-regular fa-pen-to-square"></i> <span class="visually-hidden">Edit</span></button><slot name="prefilled"></slot></p>
62
60
  </div>
63
61
  </div>
64
62
  `;