@qhealth-design-system/core 1.17.2 → 1.18.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 (46) hide show
  1. package/.storybook/globals.js +10 -0
  2. package/.storybook/preview.js +9 -13
  3. package/CHANGELOG.md +2 -0
  4. package/package.json +1 -1
  5. package/src/assets/img/QLD-Health-icons.svg +10 -6
  6. package/src/assets/img/QLD-icons.svg +12 -8
  7. package/src/assets/img/qgov-coa.svg +65 -0
  8. package/src/components/_global/css/forms/general/component.scss +1 -1
  9. package/src/components/_global/css/icons/component.scss +40 -38
  10. package/src/components/_global/css/tags/component.scss +28 -27
  11. package/src/components/_global/html/head.html +1 -1
  12. package/src/components/basic_search/html/component.hbs +2 -1
  13. package/src/components/card_single_action/css/component.scss +15 -0
  14. package/src/components/footer/html/component.hbs +18 -15
  15. package/src/components/header/css/component.scss +25 -85
  16. package/src/components/header/html/component.hbs +4 -176
  17. package/src/components/header/js/global.js +189 -181
  18. package/src/components/left_hand_navigation/css/component.scss +32 -29
  19. package/src/components/left_hand_navigation/html/component.hbs +10 -6
  20. package/src/components/left_hand_navigation/js/global.js +49 -26
  21. package/src/components/main_navigation/css/component.scss +115 -89
  22. package/src/components/main_navigation/html/component.hbs +9 -3
  23. package/src/components/mega_main_navigation/css/component.scss +6 -6
  24. package/src/components/mega_main_navigation/html/component.hbs +9 -3
  25. package/src/components/multi_column/css/component.scss +2 -32
  26. package/src/components/overflow_menu/css/component.scss +19 -41
  27. package/src/components/search_box/css/component.scss +42 -0
  28. package/src/components/tab/css/component.scss +56 -41
  29. package/src/components/tab/html/component.hbs +13 -13
  30. package/src/components/tab/js/global.js +43 -114
  31. package/src/components/tab/js/manifest.json +881 -873
  32. package/src/data/site.json +28 -4
  33. package/src/index.js +11 -2
  34. package/src/stories/BackToTop/BackToTop.js +8 -0
  35. package/src/stories/BackToTop/BackToTop.mdx +42 -0
  36. package/src/stories/BackToTop/BackToTop.stories.js +28 -0
  37. package/src/stories/CTALink/CTALink.js +5 -0
  38. package/src/stories/CTALink/CTALink.mdx +39 -0
  39. package/src/stories/CTALink/CTALink.stories.js +151 -0
  40. package/src/assets/data-tables-csv-test.csv +0 -191
  41. package/src/assets/img/header-logo-agov.png +0 -0
  42. package/src/assets/img/header-search.svg +0 -3
  43. package/src/assets/img/layers-2x.png +0 -0
  44. package/src/assets/img/layers.png +0 -0
  45. package/src/assets/img/marker-icon.png +0 -0
  46. package/src/assets/img/video-play.svg +0 -3
@@ -1,14 +1,23 @@
1
1
  /**
2
2
  * @module header
3
3
  */
