@iamproperty/components 7.4.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 (260) 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 -1
  11. package/assets/css/components/calendar.component.css.map +1 -1
  12. package/assets/css/components/calendar.config.css.map +1 -1
  13. package/assets/css/components/card.component.css +1 -1
  14. package/assets/css/components/card.component.css.map +1 -1
  15. package/assets/css/components/carousel.component.css +1 -1
  16. package/assets/css/components/carousel.component.css.map +1 -1
  17. package/assets/css/components/charts.css +1 -1
  18. package/assets/css/components/charts.css.map +1 -1
  19. package/assets/css/components/collapsible-side.css +1 -1
  20. package/assets/css/components/collapsible-side.css.map +1 -1
  21. package/assets/css/components/content.component.css +1 -1
  22. package/assets/css/components/content.component.css.map +1 -1
  23. package/assets/css/components/darkmode.component.css +1 -0
  24. package/assets/css/components/darkmode.component.css.map +1 -0
  25. package/assets/css/components/doughnutchart.component.css +1 -1
  26. package/assets/css/components/doughnutchart.component.css.map +1 -1
  27. package/assets/css/components/inline-edit.css.map +1 -1
  28. package/assets/css/components/{menu.css → menu.global.css} +1 -1
  29. package/assets/css/components/menu.global.css.map +1 -0
  30. package/assets/css/components/milestone.css +1 -1
  31. package/assets/css/components/milestone.css.map +1 -1
  32. package/assets/css/components/multi-step.component.css +1 -1
  33. package/assets/css/components/multi-step.component.css.map +1 -1
  34. package/assets/css/components/multiselect.css.map +1 -1
  35. package/assets/css/components/multiselect.preload.css +1 -1
  36. package/assets/css/components/multiselect.preload.css.map +1 -1
  37. package/assets/css/components/nav.component.css +1 -1
  38. package/assets/css/components/nav.component.css.map +1 -1
  39. package/assets/css/components/nav.global.css +1 -1
  40. package/assets/css/components/nav.global.css.map +1 -1
  41. package/assets/css/components/notification.css +1 -1
  42. package/assets/css/components/notification.css.map +1 -1
  43. package/assets/css/components/pagination.css.map +1 -1
  44. package/assets/css/components/property-searchbar.css +1 -1
  45. package/assets/css/components/property-searchbar.css.map +1 -1
  46. package/assets/css/components/split-button.component.css +1 -1
  47. package/assets/css/components/split-button.component.css.map +1 -1
  48. package/assets/css/components/word-count.component.css +1 -0
  49. package/assets/css/components/word-count.component.css.map +1 -0
  50. package/assets/css/core.min.css +1 -1
  51. package/assets/css/core.min.css.map +1 -1
  52. package/assets/css/mobile-core.min.css +1 -1
  53. package/assets/css/mobile-core.min.css.map +1 -1
  54. package/assets/css/mobile.min.css +1 -1
  55. package/assets/css/mobile.min.css.map +1 -1
  56. package/assets/css/style.min.css +1 -1
  57. package/assets/css/style.min.css.map +1 -1
  58. package/assets/js/components/accordion/accordion.component.js +40 -19
  59. package/assets/js/components/accordion/accordion.component.min.js +15 -15
  60. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  61. package/assets/js/components/actionbar/actionbar.component.js +8 -0
  62. package/assets/js/components/actionbar/actionbar.component.min.js +6 -5
  63. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  64. package/assets/js/components/address-lookup/address-lookup.component.js +6 -8
  65. package/assets/js/components/address-lookup/address-lookup.component.min.js +10 -12
  66. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  67. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  68. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  69. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  70. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  71. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  72. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  73. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  74. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  75. package/assets/js/components/calendar/calendar.component.js +153 -136
  76. package/assets/js/components/calendar/calendar.component.min.js +3 -3
  77. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  78. package/assets/js/components/card/card.component.js +3 -9
  79. package/assets/js/components/card/card.component.min.js +13 -7
  80. package/assets/js/components/card/card.component.min.js.map +1 -1
  81. package/assets/js/components/carousel/carousel.component.js +17 -19
  82. package/assets/js/components/carousel/carousel.component.min.js +17 -19
  83. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  84. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  85. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  86. package/assets/js/components/content/content.component.min.js +2 -2
  87. package/assets/js/components/content/content.component.min.js.map +1 -1
  88. package/assets/js/components/darkmode/darkmode.component.js +70 -0
  89. package/assets/js/components/darkmode/darkmode.component.min.js +10 -0
  90. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -0
  91. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  92. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  93. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  94. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  95. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  96. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  97. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  98. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  99. package/assets/js/components/header/header.component.min.js +1 -1
  100. package/assets/js/components/header/header.component.min.js.map +1 -1
  101. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  102. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  103. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  104. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  105. package/assets/js/components/menu/menu.component.js +2 -2
  106. package/assets/js/components/menu/menu.component.min.js +4 -5
  107. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  108. package/assets/js/components/milestone/milestone.component.js +12 -14
  109. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  110. package/assets/js/components/milestone/milestone.component.min.js.map +1 -1
  111. package/assets/js/components/milestone-group/milestone-group.component.js +10 -12
  112. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  113. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -1
  114. package/assets/js/components/multi-step/multi-step.component.min.js +3 -3
  115. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  116. package/assets/js/components/multiselect/multiselect.component.js +2 -2
  117. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  118. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  119. package/assets/js/components/nav/nav.component.js +2 -3
  120. package/assets/js/components/nav/nav.component.min.js +5 -5
  121. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  122. package/assets/js/components/notification/notification.component.js +1 -3
  123. package/assets/js/components/notification/notification.component.min.js +5 -5
  124. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  125. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  126. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  127. package/assets/js/components/rank/rank.component.min.js +1 -1
  128. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  129. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  130. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  131. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  132. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  133. package/assets/js/components/search/search.component.min.js +1 -1
  134. package/assets/js/components/search/search.component.min.js.map +1 -1
  135. package/assets/js/components/slider/slider.component.min.js +1 -1
  136. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  137. package/assets/js/components/split-button/split-button.component.js +1 -3
  138. package/assets/js/components/split-button/split-button.component.min.js +8 -11
  139. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  140. package/assets/js/components/table/table.component.min.js +1 -1
  141. package/assets/js/components/table/table.component.min.js.map +1 -1
  142. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  143. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  144. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  145. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  146. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  147. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  148. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  149. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  150. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  151. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  152. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  153. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  154. package/assets/js/components/word-count/word-count.component.js +81 -0
  155. package/assets/js/components/word-count/word-count.component.min.js +12 -0
  156. package/assets/js/components/word-count/word-count.component.min.js.map +1 -0
  157. package/assets/js/components.js +1 -0
  158. package/assets/js/modules/advanced-select.js +1 -1
  159. package/assets/js/modules/dynamicEvents.js +3 -3
  160. package/assets/js/modules/inputs.js +0 -18
  161. package/assets/js/modules/milestone.js +2 -2
  162. package/assets/js/scripts.bundle.js +3 -3
  163. package/assets/js/scripts.bundle.js.map +1 -1
  164. package/assets/js/scripts.bundle.min.js +2 -2
  165. package/assets/js/scripts.bundle.min.js.map +1 -1
  166. package/assets/js/scripts.js +2 -1
  167. package/assets/sass/_components.scss +4 -4
  168. package/assets/sass/_example.scss +1 -1
  169. package/assets/sass/_functions/utility-mixins.scss +0 -1
  170. package/assets/sass/components/actionbar.component.scss +22 -0
  171. package/assets/sass/components/actionbar.global.scss +1 -1
  172. package/assets/sass/components/{address-lookup.scss → address-lookup.component.scss} +10 -0
  173. package/assets/sass/components/calendar.component.scss +163 -271
  174. package/assets/sass/components/calendar.config.scss +69 -122
  175. package/assets/sass/components/darkmode.component.scss +22 -0
  176. package/assets/sass/components/milestone.scss +69 -60
  177. package/assets/sass/components/multi-step.component.scss +1 -1
  178. package/assets/sass/components/multiselect.preload.scss +1 -1
  179. package/assets/sass/components/multiselect.scss +1 -2
  180. package/assets/sass/components/nav.component.scss +16 -6
  181. package/assets/sass/components/nav.global.scss +8 -12
  182. package/assets/sass/components/notification.scss +32 -13
  183. package/assets/sass/components/split-button.component.scss +3 -1
  184. package/assets/sass/components/table-basic.global.scss +32 -32
  185. package/assets/sass/components/word-count.component.scss +26 -0
  186. package/assets/sass/elements/admin-panel.scss +1 -1
  187. package/assets/sass/elements/buttons--compact.scss +1 -1
  188. package/assets/sass/elements/details.scss +33 -6
  189. package/assets/sass/elements/forms.scss +18 -33
  190. package/assets/sass/elements/lists.scss +1 -1
  191. package/assets/sass/elements/toggle-button.scss +1 -0
  192. package/assets/sass/foundations/colours.scss +0 -0
  193. package/assets/sass/foundations/reboot.scss +8 -1
  194. package/assets/sass/foundations/root.scss +41 -51
  195. package/assets/ts/components/accordion/accordion.component.ts +47 -26
  196. package/assets/ts/components/actionbar/actionbar.component.ts +10 -0
  197. package/assets/ts/components/address-lookup/address-lookup.component.ts +6 -8
  198. package/assets/ts/components/calendar/calendar.component.ts +368 -498
  199. package/assets/ts/components/card/card.component.ts +2 -9
  200. package/assets/ts/components/carousel/carousel.component.ts +17 -19
  201. package/assets/ts/components/darkmode/darkmode.component.ts +85 -0
  202. package/assets/ts/components/menu/menu.component.ts +2 -2
  203. package/assets/ts/components/milestone/milestone.component.ts +43 -45
  204. package/assets/ts/components/milestone-group/milestone-group.component.ts +39 -41
  205. package/assets/ts/components/multiselect/multiselect.component.ts +6 -15
  206. package/assets/ts/components/nav/nav.component.ts +8 -15
  207. package/assets/ts/components/notification/notification.component.ts +1 -5
  208. package/assets/ts/components/split-button/split-button.component.ts +1 -3
  209. package/assets/ts/components/word-count/word-count.component.ts +91 -0
  210. package/assets/ts/components.ts +1 -0
  211. package/assets/ts/modules/advanced-select.ts +11 -16
  212. package/assets/ts/modules/data-layer.md +0 -5
  213. package/assets/ts/modules/dynamicEvents.ts +6 -7
  214. package/assets/ts/modules/inputs.ts +0 -25
  215. package/assets/ts/modules/milestone-group.ts +39 -42
  216. package/assets/ts/modules/milestone.ts +119 -122
  217. package/assets/ts/scripts.ts +2 -1
  218. package/dist/components.es.js +1693 -41
  219. package/dist/components.umd.js +1032 -221
  220. package/package.json +6 -6
  221. package/src/components/Accordion/Accordion.vue +14 -23
  222. package/src/components/Accordion/AccordionItem.vue +27 -43
  223. package/src/components/Actionbar/Actionbar.vue +17 -19
  224. package/src/components/AddressLookup/AddressLookup.vue +17 -18
  225. package/src/components/AdvancedSelect/AdvancedSelect.vue +17 -18
  226. package/src/components/AppliedFilters/AppliedFilters.vue +16 -18
  227. package/src/components/Banner/Banner.vue +18 -21
  228. package/src/components/BarChart/BarChart.vue +17 -18
  229. package/src/components/Calendar/Calendar.vue +14 -20
  230. package/src/components/Card/Card.vue +17 -17
  231. package/src/components/Carousel/Carousel.vue +17 -20
  232. package/src/components/Content/Content.vue +17 -18
  233. package/src/components/DarkMode/DarkMode.vue +19 -0
  234. package/src/components/DoughnutChart/DoughnutChart.vue +17 -18
  235. package/src/components/FileUpload/FileUpload.vue +22 -28
  236. package/src/components/FilterCard/FilterCard.vue +17 -18
  237. package/src/components/Filterlist/Filterlist.vue +17 -0
  238. package/src/components/Header/Header.vue +28 -29
  239. package/src/components/InlineEdit/InlineEdit.vue +11 -19
  240. package/src/components/Menu/Menu.vue +17 -17
  241. package/src/components/Milestones/Milestone.vue +22 -27
  242. package/src/components/Milestones/MilestoneGroup.vue +24 -27
  243. package/src/components/Multiselect/Multiselect.vue +17 -18
  244. package/src/components/Nav/Nav.vue +17 -19
  245. package/src/components/Notification/Notification.vue +17 -15
  246. package/src/components/Pagination/Pagination.vue +16 -16
  247. package/src/components/Rank/Rank.vue +17 -18
  248. package/src/components/Rankings/Rankings.vue +17 -27
  249. package/src/components/RecordCard/RecordCard.vue +17 -18
  250. package/src/components/Search/Search.vue +17 -17
  251. package/src/components/Slider/Slider.vue +17 -17
  252. package/src/components/SplitButton/SplitButton.vue +17 -20
  253. package/src/components/Tabs/Tabs.vue +17 -17
  254. package/src/components/VideoCard/VideoCard.vue +17 -18
  255. package/src/components/WordCount/WordCount.vue +22 -0
  256. package/src/index.js +43 -44
  257. package/assets/css/components/address-lookup.css +0 -1
  258. package/assets/css/components/address-lookup.css.map +0 -1
  259. package/assets/css/components/menu.css.map +0 -1
  260. /package/assets/sass/components/{menu.scss → menu.global.scss} +0 -0
@@ -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;
@@ -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
 
@@ -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>
@@ -277,6 +278,15 @@ class iamActionbar extends HTMLElement {
277
278
  this.dispatchEvent(submitEvent);
278
279
  }
279
280
  });
281
+
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 = '';
289
+ });
280
290
  // #endregion
281
291
 
282
292
  // #region Reponsive safe area
@@ -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
  `;