@qld-gov-au/qgds-bootstrap5 2.0.9 → 2.0.11

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 (54) hide show
  1. package/.storybook/main.mjs +2 -2
  2. package/dist/assets/components/bs5/banner/banner.hbs +3 -6
  3. package/dist/assets/components/bs5/card/card.hbs +2 -2
  4. package/dist/assets/components/bs5/head/head.hbs +1 -1
  5. package/dist/assets/components/bs5/tag/tag.hbs +1 -1
  6. package/dist/assets/css/qld.bootstrap.css +2 -1
  7. package/dist/assets/css/qld.bootstrap.css.map +2 -2
  8. package/dist/assets/css/qld.bootstrap.legacy.css +2 -1
  9. package/dist/assets/css/qld.bootstrap.legacy.css.map +2 -2
  10. package/dist/assets/js/handlebars.helpers.bundle.js +2 -1
  11. package/dist/assets/js/handlebars.helpers.bundle.js.map +2 -2
  12. package/dist/assets/js/handlebars.init.min.js +9 -11
  13. package/dist/assets/js/handlebars.init.min.js.map +2 -2
  14. package/dist/assets/js/handlebars.partials.js +9 -11
  15. package/dist/assets/js/handlebars.partials.js.map +2 -2
  16. package/dist/assets/js/qld.bootstrap.min.js +6 -5
  17. package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
  18. package/dist/assets/node/handlebars.init.min.js +9 -5
  19. package/dist/assets/node/handlebars.init.min.js.map +2 -2
  20. package/dist/components/bs5/banner/banner.hbs +3 -6
  21. package/dist/components/bs5/card/card.hbs +2 -2
  22. package/dist/components/bs5/head/head.hbs +1 -1
  23. package/dist/components/bs5/tag/tag.hbs +1 -1
  24. package/dist/package.json +1 -1
  25. package/dist/sample-data/card/card.data.json +4 -1
  26. package/dist/sample-data/tag/tag.data.json +149 -143
  27. package/esbuild.js +8 -0
  28. package/package.json +1 -1
  29. package/src/components/bs5/banner/banner.hbs +3 -6
  30. package/src/components/bs5/banner/banner.scss +10 -7
  31. package/src/components/bs5/banner/banner.stories.js +2 -5
  32. package/src/components/bs5/button/button.scss +4 -11
  33. package/src/components/bs5/button/button.stories.js +17 -15
  34. package/src/components/bs5/card/Card.js +31 -2
  35. package/src/components/bs5/card/Card.mdx +4 -0
  36. package/src/components/bs5/card/card--icon-list-footer.stories.js +2 -24
  37. package/src/components/bs5/card/card--multi-action.stories.js +9 -28
  38. package/src/components/bs5/card/card--no-action.stories.js +5 -27
  39. package/src/components/bs5/card/card--single-action.stories.js +4 -33
  40. package/src/components/bs5/card/card.data.json +4 -1
  41. package/src/components/bs5/card/card.hbs +2 -2
  42. package/src/components/bs5/footer/footer_formio.scss +5 -5
  43. package/src/components/bs5/modal/modal.scss +106 -99
  44. package/src/components/bs5/navbar/navbar.functions.js +122 -19
  45. package/src/components/bs5/tag/tag--status.stories.js +1 -0
  46. package/src/components/bs5/tag/tag.data.json +149 -143
  47. package/src/components/bs5/tag/tag.hbs +1 -1
  48. package/src/components/bs5/tag/tag.scss +2 -5
  49. package/src/components/bs5/tag/tag.stories.js +1 -0
  50. package/src/components/bs5/typography/typography.stories.js +1 -1
  51. package/src/css/mixins/focusable.scss +1 -1
  52. package/src/css/mixins/make-icon.scss +1 -1
  53. package/src/js/handlebars.helpers.js +9 -1
  54. package/src/js/utils.js +142 -0
@@ -1,5 +1,5 @@
1
1
  <!-- QGDS Banner Component -->
