@qhealth-design-system/core 1.17.2 → 1.18.1

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 +4 -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 +194 -180
  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,29 @@
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
4
 
9
- // Global events object
10
- var headerSearchEvents = {};
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
+ let searchToggleText, targetId, target, focustrapTop, focustrapBottom;
9
+ if (searchToggle) {
10
+ searchToggleText = searchToggle.querySelector(".qld__main-nav__toggle-text");
11
+ targetId = searchToggle.getAttribute("aria-controls");
12
+ target = document.getElementById(targetId);
13
+ if (target) {
14
+ focustrapTop = target.querySelector(".qld__main-nav__focus-trap-top");
15
+ focustrapBottom = target.querySelector(".qld__main-nav__focus-trap-bottom");
16
+ }
17
+ }
18
+
19
+ // Hold state of the header (open vs close)
20
+ let isHeaderOpen = false;
21
+ // Global events object
22
+ let headerSearchEvents = {};
23
+ // Breakpoint for mobile mode
24
+ const mobileBreakpoint = 992;
11
25
 
26
+ export default function initHeader(document = document) {
12
27
  // Add action so the search works only if JS is enabled
13
28
  if (searchForm) {
14
29
  searchForm.querySelector(".qld__btn--search").setAttribute("type", "submit");
@@ -23,189 +38,188 @@
23
38
  searchToggle.addEventListener("click", toggleHeaderSearch);
24
39
  }
25
40
 
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
- });
41
+ // We want to ensure the search input is visible on desktop at all times
42
+ window.addEventListener("resize", () => {
43
+ if (window.innerWidth >= mobileBreakpoint && !isHeaderOpen) {
44
+ openHeader();
45
+ // Disable focus trap as it's not needed on desktop
46
+ disableFocusTrap();
47
+ } else if (window.innerWidth < mobileBreakpoint && isHeaderOpen) {
48
+ closeHeader();
49
+ }
50
+ });
51
+ }
52
+
53
+ /**
54
+ * Check if honeypot field is empty
55
+ *
56
+ * @memberof module:header
57
+ * @instance
58
+ * @private
59
+ */
60
+ function checkHoneypot() {
61
+ const honeypot = searchForm.querySelector(".qld__text-input--validation");
62
+ honeypot.value = "";
63
+
64
+ searchForm.addEventListener("submit", function (event) {
65
+ // Prevent form submission if the honeypot field is filled
66
+ if (honeypot.value !== "") {
67
+ event.preventDefault(); // Stop the form submission
68
+ } else {
69
+ honeypot.removeAttribute("name");
70
+ }
71
+ });
72
+ }
73
+
74
+ /**
75
+ * Toggle the header search on mobile/tablet
76
+ *
77
+ * @memberof module:header
78
+ * @instance
79
+ * @private
80
+ */
81
+ function toggleHeaderSearch() {
82
+ // Open menu
83
+ if (!isHeaderOpen) {
84
+ openHeader();
85
+ // Close menu
86
+ } else {
87
+ closeHeader();
45
88
  }
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 () {
89
+ }
90
+
91
+ function openHeader() {
92
+ isHeaderOpen = true;
93
+ searchToggle.setAttribute("aria-expanded", true);
94
+ searchToggle.classList.remove("qld__main-nav__toggle-search--open");
95
+ searchToggle.classList.add("qld__main-nav__toggle-search--close");
96
+ searchToggleText.textContent = "Close";
97
+ target.style.display = "block";
98
+
99
+ // Wait for display: block, and then add class to open smoothly
100
+ setTimeout(function () {
101
+ target.classList.add("qld__main-nav__search--open");
102
+ target.querySelector(".qld__text-input").focus();
103
+
104
+ // Close header search on click outside
105
+ headerSearchEvents.background = addEvent(document, "click", function () {
106
+ if (!target.contains(event.target) && window.innerWidth < mobileBreakpoint) {
99
107
  toggleHeaderSearch();
100
- });
101
-
102
- // Add key listener
103
- headerSearchEvents.escKey = addEvent(document, "keyup", function () {
104
- var event = event || window.event;
108
+ }
109
+ });
110
+ }, 0);
105
111
 
106
- // Check the menu is open and visible and the escape key is pressed
107
- if (event.keyCode === 27) {
108
- toggleHeaderSearch();
109
- }
110
- });
112
+ enableFocusTrap();
111
113
 
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
- }
114
+ // Close header search if burger menu opened
115
+ const menuToggle = document.querySelector('button[aria-controls="main-nav"]');
116
+ if (menuToggle) {
117
+ headerSearchEvents.menu = addEvent(menuToggle, "click", function () {
118
+ toggleHeaderSearch();
119
+ });
133
120
  }
