@qld-gov-au/qgds-bootstrap5 1.1.2 → 1.1.4

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 (35) hide show
  1. package/.storybook/preview.js +6 -3
  2. package/dist/assets/components/bs5/footer/footer.hbs +182 -175
  3. package/dist/assets/components/bs5/footer/footerForgov.hbs +192 -180
  4. package/dist/assets/components/bs5/head/head.hbs +1 -1
  5. package/dist/assets/css/qld.bootstrap.css +2 -2
  6. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  7. package/dist/assets/js/handlebars.init.min.js +382 -363
  8. package/dist/assets/js/handlebars.init.min.js.map +2 -2
  9. package/dist/assets/node/handlebars.init.min.js +3 -3
  10. package/dist/assets/node/handlebars.init.min.js.map +1 -1
  11. package/dist/components/bs5/footer/footer.hbs +182 -175
  12. package/dist/components/bs5/footer/footerForgov.hbs +192 -180
  13. package/dist/components/bs5/head/head.hbs +1 -1
  14. package/dist/package.json +19 -19
  15. package/dist/sample-data/footer/footer.data.json +3 -3
  16. package/package.json +19 -19
  17. package/src/components/bs5/breadcrumbs/breadcrumbs.scss +1 -1
  18. package/src/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.stories.js +0 -3
  19. package/src/components/bs5/contentFooter/contentFooter.stories.js +0 -3
  20. package/src/components/bs5/contentFooterWrapper/contentFooterWrapper.stories.js +0 -3
  21. package/src/components/bs5/contentWrapper/contentWrapper.stories.js +0 -3
  22. package/src/components/bs5/footer/footer.data.json +3 -3
  23. package/src/components/bs5/footer/footer.hbs +182 -175
  24. package/src/components/bs5/footer/footer.scss +95 -212
  25. package/src/components/bs5/footer/footer.stories.js +4 -11
  26. package/src/components/bs5/footer/footerForgov.hbs +192 -180
  27. package/src/components/bs5/footer/footer_formio.scss +265 -0
  28. package/src/components/bs5/fullPageWrapper/fullPage.stories.js +2 -4
  29. package/src/components/bs5/mainContainerWrapper/mainContainerWrapper.stories.js +2 -3
  30. package/src/components/bs5/sidenavWrapper/sidenavWrapper.stories.js +0 -3
  31. package/src/components/bs5/video/video.scss +5 -0
  32. package/src/css/main.scss +41 -44
  33. package/src/js/QGDSComponent.js +0 -2
  34. package/src/stories/integration/MainIntegration.js +1 -2
  35. package/src/stories/integration/integration.stories.js +2 -0
