@qld-gov-au/qgds-bootstrap5 2.0.3 → 2.0.5

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 (44) hide show
  1. package/.esbuild/helpers/scssOverrideTheme.js +40 -0
  2. package/.esbuild/plugins/qgds-plugin-handlebar-partial-builder.js +4 -0
  3. package/.storybook/dynamicThemeDecorator.js +155 -0
  4. package/.storybook/main.js +6 -0
  5. package/.storybook/preview.js +20 -1
  6. package/README.md +26 -18
  7. package/dist/README.md +26 -18
  8. package/dist/assets/components/bs5/head/head.hbs +1 -1
  9. package/dist/assets/components/bs5/searchInput/searchInput.hbs +34 -35
  10. package/dist/assets/css/qld.bootstrap.css +1 -1
  11. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  12. package/dist/assets/js/handlebars.init.min.js +36 -38
  13. package/dist/assets/js/handlebars.init.min.js.map +2 -2
  14. package/dist/assets/node/handlebars.init.min.js +2 -2
  15. package/dist/assets/node/handlebars.init.min.js.map +1 -1
  16. package/dist/components/bs5/head/head.hbs +1 -1
  17. package/dist/components/bs5/searchInput/searchInput.hbs +34 -35
  18. package/dist/package.json +6 -2
  19. package/dist/sample-data/searchInput/searchInput.data.json +0 -1
  20. package/esbuild.js +34 -9
  21. package/package.json +6 -2
  22. package/src/components/bs5/card/card--icon-list-footer.stories.js +171 -0
  23. package/src/components/bs5/card/card.scss +15 -0
  24. package/src/components/bs5/header/header.scss +23 -27
  25. package/src/components/bs5/logo/Logo.mdx +1 -1
  26. package/src/components/bs5/navbar/navbar.scss +7 -5
  27. package/src/components/bs5/navbar/navbar.stories.js +1 -1
  28. package/src/components/bs5/pageLayout/pageLayout.stories.js +2 -2
  29. package/src/components/bs5/searchInput/SearchInput.mdx +1 -1
  30. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +32 -34
  31. package/src/components/bs5/searchInput/searchInput.data.json +0 -1
  32. package/src/components/bs5/searchInput/searchInput.hbs +34 -35
  33. package/src/components/bs5/searchInput/searchInput.scss +216 -195
  34. package/src/components/bs5/searchInput/searchInput.stories.js +42 -26
  35. package/src/components/bs5/searchInput/searchInput.test.js +21 -5
  36. package/src/components/bs5/tabs/tabs.scss +47 -40
  37. package/src/css/main.masterbrand.scss +137 -0
  38. package/src/css/mixins/focusable.scss +11 -3
  39. package/src/css/mixins/make-icon.scss +7 -1
  40. package/src/css/qld-tokens.scss +95 -0
  41. package/src/css/qld-variables.scss +10 -3
  42. package/src/css/readme.md +6 -1
  43. package/src/css/themes/masterbrand.scss +109 -0
  44. package/src/components/bs5/searchInput/_colours.scss +0 -63
@@ -6,66 +6,82 @@ export default {
6
6
  tags: ["autodocs"],
7
7
  title: "3. Components/Search Input",
8
8
  render: (args) => {
9
- return `<form action="https://uat.forgov.qld.gov.au/search" class="site-search">${new SearchInput(args).html}</form>`;
10
- },
11
-
12
- argTypes: {
9
+ return `<form action="https://uat.forgov.qld.gov.au/search" class="site-search p-3">${new SearchInput(args).html}</form>`;
13
10
  },
14
11
 
12
+ argTypes: {},
15
13
  parameters: {
16
14
  docs: {
17
15
  controls: {
18
- exclude: ["variantClass", "customClass", "inputID", "inputName", "buttonID", "buttonType", "ariaLabel"],
16
+ include: ["buttonLabel", "suggestions"],
19
17
  },
18
+ story: { height: "400px" },
20
19
  },
21
20
  },
22
-
23
21
  };
24
22
 
25
-
26
-
27
-
28
- /**
29
- * Default Search Input
30
- */
31
23
  export const Default = {
32
24
  args: defaultdata,
25
+ name: "Default - Outline Variant",
33
26
  };
34
27
 
35
28
  /**
36
- * Full width Search Input
29
+ * With `customClass: is-filled`
37
30
  */
