@pnx-mixtape/mxds 0.0.8 → 0.0.10

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 (64) hide show
  1. package/dist/build/filters.css +105 -0
  2. package/dist/build/link-list.css +9 -36
  3. package/dist/build/masthead.css +24 -1
  4. package/dist/build/tag.css +5 -1
  5. package/package.json +1 -1
  6. package/src/Atom/Button/button.twig +1 -1
  7. package/src/Atom/Image/image.twig +4 -4
  8. package/src/Atom/InlineSvg/inline-svg.twig +24 -0
  9. package/src/Atom/Link/link.twig +1 -1
  10. package/src/Atom/LinkedImage/linked-image.twig +5 -0
  11. package/src/Atom/Media/media.twig +3 -3
  12. package/src/Atom/Video/video.twig +2 -2
  13. package/src/Component/Accordion/accordion-item.twig +1 -1
  14. package/src/Component/Accordion/accordion.css +10 -14
  15. package/src/Component/Accordion/accordion.twig +1 -1
  16. package/src/Component/Card/Card.stories.ts +26 -14
  17. package/src/Component/Card/__snapshots__/Card.stories.ts.snap +18 -12
  18. package/src/Component/Card/card.twig +5 -5
  19. package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +9 -45
  20. package/src/Component/ContentBlock/content-block.twig +2 -2
  21. package/src/Component/DropMenu/drop-menu.twig +1 -1
  22. package/src/Component/Filters/Elements/Filters.ts +157 -0
  23. package/src/Component/Filters/Filters.stories.ts +230 -0
  24. package/src/Component/Filters/__snapshots__/Filters.stories.ts.snap +435 -0
  25. package/src/Component/Filters/filter-item.twig +50 -0
  26. package/src/Component/Filters/filters.css +102 -0
  27. package/src/Component/Filters/filters.twig +49 -0
  28. package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +1 -3
  29. package/src/Component/GlobalAlert/global-alert.twig +3 -3
  30. package/src/Component/HeroBanner/HeroBanner.stories.ts +25 -11
  31. package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +18 -12
  32. package/src/Component/HeroBanner/hero-banner.twig +3 -3
  33. package/src/Component/LinkList/LinkList.stories.ts +20 -6
  34. package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +18 -12
  35. package/src/Component/LinkList/link-list.css +7 -35
  36. package/src/Component/LinkList/link-list.twig +1 -5
  37. package/src/Component/ListItem/list-item.twig +4 -4
  38. package/src/Component/Navigation/menu.twig +4 -4
  39. package/src/Component/Navigation/navigation.twig +2 -2
  40. package/src/Component/Pagination/pagination-item.twig +1 -1
  41. package/src/Component/Pagination/pagination.twig +2 -2
  42. package/src/Component/SideNavigation/side-navigation.twig +4 -4
  43. package/src/Component/Tabs/tabs.twig +1 -1
  44. package/src/Component/Tag/tag.css +4 -0
  45. package/src/Form/Checkbox/input-checkbox.twig +1 -1
  46. package/src/Form/Form/form.twig +2 -2
  47. package/src/Form/FormItem/form-item.twig +1 -1
  48. package/src/Form/Select/input-select.twig +1 -1
  49. package/src/Form/TextInput/input-text.twig +1 -1
  50. package/src/Form/Textarea/input-textarea.twig +1 -1
  51. package/src/Layout/Footer/Footer.stories.ts +0 -1
  52. package/src/Layout/Footer/__snapshots__/Footer.stories.ts.snap +20 -40
  53. package/src/Layout/Footer/footer.twig +3 -3
  54. package/src/Layout/Header/Header.stories.ts +0 -1
  55. package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +5 -5
  56. package/src/Layout/Header/header-stacked.twig +13 -11
  57. package/src/Layout/Header/header.twig +12 -10
  58. package/src/Layout/Header/twig/logo.twig +1 -3
  59. package/src/Layout/Masthead/Masthead.stories.ts +10 -0
  60. package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +51 -3
  61. package/src/Layout/Masthead/masthead.css +23 -0
  62. package/src/Layout/Masthead/masthead.twig +9 -5
  63. package/src/Layout/Section/section.twig +1 -1
  64. package/src/Layout/Sidebar/sidebar.twig +5 -5