4
- (function () {
5
- // Search toggle button
6
- var searchToggle = document.querySelector(".qld__main-nav__toggle-search");
7
- var searchForm = document.querySelector(".qld__header__search .qld__search-form");
8
-
9
- // Global events object
10
- var headerSearchEvents = {};
11
4
 
5
+ // Search toggle button
6
+ const searchToggle = document.querySelector(".qld__main-nav__toggle-search");
7
+ const searchForm = document.querySelector(".qld__header__search .qld__search-form");
8
+ const targetId = searchToggle.getAttribute("aria-controls");
9
+ const target = document.getElementById(targetId);
10
+ const focustrapTop = target.querySelector(".qld__main-nav__focus-trap-top");
11
+ const focustrapBottom = target.querySelector(".qld__main-nav__focus-trap-bottom");
12
+ const searchToggleText = searchToggle.querySelector(".qld__main-nav__toggle-text");
13
+ // Hold state of the header (open vs close)
14
+ let isHeaderOpen = false;
15
+ // Global events object
16
+ let headerSearchEvents = {};
17
+ // Breakpoint for mobile mode
18
+ const mobileBreakpoint = 992;
19
+
20
+ export default function initHeader(document = document) {
12
21
  // Add action so the search works only if JS is enabled
13
22
  if (searchForm) {
14
23
  searchForm.querySelector(".qld__btn--search").setAttribute("type", "submit");
@@ -23,189 +32,188 @@
23
32
  searchToggle.addEventListener("click", toggleHeaderSearch);
24
33
  }
25
34
 
26
- /**
27
- * Check if honeypot field is empty
28
- *
29
- * @memberof module:header
30
- * @instance
31
- * @private
32
- */
33
- function checkHoneypot() {
34
- var honeypot = searchForm.querySelector(".qld__text-input--validation");
35
- honeypot.value = "";
36
-
37
- searchForm.addEventListener("submit", function (event) {
38
- // Prevent form submission if the honeypot field is filled
39
- if (honeypot.value !== "") {
40
- event.preventDefault(); // Stop the form submission
41
- } else {
42
- honeypot.removeAttribute("name");
43
- }
44
- });
35
+ // We want to ensure the search input is visible on desktop at all times
36
+ window.addEventListener("resize", () => {
37
+ if (window.innerWidth >= mobileBreakpoint && !isHeaderOpen) {
38
+ openHeader();
39
+ // Disable focus trap as it's not needed on desktop
40
+ disableFocusTrap();
41
+ } else if (window.innerWidth < mobileBreakpoint && isHeaderOpen) {
42
+ closeHeader();
43
+ }
44
+ });
45
+ }
46
+
47
+ /**
48
+ * Check if honeypot field is empty
49
+ *
50
+ * @memberof module:header
51
+ * @instance
52
+ * @private
53
+ */
54
+ function checkHoneypot() {
55
+ const honeypot = searchForm.querySelector(".qld__text-input--validation");
56
+ honeypot.value = "";
57
+
58
+ searchForm.addEventListener("submit", function (event) {
59
+ // Prevent form submission if the honeypot field is filled
60
+ if (honeypot.value !== "") {
61
+ event.preventDefault(); // Stop the form submission
62
+ } else {
63
+ honeypot.removeAttribute("name");
64
+ }
65
+ });
66
+ }
67
+
68
+ /**
69
+ * Toggle the header search on mobile/tablet
70
+ *
71
+ * @memberof module:header
72
+ * @instance
73
+ * @private
74
+ */
75
+ function toggleHeaderSearch() {
76
+ // Open menu
77
+ if (!isHeaderOpen) {
78
+ openHeader();
79
+ // Close menu
80
+ } else {
81
+ closeHeader();
45
82
  }
46
- /**
47
- * Toggle the header search on mobile/tablet
48
- *
49
- * @memberof module:header
50
- * @instance
51
- * @private
52
- */
53
- function toggleHeaderSearch() {
54
- var targetId = searchToggle.getAttribute("aria-controls");
55
- var target = document.getElementById(targetId);
56
- var focustrapTop = target.querySelector(".qld__main-nav__focus-trap-top");
57
- var focustrapBottom = target.querySelector(".qld__main-nav__focus-trap-bottom");
58
- var isExpanded = searchToggle.getAttribute("aria-expanded");
59
-
60
- // Open menu
61
- if (isExpanded === "false") {
62
- searchToggle.setAttribute("aria-expanded", true);
63
- searchToggle.classList.remove("qld__main-nav__toggle-search--open");
64
- searchToggle.classList.add("qld__main-nav__toggle-search--close");
65
- searchToggle.querySelector(".qld__main-nav__toggle-text").textContent = "Close";
66
- target.style.display = "block";
67
-
68
- // Wait for display: block, and then add class to open smoothly
69
- setTimeout(function () {
70
- target.classList.add("qld__main-nav__search--open");
71
- target.querySelector(".qld__text-input").focus();
72
-
73
- // Close header search on click outside
74
- headerSearchEvents.background = addEvent(document, "click", function () {
75
- var event = event || window.event;
76
-
77
- if (!target.contains(event.target)) {
78
- console.log("toggling");
79
- toggleHeaderSearch();
80
- }
81
- });
82
- }, 0);
83
-
84
- // Focus trap enabled
85
- focustrapTop.setAttribute("tabindex", 0);
86
- focustrapBottom.setAttribute("tabindex", 0);
87
-
88
- // Add focus listeners
89
- headerSearchEvents.focusTop = addEvent(focustrapTop, "focus", function () {
90
- target.querySelector("button").focus();
91
- });
92
- headerSearchEvents.focusBottom = addEvent(focustrapBottom, "focus", function () {
93
- target.querySelector("input").focus();
94
- });
95
-
96
- // Close header search if burger menu opened
97
- var menuToggle = document.querySelector('button[aria-controls="main-nav"]');
98
- headerSearchEvents.menu = addEvent(menuToggle, "click", function () {
83
+ }
84
+
85
+ function openHeader() {
86
+ isHeaderOpen = true;
87
+ searchToggle.setAttribute("aria-expanded", true);
88
+ searchToggle.classList.remove("qld__main-nav__toggle-search--open");
89
+ searchToggle.classList.add("qld__main-nav__toggle-search--close");
90
+ searchToggleText.textContent = "Close";
91
+ target.style.display = "block";
92
+
93
+ // Wait for display: block, and then add class to open smoothly
94
+ setTimeout(function () {
95
+ target.classList.add("qld__main-nav__search--open");
96
+ target.querySelector(".qld__text-input").focus();
97
+
98
+ // Close header search on click outside
99
+ headerSearchEvents.background = addEvent(document, "click", function () {
100
+ if (!target.contains(event.target) && window.innerWidth < mobileBreakpoint) {
99
101
  toggleHeaderSearch();
100
- });
101
-
102
- // Add key listener
103
- headerSearchEvents.escKey = addEvent(document, "keyup", function () {
104
- var event = event || window.event;
102
+ }
103
+ });
104
+ }, 0);
105
105
 
106
- // Check the menu is open and visible and the escape key is pressed
107
- if (event.keyCode === 27) {
108
- toggleHeaderSearch();
109
- }
110
- });
106
+ enableFocusTrap();
111
107
 
112
- // Close menu
113
- } else {
114
- searchToggle.setAttribute("aria-expanded", false);
115
- searchToggle.classList.remove("qld__main-nav__toggle-search--close");
116
- searchToggle.classList.add("qld__main-nav__toggle-search--open");
117
- searchToggle.querySelector(".qld__main-nav__toggle-text").textContent = "Search";
118
- searchToggle.focus();
119
- target.classList.remove("qld__main-nav__search--open");
120
- target.style.display = "none";
121
-
122
- // Remove the focus trap
123
- focustrapTop.removeAttribute("tabindex");
124
- focustrapBottom.removeAttribute("tabindex");
125
-
126
- // Remove the event listeners
127
- removeEvent(headerSearchEvents.focusTop);
128
- removeEvent(headerSearchEvents.focusBottom);
129
- removeEvent(headerSearchEvents.background);
130
- removeEvent(headerSearchEvents.menu);
131
- removeEvent(headerSearchEvents.escKey);
132
- }
108
+ // Close header search if burger menu opened
109
+ const menuToggle = document.querySelector('button[aria-controls="main-nav"]');
110
+ if (menuToggle) {
111
+ headerSearchEvents.menu = addEvent(menuToggle, "click", function () {
112
+ toggleHeaderSearch();
113
+ });
133
114
  }
134
115
 
135
- /**
136
- * Object representing an event listener
137
- *
138
- * @typedef {Object} event
139
- * @property {Node} element Element the event is attached to
140
- * @property {function} handler Event handler function
141
- * @property {document#event} event DOM event to listen for
142
- */
143
-
144
- /**
145
- * Add event listener
146
- *
147
- * @memberof module:header
148
- * @instance
149
- * @private
150
- *
151
- * @param {Node} element DOM element to add event to
152
- * @param {document#event} event The event to listen for
153
- * @param {function} rawHandler The raw handler function
154
- * @return {event}
155
- */
156
- function addEvent(element, event, rawHandler) {
157
- // Using local functions instead of anonymous for event handler
158
- function listenHandler(event) {
159
- var handler = rawHandler.apply(this, arguments);
160
- if (handler === false) {
161
- event.stopPropagation();
162
- event.preventDefault();
163
- }
164
- return handler;
116
+ // Add key listener
117
+ headerSearchEvents.escKey = addEvent(document, "keydown", function (event) {
118
+ // Check the menu is open and visible and the escape key is pressed
119
+ if (event.key === "Escape") {
120
+ toggleHeaderSearch();
165
121
  }
122
+ });
123
+ }
124
+
125
+ function closeHeader() {
126
+ isHeaderOpen = false;
127
+ searchToggle.setAttribute("aria-expanded", false);
128
+ searchToggle.classList.remove("qld__main-nav__toggle-search--close");
129
+ searchToggle.classList.add("qld__main-nav__toggle-search--open");
130
+ searchToggleText.textContent = "Search";
131
+ searchToggle.focus();
132
+ target.classList.remove("qld__main-nav__search--open");
133
+ target.style.display = "none";
134
+
135
+ disableFocusTrap();
136
+
137
+ // Remove the event listeners
138
+ removeEvent(headerSearchEvents.background);
139
+ removeEvent(headerSearchEvents.menu);
140
+ removeEvent(headerSearchEvents.escKey);
141
+ // Clear events object
142
+ headerSearchEvents = {};
143
+ }
144
+ // Enable trap enabled
145
+ function enableFocusTrap() {
146
+ focustrapTop.setAttribute("tabindex", 0);
147
+ focustrapBottom.setAttribute("tabindex", 0);
148
+
149
+ // Add focus listeners
150
+ headerSearchEvents.focusTop = addEvent(focustrapTop, "focus", function () {
151
+ target.querySelector("button").focus();
152
+ });
153
+
154
+ headerSearchEvents.focusBottom = addEvent(focustrapBottom, "focus", function () {
155
+ target.querySelector("input").focus();
156
+ });
157
+ }
158
+ // Remove the focus trap
159
+ function disableFocusTrap() {
160
+ focustrapTop.removeAttribute("tabindex");
161
+ focustrapBottom.removeAttribute("tabindex");
162
+
163
+ // Remove focus listeners
164
+ removeEvent(headerSearchEvents.focusTop);
165
+ removeEvent(headerSearchEvents.focusBottom);
166
+ }
166
167
 
167
- // Make sure attachHandler is also going to work
168
- function attachHandler() {
169
- var handler = rawHandler.call(element, window.event);
170
- if (handler === false) {
171
- window.event.returnValue = false;
172
- window.event.cancelBubble = true;
173
- }
174
- return handler;
175
- }
168
+ /**
169
+ * Object representing an event listener
170
+ *
171
+ * @typedef {Object} event
172
+ * @property {Node} element Element the event is attached to
173
+ * @property {function} handler Event handler function
174
+ * @property {document#event} event DOM event to listen for
175
+ */
176
176
 
177
- // Return the token and add the correct listener
178
- if (element.addEventListener) {
179
- element.addEventListener(event, listenHandler, false);
180
- return {
181
- element: element,
182
- handler: listenHandler,
183
- event: event,
184
- };
185
- } else {
186
- element.attachEvent("on" + event, attachHandler);
187
- return {
188
- element: element,
189
- handler: attachHandler,
190
- event: event,
191
- };
177
+ /**
178
+ * Add event listener
179
+ *
180
+ * @memberof module:header
181
+ * @instance
182
+ * @private
183
+ *
184
+ * @param {Node} element DOM element to add event to
185
+ * @param {document#event} event The event to listen for
186
+ * @param {function} rawHandler The raw handler function
187
+ * @return {event}
188
+ */
189
+ function addEvent(element, event, rawHandler) {
190
+ // Using local functions instead of anonymous for event handler
191
+ function listenHandler(event) {
192
+ const handler = rawHandler.apply(this, arguments);
193
+ if (handler === false) {
194
+ event.stopPropagation();
195
+ event.preventDefault();
192
196
  }
197
+ return handler;
193
198
  }
194
199
 
195
- /**
196
- * Remove event listener
197
- *
198
- * @memberof module:header
199
- * @instance
200
- * @private
201
- *
202
- * @param {event} token The event to remove
203
- */
204
- function removeEvent(token) {
205
- if (token.element.removeEventListener) {
206
- token.element.removeEventListener(token.event, token.handler);
207
- } else {
208
- token.element.detachEvent("on" + token.event, token.handler);
209
- }
210
- }
211
- })();
200
+ element.addEventListener(event, listenHandler, false);
201
+ return {
202
+ element: element,
203
+ handler: listenHandler,
204
+ event: event,
205
+ };
206
+ }
207
+
208
+ /**
209
+ * Remove event listener
210
+ *
211
+ * @memberof module:header
212
+ * @instance
213
+ * @private
214
+ *
215
+ * @param {event} token The event to remove
216
+ */
217
+ function removeEvent(token) {
218
+ token.element.removeEventListener(token.event, token.handler);
219
+ }
@@ -1,5 +1,5 @@
1
1
  //--------------------------------------------------------------------------------------------------------------------------------------------------------------
2
- // {{Left Hand Navigation}}
2
+ // Left Hand Navigation
3
3
  //--------------------------------------------------------------------------------------------------------------------------------------------------------------
4
4
 
5
5
  .qld__left-nav {
@@ -54,9 +54,8 @@
54
54
  @include QLD-space(width, 1.5unit);
55
55
  @include QLD-space(margin-right, 0.75unit);
56
56
 
57
- * {
58
- fill: var(--QLD-color-light__action--secondary);
59
- }
57
+ color: var(--QLD-color-light__action--secondary);
58
+ fill: var(--QLD-color-light__action--secondary);
60
59
  }
61
60
  }
62
61
 
@@ -94,9 +93,9 @@
94
93
  }
95
94
 
96
95
  &.active {
97
- > .qld__left-nav__item-link .qld__left-nav__item-icon svg * {
96
+ > .qld__left-nav__item-link .qld__left-nav__item-icon svg {
97
+ color: var(--QLD-color-light__heading);
98
98
  fill: var(--QLD-color-light__heading);
99
- stroke-width: 10px;
100
99
  }
101
100
 
102
101
  > .qld__left-nav__item-link .qld__left-nav__item-text {
@@ -113,7 +112,8 @@
113
112
  background-color: $QLD-color-neutral--white;
114
113
  }
115
114
 
116
- .qld__left-nav__item-icon svg * {
115
+ .qld__left-nav__item-icon svg {
116
+ color: var(--QLD-color-light__link);
117
117
  fill: var(--QLD-color-light__link);
118
118
  }
119
119
  }
@@ -131,7 +131,8 @@
131
131
  }
132
132
  }
133
133
 
134
- &:hover {
134
+ // Hover over the full nav link only if the children are not expanded
135
+ &:not(:has(.qld__left-nav__item-link--open)):hover {
135
136
  background-color: var(--QLD-color-light__background--alt);
136
137
  }
137
138
 
@@ -139,7 +140,8 @@
139
140
  background-color: var(--QLD-color-light__background--alt);
140
141
  color: var(--QLD-color-light__link);
141
142
 
142
- .qld__left-nav__item-icon svg * {
143
+ .qld__left-nav__item-icon svg {
144
+ color: var(--QLD-color-light__action--primary-hover);
143
145
  fill: var(--QLD-color-light__action--primary-hover);
144
146
  }
145
147
 
@@ -148,6 +150,12 @@
148
150
  }
149
151
  }
150
152
 
153
+ // Override hover styles for nested lists
154
+ ul li:hover,
155
+ ul a.qld__left-nav__item-link:hover {
156
+ background-color: transparent;
157
+ }
158
+
151
159
  .qld__left-nav__item-link {
152
160
  @include QLD-space(padding, 1.25unit 1.25unit 1.25unit 1.25unit);
153
161
  display: flex;
@@ -170,7 +178,8 @@
170
178
  background-color: $QLD-color-neutral--white;
171
179
  }
172
180
 
173
- .qld__left-nav__item-icon svg * {
181
+ .qld__left-nav__item-icon svg {
182
+ color: var(--QLD-color-light__link);
174
183
  fill: var(--QLD-color-light__link);
175
184
  }
176
185
  }
@@ -195,31 +204,21 @@
195
204
  @include QLD-box-shadow(3);
196
205
  }
197
206
 
198
- &:after {
199
- content: " ";
207
+ svg {
200
208
  position: absolute;
201
209
  @include QLD-space(margin-top, -0.5unit); // Pull it up half of it's height
210
+ @include QLD-space(border-radius, 50%);
202
211
  left: 0;
203
212
  right: 0;
204
213
  top: 0;
205
214
  bottom: 0;
206
215
  margin: auto;
207
- @include QLD-space(height, 2unit);
208
- @include QLD-space(width, 2unit);
209
- @include QLD-space(border-radius, 50%);
210
- background-color: var(--QLD-color-light__background);
211
- mask-image: QLD-svguri($QLD-icon-chevron-up);
212
- mask-size: 1rem;
213
- mask-repeat: no-repeat;
214
- mask-position: center;
215
- background-color: var(--QLD-color-light__action--secondary);
216
- background-repeat: no-repeat;
217
- background-position: center;
218
- @include QLD-space(background-size, 1unit);
219
216
  transition: transform 0.25s ease-in;
217
+ color: var(--QLD-color-light__action--secondary);
218
+ fill: var(--QLD-color-light__action--secondary);
220
219
  }
221
220
 
222
- &.qld__accordion--closed:after {
221
+ &.qld__accordion--closed svg {
223
222
  transform: rotate(-180deg);
224
223
  }
225
224
  }
@@ -244,7 +243,8 @@
244
243
  background-color: var(--QLD-color-dark__background--shade);
245
244
  border-color: var(--QLD-color-dark__border);
246
245
 
247
- .qld__left-nav__item-icon svg * {
246
+ .qld__left-nav__item-icon svg {
247
+ color: var(--QLD-color-dark__action--secondary);
248
248
  fill: var(--QLD-color-dark__action--secondary);
249
249
  }
250
250
 
@@ -267,7 +267,8 @@
267
267
  }
268
268
 
269
269
  &.active {
270
- .qld__left-nav__item-icon svg * {
270
+ .qld__left-nav__item-icon svg {
271
+ color: var(--QLD-color-dark__heading);
271
272
  fill: var(--QLD-color-dark__heading);
272
273
  }
273
274
 
@@ -287,7 +288,8 @@
287
288
  a.qld__left-nav__item-link:hover {
288
289
  background-color: var(--QLD-color-dark__background--alt);
289
290
 
290
- .qld__left-nav__item-icon svg * {
291
+ .qld__left-nav__item-icon svg {
292
+ color: var(--QLD-color-dark__action--primary-hover);
291
293
  fill: var(--QLD-color-dark__action--primary-hover);
292
294
  }
293
295
 
@@ -307,7 +309,8 @@
307
309
  background-color: var(--QLD-color-dark__background);
308
310
  }
309
311
 
310
- .qld__left-nav__item-icon svg * {
312
+ .qld__left-nav__item-icon svg {
313
+ color: var(--QLD-color-dark__link);
311
314
  fill: var(--QLD-color-dark__link);
312
315
  }
313
316
  }
@@ -6,7 +6,7 @@
6
6
  <a class="qld__left-nav__item-link" href="./?a={{site.data.assetid}}">
7
7
  {{#if site.metadata.mainNavHomeIconShow.value}}
8
8
  <span class="qld__left-nav__item-icon">
9
- <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" height="32" width="32"><path fill="currentColor" d="M277.4 4.002C283.5-1.334 292.5-1.334 298.6 4.002L384 79.37V56C384 42.75 394.7 31.1 408 31.1H488C501.3 31.1 512 42.75 512 56V192.3L570.6 244C577.2 249.8 577.8 259.1 571.1 266.6C566.2 273.2 556 273.8 549.4 267.1L512 234.1V432C512 476.2 476.2 512 432 512H144C99.82 512 64 476.2 64 432V234.1L26.59 267.1C19.96 273.8 9.849 273.2 4.003 266.6C-1.844 259.1-1.212 249.8 5.414 244L277.4 4.002zM480 164.1V64H416V107.6L480 164.1zM96 206.7V432C96 458.5 117.5 480 144 480H208V320C208 302.3 222.3 288 240 288H336C353.7 288 368 302.3 368 320V480H432C458.5 480 480 458.5 480 432V206.7L288 37.34L96 206.7zM240 320V480H336V320H240z"/></svg>
9
+ <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#home"></use></svg>
10
10
  </span>
11
11
  {{/if}}
12
12
  <span class="qld__left-nav__item-text" data-name="{{{asset_short_name}}}">Home</span>
@@ -17,7 +17,7 @@
17
17
  <span class="qld__left-nav__item-link">
18
18
  {{#if site.metadata.mainNavHomeIconShow.value}}
19
19
  <span class="qld__left-nav__item-icon">
20
- <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" height="32" width="32"><path fill="currentColor" d="M277.4 4.002C283.5-1.334 292.5-1.334 298.6 4.002L384 79.37V56C384 42.75 394.7 31.1 408 31.1H488C501.3 31.1 512 42.75 512 56V192.3L570.6 244C577.2 249.8 577.8 259.1 571.1 266.6C566.2 273.2 556 273.8 549.4 267.1L512 234.1V432C512 476.2 476.2 512 432 512H144C99.82 512 64 476.2 64 432V234.1L26.59 267.1C19.96 273.8 9.849 273.2 4.003 266.6C-1.844 259.1-1.212 249.8 5.414 244L277.4 4.002zM480 164.1V64H416V107.6L480 164.1zM96 206.7V432C96 458.5 117.5 480 144 480H208V320C208 302.3 222.3 288 240 288H336C353.7 288 368 302.3 368 320V480H432C458.5 480 480 458.5 480 432V206.7L288 37.34L96 206.7zM240 320V480H336V320H240z"/></svg>
20
+ <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#home"></use></svg>
21
21
  </span>
22
22
  {{/if}}
23
23
  <span class="qld__left-nav__item-text" data-name="{{{asset_short_name}}}">Home</span>
@@ -44,11 +44,15 @@
44
44
  {{#ifCond ../site.metadata.mainNavMegaMenuShow.value '==' 'true'}}
45
45
  {{#arrayWith children 'asset_metadata_showInMegaNav' 'true'}}
46
46
  {{#if this}}
47
- {{#inArray @root.current.lineage 'asset_assetid' ../this.asset_assetid}}
48
- <button class="qld__left-nav__item-toggle qld__accordion--open" aria-controls="internal-nav-{{../this.asset_assetid}}" aria-expanded="true" aria-selected="true" aria-label="Toggle navigation, {{{../asset_short_name}}}" ></button>
47
+ {{#inArray this 'asset_assetid' @root.current.data.assetid}}
48
+ <button class="qld__left-nav__item-toggle qld__accordion--open" aria-controls="internal-nav-{{../this.asset_assetid}}" aria-expanded="true" aria-selected="true" aria-label="Toggle navigation, {{{../asset_short_name}}}">
49
+ <svg class="qld__icon qld__icon--sm" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#chevron-up"></use></svg>
50
+ </button>
49
51
  <ul id="internal-nav-{{../this.asset_assetid}}" class="qld__link-list qld__accordion--open qld__accordion__body">
50
52
  {{else}}
51
- <button class="qld__left-nav__item-toggle qld__accordion--closed" aria-controls="internal-nav-{{../this.asset_assetid}}" aria-expanded="false" aria-selected="false" aria-label="Toggle navigation, {{{../asset_short_name}}}" ></button>
53
+ <button class="qld__left-nav__item-toggle qld__accordion--closed" aria-controls="internal-nav-{{../this.asset_assetid}}" aria-expanded="false" aria-selected="false" aria-label="Toggle navigation, {{{../asset_short_name}}}">
54
+ <svg class="qld__icon qld__icon--sm" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#chevron-up"></use></svg>
55
+ </button>
52
56
  <ul id="internal-nav-{{../this.asset_assetid}}" class="qld__link-list qld__accordion--closed qld__accordion__body">
53
57
  {{/inArray}}
54
58
  {{#each this}}
@@ -70,7 +74,7 @@
70
74
  {{/ifCond}}
71
75
  </li>
72
76
  {{/each}}
73
- </ul>
77
+ </ul>
74
78
  {{/if}}
75
79
  {{/arrayWith}}
76
80
  {{/ifCond}}