@qhealth-design-system/core 1.17.2 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.storybook/globals.js +10 -0
  2. package/.storybook/preview.js +9 -13
  3. package/CHANGELOG.md +2 -0
  4. package/package.json +1 -1
  5. package/src/assets/img/QLD-Health-icons.svg +10 -6
  6. package/src/assets/img/QLD-icons.svg +12 -8
  7. package/src/assets/img/qgov-coa.svg +65 -0
  8. package/src/components/_global/css/forms/general/component.scss +1 -1
  9. package/src/components/_global/css/icons/component.scss +40 -38
  10. package/src/components/_global/css/tags/component.scss +28 -27
  11. package/src/components/_global/html/head.html +1 -1
  12. package/src/components/basic_search/html/component.hbs +2 -1
  13. package/src/components/card_single_action/css/component.scss +15 -0
  14. package/src/components/footer/html/component.hbs +18 -15
  15. package/src/components/header/css/component.scss +25 -85
  16. package/src/components/header/html/component.hbs +4 -176
  17. package/src/components/header/js/global.js +189 -181
  18. package/src/components/left_hand_navigation/css/component.scss +32 -29
  19. package/src/components/left_hand_navigation/html/component.hbs +10 -6
  20. package/src/components/left_hand_navigation/js/global.js +49 -26
  21. package/src/components/main_navigation/css/component.scss +115 -89
  22. package/src/components/main_navigation/html/component.hbs +9 -3
  23. package/src/components/mega_main_navigation/css/component.scss +6 -6
  24. package/src/components/mega_main_navigation/html/component.hbs +9 -3
  25. package/src/components/multi_column/css/component.scss +2 -32
  26. package/src/components/overflow_menu/css/component.scss +19 -41
  27. package/src/components/search_box/css/component.scss +42 -0
  28. package/src/components/tab/css/component.scss +56 -41
  29. package/src/components/tab/html/component.hbs +13 -13
  30. package/src/components/tab/js/global.js +43 -114
  31. package/src/components/tab/js/manifest.json +881 -873
  32. package/src/data/site.json +28 -4
  33. package/src/index.js +11 -2
  34. package/src/stories/BackToTop/BackToTop.js +8 -0
  35. package/src/stories/BackToTop/BackToTop.mdx +42 -0
  36. package/src/stories/BackToTop/BackToTop.stories.js +28 -0
  37. package/src/stories/CTALink/CTALink.js +5 -0
  38. package/src/stories/CTALink/CTALink.mdx +39 -0
  39. package/src/stories/CTALink/CTALink.stories.js +151 -0
  40. package/src/assets/data-tables-csv-test.csv +0 -191
  41. package/src/assets/img/header-logo-agov.png +0 -0
  42. package/src/assets/img/header-search.svg +0 -3
  43. package/src/assets/img/layers-2x.png +0 -0
  44. package/src/assets/img/layers.png +0 -0
  45. package/src/assets/img/marker-icon.png +0 -0
  46. package/src/assets/img/video-play.svg +0 -3
@@ -19,14 +19,12 @@
19
19
  display: flex;
20
20
  align-items: flex-start;
21
21
  flex-direction: column;
22
- padding-top: 20px;
23
22
  padding-top: 1.25rem;
24
23
  @include QLD-media(md) {
25
24
  flex-direction: row;
26
25
  align-items: center;
27
26
  }
28
27
  @include QLD-media(lg) {
29
- padding-top: 24px;
30
28
  padding-top: 1.5rem;
31
29
  }
32
30
  }
@@ -34,14 +32,10 @@
34
32
  font-weight: bold;
35
33
  display: block;
36
34
  white-space: nowrap;
37
- padding-right: 16px;
38
35
  padding-right: 1rem;
39
- padding-bottom: 8px;
40
36
  padding-bottom: 0.5rem;
