@qld-gov-au/qgds-bootstrap5 2.0.3 → 2.0.5
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/.esbuild/helpers/scssOverrideTheme.js +40 -0
- package/.esbuild/plugins/qgds-plugin-handlebar-partial-builder.js +4 -0
- package/.storybook/dynamicThemeDecorator.js +155 -0
- package/.storybook/main.js +6 -0
- package/.storybook/preview.js +20 -1
- package/README.md +26 -18
- package/dist/README.md +26 -18
- package/dist/assets/components/bs5/head/head.hbs +1 -1
- package/dist/assets/components/bs5/searchInput/searchInput.hbs +34 -35
- package/dist/assets/css/qld.bootstrap.css +1 -1
- package/dist/assets/css/qld.bootstrap.css.map +3 -3
- package/dist/assets/js/handlebars.init.min.js +36 -38
- package/dist/assets/js/handlebars.init.min.js.map +2 -2
- package/dist/assets/node/handlebars.init.min.js +2 -2
- package/dist/assets/node/handlebars.init.min.js.map +1 -1
- package/dist/components/bs5/head/head.hbs +1 -1
- package/dist/components/bs5/searchInput/searchInput.hbs +34 -35
- package/dist/package.json +6 -2
- package/dist/sample-data/searchInput/searchInput.data.json +0 -1
- package/esbuild.js +34 -9
- package/package.json +6 -2
- package/src/components/bs5/card/card--icon-list-footer.stories.js +171 -0
- package/src/components/bs5/card/card.scss +15 -0
- package/src/components/bs5/header/header.scss +23 -27
- package/src/components/bs5/logo/Logo.mdx +1 -1
- package/src/components/bs5/navbar/navbar.scss +7 -5
- package/src/components/bs5/navbar/navbar.stories.js +1 -1
- package/src/components/bs5/pageLayout/pageLayout.stories.js +2 -2
- package/src/components/bs5/searchInput/SearchInput.mdx +1 -1
- package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +32 -34
- package/src/components/bs5/searchInput/searchInput.data.json +0 -1
- package/src/components/bs5/searchInput/searchInput.hbs +34 -35
- package/src/components/bs5/searchInput/searchInput.scss +216 -195
- package/src/components/bs5/searchInput/searchInput.stories.js +42 -26
- package/src/components/bs5/searchInput/searchInput.test.js +21 -5
- package/src/components/bs5/tabs/tabs.scss +47 -40
- package/src/css/main.masterbrand.scss +137 -0
- package/src/css/mixins/focusable.scss +11 -3
- package/src/css/mixins/make-icon.scss +7 -1
- package/src/css/qld-tokens.scss +95 -0
- package/src/css/qld-variables.scss +10 -3
- package/src/css/readme.md +6 -1
- package/src/css/themes/masterbrand.scss +109 -0
- package/src/components/bs5/searchInput/_colours.scss +0 -63
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
<!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.
|
|
2
|
+
<!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.5","branch":"HEAD","tag":"v2.0.5","commit":"7972857bf46e8fa3db8ca361447711262fffc21e","majorVersion":"v2"} -->
|
|
3
3
|
|
|
4
4
|
{{! Select environment, used verbatium if not using predefind key
|
|
5
5
|
cdn := PROD|STAGING|BETA|TEST|DEV|???
|
|
@@ -1,44 +1,43 @@
|
|
|
1
1
|
<!--
|
|
2
2
|
QGDS Component: Search input
|
|
3
3
|
-->
|
|
4
|
-
<div class="
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
autocomplete="off" aria-label="{{ ariaLabel }}" {{#each tags}} data-{{@key}}="{{this}}" {{/each}} />
|
|
4
|
+
<div class="qld-search-input {{customClass}}">
|
|
5
|
+
<input id="{{ inputID }}" name="{{ inputName }}" class="form-control" type="text" autocomplete="off"
|
|
6
|
+
aria-label="{{ ariaLabel }}" {{#each tags}} data-{{@key}}="{{this}}" {{/each}} />
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
{{#if suggestions}}
|
|
9
|
+
<div class="suggestions suggestions__group d-none">
|
|
10
|
+
<div class="default-suggestions">
|
|
11
|
+
<div class="suggestions-category mt-16">
|
|
12
|
+
<strong class="suggestions-category-label d-block">Popular services</strong>
|
|
13
|
+
<ul class="mt-2">
|
|
14
|
+
{{#each default_suggestions.popular_services}}
|
|
15
|
+
<li><a href="{{link}}">{{title}}</a></li>
|
|
16
|
+
{{/each}}
|
|
17
|
+
</ul>
|
|
18
|
+
</div>
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
<div class="suggestions-category mt-16">
|
|
21
|
+
<strong class="suggestions-category-label d-block">Browse by category</strong>
|
|
22
|
+
<ul class="mt-12 mb-0">
|
|
23
|
+
{{#each default_suggestions.categories}}
|
|
24
|
+
<li><a href="{{link}}">{{title}}</a></li>
|
|
25
|
+
{{/each}}
|
|
26
|
+
</ul>
|
|
27
|
+
</div>
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
</
|
|
34
|
-
{{/if}}
|
|
29
|
+
{{#if default_suggestions.options.view_more}}
|
|
30
|
+
<div class="suggestions-category">
|
|
31
|
+
<a class="px-16 pt-12 pb-16 d-block suggestions-category-view-more"
|
|
32
|
+
href="{{default_suggestions.options.href}}">{{default_suggestions.options.label}}</a>
|
|
35
33
|
</div>
|
|
36
|
-
|
|
34
|
+
{{/if}}
|
|
37
35
|
</div>
|
|
38
|
-
|
|
39
|
-
<button class="btn btn-primary" type="{{ buttonType }}" id="{{ buttonID }}">
|
|
40
|
-
<span class="btn-icon mx-0"></span>
|
|
41
|
-
<span class="btn-label">{{ buttonLabel }}</span>
|
|
42
|
-
</button>
|
|
36
|
+
<div class="dynamic-suggestions"></div>
|
|
43
37
|
</div>
|
|
44
|
-
|
|
38
|
+
{{/if}}
|
|
39
|
+
<button class="btn btn-primary" type="{{ buttonType }}" id="{{ buttonID }}">
|
|
40
|
+
<span class="btn-icon"></span>
|
|
41
|
+
<span class="btn-label">{{ buttonLabel }}</span>
|
|
42
|
+
</button>
|
|
43
|
+
</div>
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qld-gov-au/qgds-bootstrap5",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"prepare": "npm run build",
|
|
12
12
|
"start": "npm run build",
|
|
13
|
-
"lint": "eslint --fix --ext .js,.json --ignore-pattern 'docs/*' --ignore-pattern 'dist/*' --ignore-pattern 'storybook-static/*' .",
|
|
13
|
+
"lint": "eslint --fix --ext .js,.json --ignore-pattern 'docs/*' --ignore-pattern 'dist/*' --ignore-pattern 'storybook-static/*' --ignore-pattern 'src/js/handlebars.partials.js' .",
|
|
14
14
|
"build": "node esbuild.js",
|
|
15
15
|
"build:icons": "node esbuild.js --icons",
|
|
16
|
+
"build:theme": "node esbuild.js --theme",
|
|
17
|
+
"build:theme:icons": "node esbuild.js --theme --icons",
|
|
16
18
|
"test": "vitest",
|
|
17
19
|
"test:ui": "vitest --ui",
|
|
18
20
|
"test:integration": "npm-run-all --parallel --race serve:test test:testrunner",
|
|
@@ -22,7 +24,9 @@
|
|
|
22
24
|
"serve:test": "http-server dist -p 8081 --silent",
|
|
23
25
|
"dev-storybook": "npm-run-all --parallel watch storybook",
|
|
24
26
|
"storybook": "storybook dev -p 6006",
|
|
27
|
+
"storybook:themes": "ENABLE_DYNAMIC_THEME=true storybook dev -p 6006",
|
|
25
28
|
"build-storybook": "storybook build --webpack-stats-json ",
|
|
29
|
+
"build-storybook:themes": "ENABLE_DYNAMIC_THEME=true storybook build --webpack-stats-json ",
|
|
26
30
|
"build-storybook:serve": "http-server storybook-static -p 8080"
|
|
27
31
|
},
|
|
28
32
|
"keywords": [],
|
package/esbuild.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* global process */
|
|
2
2
|
// ESBUILD PROJECT DEPENDENCIES
|
|
3
3
|
import * as esbuild from "esbuild";
|
|
4
|
+
import path from "path";
|
|
4
5
|
|
|
5
6
|
//Local ESBUILD PLUGINS
|
|
6
7
|
import QGDSupdateHandlebarsPartialsPlugin from "./.esbuild/plugins/qgds-plugin-handlebar-partial-builder.js";
|
|
@@ -10,6 +11,7 @@ import QDGSbuildLog from "./.esbuild/plugins/qgds-plugin-build-log.js";
|
|
|
10
11
|
import QDGScopy from "./.esbuild/plugins/qgds-plugin-copy-assets.js";
|
|
11
12
|
import { QGDSgenerateIconAssetsPlugin } from "./.esbuild/plugins/qgds-plugin-generate-icon-assets.js";
|
|
12
13
|
import { versionPlugin } from "./.esbuild/plugins/qgds-plugin-version.js";
|
|
14
|
+
import { createOverrideThemeScssEntry } from "./.esbuild/helpers/scssOverrideTheme.js";
|
|
13
15
|
|
|
14
16
|
//Open source ESBUILD PLUGINS
|
|
15
17
|
import { sassPlugin } from "esbuild-sass-plugin";
|
|
@@ -19,7 +21,6 @@ import handlebarsPlugin from "esbuild-plugin-handlebars";
|
|
|
19
21
|
import minimist from "minimist";
|
|
20
22
|
const argv = minimist(process.argv.slice(2));
|
|
21
23
|
|
|
22
|
-
|
|
23
24
|
// https://esbuild.github.io/getting-started/#build-scripts
|
|
24
25
|
const buildConfig = {
|
|
25
26
|
bundle: true,
|
|
@@ -65,7 +66,12 @@ const buildConfig = {
|
|
|
65
66
|
versionPlugin(),
|
|
66
67
|
QDGScleanFolders(),
|
|
67
68
|
handlebarsPlugin(),
|
|
68
|
-
sassPlugin(
|
|
69
|
+
sassPlugin({
|
|
70
|
+
//Hide sass deprecation warnings with a quiet flag... npm run build -- --quiet
|
|
71
|
+
silenceDeprecations: argv.quiet
|
|
72
|
+
? ["import", "global-builtin", "mixed-decls", "color-functions"]
|
|
73
|
+
: [],
|
|
74
|
+
}),
|
|
69
75
|
QDGSbuildLog(),
|
|
70
76
|
],
|
|
71
77
|
};
|
|
@@ -81,7 +87,7 @@ const buildNodeConfig = {
|
|
|
81
87
|
external: buildConfig.external,
|
|
82
88
|
platform: "node",
|
|
83
89
|
target: ["node20"],
|
|
84
|
-
format:
|
|
90
|
+
format: "esm",
|
|
85
91
|
entryPoints: [
|
|
86
92
|
{
|
|
87
93
|
in: "./src/js/handlebars.init.cjs",
|
|
@@ -95,26 +101,45 @@ const buildNodeConfig = {
|
|
|
95
101
|
versionPlugin(),
|
|
96
102
|
handlebarsPlugin(),
|
|
97
103
|
],
|
|
98
|
-
}
|
|
104
|
+
};
|
|
99
105
|
|
|
100
106
|
async function StartBuild() {
|
|
101
|
-
|
|
107
|
+
// Choose configuration based on theme
|
|
108
|
+
let config = buildConfig;
|
|
109
|
+
const tempEntries = [];
|
|
110
|
+
if (argv.theme) {
|
|
111
|
+
const themes = Array.isArray(argv.theme) ? argv.theme : [argv.theme];
|
|
112
|
+
const cssDir = path.resolve("src/css");
|
|
113
|
+
const mainScss = path.join(cssDir, "main.scss");
|
|
102
114
|
|
|
115
|
+
themes.forEach((themeVar) => {
|
|
116
|
+
const tempEntry = createOverrideThemeScssEntry({
|
|
117
|
+
cssDir,
|
|
118
|
+
mainScss,
|
|
119
|
+
themeVar,
|
|
120
|
+
});
|
|
121
|
+
tempEntries.push(tempEntry);
|
|
122
|
+
config.entryPoints.push({
|
|
123
|
+
in: tempEntry,
|
|
124
|
+
out: `./assets/css/qld.${themeVar}.bootstrap`,
|
|
125
|
+
});
|
|
126
|
+
console.log(`theme SCSS entry created: ${tempEntry}`);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
let ctx = await esbuild.context(config);
|
|
103
131
|
if (argv.watch === true) {
|
|
104
|
-
// "npm run watch"
|
|
105
132
|
await ctx.watch();
|
|
106
|
-
|
|
107
133
|
} else {
|
|
108
|
-
// "npm run build" or "node build.js"
|
|
109
134
|
await ctx.rebuild();
|
|
110
135
|
await ctx.dispose();
|
|
136
|
+
// Note: Temp files are preserved for performance - they're only recreated when content changes
|
|
111
137
|
}
|
|
112
138
|
|
|
113
139
|
//node js module
|
|
114
140
|
let ctxNode = await esbuild.context(buildNodeConfig);
|
|
115
141
|
await ctxNode.rebuild();
|
|
116
142
|
await ctxNode.dispose();
|
|
117
|
-
|
|
118
143
|
}
|
|
119
144
|
|
|
120
145
|
//Initate the project build...
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qld-gov-au/qgds-bootstrap5",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"prepare": "npm run build",
|
|
12
12
|
"start": "npm run build",
|
|
13
|
-
"lint": "eslint --fix --ext .js,.json --ignore-pattern 'docs/*' --ignore-pattern 'dist/*' --ignore-pattern 'storybook-static/*' .",
|
|
13
|
+
"lint": "eslint --fix --ext .js,.json --ignore-pattern 'docs/*' --ignore-pattern 'dist/*' --ignore-pattern 'storybook-static/*' --ignore-pattern 'src/js/handlebars.partials.js' .",
|
|
14
14
|
"build": "node esbuild.js",
|
|
15
15
|
"build:icons": "node esbuild.js --icons",
|
|
16
|
+
"build:theme": "node esbuild.js --theme",
|
|
17
|
+
"build:theme:icons": "node esbuild.js --theme --icons",
|
|
16
18
|
"test": "vitest",
|
|
17
19
|
"test:ui": "vitest --ui",
|
|
18
20
|
"test:integration": "npm-run-all --parallel --race serve:test test:testrunner",
|
|
@@ -22,7 +24,9 @@
|
|
|
22
24
|
"serve:test": "http-server dist -p 8081 --silent",
|
|
23
25
|
"dev-storybook": "npm-run-all --parallel watch storybook",
|
|
24
26
|
"storybook": "storybook dev -p 6006",
|
|
27
|
+
"storybook:themes": "ENABLE_DYNAMIC_THEME=true storybook dev -p 6006",
|
|
25
28
|
"build-storybook": "storybook build --webpack-stats-json ",
|
|
29
|
+
"build-storybook:themes": "ENABLE_DYNAMIC_THEME=true storybook build --webpack-stats-json ",
|
|
26
30
|
"build-storybook:serve": "http-server storybook-static -p 8080"
|
|
27
31
|
},
|
|
28
32
|
"keywords": [],
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// card--icon-list-footer.stories.js
|
|
2
|
+
import { Card } from "./Card.js";
|
|
3
|
+
import { Link } from "../link/link.js";
|
|
4
|
+
import defaultdata from "./card.data.json";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
tags: ["autodocs"],
|
|
8
|
+
title: "3. Components/Card/Icon List Footer",
|
|
9
|
+
render: (args) => {
|
|
10
|
+
// Create icon list for card footer following Figma design pattern
|
|
11
|
+
const figmaLinkData = {
|
|
12
|
+
title: "Related links",
|
|
13
|
+
linkList: [
|
|
14
|
+
{
|
|
15
|
+
url: "#",
|
|
16
|
+
id: "link-1",
|
|
17
|
+
label: "Label",
|
|
18
|
+
target: "_self",
|
|
19
|
+
arialabel: "Label",
|
|
20
|
+
iconClass: "qld-icon-arrow-right",
|
|
21
|
+
iconPosition: "leading",
|
|
22
|
+
download: null,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
url: "#",
|
|
26
|
+
id: "link-2",
|
|
27
|
+
label: "Label",
|
|
28
|
+
target: "_self",
|
|
29
|
+
arialabel: "Label",
|
|
30
|
+
iconClass: "qld-icon-profile",
|
|
31
|
+
iconPosition: "leading",
|
|
32
|
+
download: null,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
url: "#",
|
|
36
|
+
id: "link-3",
|
|
37
|
+
label: "Label",
|
|
38
|
+
target: "_self",
|
|
39
|
+
arialabel: "Label",
|
|
40
|
+
iconClass: "qld-icon-like",
|
|
41
|
+
iconPosition: "leading",
|
|
42
|
+
download: null,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
const iconListHtml = new Link(figmaLinkData).html;
|
|
47
|
+
|
|
48
|
+
return `
|
|
49
|
+
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">
|
|
50
|
+
${new Card({ ...args, footer: iconListHtml }).html}
|
|
51
|
+
${new Card({ ...args, variantClass: "light", footer: iconListHtml }).html}
|
|
52
|
+
${new Card({ ...args, variantClass: "alt", footer: iconListHtml }).html}
|
|
53
|
+
${new Card({ ...args, variantClass: "dark", footer: iconListHtml }).html}
|
|
54
|
+
${new Card({ ...args, variantClass: "dark-alt", footer: iconListHtml }).html}
|
|
55
|
+
${
|
|
56
|
+
new Card({
|
|
57
|
+
...args,
|
|
58
|
+
iconClasses: "qld-icon-design",
|
|
59
|
+
iconPosition: "icon-left",
|
|
60
|
+
footer: iconListHtml,
|
|
61
|
+
}).html
|
|
62
|
+
}
|
|
63
|
+
${
|
|
64
|
+
new Card({
|
|
65
|
+
...args,
|
|
66
|
+
iconClasses: "qld-icon-design",
|
|
67
|
+
iconPosition: "icon-top",
|
|
68
|
+
footer: iconListHtml,
|
|
69
|
+
}).html
|
|
70
|
+
}
|
|
71
|
+
${
|
|
72
|
+
new Card({
|
|
73
|
+
...args,
|
|
74
|
+
image: "./img/image-placeholder.png",
|
|
75
|
+
imageAlt: "A grey placeholder image with an icon in the centre.",
|
|
76
|
+
footer: iconListHtml,
|
|
77
|
+
}).html
|
|
78
|
+
}
|
|
79
|
+
${
|
|
80
|
+
new Card({
|
|
81
|
+
...args,
|
|
82
|
+
image: "./img/image-placeholder.png",
|
|
83
|
+
imageAlt: "A grey placeholder image with an icon in the centre.",
|
|
84
|
+
video: true,
|
|
85
|
+
videoDuration: "2:34",
|
|
86
|
+
footer: iconListHtml,
|
|
87
|
+
}).html
|
|
88
|
+
}
|
|
89
|
+
</div>
|
|
90
|
+
`;
|
|
91
|
+
},
|
|
92
|
+
args: {
|
|
93
|
+
...defaultdata.multiAction,
|
|
94
|
+
title: "Card with Icon List Footer",
|
|
95
|
+
description:
|
|
96
|
+
"This card demonstrates the proper nesting of an Icon List component into the Card Footer following the Figma design pattern with 0.75rem gap spacing between links and 12px gap between icons and text.",
|
|
97
|
+
},
|
|
98
|
+
argTypes: {
|
|
99
|
+
date: {
|
|
100
|
+
control: "text",
|
|
101
|
+
},
|
|
102
|
+
variantClass: {
|
|
103
|
+
control: "select",
|
|
104
|
+
options: {
|
|
105
|
+
Default: "default",
|
|
106
|
+
Light: "light",
|
|
107
|
+
Alternative: "alt",
|
|
108
|
+
Dark: "dark",
|
|
109
|
+
"Dark alternative": "dark-alt",
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
action: {
|
|
113
|
+
control: "select",
|
|
114
|
+
options: {
|
|
115
|
+
None: "no",
|
|
116
|
+
Single: "single",
|
|
117
|
+
Multi: "multi",
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
parameters: {
|
|
122
|
+
docs: {
|
|
123
|
+
description: {
|
|
124
|
+
story:
|
|
125
|
+
"This story demonstrates how to properly nest an Icon List component into the Card Footer following the Figma design pattern with 0.75rem gap spacing between links and 12px gap between icons and text. Each link uses consistent 'Label' text with different leading icons (arrow-right, profile, like) as shown in the design reference.",
|
|
126
|
+
},
|
|
127
|
+
controls: {
|
|
128
|
+
exclude: ["link", "arrow", "iconPosition", "footer"],
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
design: {
|
|
132
|
+
name: "QGDS Figma Reference - Cards",
|
|
133
|
+
type: "figma",
|
|
134
|
+
url: "https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=card-component",
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
export const Default = {};
|
|
140
|
+
|
|
141
|
+
export const WithLeadingIcons = {
|
|
142
|
+
name: "With leading icon variant",
|
|
143
|
+
args: {
|
|
144
|
+
iconClasses: "qld-icon-design",
|
|
145
|
+
iconPosition: "icon-left",
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export const LightTheme = {
|
|
150
|
+
name: "Light theme with icon list",
|
|
151
|
+
args: {
|
|
152
|
+
variantClass: "light",
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const DarkTheme = {
|
|
157
|
+
name: "Dark theme with icon list",
|
|
158
|
+
args: {
|
|
159
|
+
variantClass: "dark",
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export const WithVideo = {
|
|
164
|
+
name: "Video card with icon list footer",
|
|
165
|
+
args: {
|
|
166
|
+
image: "./img/image-placeholder.png",
|
|
167
|
+
imageAlt: "A grey placeholder image with an icon in the centre.",
|
|
168
|
+
video: true,
|
|
169
|
+
videoDuration: "2:34",
|
|
170
|
+
},
|
|
171
|
+
};
|
|
@@ -431,6 +431,21 @@
|
|
|
431
431
|
margin: 0;
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
|
+
/////////////////////////////////////////////
|
|
435
|
+
// Override default spacing on link list component for icon links
|
|
436
|
+
.link-list {
|
|
437
|
+
display: flex;
|
|
438
|
+
flex-direction: column;
|
|
439
|
+
margin: 1rem 0;
|
|
440
|
+
padding: 0;
|
|
441
|
+
gap: 0.75rem;
|
|
442
|
+
.link-item {
|
|
443
|
+
margin: 0;
|
|
444
|
+
a {
|
|
445
|
+
gap: 12px;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}
|
|
434
449
|
}
|
|
435
450
|
.card-footer {
|
|
436
451
|
font-size: 1.25rem;
|
|
@@ -293,6 +293,14 @@
|
|
|
293
293
|
position: relative;
|
|
294
294
|
color: var(--#{$prefix}header-color-text);
|
|
295
295
|
background: var(--#{$prefix}header-color-bg);
|
|
296
|
+
|
|
297
|
+
// Patch for v2.0.5. Redundant after header QGDS-266 is merged
|
|
298
|
+
border-bottom: 0.25rem solid var(--qld-light-accent);
|
|
299
|
+
|
|
300
|
+
@include media-breakpoint-up(lg) {
|
|
301
|
+
border-bottom: none;
|
|
302
|
+
}
|
|
303
|
+
// End patch for v2.0.5
|
|
296
304
|
}
|
|
297
305
|
|
|
298
306
|
&-brand {
|
|
@@ -400,37 +408,25 @@
|
|
|
400
408
|
}
|
|
401
409
|
|
|
402
410
|
&-site-search {
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
411
|
+
display: none;
|
|
412
|
+
z-index: 1;
|
|
413
|
+
position: absolute;
|
|
414
|
+
left: 0;
|
|
415
|
+
right: 0;
|
|
416
|
+
top: 0.4rem;
|
|
417
|
+
padding: 1rem var(--qld-container-padding-x);
|
|
418
|
+
background-color: var(--#{$prefix}header-color-bg);
|
|
407
419
|
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
&.is-open {
|
|
411
|
-
z-index: 1;
|
|
412
|
-
display: block;
|
|
413
|
-
position: absolute;
|
|
414
|
-
left: 0;
|
|
415
|
-
right: 0;
|
|
416
|
-
top: 0.4rem;
|
|
417
|
-
padding: 1rem 0;
|
|
418
|
-
background-color: var(--#{$prefix}header-color-bg);
|
|
419
|
-
}
|
|
420
|
-
&.is-closed {
|
|
421
|
-
display: none;
|
|
422
|
-
}
|
|
420
|
+
&.is-open {
|
|
421
|
+
display: block;
|
|
423
422
|
}
|
|
424
423
|
|
|
425
|
-
// Some default styling overrides.
|
|
426
424
|
@include media-breakpoint-up(lg) {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
.qld-search-input {
|
|
433
|
-
min-width: auto;
|
|
425
|
+
z-index: unset;
|
|
426
|
+
display: block;
|
|
427
|
+
position: static;
|
|
428
|
+
padding: 0;
|
|
429
|
+
background-color: transparent;
|
|
434
430
|
}
|
|
435
431
|
}
|
|
436
432
|
}
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
button.nav-link {
|
|
60
60
|
background-color: var(--dropdown-show-btn-bg);
|
|
61
61
|
&::after {
|
|
62
|
-
transform: rotate(180deg);
|
|
62
|
+
transform: rotate(-180deg);
|
|
63
63
|
transition: transform var(--animation-time) ease-in;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
--text-color: var(--#{$prefix}light-text-text);
|
|
268
268
|
--border-color: var(--#{$prefix}default-border);
|
|
269
269
|
--header-color: var(--#{$prefix}default-background);
|
|
270
|
-
--action-icon-color: var(--#{$prefix}
|
|
270
|
+
--action-icon-color: var(--#{$prefix}light-action-secondary);
|
|
271
271
|
--action-icon-color_active: var(--text-color);
|
|
272
272
|
--mobile-only-display: none;
|
|
273
273
|
--visibility-display: hidden;
|
|
@@ -475,10 +475,11 @@
|
|
|
475
475
|
.navbar-nav a.nav-link,
|
|
476
476
|
a.dropdown-item {
|
|
477
477
|
color: var(--link-color);
|
|
478
|
-
padding: 0.
|
|
478
|
+
padding-block: 0.625rem;
|
|
479
|
+
padding-inline: 0.75rem;
|
|
479
480
|
display: flex;
|
|
480
481
|
line-height: 2rem;
|
|
481
|
-
gap:
|
|
482
|
+
gap: 0.5rem;
|
|
482
483
|
align-items: center;
|
|
483
484
|
&:hover {
|
|
484
485
|
text-decoration: underline;
|
|
@@ -505,7 +506,7 @@
|
|
|
505
506
|
}
|
|
506
507
|
&.show {
|
|
507
508
|
&:after {
|
|
508
|
-
transform: rotate(180deg);
|
|
509
|
+
transform: rotate(-180deg);
|
|
509
510
|
transition: transform var(--animation-time) ease-in;
|
|
510
511
|
}
|
|
511
512
|
}
|
|
@@ -578,6 +579,7 @@
|
|
|
578
579
|
background-color: var(--action-icon-color);
|
|
579
580
|
height: 1.25rem;
|
|
580
581
|
width: 1.25rem;
|
|
582
|
+
min-width: 1.25rem;
|
|
581
583
|
margin-inline-start: auto;
|
|
582
584
|
border: 0;
|
|
583
585
|
transform: scaleX(var(--icon-dir));
|
|
@@ -530,7 +530,7 @@ export const Default = {
|
|
|
530
530
|
}
|
|
531
531
|
.navbar #burgerCloseBtn::before {
|
|
532
532
|
--nav-header-icon-color: var(--#{$prefix}brand-accent);
|
|
533
|
-
background-color: var(--nav-header-icon-color, #
|
|
533
|
+
background-color: var(--nav-header-icon-color, #ffe500);
|
|
534
534
|
}
|
|
535
535
|
}
|
|
536
536
|
@media (width >= 992px) {
|
|
@@ -43,12 +43,12 @@ const sideNavData = {
|
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
link: "#",
|
|
46
|
-
label: "Content page (
|
|
46
|
+
label: "Content page (with bar)",
|
|
47
47
|
class: "",
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
link: "#",
|
|
51
|
-
label: "
|
|
51
|
+
label: "Page with form",
|
|
52
52
|
class: "",
|
|
53
53
|
},
|
|
54
54
|
],
|
|
@@ -9,4 +9,4 @@ import * as SearchInputStories from "./searchInput.stories";
|
|
|
9
9
|
|
|
10
10
|
## Design resources
|
|
11
11
|
|
|
12
|
-
- [Component library
|
|
12
|
+
- [Component library(Figma)](https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QLD-GOV-DDS?node-id=11017-307599&t=NGmPmPhkUQMN7qQw-0)
|