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

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 (37) 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 +159 -0
  4. package/.storybook/main.js +8 -0
  5. package/.storybook/preview.js +19 -0
  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/css/qld.bootstrap.css +1 -1
  10. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  11. package/dist/assets/css/qld.bootstrap.legacy.css +2 -0
  12. package/dist/assets/css/qld.bootstrap.legacy.css.map +7 -0
  13. package/dist/assets/js/handlebars.init.min.js +1 -1
  14. package/dist/assets/node/handlebars.init.min.js +1 -1
  15. package/dist/components/bs5/head/head.hbs +1 -1
  16. package/dist/package.json +6 -2
  17. package/esbuild.js +40 -10
  18. package/package.json +6 -2
  19. package/src/components/bs5/accordion/accordion.scss +3 -3
  20. package/src/components/bs5/button/button.scss +25 -45
  21. package/src/components/bs5/callout/callout.stories.js +15 -21
  22. package/src/components/bs5/card/card--icon-list-footer.stories.js +171 -0
  23. package/src/components/bs5/card/card.scss +20 -5
  24. package/src/components/bs5/footer/footer.scss +3 -7
  25. package/src/components/bs5/header/header.scss +8 -0
  26. package/src/components/bs5/pageLayout/pageLayout.stories.js +2 -2
  27. package/src/components/bs5/pagination/pagination.scss +290 -274
  28. package/src/components/bs5/pagination/pagination.stories.js +18 -33
  29. package/src/components/bs5/searchInput/searchInput.test.js +21 -5
  30. package/src/components/bs5/textbox/textInput.scss +55 -39
  31. package/src/components/bs5/video/video.scss +41 -27
  32. package/src/css/main.legacy.scss +19 -0
  33. package/src/css/main.scss +17 -0
  34. package/src/css/qld-tokens-legacy.scss +94 -0
  35. package/src/css/qld-tokens.scss +110 -0
  36. package/src/css/qld-variables.scss +43 -29
  37. package/src/css/readme.md +6 -1
@@ -1,16 +1,16 @@
1
1
  // Blockquote.stories.js
2
- import { Pagination } from './Pagination.js';
3
- import defaultdata from './pagination.data.json';
2
+ import { Pagination } from "./Pagination.js";
3
+ import defaultdata from "./pagination.data.json";
4
4
 