41
37
  @include QLD-media(md) {
42
- padding-top: 4px;
43
38
  padding-top: 0.25rem;
44
- padding-bottom: 0px;
45
39
  padding-bottom: 0rem;
46
40
  -ms-flex-item-align: center;
47
41
  align-self: center;
@@ -214,9 +208,9 @@ a.qld__tag,
214
208
  background-color: transparent;
215
209
  @include QLD-fontgrid(sm);
216
210
  @include QLD-space(font-size, 1unit);
217
- @include QLD-space(padding, 0.5unit 1unit);
211
+ @include QLD-space(padding, 0 0 0 1unit);
218
212
  border-radius: $QLD-border-radius-lg;
219
- text-decoration: none;
213
+ text-decoration: none !important; // Ensure no decoration at all for this variant
220
214
  @include QLD-underline("light", "noUnderline", "default");
221
215
  display: flex;
222
216
  align-items: center;
@@ -227,38 +221,39 @@ a.qld__tag,
227
221
  color: var(--QLD-color-light__text);
228
222
  background-color: transparent;
229
223
  border-color: $QLD-color-neutral--lighter;
230
- text-decoration: none;
231
224
  }
232
225
 
233
226
  .qld__tag--filter-close {
234
- @include QLD-space(margin-left, 0.5unit);
227
+ @include QLD-space(margin-left, 0.1unit);
228
+
235
229
  background-color: transparent;
236
230
  border: none;
237
- height: 1.25rem;
238
- width: 1.25rem;
231
+ height: 2.5rem;
232
+ width: 2.5rem;
239
233
  display: flex;
240
234
  align-items: center;
235
+ justify-content: center;
241
236
  padding: 0;
242
237
  border-radius: 50%;
238
+ cursor: pointer;
243
239
 
244
- > svg {
245
- cursor: pointer;
246
- padding: 3px;
247
- border: 1px solid var(--QLD-color-light__action--secondary);
248
- border-radius: 100%;
249
- color: var(--QLD-color-light__action--secondary);
250
-
251
- &:hover {
240
+ &:hover,
241
+ &:focus {
242
+ > svg.qld__icon {
252
243
  background-color: var(--QLD-color-light__action--secondary-hover);
253
244
  border-color: var(--QLD-color-light__action--secondary-hover);
254
245
  color: $QLD-color-neutral--white;
255
246
  }
256
247
  }
257
248
 
258
- &:focus {
259
- outline: 3px solid var(--QLD-color-light__focus);
260
- outline-offset: 2px;
249
+ > svg.qld__icon {
250
+ padding: 3px;
251
+ border: 1px solid var(--QLD-color-light__action--secondary);
252
+ border-radius: 100%;
253
+ color: var(--QLD-color-light__action--secondary);
261
254
  }
255
+
256
+ @include QLD-focus("light", false, -2px);
262
257
  }
263
258
 
264
259
  .qld__body--light &,
@@ -299,11 +294,14 @@ a.qld__tag,
299
294
  }
300
295
 
301
296
  .qld__tag--filter-close {
302
- > svg {
297
+ > svg.qld__icon {
303
298
  border-color: var(--QLD-color-dark__action--secondary);
304
299
  color: var(--QLD-color-dark__action--secondary);
300
+ }
305
301
 
306
- &:hover {
302
+ &:hover,
303
+ &:focus {
304
+ > svg.qld__icon {
307
305
  background-color: var(--QLD-color-dark__action--secondary-hover);
308
306
  border-color: var(--QLD-color-dark__action--secondary-hover);
309
307
  color: var(--QLD-color-dark__background);
@@ -330,11 +328,14 @@ a.qld__tag,
330
328
  }
331
329
 
332
330
  .qld__tag--filter-close {
333
- > svg {
331
+ > svg.qld__icon {
334
332
  border-color: var(--QLD-color-dark__action--secondary);
335
333
  color: var(--QLD-color-dark__action--secondary);
334
+ }
336
335
 
337
- &:hover {
336
+ &:hover,
337
+ &:focus {
338
+ > svg.qld__icon {
338
339
  background-color: var(--QLD-color-dark__action--secondary-hover);
339
340
  border-color: var(--QLD-color-dark__action--secondary-hover);
340
341
  color: var(--QLD-color-dark__background--alt);
@@ -2,7 +2,7 @@
2
2
  <meta charset="utf-8" />
3
3
  <meta name="viewport" content="width=device-width, initial-scale=1" />
4
4
  <!-- Imports -->
5
- <link href="https://fonts.googleapis.com/css?family=Noto Sans:wght@300;400;600;900&display=swap" rel="stylesheet" />
5
+ <link href="https://fonts.googleapis.com/css?family=Noto Sans:wght@300;400;600;700;900&display=swap" rel="stylesheet" />
6
6
 
7
7
  <script id="globals-loader" data-current='${JSON.stringify(require("/src/data/current.json"))}' data-site='${JSON.stringify(require("/src/data/site.json"))}'>
8
8
  var current = JSON.parse(document.getElementById("globals-loader").getAttribute("data-current"));
@@ -99,8 +99,9 @@
99
99
  <div class="qld__search-form--wrapper">
100
100
  <form role="search" aria-label="sitewide" class="qld__search-form" id="search-form-global-basic" action="{{site.metadata.siteSearchUrl.value}}">
101
101
  <div class="qld__search-form__inner">
102
+ <svg class="qld__icon qld__icon--sm qld__search-form__inner-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><use href="{{@root.site.metadata.coreSiteIcons.value}}#search"></use></svg>
102
103
  <input type="search" id="search-input-global-basic-query" name="query" class="qld__text-input data-hj-allow" aria-expanded="false" autocomplete="off" disabled="true" value="{{#ifCond resultsPage.question.query '!==' '!padrenull'}}{{resultsPage.question.query}}{{/ifCond}}">
103
- <input type="text" id="name" name="name" autocomplete="off" tabindex="-1" class="qld__text-input--validation">
104
+ <input type="text" id="name" name="name" autocomplete="off" tabindex="-1" class="qld__text-input--validation">
104
105
  <div class="qld__search-form__btn">
105
106
  <button class="qld__btn qld__btn--search" type="button" aria-label="Search" disabled="true">
106
107
  <span class="qld__btn__icon">
@@ -7,8 +7,23 @@
7
7
 
8
8
  // If any element inside the card receives focus, add a focus ring around the wrapper card div
9
9
  &:focus-within {
10
+ // Can't use qld-focus mixin here
10
11
  outline: 3px solid var(--QLD-color-light__focus);
11
12
  outline-offset: 2px;
13
+
14
+ // Focus style change within dark ancestor
15
+ .qld__body--dark &,
16
+ .qld__body--dark-alt &,
17
+ .qld__card--dark &,
18
+ .qld__card--dark-alt &,
19
+ .qld__banner--dark &,
20
+ .qld__banner--dark-alt &,
21
+ .qld__footer--dark &,
22
+ .qld__footer--dark-alt &,
23
+ .qld__dark &,
24
+ .qld__dark-alt & {
25
+ outline-color: var(--QLD-color-dark__focus);
26
+ }
12
27
  }
13
28
 
14
29
  &:hover {
@@ -28,16 +28,19 @@
28
28
  {{footerCTALead.value}}
29
29
  </p>
30
30
  {{/if}}
31
- {{#if footerCTAContact.value}}
32
- <p class="qld__footer__cta-content">
33
- {{#ifCond footerCTAContactIcon.value '==' 'phone'}}
34
- <svg class="qld__icon qld__icon--lead" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#phone"></use></svg>
35
- {{/ifCond}}
36
- {{#ifCond footerCTAContactIcon.value '==' 'email'}}
37
- <svg class="qld__icon qld__icon--lead" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#Email"></use></svg>
38
- {{/ifCond}}
39
- {{{footerCTAContact.value}}}
40
- </p>
31
+ {{#if footerCTAContactPhone.value}}
32
+ <p class="qld__footer__cta-content">
33
+ <svg class="qld__icon qld__icon--lead" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#phone"></use></svg>
34
+ <strong>Phone: </strong>
35
+ {{#if footerCTAContactPhoneLink.value}}<a href="{{footerCTAContactPhoneLink.value}}" target="_blank">{{footerCTAContactPhone.value}}</a>{{else}}{{footerCTAContactPhone.value}}{{/if}}
36
+ </p>
37
+ {{/if}}
38
+ {{#if footerCTAContactEmail.value}}
39
+ <p class="qld__footer__cta-content">
40
+ <svg class="qld__icon qld__icon--lead" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#email"></use></svg>
41
+ <strong>Email: </strong>
42
+ {{#if footerCTAContactEmailLink.value}}<a href="{{footerCTAContactEmailLink.value}}" target="_blank">{{footerCTAContactEmail.value}}</a>{{else}}{{footerCTAContactEmail.value}}{{/if}}
43
+ </p>
41
44
  {{/if}}
42
45
  </div>
43
46
  <div class="col-xs-12 col-sm-4 col-lg-12">
@@ -116,19 +119,19 @@
116
119
  <a class="qld__footer__clickable__link" href="{{urldecode (lookup this 'asset_url^urlencode')}}">
117
120
  {{/ifCond}}
118
121
  {{#ifCond (lookup this 'asset_short_name^escapequotes') 'contains' 'facebook'}}
119
- <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#Facebook"></use></svg>
122
+ <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#facebook"></use></svg>
120
123
  {{/ifCond}}
121
124
  {{#ifCond (lookup this 'asset_short_name^escapequotes') 'contains' 'linkedin'}}
122
- <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#LinkedIn"></use></svg>
125
+ <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#linkedin"></use></svg>
123
126
  {{/ifCond}}
124
127
  {{#ifCond (lookup this 'asset_short_name^escapequotes') 'contains' 'youtube'}}
125
- <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#YouTube"></use></svg>
128
+ <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#youtube"></use></svg>
126
129
  {{/ifCond}}
127
130
  {{#ifCond (lookup this 'asset_short_name^escapequotes') 'contains' 'instagram'}}
128
- <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#Instagram"></use></svg>
131
+ <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#instagram"></use></svg>
129
132
  {{/ifCond}}
130
133
  {{#ifCond (lookup this 'asset_short_name^escapequotes') 'contains' 'twitter'}}
131
- <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#X"></use></svg>
134
+ <svg class="qld__icon qld__icon--md" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="{{@root.site.metadata.coreSiteIcons.value}}#x"></use></svg>
132
135
  {{/ifCond}}
133
136
  <span class="qld__footer__social__label">{{lookup this 'asset_short_name^escapequotes'}}</span>
134
137
  </a>
@@ -234,7 +234,7 @@
234
234
  }
235
235
  }
236
236
 
237
- //Dark theme
237
+ // Dark themes
238
238
  &.qld__header__pre-header--dark,
239
239
  &.qld__header__pre-header--dark-alt {
240
240
  background-color: var(--QLD-color-dark__background);
@@ -257,6 +257,7 @@
257
257
  color: var(--QLD-color-dark__link);
258
258
 
259
259
  &:hover {
260
+ color: var(--QLD-color-dark__link);
260
261
  .qld__header__cta-link-icon {
261
262
  color: var(--QLD-color-dark__action--secondary-hover);
262
263
  }
@@ -271,7 +272,6 @@
271
272
  @include QLD-focus("dark", false, -3px);
272
273
  color: var(--QLD-color-dark__link);
273
274
  border-color: var(--QLD-color-dark__border);
274
- @include QLD-focus("dark");
275
275
 
276
276
  svg {
277
277
  color: var(--QLD-color-dark__action--secondary);
@@ -287,52 +287,13 @@
287
287
  }
288
288
  }
289
289
 
290
- //Dark alt theme
290
+ // Dark alt specific theme
291
291
  &.qld__header__pre-header--dark-alt {
292
292
  background-color: var(--QLD-color-dark__background--alt);
293
- color: var(--QLD-color-dark__text);
294
-
295
- .qld__header__pre-header-url {
296
- color: var(--QLD-color-dark__link);
297
- }
298
-
299
- .qld__header__pre-header-url--mobile {
300
- color: var(--QLD-color-dark__link);
301
- }
302
-
303
- a {
304
- @include QLD-underline("dark", "noUnderline", "default", "noVisited");
305
- }
306
-
307
- .qld__header__cta-link {
308
- color: var(--QLD-color-dark__link);
309
-
310
- &:hover {
311
- .qld__header__cta-link-icon {
312
- color: var(--QLD-color-dark__action--secondary-hover);
313
- }
314
- }
315
- }
316
-
317
- .qld__header__cta-link-icon {
318
- color: var(--QLD-color-dark__action--secondary);
319
- }
320
293
 
321
294
  .qld__header__toggle-main-nav {
322
- @include QLD-focus("dark", false, -3px);
323
- color: var(--QLD-color-dark__link);
324
- border-color: var(--QLD-color-dark__border);
325
-
326
- svg {
327
- color: var(--QLD-color-dark__action--secondary);
328
- }
329
-
330
295
  &:hover {
331
296
  background-color: var(--QLD-color-dark__background--alt-shade);
332
-
333
- svg {
334
- color: var(--QLD-color-dark__action--secondary-hover);
335
- }
336
297
  }
337
298
  }
338
299
  }
@@ -400,7 +361,7 @@
400
361
  display: none;
401
362
 
402
363
  @include QLD-media(lg) {
403
- color: var(--QLD-color-light__site-title);
364
+ color: $QLD-color-neutral--black;
404
365
  display: block;
405
366
  @include QLD-space(padding-right, 1.5unit);
406
367
  @include QLD-space(margin-right, 1.5unit);
@@ -434,7 +395,7 @@
434
395
  @include QLD-fontgrid(sm, heading);
435
396
  font-family: $QLD-font-sitename;
436
397
  color: var(--QLD-color-light__site-title);
437
- font-weight: bold;
398
+ font-weight: 700;
438
399
  margin: 0;
439
400
  padding: 0;
440
401
 
@@ -460,10 +421,9 @@
460
421
  }
461
422
  }
462
423
 
463
- //Main header dark theme
464
- &.qld__header__main--dark {
465
- background-color: var(--QLD-color-dark__background);
466
-
424
+ // Main header dark themes
425
+ &.qld__header__main--dark,
426
+ &.qld__header__main--dark-alt {
467
427
  .qld__header__site-name {
468
428
  .qld__header__heading {
469
429
  color: var(--QLD-color-dark__site-title);
@@ -479,11 +439,12 @@
479
439
  color: var(--QLD-color-dark__text);
480
440
  }
481
441
  }
442
+
482
443
  a {
483
444
  &:hover {
484
445
  color: var(--QLD-color-dark__link);
485
446
  .qld__header__brand-image {
486
- color: var(--QLD-color-dark__link);
447
+ color: $QLD-color-neutral--white;
487
448
  }
488
449
  .qld__header__heading,
489
450
  .qld__header__subline {
@@ -492,54 +453,33 @@
492
453
  }
493
454
  }
494
455
 
495
- .qld__header__search {
496
- background-color: var(--QLD-color-dark__background);
497
-
498
- .qld__display-lg {
499
- color: var(--QLD-color-dark__heading);
500
- }
501
- }
502
- }
503
-
504
- //Main header dark alt theme
505
- &.qld__header__main--dark-alt {
506
- background-color: var(--QLD-color-dark__background--alt);
507
-
508
- .qld__header__site-name {
509
- .qld__header__heading {
510
- color: var(--QLD-color-dark__site-title);
511
- }
512
- .qld__header__subline {
513
- color: var(--QLD-color-dark__text--lighter);
514
- }
456
+ .qld__header__search .qld__display-lg {
457
+ color: var(--QLD-color-dark__heading);
515
458
  }
516
459
 
517
460
  .qld__header__brand-image {
518
461
  @include QLD-media(lg) {
519
462
  border-color: var(--QLD-color-dark__design-accent);
520
- color: var(--QLD-color-dark__text);
463
+ color: $QLD-color-neutral--white;
521
464
  }
522
465
  }
466
+ }
523
467
 
524
- a {
525
- &:hover {
526
- color: var(--QLD-color-dark__link);
527
- .qld__header__brand-image {
528
- color: var(--QLD-color-dark__link);
529
- }
530
- .qld__header__heading,
531
- .qld__header__subline {
532
- color: var(--QLD-color-dark__link);
533
- }
534
- }
468
+ // Main header dark specific
469
+ &.qld__header__main--dark {
470
+ background-color: var(--QLD-color-dark__background);
471
+
472
+ .qld__header__search {
473
+ background-color: var(--QLD-color-dark__background);
535
474
  }
475
+ }
476
+
477
+ // Main header dark alt specific
478
+ &.qld__header__main--dark-alt {
479
+ background-color: var(--QLD-color-dark__background--alt);
536
480
 
537
481
  .qld__header__search {
538
482
  background-color: var(--QLD-color-dark__background--alt);
539
-
540
- .qld__display-lg {
541
- color: var(--QLD-color-dark__heading);
542
- }
543
483
  }
544
484
  }
545
485
  }