@nationalarchives/frontend 0.1.40 → 0.1.42

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 +1 -1
  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 +18 -0
  6. package/nationalarchives/analytics.js +2 -0
  7. package/nationalarchives/analytics.js.map +1 -0
  8. package/nationalarchives/analytics.mjs +238 -0
  9. package/nationalarchives/components/_index.scss +3 -1
  10. package/nationalarchives/components/breadcrumbs/analytics.js +17 -0
  11. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  12. package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +3 -1
  13. package/nationalarchives/components/breadcrumbs/fixtures.json +69 -6
  14. package/nationalarchives/components/breadcrumbs/macro-options.json +12 -6
  15. package/nationalarchives/components/breadcrumbs/template.njk +11 -4
  16. package/nationalarchives/components/button/_index.scss +1 -0
  17. package/nationalarchives/components/button/button.css +1 -1
  18. package/nationalarchives/components/button/button.css.map +1 -1
  19. package/nationalarchives/components/button/button.scss +2 -1
  20. package/nationalarchives/components/button/fixtures.json +5 -10
  21. package/nationalarchives/components/button/template.njk +2 -2
  22. package/nationalarchives/components/card/card.css.map +1 -1
  23. package/nationalarchives/components/card/fixtures.json +17 -34
  24. package/nationalarchives/components/checkboxes/analytics.js +25 -0
  25. package/nationalarchives/components/checkboxes/checkboxes.css +1 -1
  26. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
  27. package/nationalarchives/components/checkboxes/checkboxes.njk +12 -0
  28. package/nationalarchives/components/checkboxes/checkboxes.scss +1 -0
  29. package/nationalarchives/components/checkboxes/fixtures.json +6 -12
  30. package/nationalarchives/components/checkboxes/template.njk +10 -7
  31. package/nationalarchives/components/compound-filters/compound-filters.css +1 -1
  32. package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
  33. package/nationalarchives/components/compound-filters/compound-filters.scss +2 -0
  34. package/nationalarchives/components/compound-filters/fixtures.json +1 -2
  35. package/nationalarchives/components/compound-filters/template.njk +1 -1
  36. package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -1
  37. package/nationalarchives/components/cookie-banner/cookie-banner.js +1 -1
  38. package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
  39. package/nationalarchives/components/cookie-banner/fixtures.json +10 -20
  40. package/nationalarchives/components/date-input/date-input.css +1 -1
  41. package/nationalarchives/components/date-input/date-input.css.map +1 -1
  42. package/nationalarchives/components/date-input/fixtures.json +5 -10
  43. package/nationalarchives/components/date-input/template.njk +9 -9
  44. package/nationalarchives/components/date-search/date-search.css +1 -1
  45. package/nationalarchives/components/date-search/date-search.css.map +1 -1
  46. package/nationalarchives/components/date-search/date-search.njk +7 -0
  47. package/nationalarchives/components/date-search/fixtures.json +6 -12
  48. package/nationalarchives/components/date-search/template.njk +6 -7
  49. package/nationalarchives/components/error-summary/_index.scss +1 -0
  50. package/nationalarchives/components/error-summary/error-summary.css +1 -0
  51. package/nationalarchives/components/error-summary/error-summary.css.map +1 -0
  52. package/nationalarchives/components/error-summary/error-summary.js +2 -0
  53. package/nationalarchives/components/error-summary/error-summary.js.map +1 -0
  54. package/nationalarchives/components/error-summary/error-summary.mjs +51 -0
  55. package/nationalarchives/components/error-summary/error-summary.scss +39 -0
  56. package/nationalarchives/components/error-summary/error-summary.stories.js +59 -0
  57. package/nationalarchives/components/error-summary/fixtures.json +24 -0
  58. package/nationalarchives/components/error-summary/macro-options.json +52 -0
  59. package/nationalarchives/components/error-summary/macro.njk +3 -0
  60. package/nationalarchives/components/error-summary/template.njk +15 -0
  61. package/nationalarchives/components/featured-records/featured-records.css.map +1 -1
  62. package/nationalarchives/components/featured-records/fixtures.json +2 -4
  63. package/nationalarchives/components/footer/fixtures.json +2 -4
  64. package/nationalarchives/components/footer/footer.css.map +1 -1
  65. package/nationalarchives/components/footer/footer.stories.js +10 -10
  66. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  67. package/nationalarchives/components/global-header/analytics.js +23 -0
  68. package/nationalarchives/components/global-header/fixtures.json +1 -2
  69. package/nationalarchives/components/global-header/global-header.css +1 -1
  70. package/nationalarchives/components/global-header/global-header.css.map +1 -1
  71. package/nationalarchives/components/global-header/global-header.stories.js +32 -20
  72. package/nationalarchives/components/grid/fixtures.json +13 -26
  73. package/nationalarchives/components/header/analytics.js +23 -0
  74. package/nationalarchives/components/header/fixtures.json +1 -2
  75. package/nationalarchives/components/header/header.css.map +1 -1
  76. package/nationalarchives/components/hero/analytics.js +26 -0
  77. package/nationalarchives/components/hero/fixtures.json +12 -24
  78. package/nationalarchives/components/hero/hero.css.map +1 -1
  79. package/nationalarchives/components/index-grid/fixtures.json +8 -16
  80. package/nationalarchives/components/index-grid/index-grid.css +1 -1
  81. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  82. package/nationalarchives/components/message/fixtures.json +1 -2
  83. package/nationalarchives/components/message/message.css.map +1 -1
  84. package/nationalarchives/components/message/phase-banner.stories.js +1 -1
  85. package/nationalarchives/components/pagination/fixtures.json +1 -2
  86. package/nationalarchives/components/phase-banner/fixtures.json +4 -8
  87. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  88. package/nationalarchives/components/picture/analytics.js +34 -0
  89. package/nationalarchives/components/picture/fixtures.json +5 -10
  90. package/nationalarchives/components/picture/picture.css.map +1 -1
  91. package/nationalarchives/components/quick-filters/_index.scss +1 -0
  92. package/nationalarchives/components/quick-filters/fixtures.json +51 -0
  93. package/nationalarchives/components/{filters → quick-filters}/macro-options.json +2 -2
  94. package/nationalarchives/components/quick-filters/macro.njk +3 -0
  95. package/nationalarchives/components/quick-filters/quick-filters.css +1 -0
  96. package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -0
  97. package/nationalarchives/components/{filters/filters.scss → quick-filters/quick-filters.scss} +10 -8
  98. package/nationalarchives/components/{filters/filters.stories.js → quick-filters/quick-filters.stories.js} +2 -2
  99. package/nationalarchives/components/quick-filters/template.njk +8 -0
  100. package/nationalarchives/components/radios/analytics.js +25 -0
  101. package/nationalarchives/components/radios/fixtures.json +6 -12
  102. package/nationalarchives/components/radios/radios.css +1 -1
  103. package/nationalarchives/components/radios/radios.css.map +1 -1
  104. package/nationalarchives/components/radios/radios.njk +12 -0
  105. package/nationalarchives/components/radios/template.njk +6 -13
  106. package/nationalarchives/components/search-field/analytics.js +22 -0
  107. package/nationalarchives/components/search-field/fixtures.json +3 -6
  108. package/nationalarchives/components/search-field/search-field.css +1 -1
  109. package/nationalarchives/components/search-field/search-field.css.map +1 -1
  110. package/nationalarchives/components/search-field/search-field.scss +7 -2
  111. package/nationalarchives/components/search-field/template.njk +4 -4
  112. package/nationalarchives/components/search-filters/_index.scss +1 -0
  113. package/nationalarchives/components/search-filters/fixtures.json +16 -0
  114. package/nationalarchives/components/search-filters/macro-options.json +39 -0
  115. package/nationalarchives/components/search-filters/macro.njk +3 -0
  116. package/nationalarchives/components/search-filters/search-filters.css +1 -0
  117. package/nationalarchives/components/search-filters/search-filters.css.map +1 -0
  118. package/nationalarchives/components/search-filters/search-filters.js +2 -0
  119. package/nationalarchives/components/search-filters/search-filters.js.map +1 -0
  120. package/nationalarchives/components/search-filters/search-filters.mjs +67 -0
  121. package/nationalarchives/components/search-filters/search-filters.scss +163 -0
  122. package/nationalarchives/components/search-filters/search-filters.stories.js +207 -0
  123. package/nationalarchives/components/search-filters/template.njk +107 -0
  124. package/nationalarchives/components/select/fixtures.json +6 -12
  125. package/nationalarchives/components/select/select.css +1 -1
  126. package/nationalarchives/components/select/select.css.map +1 -1
  127. package/nationalarchives/components/select/select.scss +1 -1
  128. package/nationalarchives/components/select/template.njk +4 -4
  129. package/nationalarchives/components/sensitive-image/fixtures.json +3 -6
  130. package/nationalarchives/components/skip-link/fixtures.json +1 -2
  131. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  132. package/nationalarchives/components/tabs/fixtures.json +1 -2
  133. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  134. package/nationalarchives/components/text-input/analytics.js +23 -0
  135. package/nationalarchives/components/text-input/fixtures.json +6 -12
  136. package/nationalarchives/components/text-input/template.njk +6 -10
  137. package/nationalarchives/components/text-input/text-input.css +1 -1
  138. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  139. package/nationalarchives/components/text-input/text-input.njk +10 -0
  140. package/nationalarchives/components/text-input/text-input.scss +1 -1
  141. package/nationalarchives/components/textarea/analytics.js +23 -0
  142. package/nationalarchives/components/textarea/fixtures.json +6 -12
  143. package/nationalarchives/components/textarea/template.njk +5 -5
  144. package/nationalarchives/components/textarea/textarea.css +1 -1
  145. package/nationalarchives/components/textarea/textarea.css.map +1 -1
  146. package/nationalarchives/components/textarea/textarea.scss +1 -1
  147. package/nationalarchives/global-header-package.css +1 -1
  148. package/nationalarchives/global-header-package.css.map +1 -1
  149. package/nationalarchives/lib/analytics-helpers.mjs +63 -0
  150. package/nationalarchives/lib/cookies.mjs +59 -35
  151. package/nationalarchives/prototype-kit.css +1 -1
  152. package/nationalarchives/prototype-kit.css.map +1 -1
  153. package/nationalarchives/stories/utilities/colour-schemes/colour-themes.stories.js +38 -16
  154. package/nationalarchives/stories/utilities/forms/forms.mdx +6 -6
  155. package/nationalarchives/tests/analytics.test.js +11 -0
  156. package/nationalarchives/tests/cookies.test.js +21 -0
  157. package/nationalarchives/tests/uuid.test.js +0 -6
  158. package/nationalarchives/tools/_a11y.scss +2 -2
  159. package/nationalarchives/tools/_colour.scss +23 -14
  160. package/nationalarchives/utilities/_forms.scss +6 -0
  161. package/nationalarchives/utilities/_typography.scss +2 -0
  162. package/nationalarchives/variables/_colour.scss +2 -0
  163. package/nationalarchives/variables/_forms.scss +1 -1
  164. package/package.json +2 -2
  165. package/nationalarchives/components/filters/_index.scss +0 -1
  166. package/nationalarchives/components/filters/filters.css +0 -1
  167. package/nationalarchives/components/filters/filters.css.map +0 -1
  168. package/nationalarchives/components/filters/fixtures.json +0 -51
  169. package/nationalarchives/components/filters/macro.njk +0 -3
  170. package/nationalarchives/components/filters/template.njk +0 -8
