@nationalarchives/frontend 0.1.9-prerelease → 0.1.11-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 (130) hide show
  1. package/README.md +3 -3
  2. package/govuk-prototype-kit.config.json +0 -3
  3. package/nationalarchives/_features.scss +4 -0
  4. package/nationalarchives/all.css +1 -1
  5. package/nationalarchives/all.css.map +1 -1
  6. package/nationalarchives/all.js +1 -1
  7. package/nationalarchives/all.js.map +1 -1
  8. package/nationalarchives/all.mjs +54 -3
  9. package/nationalarchives/all.scss +8 -4
  10. package/nationalarchives/assets/images/footer/facebook.svg +11 -0
  11. package/nationalarchives/assets/images/footer/flickr.svg +11 -0
  12. package/nationalarchives/assets/images/footer/instagram.svg +17 -0
  13. package/nationalarchives/assets/images/footer/rss.svg +13 -0
  14. package/nationalarchives/assets/images/footer/twitter.svg +14 -0
  15. package/nationalarchives/assets/images/footer/youtube.svg +12 -0
  16. package/nationalarchives/assets/images/tna-square-logo.svg +5 -24
  17. package/nationalarchives/components/_index.scss +13 -0
  18. package/nationalarchives/components/breadcrumbs/_index.scss +28 -6
  19. package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +1 -2
  20. package/nationalarchives/components/breadcrumbs/fixtures.json +1 -1
  21. package/nationalarchives/components/breadcrumbs/macro.njk +1 -1
  22. package/nationalarchives/components/breadcrumbs/template.njk +14 -13
  23. package/nationalarchives/components/button/_index.scss +23 -11
  24. package/nationalarchives/components/button/button.stories.js +1 -2
  25. package/nationalarchives/components/button/fixtures.json +5 -5
  26. package/nationalarchives/components/button/macro.njk +1 -1
  27. package/nationalarchives/components/card/_index.scss +51 -7
  28. package/nationalarchives/components/card/card.js +2 -0
  29. package/nationalarchives/components/card/card.js.map +1 -0
  30. package/nationalarchives/components/card/card.mjs +45 -0
  31. package/nationalarchives/components/card/card.stories.js +18 -15
  32. package/nationalarchives/components/card/fixtures.json +14 -12
  33. package/nationalarchives/components/card/macro-options.json +18 -0
  34. package/nationalarchives/components/card/macro.njk +1 -1
  35. package/nationalarchives/components/card/template.njk +9 -4
  36. package/nationalarchives/components/filters/filters.stories.js +1 -2
  37. package/nationalarchives/components/filters/macro.njk +1 -1
  38. package/nationalarchives/components/filters/template.njk +2 -2
  39. package/nationalarchives/components/footer/_index.scss +68 -13
  40. package/nationalarchives/components/footer/fixtures.json +1 -1
  41. package/nationalarchives/components/footer/footer.stories.js +20 -23
  42. package/nationalarchives/components/footer/macro-options.json +12 -6
  43. package/nationalarchives/components/footer/macro.njk +1 -1
  44. package/nationalarchives/components/footer/template.njk +26 -16
  45. package/nationalarchives/components/grid/_index.scss +10 -12
  46. package/nationalarchives/components/grid/fixtures.json +12 -12
  47. package/nationalarchives/components/grid/grid.stories.js +56 -3
  48. package/nationalarchives/components/grid/macro-options.json +30 -0
  49. package/nationalarchives/components/grid/macro.njk +1 -1
  50. package/nationalarchives/components/grid/template.njk +17 -1
  51. package/nationalarchives/components/header/_index.scss +269 -60
  52. package/nationalarchives/components/header/header.js +1 -1
  53. package/nationalarchives/components/header/header.js.map +1 -1
  54. package/nationalarchives/components/header/header.mjs +7 -12
  55. package/nationalarchives/components/header/header.stories.js +156 -6
  56. package/nationalarchives/components/header/macro-options.json +83 -5
  57. package/nationalarchives/components/header/macro.njk +1 -1
  58. package/nationalarchives/components/header/template.njk +45 -36
  59. package/nationalarchives/components/hero/_index.scss +36 -6
  60. package/nationalarchives/components/hero/fixtures.json +16 -1
  61. package/nationalarchives/components/hero/hero.stories.js +32 -16
  62. package/nationalarchives/components/hero/macro-options.json +14 -2
  63. package/nationalarchives/components/hero/macro.njk +1 -1
  64. package/nationalarchives/components/hero/template.njk +7 -5
  65. package/nationalarchives/components/phase-banner/_index.scss +60 -0
  66. package/nationalarchives/components/phase-banner/fixtures.json +81 -0
  67. package/nationalarchives/components/phase-banner/macro-options.json +26 -0
  68. package/nationalarchives/components/phase-banner/macro.njk +3 -0
  69. package/nationalarchives/components/phase-banner/phase-banner.stories.js +64 -0
  70. package/nationalarchives/components/phase-banner/template.njk +16 -0
  71. package/nationalarchives/components/picture/_index.scss +77 -0
  72. package/nationalarchives/components/picture/fixtures.json +4 -0
  73. package/nationalarchives/components/picture/macro-options.json +88 -0
  74. package/nationalarchives/components/picture/macro.njk +3 -0
  75. package/nationalarchives/components/picture/picture.js +2 -0
  76. package/nationalarchives/components/picture/picture.js.map +1 -0
  77. package/nationalarchives/components/picture/picture.mjs +57 -0
  78. package/nationalarchives/components/picture/picture.stories.js +63 -0
  79. package/nationalarchives/components/picture/template.njk +42 -0
  80. package/nationalarchives/components/profile/_index.scss +2 -0
  81. package/nationalarchives/components/profile/fixtures.json +4 -0
  82. package/nationalarchives/components/profile/macro-options.json +14 -0
  83. package/nationalarchives/components/profile/macro.njk +3 -0
  84. package/nationalarchives/components/profile/profile.stories.js +32 -0
  85. package/nationalarchives/components/profile/template.njk +15 -0
  86. package/nationalarchives/components/sensitive-image/fixtures.json +3 -3
  87. package/nationalarchives/components/sensitive-image/macro.njk +1 -1
  88. package/nationalarchives/components/sensitive-image/sensitive-image.stories.js +1 -2
  89. package/nationalarchives/components/tabs/_index.scss +148 -0
  90. package/nationalarchives/components/tabs/fixtures.json +4 -0
  91. package/nationalarchives/components/tabs/macro-options.json +52 -0
  92. package/nationalarchives/components/tabs/macro.njk +3 -0
  93. package/nationalarchives/components/tabs/tabs.js +2 -0
  94. package/nationalarchives/components/tabs/tabs.js.map +1 -0
  95. package/nationalarchives/components/tabs/tabs.mjs +214 -0
  96. package/nationalarchives/components/tabs/tabs.stories.js +302 -0
  97. package/nationalarchives/components/tabs/template.njk +20 -0
  98. package/nationalarchives/patterns/_index.scss +1 -0
  99. package/nationalarchives/patterns/featured-collection/_index.scss +13 -0
  100. package/nationalarchives/patterns/featured-collection/featured-collection.stories.js +35 -0
  101. package/nationalarchives/patterns/featured-collection/macro-options.json +20 -0
  102. package/nationalarchives/patterns/featured-collection/macro.njk +3 -0
  103. package/nationalarchives/patterns/featured-collection/template.njk +96 -0
  104. package/nationalarchives/stories/development/contributing.mdx +39 -0
  105. package/nationalarchives/stories/development/dependencies.mdx +2 -0
  106. package/nationalarchives/stories/development/technologies.mdx +65 -0
  107. package/nationalarchives/stories/utilities/colour.stories.js +189 -0
  108. package/nationalarchives/stories/utilities/typography.mdx +1 -0
  109. package/nationalarchives/stories/utilities/typography.stories.js +15 -0
  110. package/nationalarchives/templates/layouts/_generic.njk +1 -1
  111. package/nationalarchives/tools/_assets.scss +5 -0
  112. package/nationalarchives/tools/_colour.scss +129 -0
  113. package/nationalarchives/tools/_grid.scss +2 -2
  114. package/nationalarchives/tools/_index.scss +5 -0
  115. package/nationalarchives/tools/_media.scss +12 -11
  116. package/nationalarchives/tools/_typography.scss +15 -0
  117. package/nationalarchives/utilities/_debug.scss +11 -0
  118. package/nationalarchives/utilities/_global.scss +120 -3
  119. package/nationalarchives/utilities/_index.scss +3 -0
  120. package/nationalarchives/utilities/_typography.scss +155 -111
  121. package/nationalarchives/variables/_assets.scss +1 -0
  122. package/nationalarchives/variables/_colour.scss +120 -11
  123. package/nationalarchives/variables/{_all.scss → _index.scss} +1 -0
  124. package/nationalarchives/variables/_media.scss +39 -11
  125. package/nationalarchives/variables/_typography.scss +1 -1
  126. package/package.json +18 -15
  127. package/nationalarchives/components/_all.scss +0 -7
  128. package/nationalarchives/stories/development/structure.mdx +0 -7
  129. package/nationalarchives/tools/_all.scss +0 -3
  130. package/nationalarchives/utilities/_all.scss +0 -2
