@nationalarchives/frontend 0.1.18-prerelease → 0.1.20-prerelease

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 (170) hide show
  1. package/nationalarchives/all.css +12 -2
  2. package/nationalarchives/all.css.map +1 -1
  3. package/nationalarchives/all.js +1 -1
  4. package/nationalarchives/all.js.map +1 -1
  5. package/nationalarchives/all.mjs +26 -2
  6. package/nationalarchives/all.scss +20 -4
  7. package/nationalarchives/assets/fonts/OpenSans-Bold.ttf +0 -0
  8. package/nationalarchives/assets/fonts/OpenSans-Medium.ttf +0 -0
  9. package/nationalarchives/assets/fonts/RobotoMono-Regular.ttf +0 -0
  10. package/nationalarchives/components/_index.scss +18 -16
  11. package/nationalarchives/components/breadcrumbs/_index.scss +1 -109
  12. package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -0
  13. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -0
  14. package/nationalarchives/components/breadcrumbs/breadcrumbs.js +1 -1
  15. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
  16. package/nationalarchives/components/breadcrumbs/breadcrumbs.scss +111 -0
  17. package/nationalarchives/components/button/_button-group.scss +3 -5
  18. package/nationalarchives/components/button/_index.scss +1 -73
  19. package/nationalarchives/components/button/button.css +13 -0
  20. package/nationalarchives/components/button/button.css.map +1 -0
  21. package/nationalarchives/components/button/button.scss +103 -0
  22. package/nationalarchives/components/button/button.stories.js +61 -0
  23. package/nationalarchives/components/button/macro-options.json +19 -1
  24. package/nationalarchives/components/button/template.njk +8 -2
  25. package/nationalarchives/components/card/_index.scss +1 -183
  26. package/nationalarchives/components/card/card.css +13 -0
  27. package/nationalarchives/components/card/card.css.map +1 -0
  28. package/nationalarchives/components/card/card.scss +171 -0
  29. package/nationalarchives/components/card/card.stories.js +185 -95
  30. package/nationalarchives/components/card/fixtures.json +83 -92
  31. package/nationalarchives/components/card/macro-options.json +77 -48
  32. package/nationalarchives/components/card/template.njk +47 -37
  33. package/nationalarchives/components/cookie-banner/_index.scss +1 -0
  34. package/nationalarchives/components/cookie-banner/cookie-banner.css +13 -0
  35. package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -0
  36. package/nationalarchives/components/cookie-banner/cookie-banner.js +2 -0
  37. package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -0
  38. package/nationalarchives/components/cookie-banner/cookie-banner.mjs +83 -0
  39. package/nationalarchives/components/cookie-banner/cookie-banner.scss +32 -0
  40. package/nationalarchives/components/cookie-banner/cookie-banner.stories.js +164 -0
  41. package/nationalarchives/components/cookie-banner/fixtures.json +4 -0
  42. package/nationalarchives/components/cookie-banner/macro-options.json +38 -0
  43. package/nationalarchives/components/cookie-banner/macro.njk +3 -0
  44. package/nationalarchives/components/cookie-banner/template.njk +61 -0
  45. package/nationalarchives/components/filters/_index.scss +1 -54
  46. package/nationalarchives/components/filters/filters.css +1 -0
  47. package/nationalarchives/components/filters/filters.css.map +1 -0
  48. package/nationalarchives/components/filters/filters.scss +53 -0
  49. package/nationalarchives/components/footer/_index.scss +1 -270
  50. package/nationalarchives/components/footer/footer.css +13 -0
  51. package/nationalarchives/components/footer/footer.css.map +1 -0
  52. package/nationalarchives/components/footer/footer.scss +265 -0
  53. package/nationalarchives/components/footer/footer.stories.js +6 -6
  54. package/nationalarchives/components/footer/macro-options.json +7 -1
  55. package/nationalarchives/components/footer/template.njk +10 -6
  56. package/nationalarchives/components/gallery/_index.scss +1 -0
  57. package/nationalarchives/components/gallery/fixtures.json +4 -0
  58. package/nationalarchives/components/gallery/gallery.css +13 -0
  59. package/nationalarchives/components/gallery/gallery.css.map +1 -0
  60. package/nationalarchives/components/gallery/gallery.js +2 -0
  61. package/nationalarchives/components/gallery/gallery.js.map +1 -0
  62. package/nationalarchives/components/gallery/gallery.mjs +80 -0
  63. package/nationalarchives/components/gallery/gallery.scss +129 -0
  64. package/nationalarchives/components/gallery/gallery.stories.js +76 -0
  65. package/nationalarchives/components/gallery/macro-options.json +104 -0
  66. package/nationalarchives/components/gallery/macro.njk +3 -0
  67. package/nationalarchives/components/gallery/template.njk +45 -0
  68. package/nationalarchives/components/grid/_index.scss +1 -79
  69. package/nationalarchives/components/grid/grid.css +1 -0
  70. package/nationalarchives/components/grid/grid.css.map +1 -0
  71. package/nationalarchives/components/grid/grid.scss +81 -0
  72. package/nationalarchives/components/header/_index.scss +1 -586
  73. package/nationalarchives/components/header/header.css +1 -0
  74. package/nationalarchives/components/header/header.css.map +1 -0
  75. package/nationalarchives/components/header/header.js +1 -1
  76. package/nationalarchives/components/header/header.js.map +1 -1
  77. package/nationalarchives/components/header/header.scss +594 -0
  78. package/nationalarchives/components/header/header.stories.js +5 -5
  79. package/nationalarchives/components/hero/_index.scss +1 -167
  80. package/nationalarchives/components/hero/hero.css +1 -0
  81. package/nationalarchives/components/hero/hero.css.map +1 -0
  82. package/nationalarchives/components/hero/hero.scss +169 -0
  83. package/nationalarchives/components/index-grid/_index.scss +1 -82
  84. package/nationalarchives/components/index-grid/index-grid.css +1 -0
  85. package/nationalarchives/components/index-grid/index-grid.css.map +1 -0
  86. package/nationalarchives/components/index-grid/index-grid.scss +84 -0
  87. package/nationalarchives/components/message/_index.scss +1 -35
  88. package/nationalarchives/components/message/message.css +1 -0
  89. package/nationalarchives/components/message/message.css.map +1 -0
  90. package/nationalarchives/components/message/message.scss +36 -0
  91. package/nationalarchives/components/phase-banner/_index.scss +1 -60
  92. package/nationalarchives/components/phase-banner/fixtures.json +8 -8
  93. package/nationalarchives/components/phase-banner/phase-banner.css +1 -0
  94. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -0
  95. package/nationalarchives/components/phase-banner/phase-banner.scss +31 -0
  96. package/nationalarchives/components/phase-banner/template.njk +2 -2
  97. package/nationalarchives/components/picture/_index.scss +1 -62
  98. package/nationalarchives/components/picture/picture.css +13 -0
  99. package/nationalarchives/components/picture/picture.css.map +1 -0
  100. package/nationalarchives/components/picture/picture.js +1 -1
  101. package/nationalarchives/components/picture/picture.js.map +1 -1
  102. package/nationalarchives/components/picture/picture.mjs +2 -1
  103. package/nationalarchives/components/picture/picture.scss +65 -0
  104. package/nationalarchives/components/profile/_index.scss +1 -2
  105. package/nationalarchives/components/profile/profile.css +1 -0
  106. package/nationalarchives/components/profile/profile.css.map +1 -0
  107. package/nationalarchives/components/profile/profile.scss +5 -0
  108. package/nationalarchives/components/sensitive-image/_index.scss +1 -77
  109. package/nationalarchives/components/sensitive-image/sensitive-image.css +1 -0
  110. package/nationalarchives/components/sensitive-image/sensitive-image.css.map +1 -0
  111. package/nationalarchives/components/sensitive-image/sensitive-image.js +1 -1
  112. package/nationalarchives/components/sensitive-image/sensitive-image.js.map +1 -1
  113. package/nationalarchives/components/sensitive-image/sensitive-image.scss +78 -0
  114. package/nationalarchives/components/skip-link/_index.scss +1 -63
  115. package/nationalarchives/components/skip-link/skip-link.css +1 -0
  116. package/nationalarchives/components/skip-link/skip-link.css.map +1 -0
  117. package/nationalarchives/components/skip-link/skip-link.scss +61 -0
  118. package/nationalarchives/components/tabs/_index.scss +1 -144
  119. package/nationalarchives/components/tabs/tabs.css +1 -0
  120. package/nationalarchives/components/tabs/tabs.css.map +1 -0
  121. package/nationalarchives/components/tabs/tabs.js +1 -1
  122. package/nationalarchives/components/tabs/tabs.js.map +1 -1
  123. package/nationalarchives/components/tabs/tabs.mjs +2 -0
  124. package/nationalarchives/components/tabs/tabs.scss +143 -0
  125. package/nationalarchives/components/tabs/tabs.stories.js +0 -1
  126. package/nationalarchives/lib/_font-awesome.scss +5 -0
  127. package/nationalarchives/lib/_index.scss +1 -0
  128. package/nationalarchives/lib/cookies.mjs +110 -0
  129. package/nationalarchives/lib/font-awesome/brands.css +5 -0
  130. package/nationalarchives/lib/font-awesome/brands.css.map +1 -0
  131. package/nationalarchives/lib/font-awesome/fontawesome.css +5 -0
  132. package/nationalarchives/lib/font-awesome/fontawesome.css.map +1 -0
  133. package/nationalarchives/lib/font-awesome/regular.css +5 -0
  134. package/nationalarchives/lib/font-awesome/regular.css.map +1 -0
  135. package/nationalarchives/lib/font-awesome/solid.css +5 -0
  136. package/nationalarchives/lib/font-awesome/solid.css.map +1 -0
  137. package/nationalarchives/lib/font-awesome/v4-shims.css +5 -0
  138. package/nationalarchives/lib/font-awesome/v4-shims.css.map +1 -0
  139. package/nationalarchives/stories/development/about.mdx +60 -0
  140. package/nationalarchives/stories/development/contributing.mdx +8 -5
  141. package/nationalarchives/stories/development/relationships.mdx +57 -0
  142. package/nationalarchives/stories/development/using.mdx +75 -0
  143. package/nationalarchives/stories/utilities/colour-schemes/colour-schemes.stories.js +176 -50
  144. package/nationalarchives/stories/utilities/typography/heading-groups.stories.js +3 -3
  145. package/nationalarchives/stories/utilities/typography/typography.stories.js +1 -1
  146. package/nationalarchives/templates/layouts/_generic.njk +6 -1
  147. package/nationalarchives/tools/_colour.scss +55 -17
  148. package/nationalarchives/tools/_index.scss +5 -4
  149. package/nationalarchives/tools/_spacing.scss +22 -0
  150. package/nationalarchives/tools/_typography.scss +0 -4
  151. package/nationalarchives/utilities/_a11y.scss +24 -0
  152. package/nationalarchives/utilities/_global.scss +3 -29
  153. package/nationalarchives/utilities/_index.scss +5 -5
  154. package/nationalarchives/utilities/_overrides.scss +5 -15
  155. package/nationalarchives/utilities/_typography.scss +68 -57
  156. package/nationalarchives/variables/_colour.scss +17 -9
  157. package/nationalarchives/variables/_grid.scss +1 -1
  158. package/nationalarchives/variables/_spacing.scss +12 -12
  159. package/nationalarchives/variables/_typography.scss +7 -7
  160. package/package.json +5 -2
  161. package/nationalarchives/assets/images/footer/facebook.svg +0 -11
  162. package/nationalarchives/assets/images/footer/flickr.svg +0 -11
  163. package/nationalarchives/assets/images/footer/instagram.svg +0 -17
  164. package/nationalarchives/assets/images/footer/rss.svg +0 -13
  165. package/nationalarchives/assets/images/footer/twitter.svg +0 -14
  166. package/nationalarchives/assets/images/footer/youtube.svg +0 -12
  167. package/nationalarchives/stories/development/dependencies.mdx +0 -11
  168. package/nationalarchives/stories/development/relationships.md +0 -91
  169. package/nationalarchives/stories/development/technologies.mdx +0 -65
  170. package/nationalarchives/utilities/_font-awesome.scss +0 -5
