@qld-gov-au/qgds-bootstrap5 1.0.19 → 1.0.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 (137) hide show
  1. package/.esbuild/plugins/qgds-plugin-copy-assets.js +4 -3
  2. package/.esbuild/plugins/qgds-plugin-handlebar-partial-builder.js +91 -0
  3. package/.esbuild/plugins/qgds-plugin-version.js +3 -2
  4. package/.storybook/preview.js +1 -1
  5. package/dist/assets/css/qld.bootstrap.css +1 -1
  6. package/dist/assets/css/qld.bootstrap.css.map +2 -2
  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 +57 -11
  10. package/dist/assets/js/handlebars.init.min.js +2637 -0
  11. package/dist/assets/js/handlebars.init.min.js.map +7 -0
  12. package/dist/assets/js/qld.bootstrap.min.js +3 -3
  13. package/dist/assets/js/qld.bootstrap.min.js.map +2 -2
  14. package/dist/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.hbs +11 -0
  15. package/dist/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.test.hbs +7 -0
  16. package/dist/components/bs5/contentFooter/contentFooter.hbs +4 -0
  17. package/dist/components/bs5/contentFooterWrapper/contentFooterWrapper.hbs +5 -0
  18. package/dist/components/bs5/contentFooterWrapper/contentFooterWrapper.test.hbs +13 -0
  19. package/dist/components/bs5/contentWrapper/contentWrapper.hbs +5 -0
  20. package/dist/components/bs5/contentWrapper/contentWrapper.test.hbs +12 -0
  21. package/dist/components/bs5/footer/footer.hbs +88 -24
  22. package/dist/components/bs5/fullPageWrapper/fullPage.hbs +16 -0
  23. package/dist/components/bs5/fullPageWrapper/fullPage.test.hbs +4 -0
  24. package/dist/components/bs5/head/head.hbs +1 -1
  25. package/dist/components/bs5/mainContainerWrapper/mainContainerWrapper.hbs +28 -0
  26. package/dist/components/bs5/mainContainerWrapper/mainContainerWrapper.test.hbs +6 -0
  27. package/dist/components/bs5/metaDcTerms/metaDcTerms.hbs +17 -0
  28. package/dist/components/bs5/metaOpenGraph/metaOpenGraph.hbs +18 -0
  29. package/dist/components/bs5/searchInput/searchInput.hbs +2 -2
  30. package/dist/components/bs5/sidenavWrapper/sidenavWrapper.hbs +4 -0
  31. package/dist/components/bs5/sidenavWrapper/sidenavWrapper.test.hbs +15 -0
  32. package/dist/components/bs5/video/video.hbs +3 -1
  33. package/dist/components/handlebars.helpers.js +57 -11
  34. package/dist/components/handlebars.init.js +31 -3
  35. package/dist/components/handlebars.init.min.js +2637 -0
  36. package/dist/components/handlebars.init.min.js.map +7 -0
  37. package/dist/components/handlebars.partials.js +96 -0
  38. package/dist/sample-data/contentFooter/contentFooter.data.json +3 -0
  39. package/dist/sample-data/contentWrapper/contentWrapper.data.json +3 -0
  40. package/dist/sample-data/footer/footer-usingDefaults.data.json +3 -0
  41. package/dist/sample-data/footer/footer.data.json +31 -74
  42. package/dist/sample-data/metaDcTerms/MetaDcTerms.data.json +12 -0
  43. package/dist/sample-data/metaOpenGraph/MetaOpenGraph.data.json +14 -0
  44. package/esbuild.js +9 -3
  45. package/package.json +17 -16
  46. package/src/components/bs5/blockquote/blockquote.scss +31 -28
  47. package/src/components/bs5/breadcrumbs/breadcrumb.functions.js +1 -1
  48. package/src/components/bs5/breadcrumbs/breadcrumbs.scss +101 -83
  49. package/src/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.hbs +11 -0
  50. package/src/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.stories.js +37 -0
  51. package/src/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.test.hbs +7 -0
  52. package/src/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.test.js +13 -0
  53. package/src/components/bs5/breadcumbsWrapper/manifest.json +0 -0
  54. package/src/components/bs5/contentFooter/contentFooter.data.json +3 -0
  55. package/src/components/bs5/contentFooter/contentFooter.hbs +4 -0
  56. package/src/components/bs5/contentFooter/contentFooter.js +10 -0
  57. package/src/components/bs5/contentFooter/contentFooter.stories.js +59 -0
  58. package/src/components/bs5/contentFooter/manifest.json +0 -0
  59. package/src/components/bs5/contentFooterWrapper/contentFooterWrapper.hbs +5 -0
  60. package/src/components/bs5/contentFooterWrapper/contentFooterWrapper.stories.js +39 -0
  61. package/src/components/bs5/contentFooterWrapper/contentFooterWrapper.test.hbs +13 -0
  62. package/src/components/bs5/contentFooterWrapper/contentFooterWrapper.test.js +13 -0
  63. package/src/components/bs5/contentFooterWrapper/manifest.json +0 -0
  64. package/src/components/bs5/contentWrapper/ContentWrapper.test.js +13 -0
  65. package/src/components/bs5/contentWrapper/contentWrapper.data.json +3 -0
  66. package/src/components/bs5/contentWrapper/contentWrapper.hbs +5 -0
  67. package/src/components/bs5/contentWrapper/contentWrapper.stories.js +68 -0
  68. package/src/components/bs5/contentWrapper/contentWrapper.test.hbs +12 -0
  69. package/src/components/bs5/contentWrapper/manifest.json +0 -0
  70. package/src/components/bs5/footer/_colours.scss +3 -2
  71. package/src/components/bs5/footer/_measurements.scss +3 -1
  72. package/src/components/bs5/footer/footer-usingDefaults.data.json +3 -0
  73. package/src/components/bs5/footer/footer.data.json +31 -74
  74. package/src/components/bs5/footer/footer.hbs +88 -24
  75. package/src/components/bs5/footer/footer.scss +139 -81
  76. package/src/components/bs5/footer/footer.stories.js +104 -3
  77. package/src/components/bs5/fullPageWrapper/fullPage.hbs +16 -0
  78. package/src/components/bs5/fullPageWrapper/fullPage.stories.js +65 -0
  79. package/src/components/bs5/fullPageWrapper/fullPage.test.hbs +4 -0
  80. package/src/components/bs5/fullPageWrapper/fullPage.test.js +13 -0
  81. package/src/components/bs5/fullPageWrapper/manifest.json +0 -0
  82. package/src/components/bs5/globalAlert/globalAlert.scss +92 -24
  83. package/src/components/bs5/head/head.stories.js +6 -6
  84. package/src/components/bs5/mainContainerWrapper/mainContainerWrapper.hbs +28 -0
  85. package/src/components/bs5/mainContainerWrapper/mainContainerWrapper.stories.js +51 -0
  86. package/src/components/bs5/mainContainerWrapper/mainContainerWrapper.test.hbs +6 -0
  87. package/src/components/bs5/mainContainerWrapper/mainContainerWrapper.test.js +13 -0
  88. package/src/components/bs5/mainContainerWrapper/manifest.json +0 -0
  89. package/src/components/bs5/metaDcTerms/MetaDcTerms.data.json +12 -0
  90. package/src/components/bs5/metaDcTerms/MetaDcTerms.js +10 -0
  91. package/src/components/bs5/metaDcTerms/manifest.json +0 -0
  92. package/src/components/bs5/metaDcTerms/metaDcTerms.hbs +17 -0
  93. package/src/components/bs5/metaDcTerms/metaDcTerms.stories.js +38 -0
  94. package/src/components/bs5/metaOpenGraph/MetaOpenGraph.data.json +14 -0
  95. package/src/components/bs5/metaOpenGraph/MetaOpenGraph.js +10 -0
  96. package/src/components/bs5/metaOpenGraph/manifest.json +0 -0
  97. package/src/components/bs5/metaOpenGraph/metaOpenGraph.hbs +18 -0
  98. package/src/components/bs5/metaOpenGraph/metaOpenGraph.stories.js +38 -0
  99. package/src/components/bs5/navbar/navbar.scss +2 -2
  100. package/src/components/bs5/searchInput/search.functions.js +6 -6
  101. package/src/components/bs5/searchInput/searchInput.hbs +2 -2
  102. package/src/components/bs5/searchInput/searchInput.scss +17 -7
  103. package/src/components/bs5/sidenavWrapper/SidenavWrapper.mdx +11 -0
  104. package/src/components/bs5/sidenavWrapper/SidenavWrapper.test.js +13 -0
  105. package/src/components/bs5/sidenavWrapper/manifest.json +0 -0
  106. package/src/components/bs5/sidenavWrapper/sidenavWrapper.hbs +4 -0
  107. package/src/components/bs5/sidenavWrapper/sidenavWrapper.stories.js +68 -0
  108. package/src/components/bs5/sidenavWrapper/sidenavWrapper.test.hbs +15 -0
  109. package/src/components/bs5/tag/tag.scss +1 -1
  110. package/src/components/bs5/textbox/textInput.scss +2 -2
  111. package/src/components/bs5/typography/typography.stories.js +9 -0
  112. package/src/components/bs5/video/video.hbs +3 -1
  113. package/src/components/common/layout/content.scss +3 -0
  114. package/src/js/handlebars.helpers.js +57 -11
  115. package/src/js/handlebars.init.js +31 -3
  116. package/src/js/handlebars.partials.js +96 -0
  117. package/src/main.js +1 -1
  118. package/src/scss/qld-print.scss +22 -4
  119. package/src/scss/qld-type.scss +32 -3
  120. package/src/scss/qld-variables.scss +1 -1
  121. package/src/stories/integration/MainIntegration.js +29 -0
  122. package/src/stories/integration/MainIntegration.mdx +10 -0
  123. package/src/stories/integration/breadcrumb.data.json +28 -0
  124. package/src/stories/integration/content.data.json +3 -0
  125. package/src/stories/integration/contentFooter.data.json +3 -0
  126. package/src/stories/integration/footer.data.json +154 -0
  127. package/src/stories/integration/globalAlert.data.json +9 -0
  128. package/src/stories/integration/header.data.json +173 -0
  129. package/src/stories/integration/inpagenav.data.json +26 -0
  130. package/src/stories/integration/integration.stories.js +145 -0
  131. package/src/stories/integration/main.hbs +13 -0
  132. package/src/stories/integration/navigation.data.json +22 -0
  133. package/src/stories/integration/search.data.json +20 -0
  134. package/src/stories/integration/sidenav.data.json +88 -0
  135. package/dist/assets/js/handlebars.init.js +0 -6
  136. package/dist/components/handlebars.init.bundle.js +0 -23
  137. package/dist/components/handlebars.init.bundle.js.map +0 -7