5
5
  export default {
6
- tags: ['autodocs'],
7
- title: '3. Components/Pagination',
6
+ tags: ["autodocs"],
7
+ title: "3. Components/Pagination",
8
8
  render: (args) => new Pagination(args).html,
9
-
9
+
10
10
  parameters: {
11
11
  docs: {
12
12
  controls: {
13
- exclude: ['previous', 'next', 'pages'],
13
+ exclude: ["previous", "next", "pages"],
14
14
  hideNoControlsWarning: true,
15
15
  },
16
16
  },
@@ -25,24 +25,20 @@ export const Default = {
25
25
  args: defaultdata,
26
26
  };
27
27
 
28
-
29
28
  /**
30
29
  * Pagination when used inside a <code>.light</code> container
31
30
  */
32
31
 
33
32
  export const Light = {
34
-
35
33
  args: defaultdata,
36
34
 
37
35
  parameters: {
38
36
  backgrounds: {
39
- default: 'Light',
40
- values: [
41
- { name: 'Light', value: 'var(--qld-light-background)' },
42
- ],
37
+ default: "Light",
38
+ values: [{ name: "Light", value: "var(--qld-light-background)" }],
43
39
  },
44
40
  },
45
-
41
+
46
42
  decorators: [
47
43
  (Story) => {
48
44
  return `
@@ -54,25 +50,22 @@ export const Light = {
54
50
  ],
55
51
  };
56
52
 
57
-
58
-
59
53
  /**
60
54
  * Pagination when used inside a <code>.light-alternative</code> container
61
55
  */
62
56
 
63
57
  export const LightAlternative = {
64
-
65
58
  args: defaultdata,
66
59
 
67
60
  parameters: {
68
61
  backgrounds: {
69
- default: 'Light Alternative',
62
+ default: "Light Alternative",
70
63
  values: [
71
- { name: 'Light Alternative', value: 'var(--qld-light-alt-background)' },
64
+ { name: "Light Alternative", value: "var(--qld-light-alt-background)" },
72
65
  ],
73
66
  },
74
67
  },
75
-
68
+
76
69
  decorators: [
77
70
  (Story) => {
78
71
  return `
@@ -84,25 +77,20 @@ export const LightAlternative = {
84
77
  ],
85
78
  };
86
79
 
87
-
88
-
89
80
  /**
90
81
  * Pagination when used inside a <code>.dark</code> container
91
82
  */
92
83
 
93
84
  export const Dark = {
94
-
95
85
  args: defaultdata,
96
86
 
97
87
  parameters: {
98
88
  backgrounds: {
99
- default: 'Dark',
100
- values: [
101
- { name: 'Dark', value: 'var(--qld-primary)' },
102
- ],
89
+ default: "Dark",
90
+ values: [{ name: "Dark", value: "var(--qld-dark-background)" }],
103
91
  },
104
92
  },
105
-
93
+
106
94
  decorators: [
107
95
  (Story) => {
108
96
  return `
@@ -114,24 +102,22 @@ export const Dark = {
114
102
  ],
115
103
  };
116
104
 
117
-
118
105
  /**
119
106
  * Pagination when used inside a <code>.dark-alt</code> container
120
107
  */
121
108
 
122
109
  export const DarkAlternative = {
123
-
124
110
  args: defaultdata,
125
111
 
126
112
  parameters: {
127
113
  backgrounds: {
128
- default: 'Dark Alternative',
114
+ default: "Dark Alternative",
129
115
  values: [
130
- { name: 'Dark Alternative', value: 'var(--qld-primary-dark)' },
116
+ { name: "Dark Alternative", value: "var(--qld-dark-alt-background)" },
131
117
  ],
132
118
  },
133
119
  },
134
-
120
+
135
121
  decorators: [
136
122
  (Story) => {
137
123
  return `
@@ -142,4 +128,3 @@ export const DarkAlternative = {
142
128
  },
143
129
  ],
144
130
  };
145
-
@@ -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();
@@ -35,7 +35,7 @@
35
35
 
36
36
  &:disabled {
37
37
  cursor: not-allowed;
38
- opacity: .5;
38
+ opacity: 0.5;
39
39
  }
40
40
  }
41
41
 
@@ -53,7 +53,7 @@
53
53
 
54
54
  &.field-required {
55
55
  &:before {
56
- content: ' *';
56
+ content: " *";
57
57
  }
58
58
  }
59
59
  }
@@ -64,10 +64,10 @@
64
64
  }
65
65
  }
66
66
 
67
- *+.qld-hint-text,
68
- *+.qld-input-error,
69
- *+.qld-input-success,
70
- *+.date-container {
67
+ * + .qld-hint-text,
68
+ * + .qld-input-error,
69
+ * + .qld-input-success,
70
+ * + .date-container {
71
71
  margin-top: 8px;
72
72
  }
73
73
 
@@ -79,10 +79,10 @@
79
79
  margin-bottom: 0.5rem;
80
80
  }
81
81
 
82
- *+p.qld-input-error,
83
- *+span.qld-input-error,
84
- *+p.qld-input-success,
85
- *+span.qld-input-success {
82
+ * + p.qld-input-error,
83
+ * + span.qld-input-error,
84
+ * + p.qld-input-success,
85
+ * + span.qld-input-success {
86
86
  font-size: 1rem;
87
87
  line-height: 1.5;
88
88
  display: flex;
@@ -119,25 +119,25 @@ span.qld-input-error {
119
119
  }
120
120
  }
121
121
 
122
- .qld-hint-text+select,
123
- .qld-hint-text+input,
124
- .qld-hint-text+textarea,
125
- .sq-form-question-note+select,
126
- .sq-form-question-note+input,
127
- .sq-form-question-note+textarea {
122
+ .qld-hint-text + select,
123
+ .qld-hint-text + input,
124
+ .qld-hint-text + textarea,
125
+ .sq-form-question-note + select,
126
+ .sq-form-question-note + input,
127
+ .sq-form-question-note + textarea {
128
128
  margin-top: 0.5rem;
129
129
  }
130
130
 
131
- .qld-input-success+input[type=text],
132
- .qld-input-error+input[type=text],
133
- .qld-input-success+input[type=email],
134
- .qld-input-error+input[type=email],
135
- .qld-input-success+input[type=date],
136
- .qld-input-error+input[type=date],
137
- .qld-input-success+.qld-text-input,
138
- .qld-input-error+.qld-text-input,
139
- .qld-input-success+textarea,
140
- .qld-input-error+textarea {
131
+ .qld-input-success + input[type="text"],
132
+ .qld-input-error + input[type="text"],
133
+ .qld-input-success + input[type="email"],
134
+ .qld-input-error + input[type="email"],
135
+ .qld-input-success + input[type="date"],
136
+ .qld-input-error + input[type="date"],
137
+ .qld-input-success + .qld-text-input,
138
+ .qld-input-error + .qld-text-input,
139
+ .qld-input-success + textarea,
140
+ .qld-input-error + textarea {
141
141
  margin-top: 8px;
142
142
  margin-top: 0.5rem;
143
143
  }
@@ -172,7 +172,9 @@ select.qld-select.qld-input-success:not(:focus) {
172
172
 
173
173
  &.disabled,
174
174
  &:disabled {
175
- background-color: var(--#{$prefix}color-default-color-light-background-default-shade);
175
+ background-color: var(
176
+ --#{$prefix}color-default-color-light-background-default-shade
177
+ );
176
178
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23636363' d='M4.251 181.1C7.392 177.7 11.69 175.1 16 175.1c3.891 0 7.781 1.406 10.86 4.25l197.1 181.1l197.1-181.1c6.5-6 16.64-5.625 22.61 .9062c6 6.5 5.594 16.59-.8906 22.59l-208 192c-6.156 5.688-15.56 5.688-21.72 0l-208-192C-1.343 197.7-1.749 187.6 4.251 181.1z'/%3E%3C/svg%3E");
177
179
  }
178
180
 
@@ -204,7 +206,6 @@ select.qld-select.qld-input-success:not(:focus) {
204
206
  }
205
207
 
206
208
  @include media-breakpoint-up(md) {
207
-
208
209
  input.qld-field-width-1-quarter,
209
210
  select.qld-field-width-1-quarter {
210
211
  max-width: $qld-fluid-width-1-quarter;
@@ -222,41 +223,56 @@ select.qld-select.qld-input-success:not(:focus) {
222
223
  }
223
224
 
224
225
  .dark {
225
- .form-control.qld-text-input:not(:hover):not(:focus):not(.qld-input-error):not(.qld-input-success)::-webkit-input-placeholder {
226
+ .form-control.qld-text-input:not(:hover):not(:focus):not(
227
+ .qld-input-error
228
+ ):not(.qld-input-success)::-webkit-input-placeholder {
226
229
  color: $qld-hint-text-color-muted;
227
230
  }
228
231
 
229
- .form-control.qld-text-input:not(:hover):not(:focus):not(.qld-input-error):not(.qld-input-success)::-moz-placeholder {
232
+ .form-control.qld-text-input:not(:hover):not(:focus):not(
233
+ .qld-input-error
234
+ ):not(.qld-input-success)::-moz-placeholder {
230
235
  color: $qld-hint-text-color-muted;
231
236
  }
232
237
 
233
- .form-control.qld-text-input:not(:hover):not(:focus):not(.qld-input-error):not(.qld-input-success)::-ms-placeholder {
238
+ .form-control.qld-text-input:not(:hover):not(:focus):not(
239
+ .qld-input-error
240
+ ):not(.qld-input-success)::-ms-placeholder {
234
241
  color: $qld-hint-text-color-muted;
235
242
  }
236
243
 
237
- .form-control.qld-text-input:not(:hover):not(:focus):not(.qld-input-error):not(.qld-input-success)::placeholder {
244
+ .form-control.qld-text-input:not(:hover):not(:focus):not(
245
+ .qld-input-error
246
+ ):not(.qld-input-success)::placeholder {
238
247
  color: $qld-hint-text-color-muted;
239
248
  }
240
249
 
241
- .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(.qld-input-success)::-webkit-input-placeholder {
250
+ .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(
251
+ .qld-input-success
252
+ )::-webkit-input-placeholder {
242
253
  color: $qld-white;
243
254
  }
244
255
 
245
- .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(.qld-input-success)::-moz-placeholder {
256
+ .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(
257
+ .qld-input-success
258
+ )::-moz-placeholder {
246
259
  color: $qld-white;
247
260
  }
248
261
 
249
- .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(.qld-input-success)::-ms-placeholder {
262
+ .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(
263
+ .qld-input-success
264
+ )::-ms-placeholder {
250
265
  color: $qld-white;
251
266
  }
252
267
 
253
- .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(.qld-input-success)::placeholder {
268
+ .form-control.qld-text-input:hover:not(:focus):not(.qld-input-error):not(
269
+ .qld-input-success
270
+ )::placeholder {
254
271
  color: $qld-white;
255
272
  }
256
273
  }
257
274
 
258
275
  .dark {
259
-
260
276
  .qld-text-input {
261
277
  border-color: $qld-dark-alt-border;
262
278
  background-color: var(--qld-dark-background);
@@ -265,7 +281,7 @@ select.qld-select.qld-input-success:not(:focus) {
265
281
  &:hover {
266
282
  color: $qld-white;
267
283
  background-color: $qld-color-dark-background--shade;
268
- border-color: $qld-color-dark-button-hover;
284
+ border-color: $color-default-color-dark-action-primary-hover;
269
285
  }
270
286
 
271
287
  &:focus {
@@ -293,4 +309,4 @@ select.qld-select.qld-input-success:not(:focus) {
293
309
  .form-style-filled {
294
310
  background-color: $qld-color-dark-background--shade;
295
311
  }
296
- }
312
+ }
@@ -1,6 +1,5 @@
1
1
  // QGDS QOL Video Component
2
2
 
3
-
4
3
  // Video variables.
5
4
 
6
5
  $video-icon-color: $qld-dark-text;
@@ -19,10 +18,10 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
19
18
  .video {
20
19
  --#{$prefix}video-border-radius: 0.25rem;
21
20
  --#{$prefix}video-nav-bg: var(--#{$prefix}light-action-primary);
22
- --#{$prefix}video-nav-bg-rgb: 9, 84, 159;
21
+ --#{$prefix}video-nav-bg-rgb: 0, 94, 184;
23
22
  --#{$prefix}video-nav-bg-hover: var(--#{$prefix}light-action-primary-hover);
24
- --#{$prefix}video-nav-bg-hover-rgb: 0, 62, 125;
25
- --#{$prefix}video-nav-bg-opacity: .9;
23
+ --#{$prefix}video-nav-bg-hover-rgb: 0, 62, 150;
24
+ --#{$prefix}video-nav-bg-opacity: 0.9;
26
25
  --#{$prefix}video-nav-color: var(--#{$prefix}dark-text);
27
26
  --#{$prefix}video-play-icon: #{escape-svg($video-play-icon)};
28
27
  --#{$prefix}video-play-icon-size: 2rem;
@@ -33,13 +32,12 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
33
32
  .dark &,
34
33
  .dark-alt & {
35
34
  --#{$prefix}video-nav-bg: var(--#{$prefix}dark-action-primary);
36
- --#{$prefix}video-nav-bg-rgb: 120, 186, 0;
35
+ --#{$prefix}video-nav-bg-rgb: 132, 211, 255;
37
36
  --#{$prefix}video-nav-bg-hover: var(--#{$prefix}dark-action-primary-hover);
38
- --#{$prefix}video-nav-bg-hover-rgb: 173, 211, 63;
37
+ --#{$prefix}video-nav-bg-hover-rgb: 166, 247, 255;
39
38
  --#{$prefix}video-nav-color: var(--#{$prefix}dark-action-text);
40
39
  --#{$prefix}video-play-icon: #{escape-svg($video-play-icon-dark)};
41
40
  --#{$prefix}video-clock-icon: #{escape-svg($video-clock-icon-dark)};
42
-
43
41
  }
44
42
  }
45
43
 
@@ -47,7 +45,9 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
47
45
  .video {
48
46
  padding: 0px;
49
47
  border-radius: var(--#{$prefix}video-border-radius);
50
- box-shadow: 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px rgba(0, 0, 0, 0.3);
48
+ box-shadow:
49
+ 0px 2px 6px 2px rgba(0, 0, 0, 0.15),
50
+ 0px 1px 2px rgba(0, 0, 0, 0.3);
51
51
  display: grid;
52
52
  grid-template-rows: 1fr;
53
53
  grid-template-areas: "video" "description" "transcript";
@@ -63,7 +63,6 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
63
63
  outline: 3px solid var(--#{$prefix}focus);
64
64
  outline-offset: 2px;
65
65
  }
66
-
67
66
  }
68
67
 
69
68
  &-thumbnail,
@@ -77,8 +76,12 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
77
76
  width: 100%;
78
77
  overflow: clip;
79
78
  border: 0;
80
- -webkit-transition: opacity .25s ease-out, z-index .3s 0s ease-out;
81
- transition: opacity .25s ease-out, z-index .3s 0s ease-out;
79
+ -webkit-transition:
80
+ opacity 0.25s ease-out,
81
+ z-index 0.3s 0s ease-out;
82
+ transition:
83
+ opacity 0.25s ease-out,
84
+ z-index 0.3s 0s ease-out;
82
85
  }
83
86
 
84
87
  &-thumbnail {
@@ -94,17 +97,21 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
94
97
  left: 0;
95
98
  width: 100%;
96
99
  height: 100%;
97
- -webkit-transition: opacity .25s ease-in-out;
98
- transition: opacity .25s ease-in-out;
100
+ -webkit-transition: opacity 0.25s ease-in-out;
101
+ transition: opacity 0.25s ease-in-out;
99
102
  }
100
103
 
101
- &:hover, &:focus {
104
+ &:hover,
105
+ &:focus {
102
106
  &:before {
103
- opacity: .15;
107
+ opacity: 0.15;
104
108
  }
105
109
 
106
110
  .video-nav {
107
- background-color: rgba(var(--#{$prefix}video-nav-bg-hover-rgb), var(--#{$prefix}video-nav-bg-opacity));
111
+ background-color: rgba(
112
+ var(--#{$prefix}video-nav-bg-hover-rgb),
113
+ var(--#{$prefix}video-nav-bg-opacity)
114
+ );
108
115
 
109
116
  .video-watch {
110
117
  background-color: var(--#{$prefix}video-nav-bg-hover);
@@ -116,7 +123,7 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
116
123
 
117
124
  .video-thumbnail-image {
118
125
  &:before {
119
- opacity: .15;
126
+ opacity: 0.15;
120
127
  }
121
128
  }
122
129
  }
@@ -140,8 +147,8 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
140
147
  left: 0;
141
148
  width: 100%;
142
149
  height: 100%;
143
- -webkit-transition: opacity .25s ease-in-out;
144
- transition: opacity .25s ease-in-out;
150
+ -webkit-transition: opacity 0.25s ease-in-out;
151
+ transition: opacity 0.25s ease-in-out;
145
152
  }
146
153
  }
147
154
  }
@@ -179,7 +186,10 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
179
186
  display: flex;
180
187
  left: 0;
181
188
  bottom: 0;
182
- background-color: rgba(var(--#{$prefix}video-nav-bg-rgb), var(--#{$prefix}video-nav-bg-opacity));
189
+ background-color: rgba(
190
+ var(--#{$prefix}video-nav-bg-rgb),
191
+ var(--#{$prefix}video-nav-bg-opacity)
192
+ );
183
193
  border-top-right-radius: 0.75rem;
184
194
  overflow: clip;
185
195
  font-weight: 400;
@@ -188,8 +198,12 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
188
198
 
189
199
  &-nav,
190
200
  &-watch {
191
- -webkit-transition: background-color .25s ease-in-out, text-decoration-color .25s ease-in-out;
192
- transition: background-color .25s ease-in-out, text-decoration-color .25s ease-in-out;
201
+ -webkit-transition:
202
+ background-color 0.25s ease-in-out,
203
+ text-decoration-color 0.25s ease-in-out;
204
+ transition:
205
+ background-color 0.25s ease-in-out,
206
+ text-decoration-color 0.25s ease-in-out;
193
207
  }
194
208
 
195
209
  &-duration,
@@ -206,7 +220,7 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
206
220
  display: inline-block;
207
221
  vertical-align: middle;
208
222
  margin-left: -2rem;
209
- margin-right: .5rem;
223
+ margin-right: 0.5rem;
210
224
  }
211
225
  }
212
226
 
@@ -229,12 +243,12 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
229
243
  }
230
244
  }
231
245
 
232
-
233
-
234
246
  &-description {
235
247
  padding: 0.75rem 1rem;
236
248
  grid-area: description;
237
- p, ul, ol {
249
+ p,
250
+ ul,
251
+ ol {
238
252
  &:last-child {
239
253
  margin-bottom: 0;
240
254
  }
@@ -246,7 +260,7 @@ $video-clock-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/20
246
260
  grid-area: transcript;
247
261
  &-item {
248
262
  &,
249
- &:last-of-type>.accordion-header .accordion-button.collapsed {
263
+ &:last-of-type > .accordion-header .accordion-button.collapsed {
250
264
  border-bottom-right-radius: var(--#{$prefix}video-border-radius);
251
265
  border-bottom-left-radius: var(--#{$prefix}video-border-radius);
252
266
  }
@@ -0,0 +1,19 @@
1
+ // Legacy Theme Entry Point
2
+ //
3
+ // This file compiles the stylesheet using the legacy (pre-October 2025) theme.
4
+ //
5
+ // It works by loading variables from `qld-tokens-legacy.scss` and creating a
6
+ // `$qld-tokens` SASS map. This map is then consumed by the main application
7
+ // (`main.scss`) to override the default theme tokens.
8
+
9
+ @use "sass:meta";
10
+
11
+ //Legacy Masterbrand "tokens" (Pre October 2025)
12
+ @use "./qld-tokens-legacy";
13
+ @import "./qld-tokens-legacy";
14
+
15
+ //Map to $qld-tokens sass map
16
+ $qld-tokens: meta.module-variables("qld-tokens-legacy");
17
+
18
+ // Continue with full main.scss entry file
19
+ @import "./main.scss";
package/src/css/main.scss CHANGED
@@ -1,5 +1,22 @@
1
1
  // Guidelines for this setup: https://getbootstrap.com/docs/5.3/customize/sass/
2
2
 
3
+ @use "sass:meta";
4
+
5
+ //
6
+ // Default Theme Token Setup
7
+ //
8
+ // This block establishes the default theme by creating a SASS map named `$qld-tokens`.
9
+ //
10
+ // 1. It loads variables from the default `qld-tokens.scss` file.
11
+ // 2. It converts these variables into the `$qld-tokens` map.
12
+ // 3. The `!default` flag is the core of the theming system: it allows an upstream
13
+ // entry point (e.g., `main.legacy.scss`) to define its own `$qld-tokens` map
14
+ // first, which will be used instead of these defaults.
15
+ //
16
+ @use "./qld-tokens";
17
+ @import "./qld-tokens";
18
+ $qld-tokens: meta.module-variables("qld-tokens") !default;
19
+
3
20
  // External fonts
4
21
  @import url("https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;700&family=Noto+Sans:wght@400;600;900&display=swap");
5
22
  $font-family-sans-serif:
@@ -0,0 +1,94 @@
1
+ // Static copy of Masterbrand color tokens V1.0
2
+ // Original generated on Thu, 13 Jun 2024 02:52:12 GMT
3
+
4
+ $core-default-color-neutral-black: #131212 !default;
5
+ $core-default-color-neutral-darkest: #222020 !default;
6
+ $core-default-color-neutral-darker: #444444 !default;
7
+ $core-default-color-neutral-dark: #78797e !default;
8
+ $core-default-color-neutral-light: #e0e0e0 !default;
9
+ $core-default-color-neutral-lighter: #ebebeb !default;
10
+ $core-default-color-neutral-lightest: #f5f5f5 !default;
11
+ $core-default-color-neutral-white: #ffffff !default;
12
+ $core-default-color-status-caution-default: #ffcc2c !default;
13
+ $core-default-color-status-caution-darker: #b38800 !default;
14
+ $core-default-color-status-caution-lighter: #fff2c9 !default;
15
+ $core-default-color-status-caution-lightest: #fffaea !default;
16
+ $core-default-color-status-info-default: #0085b3 !default;
17
+ $core-default-color-status-info-darker: #006a8f !default;
18
+ $core-default-color-status-info-lighter: #e5eef5 !default;
19
+ $core-default-color-status-info-lightest: #eff4f9 !default;
20
+ $core-default-color-status-error-default: #e22339 !default;
21
+ $core-default-color-status-error-darker: #8a1220 !default;
22
+ $core-default-color-status-error-lighter: #fdf0f0 !default;
23
+ $core-default-color-status-error-lightest: #fff6f6 !default;
24
+ $core-default-color-status-success-default: #339d37 !default;
25
+ $core-default-color-status-success-darker: #0a690d !default;
26
+ $core-default-color-status-success-lighter: #f2faf4 !default;
27
+ $core-default-color-status-success-lightest: #f7fbf8 !default;
28
+ $core-default-color-status-underline-light: #ffffffb8 !default;
29
+ $core-default-color-status-underline-dark: #03213fb8 !default;
30
+ $core-default-color-brand-primary-dark-blue: #05325f !default;
31
+ $core-default-color-brand-primary-sapphire-blue: #09549f !default;
32
+ $core-default-color-brand-primary-light-blue: #0085b3 !default;
33
+ $core-default-color-brand-primary-light-green: #6bbe27 !default;
34
+ $core-default-color-brand-secondary-darkgreen: #008635 !default;
35
+ $core-default-color-brand-secondary-golden-yellow: #ffe500 !default;
36
+ $core-default-color-brand-other-modern-maroon: #a70240 !default;
37
+ $core-default-color-brand-other-gov-maroon: #771e32 !default;
38
+ $core-default-color-code-green: #6bbe27 !default;
39
+ $core-default-color-code-light-blue: #a7e5ff !default;
40
+ $core-default-color-code-violet: #c88df7 !default;
41
+ $core-default-color-code-muted: #c0d7ec !default;
42
+ $core-default-color-contained-layout-background: #09549f !default;
43
+ $core-default-color-contained-layout-background-dark: #09549f !default;
44
+ $color-default-color-light-background-default: #ffffff !default;
45
+ $color-default-color-light-background-default-shade: #f5f5f5 !default;
46
+ $color-default-color-light-background-light: #eff4f9 !default;
47
+ $color-default-color-light-background-light-shade: #e5eef5 !default;
48
+ $color-default-color-light-background-alt: #e8e8e8 !default;
49
+ $color-default-color-light-background-alt-shade: #e0e0e0 !default;
50
+ $color-default-color-light-border-default: #ebebeb !default;
51
+ $color-default-color-light-border-light: #ccddee !default;
52
+ $color-default-color-light-border-alt: #7a7a7a !default;
53
+ $color-default-color-light-action-primary: #09549f !default;
54
+ $color-default-color-light-action-primary-hover: #003e7d !default;
55
+ $color-default-color-light-action-secondary: #008635 !default;
56
+ $color-default-color-light-action-secondary-hover: #005b23 !default;
57
+ $color-default-color-light-link-on-action: #ffffff !default;
58
+ $color-default-color-light-link-default: #09549f !default;
59
+ $color-default-color-light-link-visited: #551a8b !default;
60
+ $color-default-color-light-accent-design-accent: #6bbe27 !default;
61
+ $color-default-color-light-focus-default: #0085b3 !default;
62
+ $color-default-color-light-underline-default: #3f7ab4 !default;
63
+ $color-default-color-light-underline-default-hover: #09549f !default;
64
+ $color-default-color-light-underline-visited: #8b63b0 !default;
65
+ $color-default-color-light-underline-visited-hover: #551a8b !default;
66
+ $color-default-color-light-text-default: #414141 !default;
67
+ $color-default-color-light-text-lighter: #636363 !default;
68
+ $color-default-color-light-text-heading: #04284c !default;
69
+ $color-default-color-light-site-title: #022a50 !default;
70
+ $color-default-color-light-crest-fill: #1d1d1d !default;
71
+ $color-default-color-dark-background-default: #09549f !default;
72
+ $color-default-color-dark-background-default-shade: #04498f !default;
73
+ $color-default-color-dark-background-alt: #05325f !default;
74
+ $color-default-color-dark-background-alt-shade: #052c53 !default;
75
+ $color-default-color-dark-border-default: #1d9ac6 !default;
76
+ $color-default-color-dark-border-alt: #09acfe !default;
77
+ $color-default-color-dark-action-primary: #78ba00 !default;
78
+ $color-default-color-dark-action-primary-hover: #add33f !default;
79
+ $color-default-color-dark-action-secondary: #ffe500 !default;
80
+ $color-default-color-dark-action-secondary-hover: #ffef60 !default;
81
+ $color-default-color-dark-link-default: #ffffff !default;
82
+ $color-default-color-dark-link-visited: #e1bbee !default;
83
+ $color-default-color-dark-link-on-action: #121940 !default;
84
+ $color-default-color-dark-accent-design-accent: #6bbe27 !default;
85
+ $color-default-color-dark-focus-default: #01b0e5 !default;
86
+ $color-default-color-dark-underline-default: #b5cce2 !default;
87
+ $color-default-color-dark-underline-default-hover: #ffffff !default;
88
+ $color-default-color-dark-underline-visited: #e1c2ff !default;
89
+ $color-default-color-dark-underline-visited-hover: #ee11bb !default;
90
+ $color-default-color-dark-text-default: #ffffff !default;
91
+ $color-default-color-dark-text-lighter: #deebf9 !default;
92
+ $color-default-color-dark-text-heading: #ffffff !default;
93
+ $color-default-color-dark-site-title: #ffffff !default;
94
+ $color-default-color-dark-crest-fill: #ffffff !default;