@@ -3,6 +3,7 @@ import Breadcrumbs from "../../../components/breadcrumbs/template.njk";
3
3
  import Button from "../../../components/button/template.njk";
4
4
  import Card from "../../../components/card/template.njk";
5
5
  import Checkboxes from "../../../components/checkboxes/template.njk";
6
+ import ErrorSummary from "../../../components/error-summary/template.njk";
6
7
  import FeaturedRecords from "../../../components/featured-records/template.njk";
7
8
  import Footer from "../../../components/footer/template.njk";
8
9
  import Gallery from "../../../components/gallery/template.njk";
@@ -1065,6 +1066,21 @@ const Template = ({ theme, accent }) => {
1065
1066
  </div>
1066
1067
  </div>
1067
1068
  </div>
1069
+ <div class="tna-section tna-background-contrast">
1070
+ <div class="tna-container">
1071
+ <div class="tna-column tna-column--width-2-3 tna-column--full-small tna-column--full-tiny">
1072
+ ${SearchField({
1073
+ params: {
1074
+ label: "Catalogue search results",
1075
+ headingLevel: 3,
1076
+ headingSize: "l",
1077
+ id: "search1",
1078
+ name: "q",
1079
+ },
1080
+ })}
1081
+ </div>
1082
+ </div>
1083
+ </div>
1068
1084
  <div class="tna-section">
1069
1085
  <div class="tna-container">
1070
1086
  <div class="tna-column tna-column--width-2-3 tna-column--full-small tna-column--full-tiny">
@@ -1072,13 +1088,16 @@ const Template = ({ theme, accent }) => {
1072
1088
  <h2 class="tna-heading tna-heading--l">
1073
1089
  Forms
1074
1090
  </h2>
1075
- ${SearchField({
1091
+ ${ErrorSummary({
1076
1092
  params: {
1077
- label: "Catalogue search results",
1078
- headingLevel: 3,
1079
- headingSize: "l",
1080
- id: "search1",
1081
- name: "q",
1093
+ title: "There is a problem",
1094
+ headingLevel: 2,
1095
+ items: [
1096
+ {
1097
+ text: "Enter a valid email address",
1098
+ href: "#email",
1099
+ },
1100
+ ],
1082
1101
  },
1083
1102
  })}
1084
1103
  ${TextInput({
@@ -1099,6 +1118,9 @@ const Template = ({ theme, accent }) => {
1099
1118
  id: "email",
1100
1119
  name: "email",
1101
1120
  autofill: "email",
1121
+ error: {
1122
+ text: "Enter a valid email address",
1123
+ },
1102
1124
  },
1103
1125
  })}
1104
1126
  ${Select({
@@ -1233,43 +1255,43 @@ const Template = ({ theme, accent }) => {
1233
1255
  items: [
1234
1256
  {
1235
1257
  text: "About us",
1236
- href: "https://www.nationalarchives.gov.uk/about/)",
1258
+ href: "https://www.nationalarchives.gov.uk/about/",
1237
1259
  },
1238
1260
  {
1239
1261
  text: "Contact us",
1240
- href: "https://www.nationalarchives.gov.uk/contact-us/)",
1262
+ href: "https://www.nationalarchives.gov.uk/contact-us/",
1241
1263
  },
1242
1264
  {
1243
1265
  text: "News",
1244
- href: "https://www.nationalarchives.gov.uk/about/news/)",
1266
+ href: "https://www.nationalarchives.gov.uk/about/news/",
1245
1267
  },
1246
1268
  {
1247
1269
  text: "Blog",
1248
- href: "https://blog.nationalarchives.gov.uk/)",
1270
+ href: "https://blog.nationalarchives.gov.uk/",
1249
1271
  },
1250
1272
  {
1251
1273
  text: "Podcasts and videos",
1252
- href: "https://media.nationalarchives.gov.uk/)",
1274
+ href: "https://media.nationalarchives.gov.uk/",
1253
1275
  },
1254
1276
  {
1255
1277
  text: "Image library",
1256
- href: "https://images.nationalarchives.gov.uk/)",
1278
+ href: "https://images.nationalarchives.gov.uk/",
1257
1279
  },
1258
1280
  {
1259
1281
  text: "Press room",
1260
- href: "https://www.nationalarchives.gov.uk/about/press-room/)",
1282
+ href: "https://www.nationalarchives.gov.uk/about/press-room/",
1261
1283
  },
1262
1284
  {
1263
1285
  text: "Jobs and careers",
1264
- href: "https://www.nationalarchives.gov.uk/about/jobs/)",
1286
+ href: "https://www.nationalarchives.gov.uk/about/jobs/",
1265
1287
  },
1266
1288
  {
1267
1289
  text: "British citizenship services",
1268
- href: "https://www.nationalarchives.gov.uk/contact-us/british-citizenship-services/)",
1290
+ href: "https://www.nationalarchives.gov.uk/contact-us/british-citizenship-services/",
1269
1291
  },
1270
1292
  {
1271
1293
  text: "Historical Manuscripts Commission",
1272
- href: "https://www.nationalarchives.gov.uk/archives-sector/our-archives-sector-role/historical-manuscripts-commission/)",
1294
+ href: "https://www.nationalarchives.gov.uk/archives-sector/our-archives-sector-role/historical-manuscripts-commission/",
1273
1295
  },
1274
1296
  ],
1275
1297
  },
@@ -43,26 +43,26 @@ import * as SearchFieldStories from "../../../components/search-field/search-fie
43
43
  <div class="tna-form__group-contents">
44
44
 
45
45
  <h4 class="tna-form__heading tna-form__heading--m">
46
- <label class="tna-form__label" for="tna-form__ELEMENT-ID">
46
+ <label class="tna-form__label" for="ELEMENT-ID">
47
47
  <!-- Field title -->
48
48
  </label>
49
49
  </h4>
50
50
 
51
51
  <!-- Optional hint
52
- <p id="tna-form__ELEMENT-ID-hint" class="tna-form__hint">
52
+ <p id="ELEMENT-ID-hint" class="tna-form__hint">
53
53
  [Hint text]
54
54
  </p>
55
55
  -->
56
56
 
57
57
  <!-- Optional error
58
- <p id="tna-form__ELEMENT-ID-error" class="tna-form__error-message">
58
+ <p id="ELEMENT-ID-error" class="tna-form__error-message">
59
59
  <span class="tna-!--visually-hidden">Error:</span> [Error text]
60
60
  </p>
61
61
  -->
62
62
 
63
63
  </div>
64
64
 
65
- <!-- Field id="tna-form__ELEMENT-ID"
65
+ <!-- Field id="ELEMENT-ID"
66
66
  If hint:
67
67
  aria-describedby="tna-form__ELEMENT-ID-hint"
68
68
  If error:
@@ -97,13 +97,13 @@ import * as SearchFieldStories from "../../../components/search-field/search-fie
97
97
  </legend>
98
98
 
99
99
  <!-- Optional hint
100
- <p id="tna-form__ELEMENT-ID-hint" class="tna-form__hint">
100
+ <p id="ELEMENT-ID-hint" class="tna-form__hint">
101
101
  [Hint text]
102
102
  </p>
103
103
  -->
104
104
 
105
105
  <!-- Optional error
106
- <p id="tna-form__ELEMENT-ID-error" class="tna-form__error-message">
106
+ <p id="ELEMENT-ID-error" class="tna-form__error-message">
107
107
  <span class="tna-!--visually-hidden">Error:</span> [Error text]
108
108
  </p>
109
109
  -->
@@ -0,0 +1,11 @@
1
+ import { describe, expect, test } from "@jest/globals";
2
+ import { GA4 } from "../analytics.mjs";
3
+
4
+ describe("Analytics", () => {
5
+ test("Initialisation", async () => {
6
+ const id = "example-id";
7
+ const ga4 = new GA4(id);
8
+
9
+ expect(ga4.gTagId).toEqual(id);
10
+ });
11
+ });
@@ -347,6 +347,8 @@ describe("No existing cookies", () => {
347
347
  const testKey = "foo";
348
348
  const testValue = "bar";
349
349
 
350
+ expect(mockCallback.mock.calls).toHaveLength(0);
351
+
350
352
  cookies1.set(testKey, testValue);
351
353
  expect(mockCallback.mock.calls).toHaveLength(1);
352
354
 
@@ -357,6 +359,25 @@ describe("No existing cookies", () => {
357
359
  expect(mockCallback.mock.calls).toHaveLength(3);
358
360
  });
359
361
 
362
+ test("One-time events", async () => {
363
+ const mockCallback = jest.fn();
364
+
365
+ const cookies = new Cookies();
366
+
367
+ cookies.once("setCookie", mockCallback);
368
+
369
+ const testKey = "foo";
370
+ const testValue = "bar";
371
+
372
+ expect(mockCallback.mock.calls).toHaveLength(0);
373
+
374
+ cookies.set(testKey, testValue);
375
+ expect(mockCallback.mock.calls).toHaveLength(1);
376
+
377
+ cookies.set(testKey, testValue);
378
+ expect(mockCallback.mock.calls).toHaveLength(1);
379
+ });
380
+
360
381
  test("Custom policies", async () => {
361
382
  const cookies = new Cookies({ extraPolicies: ["custom"] });
362
383
 
@@ -1,12 +1,6 @@
1
1
  import { describe, expect, test } from "@jest/globals";
2
- import { TextEncoder, TextDecoder, store, options } from "util";
3
2
  import uuidv4 from "../lib/uuid.mjs";
4
3
 
5
- global.TextEncoder = TextEncoder;
6
- global.TextDecoder = TextDecoder;
7
- global.store = store;
8
- global.options = options;
9
-
10
4
  describe("UUID", () => {
11
5
  test("Initialisation", async () => {
12
6
  const uuid1 = uuidv4();
@@ -1,6 +1,6 @@
1
1
  @use "colour";
2
2
 
3
3
  @mixin focus-outline {
4
- @include colour.colour-outline("focus-outline", 0.3125rem, solid);
5
- outline-offset: 0.125rem;
4
+ @include colour.colour-outline("focus-outline", 5px, solid);
5
+ outline-offset: 2px;
6
6
  }
@@ -1,4 +1,5 @@
1
1
  @use "sass:map";
2
+ @use "sass:list";
2
3
  @use "../variables/colour";
3
4
  @use "../tools/media";
4
5
 
@@ -6,27 +7,35 @@
6
7
  @return colour.brand-colour($colour, $opacity);
7
8
  }
8
9
 
9
- @mixin colour-css-vars() {
10
+ @mixin colour-css-vars($excludes...) {
10
11
  @each $name, $value in colour.$colour-palette-default {
11
- --#{$name}: #{$value};
12
+ @if not list.index($excludes, $name) {
13
+ --#{$name}: #{$value};
14
+ }
12
15
  }
13
16
  }
14
17
 
15
- @mixin colour-css-vars-dark() {
18
+ @mixin colour-css-vars-dark($excludes...) {
16
19
  @each $name, $value in colour.$colour-palette-dark {
17
- --#{$name}: #{$value};
20
+ @if not list.index($excludes, $name) {
21
+ --#{$name}: #{$value};
22
+ }
18
23
  }
19
24
  }
20
25
 
21
- @mixin colour-css-vars-high-contrast() {
26
+ @mixin colour-css-vars-high-contrast($excludes...) {
22
27
  @each $name, $value in colour.$colour-palette-high-contrast {
23
- --#{$name}: #{$value};
28
+ @if not list.index($excludes, $name) {
29
+ --#{$name}: #{$value};
30
+ }
24
31
  }
25
32
  }
26
33
 
27
- @mixin colour-css-vars-high-contrast-dark() {
34
+ @mixin colour-css-vars-high-contrast-dark($excludes...) {
28
35
  @each $name, $value in colour.$colour-palette-high-contrast-dark {
29
- --#{$name}: #{$value};
36
+ @if not list.index($excludes, $name) {
37
+ --#{$name}: #{$value};
38
+ }
30
39
  }
31
40
  }
32
41
 
@@ -151,14 +160,14 @@
151
160
  }
152
161
 
153
162
  %light {
154
- @include colour-css-vars;
163
+ @include colour-css-vars("form-error");
155
164
 
156
165
  @media (prefers-contrast: more) {
157
- @include colour-css-vars-high-contrast;
166
+ @include colour-css-vars-high-contrast("form-error");
158
167
  }
159
168
 
160
169
  .tna-template--high-contrast-theme & {
161
- @include colour-css-vars-high-contrast;
170
+ @include colour-css-vars-high-contrast("form-error");
162
171
  }
163
172
  }
164
173
 
@@ -167,14 +176,14 @@
167
176
  }
168
177
 
169
178
  %dark {
170
- @include colour-css-vars-dark;
179
+ @include colour-css-vars-dark("form-error");
171
180
 
172
181
  @media (prefers-contrast: more) {
173
- @include colour-css-vars-high-contrast-dark;
182
+ @include colour-css-vars-high-contrast-dark("form-error");
174
183
  }
175
184
 
176
185
  .tna-template--high-contrast-theme & {
177
- @include colour-css-vars-high-contrast-dark;
186
+ @include colour-css-vars-high-contrast-dark("form-error");
178
187
  }
179
188
  }
180
189
 
@@ -4,6 +4,12 @@
4
4
  @use "../tools/spacing";
5
5
  @use "../tools/typography";
6
6
 
7
+ button,
8
+ input,
9
+ select {
10
+ border-radius: 0.1px;
11
+ }
12
+
7
13
  .tna-form {
8
14
  &__group {
9
15
  @include spacing.space-above;
@@ -95,6 +95,8 @@ p {
95
95
  a {
96
96
  text-decoration-thickness: 1.5px;
97
97
 
98
+ border-radius: 0.1px;
99
+
98
100
  &,
99
101
  &:link {
100
102
  @include colour.colour-font("link");
@@ -116,6 +116,7 @@ $colour-palette-dark: map.merge(
116
116
  "input-foreground": brand-colour("white"),
117
117
  "input-background": brand-colour("black"),
118
118
  "input-border": brand-colour("white"),
119
+ "form-error": #ff3d3d,
119
120
  "button-text": brand-colour("black"),
120
121
  "button-background": brand-colour("white"),
121
122
  "button-hover-text": brand-colour("white"),
@@ -171,6 +172,7 @@ $colour-palette-high-contrast-dark: map.merge(
171
172
  "font-light": brand-colour("white"),
172
173
  "icon-light": brand-colour("white", 0.75),
173
174
  "keyline": brand-colour("white"),
175
+ "form-error": #ff6161,
174
176
  "contrast-background": brand-colour("black"),
175
177
  )
176
178
  ) !default;
@@ -1,2 +1,2 @@
1
- $form-field-border-width: 1px !default;
1
+ $form-field-border-width: 2px !default;
2
2
  $checkbox-checkmark-width: 0.1875rem !default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nationalarchives/frontend",
3
- "version": "0.1.40",
3
+ "version": "0.1.42",
4
4
  "description": "The National Archives frontend styles",
5
5
  "scripts": {
6
6
  "start": "storybook dev -p 6006",
@@ -10,7 +10,7 @@
10
10
  "lint:fix": "prettier --write '{src,.storybook,tasks,.}/**/*.{js,mjs,scss,json,html}' && stylelint --fix 'src/**/*.scss' && eslint --fix 'src/**/*.{js,mjs}'",
11
11
  "package:sass": "sass --style=compressed --embed-sources src/nationalarchives:package/nationalarchives",
12
12
  "package:scripts": "webpack",
13
- "validatehtml": "node tasks/generate-fixture-html.js && html-validate temp"
13
+ "validatehtml": "node tasks/generate-fixture-html.js && html-validate fixtures-html"
14
14
  },
15
15
  "repository": {
16
16
  "type": "git",
@@ -1 +0,0 @@
1
- @use "filters";
@@ -1 +0,0 @@
1
- .tna-filters__item--selected .tna-filters__link,.tna-filters__item--selected .tna-filters__link:link,.tna-filters__item--selected .tna-filters__link:visited,.tna-filters__item--selected .tna-filters__link:hover{--background: var(--accent-background);--font-base: var(--accent-font-base);--font-dark: var(--accent-font-dark);--font-light: var(--accent-font-light);--icon-light: var(--accent-icon-light);--link: var(--accent-link);--link-visited: var(--accent-link);--keyline: var(--accent-keyline);--keyline-dark: var(--accent-keyline-dark);background-color:var(--background);color:rgb(255 255 255/0.95);color:var(--font-base)}.tna-filters__link{background-color:#e4e4e4;background-color:var(--background-tint);color:#343338;color:var(--font-base)}.tna-filters__link:hover{--background: var(--accent-background-light);--font-base: #343338;--font-dark: rgb(0, 0, 0);--font-light: rgb(0 0 0/0.58);--icon-light: rgb(52 51 56/0.45);--keyline: rgb(38 38 42/0.25);--keyline-dark: #26262a;--button-text: rgb(255, 255, 255);--button-background: rgb(0, 0, 0);--button-hover-text: rgb(0, 0, 0);--button-hover-background: rgb(255, 255, 255);background-color:var(--background);color:#343338;color:var(--font-base)}@media(prefers-color-scheme: dark){.tna-template--system-theme .tna-filters__link:hover{--link: #0062a8;--link-visited: #4c2c92}}.tna-template--dark-theme .tna-filters__link:hover{--link: #0062a8;--link-visited: #4c2c92}.tna-filters{margin-top:2rem}.tna-filters:first-child{margin-top:0}.tna-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem}.tna-filters__link{padding:.125rem .75rem;text-decoration:none;border-radius:99rem}.tna-filters__link,.tna-filters__link:link,.tna-filters__link:visited{color:#343338;color:var(--font-base)}/*# sourceMappingURL=filters.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../src/nationalarchives/tools/_colour.scss","../../../../src/nationalarchives/tools/_spacing.scss","../../../../src/nationalarchives/components/filters/filters.scss"],"names":[],"mappings":"AA8QA,mNACE,uCACA,qCACA,qCACA,uCACA,uCACA,2BACA,mCACA,iCACA,2CAhMA,mCAPA,4BACA,uBAiNF,mBA7ME,yBAEA,wCAPA,cACA,uBAkOF,yBACE,6CACA,qBACA,0BACA,8BACA,iCAGA,8BACA,wBACA,kCACA,kCAIA,kCAIA,8CA/OA,mCAPA,cACA,uBA8PE,mCADF,qDAEI,gBACA,yBAIJ,mDACE,gBACA,wBCnVJ,aACE,gBAEA,yBACE,aCLJ,aAGE,aACA,eACA,gBAKA,mBACE,uBAEA,qBAUA,oBANA,sEF4DF,cACA","file":"filters.css","sourcesContent":["@use \"sass:map\";\n@use \"../variables/colour\";\n@use \"../tools/media\";\n\n@function brand-colour($colour, $opacity: 1) {\n @return colour.brand-colour($colour, $opacity);\n}\n\n@mixin colour-css-vars() {\n @each $name, $value in colour.$colour-palette-default {\n --#{$name}: #{$value};\n }\n}\n\n@mixin colour-css-vars-dark() {\n @each $name, $value in colour.$colour-palette-dark {\n --#{$name}: #{$value};\n }\n}\n\n@mixin colour-css-vars-high-contrast() {\n @each $name, $value in colour.$colour-palette-high-contrast {\n --#{$name}: #{$value};\n }\n}\n\n@mixin colour-css-vars-high-contrast-dark() {\n @each $name, $value in colour.$colour-palette-high-contrast-dark {\n --#{$name}: #{$value};\n }\n}\n\n@mixin accent-css-vars($colour) {\n @if $colour == \"yellow\" {\n --accent-background: #{brand-colour(\"yellow\")} !important;\n --accent-background-light: #{brand-colour(\"cream\")} !important;\n --accent-font-base: #{brand-colour(\"black\")} !important;\n --accent-font-dark: #{brand-colour(\"black\")} !important;\n --accent-font-light: #{brand-colour(\"black\", 0.7)} !important;\n --accent-icon-light: #{brand-colour(\"black\", 0.45)} !important;\n --accent-link: #{brand-colour(\"black\")} !important;\n --accent-link-visited: #{brand-colour(\"black\")} !important;\n --accent-keyline: #{brand-colour(\"black\", 0.5)} !important;\n --accent-keyline-dark: #{brand-colour(\"black\", 0.8)} !important;\n --button-accent-background: #{brand-colour(\"yellow\")} !important;\n } @else {\n --accent-font-base: #{brand-colour(\"white\")} !important;\n --accent-font-dark: #{brand-colour(\"white\")} !important;\n --accent-font-light: #{brand-colour(\"white\", 0.7)} !important;\n --accent-icon-light: #{brand-colour(\"white\", 0.45)} !important;\n --accent-link: #{brand-colour(\"white\")} !important;\n --accent-link-visited: #{brand-colour(\"white\")} !important;\n --accent-keyline: #{brand-colour(\"white\", 0.5)} !important;\n --accent-keyline-dark: #{brand-colour(\"white\", 0.8)} !important;\n --button-accent-text: #{brand-colour(\"white\")} !important;\n @if $colour == \"pink\" {\n --accent-background: #{brand-colour(\"maroon\")} !important;\n --accent-background-light: #{brand-colour(\"pastel-pink\")} !important;\n --button-accent-background: #{brand-colour(\"maroon\")} !important;\n } @else if $colour == \"orange\" {\n --accent-background: #{brand-colour(\"chestnut\")} !important;\n --accent-background-light: #{brand-colour(\"pastel-orange\")} !important;\n --button-accent-background: #{brand-colour(\"chestnut\")} !important;\n } @else if $colour == \"green\" {\n --accent-background: #{brand-colour(\"forest\")} !important;\n --accent-background-light: #{brand-colour(\"pastel-green\")} !important;\n --button-accent-background: #{brand-colour(\"forest\")} !important;\n } @else if $colour == \"blue\" {\n --accent-background: #{brand-colour(\"navy\")} !important;\n --accent-background-light: #{brand-colour(\"pastel-blue\")} !important;\n --button-accent-background: #{brand-colour(\"navy\")} !important;\n }\n }\n}\n\n@mixin colour-font(\n $colour,\n $important: false,\n $default-palette: colour.$colour-palette-default\n) {\n color: map.get($default-palette, $colour) if($important, !important, null);\n color: var(--#{$colour}) if($important, !important, null);\n}\n\n@mixin colour-background($colour, $important: false) {\n background-color: map.get(colour.$colour-palette-default, $colour)\n if($important, !important, null);\n background-color: var(--#{$colour}) if($important, !important, null);\n}\n\n@mixin colour-border(\n $colour,\n $width: \"\",\n $style: solid,\n $direction: \"\",\n $important: false\n) {\n @if $direction != \"\" {\n @if $width != \"\" {\n $property: border-#{$direction};\n border-#{$direction}: $width\n map.get(colour.$colour-palette-default, $colour)\n $style\n if($important, !important, null);\n border-#{$direction}: $width\n var(--#{$colour})\n $style\n if($important, !important, null);\n } @else {\n border-#{$direction}-color: map.get(\n colour.$colour-palette-default,\n $colour\n )\n if($important, !important, null);\n border-#{$direction}-color: var(--#{$colour})\n if($important, !important, null);\n }\n } @else {\n @if $width != \"\" {\n border: $width\n map.get(colour.$colour-palette-default, $colour)\n $style\n if($important, !important, null);\n border: $width var(--#{$colour}) $style if($important, !important, null);\n } @else {\n border-color: map.get(colour.$colour-palette-default, $colour)\n if($important, !important, null);\n border-color: var(--#{$colour}) if($important, !important, null);\n }\n }\n}\n\n@mixin colour-outline($colour, $width: \"\", $style: solid, $important: false) {\n @if $width != \"\" {\n outline: $width\n map.get(colour.$colour-palette-default, $colour)\n $style\n if($important, !important, null);\n outline: $width var(--#{$colour}) $style if($important, !important, null);\n } @else {\n outline-color: map.get(colour.$colour-palette-default, $colour)\n if($important, !important, null);\n outline-color: var(--#{$colour}) if($important, !important, null);\n }\n}\n\n@mixin colour-fill($colour, $important: false) {\n fill: map.get(colour.$colour-palette-default, $colour)\n if($important, !important, null);\n fill: var(--#{$colour}) if($important, !important, null);\n}\n\n%light {\n @include colour-css-vars;\n\n @media (prefers-contrast: more) {\n @include colour-css-vars-high-contrast;\n }\n\n .tna-template--high-contrast-theme & {\n @include colour-css-vars-high-contrast;\n }\n}\n\n@mixin light {\n @extend %light;\n}\n\n%dark {\n @include colour-css-vars-dark;\n\n @media (prefers-contrast: more) {\n @include colour-css-vars-high-contrast-dark;\n }\n\n .tna-template--high-contrast-theme & {\n @include colour-css-vars-high-contrast-dark;\n }\n}\n\n@mixin dark {\n @extend %dark;\n}\n\n%plain {\n .tna-template--system-theme & {\n @extend %light;\n\n @media (prefers-color-scheme: dark) {\n @include colour-css-vars-dark;\n }\n\n @media (prefers-contrast: more) and (prefers-color-scheme: dark) {\n @include colour-css-vars-high-contrast-dark;\n }\n }\n\n .tna-template--light-theme & {\n @include colour-css-vars;\n }\n\n .tna-template--dark-theme & {\n @include colour-css-vars-dark;\n }\n\n .tna-template--high-contrast-theme & {\n @include colour-css-vars-high-contrast;\n }\n\n .tna-template--high-contrast-theme.tna-template--dark-theme & {\n @include colour-css-vars-high-contrast-dark;\n }\n\n --background: var(--page-background);\n}\n\n@mixin plain {\n @extend %plain;\n}\n\n%contrast {\n --background: var(--contrast-background);\n --font-base: var(--contrast-font-base);\n --font-dark: var(--contrast-font-dark);\n --font-light: var(--contrast-font-light);\n --icon-light: var(--contrast-icon-light);\n --link: var(--contrast-link);\n --link-visited: var(--contrast-link-visited);\n --keyline: var(--contrast-keyline);\n --keyline-dark: var(--contrast-keyline-dark);\n --button-text: var(--contrast-button-text);\n --button-background: var(--contrast-button-background);\n --button-hover-text: var(--contrast-button-hover-text);\n --button-hover-background: var(--contrast-button-hover-background);\n\n @include colour-background(\"background\");\n\n @include colour-font(\"font-base\", false, colour.$colour-palette-dark);\n}\n\n@mixin contrast {\n @extend %contrast;\n}\n\n%contrast-on-mobile {\n @include media.on-mobile {\n --background: var(--contrast-background);\n --font-base: var(--contrast-font-base);\n --font-dark: var(--contrast-font-dark);\n --font-light: var(--contrast-font-light);\n --icon-light: var(--contrast-icon-light);\n --link: var(--contrast-link);\n --link-visited: var(--contrast-link-visited);\n --keyline: var(--contrast-keyline);\n --keyline-dark: var(--contrast-keyline-dark);\n --button-text: var(--contrast-button-text);\n --button-background: var(--contrast-button-background);\n --button-hover-text: var(--contrast-button-hover-text);\n --button-hover-background: var(--contrast-button-hover-background);\n\n @include colour-background(\"background\");\n\n @include colour-font(\"font-base\", false, colour.$colour-palette-dark);\n }\n}\n\n@mixin contrast-on-mobile {\n @extend %contrast-on-mobile;\n}\n\n%accent {\n --background: var(--accent-background);\n --font-base: var(--accent-font-base);\n --font-dark: var(--accent-font-dark);\n --font-light: var(--accent-font-light);\n --icon-light: var(--accent-icon-light);\n --link: var(--accent-link);\n --link-visited: var(--accent-link);\n --keyline: var(--accent-keyline);\n --keyline-dark: var(--accent-keyline-dark);\n\n @include colour-background(\"background\");\n\n @include colour-font(\"font-base\", false, colour.$colour-palette-dark);\n}\n\n@mixin accent {\n @extend %accent;\n}\n\n%tint {\n @include colour-background(\"background-tint\");\n @include colour-font(\"font-base\");\n}\n\n@mixin tint {\n @extend %tint;\n}\n\n%accent-background {\n @include colour-background(\"accent-background\");\n}\n\n@mixin accent-background {\n @extend %accent-background;\n}\n\n%accent-light {\n --background: var(--accent-background-light);\n --font-base: #{map.get(colour.$colour-palette-default, \"font-base\")};\n --font-dark: #{map.get(colour.$colour-palette-default, \"font-dark\")};\n --font-light: #{map.get(colour.$colour-palette-default, \"font-light\")};\n --icon-light: #{map.get(colour.$colour-palette-default, \"icon-light\")};\n // --link: #{map.get(colour.$colour-palette-default, \"link\")};\n // --link-visited: #{map.get(colour.$colour-palette-default, \"link-visited\")};\n --keyline: #{map.get(colour.$colour-palette-default, \"keyline\")};\n --keyline-dark: #{map.get(colour.$colour-palette-default, \"keyline-dark\")};\n --button-text: #{map.get(colour.$colour-palette-default, \"button-text\")};\n --button-background: #{map.get(\n colour.$colour-palette-default,\n \"button-background\"\n )};\n --button-hover-text: #{map.get(\n colour.$colour-palette-default,\n \"button-hover-text\"\n )};\n --button-hover-background: #{map.get(\n colour.$colour-palette-default,\n \"button-hover-background\"\n )};\n\n @include colour-background(\"background\");\n @include colour-font(\"font-base\");\n\n .tna-template--system-theme & {\n @media (prefers-color-scheme: dark) {\n --link: #{map.get(colour.$colour-palette-default, \"link\")};\n --link-visited: #{map.get(colour.$colour-palette-default, \"link-visited\")};\n }\n }\n\n .tna-template--dark-theme & {\n --link: #{map.get(colour.$colour-palette-default, \"link\")};\n --link-visited: #{map.get(colour.$colour-palette-default, \"link-visited\")};\n }\n}\n\n@mixin accent-light {\n @extend %accent-light;\n}\n\n@mixin on-high-contrast {\n .tna-template--high-contrast-theme & {\n @content;\n }\n\n .tna-template--system-theme & {\n @media (prefers-contrast: more) {\n @content;\n }\n }\n}\n\n@mixin on-forced-colours {\n @media (forced-colors: active) {\n @content;\n }\n}\n\n@mixin on-high-contrast-and-forced-colours {\n @include on-forced-colours {\n @content;\n }\n\n @include on-high-contrast {\n @content;\n }\n}\n","@use \"sass:map\";\n@use \"../variables/spacing\";\n@use \"../tools/media\";\n\n%space-above {\n margin-top: 2rem;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n@mixin space-above {\n @extend %space-above;\n}\n\n@function space($size) {\n @return map.get(spacing.$spacing, $size);\n}\n\n@function space-mobile($size) {\n @return map.get(spacing.$spacing-mobile, $size);\n}\n\n@mixin no-spacing-generator($suffix: \"\") {\n @if $suffix != \"\" {\n $suffix: \"-\" + $suffix;\n }\n @each $property in margin, padding {\n @each $direction in top, bottom {\n $combined-direction: \"\";\n @if $direction == top or $direction == bottom {\n $combined-direction: vertical;\n } @else if $direction == right or $direction == left {\n $combined-direction: horizontal;\n }\n @if $combined-direction {\n .tna-\\!--no-#{$property}-#{$direction}#{$suffix},\n .tna-\\!--no-#{$property}-#{$combined-direction}#{$suffix} {\n #{$property}-#{$direction}: 0 !important;\n }\n } @else {\n .tna-\\!--no-#{$property}-#{$direction}#{$suffix} {\n #{$property}-#{$direction}: 0 !important;\n }\n }\n }\n }\n}\n\n@mixin spacing-generator($suffix: \"\") {\n @each $property in margin, padding {\n @each $direction in top, bottom {\n @each $size, $amount in spacing.$spacing {\n @if $direction == all {\n .tna-\\!--#{$property}-#{$size} {\n #{$property}: #{$amount} !important;\n }\n } @else {\n $combined-direction: \"\";\n @if $direction == top or $direction == bottom {\n $combined-direction: vertical;\n } @else if $direction == right or $direction == left {\n $combined-direction: horizontal;\n }\n @if $combined-direction {\n .tna-\\!--#{$property}-#{$direction}-#{$size},\n .tna-\\!--#{$property}-#{$combined-direction}-#{$size} {\n #{$property}-#{$direction}: #{$amount} !important;\n }\n } @else {\n .tna-\\!--#{$property}-#{$direction}-#{$size} {\n #{$property}-#{$direction}: #{$amount} !important;\n }\n }\n }\n }\n }\n }\n\n @include media.on-mobile {\n @each $property in margin, padding {\n @each $direction in top, bottom {\n @each $size, $amount in spacing.$spacing-mobile {\n @if $direction == all {\n .tna-\\!--#{$property}-#{$size} {\n #{$property}: #{$amount} !important;\n }\n } @else {\n $combined-direction: \"\";\n @if $direction == top or $direction == bottom {\n $combined-direction: vertical;\n } @else if $direction == right or $direction == left {\n $combined-direction: horizontal;\n }\n @if $combined-direction {\n .tna-\\!--#{$property}-#{$direction}-#{$size},\n .tna-\\!--#{$property}-#{$combined-direction}-#{$size} {\n #{$property}-#{$direction}: #{$amount} !important;\n }\n } @else {\n .tna-\\!--#{$property}-#{$direction}-#{$size} {\n #{$property}-#{$direction}: #{$amount} !important;\n }\n }\n }\n }\n }\n }\n }\n}\n","@use \"../../tools/colour\";\n@use \"../../tools/spacing\";\n\n.tna-filters {\n @include spacing.space-above;\n\n display: flex;\n flex-wrap: wrap;\n gap: 0.75rem 1rem;\n\n &__item {\n }\n\n &__link {\n padding: 0.125rem 0.75rem;\n\n text-decoration: none;\n\n @include colour.tint;\n\n &,\n &:link,\n &:visited {\n @include colour.colour-font(\"font-base\");\n }\n\n border-radius: 99rem;\n\n &:hover {\n @include colour.accent-light;\n }\n }\n\n &__item--selected &__link {\n &,\n &:link,\n &:visited,\n &:hover {\n @include colour.accent;\n }\n }\n}\n"]}
@@ -1,51 +0,0 @@
1
- {
2
- "component": "filters",
3
- "fixtures": [
4
- {
5
- "name": "plain filters",
6
- "options": {
7
- "items": [
8
- {
9
- "label": "All",
10
- "href": "#?filter=all",
11
- "selected": true
12
- },
13
- {
14
- "label": "Medieval (974—1485)",
15
- "href": "#?filter=alpha"
16
- },
17
- {
18
- "label": "Early Modern (1485—1714)",
19
- "href": "#?filter=beta"
20
- },
21
- {
22
- "label": "Georgians (1714—1837)",
23
- "href": "#?filter=gamma"
24
- },
25
- {
26
- "label": "Victorians (1837—1901)",
27
- "href": "#?filter=delta"
28
- },
29
- {
30
- "label": "Early 20th century (1901—1918)",
31
- "href": "#?filter=epsilon"
32
- },
33
- {
34
- "label": "Interwar (1918—1939)",
35
- "href": "#?filter=zeta"
36
- },
37
- {
38
- "label": "Second World War (1939—1945)",
39
- "href": "#?filter=eta"
40
- },
41
- {
42
- "label": "Postwar (1945—2000)",
43
- "href": "#?filter=theta"
44
- }
45
- ]
46
- },
47
- "html": "<ul class=\"tna-filters tna-ul tna-ul--plain \"><li class=\"tna-filters__item tna-filters__item--selected\"><a href=\"#?filter=all\" class=\"tna-filters__link\">All</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=alpha\" class=\"tna-filters__link\">Medieval (974—1485)</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=beta\" class=\"tna-filters__link\">Early Modern (1485—1714)</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=gamma\" class=\"tna-filters__link\">Georgians (1714—1837)</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=delta\" class=\"tna-filters__link\">Victorians (1837—1901)</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=epsilon\" class=\"tna-filters__link\">Early 20th century (1901—1918)</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=zeta\" class=\"tna-filters__link\">Interwar (1918—1939)</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=eta\" class=\"tna-filters__link\">Second World War (1939—1945)</a></li><li class=\"tna-filters__item\"><a href=\"#?filter=theta\" class=\"tna-filters__link\">Postwar (1945—2000)</a></li></ul>",
48
- "hidden": false
49
- }
50
- ]
51
- }
@@ -1,3 +0,0 @@
1
- {% macro tnaFilters(params) %}
2
- {%- include "nationalarchives/components/filters/template.njk" -%}
3
- {% endmacro %}
@@ -1,8 +0,0 @@
1
- {%- set containerClasses = [params.classes] if params.classes else [] -%}
2
- <ul class="tna-filters{% if params.stack %} tna-filters--stacked{% endif %} tna-ul tna-ul--plain {{ containerClasses | join(' ') }}"{% for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
3
- {%- for item in params.items -%}
4
- <li class="tna-filters__item{%- if item.selected %} tna-filters__item--selected{% endif %}">
5
- <a href="{{ item.href }}" {%- if item.title %} title="{{ item.title }}"{% endif %} class="tna-filters__link">{{ item.label }}</a>
6
- </li>
7
- {%- endfor -%}
8
- </ul>