@@ -1,26 +1,7 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" viewBox="0 0 160 160" style="enable-background:new 0 0 160 160;" xml:space="preserve" class="tna-logo">
3
- <rect class="tna-logo__background" fill="none" width="160" height="160"/>
1
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" class="tna-logo" style="enable-background:new 0 0 160 160" viewBox="0 0 160 160">
2
+ <path fill="#fff" d="M0 0h160v160H0z" class="tna-logo__background"/>
4
3
  <g class="tna-logo__foreground" fill="#000">
5
- <path d="M1.9,107.2h156.3V158H1.9V107.2z M1.9,54.5h79.1h77.2v50.8H1.9V54.5z M1.9,1.9h77.2v50.8H1.9V1.9z M80.9,1.9 h77.2v50.8H80.9C80.9,52.7,80.9,1.9,80.9,1.9z M80.9,0H0v52.7v1.9v50.8v1.9v52.7h160v-52.7v-1.9V52.7V0H80.9z"/>
6
- <polygon points="21.3,19.5 15.9,19.5 15.9,16.5 30.2,16.5 30.2,19.5 24.8,19.5 24.8,37.9 21.3,37.9 "/>
7
- <polygon points="31.6,16.5 35,16.5 35,25.5 43.4,25.5 43.4,16.5 46.8,16.5 46.8,37.9 43.4,37.9 43.4,28.6 35,28.6 35,37.9 31.6,37.9 "/>
8
- <polygon points="50.9,16.5 63.1,16.5 63.1,19.5 54.3,19.5 54.3,25.6 61.7,25.6 61.7,28.6 54.3,28.6 54.3,34.9 63.1,34.9 63.1,37.9 50.9,37.9 "/>
9
- <path d="M19.7,69.2h3.8l6.4,12.5c0.6,1.1,1.1,2.7,1.6,4h0.2c-0.2-1.7-0.3-3.6-0.3-4.8V69.2h3.5v21.4h-3.7l-6.3-12.3c-0.7-1.4-1.2-2.7-1.7-4.2h-0.2c0.2,1.4,0.3,3.3,0.3,5v11.5h-3.5C19.7,90.6,19.7,69.2,19.7,69.2z"/>
10
- <path d="M47.8,82.6l-1.7-6.3c-0.3-1.1-0.6-2.2-0.9-3.8H45c-0.3,1.6-0.5,2.6-0.8,3.8l-1.7,6.3H47.8z M43,69.2h4.2l6.2,21.4h-3.5l-1.5-5.2h-6.6l-1.4,5.2h-3.6L43,69.2z"/>
11
- <polygon points="57.2,72.3 51.8,72.3 51.8,69.2 66,69.2 66,72.3 60.6,72.3 60.6,90.7 57.2,90.7 "/>
12
- <rect x="67.8" y="69.2" width="3.5" height="21.4"/>
13
- <path d="M87.5,80c0-5.3-1.7-8-4.8-8c-3.2,0-4.8,2.7-4.8,8c0,5.2,1.6,7.9,4.8,7.9C85.9,87.9,87.5,85.2,87.5,80 M74.2,80c0-7,3-11.1,8.5-11.1c5.4,0,8.4,4.1,8.4,11.1c0,6.9-3,11-8.4,11C77.3,91,74.2,86.9,74.2,80"/>
14
- <path d="M94.3,69.2H98l6.4,12.5c0.6,1.1,1.2,2.7,1.7,4h0.2c-0.2-1.7-0.3-3.6-0.3-4.8V69.2h3.4v21.4h-3.7l-6.3-12.3c-0.7-1.4-1.2-2.7-1.7-4.2h-0.2c0.2,1.4,0.3,3.3,0.3,5v11.5h-3.5V69.2z"/>
15
- <path d="M122.4,82.6l-1.7-6.3c-0.3-1.1-0.6-2.2-0.9-3.8h-0.2c-0.3,1.6-0.5,2.6-0.8,3.8l-1.7,6.3H122.4z M117.6,69.2h4.2l6.2,21.4h-3.5l-1.5-5.2h-6.6l-1.4,5.2h-3.6L117.6,69.2z"/>
16
- <polygon points="129.9,69.2 133.4,69.2 133.4,87.6 141.8,87.6 141.8,90.7 129.9,90.7 "/>
17
- <path d="M26.9,135.2l-1.7-6.3c-0.3-1.1-0.6-2.2-0.9-3.8h-0.2c-0.3,1.6-0.5,2.6-0.8,3.8l-1.7,6.3H26.9z M22.1,121.8h4.2l6.2,21.4H29l-1.5-5.2h-6.6l-1.4,5.2h-3.6L22.1,121.8z"/>
18
- <path d="M39.9,132.5c2.5,0,3.4-1.6,3.4-3.9c0-2.2-1-3.8-3.4-3.8h-2.7v7.7H39.9z M33.8,121.8h6.4c4.5,0,6.7,2.4,6.7,6.6c0,3.1-1.5,5.6-3.7,6.3v0.2c1,1.1,4,7.5,4.8,7.9v0.5h-3.8c-1-0.6-3.6-7.2-4.4-7.8h-2.5v7.8h-3.5L33.8,121.8L33.8,121.8z"/>
19
- <path d="M52.9,132.5c0,5.3,1.9,8,4.8,8c2.9,0,4-2,4-5.2l3.5,0.1c0,0.2,0.1,0.4,0.1,0.6c0,4.4-2.1,7.5-7.5,7.5c-5.2,0-8.5-3.9-8.5-11.1c0-7.1,3.3-11,8.5-11c6.4,0,7.5,4.6,7.5,7.2c0,0.3,0,0.7-0.1,0.9l-3.5,0.1c0-3.3-1.2-5.2-4-5.2C54.8,124.6,52.9,127.3,52.9,132.5"/>
20
- <polygon points="68,121.8 71.5,121.8 71.5,130.9 79.8,130.9 79.8,121.8 83.3,121.8 83.3,143.3 79.8,143.3 79.8,133.9 71.5,133.9 71.5,143.3 68,143.3 "/>
21
- <rect x="87.9" y="121.8" width="3.5" height="21.4"/>
22
- <path d="M94.2,121.8h3.6l3.2,12.3c0.5,1.9,0.8,3.6,1.1,5.6h0.2c0.3-2,0.6-3.7,1.1-5.6l3.2-12.3h3.6l-6.1,21.4h-4.1L94.2,121.8z"/>
23
- <polygon points="112.7,121.8 125,121.8 125,124.9 116.2,124.9 116.2,130.9 123.6,130.9 123.6,133.9 116.2,133.9 116.2,140.2 125,140.2 125,143.3 112.7,143.3 "/>
24
- <path d="M130.4,136c0,0.2-0.1,0.5-0.1,0.8c0,1.9,0.8,3.7,3.4,3.7c2.1,0,3.3-1.2,3.3-2.9c0-1.6-0.7-2.4-2.2-3l-3.4-1.3c-2.4-0.9-4.2-2.4-4.2-5.7c0-3.5,2.3-6.1,6.6-6.1c5.5,0,6.4,3.6,6.4,5.9c0,0.3,0,0.7-0.1,1.1l-3.4,0.1c0-0.2,0.1-0.5,0.1-0.7c0-1.7-0.6-3.2-3-3.2c-2.1,0-3,1.2-3,2.8c0,1.7,0.9,2.5,2.2,2.9l3.5,1.3c2.6,1,4.3,2.6,4.3,5.8c0,3.6-2.4,6.1-7,6.1c-5.9,0-6.8-3.9-6.8-6.5c0-0.3,0-0.6,0.1-1L130.4,136z"/>
4
+ <path d="M1.9 107.2h156.3V158H1.9v-50.8zm0-52.7h156.3v50.8H1.9V54.5zm0-52.6h77.2v50.8H1.9V1.9zm79 0h77.2v50.8H80.9V1.9zm0-1.9H0v160h160V0H80.9z"/>
5
+ <path d="M21.3 19.5h-5.4v-3h14.3v3h-5.4v18.4h-3.5zM31.6 16.5H35v9h8.4v-9h3.4v21.4h-3.4v-9.3H35v9.3h-3.4zM50.9 16.5h12.2v3h-8.8v6.1h7.4v3h-7.4v6.3h8.8v3H50.9zM19.7 69.2h3.8l6.4 12.5c.6 1.1 1.1 2.7 1.6 4h.2c-.2-1.7-.3-3.6-.3-4.8V69.2h3.5v21.4h-3.7l-6.3-12.3c-.7-1.4-1.2-2.7-1.7-4.2H23c.2 1.4.3 3.3.3 5v11.5h-3.5c-.1 0-.1-21.4-.1-21.4zM47.8 82.6l-1.7-6.3c-.3-1.1-.6-2.2-.9-3.8H45c-.3 1.6-.5 2.6-.8 3.8l-1.7 6.3h5.3zM43 69.2h4.2l6.2 21.4h-3.5l-1.5-5.2h-6.6l-1.4 5.2h-3.6L43 69.2zM57.2 72.3h-5.4v-3.1H66v3.1h-5.4v18.4h-3.4zM67.8 69.2h3.5v21.4h-3.5zM87.5 80c0-5.3-1.7-8-4.8-8-3.2 0-4.8 2.7-4.8 8 0 5.2 1.6 7.9 4.8 7.9 3.2 0 4.8-2.7 4.8-7.9m-13.3 0c0-7 3-11.1 8.5-11.1 5.4 0 8.4 4.1 8.4 11.1 0 6.9-3 11-8.4 11s-8.5-4.1-8.5-11M94.3 69.2H98l6.4 12.5c.6 1.1 1.2 2.7 1.7 4h.2c-.2-1.7-.3-3.6-.3-4.8V69.2h3.4v21.4h-3.7l-6.3-12.3c-.7-1.4-1.2-2.7-1.7-4.2h-.2c.2 1.4.3 3.3.3 5v11.5h-3.5V69.2zM122.4 82.6l-1.7-6.3c-.3-1.1-.6-2.2-.9-3.8h-.2c-.3 1.6-.5 2.6-.8 3.8l-1.7 6.3h5.3zm-4.8-13.4h4.2l6.2 21.4h-3.5l-1.5-5.2h-6.6l-1.4 5.2h-3.6l6.2-21.4zM129.9 69.2h3.5v18.4h8.4v3.1h-11.9zM26.9 135.2l-1.7-6.3c-.3-1.1-.6-2.2-.9-3.8h-.2c-.3 1.6-.5 2.6-.8 3.8l-1.7 6.3h5.3zm-4.8-13.4h4.2l6.2 21.4H29l-1.5-5.2h-6.6l-1.4 5.2h-3.6l6.2-21.4zM39.9 132.5c2.5 0 3.4-1.6 3.4-3.9 0-2.2-1-3.8-3.4-3.8h-2.7v7.7h2.7zm-6.1-10.7h6.4c4.5 0 6.7 2.4 6.7 6.6 0 3.1-1.5 5.6-3.7 6.3v.2c1 1.1 4 7.5 4.8 7.9v.5h-3.8c-1-.6-3.6-7.2-4.4-7.8h-2.5v7.8h-3.5v-21.5zM52.9 132.5c0 5.3 1.9 8 4.8 8s4-2 4-5.2l3.5.1c0 .2.1.4.1.6 0 4.4-2.1 7.5-7.5 7.5-5.2 0-8.5-3.9-8.5-11.1 0-7.1 3.3-11 8.5-11 6.4 0 7.5 4.6 7.5 7.2 0 .3 0 .7-.1.9l-3.5.1c0-3.3-1.2-5.2-4-5.2-2.9.2-4.8 2.9-4.8 8.1M68 121.8h3.5v9.1h8.3v-9.1h3.5v21.5h-3.5v-9.4h-8.3v9.4H68zM87.9 121.8h3.5v21.4h-3.5zM94.2 121.8h3.6l3.2 12.3c.5 1.9.8 3.6 1.1 5.6h.2c.3-2 .6-3.7 1.1-5.6l3.2-12.3h3.6l-6.1 21.4H100l-5.8-21.4zM112.7 121.8H125v3.1h-8.8v6h7.4v3h-7.4v6.3h8.8v3.1h-12.3zM130.4 136c0 .2-.1.5-.1.8 0 1.9.8 3.7 3.4 3.7 2.1 0 3.3-1.2 3.3-2.9 0-1.6-.7-2.4-2.2-3l-3.4-1.3c-2.4-.9-4.2-2.4-4.2-5.7 0-3.5 2.3-6.1 6.6-6.1 5.5 0 6.4 3.6 6.4 5.9 0 .3 0 .7-.1 1.1l-3.4.1c0-.2.1-.5.1-.7 0-1.7-.6-3.2-3-3.2-2.1 0-3 1.2-3 2.8 0 1.7.9 2.5 2.2 2.9l3.5 1.3c2.6 1 4.3 2.6 4.3 5.8 0 3.6-2.4 6.1-7 6.1-5.9 0-6.8-3.9-6.8-6.5 0-.3 0-.6.1-1l3.3-.1z"/>
25
6
  </g>