@@ -4,117 +4,120 @@
4
4
  {
5
5
  "name": "basic card",
6
6
  "options": {
7
- "heading": {
8
- "title": "Card title",
9
- "level": 3
10
- },
7
+ "title": "Card title",
8
+ "headingLevel": 3,
11
9
  "body": "<p>Card body</p>"
12
10
  },
13
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
11
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
14
12
  "hidden": false
15
13
  },
16
14
  {
17
15
  "name": "with supertitle",
18
16
  "options": {
19
- "heading": {
20
- "supertitle": "Card supertitle",
21
- "title": "Card title",
22
- "level": 3
23
- },
17
+ "supertitle": "Card supertitle",
18
+ "title": "Card title",
19
+ "headingLevel": 3,
24
20
  "body": "<p>Card body</p>"
25
21
  },
26
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><hgroup class=\"tna-card__heading tna-hgroup tna-hgroup--l\"><p class=\"tna-card__supertitle tna-hgroup__supertitle\">Card supertitle</p><h3 class=\"tna-card__title tna-hgroup__title\">Card title</h3></hgroup><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
27
- "hidden": false
28
- },
29
- {
30
- "name": "with single sentence supertitle",
31
- "options": {
32
- "heading": {
33
- "supertitle": "Card supertitle",
34
- "title": "Card title",
35
- "level": 3,
36
- "singleSentence": true
37
- },
38
- "body": "<p>Card body</p>"
39
- },
40
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><hgroup class=\"tna-card__heading tna-hgroup tna-hgroup--l\"><h3 class=\"tna-card__title tna-hgroup__title\"><span class=\"tna-card__supertitle tna-hgroup__supertitle\">Card supertitle</span>Card title</h3></hgroup><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
22
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><hgroup class=\"tna-hgroup tna-hgroup--m tna-card__heading\"><h3 class=\"tna-hgroup__title\"><span class=\"tna-hgroup__supertitle\">Card supertitle</span>Card title</h3></hgroup><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
41
23
  "hidden": false
42
24
  },
