@qld-gov-au/qgds-bootstrap5 2.0.6 → 2.0.8

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 (210) hide show
  1. package/.esbuild/plugins/qgds-plugin-build-log.js +2 -2
  2. package/.esbuild/plugins/qgds-plugin-copy-assets.js +0 -3
  3. package/.esbuild/plugins/qgds-plugin-handlebar-partial-builder.js +76 -66
  4. package/.storybook/README.md +10 -0
  5. package/.storybook/{main.js → main.mjs} +4 -5
  6. package/.storybook/modes.js +3 -12
  7. package/.storybook/preview.js +14 -11
  8. package/dist/assets/components/bs5/footer/footer.hbs +20 -18
  9. package/dist/assets/components/bs5/head/head.hbs +1 -1
  10. package/dist/assets/components/bs5/header/header.hbs +40 -52
  11. package/dist/assets/components/bs5/header/headerBrand.hbs +9 -10
  12. package/dist/assets/components/bs5/logo/logo.hbs +2 -0
  13. package/dist/assets/components/bs5/logo/logoCOADeliveringForQLD.hbs +49 -0
  14. package/dist/assets/components/bs5/logo/logoCOALandscape.hbs +55 -109
  15. package/dist/assets/components/bs5/logo/logoCOALandscape2Lines.hbs +55 -55
  16. package/dist/assets/components/bs5/searchInput/searchInput.hbs +5 -5
  17. package/dist/assets/css/qld.bootstrap.css +1 -1
  18. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  19. package/dist/assets/css/qld.bootstrap.legacy.css +1 -1
  20. package/dist/assets/css/qld.bootstrap.legacy.css.map +3 -3
  21. package/dist/assets/img/coa-delivering-for-qld.svg +47 -0
  22. package/dist/assets/img/coa-delivering-for-qld.svg.old +58 -0
  23. package/dist/assets/img/coa-landscape-2lines.svg +63 -0
  24. package/dist/assets/img/coa-landscape-web.svg +56 -0
  25. package/dist/assets/js/handlebars.helpers.bundle.js +1 -1
  26. package/dist/assets/js/handlebars.helpers.bundle.js.map +3 -3
  27. package/dist/assets/js/handlebars.init.min.js +1329 -1344
  28. package/dist/assets/js/handlebars.init.min.js.map +4 -4
  29. package/dist/assets/js/handlebars.partials.js +2383 -136
  30. package/dist/assets/js/handlebars.partials.js.map +7 -0
  31. package/dist/assets/js/qld.bootstrap.min.js +3 -3
  32. package/dist/assets/js/qld.bootstrap.min.js.map +3 -3
  33. package/dist/assets/node/handlebars.init.min.js +219 -198
  34. package/dist/assets/node/handlebars.init.min.js.map +3 -3
  35. package/dist/components/bs5/footer/footer.hbs +20 -18
  36. package/dist/components/bs5/head/head.hbs +1 -1
  37. package/dist/components/bs5/header/header.hbs +40 -52
  38. package/dist/components/bs5/header/headerBrand.hbs +9 -10
  39. package/dist/components/bs5/logo/logo.hbs +2 -0
  40. package/dist/components/bs5/logo/logoCOADeliveringForQLD.hbs +49 -0
  41. package/dist/components/bs5/logo/logoCOALandscape.hbs +55 -109
  42. package/dist/components/bs5/logo/logoCOALandscape2Lines.hbs +55 -55
  43. package/dist/components/bs5/searchInput/searchInput.hbs +5 -5
  44. package/dist/package.json +27 -29
  45. package/dist/sample-data/correctincorrect/correctincorrect.data.json +1 -0
  46. package/dist/sample-data/header/header.variant.coBrand.data.json +5 -8
  47. package/dist/sample-data/header/header.variant.endorsed.data.json +3 -6
  48. package/dist/sample-data/header/header.variant.masterBrand.data.json +1 -6
  49. package/dist/sample-data/header/header.variant.standAlone.data.json +3 -6
  50. package/dist/sample-data/header/header.variant.subBrand.data.json +5 -8
  51. package/dist/sample-data/tabs/tabs.data.json +1 -2
  52. package/dist/sample-data/typography/typography.data.json +1 -0
  53. package/esbuild.js +16 -4
  54. package/package.json +27 -29
  55. package/pom.xml +3 -3
  56. package/src/components/bs5/accordion/Accordion.mdx +1 -1
  57. package/src/components/bs5/accordion/accordion.stories.js +17 -22
  58. package/src/components/bs5/backToTop/backToTop.mdx +1 -1
  59. package/src/components/bs5/banner/Banner.mdx +1 -1
  60. package/src/components/bs5/banner/banner.scss +2 -2
  61. package/src/components/bs5/blockquote/Blockquote.mdx +1 -1
  62. package/src/components/bs5/blockquote/manifest.json +1 -0
  63. package/src/components/bs5/breadcrumbs/Breadcrumbs.mdx +1 -1
  64. package/src/components/bs5/breadcrumbs/breadcrumbs.scss +7 -2
  65. package/src/components/bs5/breadcrumbs/breadcrumbs.stories.js +19 -10
  66. package/src/components/bs5/breadcrumbs/manifest.json +1 -0
  67. package/src/components/bs5/breadcumbsWrapper/manifest.json +1 -0
  68. package/src/components/bs5/button/Button.mdx +1 -1
  69. package/src/components/bs5/button/manifest.json +1 -0
  70. package/src/components/bs5/callToAction/callToAction.mdx +1 -1
  71. package/src/components/bs5/callToAction/callToAction.stories.js +15 -50
  72. package/src/components/bs5/callout/Callout.mdx +1 -1
  73. package/src/components/bs5/callout/callout.stories.js +7 -26
  74. package/src/components/bs5/callout/manifest.json +1 -0
  75. package/src/components/bs5/card/Card.mdx +1 -1
  76. package/src/components/bs5/card/card.scss +1 -1
  77. package/src/components/bs5/card/manifest.json +1 -0
  78. package/src/components/bs5/contentFooter/manifest.json +1 -0
  79. package/src/components/bs5/contentFooterWrapper/manifest.json +1 -0
  80. package/src/components/bs5/contentWrapper/manifest.json +1 -0
  81. package/src/components/bs5/correctincorrect/correctincorrect.data.json +1 -0
  82. package/src/components/bs5/correctincorrect/manifest.json +1 -0
  83. package/src/components/bs5/dateinput/Dateinput.stories.js +23 -31
  84. package/src/components/bs5/dateinput/manifest.json +1 -0
  85. package/src/components/bs5/directionLinks/DirectionLinks.mdx +1 -1
  86. package/src/components/bs5/directionLinks/directionLinks.stories.js +14 -12
  87. package/src/components/bs5/footer/Footer.mdx +1 -1
  88. package/src/components/bs5/footer/footer.hbs +20 -18
  89. package/src/components/bs5/footer/footer.scss +7 -5
  90. package/src/components/bs5/formcheck/manifest.json +1 -0
  91. package/src/components/bs5/formcheck/stories/checkbox/Checkbox.mdx +1 -1
  92. package/src/components/bs5/formcheck/stories/checkbox/checkbox.stories.js +44 -87
  93. package/src/components/bs5/formcheck/stories/radio/Radio.mdx +1 -1
  94. package/src/components/bs5/formcheck/stories/radio/radio.stories.js +9 -36
  95. package/src/components/bs5/fullPageWrapper/manifest.json +1 -0
  96. package/src/components/bs5/globalAlert/GlobalAlert.mdx +1 -1
  97. package/src/components/bs5/globalAlert/globalAlert.test.js +3 -3
  98. package/src/components/bs5/globalAlert/manifest.json +1 -0
  99. package/src/components/bs5/head/manifest.json +1 -0
  100. package/src/components/bs5/header/Header.js +25 -0
  101. package/src/components/bs5/header/Header.mdx +1 -1
  102. package/src/components/bs5/header/_header-variables.scss +61 -247
  103. package/src/components/bs5/header/header.functions.js +10 -15
  104. package/src/components/bs5/header/header.hbs +40 -52
  105. package/src/components/bs5/header/header.scss +166 -158
  106. package/src/components/bs5/header/header.stories.js +35 -233
  107. package/src/components/bs5/header/header.variant.coBrand.data.json +5 -8
  108. package/src/components/bs5/header/header.variant.endorsed.data.json +3 -6
  109. package/src/components/bs5/header/header.variant.masterBrand.data.json +1 -6
  110. package/src/components/bs5/header/header.variant.standAlone.data.json +3 -6
  111. package/src/components/bs5/header/header.variant.subBrand.data.json +5 -8
  112. package/src/components/bs5/header/headerBrand.hbs +9 -10
  113. package/src/components/bs5/header/manifest.json +1 -0
  114. package/src/components/bs5/icons/Icons.mdx +1 -1
  115. package/src/components/bs5/icons/manifest.json +1 -0
  116. package/src/components/bs5/icons/mdx/_IconsSizes.mdx +1 -1
  117. package/src/components/bs5/image/Image.mdx +1 -1
  118. package/src/components/bs5/inpageAlert/InpageAlert.mdx +1 -1
  119. package/src/components/bs5/inpageAlert/inpageAlert.scss +107 -120
  120. package/src/components/bs5/inpageAlert/inpageAlert.stories.js +7 -23
  121. package/src/components/bs5/inpageAlert/manifest.json +1 -0
  122. package/src/components/bs5/inpagenav/Inpagenav.mdx +1 -1
  123. package/src/components/bs5/inpagenav/inpagenav.stories.js +4 -6
  124. package/src/components/bs5/inpagenav/manifest.json +1 -0
  125. package/src/components/bs5/link/link.mdx +1 -1
  126. package/src/components/bs5/link/link.stories.js +4 -6
  127. package/src/components/bs5/linkColumns/linkColumns.mdx +1 -1
  128. package/src/components/bs5/linkColumns/linkColumns.scss +18 -25
  129. package/src/components/bs5/logo/Logo.mdx +1 -1
  130. package/src/components/bs5/logo/logo.hbs +2 -0
  131. package/src/components/bs5/logo/logoCOADeliveringForQLD.hbs +49 -0
  132. package/src/components/bs5/logo/logoCOALandscape.hbs +55 -109
  133. package/src/components/bs5/logo/logoCOALandscape2Lines.hbs +55 -55
  134. package/src/components/bs5/mainContainerWrapper/manifest.json +1 -0
  135. package/src/components/bs5/metaDcTerms/manifest.json +1 -0
  136. package/src/components/bs5/metaOpenGraph/manifest.json +1 -0
  137. package/src/components/bs5/modal/Modal.mdx +1 -1
  138. package/src/components/bs5/modal/manifest.json +1 -0
  139. package/src/components/bs5/navbar/navbar.scss +36 -14
  140. package/src/components/bs5/pagination/Pagination.mdx +1 -1
  141. package/src/components/bs5/pagination/manifest.json +1 -0
  142. package/src/components/bs5/pagination/pagination.stories.js +12 -21
  143. package/src/components/bs5/promotionalPanel/PromotionalPanel.mdx +1 -1
  144. package/src/components/bs5/quickexit/manifest.json +1 -0
  145. package/src/components/bs5/searchInput/SearchInput.js +3 -5
  146. package/src/components/bs5/searchInput/SearchInput.mdx +1 -1
  147. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +5 -5
  148. package/src/components/bs5/searchInput/manifest.json +1 -0
  149. package/src/components/bs5/searchInput/searchInput.hbs +5 -5
  150. package/src/components/bs5/searchInput/searchInput.scss +13 -0
  151. package/src/components/bs5/searchInput/searchInput.stories.js +10 -12
  152. package/src/components/bs5/select/manifest.json +1 -0
  153. package/src/components/bs5/sidenav/Sidenav.mdx +1 -1
  154. package/src/components/bs5/sidenav/manifest.json +1 -0
  155. package/src/components/bs5/sidenav/sidenav.stories.js +4 -7
  156. package/src/components/bs5/sidenavWrapper/manifest.json +1 -0
  157. package/src/components/bs5/skiplinks/SkipLinks.mdx +1 -1
  158. package/src/components/bs5/spinner/manifest.json +1 -0
  159. package/src/components/bs5/table/Table.mdx +1 -1
  160. package/src/components/bs5/table/manifest.json +1 -0
  161. package/src/components/bs5/tabs/Tabs.mdx +1 -1
  162. package/src/components/bs5/tabs/tabs.data.json +1 -2
  163. package/src/components/bs5/tabs/tabs.stories.js +38 -215
  164. package/src/components/bs5/tag/Tag.mdx +1 -1
  165. package/src/components/bs5/tag/manifest.json +1 -0
  166. package/src/components/bs5/tag/tag--large.stories.js +53 -0
  167. package/src/components/bs5/tag/tag--standard.stories.js +39 -0
  168. package/src/components/bs5/tag/tag--status.stories.js +97 -0
  169. package/src/components/bs5/tag/tag.scss +67 -36
  170. package/src/components/bs5/tag/tag.stories.js +69 -106
  171. package/src/components/bs5/textarea/manifest.json +1 -0
  172. package/src/components/bs5/textbox/manifest.json +1 -0
  173. package/src/components/bs5/typography/Typography.mdx +1 -1
  174. package/src/components/bs5/typography/manifest.json +1 -0
  175. package/src/components/bs5/typography/typography.data.json +1 -0
  176. package/src/components/bs5/typography/typography.stories.js +6 -24
  177. package/src/components/bs5/video/Video.mdx +1 -1
  178. package/src/components/bs5/video/manifest.json +1 -0
  179. package/src/components/bs5/video/video.stories.js +6 -24
  180. package/src/css/main.scss +2 -2
  181. package/src/css/mixins/_index.scss +1 -0
  182. package/src/css/mixins/focusable.scss +6 -5
  183. package/src/css/mixins/make-link.scss +40 -0
  184. package/src/css/qld-print.scss +426 -304
  185. package/src/css/qld-theme.scss +16 -8
  186. package/src/css/qld-type.scss +3 -73
  187. package/src/css/variables/animation.scss +5 -0
  188. package/src/img/coa-delivering-for-qld.svg +47 -0
  189. package/src/img/coa-delivering-for-qld.svg.old +58 -0
  190. package/src/img/coa-landscape-2lines.svg +63 -0
  191. package/src/img/coa-landscape-web.svg +56 -0
  192. package/src/js/handlebars.helpers.js +51 -38
  193. package/src/js/handlebars.partials.js +12 -10
  194. package/src/stories/Introduction.mdx +1 -1
  195. package/vite.config.js +17 -0
  196. package/.eslintrc.cjs +0 -52
  197. package/dist/assets/img/_coa_header-logo-qgov--stacked.svg +0 -171
  198. package/dist/assets/img/_coa_header-logo-qgov-masterbrand.svg +0 -56
  199. package/dist/assets/img/_coa_preheader-logo-qgov.svg +0 -56
  200. package/dist/assets/js/bootstrap.js +0 -6312
  201. package/dist/assets/js/handlebars.helpers.js +0 -292
  202. package/dist/assets/js/handlebars.init.cjs +0 -6
  203. package/dist/assets/js/handlebars.init.js +0 -34
  204. package/dist/components/handlebars.helpers.js +0 -292
  205. package/dist/components/handlebars.init.cjs +0 -6
  206. package/dist/components/handlebars.init.js +0 -34
  207. package/dist/components/handlebars.partials.js +0 -136
  208. package/src/img/_coa_header-logo-qgov--stacked.svg +0 -171
  209. package/src/img/_coa_header-logo-qgov-masterbrand.svg +0 -56
  210. package/src/img/_coa_preheader-logo-qgov.svg +0 -56