26
- </svg>
7
+ </svg>
@@ -0,0 +1,13 @@
1
+ @forward "breadcrumbs";
2
+ @forward "button";
3
+ @forward "card";
4
+ @forward "filters";
5
+ @forward "footer";
6
+ @forward "grid";
7
+ @forward "header";
8
+ @forward "hero";
9
+ @forward "phase-banner";
10
+ @forward "picture";
11
+ @forward "profile";
12
+ @forward "sensitive-image";
13
+ @forward "tabs";
@@ -1,24 +1,26 @@
1
- @use "../../variables/colour";
1
+ @use "../../tools/colour";
2
2
  @use "../../tools/media";
3
3
 
4
4
  .tna-breadcrumbs {
5
+ padding-top: 1rem;
6
+ padding-bottom: 1rem;
7
+
5
8
  &__list {
9
+ margin: 0;
6
10
  padding: 0;
7
11
 
8
12
  list-style: none;
9
13
 
10
- display: -ms-flexbox;
11
14
  display: flex;
12
15
  flex-wrap: wrap;
13
16
  }
14
17
 
15
18
  &__item {
16
- display: -ms-flexbox;
17
19
  display: flex;
18
20
 
19
21
  + .tna-breadcrumbs__item {
20
22
  &::before {
21
- margin: 0 0.5rem;
23
+ margin: 0 0.75rem;
22
24
 
23
25
  display: inline-block;
24
26
 
@@ -30,10 +32,10 @@
30
32
  &__link {
31
33
  display: inline-block;
32
34
 
33
- color: colour.$base-font-colour;
35
+ @include colour.colour-font("font-base");
34
36
 
35
37
  &:hover {
36
- color: colour.$tna-black;
38
+ @include colour.colour-font("font-dark");
37
39
  }
38
40
  }
39
41
 
@@ -65,4 +67,24 @@
65
67
  }
66
68
  }
67
69
  }
70
+
71
+ @mixin high-contrast {
72
+ &__link {
73
+ padding-right: 0.75rem;
74
+ padding-left: 0.75rem;
75
+
76
+ border: 1px transparent solid;
77
+ @include colour.colour-border("keyline-dark");
78
+ }
79
+ }
80
+
81
+ .tna-template--high-contrast-theme & {
82
+ @include high-contrast;
83
+ }
84
+
85
+ @media (prefers-contrast: more) {
86
+ .tna-template--system-theme & {
87
+ @include high-contrast;
88
+ }
89
+ }
68
90
  }
