@qld-gov-au/qgds-bootstrap5 1.1.19 → 1.1.21

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 (32) hide show
  1. package/.storybook/main.js +46 -41
  2. package/.storybook/preview.js +96 -94
  3. package/dist/assets/components/bs5/callToAction/callToAction.hbs +9 -0
  4. package/dist/assets/components/bs5/head/head.hbs +1 -1
  5. package/dist/assets/css/qld.bootstrap.css +1 -1
  6. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  7. package/dist/assets/js/handlebars.helpers.bundle.js +1 -1
  8. package/dist/assets/js/handlebars.helpers.bundle.js.map +3 -3
  9. package/dist/assets/js/handlebars.helpers.js +33 -0
  10. package/dist/assets/js/handlebars.init.min.js +42 -34
  11. package/dist/assets/js/handlebars.init.min.js.map +4 -4
  12. package/dist/assets/js/handlebars.partials.js +2 -0
  13. package/dist/assets/node/handlebars.init.min.js +29 -1
  14. package/dist/assets/node/handlebars.init.min.js.map +3 -3
  15. package/dist/components/bs5/callToAction/callToAction.hbs +9 -0
  16. package/dist/components/bs5/head/head.hbs +1 -1
  17. package/dist/components/handlebars.helpers.js +33 -0
  18. package/dist/components/handlebars.partials.js +2 -0
  19. package/dist/package.json +7 -7
  20. package/dist/sample-data/callToAction/callToAction.data.json +10 -0
  21. package/package.json +7 -7
  22. package/src/components/bs5/callToAction/callToAction.data.json +10 -0
  23. package/src/components/bs5/callToAction/callToAction.hbs +9 -0
  24. package/src/components/bs5/callToAction/callToAction.js +12 -0
  25. package/src/components/bs5/callToAction/callToAction.mdx +16 -0
  26. package/src/components/bs5/callToAction/callToAction.scss +93 -0
  27. package/src/components/bs5/callToAction/callToAction.stories.js +134 -0
  28. package/src/components/bs5/video/video.stories.js +23 -22
  29. package/src/css/main.scss +1 -0
  30. package/src/css/qld-print.scss +13 -0
  31. package/src/js/handlebars.helpers.js +33 -0
  32. package/src/js/handlebars.partials.js +2 -0