@@ -12,7 +12,7 @@ export default function buildlog() {
12
12
  log("yellow", "Starting build...\n");
13
13
  });
14
14
 
15
- // eslint-disable-next-line no-unused-vars
15
+
16
16
  build.onEnd((result) => {
17
17
  console.log("BUNDLING:");
18
18
  build.initialOptions.entryPoints.forEach((entry) => {
@@ -45,7 +45,7 @@ export default function buildlog() {
45
45
 
46
46
  });
47
47
 
48
- // eslint-disable-next-line no-unused-vars
48
+
49
49
  build.onEnd((result) => {
50
50
  console.log(`\n`);
51
51
  log("yellow", `✓ Build complete.\n\n`);
@@ -8,19 +8,16 @@ export default function copyPlugin() {
8
8
  verbose: false,
9
9
  watch: true,
10
10
  assets: [
11
- {from: ["./node_modules/bootstrap/dist/js/bootstrap.bundle.js"], to: ["./dist/assets/js/bootstrap.js"]},
12
11
  {from: ["./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"], to: ["./dist/assets/js/bootstrap.min.js"]},
13
12
  {from: ["./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map"], to: ["./dist/assets/js/bootstrap.min.js.map"]},
14
13
  {from: ["./node_modules/bootstrap/dist/js/bootstrap.bundle.*"], to: ["./dist/assets/js/"]},
15
14
 
16
15
  {from: ["./src/components/bs5/**/*.hbs"], to: ["./dist/assets/components/bs5/"],},
17
- {from: ["./src/js/handlebars.*"], to: ["./dist/assets/js/"],},
18
16
  {from: ["./src/img/*"], to: ["./dist/assets/img"]},
19
17
  // Sample data
20
18
  {from: ["./src/components/bs5/**/*.data.json"], to: ["./dist/sample-data/"],},
21
19
 
22
20
  // dist/components will be going away please use dist/assets/components
23
- {from: ["./src/js/handlebars.*"], to: ["./dist/components/"],},
24
21
  {from: ["./src/components/bs5/**/*.hbs"], to: ["./dist/components/bs5/"],},
25
22
 
26
23
  //Copy info files for reference
@@ -1,75 +1,85 @@
1
1
  // updateHandlebarsPartialsPlugin.js
2
- import fs from 'fs';
3
- import path from 'path';
4
- import { fileURLToPath } from 'url';
5
- import { build } from 'esbuild';
2
+ import fs from "fs";
3
+ import path from "path";
4
+ import { fileURLToPath } from "url";
5
+ import { build } from "esbuild";
6
6
 
7
7
  const __filename = fileURLToPath(import.meta.url);
8
8
  const __dirname = path.dirname(__filename);
9
9
 
10
- const COMPONENTS_DIR = path.resolve(__dirname, './../../src/components');
11
- const PARTIALS_JS_FILE = path.resolve(__dirname, '../../src/js/handlebars.partials.js');
12
-
10
+ const COMPONENTS_DIR = path.resolve(__dirname, "./../../src/components");
11
+ const PARTIALS_JS_FILE = path.resolve(
12
+ __dirname,
13
+ "../../src/js/handlebars.partials.js",
14
+ );
13
15
 
14
16
  function getAllFiles(dirPath, arrayOfFiles) {
15
- const files = fs.readdirSync(dirPath, { withFileTypes: true });
17
+ const files = fs.readdirSync(dirPath, { withFileTypes: true });
18
+
19
+ arrayOfFiles = arrayOfFiles || [];
20
+
21
+ files.forEach((file) => {
22
+ //console.log(file);
23
+ if (file.isDirectory()) {
24
+ arrayOfFiles = getAllFiles(path.join(dirPath, file.name), arrayOfFiles);
25
+ } else if (
26
+ file.isFile() &&
27
+ file.name.endsWith(".hbs") &&
28
+ !file.name.endsWith(".test.hbs")
29
+ ) {
30
+ arrayOfFiles.push(path.join(dirPath, file.name));
31
+ }
32
+ });
16
33
 
17
- arrayOfFiles = arrayOfFiles || [];
34
+ return arrayOfFiles;
35
+ }
18
36
 
19
- files.forEach((file) => {
20
- //console.log(file);
21
- if (file.isDirectory()) {
22
- arrayOfFiles = getAllFiles(path.join(dirPath, file.name), arrayOfFiles);
23
- } else if (file.isFile() && (file.name.endsWith('.hbs') && !file.name.endsWith('.test.hbs'))) {
24
- arrayOfFiles.push(path.join(dirPath, file.name));
37
+ export default function QGDSupdateHandlebarsPartialsPlugin() {
38
+ return {
39
+ name: "update-handlebars-partials",
40
+ setup(build) {
41
+ build.onStart(async () => {
42
+ const files = getAllFiles(COMPONENTS_DIR);
43
+ // Sort files alphabetically to ensure deterministic ordering
44
+ // This prevents TurboSnap cache invalidation in Chromatic builds
45
+ // caused by non-deterministic filesystem readdir ordering
46
+ files.sort((a, b) => path.basename(a).localeCompare(path.basename(b)));
47
+
48
+ //console.log(files);
49
+ const fileNames = new Map();
50
+ let duplicateFound = false;
51
+
52
+ let importLines = "";
53
+ let registerLines = "";
54
+
55
+ for (const file of files) {
56
+ //console.log(file);
57
+ const componentName = path.basename(file, ".hbs");
58
+ //console.log(componentName);
59
+ // Duplicate check
60
+ if (fileNames.has(componentName)) {
61
+ console.error(
62
+ `Error: Duplicate component name found: "${componentName}" second partial located at ${file} and ${fileNames.get(componentName)}`,
63
+ );
64
+ duplicateFound = true;
65
+ continue;
66
+ }
67
+ fileNames.set(componentName, file);
68
+
69
+ const importName = componentName.replace(/-/g, "");
70
+ const componentPath = path
71
+ .relative(path.dirname(PARTIALS_JS_FILE), file)
72
+ .replace(/\\/g, "/");
73
+
74
+ importLines += `import ${importName} from "${componentPath}?raw";\n`;
75
+ registerLines += ` handlebars.registerPartial("${componentName}", ${importName});\n`;
25
76
  }
26
- });
27
77
 
28
- return arrayOfFiles;
29
- }
78
+ if (duplicateFound) {
79
+ process.exit(1);
80
+ }
30
81
 
31
- export default function QGDSupdateHandlebarsPartialsPlugin() {
32
- return {
33
- name: 'update-handlebars-partials',
34
- setup(build) {
35
- build.onStart(async () => {
36
-
37
- const files = getAllFiles(COMPONENTS_DIR);
38
- // Sort files alphabetically to ensure deterministic ordering
39
- // This prevents TurboSnap cache invalidation in Chromatic builds
40
- // caused by non-deterministic filesystem readdir ordering
41
- files.sort();
42
- //console.log(files);
43
- const fileNames = new Map();
44
- let duplicateFound = false;
45
-
46
- let importLines = '';
47
- let registerLines = '';
48
-
49
- for (const file of files) {
50
- //console.log(file);
51
- const componentName = path.basename(file, '.hbs')
52
- //console.log(componentName);
53
- // Duplicate check
54
- if (fileNames.has(componentName)) {
55
- console.error(`Error: Duplicate component name found: "${componentName}" second partial located at ${file} and ${fileNames.get(componentName)}`);
56
- duplicateFound = true;
57
- continue;
58
- }
59
- fileNames.set(componentName, file);
60
-
61
- const importName = componentName.replace(/-/g, '');
62
- const componentPath = path.relative(path.dirname(PARTIALS_JS_FILE), file).replace(/\\/g, '/');
63
-
64
- importLines += `import ${importName} from "${componentPath}?raw";\n`;
65
- registerLines += ` handlebars.registerPartial("${componentName}", ${importName});\n`;
66
- }
67
-
68
- if (duplicateFound) {
69
- process.exit(1);
70
- }
71
-
72
- const newContent = `/* global Handlebars */
82
+ const newContent = `/* global Handlebars */
73
83
  /** THIS IS A GENERATED FILE **/
74
84
 
75
85
  ${importLines}
@@ -87,9 +97,9 @@ if(typeof(Handlebars) !== 'undefined') {
87
97
  }
88
98
  `;
89
99
 
90
- fs.writeFileSync(PARTIALS_JS_FILE, newContent);
91
- //console.log(`${PARTIALS_JS_FILE} has been updated.`);
92
- });
93
- },
94
- }
95
- };
100
+ fs.writeFileSync(PARTIALS_JS_FILE, newContent);
101
+ //console.log(`${PARTIALS_JS_FILE} has been updated.`);
102
+ });
103
+ },
104
+ };
105
+ }
@@ -0,0 +1,10 @@
1
+ ## What stops Turbo Snapshots
2
+
3
+ The key files that will always trigger a full run if touched include:
4
+
5
+ * .storybook/main.js / .storybook/main.ts
6
+ * .storybook/preview.js / .storybook/preview.ts
7
+ * .storybook/manager.js
8
+ * Any addons.js or config imports that affect global decorators/parameters
9
+
10
+ Any file linked to preview.js i.e. transitive dependencies could also trigger a skip (i.e. if css is altered it would then run the full build to pick up regressions, if hbs files are just altered or a new story is added then it would not rebuild the full project)
@@ -1,7 +1,7 @@
1
1
  /** @type { import('@storybook/html-vite').StorybookConfig } */
2
+ // Is an ESM module now
2
3
 
3
4
  import path from "path";
4
- import fs from "fs";
5
5
 
6
6
  const config = {
7
7
  stories: [
@@ -17,11 +17,10 @@ const config = {
17
17
  //https://storybook.js.org/addons/
18
18
  "@storybook/addon-a11y",
19
19
  "@storybook/addon-themes",
20
- "@storybook/addon-essentials",
21
- "@storybook/addon-interactions",
22
20
  "@storybook/addon-links",
23
21
  "@chromatic-com/storybook",
24
22
  "storybook-addon-deep-controls",
23
+ "@storybook/addon-docs",
25
24
  ],
26
25
 
27
26
  framework: {
@@ -69,8 +68,8 @@ const config = {
69
68
  fs: {
70
69
  allow: [
71
70
  // Allow access to assets
72
- path.resolve(__dirname, "../src/assets"),
73
- path.resolve(__dirname, "../src/img"),
71
+ path.resolve(process.cwd(), "../src/assets"),
72
+ path.resolve(process.cwd(), "../src/img"),
74
73
  ],
75
74
  },
76
75
  };
@@ -7,25 +7,16 @@ export const allModes = {
7
7
  desktop: {
8
8
  viewport: "large",
9
9
  },
10
- "Light": {
10
+ Light: {
11
11
  theme: "light",
12
12
  },
13
13
  "Light alternative": {
14
14
  theme: "alt",
15
15
  },
16
- "Dark": {
16
+ Dark: {
17
17
  theme: "dark",
18
18
  },
19
19
  "Dark alternative": {
20
20
  theme: "dark-alt",
21
- }
21
+ },
22
22
  };
23
-
24
- export const allBackgrounds = {
25
- default: {name: 'default', value: '#FFFFFF'},
26
- "Light": {name: 'Light', value: "var(--qld-light-background)"},
27
- "Light alternative": {name: 'Light alternative', value: "var(--qld-light-grey-alt)"},
28
- "Dark": {name: 'Dark', value: "var(--qld-sapphire-blue)"},
29
- "Dark alternative": {name: 'Dark alternative', value: "var(--qld-dark-blue)"},
30
- }
31
-
@@ -2,6 +2,7 @@ import "../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js";
2
2
  import "../src/js/qld.bootstrap.js";
3
3
  import "../src/css/main.scss";
4
4
  import { withThemeByClassName } from "@storybook/addon-themes";
5
+ // import { allBackgrounds } from "./modes.js";
5
6
  import {
6
7
  withDynamicTheme,
7
8
  dynamicThemeGlobalTypes,
@@ -9,8 +10,7 @@ import {
9
10
 
10
11
  // Check if dynamic theme should be enabled via environment variable
11
12
  const ENABLE_DYNAMIC_THEME = import.meta.env.ENABLE_DYNAMIC_THEME;
12
- import { allBackgrounds } from "./modes.js";
13
- import { INITIAL_VIEWPORTS } from "@storybook/addon-viewport";
13
+ import { INITIAL_VIEWPORTS } from "storybook/viewport";
14
14
  import init from "../src/js/handlebars.init.js";
15
15
  import Handlebars from "handlebars";
16
16
 
@@ -42,7 +42,7 @@ const preview = {
42
42
  },
43
43
  },
44
44
  viewport: {
45
- viewports: {
45
+ options: {
46
46
  //QLD-media Breakpoints
47
47
  small: { name: "Small", styles: { width: "400px", height: "800px" } },
48
48
  medium: { name: "Medium", styles: { width: "700px", height: "800px" } },
@@ -82,14 +82,14 @@ const preview = {
82
82
  },
83
83
  },
84
84
  backgrounds: {
85
- //default: 'default',
86
- values: [
87
- allBackgrounds["default"],
88
- allBackgrounds["Light"],
89
- allBackgrounds["Light alternative"],
90
- allBackgrounds["Dark"],
91
- allBackgrounds["Dark alternative"],
92
- ],
85
+ options: {
86
+ default: { name: "Default", value: "var(--qld-default-background)" },
87
+ light: { name: "Light", value: "var(--qld-light-background)" },
88
+ alt: { name: "Light Alt", value: "var(--qld-light-alt-background)" },
89
+ dark: { name: "Dark", value: "var(--qld-dark-background)" },
90
+ darkAlt: { name: "Dark Alt", value: "var(--qld-dark-alt-background)" },
91
+ },
92
+ disable: true,
93
93
  },
94
94
  options: {
95
95
  storySort: {
@@ -110,6 +110,9 @@ const preview = {
110
110
  restoreScroll: true,
111
111
  },
112
112
  },
113
+ initialGlobals: {
114
+ backgrounds: { value: "default" },
115
+ },
113
116
  },
114
117
 
115
118
  decorators: [
@@ -38,24 +38,26 @@
38
38
 
39
39
  <div class="col-12">
40
40
  {{!-- Custom contact list --}}
41
- {{#ifCond contact.showList "&&" contact.list}}
42
- {{#each contact.list }}
43
- <div class="footer-contact-item footer-contact-{{@key}}">
44
- <span class="qld-icon {{this.icon}}" aria-hidden="true"></span> {{{ this.label }}}
45
- </div>
46
- {{/each}}
47
-
48
- {{else}}
49
- {{!default contact list }}
50
- <div class="footer-contact-item footer-contact-phone">
51
- <span class="qld-icon qld-icon-phone" aria-hidden="true"></span> <b>Phone:</b> <a href="tel:137468"
52
- rel="noopener">13 QGOV (13 74 68)</a>
53
- </div>
54
-
55
- <div class="footer-contact-item footer-contact-email">
56
- <span class="qld-icon qld-icon-email" aria-hidden="true"></span> <b>Email:</b> <a
57
- href="mailto:email@qld.gov.au" rel="noopener"><span class="user-select-all">email@qld.gov.au</span></a>
58
- </div>
41
+ {{#ifCond contact.showList "!==" false}}
42
+ {{#ifCond contact.showList "&&" contact.list}}
43
+ {{#each contact.list }}
44
+ <div class="footer-contact-item footer-contact-{{@key}}">
45
+ <span class="qld-icon {{this.icon}}" aria-hidden="true"></span> {{{ this.label }}}
46
+ </div>
47
+ {{/each}}
48
+
49
+ {{else}}
50
+ {{!default contact list }}
51
+ <div class="footer-contact-item footer-contact-phone">
52
+ <span class="qld-icon qld-icon-phone" aria-hidden="true"></span> <b>Phone:</b> <a href="tel:137468"
53
+ rel="noopener">13 QGOV (13 74 68)</a>
54
+ </div>
55
+
56
+ <div class="footer-contact-item footer-contact-email">
57
+ <span class="qld-icon qld-icon-email" aria-hidden="true"></span> <b>Email:</b> <a
58
+ href="mailto:email@qld.gov.au" rel="noopener"><span class="user-select-all">email@qld.gov.au</span></a>
59
+ </div>
60
+ {{/ifCond}}
59
61
  {{/ifCond}}
60
62
  </div>
61
63
  </div>
@@ -1,5 +1,5 @@
1
1
 
2
- <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.6","branch":"HEAD","tag":"v2.0.6","commit":"8e01e15b93ee3bf9a4f97638ef79324fdf6a97a7","majorVersion":"v2"} -->
2
+ <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.8","branch":"HEAD","tag":"v2.0.8","commit":"b00b1b9ba663416df3f4b2da41b11b05dcb6c2a6","majorVersion":"v2"} -->
3
3
 
4
4
  {{! Select environment, used verbatium if not using predefind key
5
5
  cdn := PROD|STAGING|BETA|TEST|DEV|???
@@ -1,50 +1,46 @@
1
- <header class="qld-header" role="banner" >
2
- <div class="qld-header-pre-header {{#ifCond preHeader.palette "===" " dark"}}dark{{else}}{{#ifCond
3
- preHeader.palette "===" "light" }}light{{else}}{{#ifCond preHeader.palette "===" "dark-alt"
4
- }}dark-alt{{else}}dark{{/ifCond}}{{/ifCond}}{{/ifCond}}">
1
+ <header class="qld-header " role="banner">
2
+ <div class="qld-header-pre-header {{#ifCond preHeader.palette "===" "dark"}}dark{{else}}{{#ifCond
3
+ preHeader.palette "===" "default" }}default{{else}}{{#ifCond preHeader.palette "===" "dark-alt"
4
+ }}dark-alt{{else}}default{{/ifCond}}{{/ifCond}}{{/ifCond}}">
5
5
  <div class="container">
6
- <div class="d-flex justify-content-between align-items-baseline">
6
+ <div class="d-flex justify-content-between">
7
7
 
8
- <a class="qld-header-link"
8
+ <a class="qld-header-link align-self-center"
9
9
  href="{{#if preHeader.globalLink.url}}{{preHeader.globalLink.url}}{{else}}https://qld.gov.au{{/if}}">
10
10
  <span class="d-none d-lg-inline">{{preHeader.globalLink.text}}</span>
11
+ {{#if hasDeliveringForQLDLogo}}
12
+ {{>logo logo="coa-delivering-for-qld" className="qld-header-logo is-delivering-for-qld" fill="currentColor"}}
13
+ {{else}}
11
14
  {{>logo className="qld-header-logo" fill="currentColor"}}
15
+ {{/if}}
12
16
  </a>
13
17
 
14
18
  {{#if preHeader.actions}}
15
- <div class="d-none d-lg-flex gap-20 align-items-baseline">
19
+ <div class="d-none d-lg-flex align-items-baseline">
16
20
  {{#each preHeader.actions}}
17
21
  {{#if dropdown}}
18
22
  <div class="dropdown">
19
23
  <a id="dropdown{{id}}" role="button" data-bs-toggle="dropdown" aria-expanded="false"
20
- class="qld-header-link" href="#">
24
+ class="qld-header-link dropdown-toggle" href="#">
21
25
  {{{text}}}
22
-
23
- <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg"
24
- class="qld-header-dropdown-icon ">
25
- <use href="{{../assets.SVGSpritePath}}#qgds-icon-chevron-down"
26
- aria-hidden="true"></use>
27
- </svg>
28
26
  </a>
29
27
 
30
28
  {{#ifCond dropdown.type "===" "list"}}
31
- <ul class="dropdown-menu">
29
+ <ul class="dropdown-menu dropdown-menu-end">
32
30
 
33
31
  {{#each dropdown.items}}
34
32
  <li>
35
- <a class="qld-header-link dropdown-item " href="{{url}}" {{#if target}}target="{{target}}"{{/if}}>
33
+ <a class="qld-header-link dropdown-item " href="{{url}}" {{#if
34
+ target}}target="{{target}}" {{/if}}>
36
35
  {{text}}
37
- <svg width="24" height="24" class="qld-header-icon qld-header-dropdown-item-icon">
38
- <use href="{{ ../../assets.SVGSpritePath }}#qgds-icon-arrow-right"
39
- aria-hidden="true"></use>
40
- </svg>
41
36
  </a>
42
37
  </li>
43
38
  {{/each}}
44
39
 
45
40
  {{#if dropdown.viewMore}}
46
41
  <li>
47
- <a href="{{dropdown.viewMore.url}}" {{#if dropdown.viewMore.target}}target="{{dropdown.viewMore.target}}"{{/if}}
42
+ <a href="{{dropdown.viewMore.url}}" {{#if
43
+ dropdown.viewMore.target}}target="{{dropdown.viewMore.target}}" {{/if}}
48
44
  class="qld-header-link dropdown-item border-bottom-0">
49
45
  {{dropdown.viewMore.text}}
50
46
  </a>
@@ -54,8 +50,8 @@
54
50
  </ul>
55
51
  {{/ifCond}}
56
52
 
57
- {{#ifCond dropdown.type "===" "form"}}
58
- <div class="dropdown-menu">
53
+ {{#ifCond dropdown.type "in" "html, form"}}
54
+ <div class="dropdown-menu dropdown-menu-end">
59
55
  {{{dropdown.HTMLContent}}}
60
56
  </div>
61
57
  {{/ifCond}}
@@ -63,51 +59,42 @@
63
59
  </div>
64
60
  {{else}}
65
61
 
66
- <a class="qld-header-link" href="{{url}}">
67
- {{#if icon}}
68
- <svg class="qld-header-link-icon">
69
- <use href="{{ ../assets.SVGSpritePath }}#qgds-icon-{{icon}}" aria-hidden="true"></use>
70
- </svg>{{/if}}{{{text}}}
62
+ <a class="qld-header-link ms-16" href="{{url}}">
63
+ {{#if icon}}
64
+ <span class="qld-icon qld-icon-{{icon}} qld-icon-sm qld-header-link-icon"
65
+ aria-hidden="true"></span>
66
+ {{/if}}{{{text}}}
71
67
  </a>
72
68
  {{/if}}
73
69
  {{/each}}
74
70
  </div>
75
71
  {{/if}}
76
- </div>
77
72
 
78
- <div class="qld-header-main-nav-controls">
79
- {{#if assets.siteSearch.value}}
80
- <button id="qld-header-toggle-search-button" aria-controls="qld-header-search"
81
- class="qld-header-toggle-main-nav" aria-expanded="false">
82
- <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
83
- <use class="icon-search" href="{{ assets.SVGSpritePath }}#qgds-icon-search" aria-hidden="true" style="display: block;"></use>
84
- <use class="icon-close" href="{{ assets.SVGSpritePath}}#qgds-icon-close" style="display: none;"></use>
85
- </svg>
86
- <span class="qld-header-toggle-main-nav-text">Search</span>
87
- </button>
88
- {{/if}}
73
+ <div class="qld-header-mobile-controls">
74
+ {{#if assets.siteSearch.value}}
75
+ <button id="qld-header-toggle-search-button" aria-controls="qld-header-search"
76
+ class="qld-header-mobile-button is-search-toggle" aria-expanded="false"
77
+ aria-label="Open search">Search</button>
78
+ {{/if}}
89
79
 
90
- <button id="burgerBtn" class="qld-header-toggle-main-nav"
91
- data-bs-toggle="collapse" data-bs-target="#main-nav" aria-controls="main-nav" aria-expanded="false"
92
- aria-label="Open menu">
93
- <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
94
- <use href="{{assets.SVGSpritePath}}#qgds-icon-menu" aria-hidden="true">
95
- </use>
96
- </svg>
97
- <span class="qld-header-toggle-main-nav-text">Menu</span>
98
- </button>
80
+ <button id="burgerBtn" class="qld-header-mobile-button is-menu-toggle" data-bs-toggle="collapse"
81
+ data-bs-target="#main-nav" aria-controls="main-nav" aria-expanded="false"
82
+ aria-label="Open menu">Menu</button>
83
+ </div>
99
84
  </div>
85
+
100
86
  </div>
101
87
  </div>
102
88
 
103
- <div class="qld-header-main{{#ifCond preHeader.palette "===" " dark"}} dark{{else}}{{#ifCond
104
- preHeader.palette "===" "light" }} light{{else}}{{#ifCond preHeader.palette "===" "dark-alt"
105
- }} dark-alt{{else}} default{{/ifCond}}{{/ifCond}}{{/ifCond}}">
89
+ <div class="qld-header-main {{#ifCond mainContent.palette "===" "dark"}}dark{{else ifCond
90
+ mainContent.palette "===" "default" }}default{{else ifCond mainContent.palette "===" "dark-alt"
91
+ }}dark-alt{{else}}default{{/ifCond}}">
106
92
  <div class="container">
107
93
  <div class="row align-items-center">
108
94
  <div class="col">
109
95
  {{#ifAny isMasterBrand isSubBrand isCoBrand}}
110
96
  {{>headerBrand
97
+ hasDeliveringForQLDLogo=hasDeliveringForQLDLogo
111
98
  url=mainContent.url
112
99
  logo=mainContent.logo
113
100
  siteTitle=mainContent.siteTitle
@@ -116,6 +103,7 @@
116
103
 
117
104
  {{#ifAny isEndorsedBrand isStandaloneBrand }}
118
105
  {{>headerBrand
106
+ hasDeliveringForQLDLogo=hasDeliveringForQLDLogo
119
107
  url=mainContent.url
120
108
  logo=mainContent.logo
121
109
  siteTitle=mainContent.siteTitle
@@ -1,22 +1,21 @@
1
1
 
2
2
  <div class="qld-header-brand">
3
- <a class="qld-header-link d-lg-inline-flex" href="{{url}}">
4
- <div class="qld-header-brand-image qld-header-logo">
3
+ <a class="qld-header-link d-lg-inline-flex align-middle" href="{{url}}">
4
+ <div class="qld-header-brand-image align-self-center">
5
5
  {{#if logo}}
6
6
  <img src="{{logo.src}}" height="56" alt="{{#if logo.altText}}{{logo.altText}}{{else}}Queensland government{{/if}}" />
7
+ {{else if siteTitle}}
8
+ {{>logo logo="coa-landscape-2lines" height="56" className="qld-header-logo" fill="currentColor"}}
9
+ {{else if hasDeliveringForQLDLogo}}
10
+ {{>logo logo="coa-delivering-for-qld" height="56" className="qld-header-logo is-delivering-for-qld" fill="currentColor"}}
7
11
  {{else}}
8
- {{#if siteTitle}}
9
- {{>logo logo="coa-landscape-2lines" height="56" fill="currentColor"}}
10
- {{else}}
11
- {{>logo height="56" fill="currentColor"}}
12
- {{/if}}
12
+ {{>logo height="56" className="qld-header-logo" fill="currentColor"}}
13
13
  {{/if}}
14
14
  </div>
15
15
  {{#if secondaryLogo}}
16
- <div class="qld-header-secondary-content" >
16
+ <div class="qld-header-secondary-content">
17
17
  <img src="{{secondaryLogo.src}}" class="qld-header-secondary-image qld-header-logo" height="56" alt="{{#if secondaryLogo.altText}}{{secondaryLogo.altText}}{{else}}{{siteTitle}}{{#if subline}}{{subline}}{{/if}}{{/if}}" />
18
-
19
- </div>
18
+ </div>
20
19
  {{else}}
21
20
  {{#if siteTitle}}
22
21
  <div class="qld-header-secondary-content">
@@ -2,6 +2,8 @@
2
2
  {{>logoCOALandscape}}
3
3
  {{else ifCond logo "===" "coa-landscape-2lines"}}
4
4
  {{>logoCOALandscape2Lines}}
5
+ {{else ifCond logo "===" "coa-delivering-for-qld"}}
6
+ {{>logoCOADeliveringForQLD}}
5
7
  {{else}}
6
8
  {{>logoCOALandscape}}
7
9
  {{/ifCond}}