@@ -1,5 +1,4 @@
1
1
  import Breadcrumbs from "./template.njk";
2
- import "./_index.scss";
3
2
  import macroOptions from "./macro-options.json";
4
3
 
5
4
  const argTypes = {
@@ -15,7 +14,7 @@ Object.keys(argTypes).forEach((argType) => {
15
14
  });
16
15
 
17
16
  export default {
18
- title: "Components/Breadcrumbs",
17
+ title: "Work in progress/Components/Breadcrumbs",
19
18
  argTypes,
20
19
  };
21
20
 
@@ -19,7 +19,7 @@
19
19
  }
20
20
  ]
21
21
  },
22
- "html": "<nav class=\"tna-breadcrumbs \">\n <ol class=\"tna-breadcrumbs__list\"><li class=\"tna-breadcrumbs__item\">\n <a href=\"#/alpha\" class=\"tna-breadcrumbs__link\" data-prefix=\"Back to\">\n Alpha\n </a>\n </li><li class=\"tna-breadcrumbs__item\">\n <a href=\"#/beta\" class=\"tna-breadcrumbs__link\" data-prefix=\"Back to\">\n Beta\n </a>\n </li><li class=\"tna-breadcrumbs__item\">\n <a href=\"#/gamma\" class=\"tna-breadcrumbs__link\" data-prefix=\"Back to\">\n Gamma\n </a>\n </li></ol>\n</nav>",
22
+ "html": "<div class=\"tna-breadcrumbs tna-container \"><nav class=\"tna-column tna-column--full\"><ol class=\"tna-breadcrumbs__list\"><li class=\"tna-breadcrumbs__item\"><a href=\"#/alpha\" class=\"tna-breadcrumbs__link\" data-prefix=\"Back to\">Alpha</a></li><li class=\"tna-breadcrumbs__item\"><a href=\"#/beta\" class=\"tna-breadcrumbs__link\" data-prefix=\"Back to\">Beta</a></li><li class=\"tna-breadcrumbs__item\"><a href=\"#/gamma\" class=\"tna-breadcrumbs__link\" data-prefix=\"Back to\">Gamma</a></li></ol></nav></div>",
23
23
  "hidden": false