@@ -0,0 +1,9 @@
1
+ <a class="qld-cta-link {{getClassNames "small, view-all" class}}"
2
+ {{#if id}}id="{{id}}"{{/if}}
3
+ href="{{href}}"
4
+ target="{{target}}"
5
+ {{#if arialabel}}aria-label="{{arialabel}}"{{/if}}
6
+ >
7
+ {{label}}
8
+ <span class="icon" aria-hidden="true"></span>
9
+ </a>
@@ -1,5 +1,5 @@
1
1
 
2
- <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"1.1.19","branch":"HEAD","tag":"v1.1.19","commit":"8fb1149b14ce5f62d555b91e2ff4daf15f3a967f","majorVersion":"v1"} -->
2
+ <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"1.1.21","branch":"HEAD","tag":"v1.1.21","commit":"a3f1a8cf0304d6c7f562866d133b170b491e720c","majorVersion":"v1"} -->
3
3
 
4
4
  {{! Select environment, used verbatium if not using predefind key
5
5
  cdn := PROD|STAGING|BETA|TEST|DEV|???
@@ -181,6 +181,39 @@ export default function handlebarsHelpers(handlebars) {
181
181
  }
182
182
  return durationString;
183
183
  });
184
+
185
+ /**
186
+ * Used to get class names added to an element based on their boolean values in an array
187
+ * @param {string} names - Comma-separated list of class names to check for
188
+ * @param {array} array - Array of objects to check for true values
189
+ * @returns {string} - Space-separated list of class names that have true values
190
+ */
191
+ handlebars.registerHelper('getClassNames', function(names, array) {
192
+ // Split the comma-separated string of names into an array
193
+ let nameList = names.split(',').map(name => name.trim());
194
+
195
+ // Create an array to hold the names that have true values
196
+ let matchedItems = [];
197
+
198
+ for (let i = 0; i < nameList.length; i++) {
199
+ let name = nameList[i];
200
+ // Check if any item in the array matches the name and is true
201
+ for (let j = 0; j < array.length; j++) {
202
+ if (array[j][name] === true) {
203
+ matchedItems.push(name); // Add to matchedItems if found and true
204
+ break;
205
+ }
206
+ }
207
+ }
208
+
209
+ // If we found any matched items, return them as a space-separated string
210
+ if (matchedItems.length > 0) {
211
+ return matchedItems.join(' ');
212
+ } else {
213
+ return "";
214
+ }
215
+ });
216
+
184
217
  }
185
218
 
186
219
  if(typeof(Handlebars) !== 'undefined') {
@@ -7,6 +7,7 @@ import blockquote from "../components/bs5/blockquote/blockquote.hbs?raw";
7
7
  import breadcrumbs from "../components/bs5/breadcrumbs/breadcrumbs.hbs?raw";
8
8
  import breadcrumbsWrapper from "../components/bs5/breadcumbsWrapper/breadcrumbsWrapper.hbs?raw";
9
9
  import button from "../components/bs5/button/button.hbs?raw";
10
+ import callToAction from "../components/bs5/callToAction/callToAction.hbs?raw";
10
11
  import callout from "../components/bs5/callout/callout.hbs?raw";
11
12
  import card from "../components/bs5/card/card.hbs?raw";
12
13
  import contentFooter from "../components/bs5/contentFooter/contentFooter.hbs?raw";
@@ -55,6 +56,7 @@ export default function handlebarsPartials(handlebars) {
55
56
  handlebars.registerPartial("breadcrumbs", breadcrumbs);
56
57
  handlebars.registerPartial("breadcrumbsWrapper", breadcrumbsWrapper);
57
58
  handlebars.registerPartial("button", button);
59
+ handlebars.registerPartial("callToAction", callToAction);
58
60
  handlebars.registerPartial("callout", callout);
59
61
  handlebars.registerPartial("card", card);
60
62
  handlebars.registerPartial("contentFooter", contentFooter);
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qld-gov-au/qgds-bootstrap5",
3
- "version": "1.1.19",
3
+ "version": "1.1.21",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,7 +43,7 @@
43
43
  "dependencies": {
44
44
  "@fortawesome/fontawesome-free": "^6.6.0",
45
45
  "bootstrap": "^5.3.1",
46
- "material-symbols": "^0.23.0"
46
+ "material-symbols": "^0.28.1"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@chromatic-com/storybook": "^3.2.2",
@@ -61,13 +61,12 @@
61
61
  "@storybook/test": "^8.4.2",
62
62
  "@storybook/theming": "^8.4.2",
63
63
  "@stylistic/eslint-plugin-js": "2.1.0",
64
- "@vitejs/plugin-vue": "5.1.3",
65
- "@whitespace/storybook-addon-html": "^6.1.1",
64
+ "@vitejs/plugin-vue": "5.2.1",
66
65
  "autoprefixer": "^10.4.20",
67
- "chai": "^5.1.1",
66
+ "chai": "^5.2.0",
68
67
  "chalk": "^5.3.0",
69
68
  "chromatic": "^11.5.5",
70
- "esbuild": "0.23.1",
69
+ "esbuild": "0.25.0",
71
70
  "esbuild-plugin-copy": "^2.1.1",
72
71
  "esbuild-plugin-eslint": "^0.3.7",
73
72
  "esbuild-plugin-handlebars": "1.0.3",
@@ -88,8 +87,9 @@
88
87
  "rimraf": "^6.0.1",
89
88
  "run-parallel": "^1.2.0",
90
89
  "sass": "^1.80.4",
91
- "selenium-webdriver": "^4.24.1",
90
+ "selenium-webdriver": "^4.29.0",
92
91
  "storybook": "^8.4.2",
92
+ "storybook-addon-deep-controls": "^0.9.2",
93
93
  "vite": "^5.4.6",
94
94
  "watch": "^0.13.0"
95
95
  },
@@ -0,0 +1,10 @@
1
+ {
2
+ "id": "",
3
+ "label": "Label",
4
+ "href": "#123",
5
+ "target": "_blank",
6
+ "class": [
7
+ {"small": false},
8
+ {"view-all": true}
9
+ ]
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qld-gov-au/qgds-bootstrap5",
3
- "version": "1.1.19",
3
+ "version": "1.1.21",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,7 +43,7 @@
43
43
  "dependencies": {
44
44
  "@fortawesome/fontawesome-free": "^6.6.0",
45
45
  "bootstrap": "^5.3.1",
46
- "material-symbols": "^0.23.0"
46
+ "material-symbols": "^0.28.1"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@chromatic-com/storybook": "^3.2.2",
@@ -61,13 +61,12 @@
61
61
  "@storybook/test": "^8.4.2",
62
62
  "@storybook/theming": "^8.4.2",
63
63
  "@stylistic/eslint-plugin-js": "2.1.0",
64
- "@vitejs/plugin-vue": "5.1.3",
65
- "@whitespace/storybook-addon-html": "^6.1.1",
64
+ "@vitejs/plugin-vue": "5.2.1",
66
65
  "autoprefixer": "^10.4.20",
67
- "chai": "^5.1.1",
66
+ "chai": "^5.2.0",
68
67
  "chalk": "^5.3.0",
69
68
  "chromatic": "^11.5.5",
70
- "esbuild": "0.23.1",
69
+ "esbuild": "0.25.0",
71
70
  "esbuild-plugin-copy": "^2.1.1",
72
71
  "esbuild-plugin-eslint": "^0.3.7",
73
72
  "esbuild-plugin-handlebars": "1.0.3",
@@ -88,8 +87,9 @@
88
87
  "rimraf": "^6.0.1",
89
88
  "run-parallel": "^1.2.0",
90
89
  "sass": "^1.80.4",
91
- "selenium-webdriver": "^4.24.1",
90
+ "selenium-webdriver": "^4.29.0",
92
91
  "storybook": "^8.4.2",
92
+ "storybook-addon-deep-controls": "^0.9.2",
93
93
  "vite": "^5.4.6",
94
94
  "watch": "^0.13.0"
95
95
  },
@@ -0,0 +1,10 @@
1
+ {
2
+ "id": "",
3
+ "label": "Label",
4
+ "href": "#123",
5
+ "target": "_blank",
6
+ "class": [
7
+ {"small": false},
8
+ {"view-all": true}
9
+ ]
10
+ }
@@ -0,0 +1,9 @@
1
+ <a class="qld-cta-link {{getClassNames "small, view-all" class}}"
2
+ {{#if id}}id="{{id}}"{{/if}}
3
+ href="{{href}}"
4
+ target="{{target}}"
5
+ {{#if arialabel}}aria-label="{{arialabel}}"{{/if}}
6
+ >
7
+ {{label}}
8
+ <span class="icon" aria-hidden="true"></span>
9
+ </a>
@@ -0,0 +1,12 @@
1
+ import Component from "../../../js/QGDSComponent.js";
2
+ import template from "./callToAction.hbs?raw";
3
+
4
+ export class CallToAction {
5
+ // Use the global Component class to create a new instance of the Accordion component.
6
+ // A data object, containing the Handlebars placeholder replacement strings, should be provided as an argument.
7
+
8
+
9
+ constructor(data = {}) {
10
+ return new Component(template, data);
11
+ }
12
+ }
@@ -0,0 +1,16 @@
1
+ import { Canvas, Meta, Story } from "@storybook/blocks"
2
+ import * as CallToActionStories from "./callToAction.stories"
3
+
4
+ <Meta of={CallToActionStories} />
5
+
6
+ # CallToAction
7
+ <Canvas>
8
+ <Story of={CallToActionStories.Default} />
9
+ </Canvas>
10
+
11
+ ## Design resources
12
+
13
+
14
+ - [Component library (Figma)](https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=23167-395565&t=TIV8Ku0uZZw4wtEa-0)
15
+ - [Master component file (Figma)](https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=11056-321367&p=f&t=PtLTzZO7iSzsq4Qn-0)
16
+ - [Design System website](https://www.designsystem.qld.gov.au/components/call-to-action-cta)
@@ -0,0 +1,93 @@
1
+ // QGDS QOL CallTOAction
2
+
3
+ .qld-cta-link {
4
+ --cta-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M443.7 266.8l-165.9 176C274.5 446.3 269.1 448 265.5 448c-3.986 0-7.988-1.375-11.16-4.156c-6.773-5.938-7.275-16.06-1.118-22.59L393.9 272H16.59c-9.171 0-16.59-7.155-16.59-15.1S7.421 240 16.59 240h377.3l-140.7-149.3c-6.157-6.531-5.655-16.66 1.118-22.59c6.789-5.906 17.27-5.469 23.45 1.094l165.9 176C449.4 251.3 449.4 260.7 443.7 266.8z'/%3E%3C/svg%3E");
5
+ --link-colour: var(--qld-light-action-primary );
6
+ --icon-colour: var(--qld-light-action-secondary);
7
+ --icon-colour-hover: var(--qld-light-action-secondary-hover);
8
+
9
+ color: var(--link-colour);
10
+ text-decoration-color: var(--link-colour);
11
+ display: flex;
12
+ width: fit-content;
13
+ justify-content: space-between;
14
+ align-self: flex-start;
15
+ font-size: 1.25rem;
16
+ font-weight: 600;
17
+ line-height: 2rem;
18
+
19
+ &.small {
20
+ font-size: .875rem;
21
+ line-height: 1rem;
22
+ .icon{
23
+ &::after{
24
+ zoom: .7;
25
+ mask-position: 0;
26
+ }
27
+ }
28
+ }
29
+
30
+ .icon {
31
+ &::after {
32
+ content: "";
33
+ display: inline-block;
34
+ width: 1.25rem;
35
+ height: 1.5rem;
36
+ mask-image: var(--cta-icon);
37
+ mask-repeat: no-repeat;
38
+ mask-position: 0 .25rem;
39
+ background-color: var(--icon-colour);
40
+ margin-inline: .5rem;
41
+ transition: margin 0.3s ease;
42
+ }
43
+ }
44
+
45
+ &:hover {
46
+ .icon {
47
+ &::after {
48
+ background-color: var(--icon-colour-hover);
49
+ margin-inline-start: 1rem;
50
+ margin-inline-end: 0;
51
+ transition: margin 0.3s ease;
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ .view-all {
58
+ .icon {
59
+ &::after {
60
+ --cta-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M283.3 148.7c-6.25-6.25-16.38-6.25-22.62 0s-6.25 16.38 0 22.62L329.4 240H144C135.2 240 128 247.2 128 256s7.156 16 16 16h185.4l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.62s16.38 6.25 22.62 0l96-96C382.4 264.2 384 260.1 384 256s-1.562-8.188-4.688-11.31L283.3 148.7zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 480c-123.5 0-224-100.5-224-224s100.5-224 224-224s224 100.5 224 224S379.5 480 256 480z'/%3E%3C/svg%3E");
61
+ }
62
+ }
63
+ }
64
+
65
+ .light, .alt {
66
+ .qld-cta-link {
67
+ --link-colour: var(--qld-light-action-primary);
68
+ --icon-colour: var(--qld-light-action-secondary);
69
+ --icon-colour-hover: var(--qld-light-action-secondary-hover);
70
+ }
71
+ }
72
+
73
+ .dark, .dark-alt {
74
+ .qld-cta-link {
75
+ --link-colour: var(--qld-dark-text);
76
+ --icon-colour: var(--qld-dark-action-secondary);
77
+ --icon-colour-hover: var(--qld-dark-action-secondary-hover);
78
+ }
79
+ }
80
+
81
+ li .qld-cta-link {
82
+ width: auto;
83
+ }
84
+
85
+ a[aria-disabled="true"] {
86
+ pointer-events: none;
87
+ color: var(--qld-dark-grey-muted);
88
+ .icon {
89
+ &::after {
90
+ background-color: var(--qld-dark-grey-muted);
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,134 @@
1
+ /**
2
+ * @file callToAction.stories.js
3
+ * @description Storybook configuration file for the CallToAction component.
4
+ * @module callToAction.stories
5
+ */
6
+
7
+ import { CallToAction } from "./callToAction.js";
8
+ import defaultdata from "./callToAction.data.json";
9
+
10
+ export default {
11
+ tags: ["autodocs"],
12
+ title: "3. Components/CallToAction",
13
+ args: defaultdata,
14
+ render: (args) => {
15
+ return `
16
+ <div class="container">
17
+ <div class="row">
18
+ <div class="col">
19
+ ${new CallToAction({...args, label: 'View All'}).html}
20
+ </div>
21
+ <div class="col">
22
+ ${new CallToAction({...args, label: 'Label', "class": [{"small": false}, {"view-all": false}]}).html}
23
+ </div>
24
+ </div>
25
+ </div>
26
+ `
27
+ },
28
+ parameters: {
29
+ design: {
30
+ name: "QGDS Figma Reference",
31
+ type: "figma",
32
+ url: "https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=11056-321367&p=f&t=v3sxViBgYUUmwplL-0",
33
+ },
34
+ },
35
+ };
36
+
37
+ /**
38
+ * Call To Action - Default
39
+ */
40
+ export const Default = {
41
+ args: defaultdata,
42
+ };
43
+
44
+ /**
45
+ * Call To Action - Light
46
+ * */
47
+ export const Light = {
48
+ parameters: {
49
+ backgrounds: {
50
+ default: 'Light',
51
+ values: [
52
+ { name: 'Light', value: 'var(--qld-light-background)' },
53
+ ],
54
+ },
55
+ },
56
+ decorators: [
57
+ (Story) => {
58
+ return `
59
+ <div class="light">
60
+ ${Story()}
61
+ </div>
62
+ `;
63
+ },
64
+ ],
65
+ };
66
+
67
+ /**
68
+ * Call To Action - Light-Alt
69
+ * */
70
+ export const LightAlt = {
71
+ parameters: {
72
+ backgrounds: {
73
+ default: 'LightAlt',
74
+ values: [
75
+ { name: 'LightAlt', value: 'var(--qld-light-alt-background)' },
76
+ ],
77
+ },
78
+ },
79
+ decorators: [
80
+ (Story) => {
81
+ return `
82
+ <div class="light-alt">
83
+ ${Story()}
84
+ </div>
85
+ `;
86
+ },
87
+ ],
88
+ };
89
+
90
+ /**
91
+ * Call To Action - Dark
92
+ * */
93
+ export const Dark = {
94
+ parameters: {
95
+ backgrounds: {
96
+ default: 'Dark',
97
+ values: [
98
+ { name: 'Dark', value: 'var(--qld-dark-background)' },
99
+ ],
100
+ },
101
+ },
102
+ decorators: [
103
+ (Story) => {
104
+ return `
105
+ <div class="dark">
106
+ ${Story()}
107
+ </div>
108
+ `;
109
+ },
110
+ ],
111
+ };
112
+
113
+ /**
114
+ * Call To Action - Dark-Alt
115
+ * */
116
+ export const DarkAlt = {
117
+ parameters: {
118
+ backgrounds: {
119
+ default: 'DarkAlt',
120
+ values: [
121
+ { name: 'DarkAlt', value: 'var(--qld-dark-alt-background)' },
122
+ ],
123
+ },
124
+ },
125
+ decorators: [
126
+ (Story) => {
127
+ return `
128
+ <div class="dark-alt">
129
+ ${Story()}
130
+ </div>
131
+ `;
132
+ },
133
+ ],
134
+ };
@@ -1,11 +1,11 @@
1
1
  // video.stories.js
2
- import { Video } from './Video.js';
3
- import defaultdata from './video.data.json';
2
+ import { Video } from "./Video.js";
3
+ import defaultdata from "./video.data.json";
4
4
 
5
5
  // include accordion for transcript
6
6
  import { Accordion } from "../accordion/Accordion.js";
7
7
 
8
- /**
8
+ /**
9
9
  * Set default arguments for the Video component,
10
10
  * which is based on YouTube arguments.
11
11
  */
@@ -50,9 +50,18 @@ export default {
50
50
  "Half page": "col-6",
51
51
  },
52
52
  },
53
- urlParams: {
53
+
54
+ "urlParams.autoplay": {
55
+ name: "Autoplay",
56
+ control: {
57
+ type: "boolean",
58
+ },
59
+ },
60
+
61
+ "urlParams.controls": {
62
+ name: "Video controls",
54
63
  control: {
55
- type: "object",
64
+ type: "boolean",
56
65
  },
57
66
  },
58
67
  },
@@ -92,7 +101,7 @@ export const Vimeo = {
92
101
 
93
102
  /**
94
103
  * Custom video
95
- */
104
+ */
96
105
  export const Custom = {
97
106
  args: defaultdata.custom,
98
107
  };
@@ -103,10 +112,8 @@ export const Custom = {
103
112
  export const Light = {
104
113
  parameters: {
105
114
  backgrounds: {
106
- default: 'Light',
107
- values: [
108
- { name: 'Light', value: 'var(--qld-light-background)' },
109
- ],
115
+ default: "Light",
116
+ values: [{ name: "Light", value: "var(--qld-light-background)" }],
110
117
  },
111
118
  },
112
119
  decorators: [
@@ -126,10 +133,8 @@ export const Light = {
126
133
  export const Alternative = {
127
134
  parameters: {
128
135
  backgrounds: {
129
- default: 'Alternative',
130
- values: [
131
- { name: 'Alternative', value: 'var(--qld-light-grey-alt)' },
132
- ],
136
+ default: "Alternative",
137
+ values: [{ name: "Alternative", value: "var(--qld-light-grey-alt)" }],
133
138
  },
134
139
  },
135
140
  decorators: [
@@ -149,10 +154,8 @@ export const Alternative = {
149
154
  export const Dark = {
150
155
  parameters: {
151
156
  backgrounds: {
152
- default: 'Dark',
153
- values: [
154
- { name: 'Dark', value: 'var(--qld-brand-primary)' },
155
- ],
157
+ default: "Dark",
158
+ values: [{ name: "Dark", value: "var(--qld-brand-primary)" }],
156
159
  },
157
160
  },
158
161
  decorators: [
@@ -172,10 +175,8 @@ export const Dark = {
172
175
  export const DarkAlternative = {
173
176
  parameters: {
174
177
  backgrounds: {
175
- default: 'Dark alternative',
176
- values: [
177
- { name: 'Dark alternative', value: 'var(--qld-dark-blue)' },
178
- ],
178
+ default: "Dark alternative",
179
+ values: [{ name: "Dark alternative", value: "var(--qld-dark-blue)" }],
179
180
  },
180
181
  },
181
182
  decorators: [
package/src/css/main.scss CHANGED
@@ -84,6 +84,7 @@ $enable-dark-mode: true;
84
84
  @import "../components/bs5/button/button";
85
85
  @import "../components/bs5/callout/callout";
86
86
  @import "../components/bs5/card/card";
87
+ @import "../components/bs5/callToAction/callToAction";
87
88
  @import "../components/bs5/correctincorrect/correctincorrect";
88
89
  @import "../components/bs5/dateinput/dateinput";
89
90
  @import "../components/bs5/formcheck/formcheck";
@@ -380,4 +380,17 @@
380
380
 
381
381
  .no-print {
382
382
  @extend .d-print-none;
383
+ }
384
+
385
+ @media only print {
386
+ .qld-cta-link {
387
+ color: #000 !important;
388
+
389
+ .icon::after {
390
+ background-image: none !important;
391
+ content: " > " !important;
392
+ border: none !important;
393
+ transform: rotate(0deg) !important;
394
+ }
395
+ }
383
396
  }
@@ -181,6 +181,39 @@ export default function handlebarsHelpers(handlebars) {
181
181
  }
182
182
  return durationString;
183
183
  });
184
+
185
+ /**
186
+ * Used to get class names added to an element based on their boolean values in an array
187
+ * @param {string} names - Comma-separated list of class names to check for
188
+ * @param {array} array - Array of objects to check for true values
189
+ * @returns {string} - Space-separated list of class names that have true values
190
+ */
191
+ handlebars.registerHelper('getClassNames', function(names, array) {
192
+ // Split the comma-separated string of names into an array
193
+ let nameList = names.split(',').map(name => name.trim());
194
+
195
+ // Create an array to hold the names that have true values
196
+ let matchedItems = [];
197
+
198
+ for (let i = 0; i < nameList.length; i++) {
199
+ let name = nameList[i];
200
+ // Check if any item in the array matches the name and is true
201
+ for (let j = 0; j < array.length; j++) {
202
+ if (array[j][name] === true) {
203
+ matchedItems.push(name); // Add to matchedItems if found and true
204
+ break;
205
+ }
206
+ }
207
+ }
208
+
209
+ // If we found any matched items, return them as a space-separated string
210
+ if (matchedItems.length > 0) {
211
+ return matchedItems.join(' ');
212
+ } else {
213
+ return "";
214
+ }
215
+ });
216
+
184
217
  }
185
218
 
186
219
  if(typeof(Handlebars) !== 'undefined') {
@@ -7,6 +7,7 @@ import blockquote from "../components/bs5/blockquote/blockquote.hbs?raw";
7
7
  import breadcrumbs from "../components/bs5/breadcrumbs/breadcrumbs.hbs?raw";
8
8
  import breadcrumbsWrapper from "../components/bs5/breadcumbsWrapper/breadcrumbsWrapper.hbs?raw";
9
9
  import button from "../components/bs5/button/button.hbs?raw";
10
+ import callToAction from "../components/bs5/callToAction/callToAction.hbs?raw";
10
11
  import callout from "../components/bs5/callout/callout.hbs?raw";
11
12
  import card from "../components/bs5/card/card.hbs?raw";
12
13
  import contentFooter from "../components/bs5/contentFooter/contentFooter.hbs?raw";
@@ -55,6 +56,7 @@ export default function handlebarsPartials(handlebars) {
55
56
  handlebars.registerPartial("breadcrumbs", breadcrumbs);
56
57
  handlebars.registerPartial("breadcrumbsWrapper", breadcrumbsWrapper);
57
58
  handlebars.registerPartial("button", button);
59
+ handlebars.registerPartial("callToAction", callToAction);
58
60
  handlebars.registerPartial("callout", callout);
59
61
  handlebars.registerPartial("card", card);
60
62
  handlebars.registerPartial("contentFooter", contentFooter);