31
+ export const FilledVariant = {
32
+ args: { ...defaultdata, customClass: "is-filled" },
33
+ };
34
+
38
35
  export const FullWidth = {
39
36
  args: {
40
37
  ...defaultdata,
41
38
  customClass: "full-width",
42
39
  },
43
- }
44
-
40
+ };
45
41
 
46
42
  /**
47
43
  * Dark themed Search Input
48
- *
49
- * Apply a class <code>.dark</code> to the parent container of the <code>.qld-search-input</code> element.
44
+ *
45
+ * Apply a class <code>.dark</code> to the parent container of the <code>.qld-search-input</code> element.
50
46
  */
51
-
52
47
  export const Dark = {
53
- args: {
54
- ...defaultdata,
55
- variantClass: "dark",
48
+ args: {
49
+ ...defaultdata,
50
+ },
51
+ parameters: {
52
+ backgrounds: {
53
+ default: "Dark",
54
+ values: [{ name: "Dark", value: "var(--qld-dark-background)" }],
55
+ },
56
56
  },
57
+ decorators: [
58
+ (Story) => {
59
+ return `
60
+ <div class="dark">
61
+ ${Story()}
62
+ </div>
63
+ `;
64
+ },
65
+ ],
66
+ };
67
+
68
+ /**
69
+ * Dark themed Search Input
70
+ *
71
+ * Apply a class <code>.dark</code> to the parent container of the <code>.qld-search-input</code> element.
72
+ */
73
+ export const DarkFilled = {
74
+ args: { ...defaultdata, customClass: "is-filled" },
57
75
  parameters: {
58
76
  backgrounds: {
59
- default: 'Dark',
60
- values: [
61
- { name: 'Dark', value: 'var(--qld-brand-primary)' },
62
- ],
77
+ default: "Dark",
78
+ values: [{ name: "Dark", value: "var(--qld-dark-background)" }],
63
79
  },
64
80
  },
65
81
  decorators: [
66
82
  (Story) => {
67
83
  return `
68
- <div class="dark p-5">
84
+ <div class="dark">
69
85
  ${Story()}
70
86
  </div>
71
87
  `;
@@ -1,4 +1,4 @@
1
- import { expect, it, describe, test, beforeEach } from "vitest";
1
+ import { expect, it, describe, test, beforeEach, afterEach } from "vitest";
2
2
  import { JSDOM } from "jsdom";
3
3
  import { SearchInput } from "./SearchInput.js";
4
4
  import mockData from "./searchInput.data.json";
@@ -63,12 +63,15 @@ describe("SearchInput", () => {
63
63
  d = dom.window.document;
64
64
  window = dom.window;
65
65
 
66
- // Wait for scripts to execute
67
- await waitFor();
66
+ // Wait for scripts to execute and DOM to be fully ready
67
+ await waitFor(100);
68
+
69
+ // Additional wait to ensure all scripts are fully initialized
70
+ await new Promise(resolve => setTimeout(resolve, 100));
68
71
 
69
72
  form = d.querySelector(".site-search");
70
- searchInput = form.querySelector(".qld-search-input input");
71
- suggestions = form.querySelector(".suggestions");
73
+ searchInput = form?.querySelector(".qld-search-input input");
74
+ suggestions = form?.querySelector(".suggestions");
72
75
 
73
76
  // Ensure elements exist
74
77
  if (!form || !searchInput || !suggestions) {
@@ -76,6 +79,19 @@ describe("SearchInput", () => {
76
79
  }
77
80
  });
78
81
 
82
+ afterEach(() => {
83
+ // Clean up DOM and prevent memory leaks
84
+ if (dom) {
85
+ dom.window.close();
86
+ dom = null;
87
+ d = null;
88
+ window = null;
89
+ form = null;
90
+ searchInput = null;
91
+ suggestions = null;
92
+ }
93
+ });
94
+
79
95
  it("Renders as expected", () => {
80
96
  const SearchInputComponent = new SearchInput(mockData);
81
97
  expect(SearchInputComponent.html).toMatchSnapshot();
@@ -1,27 +1,27 @@
1
1
  .qld-tabs {
2
- --accent-colour: var(--qld-brand-secondary);
2
+ --accent-colour: var(--#{$prefix}brand-secondary);
3
3
  --border-radius: #{$border-radius};
4
4
  --section-content-padding: 4rem;
5
5
  // tabs colours
6
- --default-bg-colour: var(--qld-default-background);
7
- --light-bg-colour: var(--qld-light-background);
8
- --alt-bg-colour: var(--qld-light-alt-background);
9
- --dark-bg-colour: var(--qld-dark-background);
10
- --dark-alt-bg-colour: var(--qld-dark-alt-background);
11
- --light-border-colour: var(--qld-soft-grey);
12
- --light-colour: var(--qld-light-text-heading);
13
- --dark-border-colour: var(--qld-dark-alt-border);
14
- --dark-colour: var(--qld-dark-text);
6
+ --default-bg-colour: var(--#{$prefix}default-background);
7
+ --light-bg-colour: var(--#{$prefix}light-background);
8
+ --alt-bg-colour: var(--#{$prefix}light-alt-background);
9
+ --dark-bg-colour: var(--#{$prefix}dark-background);
10
+ --dark-alt-bg-colour: var(--#{$prefix}dark-alt-background);
11
+ --light-border-colour: var(--#{$prefix}soft-grey);
12
+ --light-colour: var(--#{$prefix}light-text-heading);
13
+ --dark-border-colour: var(--#{$prefix}dark-alt-border);
14
+ --dark-colour: var(--#{$prefix}dark-text);
15
15
  --icon-dropshadow:
16
16
  0px 1px 2px rgba(0, 0, 0, 0.2), 0px 1px 3px 1px rgba(0, 0, 0, 0.1);
17
- --focus-default-colour: var(--qld-light-focus);
17
+ --focus-default-colour: var(--#{$prefix}light-focus);
18
18
  --nav-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill=''><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>");
19
19
  // bootstrap variables
20
20
  --#{$prefix}nav-tabs-border-radius: var(--border-radius);
21
- --#{$prefix}nav-tabs-link-hover-border-color: var(--qld-tab-background-hover);
22
- --#{$prefix}nav-tabs-link-active-color: var(--qld-tab-hover-text-color);
23
- --#{$prefix}nav-tabs-link-active-bg: var(--qld-tab-background);
24
- --#{$prefix}nav-tabs-link-active-border-color: var(--qld-border-color);
21
+ --#{$prefix}nav-tabs-link-hover-border-color: var(--#{$prefix}tab-background-hover);
22
+ --#{$prefix}nav-tabs-link-active-color: var(--#{$prefix}tab-hover-text-color);
23
+ --#{$prefix}nav-tabs-link-active-bg: var(--#{$prefix}tab-background);
24
+ --#{$prefix}nav-tabs-link-active-border-color: var(--#{$prefix}border-color);
25
25
  // animation
26
26
  --fade-time: 0.15s;
27
27
 
@@ -30,60 +30,62 @@
30
30
  .default &,
31
31
  .default,
32
32
  &.default {
33
- --qld-tab-background: var(--qld-default-background-shade);
33
+ --qld-tab-background: var(--#{$prefix}default-background-shade);
34
34
  }
35
35
  .alt &,
36
36
  .alt,
37
37
  &.alt {
38
- --qld-body-bg: var(--qld-light-alt-background);
39
- --qld-border-color: var(--qld-soft-grey);
40
- --qld-tab-background: var(--qld-light-alt-background-shade);
38
+ --qld-body-bg: var(--#{$prefix}light-alt-background);
39
+ --qld-border-color: var(--#{$prefix}soft-grey);
40
+ --qld-tab-background: var(--#{$prefix}light-alt-background-shade);
41
41
  }
42
42
  .light &,
43
43
  .light,
44
44
  &.light {
45
45
  --qld-body-bg: #eff4f9;
46
46
  --qld-border-color: var(--#{$prefix}color-default-color-light-border-light);
47
- --qld-tab-background: var(--qld-light-background-shade);
48
- --qld-tab-background-hover: var(--qld-button-dark-blue);
47
+ --qld-tab-background: var(--#{$prefix}light-background-shade);
48
+ --qld-tab-background-hover: var(--#{$prefix}button-dark-blue);
49
49
  }
50
50
  .dark &,
51
51
  .dark,
52
52
  &.dark {
53
- --qld-border-color: var(--qld-dark-border);
54
- --qld-tab-background: var(--qld-dark-hover);
53
+ --qld-border-color: var(--#{$prefix}dark-border);
54
+ --qld-tab-background: var(--#{$prefix}dark-hover);
55
55
  }
56
56
  .dark-alt &,
57
57
  .dark-alt,
58
58
  &.dark-alt {
59
- --qld-body-bg: var(--qld-dark-alt-background);
60
- --qld-border-color: var(--qld-dark-alt-border);
61
- --qld-tab-background: var(--qld-dark-alt-background-shade);
59
+ --qld-body-bg: var(--#{$prefix}dark-alt-background);
60
+ --qld-border-color: var(--#{$prefix}dark-alt-border);
61
+ --qld-tab-background: var(--#{$prefix}dark-alt-background-shade);
62
62
  }
63
63
  &.default,
64
64
  &.light,
65
65
  &.alt {
66
66
  --qld-tab-hover-text-color: #{$color-default-color-light-link-on-action};
67
- --qld-tab-icon-color: var(--qld-light-action-secondary);
68
- --qld-tab-background-hover: var(--qld-light-action-primary-hover);
67
+ --qld-tab-icon-color: var(--#{$prefix}light-action-secondary);
68
+ --qld-tab-background-hover: var(--#{$prefix}light-action-primary-hover);
69
69
  --qld-border-color: var(--light-border-colour);
70
- --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
71
- --qld-tab-focus-colour: var(--qld-light-focus);
72
- --qld-tab-active-focus-colour: var(--qld-light-focus);
70
+ --qld-tab-icon-color-hover: var(--#{$prefix}dark-action-secondary);
71
+ --qld-tab-focus-colour: var(--#{$prefix}light-focus);
72
+ --qld-tab-active-focus-colour: var(--#{$prefix}light-focus);
73
73
  --qld-scroll-bg-color: var(--default-bg-colour);
74
+ --nav-link-color: var(--#{$prefix}nav-link-color);
74
75
  }
75
76
  &.dark,
76
77
  &.dark-alt {
77
- --qld-tab-background-hover: var(--qld-dark-action-primary-hover);
78
- --qld-tab-hover-text-color: var(--qld-text-darkest);
79
- --qld-tab-icon-color: var(--qld-dark-action-secondary);
78
+ --qld-tab-background-hover: var(--#{$prefix}dark-action-primary-hover);
79
+ --qld-tab-hover-text-color: var(--#{$prefix}text-darkest);
80
+ --qld-tab-icon-color: var(--#{$prefix}dark-action-secondary);
80
81
  --qld-tab-disabled-colour: #{$qld-hint-text-color-muted};
81
- --qld-tab-text-colour-heading: var(--qld-dark-text);
82
- --qld-border-color: var(--qld-dark-alt-border);
83
- --qld-tab-icon-color-hover: var(--qld-dark-action-text);
84
- --qld-tab-focus-colour: var(--qld-dark-focus);
85
- --qld-tab-active-focus-colour: var(--qld-dark-focus);
82
+ --qld-tab-text-colour-heading: var(--#{$prefix}dark-text);
83
+ --qld-border-color: var(--#{$prefix}dark-alt-border);
84
+ --qld-tab-icon-color-hover: var(--#{$prefix}dark-action-text);
85
+ --qld-tab-focus-colour: var(--#{$prefix}dark-focus);
86
+ --qld-tab-active-focus-colour: var(--#{$prefix}dark-focus);
86
87
  --qld-scroll-bg-color: var(--default-bg-colour);
88
+ --nav-link-color: var(--#{$prefix}dark-text);
87
89
  }
88
90
  &.container-tabs {
89
91
  --scroll-distance: 0;
@@ -417,7 +419,7 @@
417
419
  display: flex;
418
420
  gap: 0.5rem;
419
421
  white-space: nowrap;
420
- color: var(--qld-nav-link-color);
422
+ color: var(--nav-link-color);
421
423
  align-items: anchor-center;
422
424
  i {
423
425
  font-size: 1.125rem;
@@ -544,6 +546,7 @@
544
546
  --qld-scroll-bg-color: var(--default-bg-colour);
545
547
  --qld-scroll-area-bg-color: var(--default-bg-colour);
546
548
  --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
549
+ --nav-link-color: var(--#{$prefix}nav-link-color);
547
550
  .tabs-area {
548
551
  background-color: var(--default-bg-colour);
549
552
  }
@@ -559,6 +562,7 @@
559
562
  --qld-scroll-bg-color: var(--light-bg-colour);
560
563
  --qld-scroll-area-bg-color: var(--light-bg-colour);
561
564
  --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
565
+ --nav-link-color: var(--#{$prefix}nav-link-color);
562
566
  .tabs-area {
563
567
  background-color: var(--light-bg-colour);
564
568
  }
@@ -574,6 +578,7 @@
574
578
  --qld-scroll-bg-color: var(--alt-bg-colour);
575
579
  --qld-scroll-area-bg-color: var(--alt-bg-colour);
576
580
  --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
581
+ --nav-link-color: var(--#{$prefix}nav-link-color);
577
582
  .tabs-area {
578
583
  background-color: var(--alt-bg-colour);
579
584
  }
@@ -587,6 +592,7 @@
587
592
  --qld-scroll-bg-color: var(--default-bg-colour);
588
593
  --qld-scroll-area-bg-color: var(--dark-bg-colour);
589
594
  --qld-tab-icon-color-hover: var(--qld-dark-action-text);
595
+ --nav-link-color: var(--#{$prefix}dark-text);
590
596
  .tabs-area {
591
597
  background-color: var(--dark-bg-colour);
592
598
  }
@@ -599,6 +605,7 @@
599
605
  --qld-tab-text-colour-heading: var(--qld-dark-text);
600
606
  --qld-scroll-bg-color: var(--default-bg-colour);
601
607
  --qld-tab-icon-color-hover: var(--qld-dark-action-text);
608
+ --nav-link-color: var(--#{$prefix}dark-text);
602
609
  color: var(--qld-body-color);
603
610
  background-color: var(--qld-dark-alt-background);
604
611
  .tabs-area {
@@ -0,0 +1,137 @@
1
+ @import './themes/masterbrand.scss';// Guidelines for this setup: https://getbootstrap.com/docs/5.3/customize/sass/
2
+
3
+ // External fonts
4
+ @import url("https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;700&family=Noto+Sans:wght@400;600;900&display=swap");
5
+ $font-family-sans-serif:
6
+ "Noto Sans",
7
+ system-ui,
8
+ -apple-system,
9
+ "Segoe UI",
10
+ Roboto,
11
+ "Helvetica Neue",
12
+ "Noto Sans",
13
+ "Liberation Sans",
14
+ Arial,
15
+ sans-serif,
16
+ "Apple Color Emoji",
17
+ "Segoe UI Emoji",
18
+ "Segoe UI Symbol",
19
+ "Noto Color Emoji" !default;
20
+ $font-family-sitename: "Fira Sans";
21
+
22
+ //Prefix to namespace design-system classes
23
+ $prefix: "qld-";
24
+ $enable-cssgrid: true;
25
+ $color-mode-type: data;
26
+ $enable-dark-mode: true;
27
+
28
+ // 1. Include bootstraps functions and variables first (so they can be referenced by proceeding files)
29
+ @import "../../node_modules/bootstrap/scss/functions";
30
+ @import "../../node_modules/bootstrap/scss/variables";
31
+ @import "../../node_modules/bootstrap/scss/variables-dark";
32
+
33
+ // 2. QLD Design System variables (Bootstrap overrides)
34
+ @import "./qld-variables";
35
+ @import "variables";
36
+
37
+ // 3. Include remainder of bootstrap
38
+ // 3.1 Required
39
+ @import "../../node_modules/bootstrap/scss/maps";
40
+ @import "../../node_modules/bootstrap/scss/mixins";
41
+ @import "../../node_modules/bootstrap/scss/utilities";
42
+
43
+ // 3.2 QLD Design System utilities (is dependent on maps, mixins and utilities being available)
44
+ @import "./qld-utilities";
45
+
46
+ // 3.2 Recommended, Resets and shared
47
+ @import "../../node_modules/bootstrap/scss/root";
48
+ @import "../../node_modules/bootstrap/scss/reboot";
49
+ @import "../../node_modules/bootstrap/scss/type";
50
+ @import "../../node_modules/bootstrap/scss/containers";
51
+ @import "../../node_modules/bootstrap/scss/grid";
52
+ @import "../../node_modules/bootstrap/scss/helpers";
53
+
54
+ // 3.3 Optional components
55
+ @import "../../node_modules/bootstrap/scss/accordion";
56
+ @import "../../node_modules/bootstrap/scss/alert";
57
+ @import "../../node_modules/bootstrap/scss/badge";
58
+ @import "../../node_modules/bootstrap/scss/buttons";
59
+ @import "../../node_modules/bootstrap/scss/button-group";
60
+ @import "../../node_modules/bootstrap/scss/breadcrumb";
61
+ @import "../../node_modules/bootstrap/scss/card";
62
+ @import "../../node_modules/bootstrap/scss/carousel";
63
+ @import "../../node_modules/bootstrap/scss/close";
64
+ @import "../../node_modules/bootstrap/scss/dropdown";
65
+ @import "../../node_modules/bootstrap/scss/forms";
66
+ @import "../../node_modules/bootstrap/scss/list-group";
67
+ @import "../../node_modules/bootstrap/scss/images";
68
+ @import "../../node_modules/bootstrap/scss/modal";
69
+ @import "../../node_modules/bootstrap/scss/progress";
70
+ @import "../../node_modules/bootstrap/scss/transitions";
71
+ @import "../../node_modules/bootstrap/scss/nav";
72
+ @import "../../node_modules/bootstrap/scss/navbar";
73
+ @import "../../node_modules/bootstrap/scss/offcanvas";
74
+ @import "../../node_modules/bootstrap/scss/pagination";
75
+ @import "../../node_modules/bootstrap/scss/placeholders";
76
+ @import "../../node_modules/bootstrap/scss/popover";
77
+ @import "../../node_modules/bootstrap/scss/spinners";
78
+ @import "../../node_modules/bootstrap/scss/tables";
79
+ @import "../../node_modules/bootstrap/scss/toasts";
80
+ @import "../../node_modules/bootstrap/scss/tooltip";
81
+
82
+ // 7. Optionally include utilities API last to generate classes based on the Sass map in `_utilities.scss`
83
+ @import "../../node_modules/bootstrap/scss/utilities/api";
84
+
85
+ // Themes
86
+ @import "qld-theme";
87
+
88
+ //8. QLD Design System typography (bootstrap overrides and custom). Please maintain naming consistency.
89
+ @import "./qld-type";
90
+
91
+ // Common Layout Blocks
92
+ @import "../components/common/layout/content";
93
+ @import "../components/common/layout/container";
94
+
95
+ // 9. QLD Design System components (bootstrap overrides and custom). Please maintain naming consistency.
96
+ @import "../components/bs5/accordion/accordion";
97
+ @import "../components/bs5/banner/banner";
98
+ @import "../components/bs5/blockquote/blockquote";
99
+ @import "../components/bs5/breadcrumbs/breadcrumbs";
100
+ @import "../components/bs5/button/button";
101
+ @import "../components/bs5/callout/callout";
102
+ @import "../components/bs5/card/card";
103
+ @import "../components/bs5/callToAction/callToAction";
104
+ @import "../components/bs5/correctincorrect/correctincorrect";
105
+ @import "../components/bs5/dateinput/dateinput";
106
+ @import "../components/bs5/directionLinks/directionLinks";
107
+ @import "../components/bs5/formcheck/formcheck";
108
+ @import "../components/bs5/footer/footer";
109
+ @import "../components/bs5/globalAlert/globalAlert";
110
+ @import "../components/bs5/link/link";
111
+ @import "../components/bs5/header/header";
112
+ @import "../components/bs5/icons/icons";
113
+ @import "../components/bs5/inpageAlert/inpageAlert";
114
+ @import "../components/bs5/image/image";
115
+ @import "../components/bs5/inpagenav/inpagenav";
116
+ @import "../components/bs5/linkColumns/linkColumns";
117
+ @import "../components/bs5/modal/modal";
118
+ @import "../components/bs5/navbar/navbar";
119
+ @import "../components/bs5/pagination/pagination";
120
+ @import "../components/bs5/promotionalPanel/promotionalPanel";
121
+ @import "../components/bs5/quickexit/quickexit";
122
+ @import "../components/bs5/sidenav/sidenav";
123
+ @import "../components/bs5/searchInput/searchInput";
124
+ @import "../components/bs5/skiplinks/skipLinks";
125
+ @import "../components/bs5/spinner/spinner";
126
+ @import "../components/bs5/table/table";
127
+ @import "../components/bs5/tabs/tabs";
128
+ @import "../components/bs5/tag/tag";
129
+ @import "../components/bs5/textbox/textInput";
130
+ @import "../components/bs5/typography/typography";
131
+ @import "../components/bs5/video/video";
132
+
133
+ // Custom utility classes
134
+ @import "utilities";
135
+
136
+ // Print
137
+ @import "qld-print";
@@ -2,8 +2,12 @@
2
2
  /// Default focus styles for use in buttons etc. Resets :focus and uses :focus-visible instead which only appears on keyboard interaction.
3
3
  /// @param {Boolean} $offsetOutline [true] - Offset the focus ring by 2px.
4
4
  /// @param {Boolean} $isFocusWithin [false] - Optionally apply styles via :focus-within rather than :focus-visible
5
- /// @param {String} $prefix ["qld-"] The css var prefix. This is declared in main.scss but required here as a module because reimporting will emit the entire main css file.
6
- @mixin focusable($offsetOutline: true, $isFocusWithin: false) {
5
+ /// @param {String} $customSelector [null] - If passed, will override $isFocusWithin and apply focus styles instead to a custom selector string. @see SearchInput
6
+ @mixin focusable(
7
+ $offsetOutline: true,
8
+ $isFocusWithin: false,
9
+ $customSelector: null
10
+ ) {
7
11
  // outline styles without the pseudo state to allow for transition animations.
8
12
 
9
13
  $outline-width: 3px;
@@ -18,7 +22,11 @@
18
22
  outline: $outline-width solid transparent;
19
23
  outline-offset: $initial-offset;
20
24
 
21
- $selector: if($isFocusWithin, ":focus-within", ":focus");
25
+ $selector: if(
26
+ $customSelector,
27
+ $customSelector,
28
+ if($isFocusWithin, ":focus-within", ":focus")
29
+ );
22
30
 
23
31
  &#{$selector} {
24
32
  outline: {
@@ -13,6 +13,7 @@ $prefix: "qld-" !default;
13
13
  /// @param {String | null} $pseudo [null] - Whether the mixin applies styles as a pseudo-element. Valid string values are "before" | "after"
14
14
  /// @param {false} $is-inline - Applies extra styles to assist with vertical alignent when used inline with text.
15
15
  /// @param {Boolean} $include-base [true] - Apply all base styles. Set to false when reusing this mixin to create modifier classes where base styles are already applied (For instance qld-icon-{name})
16
+ /// @content
16
17
  @mixin make-icon(
17
18
  $name: null,
18
19
  $size: "sm",
@@ -43,7 +44,9 @@ $prefix: "qld-" !default;
43
44
  &::#{$pseudo} {
44
45
  content: "";
45
46
  // recursively call this mixin with $pseudo set to null
46
- @include make-icon($name, $size, null, $is-inline, $include-base);
47
+ @include make-icon($name, $size, null, $is-inline, $include-base) {
48
+ @content;
49
+ }
47
50
  }
48
51
  } @else {
49
52
  @if $include-base {
@@ -83,5 +86,8 @@ $prefix: "qld-" !default;
83
86
  -webkit-mask-image: var(--qgds-icon-#{$name});
84
87
  }
85
88
  }
89
+
90
+ // allow arbitrary content
91
+ @content;
86
92
  }
87
93
  }
@@ -0,0 +1,95 @@
1
+
2
+ // Do not edit directly
3
+ // Generated on Thu, 13 Jun 2024 02:52:12 GMT
4
+
5
+ $core-default-color-neutral-black: #131212 !default;
6
+ $core-default-color-neutral-darkest: #222020 !default;
7
+ $core-default-color-neutral-darker: #444444 !default;
8
+ $core-default-color-neutral-dark: #78797e !default;
9
+ $core-default-color-neutral-light: #e0e0e0 !default;
10
+ $core-default-color-neutral-lighter: #ebebeb !default;
11
+ $core-default-color-neutral-lightest: #f5f5f5 !default;
12
+ $core-default-color-neutral-white: #ffffff !default;
13
+ $core-default-color-status-caution-default: #ffcc2c !default;
14
+ $core-default-color-status-caution-darker: #B38800 !default;
15
+ $core-default-color-status-caution-lighter: #fff2c9 !default;
16
+ $core-default-color-status-caution-lightest: #fffaea !default;
17
+ $core-default-color-status-info-default: #0085b3 !default;
18
+ $core-default-color-status-info-darker: #006a8f !default;
19
+ $core-default-color-status-info-lighter: #e5eef5 !default;
20
+ $core-default-color-status-info-lightest: #eff4f9 !default;
21
+ $core-default-color-status-error-default: #e22339 !default;
22
+ $core-default-color-status-error-darker: #8a1220 !default;
23
+ $core-default-color-status-error-lighter: #fdf0f0 !default;
24
+ $core-default-color-status-error-lightest: #fff6f6 !default;
25
+ $core-default-color-status-success-default: #339d37 !default;
26
+ $core-default-color-status-success-darker: #0a690d !default;
27
+ $core-default-color-status-success-lighter: #f2faf4 !default;
28
+ $core-default-color-status-success-lightest: #f7fbf8 !default;
29
+ $core-default-color-status-underline-light: #ffffffb8 !default;
30
+ $core-default-color-status-underline-dark: #03213fb8 !default;
31
+ $core-default-color-brand-primary-dark-blue: #05325f !default;
32
+ $core-default-color-brand-primary-sapphire-blue: #09549f !default;
33
+ $core-default-color-brand-primary-light-blue: #0085b3 !default;
34
+ $core-default-color-brand-primary-light-green: #6bbe27 !default;
35
+ $core-default-color-brand-secondary-darkgreen: #008635 !default;
36
+ $core-default-color-brand-secondary-golden-yellow: #ffe500 !default;
37
+ $core-default-color-brand-other-modern-maroon: #a70240 !default;
38
+ $core-default-color-brand-other-gov-maroon: #771e32 !default;
39
+ $core-default-color-code-green: #6bbe27 !default;
40
+ $core-default-color-code-light-blue: #a7e5ff !default;
41
+ $core-default-color-code-violet: #c88df7 !default;
42
+ $core-default-color-code-muted: #c0d7ec !default;
43
+ $core-default-color-contained-layout-background: #09549F !default;
44
+ $core-default-color-contained-layout-background-dark: #09549F !default;
45
+ $color-default-color-light-background-default: #ffffff !default;
46
+ $color-default-color-light-background-default-shade: #f5f5f5 !default;
47
+ $color-default-color-light-background-light: #eff4f9 !default;
48
+ $color-default-color-light-background-light-shade: #e5eef5 !default;
49
+ $color-default-color-light-background-alt: #e8e8e8 !default;
50
+ $color-default-color-light-background-alt-shade: #e0e0e0 !default;
51
+ $color-default-color-light-border-default: #ebebeb !default;
52
+ $color-default-color-light-border-light: #ccddee !default;
53
+ $color-default-color-light-border-alt: #7a7a7a !default;
54
+ $color-default-color-light-action-primary: #09549f !default;
55
+ $color-default-color-light-action-primary-hover: #003e7d !default;
56
+ $color-default-color-light-action-secondary: #008635 !default;
57
+ $color-default-color-light-action-secondary-hover: #005b23 !default;
58
+ $color-default-color-light-link-on-action: #ffffff !default;
59
+ $color-default-color-light-link-default: #09549f !default;
60
+ $color-default-color-light-link-visited: #551a8b !default;
61
+ $color-default-color-light-accent-design-accent: #6BBE27 !default;
62
+ $color-default-color-light-focus-default: #0085B3 !default;
63
+ $color-default-color-light-underline-default: #3f7ab4 !default;
64
+ $color-default-color-light-underline-default-hover: #09549F !default;
65
+ $color-default-color-light-underline-visited: #8b63b0 !default;
66
+ $color-default-color-light-underline-visited-hover: #551a8b !default;
67
+ $color-default-color-light-text-default: #414141 !default;
68
+ $color-default-color-light-text-lighter: #636363 !default;
69
+ $color-default-color-light-text-heading: #04284c !default;
70
+ $color-default-color-light-site-title: #022a50 !default;
71
+ $color-default-color-light-crest-fill: #1D1D1D !default;
72
+ $color-default-color-dark-background-default: #09549F !default;
73
+ $color-default-color-dark-background-default-shade: #04498f !default;
74
+ $color-default-color-dark-background-alt: #05325F !default;
75
+ $color-default-color-dark-background-alt-shade: #052c53 !default;
76
+ $color-default-color-dark-border-default: #1d9ac6 !default;
77
+ $color-default-color-dark-border-alt: #09acfe !default;
78
+ $color-default-color-dark-action-primary: #78ba00 !default;
79
+ $color-default-color-dark-action-primary-hover: #add33f !default;
80
+ $color-default-color-dark-action-secondary: #FFE500 !default;
81
+ $color-default-color-dark-action-secondary-hover: #ffef60 !default;
82
+ $color-default-color-dark-link-default: #ffffff !default;
83
+ $color-default-color-dark-link-visited: #e1bbee !default;
84
+ $color-default-color-dark-link-on-action: #121940 !default;
85
+ $color-default-color-dark-accent-design-accent: #6BBE27 !default;
86
+ $color-default-color-dark-focus-default: #01b0e5 !default;
87
+ $color-default-color-dark-underline-default: #b5cce2 !default;
88
+ $color-default-color-dark-underline-default-hover: #ffffff !default;
89
+ $color-default-color-dark-underline-visited: #e1c2ff !default;
90
+ $color-default-color-dark-underline-visited-hover: #EE11BB !default;
91
+ $color-default-color-dark-text-default: #ffffff !default;
92
+ $color-default-color-dark-text-lighter: #deebf9 !default;
93
+ $color-default-color-dark-text-heading: #ffffff !default;
94
+ $color-default-color-dark-site-title: #ffffff !default;
95
+ $color-default-color-dark-crest-fill: #ffffff !default;