@@ -1,17 +1,22 @@
1
1
  import { Meta, StoryObj } from "@storybook/html"
2
2
  import { Page } from "../../../.storybook/decorators"
3
3
  import Component from "./hero-banner.twig"
4
- import Heading from "../../Atom/Heading/heading.twig"
5
- import Link from "../../Atom/Link/link.twig"
6
- import Image from "../../Atom/Image/image.twig"
7
- import LinkList from "../LinkList/link-list.twig"
8
4
  import "./hero-banner.css"
9
- import "../LinkList/link-list.css"
10
5
  import {
11
6
  HeroBannerModifier,
12
7
  HeadingTypes,
13
8
  HeroBanner as HeroBannerType,
14
9
  } from "@pnx-mixtape/ids-shape"
10
+ import { Icons } from "../../enums"
11
+
12
+ // Deps.
13
+ import Heading from "../../Atom/Heading/heading.twig"
14
+ import Link from "../../Atom/Link/link.twig"
15
+ import Image from "../../Atom/Image/image.twig"
16
+ import LinkList from "../LinkList/link-list.twig"
17
+ import Icon from "../../Atom/Icon/icon.twig"
18
+ // css
19
+ import "../LinkList/link-list.css"
15
20
 
16
21
  const meta: Meta<HeroBannerType> = {
17
22
  tags: ["autodocs", "ids-mvp"],
@@ -62,18 +67,27 @@ export const WithLinkList: Story = {
62
67
  link: null,
63
68
  linkList: LinkList({
64
69
  items: [
65
- {
70
+ Link({
66
71
  title: "Link one",
67
72
  href: "#",
68
- },
69
- {
73
+ iconEnd: Icon({
74
+ icon: Icons.CHEVRON_RIGHT,
75
+ }),
76
+ }),
77
+ Link({
70
78
  title: "Link two",
71
79
  href: "#",
72
- },
73
- {
80
+ iconEnd: Icon({
81
+ icon: Icons.CHEVRON_RIGHT,
82
+ }),
83
+ }),
84
+ Link({
74
85
  title: "Link three",
75
86
  href: "#",
76
- },
87
+ iconEnd: Icon({
88
+ icon: Icons.CHEVRON_RIGHT,
89
+ }),
90
+ }),
77
91
  ],
78
92
  }),
79
93
  },
@@ -46,24 +46,30 @@ exports[`Component/HeroBanner WithLinkList smoke-test 1`] = `
46
46
  <div class="mx-hero-banner__aside">
47
47
  <ul class="mx-link-list">
48
48
  <li>
49
- <a href="#"
50
- class="mx-icon mx-icon--chevron-right"
51
- >
52
- Link one
49
+ <a href="#">
50
+ <span>
51
+ Link one
52
+ </span>
53
+ <span class="mx-icon mx-icon--chevron-right ">
54
+ </span>
53
55
  </a>
54
56
  </li>
55
57
  <li>
56
- <a href="#"
57
- class="mx-icon mx-icon--chevron-right"
58
- >
59
- Link two
58
+ <a href="#">
59
+ <span>
60
+ Link two
61
+ </span>
62
+ <span class="mx-icon mx-icon--chevron-right ">
63
+ </span>
60
64
  </a>
61
65
  </li>
62
66
  <li>
63
- <a href="#"
64
- class="mx-icon mx-icon--chevron-right"
65
- >
66
- Link three
67
+ <a href="#">
68
+ <span>
69
+ Link three
70
+ </span>
71
+ <span class="mx-icon mx-icon--chevron-right ">
72
+ </span>
67
73
  </a>
68
74
  </li>
69
75
  </ul>
@@ -23,17 +23,17 @@
23
23
  <div class="mx-hero-banner__inner">
24
24
  <div class="mx-hero-banner__content mx-vertical-flow mx-section--xl">
25
25
  {{ title }}
26
- {% if subtitle %}
26
+ {% if subtitle is not empty %}
27
27
  <p class="mx-text--lede">{{ subtitle }}</p>
28
28
  {% endif %}
29
29
  {{ content }}
30
30
  {{ link }}
31
31
  </div>
32
- {% if linkList %}
32
+ {% if linkList is not empty %}
33
33
  <div class="mx-hero-banner__aside">
34
34
  {{ linkList }}
35
35
  </div>
36
- {% elseif image %}
36
+ {% elseif image is not empty %}
37
37
  <div class="mx-hero-banner__aside mx-hero-banner__aside-image">
38
38
  {{ image }}
39
39
  </div>
@@ -2,23 +2,37 @@ import { Meta, StoryObj } from "@storybook/html"
2
2
  import Component from "./link-list.twig"
3
3
  import "./link-list.css"
4
4
 
5
+ // Deps.
6
+ import Link from "../../Atom/Link/link.twig"
7
+ import Icon from "../../Atom/Icon/icon.twig"
8
+ import { Icons } from "../../enums"
9
+
5
10
  const meta: Meta<typeof Component> = {
6
11
  tags: ["autodocs", "ids-mvp"],
7
12
  component: Component,
8
13
  args: {
9
14
  items: [
10
- {
15
+ Link({
11
16
  title: "Music",
12
17
  href: "#",
13
- },
14
- {
18
+ iconEnd: Icon({
19
+ icon: Icons.CHEVRON_RIGHT,
20
+ }),
21
+ }),
22
+ Link({
15
23
  title: "Performances",
16
24
  href: "#",
17
- },
18
- {
25
+ iconEnd: Icon({
26
+ icon: Icons.CHEVRON_RIGHT,
27
+ }),
28
+ }),
29
+ Link({
19
30
  title: "Get involved",
20
31
  href: "#",
21
- },
32
+ iconEnd: Icon({
33
+ icon: Icons.CHEVRON_RIGHT,
34
+ }),
35
+ }),
22
36
  ],
23
37
  },
24
38
  }
@@ -3,24 +3,30 @@
3
3
  exports[`Component/LinkList LinkList smoke-test 1`] = `
4
4
  <ul class="mx-link-list">
5
5
  <li>
6
- <a href="#"
7
- class="mx-icon mx-icon--chevron-right"
8
- >
9
- Music
6
+ <a href="#">
7
+ <span>
8
+ Music
9
+ </span>
10
+ <span class="mx-icon mx-icon--chevron-right ">
11
+ </span>
10
12
  </a>
11
13
  </li>
12
14
  <li>
13
- <a href="#"
14
- class="mx-icon mx-icon--chevron-right"
15
- >
16
- Performances
15
+ <a href="#">
16
+ <span>
17
+ Performances
18
+ </span>
19
+ <span class="mx-icon mx-icon--chevron-right ">
20
+ </span>
17
21
  </a>
18
22
  </li>
19
23
  <li>
20
- <a href="#"
21
- class="mx-icon mx-icon--chevron-right"
22
- >
23
- Get involved
24
+ <a href="#">
25
+ <span>
26
+ Get involved
27
+ </span>
28
+ <span class="mx-icon mx-icon--chevron-right ">
29
+ </span>
24
30
  </a>
25
31
  </li>
26
32
  </ul>
@@ -7,16 +7,6 @@
7
7
  list-style-type: none;
8
8
  padding-inline-start: 0;
9
9
 
10
- & a {
11
- display: block;
12
- text-decoration-line: none;
13
- color: inherit;
14
-
15
- &:hover {
16
- text-decoration-line: underline;
17
- }
18
- }
19
-
20
10
  & li {
21
11
  min-block-size: var(--min-height, var(--spacing-xl));
22
12
  border-block-end: var(--line-width, 1px) solid
@@ -27,41 +17,23 @@
27
17
  }
28
18
  }
