@qld-gov-au/qgds-bootstrap5 1.1.41 → 2.0.0

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 (143) hide show
  1. package/.eslintrc.cjs +27 -27
  2. package/.vscode/settings.json +5 -5
  3. package/dist/assets/components/bs5/card/card.hbs +3 -17
  4. package/dist/assets/components/bs5/footer/customLinks.hbs +7 -0
  5. package/dist/assets/components/bs5/footer/feedbackForm.hbs +25 -0
  6. package/dist/assets/components/bs5/footer/followLinks.hbs +14 -0
  7. package/dist/assets/components/bs5/footer/footer.hbs +229 -346
  8. package/dist/assets/components/bs5/head/head.hbs +4 -4
  9. package/dist/assets/components/bs5/header/header.hbs +124 -878
  10. package/dist/assets/components/bs5/header/headerBrand.hbs +35 -0
  11. package/dist/{components/bs5/iconLink/iconLink.hbs → assets/components/bs5/link/link.hbs} +3 -3
  12. package/dist/assets/components/bs5/logo/logoCOALandscape.hbs +110 -55
  13. package/dist/assets/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  14. package/dist/assets/components/bs5/navbar/navbar.hbs +3 -3
  15. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  16. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  17. package/dist/assets/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  18. package/dist/assets/components/bs5/searchInput/searchInput.hbs +1 -1
  19. package/dist/assets/css/qld.bootstrap.css +1 -1
  20. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  21. package/dist/assets/js/handlebars.helpers.bundle.js.map +2 -2
  22. package/dist/assets/js/handlebars.helpers.js +34 -34
  23. package/dist/assets/js/handlebars.init.min.js +830 -1791
  24. package/dist/assets/js/handlebars.init.min.js.map +4 -4
  25. package/dist/assets/js/handlebars.partials.js +12 -8
  26. package/dist/assets/js/qld.bootstrap.min.js +5 -5
  27. package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
  28. package/dist/assets/node/handlebars.init.min.js +398 -120
  29. package/dist/assets/node/handlebars.init.min.js.map +3 -3
  30. package/dist/components/bs5/card/card.hbs +3 -17
  31. package/dist/components/bs5/footer/customLinks.hbs +7 -0
  32. package/dist/components/bs5/footer/feedbackForm.hbs +25 -0
  33. package/dist/components/bs5/footer/followLinks.hbs +14 -0
  34. package/dist/components/bs5/footer/footer.hbs +229 -346
  35. package/dist/components/bs5/head/head.hbs +4 -4
  36. package/dist/components/bs5/header/header.hbs +124 -878
  37. package/dist/components/bs5/header/headerBrand.hbs +35 -0
  38. package/dist/{assets/components/bs5/iconLink/iconLink.hbs → components/bs5/link/link.hbs} +3 -3
  39. package/dist/components/bs5/logo/logoCOALandscape.hbs +110 -55
  40. package/dist/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  41. package/dist/components/bs5/navbar/navbar.hbs +3 -3
  42. package/dist/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  43. package/dist/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  44. package/dist/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  45. package/dist/components/bs5/searchInput/searchInput.hbs +1 -1
  46. package/dist/components/handlebars.helpers.js +34 -34
  47. package/dist/components/handlebars.partials.js +12 -8
  48. package/dist/package.json +1 -1
  49. package/dist/sample-data/footer/footer.data.json +128 -84
  50. package/dist/sample-data/header/header.variant.coBrand.data.json +28 -40
  51. package/dist/sample-data/header/header.variant.endorsed.data.json +116 -150
  52. package/dist/sample-data/header/header.variant.masterBrand.data.json +116 -152
  53. package/dist/sample-data/header/header.variant.standAlone.data.json +118 -150
  54. package/dist/sample-data/header/header.variant.subBrand.data.json +32 -159
  55. package/dist/sample-data/inpageAlert/inpageAlert.data.json +6 -6
  56. package/dist/sample-data/logo/logo.data.json +1 -0
  57. package/dist/sample-data/navbar/navbar.data.json +5 -5
  58. package/package.json +1 -1
  59. package/src/components/bs5/accordion/Accordion.mdx +8 -2
  60. package/src/components/bs5/banner/Banner.mdx +6 -1
  61. package/src/components/bs5/banner/banner.scss +16 -9
  62. package/src/components/bs5/banner/banner.stories.js +17 -17
  63. package/src/components/bs5/breadcrumbs/Breadcrumbs.mdx +8 -2
  64. package/src/components/bs5/button/button.stories.js +8 -8
  65. package/src/components/bs5/callToAction/callToAction.mdx +8 -3
  66. package/src/components/bs5/card/Card.mdx +8 -2
  67. package/src/components/bs5/card/card.hbs +3 -17
  68. package/src/components/bs5/card/card.scss +103 -103
  69. package/src/components/bs5/containerLayout/containerLayout.stories.js +1 -1
  70. package/src/components/bs5/footer/Footer.js +3 -3
  71. package/src/components/bs5/footer/Footer.mdx +8 -2
  72. package/src/components/bs5/footer/customLinks.hbs +7 -0
  73. package/src/components/bs5/footer/feedbackForm.hbs +25 -0
  74. package/src/components/bs5/footer/followLinks.hbs +14 -0
  75. package/src/components/bs5/footer/footer.data.json +128 -84
  76. package/src/components/bs5/footer/footer.functions.js +2 -1
  77. package/src/components/bs5/footer/footer.hbs +229 -346
  78. package/src/components/bs5/footer/footer.scss +262 -272
  79. package/src/components/bs5/footer/footer.stories.js +4 -92
  80. package/src/components/bs5/footer/footer_formio.scss +219 -0
  81. package/src/components/bs5/globalAlert/GlobalAlert.mdx +8 -2
  82. package/src/components/bs5/globalAlert/globalAlert.test.js +3 -11
  83. package/src/components/bs5/header/_header-variables.scss +272 -0
  84. package/src/components/bs5/header/header.functions.js +9 -9
  85. package/src/components/bs5/header/header.hbs +124 -878
  86. package/src/components/bs5/header/header.scss +279 -411
  87. package/src/components/bs5/header/header.stories.js +8 -28
  88. package/src/components/bs5/header/header.variant.coBrand.data.json +28 -40
  89. package/src/components/bs5/header/header.variant.endorsed.data.json +116 -150
  90. package/src/components/bs5/header/header.variant.masterBrand.data.json +116 -152
  91. package/src/components/bs5/header/header.variant.standAlone.data.json +118 -150
  92. package/src/components/bs5/header/header.variant.subBrand.data.json +32 -159
  93. package/src/components/bs5/header/headerBrand.hbs +35 -0
  94. package/src/components/bs5/inpageAlert/InpageAlert.mdx +8 -2
  95. package/src/components/bs5/inpageAlert/inpageAlert.data.json +6 -6
  96. package/src/components/bs5/{iconLink/iconLink.hbs → link/link.hbs} +3 -3
  97. package/src/components/bs5/{iconLink/iconLink.js → link/link.js} +2 -2
  98. package/src/components/bs5/{iconLink/iconLink.mdx → link/link.mdx} +3 -3
  99. package/src/components/bs5/{iconLink/iconLink.scss → link/link.scss} +27 -3
  100. package/src/components/bs5/{iconLink/iconLink.stories.js → link/link.stories.js} +4 -5
  101. package/src/components/bs5/linkColumns/linkColumns.mdx +8 -3
  102. package/src/components/bs5/logo/logo.data.json +1 -0
  103. package/src/components/bs5/logo/logoCOALandscape.hbs +110 -55
  104. package/src/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  105. package/src/components/bs5/navbar/navbar.data.json +5 -5
  106. package/src/components/bs5/navbar/navbar.hbs +3 -3
  107. package/src/components/bs5/navbar/navbar.scss +669 -614
  108. package/src/components/bs5/navbar/navbar.stories.js +1 -0
  109. package/src/components/bs5/pageLayout/{FullWidthLandingPage.js → HomePage.js} +2 -2
  110. package/src/components/bs5/pageLayout/pageLayout.stories.js +242 -98
  111. package/src/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  112. package/src/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  113. package/src/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  114. package/src/components/bs5/promotionalPanel/PromotionalPanel.mdx +8 -3
  115. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +1 -1
  116. package/src/components/bs5/searchInput/searchInput.hbs +1 -1
  117. package/src/components/bs5/searchInput/searchInput.scss +2 -1
  118. package/src/components/bs5/searchInput/searchInput.test.js +1 -2
  119. package/src/css/main.scss +4 -1
  120. package/src/css/mixins/_index.scss +2 -1
  121. package/src/css/mixins/register-vars.scss +23 -0
  122. package/src/css/qld-variables.scss +4 -2
  123. package/src/css/utilities/_index.scss +1 -0
  124. package/src/css/utilities/responsive-visually-hidden.scss +10 -0
  125. package/src/js/handlebars.helpers.js +34 -34
  126. package/src/js/handlebars.partials.js +12 -8
  127. package/src/js/qld.bootstrap.js +10 -11
  128. package/dist/assets/components/bs5/footer/footerForgov.hbs +0 -279
  129. package/dist/assets/components/bs5/pageLayout/pageLayout.hbs +0 -34
  130. package/dist/assets/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  131. package/dist/components/bs5/footer/footerForgov.hbs +0 -279
  132. package/dist/components/bs5/pageLayout/pageLayout.hbs +0 -34
  133. package/dist/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  134. package/src/components/bs5/footer/_colours.scss +0 -149
  135. package/src/components/bs5/footer/_measurements.scss +0 -32
  136. package/src/components/bs5/footer/footerForgov.hbs +0 -279
  137. package/src/components/bs5/header/_colours.scss +0 -271
  138. package/src/components/bs5/header/_icons.scss +0 -10
  139. package/src/components/bs5/pageLayout/pageLayout.hbs +0 -34
  140. package/src/components/bs5/pageLayout/pageLayout.js +0 -21
  141. package/src/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  142. /package/dist/sample-data/{iconLink/iconLink.data.json → link/link.data.json} +0 -0
  143. /package/src/components/bs5/{iconLink/iconLink.data.json → link/link.data.json} +0 -0