43
25
  {
44
26
  "name": "heading size",
45
27
  "options": {
46
- "heading": {
47
- "title": "Card title",
48
- "level": 3,
49
- "size": "m"
50
- },
28
+ "title": "Card title",
29
+ "headingLevel": 3,
30
+ "headingSize": "xl",
51
31
  "body": "<p>Card body</p>"
52
32
  },
53
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--m\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
33
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--xl tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
54
34
  "hidden": false
55
35
  },
56
36
  {
57
37
  "name": "heading level",
58
38
  "options": {
59
- "heading": {
60
- "title": "Card title",
61
- "level": 1
62
- },
39
+ "title": "Card title",
40
+ "headingLevel": 1,
63
41
  "body": "<p>Card body</p>"
64
42
  },
65
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h1 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h1><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
43
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h1 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h1><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
66
44
  "hidden": false
67
45
  },
68
46
  {
69
47
  "name": "with link",
70
48
  "options": {
71
- "heading": {
72
- "title": "Card title",
73
- "level": 3
74
- },
49
+ "title": "Card title",
50
+ "headingLevel": 3,
75
51
  "href": "#",
76
52
  "body": "<p>Card body</p>"
77
53
  },
78
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\"><a href=\"#\" class=\"tna-card__title-link\">Card title</a></h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
54
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\"><a href=\"#\" class=\"tna-card__heading-link\">Card title</a></h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
79
55
  "hidden": false
80
56
  },