29
19
 
30
- & .mx-icon {
20
+ & a {
31
21
  position: relative;
32
22
  display: flex;
33
23
  align-items: center;
34
- padding-block: var(--spacing-xxxs);
24
+ padding-block: var(--vertical-padding, var(--spacing-xxxs));
35
25
  inline-size: 100%;
26
+ justify-content: var(--justify, space-between);
36
27
  gap: var(--spacing-s);
28
+ text-decoration-line: none;
29
+ color: inherit;
37
30
 
38
- &::before {
39
- flex: 0 0 auto;
40
- mask-position: left center;
41
- }
42
- }
43
-
44
- &:where(:not(.mx-link-list--reverse)) .mx-icon {
45
- justify-content: space-between;
46
-
47
- &::before {
48
- mask-position: right center;
49
- order: 2;
31
+ &:hover {
32
+ text-decoration-line: underline;
50
33
  }
51
34
  }
52
35
  }
53
36
 
54
- [dir="rtl"] .mx-link-list,
55
- .translated-rtl .mx-link-list {
56
- & .mx-icon::before {
57
- mask-position: left center;
58
- }
59
-
60
- &.mx-link-list--reverse .mx-icon::before {
61
- mask-position: right center;
62
- }
63
- }
64
-
65
37
  * + .mx-link-list {
66
38
  margin-block-start: var(--spacing-m);
67
39
  }
@@ -3,10 +3,6 @@
3
3
 
4
4
  <ul{{ attributes }}>
5
5
  {% for item in items %}
6
- {% if item.href %}
7
- <li><a href="{{ item.href }}" class="mx-icon mx-icon--chevron-right">{{ item.title }}</a></li>
8
- {% else %}
9
- <li class="mx-icon mx-icon--chevron-right">{{ item.title }}</li>
10
- {% endif %}
6
+ <li>{{ item }}</li>
11
7
  {% endfor %}
12
8
  </ul>
@@ -7,22 +7,22 @@
7
7
 
8
8
  <div class="mx-container">
9
9
  <article{{ attributes }}>
10
- {% if image %}
10
+ {% if image is not empty %}
11
11
  <figure class="mx-list-item__media">
12
12
  {{ image }}
13
13
  </figure>
14
14
  {% endif %}
15
15
  <div class="mx-list-item__content mx-vertical-flow">
16
- {% if label %}
16
+ {% if label is not empty %}
17
17
  <strong class="mx-text--s">{{ label }}</strong>
18
18
  {% endif %}
19
- {% if info and infoBefore %}
19
+ {% if info is not empty and infoBefore %}
20
20
  <div class="mx-text--s">{{ info }}</div>
21
21
  {% endif %}
22
22
  <div class="mx-heading--m">
23
23
  {{ link }}
24
24
  </div>
25
- {% if info and not infoBefore %}
25
+ {% if info is not empty and not infoBefore %}
26
26
  <div class="mx-text--s">{{ info }}</div>
27
27
  {% endif %}
28
28
  {{ content }}
@@ -10,19 +10,19 @@
10
10
  {% set componentAttributes = (componentAttributes ?? create_attribute()) %}
11
11
  {% set setInert = setInert|default(true) %}
12
12
 
13
- {% macro menutree(items, level, setInert) %}
13
+ {% macro menutree(items, level, setInert, baseClass) %}
14
14
  {% set levelClass = baseClass~'__level-'~(level + 1) %}
15
15
  <ul class="{{ levelClass }}"{% if level > 0 and setInert %} inert{% endif %}>
16
16
  {% for item in items %}
17
- <li{% if item.items %} class="mx-nav__has-subnav"{% endif %}>
18
- {% if item.link.href %}
17
+ <li{% if item.items is not empty %} class="mx-nav__has-subnav"{% endif %}>
18
+ {% if item.link.href is not empty %}
19
19
  <a href="{{ item.link.href }}" {% if item.link.current %} aria-current="page" {% endif %}>
20
20
  {{ item.link.title }}
21
21
  </a>
22
22
  {% else %}
23
23
  {{ item.link.title }}
24
24
  {% endif %}
25
- {% if item.items %}
25
+ {% if item.items is not empty %}
26
26
  <button class="mx-nav__toggle mx-icon mx-icon--chevron-down mx-icon--only">Sub-navigation</button>
27
27
  {{ nav.menutree(item.items, level + 1, setInert, baseClass) }}
28
28
  {% endif %}
@@ -1,5 +1,5 @@
1
- {% extends "./menu.twig" %}
2
- {% set componentAttributes = (componentAttributes|default(create_attribute())) %}
1
+ {% extends "@mixtape/Component/Navigation/menu.twig" %}
2
+ {% set componentAttributes = (componentAttributes ?? create_attribute()) %}
3
3
  {% if type == "collapsible" %}
4
4
  {# Vertical click to expand menu. Is the default mobile experience for dropdown and mega menus. #}
5
5
  {% set needsJs = true %}
@@ -1,4 +1,4 @@
1
- {% if link %}
1
+ {% if link is not empty %}
2
2
  <li class="mx-pagination__item">
3
3
  {{ link }}
4
4
  </li>
@@ -2,7 +2,7 @@
2
2
  {% set attributes = (attributes ?? create_attribute()).addClass(classes) %}
3
3
  <nav{{ attributes}} aria-label="Pagination">
4
4
  <ul class="mx-pagination__items">
5
- {% if previous %}
5
+ {% if previous is not empty %}
6
6
  <li class="mx-pagination__previous">
7
7
  {{ previous }}
8
8
  </li>
@@ -10,7 +10,7 @@
10
10
  {% for page in pages %}
11
11
  {{ page }}
12
12
  {% endfor %}
13
- {% if next %}
13
+ {% if next is not empty %}
14
14
  <li class="mx-pagination__next">
15
15
  {{ next }}
16
16
  </li>
@@ -6,19 +6,19 @@
6
6
  ] %}