24
24
  }
25
25
  ]
@@ -1,3 +1,3 @@
1
1
  {% macro tnaBreadcrumbs(params) %}
2
- {%- include "./template.njk" -%}
2
+ {%- include "nationalarchives/components/breadcrumbs/template.njk" -%}
3
3
  {% endmacro %}
@@ -1,13 +1,14 @@
1
- {%- set breadcrumbClasses = [params.classes] if params.classes else [] -%}
2
-
3
- <nav class="tna-breadcrumbs {{ breadcrumbClasses | join(' ') }}" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
4
- <ol class="tna-breadcrumbs__list">
5
- {%- for item in params.items -%}
6
- <li class="tna-breadcrumbs__item">
7
- <a href="{{ item.href }}" class="tna-breadcrumbs__link" data-prefix="{{ params.prefix if params.prefix else 'Back to' }}" {%- if item.title %} title="{{ item.title }}"{% endif %}>
8
- {{ item.text }}
9
- </a>
10
- </li>
11
- {%- endfor -%}
12
- </ol>
13
- </nav>
1
+ {%- set containerClasses = [params.classes] if params.classes else [] -%}
2
+ <div class="tna-breadcrumbs tna-container {{ containerClasses | join(' ') }}" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
3
+ <nav class="tna-column tna-column--full">
4
+ <ol class="tna-breadcrumbs__list">
5
+ {%- for item in params.items -%}
6
+ <li class="tna-breadcrumbs__item">
7
+ <a href="{{ item.href }}" class="tna-breadcrumbs__link" data-prefix="{{ params.prefix if params.prefix else 'Back to' }}" {%- if item.title %} title="{{ item.title }}"{% endif %}>
8
+ {{ item.text }}
9
+ </a>
10
+ </li>
11
+ {%- endfor -%}
12
+ </ol>
13
+ </nav>
14
+ </div>
@@ -1,27 +1,35 @@
1
- @use "../../variables/colour";
1
+ @use "../../tools/colour";
2
2
 