2
- <div class="qld-banner qld-banner-grid {{ bannerType }} {{ variantClass }} {{ backgroundType }}" role="banner">
2
+ <div class="qld-banner qld-banner-grid {{ bannerType }} {{ variantClass }} {{ backgroundType }}" >
3
3
  <div class="container-fluid">
4
4
  <div class="banner-inner">
5
5
 
@@ -10,7 +10,6 @@
10
10
  <div class="banner-content">
11
11
 
12
12
  {{#if title}}
13
-
14
13
  {{!-- titleClasses accepts a "title-block" class --}}
15
14
  <h1 class="banner-title-wrap {{ join titleClasses }}">
16
15
  <span class="banner-title">{{~title~}}</span>
@@ -52,14 +51,12 @@
52
51
  </div>
53
52
  {{!-- End banner content --}}
54
53
 
55
- {{#if image }}
54
+ {{#ifAll image image.url (cond backgroundType "==" "with-hero-image")}}
56
55
  <div class="banner-image {{ join image.classes }}">
57
56
  <div class="banner-image-inner" style="background-image:url({{image.url}})" role="img"
58
57
  aria-label="{{ image.alt }}"></div>
59
58
  </div>
60
- {{/if}}
61
-
59
+ {{/ifAll}}
62
60
  </div>
63
-
64
61
  </div>
65
62
  </div>
@@ -35,13 +35,13 @@
35
35
  {{#if date}}
36
36
  <div class="card-date">{{date}}</div>
37
37
  {{/if}}
38
- <h3 class="card-title">
38
+ <{{isdefined headingTag 'h3'}} class="card-title">
39
39
  {{#if link}}
40
40
  <a href="{{link}}" {{#ifCond action '===' 'single'}}class="stretched-link"{{/ifCond}}>{{title}}</a>
41
41
  {{else}}
42
42
  {{ title }}
43
43
  {{/if }}
44
- </h3>
44
+ </{{isdefined headingTag 'h3'}}>
45
45
  {{#if description}}
46
46
  <div class="card-text">
47
47
  {{{description}}}
@@ -1,5 +1,5 @@
1
1
 
2
- <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.9","branch":"HEAD","tag":"v2.0.9","commit":"0f12969e32431b89a0e3a8c31cb7d6eb86d06886","majorVersion":"v2"} -->
2
+ <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.11","branch":"HEAD","tag":"v2.0.11","commit":"c1bc176e3a8502826203a87dc48aab0bc1bc8770","majorVersion":"v2"} -->
3
3
 
4
4
  {{! Select environment, used verbatium if not using predefind key
5
5
  cdn := PROD|STAGING|BETA|TEST|DEV|???
@@ -1,6 +1,6 @@
1
1
  <!-- QGDS Component: Tag -->
2
2
 
3
- <ul class="tag-list {{variant}}">
3
+ <ul class="tag-list {{variant}} {{classes}}">
4
4
  {{#each tagItems}}
5
5
  <li class="tag-item {{classes}} {{../size}} {{../emphasis}}">
6
6
  {{{content}}}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qld-gov-au/qgds-bootstrap5",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "noAction": {
3
3
  "title": "Card title",
4
+ "headingTag": "h3",
4
5
  "description": "Card body text",
5
6
  "date": "",
6
7
  "variantClass": "default",
@@ -20,6 +21,7 @@
20
21
  },
21
22
  "singleAction": {
22
23
  "title": "Card title",
24
+ "headingTag": "h3",
23
25
  "description": "Card body text",
24
26
  "date": "",
25
27
  "variantClass": "default",
@@ -39,6 +41,7 @@
39
41
  },
40
42
  "multiAction": {
41
43
  "title": "Card title",
44
+ "headingTag": "h3",
42
45
  "description": "Card body text <a href='javascript:void(0)'>lorem ipsum</a> dolor sit amet.",
43
46
  "date": "",
44
47
  "variantClass": "default",
@@ -56,4 +59,4 @@
56
59
  "footer": "<ul><li><a href='javascript:void(0)'>Link text</a></li><li><a href='javascript:void(0)'>Link text</a></li><li><a href='javascript:void(0)'>Link text</a></li></ul>",
57
60
  "equalHeight": false
58
61
  }
59
- }
62
+ }
@@ -1,145 +1,151 @@
1
1
  {
2
- "default": {
3
- "variant": "tag-default",
4
- "tagItems": [
5
- {
6
- "id": "One",
7
- "content": "Tag text"
8
- },
9
- {
10
- "id": "Two",
11
- "content": "Tag text"
12
- },
13
- {
14
- "id": "Three",
15
- "content": "Tag text"
16
- },
17
- {
18
- "id": "Four",
19
- "content": "Tag text"
20
- }
21
- ]
22
- },
23
- "large": {
24
- "variant": "",
25
- "tagItems": [
26
- {
27
- "id": "One",
28
- "content": "Tag text",
29
- "classes": "tag-large"
30
- },
31
- {
32
- "id": "Two",
33
- "content": "Tag text",
34
- "classes": "tag-large"
35
- },
36
- {
37
- "id": "Three",
38
- "content": "Tag text",
39
- "classes": "tag-large"
40
- }
41
- ]
42
- },
43
- "action": {
44
- "variant": "",
45
- "tagItems": [
46
- {
47
- "id": "One",
48
- "content": "<a href='javascript:void(0)'>Tag text</a>",
49
- "classes": "tag-link"
50
- },
51
- {
52
- "id": "Two",
53
- "content": "<a href='javascript:void(0)'>Tag text</a>",
54
- "classes": "tag-link"
55
- },
56
- {
57
- "id": "Three",
58
- "content": "<a href='javascript:void(0)'>Tag text</a>",
59
- "classes": "tag-link"
60
- }
61
- ]
62
- },
63
- "dark": {
64
- "classes": "",
65
- "variant": "tag-dark",
66
- "tagItems": [
67
- {
68
- "id": "One",
69
- "content": "Tag text"
70
- },
71
- {
72
- "id": "Two",
73
- "content": "Tag text"
74
- },
75
- {
76
- "id": "Three",
77
- "content": "Tag text"
78
- }
79
- ]
80
- },
81
- "info": {
82
- "variant": "",
83
- "tagItems": [
84
- {
85
- "id": "One",
86
- "content": "Tag text",
87
- "classes": "tag-info"
88
- },
89
- {
90
- "id": "Two",
91
- "content": "Tag text",
92
- "classes": "tag-info"
93
- },
94
- {
95
- "id": "Three",
96
- "content": "Tag text",
97
- "classes": "tag-info"
98
- }
99
- ]
100
- },
101
- "filter": {
102
- "variant": "",
103
- "tagItems": [
104
- {
105
- "id": "One",
106
- "content": "Policies and procedures",
107
- "classes": "tag-large",
108
- "applied-filter": true
109
- },
110
- {
111
- "id": "Two",
112
- "content": "Publications",
113
- "classes": "tag-large",
114
- "applied-filter": true
115
- }
116
- ]
117
- },
118
- "status": {
119
- "variant": "tag-status",
120
- "tagItems": [
121
- {
122
- "content": "Neutral",
123
- "classes": "tag-neutral"
124
- },
125
- {
126
- "content": "Success",
127
- "classes": "tag-success"
128
- },
129
- {
130
- "content": "Warning",
131
- "classes": "tag-warning"
132
- },
133
- {
134
- "content": "Error",
135
- "classes": "tag-error"
136
- },
137
- {
138
- "content": "Information",
139
- "classes": "tag-information"
140
- }
141
- ],
142
- "size": "tag-small",
143
- "emphasis": "tag-low"
144
- }
2
+ "default": {
3
+ "variant": "tag-default",
4
+ "classes": "p-4 my-2",
5
+ "tagItems": [
6
+ {
7
+ "id": "One",
8
+ "content": "Tag text"
9
+ },
10
+ {
11
+ "id": "Two",
12
+ "content": "Tag text"
13
+ },
14
+ {
15
+ "id": "Three",
16
+ "content": "Tag text"
17
+ },
18
+ {
19
+ "id": "Four",
20
+ "content": "Tag text"
21
+ }
22
+ ]
23
+ },
24
+ "large": {
25
+ "variant": "",
26
+ "classes": "p-4 my-2",
27
+ "tagItems": [
28
+ {
29
+ "id": "One",
30
+ "content": "Tag text",
31
+ "classes": "tag-large"
32
+ },
33
+ {
34
+ "id": "Two",
35
+ "content": "Tag text",
36
+ "classes": "tag-large"
37
+ },
38
+ {
39
+ "id": "Three",
40
+ "content": "Tag text",
41
+ "classes": "tag-large"
42
+ }
43
+ ]
44
+ },
45
+ "action": {
46
+ "variant": "",
47
+ "classes": "p-4 my-2",
48
+ "tagItems": [
49
+ {
50
+ "id": "One",
51
+ "content": "<a href='javascript:void(0)'>Tag text</a>",
52
+ "classes": "tag-link"
53
+ },
54
+ {
55
+ "id": "Two",
56
+ "content": "<a href='javascript:void(0)'>Tag text</a>",
57
+ "classes": "tag-link"
58
+ },
59
+ {
60
+ "id": "Three",
61
+ "content": "<a href='javascript:void(0)'>Tag text</a>",
62
+ "classes": "tag-link"
63
+ }
64
+ ]
65
+ },
66
+ "dark": {
67
+ "classes": "p-4 my-2",
68
+ "variant": "tag-dark",
69
+ "tagItems": [
70
+ {
71
+ "id": "One",
72
+ "content": "Tag text"
73
+ },
74
+ {
75
+ "id": "Two",
76
+ "content": "Tag text"
77
+ },
78
+ {
79
+ "id": "Three",
80
+ "content": "Tag text"
81
+ }
82
+ ]
83
+ },
84
+ "info": {
85
+ "variant": "",
86
+ "classes": "p-4 my-2",
87
+ "tagItems": [
88
+ {
89
+ "id": "One",
90
+ "content": "Tag text",
91
+ "classes": "tag-info"
92
+ },
93
+ {
94
+ "id": "Two",
95
+ "content": "Tag text",
96
+ "classes": "tag-info"
97
+ },
98
+ {
99
+ "id": "Three",
100
+ "content": "Tag text",
101
+ "classes": "tag-info"
102
+ }
103
+ ]
104
+ },
105
+ "filter": {
106
+ "variant": "",
107
+ "classes": "p-4 my-2",
108
+ "tagItems": [
109
+ {
110
+ "id": "One",
111
+ "content": "Policies and procedures",
112
+ "classes": "tag-large",
113
+ "applied-filter": true
114
+ },
115
+ {
116
+ "id": "Two",
117
+ "content": "Publications",
118
+ "classes": "tag-large",
119
+ "applied-filter": true
120
+ }
121
+ ]
122
+ },
123
+ "status": {
124
+ "variant": "tag-status",
125
+ "classes": "p-4 my-2",
126
+ "tagItems": [
127
+ {
128
+ "content": "Neutral",
129
+ "classes": "tag-neutral"
130
+ },
131
+ {
132
+ "content": "Success",
133
+ "classes": "tag-success"
134
+ },
135
+ {
136
+ "content": "Warning",
137
+ "classes": "tag-warning"
138
+ },
139
+ {
140
+ "content": "Error",
141
+ "classes": "tag-error"
142
+ },
143
+ {
144
+ "content": "Information",
145
+ "classes": "tag-information"
146
+ }
147
+ ],
148
+ "size": "tag-small",
149
+ "emphasis": "tag-low"
150
+ }
145
151
  }
package/esbuild.js CHANGED
@@ -21,6 +21,9 @@ import handlebarsPlugin from "esbuild-plugin-handlebars";
21
21
  import minimist from "minimist";
22
22
  const argv = minimist(process.argv.slice(2));
23
23
 
24
+ //Package Name and Version
25
+ const versionString = `${process.env.npm_package_name} - v${process.env.npm_package_version}`;
26
+
24
27
  // https://esbuild.github.io/getting-started/#build-scripts
25
28
  const buildConfig = {
26
29
  bundle: true,
@@ -59,6 +62,11 @@ const buildConfig = {
59
62
  },
60
63
  ],
61
64
 
65
+ footer: {
66
+ css: `/*# ${versionString} */`,
67
+ js: `//# ${versionString}`,
68
+ },
69
+
62
70
  loader: {
63
71
  ".html": "text",
64
72
  ".hbs": "text",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qld-gov-au/qgds-bootstrap5",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,5 +1,5 @@
1
1
  <!-- QGDS Banner Component -->
2
- <div class="qld-banner qld-banner-grid {{ bannerType }} {{ variantClass }} {{ backgroundType }}" role="banner">
2
+ <div class="qld-banner qld-banner-grid {{ bannerType }} {{ variantClass }} {{ backgroundType }}" >
3
3
  <div class="container-fluid">
4
4
  <div class="banner-inner">
5
5
 
@@ -10,7 +10,6 @@
10
10
  <div class="banner-content">
11
11
 
12
12
  {{#if title}}
13
-
14
13
  {{!-- titleClasses accepts a "title-block" class --}}
15
14
  <h1 class="banner-title-wrap {{ join titleClasses }}">
16
15
  <span class="banner-title">{{~title~}}</span>
@@ -52,14 +51,12 @@
52
51
  </div>
53
52
  {{!-- End banner content --}}
54
53
 
55
- {{#if image }}
54
+ {{#ifAll image image.url (cond backgroundType "==" "with-hero-image")}}
56
55
  <div class="banner-image {{ join image.classes }}">
57
56
  <div class="banner-image-inner" style="background-image:url({{image.url}})" role="img"
58
57
  aria-label="{{ image.alt }}"></div>
59
58
  </div>
60
- {{/if}}
61
-
59
+ {{/ifAll}}
62
60
  </div>
63
-
64
61
  </div>
65
62
  </div>
@@ -17,7 +17,6 @@
17
17
  --#{$prefix}banner-bg-color: var(--#{$prefix}default-background);
18
18
  --#{$prefix}banner-bg-texture: url(../img/banner-texture-tile-default.png);
19
19
  --#{$prefix}banner-bg-image: url(../img/banner-desktop-default.jpg);
20
- --#{$prefix}banner-bg-custom-color: #ebebeb;
21
20
 
22
21
  //Drop shadow for "block style" banner title
23
22
  --#{$prefix}title-box-shadow: 0px 0px 20px 20px rgba(0, 0, 0, 0.06);
@@ -28,14 +27,12 @@
28
27
  --#{$prefix}banner-bg-color: var(--#{$prefix}light-background);
29
28
  --#{$prefix}banner-bg-texture: url(../img/banner-texture-tile-light.png);
30
29
  --#{$prefix}banner-bg-image: url(../img/banner-desktop-light.jpg);
31
- --#{$prefix}banner-bg-custom-color: #e6edf5;
32
30
  }
33
31
 
34
32
  &.light-alt {
35
33
  --#{$prefix}banner-bg-color: var(--#{$prefix}light-alt-background);
36
34
  --#{$prefix}banner-bg-texture: url(../img/banner-texture-tile-light-alt.png);
37
35
  --#{$prefix}banner-bg-image: url(../img/banner-desktop-light-alt.jpg);
38
- --#{$prefix}banner-bg-custom-color: #dadada;
39
36
  }
40
37
 
41
38
  // .dark only
@@ -45,7 +42,6 @@
45
42
  );
46
43
  --#{$prefix}banner-bg-texture: url(../img/banner-texture-tile-dark.png);
47
44
  --#{$prefix}banner-bg-image: url(../img/banner-desktop-dark.jpg);
48
- --#{$prefix}banner-bg-custom-color: #09549f;
49
45
  }
50
46
 
51
47
  // .dark-alt only
@@ -55,7 +51,6 @@
55
51
  );
56
52
  --#{$prefix}banner-bg-texture: url(../img/banner-texture-tile-dark-alt.png);
57
53
  --#{$prefix}banner-bg-image: url(../img/banner-desktop-dark-alt.jpg);
58
- --#{$prefix}banner-bg-custom-color: #0c3b71;
59
54
  }
60
55
 
61
56
  &.dark,
@@ -259,8 +254,8 @@
259
254
  @include media-breakpoint-down(md) {
260
255
  background-image: none;
261
256
 
262
- .banner-image {
263
- margin-top: 0.75rem;
257
+ .banner-breadcrumbs {
258
+ margin-bottom: 0.75rem;
264
259
  }
265
260
 
266
261
  //On mobile, create a gap at top of .banner-inner for the background image
@@ -294,6 +289,10 @@
294
289
  */
295
290
 
296
291
  &.with-hero-image {
292
+ .banner-breadcrumbs {
293
+ margin-bottom: 0.75rem;
294
+ }
295
+
297
296
  .banner-image {
298
297
  // Pins .banner-image frame to top and bottom rails of the banner
299
298
  margin-top: calc(var(--#{$prefix}banner-padding-top) * -1);
@@ -339,6 +338,10 @@
339
338
  @include media-breakpoint-up(md) {
340
339
  overflow: hidden;
341
340
 
341
+ .banner-breadcrumbs {
342
+ margin-bottom: 0;
343
+ }
344
+
342
345
  .banner-image {
343
346
  &.align-right {
344
347
  // Removes relative positioning from this container.
@@ -1,8 +1,5 @@
1
- // Banner.stories.js
2
- import Handlebars from "handlebars";
3
-
4
- import template from "./banner.hbs?raw";
5
1
  import defaultdata from "./banner.data.json";
2
+ import { Banner } from "./Banner";
6
3
 
7
4
  //Import data objects required for the banner and any nested components
8
5
  import breadcrumbdata from "../breadcrumbs/breadcrumbs.data.json";
@@ -74,7 +71,7 @@ export default {
74
71
  render: (args) => {
75
72
  //Adds breadcrumbs to all banner stories, if it isn't already defined or false
76
73
  args.breadcrumbs = args.breadcrumbs || breadcrumbdata["default"];
77
- return new Handlebars.compile(template)(args);
74
+ return new Banner(args).html;
78
75
  },
79
76
 
80
77
  decorators: [
@@ -1,6 +1,8 @@
1
- // QGDS QOL Button
1
+ // QGDS Button
2
2
  // extends https://getbootstrap.com/docs/5.3/components/buttons/#variables
3
3
 
4
+ @use "../../../css/mixins" as m;
5
+
4
6
  // QGDS specific button variables.
5
7
  .btn {
6
8
  --#{$prefix}btn-padding-x: 1.5rem;
@@ -175,10 +177,7 @@ a.btn,
175
177
  color: var(--#{$prefix}btn-active-color);
176
178
  }
177
179
 
178
- &:focus {
179
- outline: var(--#{$prefix}light-blue) solid 3px;
180
- outline-offset: 2px;
181
- }
180
+ @include m.focusable();
182
181
 
183
182
  &:visited {
184
183
  color: var(--#{$prefix}btn-color);
@@ -225,12 +224,6 @@ a.btn,
225
224
  display: inline;
226
225
  }
227
226
 
228
- // Maintain focus styles for screen readers
229
- &:focus {
230
- outline: var(--#{$prefix}light-blue) solid 3px;
231
- outline-offset: 2px;
232
- }
233
-
234
227
  // Remove hover effects
235
228
  &:hover {
236
229
  text-decoration: none;