7
7
  {% set attributes = (attributes ?? create_attribute()).addClass(classes) %}
8
8
 
9
- {% macro menutree(items, level, setInert) %}
9
+ {% macro menutree(items, level, setInert, baseClass) %}
10
10
  {% set levelClass = baseClass~'__level-'~(level + 1) %}
11
11
  <ul class="{{ levelClass }}"{% if level > 0 and setInert %} inert{% endif %}>
12
12
  {% for item in items %}
13
- <li{% if item.items %} class="mx-nav__has-subnav"{% endif %}>
14
- {% if item.link.href %}
13
+ <li{% if item.items is not empty %} class="mx-nav__has-subnav"{% endif %}>
14
+ {% if item.link.href is not empty %}
15
15
  <a href="{{ item.link.href }}" {% if item.link.current %} aria-current="page" {% endif %}>
16
16
  {{ item.link.title }}
17
17
  </a>
18
18
  {% else %}
19
19
  {{ item.link.title }}
20
20
  {% endif %}
21
- {% if item.items %}
21
+ {% if item.items is not empty %}
22
22
  <button class="mx-nav__toggle mx-icon mx-icon--chevron-down mx-icon--only">Sub-navigation</button>
23
23
  {{ nav.menutree(item.items, level + 1, setInert, baseClass) }}