3
3
  .tna-button {
4
4
  padding: 0.25rem 1rem;
5
5
 
6
6
  display: inline-block;
7
7
 
8
- color: #fff;
9
8
  font-weight: 700;
10
9
  text-decoration: none;
11
10
 
12
- background-color: colour.$tna-black;
11
+ @include colour.colour-background("button-primary-background");
13
12
 
14
- border: 0.25rem colour.$tna-black solid;
13
+ border: 0.25rem transparent solid;
14
+ @include colour.colour-border("button-primary-background");
15
15
 
16
16
  transition:
17
17
  color 200ms,
18
18
  background-color 200ms,
19
19
  border-color 200ms;
20
20
 
21
+ cursor: pointer;
22
+
23
+ &,
24
+ &:link,
25
+ &:visited {
26
+ @include colour.colour-font("button-primary-text");
27
+ }
28
+
21
29
  &:hover {
22
- color: colour.$tna-black;
30
+ @include colour.colour-font("button-primary-hover-text");
23
31
 
24
- background-color: #fff;
32
+ @include colour.colour-background("button-primary-hover-background");
25
33
 
26
34
  transition:
27
35
  color 50ms,
@@ -30,16 +38,20 @@
30
38
  }
31
39
 
32
40
  &--secondary {
33
- color: colour.$tna-black;
41
+ @include colour.colour-background("button-secondary-background");
34
42
 
35
- background-color: colour.$tna-yellow;
43
+ @include colour.colour-border("button-secondary-background");
36
44
 
37
- border-color: colour.$tna-yellow;
45
+ &,
46
+ &:link,
47
+ &:visited {
48
+ @include colour.colour-font("button-secondary-text");
49
+ }
38
50
 
39
51
  &:hover {
40
- color: colour.$tna-black;
52
+ @include colour.colour-font("button-secondary-hover-text");
41
53
 
42
- border-color: colour.$tna-black;
54
+ @include colour.colour-background("button-secondary-hover-background");
43
55
  }
44
56
  }
45
57
  }
@@ -1,5 +1,4 @@
1
1
  import Button from "./template.njk";
2
- import "./_index.scss";
3
2
  import macroOptions from "./macro-options.json";
4
3
 
5
4
  const argTypes = {
@@ -18,7 +17,7 @@ Object.keys(argTypes).forEach((argType) => {
18
17
  });
19
18
 
20
19
  export default {
21
- title: "Components/Button",
20
+ title: "Work in progress/Components/Button",
22
21
  argTypes,
23
22
  };
24
23
 
@@ -7,7 +7,7 @@
7
7
  "text": "Log in",
8
8
  "href": "#"
9
9
  },
10
- "html": "<a href=\"#\" class=\"tna-button \">\n Log in\n</a>",
10
+ "html": "<a href=\"#\" class=\"tna-button \">Log in</a>",
11
11
  "hidden": false
12
12
  },
13
13
  {
@@ -17,7 +17,7 @@
17
17
  "href": "#",
18
18
  "title": "Log in to the service"
19
19
  },
20
- "html": "<a href=\"#\" class=\"tna-button \" title=\"Log in to the service\">\n Log in\n</a>",
20
+ "html": "<a href=\"#\" class=\"tna-button \" title=\"Log in to the service\">Log in</a>",
21
21
  "hidden": false
22
22
  },
23
23
  {
@@ -27,7 +27,7 @@
27
27
  "href": "#",
28
28
  "secondary": true
29
29
  },
30
- "html": "<a href=\"#\" class=\"tna-button tna-button--secondary\">\n Log in\n</a>",
30
+ "html": "<a href=\"#\" class=\"tna-button tna-button--secondary\">Log in</a>",
31
31
  "hidden": false
32
32
  },
33
33
  {
@@ -37,7 +37,7 @@
37
37
  "href": "#",
38
38
  "classes": "button__test-class"
39
39
  },
40
- "html": "<a href=\"#\" class=\"tna-button button__test-class\">\n Log in\n</a>",
40
+ "html": "<a href=\"#\" class=\"tna-button button__test-class\">Log in</a>",
41
41
  "hidden": false
42
42
  },
43
43
  {
@@ -49,7 +49,7 @@
49
49
  "data-testattribute": "foobar"
50
50
  }
51
51
  },
52
- "html": "<a href=\"#\" class=\"tna-button \" data-testattribute=\"foobar\">\n Log in\n</a>",
52
+ "html": "<a href=\"#\" class=\"tna-button \" data-testattribute=\"foobar\">Log in</a>",
53
53
  "hidden": false
54
54
  }
55
55
  ]
@@ -1,3 +1,3 @@
1
1
  {% macro tnaButton(params) %}
2
- {%- include "./template.njk" -%}
2
+ {%- include "nationalarchives/components/button/template.njk" -%}
3
3
  {% endmacro %}
@@ -1,11 +1,10 @@
1
- @use "../../variables/colour";
1
+ @use "../../tools/colour";
2
2
 
3
3
  .tna-card {
4
+ margin-bottom: 1rem;
5
+
4
6
  &__inner {
5
- display: -ms-flexbox;
6
7
  display: flex;
7
- -ms-box-orient: vertical;
8
- -ms-flex-direction: column;
9
8
  flex-direction: column;
10
9
  }
11
10
 
@@ -24,10 +23,26 @@
24
23
  }
25
24
 
26
25
  &__image-container {
26
+ margin-bottom: 1rem;
27
+
28
+ position: relative;
27
29
  order: 1;
28
30
  }