134
121
 
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;
122
+ // Add key listener
123
+ headerSearchEvents.escKey = addEvent(document, "keydown", function (event) {
124
+ // Check the menu is open and visible and the escape key is pressed
125
+ if (event.key === "Escape") {
126
+ toggleHeaderSearch();
165
127
  }
128
+ });
129
+ }
130
+
131
+ function closeHeader() {
132
+ isHeaderOpen = false;
133
+ searchToggle.setAttribute("aria-expanded", false);
134
+ searchToggle.classList.remove("qld__main-nav__toggle-search--close");
135
+ searchToggle.classList.add("qld__main-nav__toggle-search--open");
136
+ searchToggleText.textContent = "Search";
137
+ searchToggle.focus();
138
+ target.classList.remove("qld__main-nav__search--open");
139
+ target.style.display = "none";
140
+
141
+ disableFocusTrap();
142
+
143
+ // Remove the event listeners
144
+ removeEvent(headerSearchEvents.background);
145
+ removeEvent(headerSearchEvents.menu);
146
+ removeEvent(headerSearchEvents.escKey);
147
+ // Clear events object
148
+ headerSearchEvents = {};
149
+ }
150
+ // Enable trap enabled
151
+ function enableFocusTrap() {
152
+ focustrapTop.setAttribute("tabindex", 0);
153
+ focustrapBottom.setAttribute("tabindex", 0);
154
+
155
+ // Add focus listeners
156
+ headerSearchEvents.focusTop = addEvent(focustrapTop, "focus", function () {
157
+ target.querySelector("button").focus();
158
+ });
159
+
160
+ headerSearchEvents.focusBottom = addEvent(focustrapBottom, "focus", function () {
161
+ target.querySelector("input").focus();
162
+ });
163
+ }
164
+ // Remove the focus trap
165
+ function disableFocusTrap() {
166
+ focustrapTop.removeAttribute("tabindex");
167
+ focustrapBottom.removeAttribute("tabindex");
168
+
169
+ // Remove focus listeners
170
+ removeEvent(headerSearchEvents.focusTop);
171
+ removeEvent(headerSearchEvents.focusBottom);
172
+ }
166
173
 
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
- }
174
+ /**
175
+ * Object representing an event listener
176
+ *
177
+ * @typedef {Object} event
178
+ * @property {Node} element Element the event is attached to
179
+ * @property {function} handler Event handler function
180
+ * @property {document#event} event DOM event to listen for
181
+ */
176
182
 
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
- };
183
+ /**
184
+ * Add event listener
185
+ *
186
+ * @memberof module:header
187
+ * @instance
188
+ * @private
189
+ *
190
+ * @param {Node} element DOM element to add event to
191
+ * @param {document#event} event The event to listen for
192
+ * @param {function} rawHandler The raw handler function
193
+ * @return {event}
194
+ */
195
+ function addEvent(element, event, rawHandler) {
196
+ // Using local functions instead of anonymous for event handler
197
+ function listenHandler(event) {
198
+ const handler = rawHandler.apply(this, arguments);
199
+ if (handler === false) {
200
+ event.stopPropagation();
201
+ event.preventDefault();
192
202
  }
203
+ return handler;
193
204
  }
194
205
 
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
- })();
206
+ element.addEventListener(event, listenHandler, false);
207
+ return {
208
+ element: element,
209
+ handler: listenHandler,
210
+ event: event,
211
+ };
212
+ }
213
+
214
+ /**
215
+ * Remove event listener
216
+ *
217
+ * @memberof module:header
218
+ * @instance
219
+ * @private
220
+ *
221
+ * @param {event} token The event to remove
222
+ */
223
+ function removeEvent(token) {
224
+ token.element.removeEventListener(token.event, token.handler);
225
+ }
@@ -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}}