@qhealth-design-system/core 1.16.4 → 1.17.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.
- package/.storybook/assets/storybook.css +1 -1
- package/.storybook/globals.js +10 -0
- package/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/src/components/_global/css/cta_links/component.scss +107 -14
- package/src/components/_global/css/forms/control_inputs/component.scss +65 -77
- package/src/components/_global/css/link_columns/component.scss +2 -2
- package/src/components/_global/html/scripts.html +0 -2
- package/src/components/_global/js/cta_links/global.js +33 -0
- package/src/components/_global/js/global.js +175 -138
- package/src/components/_global/js/tabs/global.js +6 -2
- package/src/components/_template/html/component-page.html +25 -31
- package/src/components/banner_advanced/html/component.hbs +1 -1
- package/src/components/breadcrumbs/js/global.js +17 -4
- package/src/components/card_feature/html/component.hbs +1 -1
- package/src/components/card_multi_action/html/component.hbs +1 -1
- package/src/components/card_single_action/css/component.scss +38 -47
- package/src/components/card_single_action/html/component.hbs +1 -1
- package/src/components/code/css/component.scss +72 -73
- package/src/components/code/html/component.hbs +62 -19
- package/src/components/code/js/global.js +102 -86
- package/src/components/footer/css/component.scss +2 -4
- package/src/components/footer/html/component.hbs +11 -8
- package/src/components/header/css/component.scss +11 -11
- package/src/components/header/html/component.hbs +3 -3
- package/src/components/header/js/global.js +58 -65
- package/src/components/in_page_navigation/js/global.js +34 -31
- package/src/components/internal_navigation/js/global.js +13 -3
- package/src/components/main_navigation/css/component.scss +79 -13
- package/src/components/main_navigation/html/component.hbs +5 -5
- package/src/components/main_navigation/js/global.js +94 -115
- package/src/components/mega_main_navigation/css/component.scss +27 -14
- package/src/components/mega_main_navigation/html/component.hbs +5 -5
- package/src/components/mega_main_navigation/js/global.js +50 -55
- package/src/components/page_alert/css/component.scss +141 -179
- package/src/components/prefooter/css/component.scss +62 -0
- package/src/components/prefooter/js/manifest.json +9 -0
- package/src/data/current.json +3 -9
- package/src/data/site.json +3 -3
- package/src/html/component-a-z_listing.html +13 -41
- package/src/html/component-abstract.html +536 -40
- package/src/html/component-accordion.html +537 -41
- package/src/html/component-banner.html +537 -40
- package/src/html/component-banner_advanced.html +14 -41
- package/src/html/component-banner_basic.html +13 -40
- package/src/html/component-banner_intermediate.html +14 -41
- package/src/html/component-basic_search.html +10 -26
- package/src/html/component-body.html +541 -52
- package/src/html/component-breadcrumbs.html +538 -43
- package/src/html/component-btn.html +471 -69
- package/src/html/component-callout.html +536 -40
- package/src/html/component-card_feature.html +282 -312
- package/src/html/component-card_multi_action.html +651 -217
- package/src/html/component-card_no_action.html +163 -289
- package/src/html/component-card_single_action.html +283 -312
- package/src/html/component-code.html +13 -40
- package/src/html/component-file_upload.html +13 -41
- package/src/html/component-footer.html +537 -41
- package/src/html/component-forms.html +206 -72
- package/src/html/component-global-elements.html +720 -152
- package/src/html/component-global_alert.html +536 -41
- package/src/html/component-header.html +537 -42
- package/src/html/component-horizontal_rule.html +459 -65
- package/src/html/component-in_page_navigation.html +544 -48
- package/src/html/component-internal_navigation.html +537 -41
- package/src/html/component-left_hand_navigation.html +13 -41
- package/src/html/component-loading_spinner.html +13 -42
- package/src/html/component-main_navigation.html +537 -41
- package/src/html/component-mega_main_navigation.html +537 -42
- package/src/html/component-multi_column.html +536 -40
- package/src/html/component-overflow_menu.html +12 -35
- package/src/html/component-page_alert.html +536 -40
- package/src/html/component-page_footer_info.html +583 -0
- package/src/html/component-pagination.html +459 -65
- package/src/html/component-promo_panel.html +13 -43
- package/src/html/component-tab.html +13 -41
- package/src/html/component-tag_list.html +495 -77
- package/src/html/component-toggle_tip.html +2 -3
- package/src/html/component-tool_tip.html +2 -3
- package/src/html/component-video_player.html +13 -41
- package/src/html/components.html +306 -88
- package/src/html/home.html +1807 -628
- package/src/html/index.html +9 -22
- package/src/html/inner-with-nav.html +551 -137
- package/src/html/inner.html +570 -59
- package/src/stories/Checkboxes/Checkboxes.js +41 -0
- package/src/stories/Checkboxes/Checkboxes.mdx +45 -0
- package/src/stories/Checkboxes/Checkboxes.stories.js +209 -0
- package/src/stories/RadioButtons/RadioButtons.js +41 -0
- package/src/stories/RadioButtons/RadioButtons.mdx +45 -0
- package/src/stories/RadioButtons/RadioButtons.stories.js +209 -0
- package/src/styles/imports/mixins.scss +5 -43
- package/src/components/updated_date/css/component.scss +0 -24
- package/src/components/updated_date/js/manifest.json +0 -9
- package/src/components/widgets/css/component.scss +0 -130
- package/src/components/widgets/html/component.hbs +0 -8
- package/src/components/widgets/html/default.html +0 -3
- package/src/components/widgets/js/current.json +0 -471
- package/src/components/widgets/js/manifest.json +0 -9
- package/src/components/widgets/js/site.json +0 -350
- package/src/html/component-updated_date.html +0 -88
- package/src/html/component-widgets.html +0 -90
- /package/src/components/{updated_date → prefooter}/html/component.hbs +0 -0
|
@@ -2,131 +2,126 @@
|
|
|
2
2
|
* @module header
|
|
3
3
|
*/
|
|
4
4
|
(function () {
|
|
5
|
-
|
|
6
5
|
// Search toggle button
|
|
7
|
-
var searchToggle = document.querySelector(
|
|
8
|
-
var searchForm = document.querySelector(
|
|
6
|
+
var searchToggle = document.querySelector(".qld__main-nav__toggle-search");
|
|
7
|
+
var searchForm = document.querySelector(".qld__header__search .qld__search-form");
|
|
9
8
|
|
|
10
9
|
// Global events object
|
|
11
10
|
var headerSearchEvents = {};
|
|
12
11
|
|
|
13
12
|
// Add action so the search works only if JS is enabled
|
|
14
13
|
if (searchForm) {
|
|
15
|
-
searchForm.querySelector(
|
|
16
|
-
searchForm.querySelectorAll(
|
|
17
|
-
el.removeAttribute(
|
|
14
|
+
searchForm.querySelector(".qld__btn--search").setAttribute("type", "submit");
|
|
15
|
+
searchForm.querySelectorAll(".qld__btn--search, .qld__text-input").forEach((el) => {
|
|
16
|
+
el.removeAttribute("disabled");
|
|
18
17
|
});
|
|
19
18
|
checkHoneypot();
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
// Add event listener to search toggle button
|
|
23
22
|
if (searchToggle) {
|
|
24
|
-
searchToggle.addEventListener(
|
|
23
|
+
searchToggle.addEventListener("click", toggleHeaderSearch);
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
/**
|
|
28
27
|
* Check if honeypot field is empty
|
|
29
|
-
*
|
|
28
|
+
*
|
|
30
29
|
* @memberof module:header
|
|
31
30
|
* @instance
|
|
32
31
|
* @private
|
|
33
32
|
*/
|
|
34
33
|
function checkHoneypot() {
|
|
35
|
-
var honeypot = searchForm.querySelector(
|
|
36
|
-
honeypot.value =
|
|
34
|
+
var honeypot = searchForm.querySelector(".qld__text-input--validation");
|
|
35
|
+
honeypot.value = "";
|
|
37
36
|
|
|
38
|
-
searchForm.addEventListener(
|
|
37
|
+
searchForm.addEventListener("submit", function (event) {
|
|
39
38
|
// Prevent form submission if the honeypot field is filled
|
|
40
|
-
if (honeypot.value !==
|
|
39
|
+
if (honeypot.value !== "") {
|
|
41
40
|
event.preventDefault(); // Stop the form submission
|
|
42
41
|
} else {
|
|
43
|
-
honeypot.removeAttribute(
|
|
42
|
+
honeypot.removeAttribute("name");
|
|
44
43
|
}
|
|
45
44
|
});
|
|
46
45
|
}
|
|
47
46
|
/**
|
|
48
47
|
* Toggle the header search on mobile/tablet
|
|
49
|
-
*
|
|
48
|
+
*
|
|
50
49
|
* @memberof module:header
|
|
51
50
|
* @instance
|
|
52
51
|
* @private
|
|
53
52
|
*/
|
|
54
53
|
function toggleHeaderSearch() {
|
|
55
|
-
|
|
56
|
-
var targetId = searchToggle.getAttribute('aria-controls');
|
|
54
|
+
var targetId = searchToggle.getAttribute("aria-controls");
|
|
57
55
|
var target = document.getElementById(targetId);
|
|
58
|
-
var focustrapTop = target.querySelector(
|
|
59
|
-
var focustrapBottom = target.querySelector(
|
|
60
|
-
var isExpanded = searchToggle.getAttribute(
|
|
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");
|
|
61
59
|
|
|
62
60
|
// Open menu
|
|
63
61
|
if (isExpanded === "false") {
|
|
64
|
-
|
|
65
|
-
searchToggle.
|
|
66
|
-
searchToggle.classList.
|
|
67
|
-
searchToggle.
|
|
68
|
-
searchToggle.querySelector('.qld__main-nav__toggle-text').innerHTML = 'Close';
|
|
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";
|
|
69
66
|
target.style.display = "block";
|
|
70
|
-
|
|
67
|
+
|
|
71
68
|
// Wait for display: block, and then add class to open smoothly
|
|
72
|
-
setTimeout(function() {
|
|
73
|
-
target.classList.add(
|
|
74
|
-
target.querySelector(
|
|
69
|
+
setTimeout(function () {
|
|
70
|
+
target.classList.add("qld__main-nav__search--open");
|
|
71
|
+
target.querySelector(".qld__text-input").focus();
|
|
75
72
|
|
|
76
73
|
// Close header search on click outside
|
|
77
|
-
headerSearchEvents.background = addEvent(document,
|
|
74
|
+
headerSearchEvents.background = addEvent(document, "click", function () {
|
|
78
75
|
var event = event || window.event;
|
|
79
|
-
|
|
76
|
+
|
|
80
77
|
if (!target.contains(event.target)) {
|
|
81
|
-
console.log(
|
|
78
|
+
console.log("toggling");
|
|
82
79
|
toggleHeaderSearch();
|
|
83
80
|
}
|
|
84
81
|
});
|
|
85
82
|
}, 0);
|
|
86
83
|
|
|
87
84
|
// Focus trap enabled
|
|
88
|
-
focustrapTop.setAttribute(
|
|
89
|
-
focustrapBottom.setAttribute(
|
|
85
|
+
focustrapTop.setAttribute("tabindex", 0);
|
|
86
|
+
focustrapBottom.setAttribute("tabindex", 0);
|
|
90
87
|
|
|
91
88
|
// Add focus listeners
|
|
92
|
-
headerSearchEvents.focusTop = addEvent(focustrapTop,
|
|
93
|
-
target.querySelector(
|
|
89
|
+
headerSearchEvents.focusTop = addEvent(focustrapTop, "focus", function () {
|
|
90
|
+
target.querySelector("button").focus();
|
|
94
91
|
});
|
|
95
|
-
headerSearchEvents.focusBottom = addEvent(focustrapBottom,
|
|
96
|
-
target.querySelector(
|
|
92
|
+
headerSearchEvents.focusBottom = addEvent(focustrapBottom, "focus", function () {
|
|
93
|
+
target.querySelector("input").focus();
|
|
97
94
|
});
|
|
98
95
|
|
|
99
96
|
// Close header search if burger menu opened
|
|
100
97
|
var menuToggle = document.querySelector('button[aria-controls="main-nav"]');
|
|
101
|
-
headerSearchEvents.menu = addEvent(menuToggle,
|
|
98
|
+
headerSearchEvents.menu = addEvent(menuToggle, "click", function () {
|
|
102
99
|
toggleHeaderSearch();
|
|
103
100
|
});
|
|
104
|
-
|
|
101
|
+
|
|
105
102
|
// Add key listener
|
|
106
|
-
headerSearchEvents.escKey = addEvent(document,
|
|
103
|
+
headerSearchEvents.escKey = addEvent(document, "keyup", function () {
|
|
107
104
|
var event = event || window.event;
|
|
108
105
|
|
|
109
106
|
// Check the menu is open and visible and the escape key is pressed
|
|
110
|
-
if (event.keyCode === 27
|
|
107
|
+
if (event.keyCode === 27) {
|
|
111
108
|
toggleHeaderSearch();
|
|
112
109
|
}
|
|
113
110
|
});
|
|
114
|
-
|
|
115
111
|
|
|
116
|
-
|
|
112
|
+
// Close menu
|
|
117
113
|
} else {
|
|
118
|
-
|
|
119
|
-
searchToggle.
|
|
120
|
-
searchToggle.classList.
|
|
121
|
-
searchToggle.
|
|
122
|
-
searchToggle.querySelector('.qld__main-nav__toggle-text').innerHTML = 'Search';
|
|
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";
|
|
123
118
|
searchToggle.focus();
|
|
124
|
-
target.classList.remove(
|
|
119
|
+
target.classList.remove("qld__main-nav__search--open");
|
|
125
120
|
target.style.display = "none";
|
|
126
121
|
|
|
127
122
|
// Remove the focus trap
|
|
128
|
-
focustrapTop.removeAttribute(
|
|
129
|
-
focustrapBottom.removeAttribute(
|
|
123
|
+
focustrapTop.removeAttribute("tabindex");
|
|
124
|
+
focustrapBottom.removeAttribute("tabindex");
|
|
130
125
|
|
|
131
126
|
// Remove the event listeners
|
|
132
127
|
removeEvent(headerSearchEvents.focusTop);
|
|
@@ -139,7 +134,7 @@
|
|
|
139
134
|
|
|
140
135
|
/**
|
|
141
136
|
* Object representing an event listener
|
|
142
|
-
*
|
|
137
|
+
*
|
|
143
138
|
* @typedef {Object} event
|
|
144
139
|
* @property {Node} element Element the event is attached to
|
|
145
140
|
* @property {function} handler Event handler function
|
|
@@ -148,11 +143,11 @@
|
|
|
148
143
|
|
|
149
144
|
/**
|
|
150
145
|
* Add event listener
|
|
151
|
-
*
|
|
146
|
+
*
|
|
152
147
|
* @memberof module:header
|
|
153
148
|
* @instance
|
|
154
149
|
* @private
|
|
155
|
-
*
|
|
150
|
+
*
|
|
156
151
|
* @param {Node} element DOM element to add event to
|
|
157
152
|
* @param {document#event} event The event to listen for
|
|
158
153
|
* @param {function} rawHandler The raw handler function
|
|
@@ -166,7 +161,7 @@
|
|
|
166
161
|
event.stopPropagation();
|
|
167
162
|
event.preventDefault();
|
|
168
163
|
}
|
|
169
|
-
return
|
|
164
|
+
return handler;
|
|
170
165
|
}
|
|
171
166
|
|
|
172
167
|
// Make sure attachHandler is also going to work
|
|
@@ -176,7 +171,7 @@
|
|
|
176
171
|
window.event.returnValue = false;
|
|
177
172
|
window.event.cancelBubble = true;
|
|
178
173
|
}
|
|
179
|
-
return
|
|
174
|
+
return handler;
|
|
180
175
|
}
|
|
181
176
|
|
|
182
177
|
// Return the token and add the correct listener
|
|
@@ -185,34 +180,32 @@
|
|
|
185
180
|
return {
|
|
186
181
|
element: element,
|
|
187
182
|
handler: listenHandler,
|
|
188
|
-
event: event
|
|
183
|
+
event: event,
|
|
189
184
|
};
|
|
190
185
|
} else {
|
|
191
|
-
element.attachEvent(
|
|
186
|
+
element.attachEvent("on" + event, attachHandler);
|
|
192
187
|
return {
|
|
193
188
|
element: element,
|
|
194
189
|
handler: attachHandler,
|
|
195
|
-
event: event
|
|
190
|
+
event: event,
|
|
196
191
|
};
|
|
197
192
|
}
|
|
198
193
|
}
|
|
199
194
|
|
|
200
|
-
|
|
201
195
|
/**
|
|
202
196
|
* Remove event listener
|
|
203
|
-
*
|
|
197
|
+
*
|
|
204
198
|
* @memberof module:header
|
|
205
199
|
* @instance
|
|
206
200
|
* @private
|
|
207
|
-
*
|
|
201
|
+
*
|
|
208
202
|
* @param {event} token The event to remove
|
|
209
203
|
*/
|
|
210
204
|
function removeEvent(token) {
|
|
211
205
|
if (token.element.removeEventListener) {
|
|
212
206
|
token.element.removeEventListener(token.event, token.handler);
|
|
213
207
|
} else {
|
|
214
|
-
token.element.detachEvent(
|
|
208
|
+
token.element.detachEvent("on" + token.event, token.handler);
|
|
215
209
|
}
|
|
216
210
|
}
|
|
217
|
-
|
|
218
|
-
})();
|
|
211
|
+
})();
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
(function() {
|
|
2
|
-
|
|
1
|
+
(function () {
|
|
3
2
|
/**
|
|
4
3
|
* @module inPageNav
|
|
5
4
|
*/
|
|
@@ -7,51 +6,55 @@
|
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Create in page nav from headings
|
|
10
|
-
*
|
|
9
|
+
*
|
|
11
10
|
* @memberof module:inPageNav
|
|
12
11
|
*/
|
|
13
|
-
inPageNav.init = function() {
|
|
14
|
-
var navs = document.querySelectorAll(
|
|
15
|
-
var mainEl = document.querySelector(
|
|
16
|
-
var isLandingPage = mainEl && mainEl.classList.contains(
|
|
12
|
+
inPageNav.init = function () {
|
|
13
|
+
var navs = document.querySelectorAll(".qld__inpage-nav-links");
|
|
14
|
+
var mainEl = document.querySelector("main.main");
|
|
15
|
+
var isLandingPage = mainEl && mainEl.classList.contains("landing");
|
|
17
16
|
|
|
18
17
|
// For all In-Page Nav components
|
|
19
|
-
navs.forEach(function(nav) {
|
|
20
|
-
|
|
21
|
-
var
|
|
22
|
-
var pageContent = isLandingPage ? mainEl : document.getElementById('content');
|
|
18
|
+
navs.forEach(function (nav) {
|
|
19
|
+
var headingSelector = nav.getAttribute("data-headingType") ? nav.getAttribute("data-headingType") : "h2";
|
|
20
|
+
var pageContent = isLandingPage ? mainEl : document.getElementById("content");
|
|
23
21
|
// Exclude Code CT, and accordion h3, h4, h5, h6
|
|
24
22
|
var headings = pageContent.querySelectorAll(
|
|
25
|
-
headingSelector +
|
|
26
|
-
|
|
27
|
-
);
|
|
28
|
-
|
|
23
|
+
headingSelector + ":not(.qld__inpage-nav-links__heading):not(.banner__heading):not(.qld__code *):not(.qld__accordion h3):not(.qld__accordion h4):not(.qld__accordion h5):not(.qld__accordion h6)",
|
|
24
|
+
);
|
|
29
25
|
|
|
30
|
-
|
|
31
|
-
list
|
|
26
|
+
// Get list element and clear existing children
|
|
27
|
+
var list = nav.querySelector(".qld__link-list");
|
|
28
|
+
list.replaceChildren();
|
|
32
29
|
|
|
33
30
|
if (headings.length === 0) {
|
|
34
|
-
nav.style.display =
|
|
31
|
+
nav.style.display = "none";
|
|
35
32
|
}
|
|
36
|
-
|
|
33
|
+
|
|
37
34
|
// For all headings (with matching data-headingType) in page content
|
|
38
|
-
headings.forEach(function(heading) {
|
|
35
|
+
headings.forEach(function (heading) {
|
|
39
36
|
var title = heading.innerText;
|
|
40
|
-
var id =
|
|
41
|
-
heading.setAttribute(
|
|
42
|
-
heading.setAttribute(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
var id = "section__" + title.toLowerCase().replace(/\s+/g, "-");
|
|
38
|
+
heading.setAttribute("id", id);
|
|
39
|
+
heading.setAttribute("tabindex", -1);
|
|
40
|
+
|
|
41
|
+
// Create link and anchor items to be added to the list
|
|
42
|
+
var link = document.createElement("li");
|
|
43
|
+
var anchor = document.createElement("a");
|
|
44
|
+
anchor.setAttribute("href", `#${id}`);
|
|
45
|
+
anchor.textContent = title;
|
|
46
|
+
link.appendChild(anchor);
|
|
47
|
+
|
|
48
|
+
// Append link item if it doesn't already exist in the list
|
|
49
|
+
if (list.querySelector(`a[href="#${id}"]`) === null) {
|
|
50
|
+
list.appendChild(link);
|
|
48
51
|
}
|
|
49
52
|
});
|
|
50
53
|
});
|
|
51
|
-
}
|
|
54
|
+
};
|
|
52
55
|
|
|
53
56
|
QLD.inPageNav = inPageNav;
|
|
54
57
|
|
|
55
58
|
// Init In Page Nav on document load
|
|
56
|
-
document.addEventListener(
|
|
57
|
-
})();
|
|
59
|
+
document.addEventListener("DOMContentLoaded", QLD.inPageNav.init);
|
|
60
|
+
})();
|
|
@@ -12,14 +12,24 @@
|
|
|
12
12
|
|
|
13
13
|
if (svgSelector) {
|
|
14
14
|
const svgPath = svgSelector.getAttribute("data-path");
|
|
15
|
-
const svgIcon = `<svg class="qld__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="${svgPath}#tick"></use></svg>`;
|
|
16
|
-
|
|
17
15
|
const thirdLevelLinks = document.querySelectorAll("ul ul ul a, ul ul ul span");
|
|
18
16
|
|
|
19
17
|
// Loop through each matching element and apply the style
|
|
20
18
|
thirdLevelLinks.forEach((link) => {
|
|
21
19
|
if (!link.querySelector("svg")) {
|
|
22
|
-
|
|
20
|
+
// Create <svg>
|
|
21
|
+
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
22
|
+
svg.setAttribute("class", "qld__icon");
|
|
23
|
+
svg.setAttribute("aria-hidden", "true");
|
|
24
|
+
svg.setAttribute("xmlns", "http://www.w3.org/2000/svg");
|
|
25
|
+
|
|
26
|
+
// Create <use>
|
|
27
|
+
const use = document.createElementNS("http://www.w3.org/2000/svg", "use");
|
|
28
|
+
use.setAttributeNS(null, "href", `${svgPath}#tick`);
|
|
29
|
+
|
|
30
|
+
// Append <use> to <svg>
|
|
31
|
+
svg.appendChild(use);
|
|
32
|
+
link.insertBefore(svg, link.firstChild);
|
|
23
33
|
}
|
|
24
34
|
link.parentElement.style.borderTopColor = "transparent";
|
|
25
35
|
});
|
|
@@ -113,18 +113,6 @@ $QLD-header-md: 72px;
|
|
|
113
113
|
&--open {
|
|
114
114
|
color: var(--QLD-color-light__heading);
|
|
115
115
|
}
|
|
116
|
-
|
|
117
|
-
&.qld__main-nav__item-link--open {
|
|
118
|
-
&:visited {
|
|
119
|
-
color: var(--QLD-color-light__link);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.qld__main-nav__item-link.qld__main-nav__item-link--open {
|
|
125
|
-
&:visited {
|
|
126
|
-
color: var(--QLD-color-light__link);
|
|
127
|
-
}
|
|
128
116
|
}
|
|
129
117
|
}
|
|
130
118
|
|
|
@@ -173,6 +161,10 @@ $QLD-header-md: 72px;
|
|
|
173
161
|
@include QLD-fontgrid(sm, heading);
|
|
174
162
|
height: 100%;
|
|
175
163
|
|
|
164
|
+
> a.qld__main-nav__item-link.qld__main-nav__item-link--open {
|
|
165
|
+
color: var(--QLD-color-light__heading);
|
|
166
|
+
}
|
|
167
|
+
|
|
176
168
|
&::before {
|
|
177
169
|
content: "";
|
|
178
170
|
display: block;
|
|
@@ -491,7 +483,6 @@ $QLD-header-md: 72px;
|
|
|
491
483
|
cursor: pointer;
|
|
492
484
|
align-items: center;
|
|
493
485
|
color: var(--QLD-color-light__link);
|
|
494
|
-
@include QLD-focus("light", false);
|
|
495
486
|
border-left: solid $QLD-border-width-thin $QLD-color-neutral--lighter;
|
|
496
487
|
|
|
497
488
|
&:hover {
|
|
@@ -585,6 +576,13 @@ $QLD-header-md: 72px;
|
|
|
585
576
|
@include QLD-media(lg) {
|
|
586
577
|
@include QLD-space(padding-bottom, 0unit);
|
|
587
578
|
}
|
|
579
|
+
|
|
580
|
+
// Reset the padding on list items in mobile as there is no arrow to obscure
|
|
581
|
+
li > a {
|
|
582
|
+
@include QLD-media(lg, "down") {
|
|
583
|
+
padding-right: 0;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
588
586
|
}
|
|
589
587
|
|
|
590
588
|
.qld__main-nav__cta-wrapper .qld__link-list {
|
|
@@ -598,6 +596,9 @@ $QLD-header-md: 72px;
|
|
|
598
596
|
background-color: var(--QLD-color-dark__background--shade);
|
|
599
597
|
}
|
|
600
598
|
.qld__main-nav__menu {
|
|
599
|
+
.qld__main-nav__item-title a.qld__main-nav__item-link.qld__main-nav__item-link--open {
|
|
600
|
+
color: var(--QLD-color-dark__heading);
|
|
601
|
+
}
|
|
601
602
|
.qld__main-nav__item-title::before {
|
|
602
603
|
background-color: var(--QLD-color-dark__border);
|
|
603
604
|
}
|
|
@@ -649,6 +650,71 @@ $QLD-header-md: 72px;
|
|
|
649
650
|
}
|
|
650
651
|
}
|
|
651
652
|
}
|
|
653
|
+
|
|
654
|
+
// Focus styles
|
|
655
|
+
.qld__main-nav__menu {
|
|
656
|
+
.qld__main-nav__menu-inner {
|
|
657
|
+
.qld__main-nav__item-link {
|
|
658
|
+
@include QLD-focus("light", false, -2px);
|
|
659
|
+
border-radius: 0;
|
|
660
|
+
|
|
661
|
+
@include QLD-media(lg, "down") {
|
|
662
|
+
@include QLD-focus("light", false, -3px);
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
.qld__main-nav__item-title:has(button.qld__main-nav__item-toggle) .qld__main-nav__item-link {
|
|
667
|
+
border-top-right-radius: 1rem;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
.qld__main-nav__item-toggle {
|
|
671
|
+
@include QLD-focus("light", false, -2px);
|
|
672
|
+
|
|
673
|
+
@include QLD-media(lg, "down") {
|
|
674
|
+
@include QLD-focus("light", false, 2px);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
.qld__main-nav__toggle {
|
|
679
|
+
@include QLD-focus("dark", false, -3px);
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
.qld__main-nav__cta-wrapper {
|
|
683
|
+
.qld__main-nav__item-link {
|
|
684
|
+
@include QLD-focus("dark", false, -3px);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
.qld__main-nav__menu-sub-inner {
|
|
689
|
+
li > a,
|
|
690
|
+
div.qld__main-nav__sub-footer a {
|
|
691
|
+
@include QLD-media(lg, "down") {
|
|
692
|
+
@include QLD-focus("light", false, -3px);
|
|
693
|
+
border-radius: 0;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
// Dark mode focus styles
|
|
700
|
+
&.qld__main-nav--dark,
|
|
701
|
+
&.qld__main-nav--dark--alt {
|
|
702
|
+
.qld__main-nav__menu-inner {
|
|
703
|
+
.qld__main-nav__item-link,
|
|
704
|
+
.qld__main-nav__item-toggle {
|
|
705
|
+
&:focus {
|
|
706
|
+
outline-color: var(--QLD-color-dark__focus);
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
.qld__link-list {
|
|
711
|
+
a:focus,
|
|
712
|
+
li > a:focus,
|
|
713
|
+
div.qld__main-nav__sub-footer a:focus {
|
|
714
|
+
outline-color: var(--QLD-color-dark__focus);
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
}
|
|
652
718
|
}
|
|
653
719
|
|
|
654
720
|
// Lock the scroll on the whole page when the menu is open
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
{{#each site.children}}
|
|
30
30
|
<li class="qld__main-nav__item {{#ifCond asset_assetid '==' ../current.data.assetid}}active{{/ifCond}}{{#ifCond asset_assetid '==' ../current.top.asset_assetid}}active{{/ifCond}}">
|
|
31
31
|
<div class="qld__main-nav__item-title">
|
|
32
|
-
<a class="qld__main-nav__item-link" {{#ifCond asset_assetid '==' ../current.data.assetid}}aria-current="page"{{/ifCond}} href="./?a={{asset_assetid}}"
|
|
32
|
+
<a class="qld__main-nav__item-link" {{#ifCond asset_assetid '==' ../current.data.assetid}}aria-current="page"{{/ifCond}} href="./?a={{asset_assetid}}">
|
|
33
33
|
<span class="qld__main-nav__item-text" data-name="{{{asset_short_name}}}">{{{asset_short_name}}}</span>
|
|
34
34
|
</a>
|
|
35
35
|
</div>
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
{{#if site.metadata.mainNavCtaOne.value}}
|
|
51
51
|
<li class="qld__main-nav__item qld__main-nav__item--cta {{#ifCond site.metadata.mainNavCtaOne.value '==' ../current.data.assetid}}active{{/ifCond}}">
|
|
52
52
|
<div class="qld__main-nav__item-title">
|
|
53
|
-
<a class="qld__main-nav__item-link" {{#ifCond site.metadata.mainNavCtaOne.value '==' ../current.data.assetid}}aria-current="page"{{/ifCond}} href="./?a={{site.metadata.mainNavCtaOne.value}}"
|
|
53
|
+
<a class="qld__main-nav__item-link" {{#ifCond site.metadata.mainNavCtaOne.value '==' ../current.data.assetid}}aria-current="page"{{/ifCond}} href="./?a={{site.metadata.mainNavCtaOne.value}}">
|
|
54
54
|
{{#if site.metadata.mainNavCtaOneIcon.value}}
|
|
55
|
-
<
|
|
55
|
+
<svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#{{site.metadata.mainNavCtaOneIcon.value}}"></use></svg>
|
|
56
56
|
{{/if}}
|
|
57
57
|
<span class="qld__main-nav__item-text" data-name="{{{site.metadata.mainNavCtaOneText.value}}}">{{{site.metadata.mainNavCtaOneText.value}}}</span>
|
|
58
58
|
</a>
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
{{#if site.metadata.mainNavCtaTwo.value}}
|
|
63
63
|
<li class="qld__main-nav__item qld__main-nav__item--cta {{#ifCond site.metadata.mainNavCtaTwo.value '==' ../current.data.assetid}}active{{/ifCond}}">
|
|
64
64
|
<div class="qld__main-nav__item-title">
|
|
65
|
-
<a class="qld__main-nav__item-link" {{#ifCond site.metadata.mainNavCtaTwo.value '==' ../current.data.assetid}}aria-current="page"{{/ifCond}} href="./?a={{site.metadata.mainNavCtaTwo.value}}"
|
|
65
|
+
<a class="qld__main-nav__item-link" {{#ifCond site.metadata.mainNavCtaTwo.value '==' ../current.data.assetid}}aria-current="page"{{/ifCond}} href="./?a={{site.metadata.mainNavCtaTwo.value}}">
|
|
66
66
|
{{#if site.metadata.mainNavCtaTwoIcon.value}}
|
|
67
|
-
<
|
|
67
|
+
<svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#{{site.metadata.mainNavCtaTwoIcon.value}}"></use></svg>
|
|
68
68
|
{{/if}}
|
|
69
69
|
<span class="qld__main-nav__item-text" data-name="{{{site.metadata.mainNavCtaTwoText.value}}}">{{{site.metadata.mainNavCtaTwoText.value}}}</span>
|
|
70
70
|
</a>
|