81
57
  {
82
58
  "name": "with text",
83
59
  "options": {
84
- "heading": {
85
- "title": "Card title",
86
- "level": 3
87
- },
60
+ "title": "Card title",
61
+ "headingLevel": 3,
88
62
  "text": "Card body"
89
63
  },
90
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
64
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
91
65
  "hidden": false
92
66
  },
93
67
  {
94
68
  "name": "with image",
95
69
  "options": {
96
- "heading": {
97
- "title": "Card title",
98
- "level": 3
99
- },
100
- "image": {
101
- "src": "https://loremflickr.com/640/360",
102
- "alt": "A placeholder image",
103
- "width": 640,
104
- "height": 360
105
- },
70
+ "title": "Card title",
71
+ "headingLevel": 3,
72
+ "imageSrc": "https://loremflickr.com/640/360",
73
+ "imageAlt": "A placeholder image",
74
+ "imageWidth": 640,
75
+ "imageHeight": 360,
76
+ "body": "<p>Card body</p>"
77
+ },
78
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__image-container\"><picture class=\"tna-card__image\"><img src=\"https://loremflickr.com/640/360\" alt=\"A placeholder image\" width=\"640\" height=\"360\"></picture></div><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
79
+ "hidden": false
80
+ },
81
+ {
82
+ "name": "with image and alternative sources",
83
+ "options": {
84
+ "title": "Card title",
85
+ "headingLevel": 3,
86
+ "imageSrc": "https://loremflickr.com/640/360",
87
+ "imageAlt": "A placeholder image",
88
+ "imageWidth": 640,
89
+ "imageHeight": 360,
90
+ "imageSources": [
91
+ {
92
+ "src": "https://www.gstatic.com/webp/gallery/2.webp",
93
+ "type": "image/webp"
94
+ }
95
+ ],
96
+ "body": "<p>Card body</p>"
97
+ },
98
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__image-container\"><picture class=\"tna-card__image\"><source srcset=\"https://www.gstatic.com/webp/gallery/2.webp\" type=\"image/webp\" width=\"640\" height=\"360\"><source srcset=\"https://loremflickr.com/640/360\" type=\"image/jpeg\" width=\"640\" height=\"360\"><img src=\"https://loremflickr.com/640/360\" alt=\"A placeholder image\" width=\"640\" height=\"360\"></picture></div><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
99
+ "hidden": false
100
+ },
101
+ {
102
+ "name": "with link and image",
103
+ "options": {
104
+ "title": "Card title",
105
+ "headingLevel": 3,
106
+ "imageSrc": "https://loremflickr.com/640/360",
107
+ "imageAlt": "A placeholder image",
108
+ "imageWidth": 640,
109
+ "imageHeight": 360,
110
+ "href": "#",
106
111
  "body": "<p>Card body</p>"
107
112
  },
108
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><a href=\"\" class=\"tna-card__image-container\" tabindex=\"-1\"><img src=\"https://loremflickr.com/640/360\" alt=\"A placeholder image\" width=\"640\" height=\"360\" class=\"tna-card__image\" /></a><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
113
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\"><a href=\"#\" class=\"tna-card__heading-link\">Card title</a></h3><a href=\"#\" class=\"tna-card__image-container\" tabindex=\"-1\"><picture class=\"tna-card__image\"><img src=\"https://loremflickr.com/640/360\" alt=\"A placeholder image\" width=\"640\" height=\"360\"></picture></a><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
109
114
  "hidden": false
110
115
  },
