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

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.
@@ -0,0 +1,9 @@
1
+ {{! valid class values are: up, down, left, right}}
2
+ <a class="qld-dir-link {{class}}"
3
+ {{~#if id}} id="{{id}}" {{/if~}}
4
+ href="{{href}}"
5
+ {{~#if target}} target="{{target}}"{{/if~}}
6
+ {{~#if arialabel}} aria-label="{{arialabel}}" {{/if~}}>
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.21","branch":"HEAD","tag":"v1.1.21","commit":"a3f1a8cf0304d6c7f562866d133b170b491e720c","majorVersion":"v1"} -->
2
+ <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"1.1.22","branch":"HEAD","tag":"v1.1.22","commit":"2d7f69e1a3cc163bb6c6c9c91fce83d366ef1529","majorVersion":"v1"} -->
3
3
 
4
4
  {{! Select environment, used verbatium if not using predefind key
5
5
  cdn := PROD|STAGING|BETA|TEST|DEV|???
@@ -15,6 +15,7 @@ import contentFooterWrapper from "../components/bs5/contentFooterWrapper/content
15
15
  import contentWrapper from "../components/bs5/contentWrapper/contentWrapper.hbs?raw";
16
16
  import correctincorrect from "../components/bs5/correctincorrect/correctincorrect.hbs?raw";
17
17
  import dateinput from "../components/bs5/dateinput/dateinput.hbs?raw";
18
+ import directionLinks from "../components/bs5/directionLinks/directionLinks.hbs?raw";
18
19
  import footer from "../components/bs5/footer/footer.hbs?raw";
19
20
  import footerForgov from "../components/bs5/footer/footerForgov.hbs?raw";
20
21
  import formcheck from "../components/bs5/formcheck/formcheck.hbs?raw";
@@ -64,6 +65,7 @@ export default function handlebarsPartials(handlebars) {
64
65
  handlebars.registerPartial("contentWrapper", contentWrapper);
65
66
  handlebars.registerPartial("correctincorrect", correctincorrect);
66
67
  handlebars.registerPartial("dateinput", dateinput);
68
+ handlebars.registerPartial("directionLinks", directionLinks);
67
69
  handlebars.registerPartial("footer", footer);
68
70
  handlebars.registerPartial("footerForgov", footerForgov);
69
71
  handlebars.registerPartial("formcheck", formcheck);
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qld-gov-au/qgds-bootstrap5",
3
- "version": "1.1.21",
3
+ "version": "1.1.22",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": "",
3
+ "label": "Up",
4
+ "href": "#",
5
+ "target": "_blank",
6
+ "class": "up"
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qld-gov-au/qgds-bootstrap5",
3
- "version": "1.1.21",
3
+ "version": "1.1.22",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,15 @@
1
+ import { Canvas, Meta, Story } from "@storybook/blocks"
2
+ import * as DirectionLinksStories from "./directionLinks.stories"
3
+
4
+ <Meta of={DirectionLinksStories} />
5
+
6
+ # DirectionLinks
7
+ <Canvas>
8
+ <Story of={DirectionLinksStories.Default} />
9
+ </Canvas>
10
+
11
+ ## Design resources
12
+
13
+ - [Component library (Figma)](https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=23167-395560&t=7cFV6FheiSfxWCL8-0)
14
+ - [Master component file (Figma)](https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=11056-321363&p=f&t=cQBFbBP6J97taQCN-0)
15
+ - [Design System website](https://www.designsystem.qld.gov.au/components/direction-links)
@@ -0,0 +1,7 @@
1
+ {
2
+ "id": "",
3
+ "label": "Up",
4
+ "href": "#",
5
+ "target": "_blank",
6
+ "class": "up"
7
+ }
@@ -0,0 +1,9 @@
1
+ {{! valid class values are: up, down, left, right}}
2
+ <a class="qld-dir-link {{class}}"
3
+ {{~#if id}} id="{{id}}" {{/if~}}
4
+ href="{{href}}"
5
+ {{~#if target}} target="{{target}}"{{/if~}}
6
+ {{~#if arialabel}} aria-label="{{arialabel}}" {{/if~}}>
7
+ {{{label}}}
8
+ <span class="icon" aria-hidden="true"></span>
9
+ </a>
@@ -0,0 +1,11 @@
1
+ import Component from "../../../js/QGDSComponent.js";
2
+ import template from "./directionLinks.hbs?raw";
3
+
4
+ export class DirectionLinks {
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
+ constructor(data = {}) {
9
+ return new Component(template, data);
10
+ }
11
+ }
@@ -0,0 +1,116 @@
1
+ // QGDS QOL Direction Links
2
+
3
+ a.qld-dir-link {
4
+
5
+ --dir-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");
6
+ --link-colour: var(--qld-light-action-primary);
7
+ --icon-colour: var(--qld-light-action-secondary);
8
+ --icon-colour-hover: var(--qld-light-action-secondary-hover);
9
+
10
+ color: var(--link-colour);
11
+ text-decoration-color: var(--link-colour);
12
+ display: flex;
13
+ width: fit-content;
14
+ justify-content: space-between;
15
+ align-self: flex-start;
16
+
17
+ &:focus {
18
+ border-radius: 4px;
19
+ outline: 3px solid var(--qld-focus-color);
20
+ outline-offset: 2px;
21
+ }
22
+
23
+ &.small {
24
+ font-size: 0.875rem;
25
+ line-height: 1rem;
26
+
27
+ .icon {
28
+ &::after {
29
+ zoom: 0.7;
30
+ mask-position: 0;
31
+ }
32
+ }
33
+ }
34
+
35
+ .icon {
36
+ &::after {
37
+ content: "";
38
+ display: inline-block;
39
+ width: 1rem;
40
+ height: 1.25rem;
41
+ mask-image: var(--dir-icon);
42
+ mask-repeat: no-repeat;
43
+ mask-position: 0 0.25rem;
44
+ background-color: var(--icon-colour);
45
+ margin-inline: 0.5rem;
46
+ }
47
+ }
48
+
49
+ &:hover {
50
+
51
+ .icon {
52
+ &::after {
53
+ background-color: var(--icon-colour-hover);
54
+ }
55
+ }
56
+ }
57
+
58
+ &.up {
59
+ .icon {
60
+ transform: rotate(270deg);
61
+ }
62
+ }
63
+
64
+ &.down {
65
+ .icon {
66
+ transform: rotate(90deg);
67
+ }
68
+ }
69
+
70
+ &.left {
71
+ flex-direction: row-reverse;
72
+
73
+ .icon {
74
+ transform: rotate(180deg);
75
+ }
76
+ }
77
+
78
+ &.right {
79
+ .icon {
80
+ transform: rotate(0deg);
81
+ }
82
+ }
83
+ }
84
+
85
+ .light,
86
+ .alt {
87
+ .qld-dir-link {
88
+ --link-colour: var(--qld-light-action-primary);
89
+ --icon-colour: var(--qld-light-action-secondary);
90
+ --icon-colour-hover: var(--qld-light-action-secondary-hover);
91
+ }
92
+ }
93
+
94
+ .dark,
95
+ .dark-alt {
96
+ .qld-dir-link {
97
+ --link-colour: var(--qld-dark-text);
98
+ --icon-colour: var(--qld-dark-action-secondary);
99
+ --icon-colour-hover: var(--qld-dark-action-secondary-hover);
100
+ }
101
+ }
102
+
103
+ li .qld-dir-link {
104
+ width: auto;
105
+ }
106
+
107
+ a[aria-disabled="true"] {
108
+ pointer-events: none;
109
+ color: var(--qld-dark-grey-muted);
110
+
111
+ .icon {
112
+ &::after {
113
+ background-color: var(--qld-dark-grey-muted);
114
+ }
115
+ }
116
+ }
@@ -0,0 +1,157 @@
1
+ /**
2
+ * @file directionLinks.stories.js
3
+ * @description Storybook configuration file for the Direction Links component.
4
+ * @module directionLinks.stories
5
+ */
6
+
7
+ import { DirectionLinks } from "./directionLinks.js";
8
+ import defaultdata from "./directionLinks.data.json";
9
+
10
+ export default {
11
+ tags: ["autodocs"],
12
+ title: "3. Components/Direction Links",
13
+ render: (args) => {
14
+ return `
15
+ <!-- Grid container -->
16
+ <div class="container">
17
+ <div class="row">
18
+ <div class="col">
19
+
20
+ <!-- Component HTML -->
21
+ ${new DirectionLinks({ ...args, class: "up", label: "Up" }).html}
22
+
23
+ </div>
24
+ <div class="col">
25
+
26
+ <!-- Component HTML -->
27
+ ${new DirectionLinks({ ...args, class: "down", label: "Down" }).html}
28
+
29
+ </div>
30
+ <div class="col">
31
+
32
+ <!-- Component HTML -->
33
+ ${new DirectionLinks({ ...args, class: "left", label: "Left" }).html}
34
+
35
+ </div>
36
+ <div class="col">
37
+
38
+ <!-- Component HTML -->
39
+ ${new DirectionLinks({ ...args, class: "right", label: "Right" }).html}
40
+
41
+ </div>
42
+ </div>
43
+ </div>
44
+ `;
45
+ },
46
+ args: defaultdata,
47
+ argTypes: {
48
+ class: {
49
+ control: { type: "select" },
50
+ options: ["left", "right", "up", "down"],
51
+ },
52
+ id: { control: "text" },
53
+ href: { control: "text" },
54
+ target: {
55
+ control: { type: "select" },
56
+ options: ["_self", "_blank", "_parent", "_top"],
57
+ },
58
+ arialabel: { control: "text", name: "aria-label" },
59
+ label: { control: "text" },
60
+ },
61
+ parameters: {
62
+ design: {
63
+ name: "QGDS Figma Reference",
64
+ type: "figma",
65
+ url: "https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=5624-62902&t=8gBcIy6lPlfZ8NHz-0",
66
+ },
67
+ },
68
+ };
69
+
70
+ /**
71
+ * Default story
72
+ */
73
+ export const Default = {};
74
+
75
+ /**
76
+ * Direction Link - Light
77
+ * */
78
+ export const Light = {
79
+ parameters: {
80
+ backgrounds: {
81
+ default: "Light",
82
+ values: [{ name: "Light", value: "var(--qld-light-background)" }],
83
+ },
84
+ },
85
+ decorators: [
86
+ (Story) => {
87
+ return `
88
+ <div class="light">
89
+ ${Story()}
90
+ </div>
91
+ `;
92
+ },
93
+ ],
94
+ };
95
+
96
+ /**
97
+ * Direction Link - Light-Alt
98
+ * */
99
+ export const LightAlt = {
100
+ parameters: {
101
+ backgrounds: {
102
+ default: "LightAlt",
103
+ values: [{ name: "LightAlt", value: "var(--qld-light-alt-background)" }],
104
+ },
105
+ },
106
+ decorators: [
107
+ (Story) => {
108
+ return `
109
+ <div class="light-alt">
110
+ ${Story()}
111
+ </div>
112
+ `;
113
+ },
114
+ ],
115
+ };
116
+
117
+ /**
118
+ * Direction Link - Dark
119
+ * */
120
+ export const Dark = {
121
+ parameters: {
122
+ backgrounds: {
123
+ default: "Dark",
124
+ values: [{ name: "Dark", value: "var(--qld-dark-background)" }],
125
+ },
126
+ },
127
+ decorators: [
128
+ (Story) => {
129
+ return `
130
+ <div class="dark">
131
+ ${Story()}
132
+ </div>
133
+ `;
134
+ },
135
+ ],
136
+ };
137
+
138
+ /**
139
+ * Direction Link - Dark-Alt
140
+ * */
141
+ export const DarkAlt = {
142
+ parameters: {
143
+ backgrounds: {
144
+ default: "DarkAlt",
145
+ values: [{ name: "DarkAlt", value: "var(--qld-dark-alt-background)" }],
146
+ },
147
+ },
148
+ decorators: [
149
+ (Story) => {
150
+ return `
151
+ <div class="dark-alt">
152
+ ${Story()}
153
+ </div>
154
+ `;
155
+ },
156
+ ],
157
+ };
package/src/css/main.scss CHANGED
@@ -87,6 +87,7 @@ $enable-dark-mode: true;
87
87
  @import "../components/bs5/callToAction/callToAction";
88
88
  @import "../components/bs5/correctincorrect/correctincorrect";
89
89
  @import "../components/bs5/dateinput/dateinput";
90
+ @import "../components/bs5/directionLinks/directionLinks";
90
91
  @import "../components/bs5/formcheck/formcheck";
91
92
  @import "../components/bs5/footer/footer";
92
93
  @import "../components/bs5/globalAlert/globalAlert";
@@ -1,6 +1,5 @@
1
1
  //Typography
2
- $font-family-sans-serif:
3
- "Noto Sans",
2
+ $font-family-sans-serif: "Noto Sans",
4
3
  system-ui,
5
4
  -apple-system,
6
5
  "Segoe UI",
@@ -65,7 +64,7 @@ $link-visited-color: $qld-link-visited;
65
64
  --qld-link-hover-color-rgb: var(--qld-link-color-rgb);
66
65
  --qld-selection-color: var(--qld-white);
67
66
  --qld-selection-bg: var(--qld-brand-primary);
68
- --qld-focus-color: var(--qld-light-blue);
67
+ --qld-focus-color: var(--qld-light-focus);
69
68
  }
70
69
 
71
70
  .dark,
@@ -100,8 +99,10 @@ body {
100
99
  margin-bottom: 1.25rem;
101
100
  }
102
101
 
103
- ul, ol, p {
104
- line-height: 1.75;
102
+ ul,
103
+ ol,
104
+ p {
105
+ line-height: 1.75;
105
106
  }
106
107
 
107
108
  li {
@@ -111,8 +112,22 @@ body {
111
112
  }
112
113
 
113
114
  // Apply correct bold font-weight
114
- h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6,
115
- strong, b, th, dt {
115
+ h1,
116
+ .h1,
117
+ h2,
118
+ .h2,
119
+ h3,
120
+ .h3,
121
+ h4,
122
+ .h4,
123
+ h5,
124
+ .h5,
125
+ h6,
126
+ .h6,
127
+ strong,
128
+ b,
129
+ th,
130
+ dt {
116
131
  font-weight: $font-weight-bold;
117
132
  }
118
133
 
@@ -140,7 +155,12 @@ dl.qld-content-dates {
140
155
 
141
156
  // Light, Light alt
142
157
 
143
- h1, h2, h3, h4, h5, h6 {
158
+ h1,
159
+ h2,
160
+ h3,
161
+ h4,
162
+ h5,
163
+ h6 {
144
164
  color: var(--#{$prefix}color-default-color-light-text-heading);
145
165
  }
146
166
 
@@ -155,57 +175,65 @@ a.nav-link {
155
175
  text-decoration-color: var(--#{$prefix}color-default-color-light-underline-default-hover);
156
176
  }
157
177
 
158
- &:visited {
159
- color: var(--#{$prefix}color-default-color-light-link-visited);
160
- text-decoration-color: var(--#{$prefix}color-default-color-light-underline-visited);
161
- &:hover {
162
- text-decoration-thickness: var(--qld-link-underline-thickness-hover);
163
- text-decoration-color: var(--#{$prefix}color-default-color-light-underline-visited-hover);
164
- }
178
+ &:visited {
179
+ color: var(--#{$prefix}color-default-color-light-link-visited);
180
+ text-decoration-color: var(--#{$prefix}color-default-color-light-underline-visited);
181
+
182
+ &:hover {
183
+ text-decoration-thickness: var(--qld-link-underline-thickness-hover);
184
+ text-decoration-color: var(--#{$prefix}color-default-color-light-underline-visited-hover);
165
185
  }
186
+ }
166
187
 
167
- &:focus {
168
- outline: 2px solid var(--qld-focus-color);
169
- outline-offset: 2px;
188
+ &:focus {
189
+ outline: 2px solid var(--qld-focus-color);
190
+ outline-offset: 2px;
170
191
  }
171
192
  }
172
193
 
173
194
  caption {
174
- font-size: 14px;
175
- font-weight: 400;
176
- line-height: 20px;
195
+ font-size: 14px;
196
+ font-weight: 400;
197
+ line-height: 20px;
177
198
  }
178
199
 
179
200
  // Dark, dark alt
180
201
  .dark,
181
202
  .dark-alt {
182
203
 
183
- h1, h2, h3, h4, h5, h6 {
204
+ h1,
205
+ h2,
206
+ h3,
207
+ h4,
208
+ h5,
209
+ h6 {
184
210
  color: var(--#{$prefix}color-default-color-dark-text-heading);
185
211
  }
186
212
 
187
213
 
188
214
  body & {
189
- color: var(--qld-body-color);
215
+ color: var(--qld-body-color);
190
216
  }
191
- a, a.nav-link {
192
- text-decoration-color: var(--#{$prefix}color-default-color-dark-underline-default);
193
-
194
- &:visited {
195
- color: var(--#{$prefix}color-default-color-dark-link-visited);
196
- text-decoration-color: var(--#{$prefix}color-default-color-dark-underline-visited);
197
-
198
- &:hover {
199
- text-decoration-color: var(--#{$prefix}color-default-color-dark-underline-default-hover);
200
- }
201
- }
202
- }
217
+
218
+ a,
219
+ a.nav-link {
220
+ text-decoration-color: var(--#{$prefix}color-default-color-dark-underline-default);
221
+
222
+ &:visited {
223
+ color: var(--#{$prefix}color-default-color-dark-link-visited);
224
+ text-decoration-color: var(--#{$prefix}color-default-color-dark-underline-visited);
225
+
226
+ &:hover {
227
+ text-decoration-color: var(--#{$prefix}color-default-color-dark-underline-default-hover);
228
+ }
203
229
  }
230
+ }
231
+ }
204
232
 
205
233
  caption {
206
- font-size: 14px;
207
- font-weight: 400;
208
- line-height: 20px;
234
+ font-size: 14px;
235
+ font-weight: 400;
236
+ line-height: 20px;
209
237
 
210
238
  }
211
239
 
@@ -228,5 +256,4 @@ a.nostyle {
228
256
  color: var(--qld-selection-color);
229
257
  background: var(--qld-selection-bg);
230
258
  text-shadow: none;
231
- }
232
-
259
+ }
@@ -29,6 +29,7 @@ $qld-light-background: $core-default-color-status-info-lightest;
29
29
  $qld-light-background-shade: $color-default-color-light-background-light-shade;
30
30
  $qld-light-border: $color-default-color-light-border-default;
31
31
  $qld-dark-focus: $color-default-color-dark-focus-default;
32
+ $qld-light-focus: $color-default-color-light-focus-default;
32
33
  $qld-link-visited: $color-default-color-light-underline-visited;
33
34
  $qld-link-visited-dark: $color-default-color-dark-underline-visited;
34
35
  $qld-text-light-blue-dark : $core-default-color-neutral-lighter;
@@ -57,7 +58,7 @@ $qld-light-link: $color-default-color-light-link-default;
57
58
  //Should be core color rather than second hand reference (no match)
58
59
  $qld-soft-grey : $color-default-color-light-border-alt;
59
60
 
60
- $qld-dark-grey-muted : $color-default-color-light-text-lighter;
61
+ $qld-dark-grey-muted : $color-default-color-light-text-lighter;
61
62
  $qld-text-grey : $color-default-color-light-text-default;
62
63
  $qld-hint-text-color: $color-default-color-light-text-lighter;
63
64
  $qld-hint-text-color-muted: $color-default-color-dark-text-lighter;
@@ -181,6 +182,7 @@ $project-colors: (
181
182
  "alt-button-hover": $qld-alt-button-hover,
182
183
  "dark-blue-shade": $qld-dark-blue-shade,
183
184
  "dark-focus": $qld-dark-focus,
185
+ "light-focus": $qld-light-focus,
184
186
  "text-light-blue-dark": $qld-text-light-blue-dark,
185
187
  "light-green-dark": $qld-light-green-dark,
186
188
  "dark-green-dark": $qld-dark-green-dark,
@@ -190,8 +192,8 @@ $project-colors: (
190
192
  "dark-hover" : $qld-dark-hover,
191
193
  "light-action-primary": $qld-light-action-primary,
192
194
  "light-action-primary-hover": $qld-light-action-primary-hover,
193
- "light-action-secondary": $qld-light-action-secondary,
194
- "light-action-secondary-hover": $qld-light-action-secondary-hover,
195
+ "light-action-secondary": $qld-light-action-secondary,
196
+ "light-action-secondary-hover": $qld-light-action-secondary-hover,
195
197
  "dark-action-primary": $qld-dark-action-primary,
196
198
  "dark-action-primary-hover": $qld-dark-action-primary-hover,
197
199
  "dark-action-text": $qld-dark-action-text,
@@ -15,6 +15,7 @@ import contentFooterWrapper from "../components/bs5/contentFooterWrapper/content
15
15
  import contentWrapper from "../components/bs5/contentWrapper/contentWrapper.hbs?raw";
16
16
  import correctincorrect from "../components/bs5/correctincorrect/correctincorrect.hbs?raw";
17
17
  import dateinput from "../components/bs5/dateinput/dateinput.hbs?raw";
18
+ import directionLinks from "../components/bs5/directionLinks/directionLinks.hbs?raw";
18
19
  import footer from "../components/bs5/footer/footer.hbs?raw";
19
20
  import footerForgov from "../components/bs5/footer/footerForgov.hbs?raw";
20
21
  import formcheck from "../components/bs5/formcheck/formcheck.hbs?raw";
@@ -64,6 +65,7 @@ export default function handlebarsPartials(handlebars) {
64
65
  handlebars.registerPartial("contentWrapper", contentWrapper);
65
66
  handlebars.registerPartial("correctincorrect", correctincorrect);
66
67
  handlebars.registerPartial("dateinput", dateinput);
68
+ handlebars.registerPartial("directionLinks", directionLinks);
67
69
  handlebars.registerPartial("footer", footer);
68
70
  handlebars.registerPartial("footerForgov", footerForgov);
69
71
  handlebars.registerPartial("formcheck", formcheck);