29
31
 
30
32
  &__image {
33
+ height: auto;
34
+ }
35
+
36
+ &__image-label {
37
+ padding: 0 0.5rem;
38
+
39
+ position: absolute;
40
+ top: 1rem;
41
+ left: 0;
42
+
43
+ text-transform: uppercase;
44
+
45
+ background-color: #f0a;
31
46
  }
32
47
 
33
48
  &__body {
@@ -46,9 +61,14 @@
46
61
  }
47
62
 
48
63
  &--featured {
64
+ @include colour.fixed;
65
+
49
66
  position: relative;
50
67
 
51
- background-color: colour.$tna-yellow;
68
+ @include colour.colour-font("font-base");
69
+
70
+ // background-color: colour.$tna-yellow;
71
+ @include colour.colour-background("accent");
52
72
 
53
73
  .tna-card__inner {
54
74
  margin-left: 50%;
@@ -58,14 +78,21 @@
58
78
  .tna-card__heading {
59
79
  padding-bottom: 2rem;
60
80
 
61
- border-bottom: 2px colour.$tna-black solid;
81
+ border-bottom: 2px transparent solid;
82
+ @include colour.colour-border("keyline-dark");
83
+ }
84
+
85
+ .tna-card__supertitle {
86
+ color: inherit;
62
87
  }
63
88
 
64
89
  .tna-card__title-link {
65
- color: colour.$tna-black;
90
+ @include colour.colour-font("font-dark");
66
91
  }
67
92
 
68
93
  .tna-card__image-container {
94
+ margin-bottom: 0;
95
+
69
96
  position: absolute;
70
97
  inset: 0 50% 0 0;
71
98
  }
@@ -76,4 +103,21 @@
76
103
  object-fit: cover;
77
104
  }
78
105
  }
106
+
107
+ @mixin high-contrast {
108
+ padding: 1rem;
109
+
110
+ border: 1px transparent solid;
111
+ @include colour.colour-border("keyline-dark");
112
+ }
113
+
114
+ .tna-template--high-contrast-theme & {
115
+ @include high-contrast;
116
+ }
117
+
118
+ @media (prefers-contrast: more) {
119
+ .tna-template--system-theme & {
120
+ @include high-contrast;
121
+ }
122
+ }
79
123
  }