111
116
  {
112
117
  "name": "with actions",
113
118
  "options": {
114
- "heading": {
115
- "title": "Card title",
116
- "level": 3
117
- },
119
+ "title": "Card title",
120
+ "headingLevel": 3,
118
121
  "body": "<p>Card body</p>",
119
122
  "actions": [
120
123
  {
@@ -124,87 +127,75 @@
124
127
  }
125
128
  ]
126
129
  },
127
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div><div class=\"tna-card__actions\"><a href=\"#\" class=\"tna-card__action\" role=\"button\"title=\"Go and do the action\">Card action</a></div></div></div>",
130
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div><div class=\"tna-card__actions\"><a href=\"#\" class=\"tna-card__action\" role=\"button\"title=\"Go and do the action\">Card action</a></div></div></div>",
128
131
  "hidden": false
129
132
  },
130
133
  {
131
134
  "name": "with a label",
132
135
  "options": {
133
- "heading": {
134
- "title": "Card title",
135
- "level": 3
136
- },
136
+ "title": "Card title",
137
+ "headingLevel": 3,
137
138
  "label": "New",
138
139
  "body": "<p>Card body</p>"
139
140
  },
140
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
141
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
141
142
  "hidden": false
142
143
  },
143
144
  {
144
145
  "name": "with a boxed style",
145
146
  "options": {
146
- "heading": {
147
- "title": "Card title",
148
- "level": 3
149
- },
147
+ "title": "Card title",
148
+ "headingLevel": 3,
150
149
  "body": "<p>Card body</p>",
151
150
  "style": "boxed"
152
151
  },
153
- "html": "<div class=\"tna-card tna-card--contrast\" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
152
+ "html": "<div class=\"tna-card tna-card--contrast\" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
154
153
  "hidden": false
155
154
  },
156
155
  {
157
156
  "name": "with a accent style",
158
157
  "options": {
159
- "heading": {
160
- "title": "Card title",
161
- "level": 3
162
- },
158
+ "title": "Card title",
159
+ "headingLevel": 3,
163
160
  "body": "<p>Card body</p>",
164
161
  "style": "accent"
165
162
  },
166
- "html": "<div class=\"tna-card tna-card--accent\" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
163
+ "html": "<div class=\"tna-card tna-card--accent\" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
167
164
  "hidden": false
168
165
  },
169
166
  {
170
167
  "name": "with an unknown style",
171
168
  "options": {
172
- "heading": {
173
- "title": "Card title",
174
- "level": 3
175
- },
169
+ "title": "Card title",
170
+ "headingLevel": 3,
176
171
  "body": "<p>Card body</p>",
177
172
  "style": "foobar"
178
173
  },
179
- "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
174
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
180
175
  "hidden": false
181
176
  },