24
24
  {% endif %}
@@ -6,7 +6,7 @@
6
6
 
7
7
  {% set attributes = (attributes ?? create_attribute()).addClass(classes) %}
8
8
  {{ title }}
9
- <mx-tabs{{ attributes }}{% if id %} id="{{ id }}"{% endif %}>
9
+ <mx-tabs{{ attributes }}{% if id is not empty %} id="{{ id }}"{% endif %}>
10
10
  {% for item in items %}
11
11
  {{ item }}
12
12
  {% endfor %}
@@ -44,6 +44,10 @@
44
44
  &:is(a:hover, :has(input:checked)) {
45
45
  --tag-foreground: var(--link-colour, var(--colour-primary));
46
46
  }
47
+
48
+ &:empty {
49
+ display: none;
50
+ }
47
51
  }
48
52
 
49
53
  .mx-tags {
@@ -19,7 +19,7 @@
19
19
  name="{{ name }}"
20
20
  value="{{ value }}"
21
21
  {% if checked %} checked="checked"{% endif %}
22
- {% if helpers %} aria-describedby="{{ helpers }}"{% endif %}
22
+ {% if helpers is not empty %} aria-describedby="{{ helpers }}"{% endif %}
23
23
  {% if status == "invalid" %} aria-invalid="true"{% endif %}
24
24
  {% if required %} required{% endif %}
25
25
  >
@@ -4,10 +4,10 @@
4
4
  {% for item in items %}
5
5
  {{ item }}
6
6
  {% endfor %}
7
- {% if actions %}
7
+ {% if actions is not empty %}
8
8
  <div class="mx-form-actions">
9
9
  {% for action in actions %}
10
- {{ actions }}
10
+ {{ action }}
11
11
  {% endfor %}
12
12
  </div>
13
13
  {% endif %}
@@ -10,7 +10,7 @@
10
10
  <{{ as }}{{ attributes }}>
11
11
  {{ label }}
12
12
  {{ descriptionStart }}
13
- {% if fields[0] %}
13
+ {% if fields[0] is not empty %}
14
14
  {% for field in fields %}
15
15
  {{ field }}
16
16
  {% endfor %}
@@ -15,7 +15,7 @@
15
15
  id="{{ id }}"
16
16
  name="{{ name }}"
17
17
  {% if label %} aria-label="{{ label }}"{% endif %}
18
- {% if helpers %} aria-describedby="{{ helpers }}"{% endif %}
18
+ {% if helpers is not empty %} aria-describedby="{{ helpers }}"{% endif %}
19
19
  {% if status == "invalid" %} aria-invalid="true"{% endif %}
20
20
  {% if required %} required{% endif %}
21
21
  >
@@ -22,7 +22,7 @@
22
22
  value="{{ value }}"
23
23
  {% if label %} aria-label="{{ label }}"{% endif %}
24
24
  {% if placeholder %} placeholder="{{ placeholder }}"{% endif %}
25
- {% if helpers %} aria-describedby="{{ helpers }}"{% endif %}
25
+ {% if helpers is not empty %} aria-describedby="{{ helpers }}"{% endif %}
26
26
  {% if status == "invalid" %} aria-invalid="true"{% endif %}
27
27
  {% if required %} required{% endif %}
28
28
  />
@@ -15,7 +15,7 @@
15
15
  id="{{ id }}"
16
16
  name="{{ name }}"
17
17
  {% if label %} aria-label="{{ label }}"{% endif %}
18
- {% if helpers %} aria-describedby="{{ helpers }}"{% endif %}
18
+ {% if helpers is not empty %} aria-describedby="{{ helpers }}"{% endif %}
19
19
  {% if status == "invalid" %} aria-invalid="true"{% endif %}
20
20
  {% if required %} required{% endif %}
21
21
  ></textarea>
@@ -20,7 +20,6 @@ const meta: Meta<FooterType> = {
20
20
  component: Component,
21
21
  args: {
22
22
  logo: Logo({
23
- href: "#",
24
23
  src: "./mixtape-logo.png",
25
24
  alt: "Mixtape",
26
25
  width: "120",
@@ -4,15 +4,11 @@ exports[`Layout/Footer Everything smoke-test 1`] = `
4
4
  <div class="mx-page">
5
5
  <footer class="mx-footer mx-section mx-section--top-l mx-section--bottom-m mx-background--reverse">
6
6
  <div class="mx-footer__inner">
7
- <a class="mx-logo"
8
- href="#"
7
+ <img alt="Mixtape"
8
+ src="./mixtape-logo.png"
9
+ width="120"
10
+ height
9
11
  >
10
- <img alt="Mixtape"
11
- src="./mixtape-logo.png"
12
- width="120"
13
- height
14
- >
15
- </a>
16
12
  <nav class="mx-social-links"
17
13
  aria-label="Social media links"
18
14
  >
@@ -136,15 +132,11 @@ exports[`Layout/Footer Footer smoke-test 1`] = `
136
132
  <div class="mx-page">
137
133
  <footer class="mx-footer mx-section mx-section--top-l mx-section--bottom-m mx-background--reverse">
138
134
  <div class="mx-footer__inner">
139
- <a class="mx-logo"
140
- href="#"
135
+ <img alt="Mixtape"
136
+ src="./mixtape-logo.png"
137
+ width="120"
138
+ height
141
139
  >
142
- <img alt="Mixtape"
143
- src="./mixtape-logo.png"
144
- width="120"
145
- height
146
- >
147
- </a>
148
140
  <nav class="mx-nav mx-nav--footer"
149
141
  aria-label="Footer navigation"
150
142
  id="footer-story"
@@ -198,15 +190,11 @@ exports[`Layout/Footer Light smoke-test 1`] = `
198
190
  <div class="mx-page">
199
191
  <footer class="mx-footer mx-section mx-section--top-l mx-section--bottom-m mx-background--alt">
200
192
  <div class="mx-footer__inner">
201
- <a class="mx-logo"
202
- href="#"
193
+ <img alt="Mixtape"
194
+ src="./mixtape-logo.png"
195
+ width="120"
196
+ height
203
197
  >
204
- <img alt="Mixtape"
205
- src="./mixtape-logo.png"
206
- width="120"
207
- height
208
- >
209
- </a>
210
198
  <nav class="mx-nav mx-nav--footer"
211
199
  aria-label="Footer navigation"
212
200
  id="footer-story"
@@ -260,15 +248,11 @@ exports[`Layout/Footer NoMenu smoke-test 1`] = `
260
248
  <div class="mx-page">
261
249
  <footer class="mx-footer mx-section mx-section--top-l mx-section--bottom-m mx-background--reverse">
262
250
  <div class="mx-footer__inner">
263
- <a class="mx-logo"
264
- href="#"
251
+ <img alt="Mixtape"
252
+ src="./mixtape-logo.png"
253
+ width="120"
254
+ height
265
255
  >
266
- <img alt="Mixtape"
267
- src="./mixtape-logo.png"
268
- width="120"
269
- height
270
- >
271
- </a>
272
256
  <span class="mx-footer__copyright mx-text--s">
273
257
  © 2025 Company Name
274
258
  </span>
@@ -298,15 +282,11 @@ exports[`Layout/Footer WithAcknowledgment smoke-test 1`] = `
298
282
  <div class="mx-footer__aoc mx-text--s">
299
283
  We acknowledge the traditional owners and custodians of country throughout Australia and acknowledges their continuing connection to land, waters and community. We pay our respects to the people, the cultures and the elders past, present and emerging.
300
284
  </div>
301
- <a class="mx-logo"
302
- href="#"
285
+ <img alt="Mixtape"
286
+ src="./mixtape-logo.png"
287
+ width="120"
288
+ height
303
289
  >
304
- <img alt="Mixtape"
305
- src="./mixtape-logo.png"
306
- width="120"
307
- height
308
- >
309
- </a>
310
290
  <nav class="mx-nav mx-nav--footer"
311
291
  aria-label="Footer navigation"
312
292
  id="footer-story"
@@ -9,7 +9,7 @@
9
9
  {% set attributes = (attributes ?? create_attribute()).addClass(classes) %}
10
10
  <footer{{ attributes }}>
11
11
  <div class="mx-footer__inner">
12
- {% if aoc %}
12
+ {% if aoc is not empty %}
13
13
  <div class="mx-footer__aoc mx-text--s">{{ aoc }}</div>
14
14
  {% endif %}
15
15
 
@@ -17,10 +17,10 @@
17
17
  {{ socials }}
18
18
  {{ navigation }}
19
19
 
20
- {% if copyright %}
20
+ {% if copyright is not empty %}
21
21
  <span class="mx-footer__copyright mx-text--s">{{ copyright }}</span>
22
22
  {% endif %}
23
- {% if links %}
23
+ {% if links is not empty %}
24
24
  <nav class="mx-footer__links mx-nav mx-nav--inline mx-text--s" aria-label="Footer subsidiary links">
25
25
  {% for link in links %}
26
26
  {{ link }}
@@ -24,7 +24,6 @@ const meta: Meta<HeaderType> = {
24
24
  component: Component,
25
25
  args: {
26
26
  logo: Logo({
27
- href: "#",
28
27
  src: "./mixtape-logo.png",
29
28
  alt: "Mixtape",
30
29
  width: "120",