@@ -0,0 +1,2 @@
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("TNAFrontend",[],e):"object"==typeof exports?exports.TNAFrontend=e():(t.TNAFrontend=t.TNAFrontend||{},t.TNAFrontend["components/card/card"]=e())}(self,(()=>(()=>{"use strict";var t={d:(e,o)=>{for(var n in o)t.o(o,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function n(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(void 0,i=function(t,e){if("object"!==o(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!==o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(r.key),"symbol"===o(i)?i:String(i)),r)}var i}t.r(e),t.d(e,{Card:()=>r});var r=function(){function t(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:300;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.$module=e,this.$cardTitleLink=e&&e.querySelector(".tna-card__title-link"),this.$cardAction=e&&e.querySelector(".tna-card__action"),this.tapTimeMax=o}var e,o;return e=t,(o=[{key:"init",value:function(){this.$module&&(this.$cardTitleLink||this.$cardAction)&&!this.$module.classList.contains("tna-card--no-global-click")&&(this.touchStartTime=null)}},{key:"handleCardClick",value:function(){this.$cardTitleLink?this.$cardTitleLink.click():this.$cardAction&&this.$cardAction.click()}},{key:"handleCardTouchStart",value:function(){this.touchStartTime=new Date}},{key:"handleCardTouchEnd",value:function(){(new Date).getTime()-this.touchStartTime.getTime()<this.tapTimeMax&&this.handleCardClick()}}])&&n(e.prototype,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();return e})()));
2
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components/card/card.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,cAAe,GAAIH,GACA,iBAAZC,QACdA,QAAqB,YAAID,KAEzBD,EAAkB,YAAIA,EAAkB,aAAK,CAAC,EAAGA,EAAkB,YAAE,wBAA0BC,IAChG,CATD,CASGK,MAAM,I,mBCRT,IAAIC,EAAsB,CCA1BA,EAAwB,CAACL,EAASM,KACjC,IAAI,IAAIC,KAAOD,EACXD,EAAoBG,EAAEF,EAAYC,KAASF,EAAoBG,EAAER,EAASO,IAC5EE,OAAOC,eAAeV,EAASO,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDF,EAAwB,CAACQ,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFT,EAAyBL,IACH,oBAAXkB,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeV,EAASkB,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeV,EAAS,aAAc,CAAEoB,OAAO,GAAO,G,msBCLvD,IAAMC,EAAI,WACf,SAAAA,EAAYC,GAA2B,IAAlBC,EAAUC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,K,4FAAGG,CAAA,KAAAN,GACnCO,KAAKN,QAAUA,EACfM,KAAKC,eACHP,GAAWA,EAAQQ,cAAc,yBACnCF,KAAKG,YAAcT,GAAWA,EAAQQ,cAAc,qBACpDF,KAAKL,WAAaA,CACpB,C,QAoCC,O,EApCAF,G,EAAA,EAAAd,IAAA,OAAAa,MAED,WAEKQ,KAAKN,UACJM,KAAKC,gBAAmBD,KAAKG,eAC/BH,KAAKN,QAAQU,UAAUC,SAAS,+BAKlCL,KAAKM,eAAiB,KAMxB,GAAC,CAAA3B,IAAA,kBAAAa,MAED,WACMQ,KAAKC,eACPD,KAAKC,eAAeM,QACXP,KAAKG,aACdH,KAAKG,YAAYI,OAErB,GAAC,CAAA5B,IAAA,uBAAAa,MAED,WACEQ,KAAKM,eAAiB,IAAIE,IAC5B,GAAC,CAAA7B,IAAA,qBAAAa,MAED,YACmB,IAAIgB,MAAOC,UAAYT,KAAKM,eAAeG,UAC7CT,KAAKL,YAClBK,KAAKU,iBAET,M,oEAACjB,CAAA,CA3Cc,G","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/components/card/card.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = root[\"TNAFrontend\"] || {}, root[\"TNAFrontend\"][\"components/card/card\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export class Card {\n constructor($module, tapTimeMax = 300) {\n this.$module = $module;\n this.$cardTitleLink =\n $module && $module.querySelector(\".tna-card__title-link\");\n this.$cardAction = $module && $module.querySelector(\".tna-card__action\");\n this.tapTimeMax = tapTimeMax;\n }\n\n init() {\n if (\n !this.$module ||\n (!this.$cardTitleLink && !this.$cardAction) ||\n this.$module.classList.contains(\"tna-card--no-global-click\")\n ) {\n return;\n }\n\n this.touchStartTime = null;\n\n // this.$module.addEventListener(\"touchstart\", () =>\n // this.handleCardTouchStart(),\n // );\n // this.$module.addEventListener(\"touchend\", () => this.handleCardTouchEnd());\n }\n\n handleCardClick() {\n if (this.$cardTitleLink) {\n this.$cardTitleLink.click();\n } else if (this.$cardAction) {\n this.$cardAction.click();\n }\n }\n\n handleCardTouchStart() {\n this.touchStartTime = new Date();\n }\n\n handleCardTouchEnd() {\n const duration = new Date().getTime() - this.touchStartTime.getTime();\n if (duration < this.tapTimeMax) {\n this.handleCardClick();\n }\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Card","$module","tapTimeMax","arguments","length","undefined","_classCallCheck","this","$cardTitleLink","querySelector","$cardAction","classList","contains","touchStartTime","click","Date","getTime","handleCardClick"],"sourceRoot":""}
@@ -0,0 +1,45 @@
1
+ export class Card {
2
+ constructor($module, tapTimeMax = 300) {
3
+ this.$module = $module;
4
+ this.$cardTitleLink =
5
+ $module && $module.querySelector(".tna-card__title-link");
6
+ this.$cardAction = $module && $module.querySelector(".tna-card__action");
7
+ this.tapTimeMax = tapTimeMax;
8
+ }
9
+
10
+ init() {
11
+ if (
12
+ !this.$module ||
13
+ (!this.$cardTitleLink && !this.$cardAction) ||
14
+ this.$module.classList.contains("tna-card--no-global-click")
15
+ ) {
16
+ return;
17
+ }
18
+
19
+ this.touchStartTime = null;
20
+
21
+ // this.$module.addEventListener("touchstart", () =>
22
+ // this.handleCardTouchStart(),
23
+ // );
24
+ // this.$module.addEventListener("touchend", () => this.handleCardTouchEnd());
25
+ }
26
+
27
+ handleCardClick() {
28
+ if (this.$cardTitleLink) {
29
+ this.$cardTitleLink.click();
30
+ } else if (this.$cardAction) {
31
+ this.$cardAction.click();
32
+ }
33
+ }
34
+
35
+ handleCardTouchStart() {
36
+ this.touchStartTime = new Date();
37
+ }
38
+
39
+ handleCardTouchEnd() {
40
+ const duration = new Date().getTime() - this.touchStartTime.getTime();
41
+ if (duration < this.tapTimeMax) {
42
+ this.handleCardClick();
43
+ }
44
+ }
45
+ }
@@ -1,5 +1,4 @@
1
1
  import Card from "./template.njk";
2
- import "./_index.scss";
3
2
  import macroOptions from "./macro-options.json";
4
3
 
5
4
  const argTypes = {
@@ -22,7 +21,7 @@ Object.keys(argTypes).forEach((argType) => {
22
21
  });
23
22
 
24
23
  export default {
25
- title: "Components/Card",
24
+ title: "Work in progress/Components/Card",
26
25
  argTypes,
27
26
  };
28
27
 
@@ -61,21 +60,23 @@ Standard.args = {
61
60
  title: "Card title",
62
61
  level: 3,
63
62
  size: "m",
64
- singleSentence: true,
63
+ singleSentence: false,
65
64
  },
66
65
  href: "#",
67
66
  image: {
68
- src: "https://picsum.photos/id/29/640/360",
69
- alt: "A placeholder image",
67
+ src: "https://www.nationalarchives.gov.uk/wp-content/uploads/sites/24/2023/07/tna-building-compress.jpg",
68
+ alt: "The National Archives office",
69
+ width: 1996,
70
+ height: 1331,
70
71
  },
71
72
  body: "<p>Card body</p>",
72
- actions: [
73
- {
74
- text: "Card action",
75
- href: "#",
76
- title: "Go and do the action",
77
- },
78
- ],
73
+ // actions: [
74
+ // {
75
+ // text: "Card action",
76
+ // href: "#",
77
+ // title: "Go and do the action",
78
+ // },
79
+ // ],
79
80
  htmlElement: "article",
80
81
  classes: "tna-card--demo",
81
82
  };
@@ -87,12 +88,14 @@ Featured.args = {
87
88
  title: "Card title",
88
89
  level: 3,
89
90
  size: "m",
90
- singleSentence: true,
91
+ singleSentence: false,
91
92
  },
92
93
  href: "#",
93
94
  image: {
94
- src: "https://picsum.photos/id/24/640/360",
95
- alt: "A placeholder image",
95
+ src: "https://www.nationalarchives.gov.uk/wp-content/uploads/sites/24/2023/07/tna-building-compress.jpg",
96
+ alt: "The National Archives office",
97
+ width: 1996,
98
+ height: 1331,
96
99
  },
97
100
  body: "<p>Card body</p>",
98
101
  actions: [