182
177
  {
183
178
  "name": "with classes",
184
179
  "options": {
185
- "heading": {
186
- "title": "Card title",
187
- "level": 3
188
- },
180
+ "title": "Card title",
181
+ "headingLevel": 3,
189
182
  "body": "<p>Card body</p>",
190
183
  "classes": "card__test-class"
191
184
  },
192
- "html": "<div class=\"tna-card card__test-class\" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
185
+ "html": "<div class=\"tna-card card__test-class\" data-module=\"tna-card\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
193
186
  "hidden": false
194
187
  },
195
188
  {
196
189
  "name": "with attributes",
197
190
  "options": {
198
- "heading": {
199
- "title": "Card title",
200
- "level": 3
201
- },
191
+ "title": "Card title",
192
+ "headingLevel": 3,
202
193
  "body": "<p>Card body</p>",
203
194
  "attributes": {
204
195
  "data-testattribute": "foobar"
205
196
  }
206
197
  },
207
- "html": "<div class=\"tna-card \" data-module=\"tna-card\" data-testattribute=\"foobar\"><div class=\"tna-card__inner\"><h3 class=\"tna-card__title tna-heading tna-heading--l\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
198
+ "html": "<div class=\"tna-card \" data-module=\"tna-card\" data-testattribute=\"foobar\"><div class=\"tna-card__inner\"><h3 class=\" tna-heading tna-heading--m tna-card__heading\">Card title</h3><div class=\"tna-card__body\"><p>Card body</p></div></div></div>",
208
199
  "hidden": false
209
200
  }
210
201
  ]
@@ -1,53 +1,64 @@
1
1
  [
2
2
  {
3
- "name": "heading",
4
- "type": "object",
3
+ "name": "supertitle",
4
+ "type": "string",
5
+ "required": false,
6
+ "description": "The smaller title to display above the main card title."
7
+ },
8
+ {
9
+ "name": "title",
10
+ "type": "string",
5
11
  "required": true,
6
- "description": "",
7
- "params": [
8
- {
9
- "name": "supertitle",
10
- "type": "string",
11
- "required": false,
12
- "description": ""
13
- },
14
- {
15
- "name": "title",
16
- "type": "string",
17
- "required": true,
18
- "description": ""
19
- },
20
- {
21
- "name": "level",
22
- "type": "number",
23
- "required": true,
24
- "description": ""
25
- },
26
- {
27
- "name": "size",
28
- "type": "string",
29
- "required": false,
30
- "description": ""
31
- },
32
- {
33
- "name": "singleSentence",
34
- "type": "boolean",
35
- "required": false,
36
- "description": ""
37
- }
38
- ]
12
+ "description": "The main title of the card."
13
+ },
14
+ {
15
+ "name": "headingLevel",
16
+ "type": "number",
17
+ "required": true,
18
+ "description": "The heading level which represents an element from `<h1>` through to `<h6>`."
19
+ },
20
+ {
21
+ "name": "headingSize",
22
+ "type": "string",
23
+ "required": false,
24
+ "default": "m",
25
+ "description": "The physical size of the card title."
39
26
  },
40
27
  {
41
28
  "name": "href",
42
29
  "type": "string",
43
30
  "required": false,
44
- "description": ""
31
+ "description": "A URL to use as a link in the card's heading and image (if one is declared)."
45
32
  },
46
33
  {
47
- "name": "image",
48
- "type": "object",
34
+ "name": "imageSrc",
35
+ "type": "string",
36
+ "required": false,
37
+ "description": "A JPG file to use as the card's image."
38
+ },
39
+ {
40
+ "name": "imageAlt",
41
+ "type": "string",
49
42
  "required": false,
50
- "description": "",
43
+ "description": "Alternative text for the image in the event that it can't be displayed."
44
+ },
45
+ {
46
+ "name": "imageWidth",
47
+ "type": "number",
48
+ "required": false,
49
+ "description": "The width of the image in pixels."
50
+ },
51
+ {
52
+ "name": "imageHeight",
53
+ "type": "number",
54
+ "required": false,
55
+ "description": "The height of the image in pixels."
56
+ },
57
+ {
58
+ "name": "imageSources",
59
+ "type": "array",
60
+ "required": true,
61
+ "description": "Alternative sources of the image which can include WebP files.",
51
62
  "params": [
52
63
  {
53
64
  "name": "src",
@@ -56,21 +67,27 @@
56
67
  "description": ""
57
68
  },
58
69
  {
59
- "name": "alt",
70
+ "name": "type",
60
71
  "type": "string",
61
72
  "required": true,
62
73
  "description": ""
63
74
  },
75
+ {
76
+ "name": "media",
77
+ "type": "string",
78
+ "required": false,
79
+ "description": ""
80
+ },
64
81
  {
65
82
  "name": "width",
66
83
  "type": "number",
67
- "required": true,
84
+ "required": false,
68
85
  "description": ""
69
86
  },
70
87
  {
71
88
  "name": "height",
72
89
  "type": "number",
73
- "required": true,
90
+ "required": false,
74
91
  "description": ""
75
92
  }
76
93
  ]
@@ -79,25 +96,25 @@
79
96
  "name": "label",
80
97
  "type": "string",
81
98
  "required": false,
82
- "description": ""
99
+ "description": "A label which will appear over the top left of the card's image. If there is no imagem, the label is not displayed."
83
100
  },
84
101
  {
85
102
  "name": "body",
86
103
  "type": "string",
87
104
  "required": true,
88
- "description": ""
105
+ "description": "The HTML for the main body of the card. Not displayed if `text` is set."
89
106
  },
90
107
  {
91
108
  "name": "text",
92
109
  "type": "string",
93
110
  "required": false,
94
- "description": ""
111
+ "description": "The text for the card which will be inserted into a `<p>` element. Overwrites `body` if it is set."
95
112
  },
96
113
  {
97
114
  "name": "actions",
98
115
  "type": "array",
99
116
  "required": false,
100
- "description": "",
117
+ "description": "An array of actions to add at the bottom of the card. Each action is displayed as a button.",
101
118
  "params": [
102
119
  {
103
120
  "name": "text",
@@ -116,6 +133,18 @@
116
133
  "type": "string",
117
134
  "required": false,
118
135
  "description": ""
136
+ },
137
+ {
138
+ "name": "icon",
139
+ "type": "string",
140
+ "required": false,
141
+ "description": ""
142
+ },
143
+ {
144
+ "name": "brandIcon",
145
+ "type": "string",
146
+ "required": false,
147
+ "description": ""
119
148
  }
120
149
  ]
121
150
  },
@@ -123,13 +152,13 @@
123
152
  "name": "horizontal",
124
153
  "type": "boolean",
125
154
  "required": false,
126
- "description": ""
155
+ "description": "Change the card to a horizontal layout, placing the image to the left of the content. This layout changes back to vertical on smaller devices."
127
156
  },