@@ -23,7 +23,7 @@
23
23
  }
24
24
  }
25
25
  .footer-site-name {
26
- font-size: calc(var(--#{$prefix}footer-spacing) * 1.25);
26
+ font-size: var(--#{$prefix}footer-title-font-size);
27
27
  line-height: 1.5;
28
28
  font-weight: 600;
29
29
  margin-block-end: calc(var(--#{$prefix}footer-spacing) * 2);
@@ -40,8 +40,6 @@
40
40
  margin-block-start: calc(var(--#{$prefix}footer-spacing) * 2);
41
41
  }
42
42
  }
43
-
44
- //Bordered columns in the footer should only show above medium breakpoint
45
43
  .border-column {
46
44
  height: 100%;
47
45
  position: relative;
@@ -57,7 +55,7 @@
57
55
  }
58
56
  .footer-heading {
59
57
  color: var(--#{$prefix}footer-color-title);
60
- font-size: calc(var(--#{$prefix}footer-font-size) * 1.25);
58
+ font-size: var(--#{$prefix}footer-title-font-size);
61
59
  margin-block-end: var(--#{$prefix}footer-spacing);
62
60
  line-height: 1.5;
63
61
  font-weight: 600;
@@ -78,6 +76,9 @@
78
76
  --qld-brand-accent: var(--#{$prefix}footer-color-alt-button__hover);
79
77
  }
80
78
  }
79
+ b {
80
+ margin-inline-end: calc(var(--#{$prefix}footer-spacing) * 0.5);
81
+ }
81
82
  }
82
83
  .footer-crest {
83
84
  display: block;
@@ -88,8 +89,6 @@
88
89
  width: 100%;
89
90
  }
90
91
  }
91
-
92
- //Footer Nav classes
93
92
  .nav {
94
93
  --#{$prefix}nav-link-color: var(--#{$prefix}footer-color-link);
95
94
  &.footer-link-list {
@@ -106,6 +105,9 @@
106
105
  &:focus-visible {
107
106
  box-shadow: 0 0 0 3px var(--#{$prefix}footer-color-border);
108
107
  }
108
+ span {
109
+ display: block;
110
+ }
109
111
  }
110
112
  &--social .nav-link {
111
113
  display: flex;
@@ -136,8 +138,8 @@
136
138
  }
137
139
  .footer-contact {
138
140
  .btn {
139
- min-width: 200px; // magic number
140
- margin-block-start: calc(var(--#{$prefix}footer-spacing) * 0.5);
141
+ min-width: 200px;
142
+ margin-block-start: var(--#{$prefix}footer-spacing);
141
143
  }
142
144
  }
143
145
  .container > .row > div {
@@ -146,7 +148,7 @@
146
148
  .btn-global-secondary {
147
149
  white-space: normal;
148
150
  }
149
- @media (max-width: 991.98px) {
151
+ @include media-breakpoint-down(lg) {
150
152
  --#{$prefix}last-para-margin: 24px;
151
153
  --qld-footer-padding-y: 0;
152
154
 
@@ -156,11 +158,13 @@
156
158
  }
157
159
  .container {
158
160
  > .row {
159
- --qld-gutter-x: calc(var(--#{$prefix}footer-gap) * 2);
161
+ margin-inline: calc(var(--#{$prefix}footer-gap) * -1);
162
+ --qld-gutter-x: calc(var(--#{$prefix}footer-spacing) * 2);
160
163
  & > * {
161
164
  padding-inline: 0;
162
165
  }
163
166
  > .col-md-12 {
167
+ --qld-gutter-x: calc(var(--#{$prefix}footer-spacing) * 2);
164
168
  border-top: calc(var(--#{$prefix}footer-special-border-width) - 2px) solid
165
169
  var(--#{$prefix}footer-color-border);
166
170
 
@@ -194,6 +198,9 @@
194
198
  padding-inline: var(--qld-gutter-x);
195
199
  margin-inline: 0;
196
200
  width: 100%;
201
+ .footer-column {
202
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 2);
203
+ }
197
204
  }
198
205
  p:last-child {
199
206
  margin-block-end: 0;
@@ -214,18 +221,21 @@
214
221
  }
215
222
  }
216
223
  }
217
- @media (max-width: 767.98px) {
224
+ @include media-breakpoint-down(md) {
218
225
  .container {
219
226
  > .row {
220
227
  > .col-md-12 {
221
- margin-inline-start: var(--qld-gutter-x);
222
- width: calc(100% - calc(var(--qld-gutter-x) * 2));
228
+ margin-inline-start: var(--#{$prefix}footer-spacing);
229
+ width: calc(100% - calc(var(--#{$prefix}footer-spacing) * 2));
223
230
  }
224
231
  > .title,
225
232
  > .crest {
226
- padding-inline: var(--qld-gutter-x);
233
+ padding-inline: var(--qld-footer-spacing);
227
234
  margin-inline: 0;
228
235
  width: 100%;
236
+ .footer-column {
237
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 2.5);
238
+ }
229
239
  }
230
240
  p:last-child {
231
241
  margin-block-end: var(--#{$prefix}last-para-margin);
@@ -236,6 +246,10 @@
236
246
  column-count: 2;
237
247
  width: 100%;
238
248
  }
249
+ .footer-site-name,
250
+ .footer-heading {
251
+ font-size: calc(var(--#{$prefix}footer-title-font-size) - 0.25rem);
252
+ }
239
253
  }
240
254
  }
241
255
 
@@ -249,6 +263,7 @@
249
263
  border: var(--#{$prefix}footer-special-border-width) solid var(--#{$prefix}footer-color-alt-button);
250
264
  width: 100%;
251
265
  font-weight: normal;
266
+ margin-block-start: var(--#{$prefix}footer-spacing);
252
267
  &:active {
253
268
  color: var(--#{$prefix}formIO-formio-colour);
254
269
  }
@@ -262,7 +277,8 @@
262
277
  width: 100%;
263
278
  text-align: start;
264
279
  background-color: var(--#{$prefix}formIO-bg-colour);
265
- color: var(--#{$prefix}formIO-formio-colour);
280
+ color: var(--#{$prefix}light-text-heading);
281
+ font-weight: 700;
266
282
  border-color: var(--#{$prefix}formIO-bg-colour);
267
283
  border-start-start-radius: var(--#{$prefix}footer-border-radius);
268
284
  border-start-end-radius: var(--#{$prefix}footer-border-radius);
@@ -270,14 +286,31 @@
270
286
  .btn.qg-feedback-toggle {
271
287
  font-weight: bold;
272
288
  }
289
+ &:has(#feedbackFormIO .formio-component-html1) {
290
+ #btn-footer-feedback {
291
+ display: none;
292
+ visibility: hidden;
293
+ }
294
+ #qg-footer-feedback {
295
+ padding-block-start: calc(var(--#{$prefix}footer-spacing) - 4px);
296
+ border-start-start-radius: var(--#{$prefix}footer-border-radius);
297
+ border-start-end-radius: var(--#{$prefix}footer-border-radius);
298
+ }
299
+ }
273
300
  }
274
-
275
301
  #qg-footer-feedback {
302
+ --qld-footer-bootstrap-default-padding: 1.5rem;
303
+
276
304
  background-color: var(--#{$prefix}formIO-bg-colour);
277
305
  a {
278
306
  color: var(--#{$prefix}formIO-link-colour);
307
+ text-decoration-color: var(--#{$prefix}formIO-link-colour);
279
308
  &:hover {
280
- color: var(--#{$prefix}formIO-link-colour-hover);
309
+ text-decoration-thickness: var(--#{$prefix}link-underline-thickness-hover) !important;
310
+ }
311
+ &:hover,
312
+ &:visited {
313
+ color: var(--#{$prefix}formIO-link-colour);
281
314
  }
282
315
  }
283
316
  border-radius: var(--#{$prefix}footer-border-radius);
@@ -288,14 +321,14 @@
288
321
 
289
322
  .qg-footer-feedback-footer {
290
323
  border-block-start: var(--#{$prefix}footer-border-width) solid var(--#{$prefix}formIO-hr-colour);
291
- padding-block-start: var(--#{$prefix}footer-spacing);
324
+ padding-block-start: calc(var(--#{$prefix}footer-spacing) + 4px);
292
325
 
293
326
  a.qg-footer-feedback__close {
294
327
  border: var(--#{$prefix}footer-special-border-width) solid var(--#{$prefix}formIO-btn-close-colour);
295
328
  width: 100%;
296
329
  display: block;
297
330
  border-radius: var(--#{$prefix}footer-border-radius);
298
- padding: 9px 24px; // magic numbers
331
+ padding: 9px 24px;
299
332
  text-align: center;
300
333
  text-decoration: none;
301
334
  &:hover {
@@ -320,23 +353,23 @@
320
353
  .form-check-input[type="radio"]:checked {
321
354
  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");
322
355
  }
323
- .formio-component-fieldSet2 {
324
- margin-block-end: 0;
325
- }
326
356
  .col-form-label {
327
- margin-block-end: calc(var(--#{$prefix}footer-spacing) * 0.5);
328
- font-weight: bold;
329
- }
330
- .formio-component-submit {
331
- margin-block-start: var(--#{$prefix}footer-spacing);
357
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) + 4px);
358
+ padding-block-end: 0;
359
+ font-weight: 600;
360
+ padding-block-start: 0;
361
+ display: block;
332
362
  }
333
- .form-check {
334
- align-items: flex-start;
363
+ .wizard-page > .form-group:first-child .has-feedback {
364
+ label.col-form-label {
365
+ border-block-start: var(--qld-footer-border-width) solid var(--qld-formIO-hr-colour);
366
+ padding-block-start: var(--#{$prefix}formIO-spacing);
367
+ }
335
368
  }
336
- .formio-modified .form-check-input,
337
- .formio-modified .form-control {
338
- border-color: var(--#{$prefix}formIO-border-notify-success);
339
- outline: var(--#{$prefix}formIO-border-outline-width) solid var(--#{$prefix}formIO-border-notify-success);
369
+ .formio-component-textarea {
370
+ .col-form-label {
371
+ margin-block-end: 4px;
372
+ }
340
373
  }
341
374
  .formio-component-submit .btn,
342
375
  .formio-component-submit .btn-primary {
@@ -344,6 +377,7 @@
344
377
  --qld-btn-color: var(--#{$prefix}formIO-submit-btn-text);
345
378
  --qld-btn-border-color: transparent;
346
379
  --qld-btn-bg: var(--#{$prefix}formIO-submit-btn);
380
+ margin-block-start: calc(var(--#{$prefix}footer-spacing) + 4px);
347
381
  width: 100%;
348
382
  &:hover,
349
383
  &:active {
@@ -359,37 +393,29 @@
359
393
  background-color: var(--#{$prefix}formIO-btn-disabled-colour);
360
394
  }
361
395
  }
362
- .form-radio {
363
- .form-check {
364
- display: block;
365
- padding: 0;
366
- margin: 0;
367
- .form-check-label {
368
- display: flex;
369
- align-items: center;
370
- margin-block-end: calc(var(--#{$prefix}footer-spacing) * 0.5);
371
- margin-inline-start: 0;
372
- span {
373
- margin-inline-start: calc(var(--#{$prefix}footer-spacing) - 4px);
374
- }
375
- }
376
- .form-check-input {
377
- margin-left: 0;
378
- }
379
- }
380
- }
381
- .formio-component-howSatisfiedAreYouWithYourExperienceToday {
396
+ .formio-component-radio {
382
397
  flex-direction: column;
383
398
  padding-inline-start: 0;
399
+ margin-block-end: 0;
400
+ align-items: start;
384
401
 
385
- label.col-form-label {
386
- margin-inline-start: 0;
387
- }
388
- .form-check {
389
- display: block;
390
- margin-block-end: calc(var(--#{$prefix}footer-spacing) * 0.75);
391
- span {
392
- margin-block-end: 0;
402
+ .form-radio {
403
+ .form-check {
404
+ display: block;
405
+ padding: 0;
406
+ margin: 0;
407
+ .form-check-label {
408
+ display: flex;
409
+ align-items: start;
410
+ margin-block-end: var(--#{$prefix}footer-spacing);
411
+ margin-inline-start: 0;
412
+ span {
413
+ margin-inline-start: calc(var(--#{$prefix}footer-spacing) - 4px);
414
+ }
415
+ }
416
+ &:last-of-type {
417
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) + 4px);
418
+ }
393
419
  }
394
420
  }
395
421
  }
@@ -398,14 +424,30 @@
398
424
  color: var(--#{$prefix}formIO-formio-colour);
399
425
  border: var(--#{$prefix}formIO-form-control-border-width) solid var(--#{$prefix}formIO-input-border);
400
426
  }
401
- .formio-modified .is-invalid {
402
- outline: var(--#{$prefix}formIO-border-notify-invalid) solid var(--#{$prefix}formIO-form-control-border-width);
403
- border-color: var(--#{$prefix}formIO-border-notify-invalid);
404
- outline-offset: 0;
427
+
428
+ .formio-modified {
429
+ .form-check-input {
430
+ outline: var(--#{$prefix}formIO-border-notify-success) solid var(--#{$prefix}formIO-form-control-border-width);
431
+ outline-offset: 0;
432
+ }
433
+ .is-invalid {
434
+ outline: var(--#{$prefix}formIO-border-notify-invalid) solid var(--#{$prefix}formIO-form-control-border-width);
435
+ }
436
+ textarea {
437
+ outline: var(--#{$prefix}formIO-border-notify-success) solid var(--#{$prefix}formIO-form-control-border-width);
438
+ background-color: #f7fbf8;
439
+ outline-offset: 0;
440
+ }
441
+ textarea.is-invalid {
442
+ outline: var(--#{$prefix}formIO-border-notify-invalid) solid var(--#{$prefix}formIO-form-control-border-width);
443
+ background-color: #fff6f6;
444
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 1.5);
445
+ }
405
446
  }
406
447
  .callout {
407
- margin-block: var(--#{$prefix}footer-spacing);
408
- background-color: var(--#{$prefix}formIO-callout-bg-colour);
448
+ margin-block-start: 0;
449
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) + 4px);
450
+ background-color: var(--#{$prefix}core-default-color-neutral-lightest);
409
451
  border-left: none;
410
452
  border-inline-start: calc(var(--#{$prefix}formIO-form-control-border-width) * 2) solid
411
453
  var(--#{$prefix}formIO-callout-border-colour);
@@ -430,19 +472,25 @@
430
472
  }
431
473
  .formio-component-html1 {
432
474
  margin-block-start: calc(var(--#{$prefix}footer-spacing) * -1);
475
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) + 4px);
433
476
 
434
477
  h2 {
435
478
  margin-block-start: 0;
436
479
  color: var(--#{$prefix}formIO-thankyou-page-title-colour);
437
- font-size: var(--#{$prefix}footer-spacing);
438
- font-weight: bolder;
480
+ font-size: 1rem;
481
+ font-weight: 600;
439
482
  margin-block-end: var(--#{$prefix}footer-spacing);
440
-
441
- &:first-of-type {
442
- border-block-end: var(--#{$prefix}footer-border-width) solid var(--#{$prefix}formIO-hr-colour);
443
- padding-block-end: 13px; // magic number
444
- }
445
483
  }
484
+ h2:first-child {
485
+ font-weight: 700;
486
+ color: var(--#{$prefix}formIO-thankyou-page-title-colour);
487
+ font-size: 1rem;
488
+ margin-block-start: 0;
489
+ margin-block-end: var(--#{$prefix}footer-spacing);
490
+ border-block-end: var(--#{$prefix}footer-border-width) solid var(--#{$prefix}formIO-hr-colour);
491
+ padding-block-end: calc(var(--#{$prefix}footer-spacing) - 3px);
492
+ }
493
+
446
494
  p:last-of-type {
447
495
  display: none;
448
496
  }
@@ -454,14 +502,24 @@
454
502
  display: none;
455
503
  }
456
504
  .formio-errors .error {
505
+ margin-block-start: calc(var(--#{$prefix}footer-spacing) * -1);
457
506
  margin-block-end: var(--#{$prefix}footer-spacing);
458
507
  }
459
- }
460
- }
461
-
462
- @media (max-width: 300px) {
463
- // This is the min width where the content is still usable.
464
- .qld-footer {
465
- width: 300px;
508
+ .field-required:after {
509
+ content: none;
510
+ content: "";
511
+ }
512
+ .field-required:before {
513
+ content: " *";
514
+ color: var(--#{$prefix}formIO-error);
515
+ }
516
+ p {
517
+ margin-block-end: calc(var(--#{$prefix}footer-spacing) * 1.25);
518
+ }
519
+ @include media-breakpoint-down(md) {
520
+ p {
521
+ margin-block-end: var(--#{$prefix}footer-spacing);
522
+ }
523
+ }
466
524
  }
467
525
  }
@@ -3,10 +3,107 @@ import { Footer, FooterForgov } from "./Footer.js";
3
3
 
4
4
  import defaultdata from "./footer.data.json";
5
5
 
6
+
6
7
  export default {
7
8
  tags: ["autodocs"],
8
9
  title: "!Core/Footer",
9
10
  render: (args) => new Footer(args).html,
11
+ // parameters: {
12
+ // controls: {include: []},
13
+ // },
14
+ argTypes: {
15
+ "feedbackForm.formAttr.data-formio-project-name": { //data-formio-project-name
16
+ name: "Form.io Project, edit feedbackForm to change",
17
+ description: `Footer Feedback project's for reference edit feedbackForm formAttr.data-formio-project-name to update`,
18
+ control: {
19
+ type: 'radio',
20
+ labels: {
21
+ "dev-oldkihhcwbdtwye" : "TEST (dev-oldkihhcwbdtwye)",
22
+ "staging-oldkihhcwbdtwye" : "STAGING (staging-oldkihhcwbdtwye)",
23
+ "uat-oldkihhcwbdtwye" : "UAT (uat-oldkihhcwbdtwye)",
24
+ "oldkihhcwbdtwye": "PROD (oldkihhcwbdtwye)",
25
+ },
26
+ },
27
+ options: [
28
+ "dev-oldkihhcwbdtwye",
29
+ "uat-oldkihhcwbdtwye",
30
+ "staging-oldkihhcwbdtwye",
31
+ "oldkihhcwbdtwye",
32
+ ],
33
+
34
+ },
35
+ sitename: {
36
+ name: "Site Name",
37
+ description: "Name of the site",
38
+ control: {type: 'text'},
39
+ },
40
+ contactHasContactList: {
41
+ name: "Contact Has Contact List",
42
+ description: "Whether the contact list is enabled",
43
+ control: {type: 'boolean'},
44
+ },
45
+ footerHasCrestDisabled: {
46
+ name: "Footer Has Crest",
47
+ description: "Whether the footer has a crest",
48
+ control: {type: 'boolean'},
49
+ },
50
+ footerHasStateOfQldDisabled: {
51
+ name: "Footer Has State of Qld",
52
+ description: "Whether the footer shows State of Qld",
53
+ control: {type: 'boolean'},
54
+ },
55
+ feedbackFormDisabled: {
56
+ name: "Feedback Form Disabled",
57
+ description: "Whether the feedback form is visible",
58
+ control: {type: 'boolean'},
59
+ },
60
+ followlinksEnabled: {
61
+ name: "Follow Links Enabled",
62
+ description: "Whether the follow links are enabled",
63
+ control: {type: 'boolean'},
64
+ },
65
+ copyrightHasYearFrom: {
66
+ name: "Copyright Has Year From",
67
+ description: "Whether the copyright section has a year from",
68
+ control: {type: 'boolean'},
69
+ },
70
+ copyrightOrganisationName: {
71
+ name: "Copyright Organisation Name",
72
+ description: "Name of the copyright organisation",
73
+ control: {type: 'text'},
74
+ },
75
+ contact: {
76
+ name: "Contact",
77
+ description: "Contact section details",
78
+ control: {type: 'object'},
79
+ },
80
+ lookup: {
81
+ name: "Lookup",
82
+ description: "Lookup section details",
83
+ control: {type: 'object'},
84
+ },
85
+ acknowledgements: {
86
+ name: "Acknowledgements",
87
+ description: "Acknowledgements section details",
88
+ control: {type: 'array'},
89
+ },
90
+ copyright: {
91
+ name: "Copyright",
92
+ description: "Copyright section details",
93
+ control: {type: 'object'},
94
+ },
95
+ footerlinks: {
96
+ name: "Footer Links",
97
+ description: "Footer links section details",
98
+ control: {type: 'object'},
99
+ },
100
+
101
+ followlinks: {
102
+ name: "Follow Links",
103
+ description: "Follow links section details",
104
+ control: {type: 'object'},
105
+ },
106
+ },
10
107
  };
11
108
 
12
109
  /**
@@ -14,9 +111,13 @@ export default {
14
111
  */
15
112
  export const Default = {
16
113
  args: defaultdata,
17
- parameters: {
18
- controls: { include: [] },
19
- },
114
+ };
115
+
116
+ /**
117
+ * Example footer doing handlebars defaults
118
+ */
119
+ export const DefaultBlank = {
120
+ args: {},
20
121
  };
21
122
 
22
123
  /**
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>{{title}}</title>
7
+ {{> metaDcTerms title=title description=description uri=uri dcTerms=dcTerms }}
8
+ {{> metaOpenGraph title=title description=description uri=uri seo=seo og=og }}
9
+ {{> head }}
10
+ </head>
11
+ <body>
12
+ {{#> mainContainerWrapper }}
13
+ {{> @partial-block }}
14
+ {{/mainContainerWrapper}}
15
+ </body>
16
+ </html>
@@ -0,0 +1,65 @@
1
+ import { FullPageTest } from "./fullPage.test.js";
2
+ import init from "../../../js/handlebars.init.js";
3
+ import Handlebars from "handlebars";
4
+
5
+ import { dcTerms } from '../metaDcTerms/MetaDcTerms.data.json';
6
+ import metaOpenGraphData from '../metaOpenGraph/MetaOpenGraph.data.json';
7
+ import { masterbrand_variant } from '../header/header.data.json';
8
+ import { menu_state } from "../navbar/navbar.data.json";
9
+ import breadcrumbsData from "../breadcrumbs/breadcrumbs.data.json";
10
+ import searchData from "../searchInput/searchInput.data.json";
11
+ import globalAlertData from "../globalAlert/globalAlert.data.json";
12
+ import sidenavData from "../sidenav/sidenav.data.json";
13
+ import contentFooterData from "../contentFooter/contentFooter.data.json";
14
+ import footerData from "../footer/footer.data.json";
15
+
16
+ const defaultData = {
17
+ cdn: ".", //for StoryBook it's ., for normal usage "PROD"
18
+ title: "title goes here",
19
+ description: "my description",
20
+ uri: "http://localhost/uri/here",
21
+ dcTerms: dcTerms,
22
+ seo: metaOpenGraphData.seo,
23
+ og: metaOpenGraphData.og,
24
+ header: masterbrand_variant,
25
+ search: searchData,
26
+ navbar: menu_state,
27
+ breadcrumbs: breadcrumbsData.forGov,
28
+ globalAlert: globalAlertData.critical,
29
+ sidenav: sidenavData,
30
+ contentFooter: contentFooterData,
31
+ footer: footerData,
32
+ };
33
+
34
+ export default {
35
+ title: "!Layout/Full Page",
36
+ render: (args) => {
37
+ init(Handlebars)
38
+ return new FullPageTest(args).html;
39
+ },
40
+ args: defaultData,
41
+ argTypes: {
42
+ },
43
+ parameters: {
44
+ layout: 'fullscreen',
45
+ docs: {
46
+ controls: {
47
+
48
+ },
49
+ },
50
+ },
51
+ decorators: [
52
+ (Story) => {
53
+ return `
54
+ ${Story()}
55
+ `;
56
+ },
57
+ ],
58
+ };
59
+
60
+ /**
61
+ * Default
62
+ *
63
+ */
64
+ export const Default = {};
65
+
@@ -0,0 +1,4 @@
1
+ {{#>fullPage}}
2
+ my main content goes here
3
+ {{/fullPage}}
4
+
@@ -0,0 +1,13 @@
1
+ import Component from '../../../js/QGDSComponent.js'
2
+ import template from "./fullPage.test.hbs?raw";
3
+
4
+ export class FullPageTest {
5
+
6
+ // Use the global Component class to create a new instance of the Sidenav component.
7
+ // A data object, containing the Handlebars placeholder replacement strings, should be provided as an argument.
8
+
9
+ constructor( data = {} ) {
10
+ return new Component(template, data);
11
+ }
12
+
13
+ }