@@ -5,7 +5,6 @@
5
5
  <meta charset="UTF-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <title>{{title}}</title>
8
- {{> head }}
9
8
  </head>
10
9
 
11
10
  <body>
@@ -21,80 +20,101 @@
21
20
  {{/if}}
22
21
 
23
22
  <main>
24
- <div class="container-fluid">
25
- <div class="container qld-content">
26
- {{#if breadcrumbs}}
27
- <div class="row">
28
- <div class="col-12">
29
- <!-- breadcrumbs -->
30
- {{> breadcrumbs breadcrumbs}}
31
- </div>
23
+ <div class="container mt-40 mt-lg-64">
24
+ {{#if breadcrumbs}}
25
+ <div class="row">
26
+ <div class="col-12">
27
+ <!-- breadcrumbs -->
28
+ {{> breadcrumbs breadcrumbs}}
32
29
  </div>
33
- {{/if}}
34
-
35
- <!-- Main Grid Layout: Side navigation and content -->
36
- <div class="row">
37
- {{#if sidenav}}
38
- <!-- Side navigation Col -->
39
- <div class="col-lg-3 col-md-4 px-0">
40
- {{> sidenav sidenav}}
41
- </div>
42
- <!-- Content Col -->
43
- <div class="col-lg-8 col-md-7 ps-32">
44
- {{else}}
45
- <div class="col-12">
46
- {{/if}}
30
+ </div>
31
+ {{/if}}
32
+
33
+ <!-- Main Grid Layout: Side navigation and content -->
34
+ <div class="row">
35
+ {{#if sidenav}}
36
+ <!-- Side navigation Col -->
37
+ <div class="col-12 col-lg-3 mt-5 mt-lg-0">
38
+ {{> sidenav sidenav}}
39
+ </div>
40
+ <!-- Content Col -->
41
+ <div class="col-lg-8 col-md-7 ps-1 ps-md-32">
42
+ {{else}}
43
+ <div class="col-12">
44
+ {{/if}}
47
45
 
48
- <!-- Main Content Sections -->
49
- <div class="content-section ps-32">
46
+ <!-- Main Content Sections -->
47
+ <div class="content-section mb-5 px-1 px-md-32">
50
48
 
51
- {{#if inpagenav}}
52
- <!-- inpagenav Section -->
53
- {{> inpagenav inpagenav}}
54
- {{/if}}
49
+ {{#if inpagenav}}
50
+ <!-- inpagenav Section -->
51
+ {{> inpagenav inpagenav}}
52
+ {{/if}}
55
53
 
56
- <h1 id="section-heading">Section heading (H1)</h1>
57
- <p>This is the main content area. It contains detailed information about the topic.</p>
54
+ <h1 id="section-heading">Section heading (H1)</h1>
55
+ <p>
56
+ Lorem ipsum dolor sit amet consectetur. Sed facilisis purus eu convallis ut. Morbi condimentum volutpat feugiat pellentesque. Auctor amet auctor dolor metus eget diam. Facilisis vitae venenatis vestibulum libero ut. Luctus diam pellentesque ipsum accumsan amet commodo.
57
+ </p>
58
+ <p>
59
+ Convallis et ullamcorper ac nisi ornare sed facilisis sem. Scelerisque malesuada vivamus tellus mi vitae amet ornare donec malesuada. Nascetur senectus aenean fames id turpis.
60
+ </p>
61
+
62
+ <h2 id="content-heading">Content heading (H2)</h2>
63
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor
64
+ incididunt ut labore et dolore magna aliqua.</p>
65
+
66
+ {{#if calloutdata}}
67
+ <!-- callout Section -->
68
+ {{> callout calloutdata}}
69
+ {{/if}}
58
70
 
59
- <h2 id="content-heading">Content heading (H2)</h2>
60
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor
61
- incididunt ut labore et dolore magna aliqua.</p>
71
+ <h3 id="inspection">Pre-registration inspection (H3)</h3>
72
+ <p>Information about pre-registration inspection requirements.</p>
62
73
 
63
- <h3 id="inspection">Pre-registration inspection (H3)</h3>
64
- <p>Information about pre-registration inspection requirements.</p>
74
+ <h4 id="fees-and-charges">Fees and charges (H4)</h4>
75
+ <p>Details about fees and charges for vehicle registration.</p>
65
76
 
66
- <h4 id="fees-and-charges">Fees and charges (H4)</h4>
67
- <p>Details about fees and charges for vehicle registration.</p>
77
+ </div>
68
78
 
69
- </div>
79
+ {{#if accordionItems}}
80
+ <!-- accordion Section -->
81
+ <div class="my-5 px-1 px-md-32">
82
+ {{> accordion accordionItems}}
83
+ </div>
84
+ {{/if}}
70
85
 
71
- {{#if image}}
72
- <!-- image Section -->
73
- <div class="my-4 ps-32">
74
- {{> image image}}
75
- </div>
76
- {{/if}}
86
+ {{#if video}}
87
+ <!-- video Section -->
88
+ <div class="my-5 px-1 px-md-32">
89
+ {{> video video}}
90
+ </div>
91
+ {{/if}}
77
92
 
78
- {{#if table}}
79
- <!-- table Section -->
80
- <div class="my-4 ps-32">
81
- {{> table table}}
82
- </div>
83
- {{/if}}
93
+ <div class="my-5 p-1 p-md-32 bg-light">
94
+ <h2 id="inspection">Section heading (H2)</h2>
95
+ <p>Lorem ipsum dolor sit amet consectetur. Viverra eu pulvinar a eu mauris ac at ultricies
96
+ est.
97
+ Tincidunt ultrices commodo vestibulum non netus. </p>
98
+ <p>Mauris maecenas lacus hendrerit urna ultricies auctor. Sed tristique nascetur sapien
99
+ condimentum adipiscing augue quisque eu.</p>
84
100
 
85
- {{#if video}}
86
- <!-- video Section -->
87
- <div class="my-4 ps-32">
88
- {{> video video}}
89
- </div>
90
- {{/if}}
101
+ {{> callToAction callToAction}}
102
+ </div>
91
103
 
92
- <!-- Content Footer -->
93
- {{> contentFooter contentFooter}}
104
+ {{#if table}}
105
+ <!-- table Section -->
106
+ <div class="my-5 px-1 px-md-32">
107
+ {{> table table}}
94
108
  </div>
109
+ {{/if}}
110
+
95
111
  </div>
96
112
  </div>
113
+
114
+ <!-- Content Footer -->
115
+ {{> contentFooter contentFooter}}
97
116
  </div>
117
+ </div>
98
118
  </main>
99
119
  <!-- Footer -->
100
120
  {{> footer footer}}
@@ -0,0 +1,111 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>{{title}}</title>
8
+ </head>
9
+
10
+ <body>
11
+ {{> globalAlert globalAlert}}
12
+ {{> header header}}
13
+ {{> navbar navbar}}
14
+
15
+ {{#if banner}}
16
+ {{> banner banner}}
17
+ {{/if}}
18
+
19
+ <main>
20
+ <div class="container-fluid p-0">
21
+ {{#if cardGrid}}
22
+ <section class="py-5 mt-md-3">
23
+ <div class="container">
24
+ <div class="row">
25
+ {{#each cardGrid.cards}}
26
+ <div class="col-md-4 mb-4">
27
+ {{> card this}}
28
+ </div>
29
+ {{/each}}
30
+ </div>
31
+ </div>
32
+ </section>
33
+ {{/if}}
34
+
35
+ {{#if linkColumns}}
36
+ <section class="py-5">
37
+ <div class="container">
38
+ {{> linkColumns linkColumns}}
39
+ </div>
40
+ </section>
41
+ {{/if}}
42
+
43
+ <section class="py-5 mt-md-3 bg-light">
44
+ <div class="container">
45
+ <h2 id="content-heading">Section heading (H2)</h2>
46
+
47
+ <div class="row">
48
+ <div class="col-md-4 mb-4">
49
+ <h3 id="inspection">Content heading (H3)</h3>
50
+ <p>Lorem ipsum dolor sit amet consectetur. Viverra eu pulvinar a eu mauris ac at ultricies
51
+ est.
52
+ Tincidunt ultrices commodo vestibulum non netus. </p>
53
+ <p>Mauris maecenas lacus hendrerit urna ultricies auctor. Sed tristique nascetur sapien
54
+ condimentum adipiscing augue quisque eu.</p>
55
+
56
+ {{> callToAction callToAction}}
57
+ </div>
58
+
59
+ <div class="col-md-4 mb-4">
60
+ <h3 id="inspection">Content heading (H3)</h3>
61
+ <p>Lorem ipsum dolor sit amet consectetur. Viverra eu pulvinar a eu mauris ac at ultricies
62
+ est.
63
+ Tincidunt ultrices commodo vestibulum non netus. </p>
64
+ <p>Mauris maecenas lacus hendrerit urna ultricies auctor. Sed tristique nascetur sapien
65
+ condimentum adipiscing augue quisque eu.</p>
66
+
67
+ {{> callToAction callToAction}}
68
+ </div>
69
+
70
+ <div class="col-md-4 mb-4">
71
+ <h3 id="inspection">Content heading (H3)</h3>
72
+ <p>Lorem ipsum dolor sit amet consectetur. Viverra eu pulvinar a eu mauris ac at ultricies
73
+ est.
74
+ Tincidunt ultrices commodo vestibulum non netus. </p>
75
+ <p>Mauris maecenas lacus hendrerit urna ultricies auctor. Sed tristique nascetur sapien
76
+ condimentum adipiscing augue quisque eu.</p>
77
+
78
+ {{> callToAction callToAction}}
79
+ </div>
80
+ </div>
81
+ </div>
82
+ </section>
83
+
84
+ {{#if promotionalPanel}}
85
+ <section class="pt-5 bg-light">
86
+ <div class="container">
87
+ {{> promotionalPanel promotionalPanel}}
88
+ </div>
89
+ </section>
90
+ {{/if}}
91
+
92
+ {{#if cardGridBottom}}
93
+ <section class="py-64 dark-alt">
94
+ <div class="container pt-64">
95
+ <div class="row">
96
+ {{#each cardGridBottom.cards}}
97
+ <div class="col-md-4 mb-4">
98
+ {{> card this}}
99
+ </div>
100
+ {{/each}}
101
+ </div>
102
+ </div>
103
+ </section>
104
+ {{/if}}
105
+
106
+ </div>
107
+ </main>
108
+ {{> footer footer}}
109
+ </body>
110
+
111
+ </html>
@@ -1,16 +1,21 @@
1
- import { Canvas, Meta, Story } from "@storybook/blocks"
2
- import * as promotionalPanelStories from "./promotionalPanel.stories"
1
+ import { Canvas, Meta, Story, Source } from "@storybook/blocks";
2
+ import * as promotionalPanelStories from "./promotionalPanel.stories";
3
+ import defaultdata from "./promotionalPanel.data.json";
3
4
 
4
5
  <Meta of={promotionalPanelStories} />
5
6
 
6
7
  # Promotional Panel
8
+
7
9
  <Canvas>
8
10
  <Story of={promotionalPanelStories.Default} />
9
11
  </Canvas>
10
12
 
11
13
  ## Design resources
12
14
 
13
-
14
15
  - [Component library (Figma)](https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=23269-286312&p=f&t=SY0WW7uiwAl3ioEj-0)
15
16
  - [Master component file (Figma)](https://www.figma.com/design/qKsxl3ogIlBp7dafgxXuCA/QGDS-UI-kit?node-id=23269-286312&p=f&t=nVLTSHpRu8jvVSar-0)
16
17
  - [Design System website](https://www.designsystem.qld.gov.au/components/promotional-panel)
18
+
19
+ ## Example JSON data
20
+
21
+ <Source language="json" code={JSON.stringify(defaultdata, null, 2)} />
@@ -38,7 +38,7 @@ exports[`SearchInput > Renders as expected 1`] = `
38
38
  <div class="dynamic-suggestions"></div>
39
39
  </div>
40
40
  <button class="btn btn-primary" type="submit" id="search-button">
41
- <span class="btn-icon"></span>
41
+ <span class="btn-icon mx-0"></span>
42
42
  <span class="btn-label">Search</span>
43
43
  </button>
44
44
  </div>
@@ -37,7 +37,7 @@
37
37
  </div>
38
38
  {{/if}}
39
39
  <button class="btn btn-primary" type="{{ buttonType }}" id="{{ buttonID }}">
40
- <span class="btn-icon"></span>
40
+ <span class="btn-icon mx-0"></span>
41
41
  <span class="btn-label">{{ buttonLabel }}</span>
42
42
  </button>
43
43
  </div>
@@ -196,7 +196,7 @@
196
196
  border-radius: 0.25rem;
197
197
  border: 0.125rem solid var(--border-color);
198
198
  background: var(--background-color);
199
- padding-right: 6rem;
199
+ padding-right: 7.5rem;
200
200
  color: var(--text-color);
201
201
 
202
202
  &::placeholder {
@@ -280,6 +280,7 @@
280
280
 
281
281
  .form-control {
282
282
  padding-left: 1rem;
283
+ padding-right: 4rem;
283
284
  }
284
285
 
285
286
  #search-button {
@@ -43,7 +43,6 @@ describe("SearchInput", () => {
43
43
  <html>
44
44
  <head>
45
45
  <meta charset="utf-8">
46
- <link rel="stylesheet" href="${__dirname}/../../../../dist/assets/css/qld.bootstrap.css">
47
46
  </head>
48
47
  <body>
49
48
  <form class="site-search" action="https://example.com/search">
@@ -401,7 +400,7 @@ describe("SearchInput", () => {
401
400
  expect(isElementVisible(suggestions)).toBe(true);
402
401
 
403
402
  // Click inside suggestions
404
- const suggestionLink = suggestions.querySelector("a");
403
+ const suggestionLink = suggestions.querySelector("li");
405
404
  if (suggestionLink) {
406
405
  const clickEvent = new window.MouseEvent("click", {
407
406
  bubbles: true,
package/src/css/main.scss CHANGED
@@ -110,7 +110,7 @@ $enable-dark-mode: true;
110
110
  @import "../components/bs5/formcheck/formcheck";
111
111
  @import "../components/bs5/footer/footer";
112
112
  @import "../components/bs5/globalAlert/globalAlert";
113
- @import "../components/bs5/iconLink/iconLink";
113
+ @import "../components/bs5/link/link";
114
114
  @import "../components/bs5/header/header";
115
115
  @import "../components/bs5/icons/icons";
116
116
  @import "../components/bs5/inpageAlert/inpageAlert";
@@ -133,6 +133,9 @@ $enable-dark-mode: true;
133
133
  @import "../components/bs5/typography/typography";
134
134
  @import "../components/bs5/video/video";
135
135
 
136
+ // Custom utility classes
137
+ @import "utilities";
138
+
136
139
  // Themes
137
140
  @import "qld-theme";
138
141
 
@@ -1,3 +1,4 @@
1
1
  @forward "focusable";
2
- @forward "unset-button-styles";
3
2
  @forward "generate-color-vars";
3
+ @forward "register-vars";
4
+ @forward "unset-button-styles";
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// Create a list of CSS custom properties, easily prepending a prefix
3
+ /// @param {string} $prefix - Prepended to the custom property name;
4
+ /// @param {map} $vars - a map of (string: value);
5
+ /// @example
6
+ /// @include register-vars(
7
+ /// "qld-header-",
8
+ /// (
9
+ /// underline-thickness-thin: 0.5px,
10
+ /// underline-thickness-thick: 2px,
11
+ /// underline-offset: 0.3em
12
+ /// )
13
+ /// );
14
+ ///
15
+ /// // output:
16
+ /// --qld-header-underline-thickness-thin: 0.5px;
17
+ /// --qld-header-underline-thickness-thick: 2px;
18
+ /// --qld-header-underline-offset: 0.3em;
19
+ @mixin register-vars($prefix, $vars) {
20
+ @each $key, $value in $vars {
21
+ --#{$prefix}#{$key}: #{$value};
22
+ }
23
+ }
@@ -218,9 +218,11 @@ $project-colors: (
218
218
  "light-background-shade": $qld-light-background-shade,
219
219
 
220
220
  //Borders
221
- "light-border": $qld-light-border,
221
+ //"light-border": $qld-light-border,
222
+ "default-border": $qld-light-border,
223
+ "light-border": $color-default-color-light-border-light,
222
224
  "light-border-alt": $qld-light-border-alt,
223
-
225
+
224
226
  //Links
225
227
  "light-link": $color-default-color-light-link-default,
226
228
  "dark-link": $color-default-color-dark-link-default,
@@ -0,0 +1 @@
1
+ @import "responsive-visually-hidden";
@@ -0,0 +1,10 @@
1
+ @each $key, $value in $grid-breakpoints {
2
+ // dont need xs breakpoint as it has already has bootstrap class
3
+ @if ($value > 0) {
4
+ @include media-breakpoint-up($key) {
5
+ .visually-hidden-#{$key} {
6
+ @include visually-hidden();
7
+ }
8
+ }
9
+ }
10
+ }
@@ -18,34 +18,34 @@
18
18
  */
19
19
  function ifCond(v1, operator, v2, options) {
20
20
  switch (operator) {
21
- case "==":
22
- return v1 == v2 ? options.fn(this) : options.inverse(this);
23
- case "===":
24
- return v1 === v2 ? options.fn(this) : options.inverse(this);
25
- case "!=":
26
- return v1 != v2 ? options.fn(this) : options.inverse(this);
27
- case "!==":
28
- return v1 !== v2 ? options.fn(this) : options.inverse(this);
29
- case "<":
30
- return v1 < v2 ? options.fn(this) : options.inverse(this);
31
- case "<=":
32
- return v1 <= v2 ? options.fn(this) : options.inverse(this);
33
- case ">":
34
- return v1 > v2 ? options.fn(this) : options.inverse(this);
35
- case ">=":
36
- return v1 >= v2 ? options.fn(this) : options.inverse(this);
37
- case "&&":
38
- return v1 && v2 ? options.fn(this) : options.inverse(this);
39
- case "||":
40
- return v1 || v2 ? options.fn(this) : options.inverse(this);
41
- case "contains":
42
- if (typeof v1 == "string" && typeof v2 == "string") {
43
- return v1.toLowerCase().indexOf(v2.toLowerCase()) >= 0
44
- ? options.fn(this)
45
- : options.inverse(this);
46
- } else return options.inverse(this);
47
- default:
48
- return options.inverse(this);
21
+ case "==":
22
+ return v1 == v2 ? options.fn(this) : options.inverse(this);
23
+ case "===":
24
+ return v1 === v2 ? options.fn(this) : options.inverse(this);
25
+ case "!=":
26
+ return v1 != v2 ? options.fn(this) : options.inverse(this);
27
+ case "!==":
28
+ return v1 !== v2 ? options.fn(this) : options.inverse(this);
29
+ case "<":
30
+ return v1 < v2 ? options.fn(this) : options.inverse(this);
31
+ case "<=":
32
+ return v1 <= v2 ? options.fn(this) : options.inverse(this);
33
+ case ">":
34
+ return v1 > v2 ? options.fn(this) : options.inverse(this);
35
+ case ">=":
36
+ return v1 >= v2 ? options.fn(this) : options.inverse(this);
37
+ case "&&":
38
+ return v1 && v2 ? options.fn(this) : options.inverse(this);
39
+ case "||":
40
+ return v1 || v2 ? options.fn(this) : options.inverse(this);
41
+ case "contains":
42
+ if (typeof v1 == "string" && typeof v2 == "string") {
43
+ return v1.toLowerCase().indexOf(v2.toLowerCase()) >= 0
44
+ ? options.fn(this)
45
+ : options.inverse(this);
46
+ } else return options.inverse(this);
47
+ default:
48
+ return options.inverse(this);
49
49
  }
50
50
  }
51
51
  /**
@@ -120,12 +120,12 @@ export default function handlebarsHelpers(handlebars) {
120
120
  var year = date.getFullYear();
121
121
  // Format date based on the format string
122
122
  switch (format) {
123
- case "YYYY":
124
- return `${year}`;
125
- case "MMMM YYYY":
126
- return `${month} ${year}`;
127
- default:
128
- return `${day} ${month} ${year}`;
123
+ case "YYYY":
124
+ return `${year}`;
125
+ case "MMMM YYYY":
126
+ return `${month} ${year}`;
127
+ default:
128
+ return `${day} ${month} ${year}`;
129
129
  }
130
130
  },
131
131
  );
@@ -18,18 +18,21 @@ import contentWrapper from "../components/bs5/contentWrapper/contentWrapper.hbs?
18
18
  import correctincorrect from "../components/bs5/correctincorrect/correctincorrect.hbs?raw";
19
19
  import dateinput from "../components/bs5/dateinput/dateinput.hbs?raw";
20
20
  import directionLinks from "../components/bs5/directionLinks/directionLinks.hbs?raw";
21
+ import customLinks from "../components/bs5/footer/customLinks.hbs?raw";
22
+ import feedbackForm from "../components/bs5/footer/feedbackForm.hbs?raw";
23
+ import followLinks from "../components/bs5/footer/followLinks.hbs?raw";
21
24
  import footer from "../components/bs5/footer/footer.hbs?raw";
22
- import footerForgov from "../components/bs5/footer/footerForgov.hbs?raw";
23
25
  import formcheck from "../components/bs5/formcheck/formcheck.hbs?raw";
24
26
  import fullPage from "../components/bs5/fullPageWrapper/fullPage.hbs?raw";
25
27
  import globalAlert from "../components/bs5/globalAlert/globalAlert.hbs?raw";
26
28
  import head from "../components/bs5/head/head.hbs?raw";
27
29
  import header from "../components/bs5/header/header.hbs?raw";
28
- import iconLink from "../components/bs5/iconLink/iconLink.hbs?raw";
30
+ import headerBrand from "../components/bs5/header/headerBrand.hbs?raw";
29
31
  import icon from "../components/bs5/icons/icon.hbs?raw";
30
32
  import image from "../components/bs5/image/image.hbs?raw";
31
33
  import inpageAlert from "../components/bs5/inpageAlert/inpageAlert.hbs?raw";
32
34
  import inpagenav from "../components/bs5/inpagenav/inpagenav.hbs?raw";
35
+ import link from "../components/bs5/link/link.hbs?raw";
33
36
  import linkColumns from "../components/bs5/linkColumns/linkColumns.hbs?raw";
34
37
  import logo from "../components/bs5/logo/logo.hbs?raw";
35
38
  import logoCOALandscape from "../components/bs5/logo/logoCOALandscape.hbs?raw";
@@ -39,10 +42,9 @@ import metaDcTerms from "../components/bs5/metaDcTerms/metaDcTerms.hbs?raw";
39
42
  import metaOpenGraph from "../components/bs5/metaOpenGraph/metaOpenGraph.hbs?raw";
40
43
  import modal from "../components/bs5/modal/modal.hbs?raw";
41
44
  import navbar from "../components/bs5/navbar/navbar.hbs?raw";
42
- import pageLayout from "../components/bs5/pageLayout/pageLayout.hbs?raw";
43
45
  import contentPageWithForm from "../components/bs5/pageLayout/templates/contentPageWithForm.hbs?raw";
44
46
  import contentPageWithSideNavigation from "../components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs?raw";
45
- import fullWidthLandingPage from "../components/bs5/pageLayout/templates/fullWidthLandingPage.hbs?raw";
47
+ import homePage from "../components/bs5/pageLayout/templates/homePage.hbs?raw";
46
48
  import pagination from "../components/bs5/pagination/pagination.hbs?raw";
47
49
  import promotionalPanel from "../components/bs5/promotionalPanel/promotionalPanel.hbs?raw";
48
50
  import quickexit from "../components/bs5/quickexit/quickexit.hbs?raw";
@@ -84,18 +86,21 @@ export default function handlebarsPartials(handlebars) {
84
86
  handlebars.registerPartial("correctincorrect", correctincorrect);
85
87
  handlebars.registerPartial("dateinput", dateinput);
86
88
  handlebars.registerPartial("directionLinks", directionLinks);
89
+ handlebars.registerPartial("customLinks", customLinks);
90
+ handlebars.registerPartial("feedbackForm", feedbackForm);
91
+ handlebars.registerPartial("followLinks", followLinks);
87
92
  handlebars.registerPartial("footer", footer);
88
- handlebars.registerPartial("footerForgov", footerForgov);
89
93
  handlebars.registerPartial("formcheck", formcheck);
90
94
  handlebars.registerPartial("fullPage", fullPage);
91
95
  handlebars.registerPartial("globalAlert", globalAlert);
92
96
  handlebars.registerPartial("head", head);
93
97
  handlebars.registerPartial("header", header);
94
- handlebars.registerPartial("iconLink", iconLink);
98
+ handlebars.registerPartial("headerBrand", headerBrand);
95
99
  handlebars.registerPartial("icon", icon);
96
100
  handlebars.registerPartial("image", image);
97
101
  handlebars.registerPartial("inpageAlert", inpageAlert);
98
102
  handlebars.registerPartial("inpagenav", inpagenav);
103
+ handlebars.registerPartial("link", link);
99
104
  handlebars.registerPartial("linkColumns", linkColumns);
100
105
  handlebars.registerPartial("logo", logo);
101
106
  handlebars.registerPartial("logoCOALandscape", logoCOALandscape);
@@ -105,10 +110,9 @@ export default function handlebarsPartials(handlebars) {
105
110
  handlebars.registerPartial("metaOpenGraph", metaOpenGraph);
106
111
  handlebars.registerPartial("modal", modal);
107
112
  handlebars.registerPartial("navbar", navbar);
108
- handlebars.registerPartial("pageLayout", pageLayout);
109
113
  handlebars.registerPartial("contentPageWithForm", contentPageWithForm);
110
114
  handlebars.registerPartial("contentPageWithSideNavigation", contentPageWithSideNavigation);
111
- handlebars.registerPartial("fullWidthLandingPage", fullWidthLandingPage);
115
+ handlebars.registerPartial("homePage", homePage);
112
116
  handlebars.registerPartial("pagination", pagination);
113
117
  handlebars.registerPartial("promotionalPanel", promotionalPanel);
114
118
  handlebars.registerPartial("quickexit", quickexit);
@@ -13,7 +13,7 @@ import {
13
13
  positionQuickExit,
14
14
  initQuickexit,
15
15
  } from "./../components/bs5/quickexit/quickexit.functions";
16
- import { displayFeedbackForm } from "./../components/bs5/footer/footer.functions";
16
+ //import { displayFeedbackForm } from "./../components/bs5/footer/footer.functions";
17
17
  import { toggleSearch } from "./../components/bs5/header/header.functions";
18
18
  import {
19
19
  showSuggestions,
@@ -40,19 +40,18 @@ window.addEventListener("DOMContentLoaded", () => {
40
40
  // Footer FormIO Action
41
41
  // Note: This is added here, as there is an issue with breadcrumbShorten() function.
42
42
  // Will move this once that issue is fixed.
43
- const footerFormio = document.getElementById("qg-feedback-toggle");
44
- if (footerFormio) {
45
- displayFeedbackForm();
46
- }
47
-
43
+ /*
44
+ const footerFormio = document.getElementById("qg-feedback-toggle");
45
+ if (footerFormio) {
46
+ displayFeedbackForm();
47
+ }
48
+ */
48
49
  //Header search
49
- let headerSearchButton = document.querySelector(
50
- ".qld__main-nav__toggle-search",
50
+ let headerSearchButton = document.getElementById(
51
+ "qld-header-toggle-search-button",
51
52
  );
52
53
  if (headerSearchButton) {
53
- document
54
- .querySelector(".qld__main-nav__toggle-search")
55
- .addEventListener("click", toggleSearch);
54
+ headerSearchButton.addEventListener("click", toggleSearch);
56
55
  }
57
56
 
58
57
  // Get all forms with the class 'site-search'