@@ -0,0 +1,265 @@
1
+ #qg-footer-feedback {
2
+ #feedbackFormIO {
3
+ .qg-spinner {
4
+ padding: var(--#{$prefix}footer-spacing) 0;
5
+ text-align: center;
6
+ }
7
+
8
+ .form-check-input {
9
+ margin-left: 0;
10
+ --qld-form-check-bg: var(--#{$prefix}formIO-bg-colour);
11
+
12
+ &:hover,
13
+ &:focus {
14
+ background-color: var(--#{$prefix}extra-light-grey);
15
+ cursor: pointer;
16
+ }
17
+ }
18
+
19
+ textarea {
20
+ &:hover {
21
+ background-color: var(--#{$prefix}color-default-color-light-background-default-shade);
22
+ }
23
+ &:focus {
24
+ outline: 3px solid var(--#{$prefix}light-blue);
25
+ outline-offset: 2px;
26
+ background-color: var(--#{$prefix}extra-light-grey);
27
+ }
28
+ &.is-valid {
29
+ outline: none;
30
+ background-color: var(--#{$prefix}core-default-color-status-error-lightest);
31
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 0.5);
32
+ border: var(--#{$prefix}formIO-form-control-border-width) solid var(--#{$prefix}formIO-border-notify-invalid);
33
+ box-shadow: none; // Overrides Bootstrap5 styling for invalid input.
34
+
35
+ &:focus {
36
+ outline: 3px solid var(--#{$prefix}light-blue);
37
+ }
38
+ }
39
+ }
40
+
41
+ .form-check-input[type="radio"]:checked {
42
+ background-image: url("data:image/svg+xml,%3csvg viewBox='-2 -2 4 4' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle r='1.8' fill='%23414141'/%3e%3c/svg%3e");
43
+ }
44
+
45
+ .col-form-label {
46
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) + 4px);
47
+ padding-block-end: 0;
48
+ font-weight: 600;
49
+ padding-block-start: 0;
50
+ display: block;
51
+ }
52
+
53
+ .wizard-page>.form-group:first-child .has-feedback {
54
+ label.col-form-label {
55
+ border-block-start: var(--#{$prefix}footer-border-width) solid var(--#{$prefix}formIO-hr-colour);
56
+ padding-block-start: var(--#{$prefix}formIO-spacing);
57
+ }
58
+ }
59
+
60
+ .formio-component-textarea {
61
+ .col-form-label {
62
+ margin-block-end: 4px;
63
+ }
64
+ }
65
+
66
+ .formio-component-submit .btn,
67
+ .formio-component-submit .btn-primary {
68
+ --qld-btn-active-bg: var(--#{$prefix}formIO-submit-btn);
69
+ --qld-btn-color: var(--#{$prefix}formIO-submit-btn-text);
70
+ --qld-btn-border-color: transparent;
71
+ --qld-btn-bg: var(--#{$prefix}formIO-submit-btn);
72
+ margin-block-start: calc(var(--#{$prefix}footer-spacing) + 4px);
73
+ width: 100%;
74
+
75
+ &:hover,
76
+ &:active {
77
+ color: var(--#{$prefix}formIO-submit-btn-text);
78
+ border-color: var(--#{$prefix}formIO-submit-btn-hover);
79
+ text-decoration-line: underline;
80
+ text-decoration-thickness: var(--#{$prefix}formIO-form-control-border-width);
81
+ text-underline-offset: var(--#{$prefix}footer-text-underline-offset);
82
+ background-color: var(--#{$prefix}formIO-submit-btn-hover);
83
+ }
84
+
85
+ &:disabled {
86
+ color: var(--#{$prefix}formIO-formio-colour);
87
+ background-color: var(--#{$prefix}formIO-btn-disabled-colour);
88
+ }
89
+ }
90
+
91
+ .formio-component-radio {
92
+ flex-direction: column;
93
+ padding-inline-start: 0;
94
+ margin-block-end: 0;
95
+ align-items: start;
96
+
97
+ .form-radio {
98
+ .form-check {
99
+ display: block;
100
+ padding: 0;
101
+ margin: 0;
102
+
103
+ .form-check-label {
104
+ display: flex;
105
+ align-items: start;
106
+ margin-block-end: var(--#{$prefix}footer-spacing);
107
+ margin-inline-start: 0;
108
+
109
+ span {
110
+ margin-inline-start: calc(var(--#{$prefix}footer-spacing) - 4px);
111
+ }
112
+ }
113
+
114
+ &:last-of-type {
115
+ margin-block-end: 0px;
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ .form-control {
122
+ background-color: var(--#{$prefix}formIO-bg-colour);
123
+ color: var(--#{$prefix}formIO-formio-colour);
124
+ }
125
+
126
+ .formio-modified {
127
+ .form-check-input {
128
+ outline: none;
129
+ outline-offset: 0;
130
+ }
131
+
132
+ .is-invalid {
133
+ outline: var(--#{$prefix}formIO-border-notify-invalid) solid var(--#{$prefix}formIO-form-control-border-width);
134
+ }
135
+
136
+ textarea {
137
+ outline: none;
138
+ background-color: var(--#{$prefix}formIO-bg-colour);
139
+ outline-offset: 0;
140
+
141
+ &:hover {
142
+ background-color: var(--#{$prefix}color-default-color-light-background-default-shade);
143
+ }
144
+ &:focus {
145
+ outline: 3px solid var(--#{$prefix}light-blue);
146
+ outline-offset: 2px;
147
+ background-color: var(--#{$prefix}extra-light-grey);
148
+ }
149
+ &.is-valid {
150
+ outline: none;
151
+ background-color: var(--#{$prefix}core-default-color-status-error-lightest);
152
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 0.5);
153
+ border: var(--#{$prefix}formIO-form-control-border-width) solid var(--#{$prefix}formIO-border-notify-invalid);
154
+ box-shadow: none; // Overrides Bootstrap5 styling for invalid input.
155
+
156
+ &:focus {
157
+ outline: 3px solid var(--#{$prefix}light-blue);
158
+ }
159
+ }
160
+
161
+ /* Overrides the 'dark' theme that the form is inherited from footer's dark theme - because the form's background is white (light theme). */
162
+ &::selection {
163
+ color: var(--#{$prefix}white);
164
+ background-color: var(--#{$prefix}brand-primary);
165
+ }
166
+ /* End: Overrides 'dark' theme */
167
+ }
168
+ }
169
+
170
+ .callout {
171
+ margin-block-start: 0;
172
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) + 4px);
173
+ background-color: var(--#{$prefix}core-default-color-neutral-lightest);
174
+ border-left: none;
175
+ border-inline-start: calc(var(--#{$prefix}formIO-form-control-border-width) * 2) solid var(--#{$prefix}formIO-callout-border-colour);
176
+
177
+ #feedback-serv-dep-staff {
178
+ color: var(--#{$prefix}formIO-formio-colour);
179
+
180
+ &.status {
181
+ margin: 0 !important;
182
+ background-color: transparent;
183
+ }
184
+
185
+ h4 {
186
+ color: var(--#{$prefix}formIO-formio-colour);
187
+ font-size: var(--#{$prefix}footer-font-size);
188
+ margin-block: 0;
189
+ position: relative;
190
+ line-height: var(--#{$prefix}formIO-callout-heading-line-height);
191
+ }
192
+
193
+ p {
194
+ margin-block-start: var(--#{$prefix}footer-spacing);
195
+ margin-block-end: 0;
196
+ }
197
+ }
198
+ }
199
+
200
+ .formio-component-html1 {
201
+ margin-block-start: calc(var(--#{$prefix}footer-spacing) * -1);
202
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) + 4px);
203
+
204
+ h2 {
205
+ margin-block-start: 0;
206
+ color: var(--#{$prefix}formIO-thankyou-page-title-colour);
207
+ font-size: 1rem;
208
+ font-weight: 600;
209
+ margin-block-end: var(--#{$prefix}footer-spacing);
210
+ }
211
+
212
+ h2:first-child {
213
+ font-weight: 700;
214
+ color: var(--#{$prefix}formIO-thankyou-page-title-colour);
215
+ font-size: 1rem;
216
+ margin-block-start: 0;
217
+ margin-block-end: var(--#{$prefix}footer-spacing);
218
+ border-block-end: var(--#{$prefix}footer-border-width) solid var(--#{$prefix}formIO-hr-colour);
219
+ padding-block-end: calc(var(--#{$prefix}footer-spacing) - 3px);
220
+ }
221
+
222
+ p:last-of-type {
223
+ display: none;
224
+ }
225
+ }
226
+
227
+ button.btn-wizard-nav-submit {
228
+ display: none;
229
+ }
230
+
231
+ .formio-wizard-nav-container {
232
+ display: none;
233
+ }
234
+
235
+ .formio-errors .error {
236
+ margin-block-start: 0px;
237
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 2);
238
+ }
239
+
240
+ .formio-component.has-error .invalid-feedback,
241
+ .formio-component.has-message .invalid-feedback {
242
+ margin-top: 0px;
243
+ }
244
+
245
+ .field-required:after {
246
+ content: none;
247
+ content: "";
248
+ }
249
+
250
+ .field-required:before {
251
+ content: " *";
252
+ color: var(--#{$prefix}formIO-error);
253
+ }
254
+
255
+ p {
256
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 1.25);
257
+ }
258
+
259
+ @include media-breakpoint-down(md) {
260
+ p {
261
+ margin-block-end: var(--#{$prefix}footer-spacing);
262
+ }
263
+ }
264
+ }
265
+ }
@@ -1,7 +1,4 @@
1
1
  import { FullPageTest } from "./fullPage.test.js";
2
- import init from "../../../js/handlebars.init.js";
3
- import Handlebars from "handlebars";
4
-
5
2
  import { dcTerms } from '../metaDcTerms/MetaDcTerms.data.json';
6
3
  import metaOpenGraphData from '../metaOpenGraph/MetaOpenGraph.data.json';
7
4
  import masterbrand_variant from '../header/header.variant.masterBrand.data.json';
@@ -16,6 +13,8 @@ import footerData from "../footer/footer.data.json";
16
13
  const defaultData = {
17
14
  cdn: ".", //for StoryBook it's ., for normal usage "PROD"
18
15
  title: "title goes here",
16
+ "icon-root": masterbrand_variant["icon-root"],
17
+ icons: masterbrand_variant.icons,
19
18
  description: "my description",
20
19
  uri: "http://localhost/uri/here",
21
20
  dcTerms: dcTerms,
@@ -34,7 +33,6 @@ const defaultData = {
34
33
  export default {
35
34
  title: "!Layout/Full Page",
36
35
  render: (args) => {
37
- init(Handlebars)
38
36
  return new FullPageTest(args).html;
39
37
  },
40
38
  args: defaultData,
@@ -1,7 +1,5 @@
1
1
  import { MainContainerWrapperTest } from "./mainContainerWrapper.test.js";
2
2
 
3
- import init from "./../../../js/handlebars.init";
4
- import Handlebars from "handlebars";
5
3
  //Data
6
4
  import masterbrand_variant from '../header/header.variant.masterBrand.data.json';
7
5
  import menu_state from "../navbar/navbar.variant.menuState.data.json";
@@ -15,6 +13,8 @@ import footerData from "../footer/footer.data.json";
15
13
  const defaultData = {
16
14
  cdn: ".", //for storybook it's ., for normal usage "PROD"
17
15
  title: "title goes here",
16
+ "icon-root": masterbrand_variant["icon-root"],
17
+ icons: masterbrand_variant.icons,
18
18
  header: masterbrand_variant,
19
19
  search: searchData,
20
20
  navbar: menu_state,
@@ -28,7 +28,6 @@ const defaultData = {
28
28
  export default {
29
29
  title: "!Layout/Main Container Wrapper",
30
30
  render: (args) => {
31
- init(Handlebars)
32
31
  return new MainContainerWrapperTest(args).html;
33
32
  },
34
33
  args: defaultData,
@@ -1,13 +1,10 @@
1
1
  // ComponentExample.stories.js
2
2
  import { SidenavWrapperTest } from "./SidenavWrapper.test.js";
3
3
  import defaultdata from "./../sidenav/sidenav.data.json";
4
- import init from "./../../../js/handlebars.init";
5
- import Handlebars from "handlebars";
6
4
  export default {
7
5
  tags: ["autodocs"],
8
6
  title: "!Layout/Components/Side Navigation Wrapper",
9
7
  render: (args) => {
10
- init(Handlebars);
11
8
  return new SidenavWrapperTest(args).html;
12
9
  },
13
10
 
@@ -49,6 +49,11 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
49
49
  border-radius: var(--#{$prefix}video-border-radius);
50
50
  box-shadow: 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px rgba(0, 0, 0, 0.3);
51
51
 
52
+ // Add margin top on the next element after video component
53
+ + * {
54
+ margin-top: 2rem;
55
+ }
56
+
52
57
  &-player {
53
58
  position: relative;
54
59
 
package/src/css/main.scss CHANGED
@@ -1,7 +1,3 @@
1
- // DEV Notes:
2
- // ~bootstrap is an alias for node_modules/bootstrap/ as defined in vite.config.js
3
- // ~fontawesome is an alias for node_modules/fontawesome/ as defined in vite.config.js
4
-
5
1
  // Guidelines for this setup: https://getbootstrap.com/docs/5.3/customize/sass/
6
2
 
7
3
  // External fonts
@@ -11,7 +7,8 @@ $font-family-sitename: "Fira Sans";
11
7
 
12
8
  //Icons
13
9
  @import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.css");
14
- @import "~@fortawesome/fontawesome-free/scss/fontawesome.scss";
10
+ //TODO: should we pull from ../../node_modules/@fortawesome/fontawesome-free/css/all.css instead of cdn
11
+ @import "../../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss";
15
12
 
16
13
 
17
14
  //Prefix to namespace design-system classes
@@ -22,9 +19,9 @@ $enable-dark-mode: true;
22
19
 
23
20
 
24
21
  // 1. Include bootstraps functions and variables first (so they can be referenced by proceeding files)
25
- @import "~bootstrap/scss/functions";
26
- @import "~bootstrap/scss/variables";
27
- @import "~bootstrap/scss/variables-dark";
22
+ @import "../../node_modules/bootstrap/scss/functions";
23
+ @import "../../node_modules/bootstrap/scss/variables";
24
+ @import "../../node_modules/bootstrap/scss/variables-dark";
28
25
 
29
26
  // 2. QLD Design System variables (Bootstrap overrides)
30
27
  @import "./qld-variables";
@@ -32,49 +29,49 @@ $enable-dark-mode: true;
32
29
 
33
30
  // 3. Include remainder of bootstrap
34
31
  // 3.1 Required
35
- @import "~bootstrap/scss/maps";
36
- @import "~bootstrap/scss/mixins";
37
- @import "~bootstrap/scss/utilities";
32
+ @import "../../node_modules/bootstrap/scss/maps";
33
+ @import "../../node_modules/bootstrap/scss/mixins";
34
+ @import "../../node_modules/bootstrap/scss/utilities";
38
35
 
39
36
 
40
37
  // 3.2 Recommended, Resets and shared
41
- @import "~bootstrap/scss/root";
42
- @import "~bootstrap/scss/reboot";
43
- @import "~bootstrap/scss/type";
44
- @import "~bootstrap/scss/containers";
45
- @import "~bootstrap/scss/grid";
46
- @import "~bootstrap/scss/helpers";
38
+ @import "../../node_modules/bootstrap/scss/root";
39
+ @import "../../node_modules/bootstrap/scss/reboot";
40
+ @import "../../node_modules/bootstrap/scss/type";
41
+ @import "../../node_modules/bootstrap/scss/containers";
42
+ @import "../../node_modules/bootstrap/scss/grid";
43
+ @import "../../node_modules/bootstrap/scss/helpers";
47
44
 
48
45
  // 3.3 Optional components
49
- @import "~bootstrap/scss/accordion";
50
- @import "~bootstrap/scss/alert";
51
- @import "~bootstrap/scss/badge";
52
- @import "~bootstrap/scss/buttons";
53
- @import "~bootstrap/scss/button-group";
54
- @import "~bootstrap/scss/breadcrumb";
55
- @import "~bootstrap/scss/card";
56
- @import "~bootstrap/scss/carousel";
57
- @import "~bootstrap/scss/close";
58
- @import "~bootstrap/scss/dropdown";
59
- @import "~bootstrap/scss/forms";
60
- @import "~bootstrap/scss/list-group";
61
- @import "~bootstrap/scss/images";
62
- @import "~bootstrap/scss/modal";
63
- @import "~bootstrap/scss/progress";
64
- @import "~bootstrap/scss/transitions";
65
- @import "~bootstrap/scss/nav";
66
- @import "~bootstrap/scss/navbar";
67
- @import "~bootstrap/scss/offcanvas";
68
- @import "~bootstrap/scss/pagination";
69
- @import "~bootstrap/scss/placeholders";
70
- @import "~bootstrap/scss/popover";
71
- @import "~bootstrap/scss/spinners";
72
- @import "~bootstrap/scss/tables";
73
- @import "~bootstrap/scss/toasts";
74
- @import "~bootstrap/scss/tooltip";
46
+ @import "../../node_modules/bootstrap/scss/accordion";
47
+ @import "../../node_modules/bootstrap/scss/alert";
48
+ @import "../../node_modules/bootstrap/scss/badge";
49
+ @import "../../node_modules/bootstrap/scss/buttons";
50
+ @import "../../node_modules/bootstrap/scss/button-group";
51
+ @import "../../node_modules/bootstrap/scss/breadcrumb";
52
+ @import "../../node_modules/bootstrap/scss/card";
53
+ @import "../../node_modules/bootstrap/scss/carousel";
54
+ @import "../../node_modules/bootstrap/scss/close";
55
+ @import "../../node_modules/bootstrap/scss/dropdown";
56
+ @import "../../node_modules/bootstrap/scss/forms";
57
+ @import "../../node_modules/bootstrap/scss/list-group";
58
+ @import "../../node_modules/bootstrap/scss/images";
59
+ @import "../../node_modules/bootstrap/scss/modal";
60
+ @import "../../node_modules/bootstrap/scss/progress";
61
+ @import "../../node_modules/bootstrap/scss/transitions";
62
+ @import "../../node_modules/bootstrap/scss/nav";
63
+ @import "../../node_modules/bootstrap/scss/navbar";
64
+ @import "../../node_modules/bootstrap/scss/offcanvas";
65
+ @import "../../node_modules/bootstrap/scss/pagination";
66
+ @import "../../node_modules/bootstrap/scss/placeholders";
67
+ @import "../../node_modules/bootstrap/scss/popover";
68
+ @import "../../node_modules/bootstrap/scss/spinners";
69
+ @import "../../node_modules/bootstrap/scss/tables";
70
+ @import "../../node_modules/bootstrap/scss/toasts";
71
+ @import "../../node_modules/bootstrap/scss/tooltip";
75
72
 
76
73
  // 7. Optionally include utilities API last to generate classes based on the Sass map in `_utilities.scss`
77
- @import "~bootstrap/scss/utilities/api";
74
+ @import "../../node_modules/bootstrap/scss/utilities/api";
78
75
 
79
76
  //8. QLD Design System typography (bootstrap overrides and custom). Please maintain naming consistency.
80
77
  @import "./qld-type";
@@ -1,5 +1,4 @@
1
1
  import Handlebars from "handlebars";
2
- import handlebarsHelpers from "./handlebars.helpers";
3
2
 
4
3
  export default class Component {
5
4
  /**
@@ -26,4 +25,3 @@ export default class Component {
26
25
  };
27
26
  }
28
27
  }
29
- handlebarsHelpers(Handlebars);
@@ -1,12 +1,11 @@
1
1
  /* global, __dirname */
2
2
 
3
- import init from "./../../js/handlebars.init";
3
+
4
4
  import Handlebars from 'handlebars';
5
5
 
6
6
  export class MainIntegration {
7
7
 
8
8
  constructor(data, args = {}) {
9
- init(Handlebars);
10
9
  console.log("contracutor");
11
10
  this.data = data;
12
11
  this.args = args;
@@ -21,6 +21,8 @@ const defaultData = {
21
21
  template: template, // Adjust template path relative to this file
22
22
  cdn: ".", //for storybook it's ., for normal usage "PROD"
23
23
  title: "title goes here",
24
+ "icon-root": headerData["icon-root"],
25
+ icons: headerData.icons,
24
26
  description: "my description",
25
27
  uri: "http://localhost/uri/here",
26
28
  dcTerms: dcTerms,