128
157
  {
129
158
  "name": "style",
130
159
  "type": "text",
131
160
  "required": false,
132
- "description": ""
161
+ "description": "The style of card to use which can be either `boxed` for an inverted card or `accent` for a card that matches the page's accent colour."
133
162
  },
134
163
  {
135
164
  "name": "htmlElement",
@@ -10,49 +10,52 @@
10
10
  {%- endif -%}
11
11
  <{{ htmlElement }} class="tna-card {{ containerClasses | join(' ') }}" data-module="tna-card" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
12
12
  <div class="tna-card__inner">
13
- {%- if params.heading.supertitle -%}
14
- {%- if params.heading.singleSentence -%}
15
- <hgroup class="tna-card__heading tna-hgroup tna-hgroup--{{ params.heading.size or 'l' }}">
16
- <h{{ params.heading.level }} class="tna-card__title tna-hgroup__title">
17
- <span class="tna-card__supertitle tna-hgroup__supertitle">{{ params.heading.supertitle }}</span>
13
+ {%- if params.supertitle -%}
14
+ <hgroup class="tna-hgroup tna-hgroup--{{ params.headingSize or 'm' }} tna-card__heading">
15
+ <h{{ params.headingLevel }} class="tna-hgroup__title">
16
+ <span class="tna-hgroup__supertitle">{{ params.supertitle }}</span>
18
17
  {%- if params.href -%}
19
- <a href="{{ params.href }}" class="tna-card__title-link">{{ params.heading.title }}</a>
18
+ <a href="{{ params.href }}" class="tna-card__heading-link">{{ params.title }}</a>
20
19
  {%- else -%}
21
- {{ params.heading.title }}
20
+ {{ params.title }}
22
21
  {%- endif -%}
23
- </h{{ params.heading.level }}>
24
- </hgroup>
22
+ </h{{ params.headingLevel }}>
23
+ </hgroup>
25
24
  {%- else -%}
26
- <hgroup class="tna-card__heading tna-hgroup tna-hgroup--{{ params.heading.size or 'l' }}">
27
- <p class="tna-card__supertitle tna-hgroup__supertitle">{{ params.heading.supertitle }}</p>
28
- <h{{ params.heading.level }} class="tna-card__title tna-hgroup__title">
29
- {%- if params.href -%}
30
- <a href="{{ params.href }}" class="tna-card__title-link">{{ params.heading.title }}</a>
31
- {%- else -%}
32
- {{ params.heading.title }}
33
- {%- endif -%}
34
- </h{{ params.heading.level }}>
35
- </hgroup>
36
- {%- endif -%}
37
- {%- else -%}
38
- <h{{ params.heading.level }} class="tna-card__title tna-heading tna-heading--{{ params.heading.size or 'l' }}">
39
- {%- if params.href -%}
40
- <a href="{{ params.href }}" class="tna-card__title-link">{{ params.heading.title }}</a>
41
- {%- else -%}
42
- {{ params.heading.title }}
25
+ <h{{ params.headingLevel }} class=" tna-heading tna-heading--{{ params.headingSize or 'm' }} tna-card__heading">
26
+ {%- if params.href -%}
27
+ <a href="{{ params.href }}" class="tna-card__heading-link">{{ params.title }}</a>
28
+ {%- else -%}
29
+ {{ params.title }}
30
+ {%- endif -%}
31
+ </h{{ params.headingLevel }}>
43
32
  {%- endif -%}
44
- </h{{ params.heading.level }}>
45
- {%- endif -%}
46
- {%- if params.image -%}
47
- <a href="{{ item.href }}" class="tna-card__image-container" tabindex="-1">
48
- <img src="{{ params.image.src }}" alt="{{ params.image.alt }}" width="{{ params.image.width }}" height="{{ params.image.height }}" class="tna-card__image" />
49
- {%- if params.label -%}
50
- <div class="tna-chip tna-card__image-label">
51
- {{ params.label }}
33
+ {%- if params.imageSrc -%}
34
+ {%- if params.href -%}
35
+ <a href="{{ params.href }}" class="tna-card__image-container" tabindex="-1">
36
+ {%- else -%}
37
+ <div class="tna-card__image-container">
38
+ {%- endif -%}
39
+ <picture class="tna-card__image">
40
+ {%- if params.imageSources -%}
41
+ {%- for source in params.imageSources -%}
42
+ <source srcset="{{ source.src }}" type="{{ source.type }}" width="{{ source.width if source.width else params.imageWidth }}" height="{{ source.height if source.height else params.imageHeight }}">
43
+ {%- endfor -%}
44
+ <source srcset="{{ params.imageSrc }}" type="image/jpeg" width="{{ params.imageWidth }}" height="{{ params.imageHeight }}">
45
+ {%- endif -%}
46
+ <img src="{{ params.imageSrc }}" alt="{{ params.imageAlt }}" width="{{ params.imageWidth }}" height="{{ params.imageHeight }}">
47
+ </picture>
48
+ {%- if params.label -%}
49
+ <div class="tna-chip tna-card__image-label">
50
+ {{ params.label }}
51
+ </div>
52
+ {%- endif -%}
53
+ {%- if params.href -%}
54
+ </a>
55
+ {%- else -%}
52
56
  </div>
53
57
  {%- endif -%}
54
- </a>
55
- {%- endif -%}
58
+ {%- endif -%}
56
59
  <div class="tna-card__body">
57
60
  {%- if params.text -%}
58
61
  <p>{{ params.text }}</p>
@@ -63,7 +66,14 @@
63
66
  {%- if params.actions -%}
64
67
  <div class="tna-card__actions">
65
68
  {%- for item in params.actions -%}
66
- <a href="{{ item.href }}" class="tna-card__action" role="button" {%- if item.title %}title="{{ item.title }}"{% endif %}>{{ item.text }}</a>
69
+ <a href="{{ item.href }}" class="tna-card__action" role="button" {%- if item.title %}title="{{ item.title }}"{% endif %}>
70
+ {%- if item.brandIcon -%}
71
+ <i class="fa-brands fa-{{ item.brandIcon }}"></i>
72
+ {%- elseif item.icon -%}
73
+ <i class="fa-solid fa-{{ item.icon }}"></i>
74
+ {%- endif -%}
75
+ {{ item.text }}
76
+ </a>
67
77
  {%- endfor -%}
68
78
  </div>
69
79
  {%- endif -%}
@@ -0,0 +1 @@
1
+ @use "cookie-banner";