@qld-gov-au/qgds-bootstrap5 1.1.39 → 1.1.41
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/dist/assets/components/bs5/backToTop/backToTop.hbs +1 -1
- package/dist/assets/components/bs5/breadcrumbs/breadcrumbs.hbs +19 -15
- package/dist/assets/components/bs5/button/button.hbs +48 -30
- package/dist/assets/components/bs5/containerLayout/containerLayout.hbs +100 -0
- package/dist/assets/components/bs5/contentFooter/contentFooter.hbs +15 -4
- package/dist/assets/components/bs5/formcheck/formcheck.hbs +1 -1
- package/dist/assets/components/bs5/head/head.hbs +1 -1
- package/dist/assets/components/bs5/iconLink/iconLink.hbs +41 -0
- package/dist/assets/components/bs5/logo/logo.hbs +7 -0
- package/dist/assets/components/bs5/logo/logoCOALandscape.hbs +58 -0
- package/dist/assets/components/bs5/logo/logoCOALandscape2Lines.hbs +58 -0
- package/dist/assets/components/bs5/navbar/navbar.hbs +65 -245
- package/dist/assets/components/bs5/pageLayout/pageLayout.hbs +11 -10
- package/dist/assets/components/bs5/pageLayout/templates/contentPageWithForm.hbs +78 -0
- package/dist/assets/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +103 -0
- package/dist/assets/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +61 -0
- package/dist/assets/components/bs5/searchInput/searchInput.hbs +8 -10
- package/dist/assets/css/qld.bootstrap.css +1 -1
- package/dist/assets/css/qld.bootstrap.css.map +3 -3
- package/dist/assets/js/bootstrap.bundle.js +3 -6
- package/dist/assets/js/bootstrap.bundle.js.map +1 -1
- package/dist/assets/js/bootstrap.bundle.min.js +2 -2
- package/dist/assets/js/bootstrap.bundle.min.js.map +1 -1
- package/dist/assets/js/bootstrap.js +3 -6
- package/dist/assets/js/bootstrap.min.js +2 -2
- package/dist/assets/js/bootstrap.min.js.map +1 -1
- package/dist/assets/js/handlebars.helpers.bundle.js +1 -1
- package/dist/assets/js/handlebars.helpers.bundle.js.map +3 -3
- package/dist/assets/js/handlebars.helpers.js +51 -40
- package/dist/assets/js/handlebars.init.min.js +698 -347
- package/dist/assets/js/handlebars.init.min.js.map +4 -4
- package/dist/assets/js/handlebars.partials.js +16 -0
- package/dist/assets/js/qld.bootstrap.min.js +9 -9
- package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
- package/dist/assets/node/handlebars.init.min.js +359 -72
- package/dist/assets/node/handlebars.init.min.js.map +3 -3
- package/dist/components/bs5/backToTop/backToTop.hbs +1 -1
- package/dist/components/bs5/breadcrumbs/breadcrumbs.hbs +19 -15
- package/dist/components/bs5/button/button.hbs +48 -30
- package/dist/components/bs5/containerLayout/containerLayout.hbs +100 -0
- package/dist/components/bs5/contentFooter/contentFooter.hbs +15 -4
- package/dist/components/bs5/formcheck/formcheck.hbs +1 -1
- package/dist/components/bs5/head/head.hbs +1 -1
- package/dist/components/bs5/iconLink/iconLink.hbs +41 -0
- package/dist/components/bs5/logo/logo.hbs +7 -0
- package/dist/components/bs5/logo/logoCOALandscape.hbs +58 -0
- package/dist/components/bs5/logo/logoCOALandscape2Lines.hbs +58 -0
- package/dist/components/bs5/navbar/navbar.hbs +65 -245
- package/dist/components/bs5/pageLayout/pageLayout.hbs +11 -10
- package/dist/components/bs5/pageLayout/templates/contentPageWithForm.hbs +78 -0
- package/dist/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +103 -0
- package/dist/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +61 -0
- package/dist/components/bs5/searchInput/searchInput.hbs +8 -10
- package/dist/components/handlebars.helpers.js +51 -40
- package/dist/components/handlebars.partials.js +16 -0
- package/dist/package.json +2 -2
- package/dist/sample-data/breadcrumbs/breadcrumbs.data.json +113 -49
- package/dist/sample-data/button/button.data.json +10 -8
- package/dist/sample-data/contentFooter/contentFooter.data.json +9 -1
- package/dist/sample-data/formcheck/stories/checkbox/checkbox.data.json +51 -46
- package/dist/sample-data/formcheck/stories/radio/radio.data.json +51 -46
- package/dist/sample-data/iconLink/iconLink.data.json +77 -0
- package/dist/sample-data/logo/logo.data.json +6 -0
- package/dist/sample-data/navbar/navbar.data.json +191 -0
- package/dist/sample-data/searchInput/searchInput.data.json +2 -3
- package/dist/sample-data/tabs/tabs.data.json +45 -44
- package/package.json +2 -2
- package/src/components/bs5/backToTop/backToTop.hbs +1 -1
- package/src/components/bs5/banner/banner.scss +52 -46
- package/src/components/bs5/breadcrumbs/__snapshots__/breadcrumbs.test.js.snap +49 -0
- package/src/components/bs5/breadcrumbs/breadcrumbs.data.json +113 -49
- package/src/components/bs5/breadcrumbs/breadcrumbs.functions.js +169 -0
- package/src/components/bs5/breadcrumbs/breadcrumbs.hbs +19 -15
- package/src/components/bs5/breadcrumbs/breadcrumbs.scss +164 -43
- package/src/components/bs5/breadcrumbs/breadcrumbs.stories.js +16 -2
- package/src/components/bs5/breadcrumbs/breadcrumbs.test.js +136 -0
- package/src/components/bs5/button/button.data.json +10 -8
- package/src/components/bs5/button/button.hbs +48 -30
- package/src/components/bs5/button/button.scss +365 -244
- package/src/components/bs5/button/button.stories.js +116 -30
- package/src/components/bs5/containerLayout/containerLayout.hbs +100 -0
- package/src/components/bs5/containerLayout/containerLayout.stories.js +83 -0
- package/src/components/bs5/contentFooter/contentFooter.data.json +9 -1
- package/src/components/bs5/contentFooter/contentFooter.hbs +15 -4
- package/src/components/bs5/formcheck/formcheck.hbs +1 -1
- package/src/components/bs5/formcheck/formcheck.scss +161 -139
- package/src/components/bs5/formcheck/stories/checkbox/checkbox.data.json +51 -46
- package/src/components/bs5/formcheck/stories/radio/radio.data.json +51 -46
- package/src/components/bs5/iconLink/iconLink.data.json +77 -0
- package/src/components/bs5/iconLink/iconLink.hbs +41 -0
- package/src/components/bs5/iconLink/iconLink.js +20 -0
- package/src/components/bs5/iconLink/iconLink.mdx +16 -0
- package/src/components/bs5/iconLink/iconLink.scss +57 -0
- package/src/components/bs5/iconLink/iconLink.stories.js +127 -0
- package/src/components/bs5/icons/icons.scss +79 -72
- package/src/components/bs5/inpagenav/inpagenav.scss +37 -37
- package/src/components/bs5/logo/Logo.js +20 -0
- package/src/components/bs5/logo/Logo.mdx +10 -0
- package/src/components/bs5/logo/logo.data.json +6 -0
- package/src/components/bs5/logo/logo.hbs +7 -0
- package/src/components/bs5/logo/logo.stories.js +32 -0
- package/src/components/bs5/logo/logoCOALandscape.hbs +58 -0
- package/src/components/bs5/logo/logoCOALandscape2Lines.hbs +58 -0
- package/src/components/bs5/navbar/Navbar.js +2 -9
- package/src/components/bs5/navbar/navbar.data.json +191 -0
- package/src/components/bs5/navbar/navbar.functions.js +48 -196
- package/src/components/bs5/navbar/navbar.hbs +65 -245
- package/src/components/bs5/navbar/navbar.scss +585 -518
- package/src/components/bs5/navbar/navbar.stories.js +532 -0
- package/src/components/bs5/pageLayout/ContentPageWithForm.js +8 -0
- package/src/components/bs5/pageLayout/ContentPageWithSideNavigation.js +8 -0
- package/src/components/bs5/pageLayout/FullWidthLandingPage.js +8 -0
- package/src/components/bs5/pageLayout/pageLayout.hbs +11 -10
- package/src/components/bs5/pageLayout/pageLayout.stories.js +230 -6
- package/src/components/bs5/pageLayout/templates/contentPageWithForm.hbs +78 -0
- package/src/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +103 -0
- package/src/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +61 -0
- package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +9 -8
- package/src/components/bs5/searchInput/search.functions.js +94 -63
- package/src/components/bs5/searchInput/searchInput.data.json +2 -3
- package/src/components/bs5/searchInput/searchInput.hbs +8 -10
- package/src/components/bs5/searchInput/searchInput.scss +296 -255
- package/src/components/bs5/searchInput/searchInput.test.js +98 -89
- package/src/components/bs5/sidenav/sidenav.stories.js +17 -15
- package/src/components/bs5/tabs/tabs.data.json +45 -44
- package/src/components/bs5/tabs/tabs.scss +544 -500
- package/src/components/bs5/tabs/tabs.stories.js +81 -51
- package/src/components/common/footer/footer.scss +137 -140
- package/src/components/common/layout/container.scss +22 -0
- package/src/components/common/layout/content.scss +11 -4
- package/src/components/common/layout/grid.scss +26 -0
- package/src/css/main.scss +5 -4
- package/src/css/qld-variables.scss +102 -81
- package/src/js/handlebars.helpers.js +51 -40
- package/src/js/handlebars.partials.js +16 -0
- package/src/js/qld.bootstrap.js +17 -9
- package/src/components/bs5/backToTop/backToTop.scss +0 -9
- package/src/components/bs5/breadcrumbs/breadcrumb.functions.js +0 -95
- package/src/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.stories.js +0 -34
- package/src/components/bs5/contentFooterWrapper/contentFooterWrapper.stories.js +0 -36
- package/src/components/bs5/contentWrapper/contentWrapper.stories.js +0 -65
- package/src/components/bs5/fullPageWrapper/fullPage.stories.js +0 -63
- package/src/components/bs5/mainContainerWrapper/mainContainerWrapper.stories.js +0 -50
- package/src/components/bs5/navbar/_colours.scss +0 -85
- package/src/components/bs5/navbar/_icons.scss +0 -64
- package/src/components/bs5/sidenavWrapper/SidenavWrapper.mdx +0 -11
- package/src/components/bs5/sidenavWrapper/sidenavWrapper.stories.js +0 -65
- package/src/stories/integration/MainIntegration.js +0 -28
- package/src/stories/integration/MainIntegration.mdx +0 -10
- package/src/stories/integration/breadcrumb.data.json +0 -28
- package/src/stories/integration/content.data.json +0 -3
- package/src/stories/integration/contentFooter.data.json +0 -3
- package/src/stories/integration/footer.data.json +0 -111
- package/src/stories/integration/globalAlert.data.json +0 -10
- package/src/stories/integration/header.data.json +0 -173
- package/src/stories/integration/inpagenav.data.json +0 -26
- package/src/stories/integration/integration.stories.js +0 -147
- package/src/stories/integration/main.hbs +0 -13
- package/src/stories/integration/navigation.data.json +0 -22
- package/src/stories/integration/search.data.json +0 -20
- package/src/stories/integration/sidenav.data.json +0 -88
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
2
|
-
// Widgets
|
|
3
|
-
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
4
|
-
|
|
5
|
-
.back-to-top {
|
|
6
|
-
--margin-top: 2rem;
|
|
7
|
-
margin-top: var(--margin-top);
|
|
8
|
-
width: fit-content;
|
|
9
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Initialise the Breadcrumb component.
|
|
3
|
-
* Shorten long breadcrumbs when required.
|
|
4
|
-
*
|
|
5
|
-
* @memberof module:Breadcrumb
|
|
6
|
-
*
|
|
7
|
-
* @returns {void} Returns early when breadcrumb does not exist or its length is within set maxLength.
|
|
8
|
-
*/
|
|
9
|
-
export function initBreadcrumb() {
|
|
10
|
-
// Set the standard breadcrumb length.
|
|
11
|
-
const maxLength = 4;
|
|
12
|
-
|
|
13
|
-
// Get the breadcrumb DOM element.
|
|
14
|
-
const breadcrumb = document.querySelector(".breadcrumb");
|
|
15
|
-
if (!breadcrumb) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const breadcrumbList = breadcrumb.querySelectorAll(".breadcrumb-item");
|
|
19
|
-
|
|
20
|
-
// Return when breadcrumb does not exist.
|
|
21
|
-
if (!breadcrumbList || !breadcrumbList.length) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
// Shorten breadcrumb.
|
|
25
|
-
breadcrumbShorten(breadcrumbList, maxLength);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Shorten long breadcrumb lists
|
|
30
|
-
*
|
|
31
|
-
* @memberof module:Breadcrumb
|
|
32
|
-
*
|
|
33
|
-
* @param {Element} breadcrumbList - Breadcrumb DOM element.
|
|
34
|
-
* @param {number} maxLength - Standard maximum length for breadcrumb.
|
|
35
|
-
* @returns {void} Returns early when breadcrumb does not exist or its length is within set maxLength.
|
|
36
|
-
*/
|
|
37
|
-
export function breadcrumbShorten(breadcrumbList, maxLength = 4) {
|
|
38
|
-
// No shortening is required when breadcrumb does not exist or its length is within the maximum range.
|
|
39
|
-
if (!breadcrumbList || breadcrumbList.length <= maxLength) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
breadcrumbList.forEach((crumb, index) => {
|
|
44
|
-
if (index > 1 && index < breadcrumbList.length - 2) {
|
|
45
|
-
crumb.classList.add("shortened");
|
|
46
|
-
crumb.querySelector("a").setAttribute("tabindex", -1);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (index === 1) {
|
|
50
|
-
let expandCrumb = document.createElement("li"),
|
|
51
|
-
expandButton = document.createElement("a");
|
|
52
|
-
|
|
53
|
-
expandCrumb.classList.add("breadcrumb-item", "breadcrumb-toggle");
|
|
54
|
-
|
|
55
|
-
expandButton.setAttribute("href", "javascript:void(0)");
|
|
56
|
-
expandButton.setAttribute("aria-label", "Expand the breadcrumbs");
|
|
57
|
-
//expandButton.textContent = '[...]'
|
|
58
|
-
expandButton.addEventListener("click", breadcrumbExpand);
|
|
59
|
-
|
|
60
|
-
expandCrumb.appendChild(expandButton);
|
|
61
|
-
crumb.after(expandCrumb);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Expand shortened breadcrumb lists
|
|
68
|
-
*
|
|
69
|
-
* @memberof module:Breadcrumb
|
|
70
|
-
*
|
|
71
|
-
* @param {Event} event - The event that triggered this function.
|
|
72
|
-
* @returns {void} Returns early when the breadcrumb does not exist or is empty.
|
|
73
|
-
*/
|
|
74
|
-
export function breadcrumbExpand(event) {
|
|
75
|
-
const breadcrumb = event.target.closest(".breadcrumb");
|
|
76
|
-
if (!breadcrumb) {
|
|
77
|
-
console.log("breadcrumbExpand: Breadcrumb does not exist.");
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const breadcrumbList = breadcrumb.querySelectorAll(".breadcrumb-item");
|
|
81
|
-
|
|
82
|
-
if (!breadcrumbList || !breadcrumbList.length) {
|
|
83
|
-
console.log("breadcrumbExpand: Breadcrumb does not exist or is empty.");
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
breadcrumbList[0].parentElement.classList.add("expanded");
|
|
88
|
-
|
|
89
|
-
breadcrumbList.forEach((crumb, index) => {
|
|
90
|
-
if (index > 1 && index < breadcrumbList.length - 2) {
|
|
91
|
-
crumb.classList.remove("shortened");
|
|
92
|
-
crumb.querySelector("a").setAttribute("tabindex", 0);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { forGov } from "../breadcrumbs/breadcrumbs.data.json";
|
|
2
|
-
import { BreadcrumbsWrapperTest } from "./breadcrumbsWrapper.test.js";
|
|
3
|
-
const defaultData = { breadcrumbs: forGov };
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: "4. Wrappers/Components/Breadcrumbs Wrapper",
|
|
7
|
-
render: (args) => {
|
|
8
|
-
return new BreadcrumbsWrapperTest(args).html;
|
|
9
|
-
},
|
|
10
|
-
args: defaultData,
|
|
11
|
-
argTypes: {
|
|
12
|
-
},
|
|
13
|
-
parameters: {
|
|
14
|
-
docs: {
|
|
15
|
-
controls: {
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
decorators: [
|
|
21
|
-
(Story) => {
|
|
22
|
-
return `
|
|
23
|
-
${Story()}
|
|
24
|
-
`;
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Default head metadata
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
export const Default = {};
|
|
34
|
-
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import defaultdata from "./../contentFooter/contentFooter.data.json";
|
|
2
|
-
import { ContentFooterWrapperTest } from "./contentFooterWrapper.test.js";
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
title: "4. Wrappers/Components/Content Footer Wrapper",
|
|
6
|
-
render: (args) => {
|
|
7
|
-
return new ContentFooterWrapperTest(args).html;
|
|
8
|
-
},
|
|
9
|
-
|
|
10
|
-
argTypes: {
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
parameters: {
|
|
14
|
-
docs: {
|
|
15
|
-
controls: {
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Default head metadata
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
export const Default = {
|
|
27
|
-
args: defaultdata,
|
|
28
|
-
decorators: [
|
|
29
|
-
(Story) => {
|
|
30
|
-
return `
|
|
31
|
-
${Story()}
|
|
32
|
-
`;
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
};
|
|
36
|
-
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
// ComponentExample.stories.js
|
|
2
|
-
import { ContentWrapperTest } from "./ContentWrapper.test.js";
|
|
3
|
-
import defaultdata from "./contentWrapper.data.json";
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: "4. Wrappers/Components/Content Wrapper",
|
|
7
|
-
render: (args) => {
|
|
8
|
-
return new ContentWrapperTest(args).html;
|
|
9
|
-
},
|
|
10
|
-
|
|
11
|
-
argTypes: {
|
|
12
|
-
title: { control: 'text' },
|
|
13
|
-
},
|
|
14
|
-
parameters: {
|
|
15
|
-
docs: {
|
|
16
|
-
description: {
|
|
17
|
-
component: `
|
|
18
|
-
This is a partial-block to embed more content inside another partial. See [Handlebars Partial Blocks](https://handlebarsjs.com/guide/partials.html#partial-blocks) for more details.
|
|
19
|
-
pass "title" to set title at top content block.
|
|
20
|
-
`,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Default Content Wrapper
|
|
28
|
-
*/
|
|
29
|
-
export const Default = {
|
|
30
|
-
args: defaultdata,
|
|
31
|
-
decorators: [
|
|
32
|
-
(Story) => {
|
|
33
|
-
return `
|
|
34
|
-
<div class="container-fluid">
|
|
35
|
-
<div class="row">
|
|
36
|
-
${Story()}
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
`;
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Dark Content Wrapper
|
|
47
|
-
*/
|
|
48
|
-
export const Dark = {
|
|
49
|
-
args: defaultdata,
|
|
50
|
-
decorators: [
|
|
51
|
-
(Story) => {
|
|
52
|
-
return `
|
|
53
|
-
<div class="container-fluid">
|
|
54
|
-
<div class="row">
|
|
55
|
-
<div class="col-lg-4 col-md-5">
|
|
56
|
-
<div class="dark">
|
|
57
|
-
${Story()}
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
`;
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { FullPageTest } from "./fullPage.test.js";
|
|
2
|
-
import { dcTerms } from '../metaDcTerms/MetaDcTerms.data.json';
|
|
3
|
-
import metaOpenGraphData from '../metaOpenGraph/MetaOpenGraph.data.json';
|
|
4
|
-
import masterbrand_variant from '../header/header.variant.masterBrand.data.json';
|
|
5
|
-
import menu_state from "../navbar/navbar.variant.menuState.data.json";
|
|
6
|
-
import breadcrumbsData from "../breadcrumbs/breadcrumbs.data.json";
|
|
7
|
-
import searchData from "../searchInput/searchInput.data.json";
|
|
8
|
-
import globalAlertData from "../globalAlert/globalAlert.data.json";
|
|
9
|
-
import sidenavData from "../sidenav/sidenav.data.json";
|
|
10
|
-
import contentFooterData from "../contentFooter/contentFooter.data.json";
|
|
11
|
-
import footerData from "../footer/footer.data.json";
|
|
12
|
-
|
|
13
|
-
const defaultData = {
|
|
14
|
-
cdn: ".", //for StoryBook it's ., for normal usage "PROD"
|
|
15
|
-
title: "title goes here",
|
|
16
|
-
"icon-root": masterbrand_variant["icon-root"],
|
|
17
|
-
icons: masterbrand_variant.icons,
|
|
18
|
-
description: "my description",
|
|
19
|
-
uri: "http://localhost/uri/here",
|
|
20
|
-
dcTerms: dcTerms,
|
|
21
|
-
seo: metaOpenGraphData.seo,
|
|
22
|
-
og: metaOpenGraphData.og,
|
|
23
|
-
header: masterbrand_variant,
|
|
24
|
-
search: searchData,
|
|
25
|
-
navbar: menu_state,
|
|
26
|
-
breadcrumbs: breadcrumbsData.forGov,
|
|
27
|
-
globalAlert: globalAlertData.critical,
|
|
28
|
-
sidenav: sidenavData,
|
|
29
|
-
contentFooter: contentFooterData,
|
|
30
|
-
footer: footerData,
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export default {
|
|
34
|
-
title: "4. Wrappers/Full Page",
|
|
35
|
-
render: (args) => {
|
|
36
|
-
return new FullPageTest(args).html;
|
|
37
|
-
},
|
|
38
|
-
args: defaultData,
|
|
39
|
-
argTypes: {
|
|
40
|
-
},
|
|
41
|
-
parameters: {
|
|
42
|
-
layout: 'fullscreen',
|
|
43
|
-
docs: {
|
|
44
|
-
controls: {
|
|
45
|
-
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
decorators: [
|
|
50
|
-
(Story) => {
|
|
51
|
-
return `
|
|
52
|
-
${Story()}
|
|
53
|
-
`;
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Default
|
|
60
|
-
*
|
|
61
|
-
*/
|
|
62
|
-
export const Default = {};
|
|
63
|
-
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { MainContainerWrapperTest } from "./mainContainerWrapper.test.js";
|
|
2
|
-
|
|
3
|
-
//Data
|
|
4
|
-
import masterbrand_variant from '../header/header.variant.masterBrand.data.json';
|
|
5
|
-
import menu_state from "../navbar/navbar.variant.menuState.data.json";
|
|
6
|
-
import breadcrumbsData from "../breadcrumbs/breadcrumbs.data.json";
|
|
7
|
-
import searchData from "../searchInput/searchInput.data.json";
|
|
8
|
-
import globalAlertData from "../globalAlert/globalAlert.data.json";
|
|
9
|
-
import sidenavData from "../sidenav/sidenav.data.json";
|
|
10
|
-
import contentFooterData from "../contentFooter/contentFooter.data.json";
|
|
11
|
-
import footerData from "../footer/footer.data.json";
|
|
12
|
-
|
|
13
|
-
const defaultData = {
|
|
14
|
-
cdn: ".", //for storybook it's ., for normal usage "PROD"
|
|
15
|
-
title: "title goes here",
|
|
16
|
-
"icon-root": masterbrand_variant["icon-root"],
|
|
17
|
-
icons: masterbrand_variant.icons,
|
|
18
|
-
header: masterbrand_variant,
|
|
19
|
-
search: searchData,
|
|
20
|
-
navbar: menu_state,
|
|
21
|
-
breadcrumbs: breadcrumbsData.forGov,
|
|
22
|
-
globalAlert: globalAlertData.critical,
|
|
23
|
-
sidenav: sidenavData,
|
|
24
|
-
contentFooter: contentFooterData,
|
|
25
|
-
footer: footerData,
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export default {
|
|
29
|
-
title: "4. Wrappers/Main Container Wrapper",
|
|
30
|
-
render: (args) => {
|
|
31
|
-
return new MainContainerWrapperTest(args).html;
|
|
32
|
-
},
|
|
33
|
-
args: defaultData,
|
|
34
|
-
argTypes: {
|
|
35
|
-
},
|
|
36
|
-
parameters: {
|
|
37
|
-
layout: 'fullscreen',
|
|
38
|
-
docs: {
|
|
39
|
-
controls: {
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Default head metadata
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
export const Default = {};
|
|
50
|
-
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
.navbar {
|
|
2
|
-
// ------------------------------------------------------------------------------------------------------------------
|
|
3
|
-
// 1. Assign local var using qgds-tokens
|
|
4
|
-
// ------------------------------------------------------------------------------------------------------------------
|
|
5
|
-
--#{$prefix}navbar-border-width: 0.5rem;
|
|
6
|
-
--#{$prefix}navbar-link-color: var(--#{$prefix}color-default-color-light-link-default);
|
|
7
|
-
--#{$prefix}navbar-link-color-hover: var(--#{$prefix}color-default-color-light-action-primary-hover);
|
|
8
|
-
--#{$prefix}navbar-text-color: var(--#{$prefix}color-default-color-light-text-default);
|
|
9
|
-
--#{$prefix}navbar-text-focus-color: var(--#{$prefix}color-default-color-light-focus-default);
|
|
10
|
-
--#{$prefix}navbar-nav-text-color: var(--#{$prefix}color-default-color-light-text-default);
|
|
11
|
-
--#{$prefix}navbar-bg-color: var(--#{$prefix}color-default-color-light-background-default-shade);
|
|
12
|
-
--#{$prefix}navbar-dropdown-bg-color: var(--#{$prefix}color-default-color-light-background-default);
|
|
13
|
-
--#{$prefix}navbar-menuitem-active: var(--#{$prefix}core-default-color-neutral-white);
|
|
14
|
-
--#{$prefix}navbar-menuitem-hover: var(--#{$prefix}core-default-color-neutral-lighter);
|
|
15
|
-
--#{$prefix}navbar-menuitem-hover-border: var(--#{$prefix}color-default-color-light-action-primary-hover);
|
|
16
|
-
--#{$prefix}navbar-border-color: var(--#{$prefix}color-default-color-light-border-default);
|
|
17
|
-
--#{$prefix}navbar-border-accent: var(--#{$prefix}color-default-color-light-accent-design-accent);
|
|
18
|
-
--#{$prefix}navbar-home-icon-color: var(--#{$prefix}color-default-color-light-action-secondary);
|
|
19
|
-
--#{$prefix}navbar-home-icon-color-hover: var(--#{$prefix}color-default-color-light-action-primary-hover);
|
|
20
|
-
--#{$prefix}navbar-home-icon-color-active: var(--#{$prefix}color-default-color-light-text-heading);
|
|
21
|
-
--#{$prefix}navbar-hover-color: var(--#{$prefix}color-default-color-light-action-primary-hover);
|
|
22
|
-
--#{$prefix}navbar-icon-hover: var(--#{$prefix}color-default-color-dark-action-primary-hover);
|
|
23
|
-
--#{$prefix}navbar-svg-color: var(--#{$prefix}core-default-color-brand-secondary-darkgreen);
|
|
24
|
-
|
|
25
|
-
// Mobile default is dark
|
|
26
|
-
--#{$prefix}navbar-overlay: var(--#{$prefix}color-default-color-dark-background-alt-shade);
|
|
27
|
-
--#{$prefix}navbar-mobile-home-icon-color: var(--#{$prefix}color-default-color-light-action-secondary);
|
|
28
|
-
--#{$prefix}navbar-mobile-header-bg-color: var(--#{$prefix}color-default-color-dark-background-default);
|
|
29
|
-
--#{$prefix}navbar-mobile-svg-color: var(--#{$prefix}color-default-color-dark-action-secondary);
|
|
30
|
-
--#{$prefix}navbar-mobile-text-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
31
|
-
--#{$prefix}navbar-mobile-border-color: var(--#{$prefix}color-default-color-dark-border-default);
|
|
32
|
-
--#{$prefix}navbar-mobile-menuitem-hover: var(--#{$prefix}color-default-color-dark-background-default-shade);
|
|
33
|
-
--#{$prefix}navbar-mobile-bg-color: var(--#{$prefix}color-default-color-dark-background-default);
|
|
34
|
-
--#{$prefix}navbar-mobile-cta-bg-color: var(--#{$prefix}color-default-color-dark-background-default-shade);
|
|
35
|
-
--#{$prefix}navbar-mobile-cta-bg-color-open: var(--#{$prefix}color-default-color-dark-background-default);
|
|
36
|
-
|
|
37
|
-
// Toggle icons for mobile
|
|
38
|
-
--#{$prefix}navbar-mobile-menu-toggle-boxshadow: 0px 1px 2px rgba(0, 0, 0, .2), 0px 1px 3px 1px rgba(0, 0, 0, .1);
|
|
39
|
-
--#{$prefix}navbar-mobile-menu-toggle-boxshadow__hover: 0px 4px 8px 3px rgba(0, 0, 0, .1), 0px 1px 3px rgba(0, 0, 0, .2);
|
|
40
|
-
--#{$prefix}navbar-mobile-menu-toggle-bg: var(--#{$prefix}color-default-color-light-background-default);
|
|
41
|
-
|
|
42
|
-
// ------------------------------------------------------------------------------------------------------------------
|
|
43
|
-
// 3. Modes
|
|
44
|
-
// ------------------------------------------------------------------------------------------------------------------
|
|
45
|
-
.alt &,
|
|
46
|
-
.light & {
|
|
47
|
-
--#{$prefix}navbar-title-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
48
|
-
--#{$prefix}navbar-home-icon-color: var(--#{$prefix}color-default-color-light-text-default);
|
|
49
|
-
--#{$prefix}navbar-border-color: var(--#{$prefix}color-default-color-light-border-default);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.dark &,
|
|
53
|
-
.dark-alt & {
|
|
54
|
-
// Mobile default is dark
|
|
55
|
-
--#{$prefix}navbar-mobile-home-icon-color: var(--#{$prefix}color-default-color-dark-action-secondary);
|
|
56
|
-
--#{$prefix}navbar-mobile-menu-toggle-bg: var(--#{$prefix}color-default-color-dark-background-alt);
|
|
57
|
-
--#{$prefix}navbar-mobile-header-bg-color: var(--#{$prefix}color-default-color-dark-background-alt);
|
|
58
|
-
--#{$prefix}navbar-mobile-svg-color: var(--#{$prefix}color-default-color-dark-action-secondary);
|
|
59
|
-
--#{$prefix}navbar-mobile-text-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
60
|
-
--#{$prefix}navbar-mobile-border-color: var(--#{$prefix}color-default-color-dark-border-default);
|
|
61
|
-
--#{$prefix}navbar-mobile-menuitem-hover: var(--#{$prefix}color-default-color-dark-background-alt-shade);
|
|
62
|
-
|
|
63
|
-
--#{$prefix}navbar-bg-color: var(--#{$prefix}color-default-color-dark-background-default-shade);
|
|
64
|
-
--#{$prefix}navbar-dropdown-bg-color: var(--#{$prefix}color-default-color-dark-background-alt);
|
|
65
|
-
--#{$prefix}navbar-menuitem-hover: var(--#{$prefix}color-default-color-dark-background-alt);
|
|
66
|
-
--#{$prefix}navbar-title-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
67
|
-
--#{$prefix}navbar-text-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
68
|
-
--#{$prefix}navbar-nav-text-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
69
|
-
--#{$prefix}navbar-home-icon-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
70
|
-
--#{$prefix}navbar-home-icon-color-active: var(--#{$prefix}color-default-color-dark-text-heading);
|
|
71
|
-
--#{$prefix}navbar-home-icon-color-hover: var(--#{$prefix}color-default-color-dark-action-primary-hover);
|
|
72
|
-
|
|
73
|
-
--#{$prefix}navbar-link-color: var(--#{$prefix}core-default-color-neutral-white);
|
|
74
|
-
--#{$prefix}navbar-link-color-hover: var(--#{$prefix}core-default-color-neutral-white);
|
|
75
|
-
|
|
76
|
-
--#{$prefix}navbar-border-color: var(--#{$prefix}color-default-color-dark-border-default);
|
|
77
|
-
--#{$prefix}navbar-menuitem-active: var(--#{$prefix}core-default-color-neutral-white);
|
|
78
|
-
--#{$prefix}navbar-menuitem-active: var(--#{$prefix}color-default-color-dark-background-alt);
|
|
79
|
-
--#{$prefix}navbar-menuitem-hover-border: var(--#{$prefix}color-default-color-dark-action-secondary-hover);
|
|
80
|
-
--#{$prefix}navbar-icon-hover: var(--#{$prefix}color-default-color-dark-action-secondary);
|
|
81
|
-
--#{$prefix}navbar-text-focus-color: var(--#{$prefix}color-default-color-dark-focus-default);
|
|
82
|
-
--#{$prefix}navbar-svg-color: var(--#{$prefix}color-default-color-dark-action-secondary);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// ------------------------------------------------------------------------------------------------------------------
|
|
2
|
-
// 1. Basic icons for navbar component
|
|
3
|
-
// ------------------------------------------------------------------------------------------------------------------
|
|
4
|
-
.navbar {
|
|
5
|
-
.dropdown-toggle {
|
|
6
|
-
.toggle_icon {
|
|
7
|
-
color: var(--#{$prefix}navbar-svg-color);
|
|
8
|
-
height: 1rem;
|
|
9
|
-
width: 1rem;
|
|
10
|
-
margin-left: .25rem;
|
|
11
|
-
vertical-align: middle;
|
|
12
|
-
-ms-flex-item-align: center;
|
|
13
|
-
align-self: center;
|
|
14
|
-
|
|
15
|
-
//Transitions for navbar
|
|
16
|
-
-webkit-transition: -webkit-transform .25s ease-in;
|
|
17
|
-
transition: -webkit-transform .25s ease-in;
|
|
18
|
-
transition: transform .25s ease-in;
|
|
19
|
-
transition: transform .25s ease-in, -webkit-transform .25s ease-in;
|
|
20
|
-
|
|
21
|
-
@include media-breakpoint-down(lg) {
|
|
22
|
-
height: 1.25rem;
|
|
23
|
-
width: 1.25rem;
|
|
24
|
-
// TO DO: This should be cleaner organised
|
|
25
|
-
float: right;
|
|
26
|
-
margin: .5rem;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@include media-breakpoint-down(md) {
|
|
30
|
-
height: 1rem;
|
|
31
|
-
width: 1rem;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
&.show svg {
|
|
36
|
-
transform: rotate(180deg);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.dropdown-menu {
|
|
41
|
-
&__inner {
|
|
42
|
-
.chevron__icon {
|
|
43
|
-
height: 1.25rem;
|
|
44
|
-
width: 1.25rem;
|
|
45
|
-
color: var(--#{$prefix}navbar-svg-color);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
a.dropdown-item {
|
|
49
|
-
position: relative;
|
|
50
|
-
.chevron__icon {
|
|
51
|
-
position: absolute;
|
|
52
|
-
top: 1.15rem;
|
|
53
|
-
right: 0;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@include media-breakpoint-down(lg) {
|
|
60
|
-
.chevron__icon {
|
|
61
|
-
display: none;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Canvas, Meta, Story } from "@storybook/blocks"
|
|
2
|
-
import * as SidenavWrapperStories from "./sidenavWrapper.stories"
|
|
3
|
-
|
|
4
|
-
<Meta of={SidenavWrapperStories} />
|
|
5
|
-
|
|
6
|
-
# Side Wrapper navigation
|
|
7
|
-
This is a partial-block to embed more content inside another partial https://handlebarsjs.com/guide/partials.html#partial-blocks
|
|
8
|
-
<Canvas>
|
|
9
|
-
<Story of={SidenavWrapperStories.Default} />
|
|
10
|
-
</Canvas>
|
|
11
|
-
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
// ComponentExample.stories.js
|
|
2
|
-
import { SidenavWrapperTest } from "./SidenavWrapper.test.js";
|
|
3
|
-
import defaultdata from "./../sidenav/sidenav.data.json";
|
|
4
|
-
export default {
|
|
5
|
-
tags: ["autodocs"],
|
|
6
|
-
title: "4. Wrappers/Components/Side Navigation Wrapper",
|
|
7
|
-
render: (args) => {
|
|
8
|
-
return new SidenavWrapperTest(args).html;
|
|
9
|
-
},
|
|
10
|
-
|
|
11
|
-
argTypes: {
|
|
12
|
-
},
|
|
13
|
-
|
|
14
|
-
parameters: {
|
|
15
|
-
docs: {
|
|
16
|
-
controls: {
|
|
17
|
-
exclude: ["navlist", "navtitlelink"],
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Default side navigation
|
|
25
|
-
*
|
|
26
|
-
*/
|
|
27
|
-
export const Default = {
|
|
28
|
-
args: defaultdata,
|
|
29
|
-
decorators: [
|
|
30
|
-
(Story) => {
|
|
31
|
-
return `
|
|
32
|
-
<div class="container-fluid">
|
|
33
|
-
<div class="row">
|
|
34
|
-
|
|
35
|
-
${Story()}
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
`;
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Dark side navigation
|
|
46
|
-
*
|
|
47
|
-
*/
|
|
48
|
-
export const Dark = {
|
|
49
|
-
args: defaultdata,
|
|
50
|
-
decorators: [
|
|
51
|
-
(Story) => {
|
|
52
|
-
return `
|
|
53
|
-
<div class="container-fluid">
|
|
54
|
-
<div class="row">
|
|
55
|
-
<div class="col-lg-4 col-md-5">
|
|
56
|
-
<div class="dark">
|
|
57
|
-
${Story()}
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
`;
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/* global, __dirname */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import Handlebars from 'handlebars';
|
|
5
|
-
|
|
6
|
-
export class MainIntegration {
|
|
7
|
-
|
|
8
|
-
constructor(data, args = {}) {
|
|
9
|
-
console.log("contracutor");
|
|
10
|
-
this.data = data;
|
|
11
|
-
this.args = args;
|
|
12
|
-
|
|
13
|
-
this.template = data.template;
|
|
14
|
-
// Compile the template
|
|
15
|
-
this.compiled = Handlebars.compile(this.template)(this.data);
|
|
16
|
-
|
|
17
|
-
// For debugging purposes
|
|
18
|
-
console.log('Template:', this.template);
|
|
19
|
-
console.log('Data:', this.data);
|
|
20
|
-
//console.log('Compiled:', this.compiled);
|
|
21
|
-
|
|
22
|
-
return {
|
|
23
|
-
template: this.template,
|
|
24
|
-
data: this.data,
|
|
25
|
-
html: this.compiled,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"breadcrumbs": [
|
|
3
|
-
{
|
|
4
|
-
"link": "#",
|
|
5
|
-
"linktext": "For government"
|
|
6
|
-
},
|
|
7
|
-
{
|
|
8
|
-
"link": "#",
|
|
9
|
-
"linktext": "Information and communication technology"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"link": "#",
|
|
13
|
-
"linktext": "Communication and publishing"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"link": "#",
|
|
17
|
-
"linktext": "Website and digital publishing"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"link": "#",
|
|
21
|
-
"linktext": "Website standards, guidelines and templates"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"link": "#",
|
|
25
|
-
"linktext": "Single Website Experience"
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|