@nnc-digital/nnc-design-system 1.0.0-beta1 → 1.0.0-beta11

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 (39) hide show
  1. package/build/index.d.ts +2 -1
  2. package/build/index.js +490 -221
  3. package/build/index.js.map +1 -1
  4. package/build/index.mjs.js +490 -222
  5. package/build/index.mjs.js.map +1 -1
  6. package/build/library/components/SummaryList/SummaryList.types.d.ts +8 -0
  7. package/build/library/events/Event/Event.d.ts +4 -0
  8. package/build/library/events/Event/Event.storydata.d.ts +4 -0
  9. package/build/library/events/Event/Event.types.d.ts +206 -0
  10. package/build/library/events/Event/index.d.ts +3 -0
  11. package/build/library/events/EventList/EventList.d.ts +4 -0
  12. package/build/library/events/EventList/EventList.storydata.d.ts +3 -0
  13. package/build/library/events/EventList/EventList.types.d.ts +152 -0
  14. package/build/library/events/EventList/index.d.ts +3 -0
  15. package/build/library/events/index.d.ts +5 -0
  16. package/build/library/events/utils/EventFilters.d.ts +57 -0
  17. package/build/library/events/utils/index.d.ts +1 -0
  18. package/build/library/pages/EventPage/EventPage.d.ts +13 -0
  19. package/build/library/pages/EventPage/index.d.ts +1 -0
  20. package/build/library/slices/InquestSchedule/InquestSchedule.types.d.ts +4 -1
  21. package/build/library/slices/RoadworksList/RoadworksList.types.d.ts +4 -0
  22. package/build/src/index.d.ts +2 -1
  23. package/build/src/library/components/SummaryList/SummaryList.types.d.ts +8 -0
  24. package/build/src/library/events/Event/Event.d.ts +4 -0
  25. package/build/src/library/events/Event/Event.storydata.d.ts +4 -0
  26. package/build/src/library/events/Event/Event.types.d.ts +206 -0
  27. package/build/src/library/events/Event/index.d.ts +3 -0
  28. package/build/src/library/events/EventList/EventList.d.ts +4 -0
  29. package/build/src/library/events/EventList/EventList.storydata.d.ts +3 -0
  30. package/build/src/library/events/EventList/EventList.types.d.ts +152 -0
  31. package/build/src/library/events/EventList/index.d.ts +3 -0
  32. package/build/src/library/events/index.d.ts +5 -0
  33. package/build/src/library/events/utils/EventFilters.d.ts +57 -0
  34. package/build/src/library/events/utils/index.d.ts +1 -0
  35. package/build/src/library/pages/EventPage/EventPage.d.ts +13 -0
  36. package/build/src/library/pages/EventPage/index.d.ts +1 -0
  37. package/build/src/library/slices/InquestSchedule/InquestSchedule.types.d.ts +4 -1
  38. package/build/src/library/slices/RoadworksList/RoadworksList.types.d.ts +4 -0
  39. package/package.json +1 -1
package/build/index.js CHANGED
@@ -3887,7 +3887,7 @@ var Autocomplete = function (_a) {
3887
3887
  })));
3888
3888
  };
3889
3889
 
3890
- const Container$18 = styled__default.default.div`
3890
+ const Container$19 = styled__default.default.div`
3891
3891
  display: block;
3892
3892
  `;
3893
3893
 
@@ -3972,7 +3972,7 @@ var BackToTop = function (_a) {
3972
3972
  React.useEffect(function () {
3973
3973
  window.addEventListener('scroll', toggleVisible);
3974
3974
  });
3975
- return (React__default.default.createElement(Container$18, { "data-testid": "BackToTop" }, isActive && (React__default.default.createElement(BackToTopButton, { onClick: scrollToTop, "$visible": visible, "data-testid": "BackToTopButton", type: "button", "aria-label": "Go to the top of the page" },
3975
+ return (React__default.default.createElement(Container$19, { "data-testid": "BackToTop" }, isActive && (React__default.default.createElement(BackToTopButton, { onClick: scrollToTop, "$visible": visible, "data-testid": "BackToTopButton", type: "button", "aria-label": "Go to the top of the page" },
3976
3976
  React__default.default.createElement(ChevronIcon, { colourFill: themeContext.theme_vars.colours.white, direction: "up" })))));
3977
3977
  };
3978
3978
 
@@ -4076,9 +4076,9 @@ var Button$4 = function (_a) {
4076
4076
  return (React__default.default.createElement(StyledButton$1, __assign$2({ className: ["button--".concat(size), mode].join(' ') }, href, { title: title ? title : text, "$colourOverride": colourOverride && colourOverride }, props), text ? text : children));
4077
4077
  };
4078
4078
 
4079
- var Container$17 = styled__default.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n"], ["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n"])));
4080
- var Label$5 = styled__default.default.label(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: block;\n margin-bottom: 15px;\n"], ["\n display: block;\n margin-bottom: 15px;\n"])));
4081
- var VisuallyHiddenLabel = styled__default.default(Label$5)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n border: 0;\n white-space: nowrap;\n"], ["\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n border: 0;\n white-space: nowrap;\n"])));
4079
+ var Container$18 = styled__default.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n"], ["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n"])));
4080
+ var Label$6 = styled__default.default.label(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: block;\n margin-bottom: 15px;\n"], ["\n display: block;\n margin-bottom: 15px;\n"])));
4081
+ var VisuallyHiddenLabel = styled__default.default(Label$6)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n border: 0;\n white-space: nowrap;\n"], ["\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n border: 0;\n white-space: nowrap;\n"])));
4082
4082
  var BinCollectionButtonStyles = styled__default.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n button {\n margin: 10px 10px 12px 10px;\n }\n"], ["\n button {\n margin: 10px 10px 12px 10px;\n }\n"])));
4083
4083
  var FormContainer$1 = styled__default.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n ", "\n"], ["\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n ", "\n"])), function (props) {
4084
4084
  return props.$isLoading && "\n opacity: 0.5; \n pointer-events: none;\n ";
@@ -4091,7 +4091,7 @@ styled__default.default.div(templateObject_10 || (templateObject_10 = __makeTemp
4091
4091
  styled__default.default.input(templateObject_11 || (templateObject_11 = __makeTemplateObject([""], [""])));
4092
4092
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11;
4093
4093
 
4094
- const Container$16 = styled__default.default.div`
4094
+ const Container$17 = styled__default.default.div`
4095
4095
  display: flex;
4096
4096
  -webkit-flex-direction: row;
4097
4097
  -moz-flex-direction: row;
@@ -4128,7 +4128,7 @@ const ErrorSummary = styled__default.default.div`
4128
4128
  */
4129
4129
  var FormWithLine = function (_a) {
4130
4130
  var _b = _a.lineColour, lineColour = _b === void 0 ? '#C6C6C6' : _b, _c = _a.hideLine, hideLine = _c === void 0 ? false : _c, formRole = _a.formRole, formMethod = _a.formMethod, formURL = _a.formURL, _d = _a.isError, isError = _d === void 0 ? false : _d, errorSummary = _a.errorSummary, onSubmit = _a.onSubmit, children = _a.children;
4131
- return (React__default.default.createElement(Container$16, null,
4131
+ return (React__default.default.createElement(Container$17, null,
4132
4132
  React__default.default.createElement(Line$1, { "$lineColour": lineColour, "$hideLine": hideLine, "$isError": isError }),
4133
4133
  React__default.default.createElement(Form, { onSubmit: onSubmit, "$hideLine": hideLine, role: formRole, method: formMethod, url: formURL, "data-testid": "FormWithLine" },
4134
4134
  errorSummary && React__default.default.createElement(ErrorSummary, null, errorSummary),
@@ -4206,7 +4206,7 @@ var FormButton = function (_a) {
4206
4206
  return (React__default.default.createElement(StyledButton, __assign$2({ type: type, className: ["button--".concat(size), mode].join(' ') }, props), text));
4207
4207
  };
4208
4208
 
4209
- const Container$15 = styled__default.default.div`
4209
+ const Container$16 = styled__default.default.div`
4210
4210
  ${(props) => props.theme.fontStyles};
4211
4211
  `;
4212
4212
 
@@ -4216,7 +4216,7 @@ const hideLabel$1 = (props) => {
4216
4216
  }
4217
4217
  };
4218
4218
 
4219
- const Label$4 = styled__default.default.label`
4219
+ const Label$5 = styled__default.default.label`
4220
4220
  display: block;
4221
4221
  margin-bottom: 5px;
4222
4222
  ${hideLabel$1}
@@ -4251,8 +4251,8 @@ const Option = styled__default.default.option`
4251
4251
 
4252
4252
  var DropDownSelect = function (_a) {
4253
4253
  var id = _a.id, label = _a.label, options = _a.options, onChange = _a.onChange, selected = _a.selected, _b = _a.hideLabel, hideLabel = _b === void 0 ? false : _b;
4254
- return (React__default.default.createElement(Container$15, null,
4255
- React__default.default.createElement(Label$4, { htmlFor: id, "$hideLabel": hideLabel }, label),
4254
+ return (React__default.default.createElement(Container$16, null,
4255
+ React__default.default.createElement(Label$5, { htmlFor: id, "$hideLabel": hideLabel }, label),
4256
4256
  React__default.default.createElement(Select, { id: id, name: id, onChange: onChange && onChange, defaultValue: selected && selected }, options.map(function (option, i) { return (React__default.default.createElement(Option, { key: i, value: option.value }, option.title)); }))));
4257
4257
  };
4258
4258
 
@@ -4535,7 +4535,7 @@ var BinCollection = function (_a) {
4535
4535
  React.useEffect(function () {
4536
4536
  seenTitles.current.clear();
4537
4537
  }, [calendarEvents]);
4538
- return (React__default.default.createElement(Container$17, { "data-testid": "BinCollection" },
4538
+ return (React__default.default.createElement(Container$18, { "data-testid": "BinCollection" },
4539
4539
  React__default.default.createElement(FormWithLine, { onSubmit: handleSubmit, isError: isError, lineColour: themeContext.theme_vars.colours.$grey_dark, hideLine: true },
4540
4540
  React__default.default.createElement(FormContainer$1, { "$isLoading": isLoading },
4541
4541
  React__default.default.createElement(Heading, { level: 2, text: "Bin collection checker" }),
@@ -6642,7 +6642,7 @@ var HeadingWithIcon = function (_a) {
6642
6642
  React__default.default.createElement(Heading, { text: text, level: level })));
6643
6643
  };
6644
6644
 
6645
- const Container$14 = styled__default.default.div`
6645
+ const Container$15 = styled__default.default.div`
6646
6646
  display: flex;
6647
6647
  width: 100%;
6648
6648
  min-height: 400px;
@@ -6666,7 +6666,7 @@ var Map$1 = function (_a) {
6666
6666
  setMap(new window.google.maps.Map(ref.current, { center: center, zoom: zoom }));
6667
6667
  }
6668
6668
  }, [ref, map]);
6669
- return (React__default.default.createElement(Container$14, { "data-testid": "Map" },
6669
+ return (React__default.default.createElement(Container$15, { "data-testid": "Map" },
6670
6670
  React__default.default.createElement("div", { ref: ref }),
6671
6671
  React__default.default.Children.map(children, function (child) {
6672
6672
  if (React__default.default.isValidElement(child)) {
@@ -6727,7 +6727,7 @@ var MapMarker = function (options) {
6727
6727
  return null;
6728
6728
  };
6729
6729
 
6730
- const Container$13 = styled__default.default.div`
6730
+ const Container$14 = styled__default.default.div`
6731
6731
  ${(props) => props.theme.fontStyles};
6732
6732
  display: block;
6733
6733
  border-top: 1px solid ${(props) => props.theme.theme_vars.colours.grey};
@@ -7508,7 +7508,7 @@ var Pagination = function (_a) {
7508
7508
  }
7509
7509
  };
7510
7510
  if (numbers.length > 1) {
7511
- return (React__default.default.createElement(Container$13, { "data-testid": "Pagination", role: "navigation", "aria-label": "Pagination" },
7511
+ return (React__default.default.createElement(Container$14, { "data-testid": "Pagination", role: "navigation", "aria-label": "Pagination" },
7512
7512
  currentPage > 1 && (React__default.default.createElement(Previous, { onClick: function () { return buttonClick(currentPage - 1); }, title: "Go back a page" }, "Previous")),
7513
7513
  React__default.default.createElement(NumbersContainer, null, numbers.map(function (v, i) { return (React__default.default.createElement(NumberContainer, { key: i },
7514
7514
  v === '...' && React__default.default.createElement(Ellipsis, null, "..."),
@@ -7520,7 +7520,7 @@ var Pagination = function (_a) {
7520
7520
  return null;
7521
7521
  };
7522
7522
 
7523
- const Container$12 = styled__default.default.div`
7523
+ const Container$13 = styled__default.default.div`
7524
7524
  ${(props) => props.theme.fontStyles};
7525
7525
  margin-bottom: 30px;
7526
7526
  `;
@@ -7691,7 +7691,7 @@ var CheckboxListFilter = function (_a) {
7691
7691
  handleParams('news', [{ key: NewsArticleFilterFields.articleType.queryParamKey, value: articleTypes }], ['page']);
7692
7692
  };
7693
7693
  var backupLabel = Math.random().toString(36).substring(7);
7694
- return (React__default.default.createElement(Container$12, { "data-testid": "CheckboxListFilter" },
7694
+ return (React__default.default.createElement(Container$13, { "data-testid": "CheckboxListFilter" },
7695
7695
  React__default.default.createElement(Fieldset$2, { "aria-describedby": hintId },
7696
7696
  React__default.default.createElement(Legend$2, { "$labelHidden": labelHidden, "data-testid": "CheckboxListFilterLegend" }, label),
7697
7697
  React__default.default.createElement(Hint, { id: hintId, "$hintHidden": hintHidden, "data-testid": "CheckboxListFilterHint" }, hint),
@@ -7721,17 +7721,17 @@ const oneColStyles = (props) => {
7721
7721
 
7722
7722
  const PromotedLinks$1 = styled__default.default.div`
7723
7723
  ${(props) => props.theme.fontStyles}
7724
- margin-top: 30px;
7724
+ margin-top: 15px;
7725
7725
 
7726
7726
  @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.s}) {
7727
7727
  display: -ms-flex;
7728
7728
  display: -webkit-flex;
7729
7729
  display: flex;
7730
7730
  flex-wrap: wrap;
7731
- margin-top: 60px;
7731
+ margin-top: 30px;
7732
7732
  }
7733
7733
  @media screen and (min-width: calc(${(props) => props.theme.theme_vars.breakpoints.l} + 60px)) {
7734
- margin-top: 90px;
7734
+ margin-top: 45px;
7735
7735
  }
7736
7736
  flex-direction: ${(prop) => (prop.oneCol ? 'column' : 'inherit')};
7737
7737
  `;
@@ -7823,7 +7823,7 @@ const PromotedLink$1 = styled__default.default.a`
7823
7823
  ${oneColStyles}
7824
7824
  `;
7825
7825
 
7826
- const Container$11 = styled__default.default.div`
7826
+ const Container$12 = styled__default.default.div`
7827
7827
  box-sizing: border-box;
7828
7828
  display: flex;
7829
7829
  flex-wrap: wrap;
@@ -7846,7 +7846,7 @@ const Container$11 = styled__default.default.div`
7846
7846
 
7847
7847
  var Row$1 = function (_a) {
7848
7848
  var _b = _a.hasBorder, hasBorder = _b === void 0 ? false : _b, _c = _a.isList, isList = _c === void 0 ? false : _c, _d = _a.hasWrap, hasWrap = _d === void 0 ? true : _d, children = _a.children;
7849
- return (React__default.default.createElement(Container$11, { "data-testid": "Row", "$hasBorder": hasBorder, "$hasWrap": hasWrap, as: isList ? 'ul' : 'div' }, children));
7849
+ return (React__default.default.createElement(Container$12, { "data-testid": "Row", "$hasBorder": hasBorder, "$hasWrap": hasWrap, as: isList ? 'ul' : 'div' }, children));
7850
7850
  };
7851
7851
 
7852
7852
  const calculateWidth = (size) => {
@@ -7896,7 +7896,7 @@ const widths = (props) => {
7896
7896
  `;
7897
7897
  };
7898
7898
 
7899
- const Container$10 = styled__default.default.div`
7899
+ const Container$11 = styled__default.default.div`
7900
7900
  box-sizing: border-box;
7901
7901
  display: block;
7902
7902
  padding: ${(props) => (props.$hasPadding ? props.theme.theme_vars.spacingSizes.small : `0`)};
@@ -7907,14 +7907,14 @@ const Container$10 = styled__default.default.div`
7907
7907
 
7908
7908
  var Column = function (_a) {
7909
7909
  var _b = _a.small, small = _b === void 0 ? 'full' : _b, _c = _a.medium, medium = _c === void 0 ? 'one-half' : _c, _d = _a.large, large = _d === void 0 ? 'one-third' : _d, _e = _a.hasPadding, hasPadding = _e === void 0 ? true : _e, _f = _a.hasBorder, hasBorder = _f === void 0 ? false : _f, _g = _a.isList, isList = _g === void 0 ? false : _g, classes = _a.classes, children = _a.children;
7910
- return (React__default.default.createElement(Container$10, { "data-testid": "Column", "$small": small, "$medium": medium, "$large": large, "$hasPadding": hasPadding, "$hasBorder": hasBorder, as: isList ? 'li' : 'div', className: classes }, children));
7910
+ return (React__default.default.createElement(Container$11, { "data-testid": "Column", "$small": small, "$medium": medium, "$large": large, "$hasPadding": hasPadding, "$hasBorder": hasBorder, as: isList ? 'li' : 'div', className: classes }, children));
7911
7911
  };
7912
7912
 
7913
7913
  var PromotedLinks = function (_a) {
7914
7914
  var promotedLinksArray = _a.promotedLinksArray, oneCol = _a.oneCol;
7915
7915
  if (promotedLinksArray.length > 0) {
7916
7916
  return (React__default.default.createElement(PromotedLinks$1, { "data-testid": "PromotedLinks", "$oneCol": oneCol },
7917
- React__default.default.createElement(Row$1, { isList: true, hasWrap: false }, promotedLinksArray.map(function (link, i) { return (React__default.default.createElement(Column, { isList: true, small: "full", medium: "one-half", large: "auto", key: i },
7917
+ React__default.default.createElement(Row$1, { isList: true, hasWrap: true }, promotedLinksArray.map(function (link, i) { return (React__default.default.createElement(Column, { isList: true, small: "full", medium: "one-half", large: "one-third", key: i },
7918
7918
  React__default.default.createElement(PromotedLink$1, { "$oneCol": oneCol, href: link.url, title: link.title },
7919
7919
  React__default.default.createElement("span", null, link.title)))); }))));
7920
7920
  }
@@ -7923,7 +7923,7 @@ var PromotedLinks = function (_a) {
7923
7923
  }
7924
7924
  };
7925
7925
 
7926
- const Container$$ = styled__default.default.div`
7926
+ const Container$10 = styled__default.default.div`
7927
7927
  display: block;
7928
7928
  `;
7929
7929
 
@@ -7959,7 +7959,7 @@ const Cookies = styled__default.default.button`
7959
7959
  }
7960
7960
  `;
7961
7961
 
7962
- const Container$_ = styled__default.default.div`
7962
+ const Container$$ = styled__default.default.div`
7963
7963
  ${(props) => props.theme.fontStyles}
7964
7964
  background-color: ${(props) => props.theme.theme_vars.colours.grey_light};
7965
7965
  padding: ${(props) => props.theme.theme_vars.spacingSizes.medium} 0;
@@ -8233,18 +8233,18 @@ var CookieBanner = function (_a) {
8233
8233
  hideCookiesAcceptedConfirmationBanner();
8234
8234
  };
8235
8235
  return (React__default.default.createElement(React__default.default.Fragment, null,
8236
- showCookieBanner && (React__default.default.createElement(Container$_, { "data-testid": "CookieBanner" },
8236
+ showCookieBanner && (React__default.default.createElement(Container$$, { "data-testid": "CookieBanner" },
8237
8237
  React__default.default.createElement(CookieMessage, null,
8238
8238
  React__default.default.createElement(CookieHeading, null, title),
8239
8239
  React__default.default.createElement(CookieParagraph, null, paragraph),
8240
8240
  React__default.default.createElement(ButtonsContainer, null,
8241
8241
  React__default.default.createElement(FormButton, { primary: true, text: acceptButtonText, isDisabled: true, onClick: acceptCookies, size: "large" }),
8242
8242
  React__default.default.createElement(FormButton, { primary: true, text: rejectButtonText, isDisabled: true, onClick: rejectCookies, size: "large" }))))),
8243
- showCookiesRejectedBanner && (React__default.default.createElement(Container$_, { "data-testid": "CookieBannerRejected", id: "CookieBannerRejected" },
8243
+ showCookiesRejectedBanner && (React__default.default.createElement(Container$$, { "data-testid": "CookieBannerRejected", id: "CookieBannerRejected" },
8244
8244
  React__default.default.createElement(CookieMessage, { isInline: true },
8245
8245
  React__default.default.createElement(CookieParagraph, null, rejectConfirmationText),
8246
8246
  React__default.default.createElement(CookieHide, { onClick: hideCookiesConfirmationBanner, "aria-controls": "CookieBannerRejected", "aria-hidden": "false" }, "Hide")))),
8247
- showCookiesAcceptedBanner && (React__default.default.createElement(Container$_, { "data-testid": "CookieBannerAccepted", id: "CookieBannerAccepted" },
8247
+ showCookiesAcceptedBanner && (React__default.default.createElement(Container$$, { "data-testid": "CookieBannerAccepted", id: "CookieBannerAccepted" },
8248
8248
  React__default.default.createElement(CookieMessage, { isInline: true },
8249
8249
  React__default.default.createElement(CookieParagraph, null, acceptConfirmationText),
8250
8250
  React__default.default.createElement(CookieHide, { onClick: hideCookiesConfirmationBanner, "aria-controls": "CookieBannerAccepted", "aria-hidden": "false" }, "Hide"))))));
@@ -8266,7 +8266,7 @@ var StaticMap = function (_a) {
8266
8266
  return "&markers=size:".concat(size, "%7Ccolor:").concat(colour).concat(label, "%7C").concat(mapMarker.lat, ",").concat(mapMarker.lng);
8267
8267
  })
8268
8268
  .join('');
8269
- return (React__default.default.createElement(Container$$, { "data-testid": "StaticMap" },
8269
+ return (React__default.default.createElement(Container$10, { "data-testid": "StaticMap" },
8270
8270
  React__default.default.createElement(Message, null,
8271
8271
  React__default.default.createElement("span", null,
8272
8272
  "To interact with the map, you need to ",
@@ -8287,7 +8287,7 @@ var TextInput = function (_a) {
8287
8287
 
8288
8288
  // Accordion
8289
8289
 
8290
- const Container$Z = styled__default.default.div`
8290
+ const Container$_ = styled__default.default.div`
8291
8291
  ${(props) => props.theme.fontStyles}
8292
8292
  margin-bottom: 20px;
8293
8293
  border-bottom: 1px solid ${(props) => props.theme.theme_vars.colours.grey};
@@ -8564,7 +8564,7 @@ var Accordion$1 = function (_a) {
8564
8564
  setAccordionStates(newStatus);
8565
8565
  };
8566
8566
  var accordionId = "accordion".concat(React.useId());
8567
- return (React__default.default.createElement(Container$Z, { "data-testid": "Accordion", id: accordionId },
8567
+ return (React__default.default.createElement(Container$_, { "data-testid": "Accordion", id: accordionId },
8568
8568
  showControls && sections.length > 1 && (React__default.default.createElement(AccordionControls$1, null,
8569
8569
  React__default.default.createElement(OpenAllButton, { onClick: toggleAll, type: "button", "aria-expanded": !openAll },
8570
8570
  openAll ? 'Open all' : 'Close all',
@@ -8615,7 +8615,7 @@ var BlockQuote = function (_a) {
8615
8615
  citation && React__default.default.createElement(Citation, null, citation)));
8616
8616
  };
8617
8617
 
8618
- const Container$Y = styled__default.default.div`
8618
+ const Container$Z = styled__default.default.div`
8619
8619
  margin-bottom: 30px;
8620
8620
  display: block;
8621
8621
 
@@ -8630,11 +8630,11 @@ const Container$Y = styled__default.default.div`
8630
8630
  */
8631
8631
  var CallToAction = function (_a) {
8632
8632
  var primary = _a.primary; _a.size; var text = _a.text, url = _a.url, isExternal = _a.isExternal, isDisabled = _a.isDisabled; __rest(_a, ["primary", "size", "text", "url", "isExternal", "isDisabled"]);
8633
- return (React__default.default.createElement(Container$Y, null,
8633
+ return (React__default.default.createElement(Container$Z, null,
8634
8634
  React__default.default.createElement(Button$4, { primary: primary, size: "large", text: text, url: url, isExternal: isExternal, isDisabled: isDisabled })));
8635
8635
  };
8636
8636
 
8637
- const Container$X = styled__default.default.div`
8637
+ const Container$Y = styled__default.default.div`
8638
8638
  display: block;
8639
8639
  ${(props) => props.theme.fontStyles}
8640
8640
  `;
@@ -8810,7 +8810,7 @@ var CouncilTaxAlphabeticalDirectory = function (_a) {
8810
8810
  });
8811
8811
  return letterData;
8812
8812
  });
8813
- return (React__default.default.createElement(Container$X, { "data-testid": "AlphabeticalDirectory", ref: directoryRef },
8813
+ return (React__default.default.createElement(Container$Y, { "data-testid": "AlphabeticalDirectory", ref: directoryRef },
8814
8814
  React__default.default.createElement(React__default.default.Fragment, null,
8815
8815
  parishes.length === 0 && (React__default.default.createElement(ErrorText, null, "There was an issue fetching the parish data. Please try again later.")),
8816
8816
  parish === null ? (React__default.default.createElement(React__default.default.Fragment, null, sortedData.map(function (letter, i) { return (React__default.default.createElement(Row, { key: i },
@@ -8836,9 +8836,9 @@ var CouncilTaxAlphabeticalDirectory = function (_a) {
8836
8836
  React__default.default.createElement("td", null, Number(parish.values[band]).toLocaleString('en-GB', { style: 'currency', currency: 'GBP' })))); })))))))));
8837
8837
  };
8838
8838
 
8839
- const Container$W = styled__default.default.div``;
8839
+ const Container$X = styled__default.default.div``;
8840
8840
 
8841
- const Container$V = styled__default.default.div`
8841
+ const Container$W = styled__default.default.div`
8842
8842
  display: flex;
8843
8843
  flex-direction: column;
8844
8844
  justify-content: flex-start;
@@ -19493,7 +19493,7 @@ function markDirtyUp(node) {
19493
19493
  }
19494
19494
  }
19495
19495
 
19496
- let Container$U = class Container extends Node$1 {
19496
+ let Container$V = class Container extends Node$1 {
19497
19497
  append(...children) {
19498
19498
  for (let child of children) {
19499
19499
  let nodes = this.normalize(child, this.last);
@@ -19866,27 +19866,27 @@ let Container$U = class Container extends Node$1 {
19866
19866
  }
19867
19867
  };
19868
19868
 
19869
- Container$U.registerParse = dependant => {
19869
+ Container$V.registerParse = dependant => {
19870
19870
  parse$4 = dependant;
19871
19871
  };
19872
19872
 
19873
- Container$U.registerRule = dependant => {
19873
+ Container$V.registerRule = dependant => {
19874
19874
  Rule$4 = dependant;
19875
19875
  };
19876
19876
 
19877
- Container$U.registerAtRule = dependant => {
19877
+ Container$V.registerAtRule = dependant => {
19878
19878
  AtRule$4 = dependant;
19879
19879
  };
19880
19880
 
19881
- Container$U.registerRoot = dependant => {
19881
+ Container$V.registerRoot = dependant => {
19882
19882
  Root$6 = dependant;
19883
19883
  };
19884
19884
 
19885
- var container = Container$U;
19886
- Container$U.default = Container$U;
19885
+ var container = Container$V;
19886
+ Container$V.default = Container$V;
19887
19887
 
19888
19888
  /* c8 ignore start */
19889
- Container$U.rebuild = node => {
19889
+ Container$V.rebuild = node => {
19890
19890
  if (node.type === 'atrule') {
19891
19891
  Object.setPrototypeOf(node, AtRule$4.prototype);
19892
19892
  } else if (node.type === 'rule') {
@@ -19903,16 +19903,16 @@ Container$U.rebuild = node => {
19903
19903
 
19904
19904
  if (node.nodes) {
19905
19905
  node.nodes.forEach(child => {
19906
- Container$U.rebuild(child);
19906
+ Container$V.rebuild(child);
19907
19907
  });
19908
19908
  }
19909
19909
  };
19910
19910
 
19911
- let Container$T = container;
19911
+ let Container$U = container;
19912
19912
 
19913
19913
  let LazyResult$4, Processor$3;
19914
19914
 
19915
- let Document$3 = class Document extends Container$T {
19915
+ let Document$3 = class Document extends Container$U {
19916
19916
  constructor(defaults) {
19917
19917
  // type needs to be passed to super, otherwise child roots won't be normalized correctly
19918
19918
  super({ type: 'document', ...defaults });
@@ -20030,9 +20030,9 @@ let Result$4 = class Result {
20030
20030
  var result = Result$4;
20031
20031
  Result$4.default = Result$4;
20032
20032
 
20033
- let Container$S = container;
20033
+ let Container$T = container;
20034
20034
 
20035
- let AtRule$3 = class AtRule extends Container$S {
20035
+ let AtRule$3 = class AtRule extends Container$T {
20036
20036
  constructor(defaults) {
20037
20037
  super(defaults);
20038
20038
  this.type = 'atrule';
@@ -20052,13 +20052,13 @@ let AtRule$3 = class AtRule extends Container$S {
20052
20052
  var atRule = AtRule$3;
20053
20053
  AtRule$3.default = AtRule$3;
20054
20054
 
20055
- Container$S.registerAtRule(AtRule$3);
20055
+ Container$T.registerAtRule(AtRule$3);
20056
20056
 
20057
- let Container$R = container;
20057
+ let Container$S = container;
20058
20058
 
20059
20059
  let LazyResult$3, Processor$2;
20060
20060
 
20061
- let Root$5 = class Root extends Container$R {
20061
+ let Root$5 = class Root extends Container$S {
20062
20062
  constructor(defaults) {
20063
20063
  super(defaults);
20064
20064
  this.type = 'root';
@@ -20112,7 +20112,7 @@ Root$5.registerProcessor = dependant => {
20112
20112
  var root = Root$5;
20113
20113
  Root$5.default = Root$5;
20114
20114
 
20115
- Container$R.registerRoot(Root$5);
20115
+ Container$S.registerRoot(Root$5);
20116
20116
 
20117
20117
  let list$2 = {
20118
20118
  comma(string) {
@@ -20171,10 +20171,10 @@ let list$2 = {
20171
20171
  var list_1 = list$2;
20172
20172
  list$2.default = list$2;
20173
20173
 
20174
- let Container$Q = container;
20174
+ let Container$R = container;
20175
20175
  let list$1 = list_1;
20176
20176
 
20177
- let Rule$3 = class Rule extends Container$Q {
20177
+ let Rule$3 = class Rule extends Container$R {
20178
20178
  constructor(defaults) {
20179
20179
  super(defaults);
20180
20180
  this.type = 'rule';
@@ -20195,7 +20195,7 @@ let Rule$3 = class Rule extends Container$Q {
20195
20195
  var rule = Rule$3;
20196
20196
  Rule$3.default = Rule$3;
20197
20197
 
20198
- Container$Q.registerRule(Rule$3);
20198
+ Container$R.registerRule(Rule$3);
20199
20199
 
20200
20200
  let Declaration$2 = declaration;
20201
20201
  let tokenizer = tokenize;
@@ -20805,7 +20805,7 @@ let Parser$1 = class Parser {
20805
20805
 
20806
20806
  var parser = Parser$1;
20807
20807
 
20808
- let Container$P = container;
20808
+ let Container$Q = container;
20809
20809
  let Parser = parser;
20810
20810
  let Input$3 = input;
20811
20811
 
@@ -20844,12 +20844,12 @@ function parse$3(css, opts) {
20844
20844
  var parse_1 = parse$3;
20845
20845
  parse$3.default = parse$3;
20846
20846
 
20847
- Container$P.registerParse(parse$3);
20847
+ Container$Q.registerParse(parse$3);
20848
20848
 
20849
20849
  let { isClean, my } = symbols;
20850
20850
  let MapGenerator$1 = mapGenerator;
20851
20851
  let stringify$2 = stringify_1;
20852
- let Container$O = container;
20852
+ let Container$P = container;
20853
20853
  let Document$2 = document$1;
20854
20854
  let warnOnce$1 = warnOnce$2;
20855
20855
  let Result$3 = result;
@@ -20984,7 +20984,7 @@ let LazyResult$2 = class LazyResult {
20984
20984
 
20985
20985
  if (root && !root[my]) {
20986
20986
  /* c8 ignore next 2 */
20987
- Container$O.rebuild(root);
20987
+ Container$P.rebuild(root);
20988
20988
  }
20989
20989
  }
20990
20990
 
@@ -21654,7 +21654,7 @@ fromJSON$1.default = fromJSON$1;
21654
21654
  let CssSyntaxError = cssSyntaxError;
21655
21655
  let Declaration = declaration;
21656
21656
  let LazyResult = lazyResult;
21657
- let Container$N = container;
21657
+ let Container$O = container;
21658
21658
  let Processor = processor;
21659
21659
  let stringify = stringify_1;
21660
21660
  let fromJSON = fromJSON_1;
@@ -21734,7 +21734,7 @@ postcss.document = defaults => new Document(defaults);
21734
21734
 
21735
21735
  postcss.CssSyntaxError = CssSyntaxError;
21736
21736
  postcss.Declaration = Declaration;
21737
- postcss.Container = Container$N;
21737
+ postcss.Container = Container$O;
21738
21738
  postcss.Processor = Processor;
21739
21739
  postcss.Document = Document;
21740
21740
  postcss.Comment = Comment;
@@ -22603,7 +22603,7 @@ var sanitizeHtml$1 = sanitizeHtml_1;
22603
22603
  var Card = function (_a) {
22604
22604
  var header = _a.header, content = _a.content, footerLink = _a.footerLink, imageLarge = _a.imageLarge, imageSmall = _a.imageSmall, imageAltText = _a.imageAltText;
22605
22605
  var showContent = content || header;
22606
- return (React__default.default.createElement(Container$V, { "data-testid": "Card" },
22606
+ return (React__default.default.createElement(Container$W, { "data-testid": "Card" },
22607
22607
  imageLarge && imageSmall && (React__default.default.createElement(React__default.default.Fragment, null, footerLink ? (React__default.default.createElement(ImageLink$1, { href: footerLink.url },
22608
22608
  React__default.default.createElement(Image$4, { src: imageLarge, alt: imageAltText, srcSet: "".concat(imageSmall, " 400w, ").concat(imageLarge, " 800w"), sizes: "(max-width: 550px) 400px, 800px", loading: "lazy" }))) : (React__default.default.createElement(Image$4, { src: imageLarge, alt: imageAltText, srcSet: "".concat(imageSmall, " 400w, ").concat(imageLarge, " 800w"), sizes: "(max-width: 550px) 400px, 800px", loading: "lazy" })))),
22609
22609
  showContent && (React__default.default.createElement(Content$6, null,
@@ -22619,12 +22619,12 @@ var Card = function (_a) {
22619
22619
  */
22620
22620
  var Cards = function (_a) {
22621
22621
  var cards = _a.cards;
22622
- return (React__default.default.createElement(Container$W, { "data-testid": "Cards" },
22622
+ return (React__default.default.createElement(Container$X, { "data-testid": "Cards" },
22623
22623
  React__default.default.createElement(Row$1, null, cards.map(function (card, index) { return (React__default.default.createElement(Column, { small: "full", medium: "one-half", large: "one-third", key: index },
22624
22624
  React__default.default.createElement(Card, __assign$2({}, card)))); }))));
22625
22625
  };
22626
22626
 
22627
- const Container$M = styled__default.default.div`
22627
+ const Container$N = styled__default.default.div`
22628
22628
  margin: 25px 0;
22629
22629
  `;
22630
22630
 
@@ -22742,7 +22742,7 @@ var FileDownload = function (_a) {
22742
22742
 
22743
22743
  var DownloadableFiles = function (_a) {
22744
22744
  var files = _a.files;
22745
- return (React__default.default.createElement(Container$M, { "data-testid": "DownloadableFiles" }, files.length > 0 ?
22745
+ return (React__default.default.createElement(Container$N, { "data-testid": "DownloadableFiles" }, files.length > 0 ?
22746
22746
  files.map(function (file) { return React__default.default.createElement(FileDownload, __assign$2({ key: file.title }, file)); })
22747
22747
  :
22748
22748
  React__default.default.createElement("i", null, "No file to show")));
@@ -22843,7 +22843,7 @@ const AccessibleMapLink = styled__default.default(MapLink$1)`
22843
22843
  ${(props) => props.theme.visuallyHidden};
22844
22844
  `;
22845
22845
 
22846
- const Container$L = styled__default.default.div`
22846
+ const Container$M = styled__default.default.div`
22847
22847
  border: solid 4px;
22848
22848
  border-radius: ${(props) => props.theme.theme_vars.border_radius};
22849
22849
  border-color: ${(props) =>
@@ -22897,7 +22897,7 @@ const InnerContainer$2 = styled__default.default.div`
22897
22897
  */
22898
22898
  var AlertBannerService = function (_a) {
22899
22899
  var title = _a.title, _b = _a.hasTopSpacing, hasTopSpacing = _b === void 0 ? false : _b, _c = _a.alertType, alertType = _c === void 0 ? 'alert' : _c, children = _a.children;
22900
- return (React__default.default.createElement(Container$L, { "$alertType": alertType, "data-testid": "AlertBannerService", "$hasTopSpacing": hasTopSpacing },
22900
+ return (React__default.default.createElement(Container$M, { "$alertType": alertType, "data-testid": "AlertBannerService", "$hasTopSpacing": hasTopSpacing },
22901
22901
  React__default.default.createElement(InnerContainer$2, { "data-testid": "AlertBannerServiceInner" },
22902
22902
  (title === null || title === void 0 ? void 0 : title.trim()) && React__default.default.createElement(Heading, { text: title }),
22903
22903
  children)));
@@ -22950,7 +22950,7 @@ var GoogleMap = function (_a) {
22950
22950
  React__default.default.createElement(MapLink$1, { href: link_url }, link_title ? link_title : 'Google Maps link')))));
22951
22951
  };
22952
22952
 
22953
- const Container$K = styled__default.default.figure`
22953
+ const Container$L = styled__default.default.figure`
22954
22954
  display: block;
22955
22955
  background: ${(props) =>
22956
22956
  props.theme.cardinal_name === 'north'
@@ -23617,7 +23617,7 @@ var LazyImage = /*@__PURE__*/getDefaultExportFromCjs(lib$1);
23617
23617
  */
23618
23618
  var Image$2 = function (_a) {
23619
23619
  var imageSmall = _a.imageSmall, imageLarge = _a.imageLarge, imageAltText = _a.imageAltText, _b = _a.ratio, ratio = _b === void 0 ? '4by3' : _b, caption = _a.caption, wrapText = _a.wrapText;
23620
- return (React__default.default.createElement(Container$K, { "data-testid": "Image", "$wrapText": wrapText },
23620
+ return (React__default.default.createElement(Container$L, { "data-testid": "Image", "$wrapText": wrapText },
23621
23621
  React__default.default.createElement(ImageContainer$4, { "data-testid": "ImageContainer", "$ratio": ratio },
23622
23622
  React__default.default.createElement(LazyImage, { placeholder: imageSmall, src: imageLarge, visibilitySensorProps: {
23623
23623
  partialVisibility: true,
@@ -23625,7 +23625,7 @@ var Image$2 = function (_a) {
23625
23625
  (caption === null || caption === void 0 ? void 0 : caption.trim()) && React__default.default.createElement(Caption, null, caption)));
23626
23626
  };
23627
23627
 
23628
- const Container$J = styled__default.default.div`
23628
+ const Container$K = styled__default.default.div`
23629
23629
  display: block;
23630
23630
  `;
23631
23631
 
@@ -23646,7 +23646,7 @@ const Content$5 = styled__default.default.div`
23646
23646
  */
23647
23647
  var ImageAndText = function (_a) {
23648
23648
  var heading = _a.heading, textContent = _a.textContent, image = _a.image;
23649
- return (React__default.default.createElement(Container$J, { "data-testid": "ImageAndText" },
23649
+ return (React__default.default.createElement(Container$K, { "data-testid": "ImageAndText" },
23650
23650
  React__default.default.createElement(Row$1, null,
23651
23651
  heading && (React__default.default.createElement(Column, { small: "full", medium: "full", large: "full" },
23652
23652
  React__default.default.createElement(HeadingContainer, null,
@@ -23661,12 +23661,14 @@ var ImageAndText = function (_a) {
23661
23661
 
23662
23662
  var CaseAppointmentType;
23663
23663
  (function (CaseAppointmentType) {
23664
- CaseAppointmentType["Hearing"] = "hearing";
23664
+ CaseAppointmentType["Formal"] = "formal";
23665
+ CaseAppointmentType["Hearing"] = "inquest hearing";
23665
23666
  CaseAppointmentType["Opening"] = "opening";
23667
+ CaseAppointmentType["PreInquest"] = "pre-inquest review";
23666
23668
  CaseAppointmentType["Writing"] = "writing";
23667
23669
  })(CaseAppointmentType || (CaseAppointmentType = {}));
23668
23670
 
23669
- const Container$I = styled__default.default.div`
23671
+ const Container$J = styled__default.default.div`
23670
23672
  display: block;
23671
23673
  box-sizing: border-box;
23672
23674
  `;
@@ -23679,28 +23681,170 @@ const GroupContainer = styled__default.default.div`
23679
23681
 
23680
23682
  const InquestContainer = styled__default.default.div`
23681
23683
  display: flex;
23682
- flex-direction: row;
23684
+ flex-direction: column;
23683
23685
  align-items: flex-start;
23684
23686
  justify-content: flex-start;
23685
23687
  flex-wrap: wrap;
23686
-
23687
- @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.m}) {
23688
- flex-wrap: nowrap;
23689
- }
23690
23688
  `;
23691
23689
 
23692
- const InquestTime = styled__default.default.div`
23693
- flex-grow: 0;
23690
+ styled__default.default.div`
23691
+ flex-grow: 1;
23694
23692
  flex-shrink: 0;
23693
+
23694
+ strong {
23695
+ display: block;
23696
+ &::first-letter {
23697
+ text-transform: capitalize;
23698
+ }
23699
+ }
23695
23700
  `;
23696
23701
 
23697
23702
  const InquestDetails = styled__default.default.div`
23698
23703
  flex-grow: 1;
23704
+ h3 {
23705
+ display: block;
23706
+ &::first-letter {
23707
+ text-transform: capitalize;
23708
+ }
23709
+ }
23710
+ `;
23711
+
23712
+ const SummaryContainer = styled__default.default.div`
23713
+ border: ${(props) => (props.$hasHeading ? `1px solid ${props.theme.theme_vars.colours.grey}` : `none`)};
23714
+ margin: ${(props) => (props.$hasMargin ? props.theme.theme_vars.spacingSizes.medium : 0)} 0;
23715
+ `;
23716
+
23717
+ const SummaryHeading = styled__default.default.div`
23718
+ background-color: ${(props) => props.theme.theme_vars.colours.grey_light};
23719
+ width: 100%;
23720
+ padding: ${(props) => props.theme.theme_vars.spacingSizes.small};
23721
+ margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.medium};
23722
+
23723
+ h3 {
23724
+ margin: 0;
23725
+ }
23726
+ `;
23727
+
23728
+ const SummaryList$1 = styled__default.default.dl`
23729
+ display: table;
23730
+ width: 100%;
23731
+ table-layout: fixed;
23732
+ border-collapse: collapse;
23733
+ `;
23734
+
23735
+ const SummaryRow = styled__default.default.div`
23736
+ border-bottom: ${(props) => props.$hasBorders ? `1px solid ${props.theme.theme_vars.colours.grey}` : 'none'};
23737
+ margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.small};
23738
+
23699
23739
  @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.m}) {
23700
- padding-left: ${(props) => props.theme.theme_vars.spacingSizes.small};
23740
+ display: table-row;
23741
+ }
23742
+
23743
+ @media print {
23744
+ display: table-row;
23745
+ border-bottom: none;
23701
23746
  }
23702
23747
  `;
23703
23748
 
23749
+ const SummaryTerm = styled__default.default.dt`
23750
+ margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.small};
23751
+ font-weight: bold;
23752
+
23753
+ @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.m}) {
23754
+ display: table-cell;
23755
+ padding: ${(props) => props.theme.theme_vars.spacingSizes.small};
23756
+ width: 30%;
23757
+ vertical-align: middle;
23758
+ }
23759
+
23760
+ @media print {
23761
+ display: table-cell;
23762
+ width: 30%;
23763
+ }
23764
+ `;
23765
+
23766
+ const SummaryDetail = styled__default.default.dd`
23767
+ overflow-wrap: break-word;
23768
+ width: 100%;
23769
+ margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.small};
23770
+
23771
+ @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.m}) {
23772
+ display: table-cell;
23773
+ width: 70%;
23774
+ padding: ${(props) => props.theme.theme_vars.spacingSizes.small};
23775
+ }
23776
+
23777
+ @media print {
23778
+ display: table-cell;
23779
+ width: 70%;
23780
+ }
23781
+ `;
23782
+
23783
+ var SummaryList = function (_a) {
23784
+ var terms = _a.terms, _b = _a.hasMargin, hasMargin = _b === void 0 ? true : _b, _c = _a.hasBorders, hasBorders = _c === void 0 ? true : _c, heading = _a.heading;
23785
+ return (React__default.default.createElement(SummaryContainer, { "$hasHeading": heading, "$hasMargin": hasMargin },
23786
+ heading && (React__default.default.createElement(SummaryHeading, null,
23787
+ React__default.default.createElement(Heading, { level: 3, text: heading }))),
23788
+ React__default.default.createElement(SummaryList$1, { "data-testid": "SummaryList" }, terms.map(function (summaryRow, summaryIndex) { return (React__default.default.createElement(SummaryRow, { key: summaryIndex, "$hasBorders": hasBorders },
23789
+ React__default.default.createElement(SummaryTerm, null, summaryRow.term),
23790
+ React__default.default.createElement(SummaryDetail, { dangerouslySetInnerHTML: { __html: sanitizeHtml$1(summaryRow.detail) } }))); }))));
23791
+ };
23792
+
23793
+ /**
23794
+ * Format a date string to a readable date format
23795
+ * @param {string} dateString - The date string to format
23796
+ * @returns {string} Formatted date
23797
+ */
23798
+ const formatDate = (dateString) => {
23799
+ const date = new Date(dateString);
23800
+ return date
23801
+ .toLocaleDateString('en-GB', {
23802
+ weekday: 'long',
23803
+ day: 'numeric',
23804
+ month: 'long',
23805
+ year: 'numeric',
23806
+ })
23807
+ .replace(',', '');
23808
+ };
23809
+
23810
+ /**
23811
+ * Format a date string to a time format
23812
+ * @param {string} dateString - The date string to format
23813
+ * @returns {string} Formatted time
23814
+ */
23815
+ const formatTime = (dateString) => {
23816
+ const date = new Date(dateString);
23817
+ const hours = date.getHours();
23818
+ const minutes = date.getMinutes();
23819
+
23820
+ // Convert to 12-hour format
23821
+ const hour12 = hours === 0 ? 12 : hours > 12 ? hours - 12 : hours;
23822
+ const ampm = hours < 12 ? 'am' : 'pm';
23823
+
23824
+ // Only show minutes if not zero
23825
+ if (minutes === 0) {
23826
+ return `${hour12}${ampm}`;
23827
+ } else {
23828
+ return `${hour12}:${minutes.toString().padStart(2, '0')}${ampm}`;
23829
+ }
23830
+ };
23831
+
23832
+ /**
23833
+ * Format a date string to a date and time format
23834
+ * @param {string} dateString - The date string to format
23835
+ * @returns {string} Formatted date and time
23836
+ */
23837
+ const formatDateTime = (dateString) => {
23838
+ const date = new Date(dateString);
23839
+ return date.toLocaleDateString('en-GB', {
23840
+ day: 'numeric',
23841
+ month: 'long',
23842
+ year: 'numeric',
23843
+ hour: '2-digit',
23844
+ minute: '2-digit',
23845
+ });
23846
+ };
23847
+
23704
23848
  /**
23705
23849
  * A table displaying a schedule of inquests
23706
23850
  */
@@ -23709,12 +23853,18 @@ var InquestSchedule = function (_a) {
23709
23853
  var hearings = caseAppointments.filter(function (appointment) {
23710
23854
  return appointment.appointmentType.toLowerCase().includes(CaseAppointmentType.Hearing);
23711
23855
  });
23856
+ var preInquest = caseAppointments.filter(function (appointment) {
23857
+ return appointment.appointmentType.toLowerCase().includes(CaseAppointmentType.PreInquest);
23858
+ });
23712
23859
  var openings = caseAppointments.filter(function (appointment) {
23713
23860
  return appointment.appointmentType.toLowerCase().includes(CaseAppointmentType.Opening);
23714
23861
  });
23715
23862
  var writings = caseAppointments.filter(function (appointment) {
23716
23863
  return appointment.appointmentType.toLowerCase().includes(CaseAppointmentType.Writing);
23717
23864
  });
23865
+ var formal = caseAppointments.filter(function (appointment) {
23866
+ return appointment.appointmentType.toLowerCase().includes(CaseAppointmentType.Formal);
23867
+ });
23718
23868
  var groupHearingsByDay = function (appointments) {
23719
23869
  return appointments.reduce(function (acc, inquest) {
23720
23870
  var inquestDate = new Date(inquest.startDateTime);
@@ -23727,82 +23877,78 @@ var InquestSchedule = function (_a) {
23727
23877
  }, {});
23728
23878
  };
23729
23879
  var hearingDayGrouped = groupHearingsByDay(hearings);
23880
+ var preInquestDayGrouped = groupHearingsByDay(preInquest);
23730
23881
  var openingDayGrouped = groupHearingsByDay(openings);
23731
23882
  var writingDayGrouped = groupHearingsByDay(writings);
23732
- var formatDate = function (inquestDay) {
23733
- return inquestDay
23734
- .toLocaleDateString('en-GB', {
23735
- weekday: 'long',
23736
- day: 'numeric',
23737
- month: 'long',
23738
- year: 'numeric',
23739
- })
23740
- .replace(',', '');
23741
- };
23742
- var formatTime = function (inquestDate) {
23743
- return inquestDate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
23744
- };
23883
+ var formalDayGrouped = groupHearingsByDay(formal);
23745
23884
  var transformToSections = function (groupedData) {
23746
23885
  return Object.keys(groupedData).map(function (day) {
23747
- var inquestDayDate = new Date(day);
23748
23886
  return {
23749
- title: formatDate(inquestDayDate),
23887
+ title: formatDate(day),
23750
23888
  content: (React__default.default.createElement(Row$1, null, groupedData[day]
23751
23889
  .sort(function (a, b) {
23752
23890
  return new Date(a.startDateTime).getTime() - new Date(b.startDateTime).getTime();
23753
23891
  })
23754
23892
  .map(function (inquest, key) {
23755
- var startDateTime = new Date(inquest.startDateTime);
23756
- var timeOfDeath = new Date(inquest.dateTimeOfDeath);
23893
+ var terms = [
23894
+ {
23895
+ term: 'Name',
23896
+ detail: inquest.fullName,
23897
+ },
23898
+ {
23899
+ term: 'Died',
23900
+ detail: formatDate(inquest.dateTimeOfDeath) +
23901
+ ' at ' +
23902
+ inquest.placeOfDeath +
23903
+ '. Aged ' +
23904
+ inquest.age +
23905
+ ' years.',
23906
+ },
23907
+ {
23908
+ term: 'Court location',
23909
+ detail: inquest.courtroomFullAddress + '.',
23910
+ },
23911
+ {
23912
+ term: 'Coroner',
23913
+ detail: inquest.coroner + '.',
23914
+ },
23915
+ ];
23916
+ if (inquest.endDateTime) {
23917
+ terms.push({
23918
+ term: 'End date',
23919
+ detail: formatDateTime(inquest.endDateTime) + '.',
23920
+ });
23921
+ }
23757
23922
  return (React__default.default.createElement(Column, { small: "full", medium: "full", large: "full", key: key },
23758
23923
  React__default.default.createElement(InquestContainer, null,
23759
- React__default.default.createElement(InquestTime, null,
23760
- React__default.default.createElement("strong", null, formatTime(startDateTime))),
23761
23924
  React__default.default.createElement(InquestDetails, null,
23762
- React__default.default.createElement("strong", null, "Name:"),
23763
- " ",
23764
- inquest.fullName,
23765
- ".",
23766
- React__default.default.createElement("br", null),
23767
- React__default.default.createElement("strong", null, "Died:"),
23768
- " ",
23769
- formatDate(timeOfDeath),
23770
- " at ",
23771
- inquest.placeOfDeath,
23772
- ". Aged ",
23773
- inquest.age,
23774
- ' ',
23775
- "years.",
23776
- React__default.default.createElement("br", null),
23777
- React__default.default.createElement("strong", null, "Court location:"),
23778
- " ",
23779
- inquest.courtroomFullAddress,
23780
- ".",
23781
- React__default.default.createElement("br", null),
23782
- React__default.default.createElement("strong", null, "Coroner:"),
23783
- " ",
23784
- inquest.coroner,
23785
- "."))));
23925
+ React__default.default.createElement(SummaryList, { terms: terms, hasBorders: false, heading: formatTime(inquest.startDateTime) })))));
23786
23926
  }))),
23787
23927
  };
23788
23928
  });
23789
23929
  };
23790
- return (React__default.default.createElement(Container$I, { "data-testid": "InquestSchedule" },
23930
+ return (React__default.default.createElement(Container$J, { "data-testid": "InquestSchedule" },
23791
23931
  Object.keys(hearingDayGrouped).length > 0 && (React__default.default.createElement(GroupContainer, null,
23792
23932
  React__default.default.createElement(Heading, { level: 2, text: title }),
23793
23933
  React__default.default.createElement(Accordion$1, { sections: transformToSections(hearingDayGrouped) }))),
23794
23934
  Object.keys(openingDayGrouped).length > 0 && (React__default.default.createElement(GroupContainer, null,
23795
23935
  React__default.default.createElement(Heading, { level: 2, text: "Inquest Openings" }),
23796
23936
  React__default.default.createElement(Accordion$1, { sections: transformToSections(openingDayGrouped) }))),
23937
+ Object.keys(preInquestDayGrouped).length > 0 && (React__default.default.createElement(GroupContainer, null,
23938
+ React__default.default.createElement(Heading, { level: 2, text: "Pre-inquest Review Hearings" }),
23939
+ React__default.default.createElement(Accordion$1, { sections: transformToSections(preInquestDayGrouped) }))),
23797
23940
  Object.keys(writingDayGrouped).length > 0 && (React__default.default.createElement(GroupContainer, null,
23798
23941
  React__default.default.createElement(Heading, { level: 2, text: "Inquests in Writing" }),
23799
23942
  React__default.default.createElement(Accordion$1, { sections: transformToSections(writingDayGrouped) }))),
23943
+ Object.keys(formalDayGrouped).length > 0 && (React__default.default.createElement(GroupContainer, null,
23944
+ React__default.default.createElement(Heading, { level: 2, text: "Formal Suspension Hearings" }),
23945
+ React__default.default.createElement(Accordion$1, { sections: transformToSections(formalDayGrouped) }))),
23800
23946
  caseAppointments.length === 0 && (React__default.default.createElement("div", null,
23801
23947
  React__default.default.createElement("p", null, "We can't find any results at the moment."),
23802
23948
  error ? (React__default.default.createElement("p", null, " The information is currently unavailable.")) : (React__default.default.createElement("p", null, "There are no inquests scheduled for next month."))))));
23803
23949
  };
23804
23950
 
23805
- const Container$H = styled__default.default.div`
23951
+ const Container$I = styled__default.default.div`
23806
23952
  ${(props) => props.theme.fontStyles};
23807
23953
  overflow: hidden;
23808
23954
  margin: 40px auto 5px auto;
@@ -23882,7 +24028,7 @@ const CTA = styled__default.default.a`
23882
24028
  */
23883
24029
  var PromoBanner = function (_a) {
23884
24030
  var title = _a.title, image1440x810 = _a.image1440x810, image144x81 = _a.image144x81, ctaText = _a.ctaText, ctaUrl = _a.ctaUrl, children = _a.children;
23885
- return (React__default.default.createElement(Container$H, null,
24031
+ return (React__default.default.createElement(Container$I, null,
23886
24032
  React__default.default.createElement(LazyImage, { src: image1440x810, placeholder: image144x81, visibilitySensorProps: {
23887
24033
  partialVisibility: true,
23888
24034
  } }, function (src) { return React__default.default.createElement(ImageLink, { "$img": src, href: ctaUrl, title: ctaText }); }),
@@ -24094,6 +24240,191 @@ var Promotions = function (_a) {
24094
24240
  numberOfPromos > 1 && React__default.default.createElement(PromoBlock, { promos: promos.slice(1, numberOfPromos) })));
24095
24241
  };
24096
24242
 
24243
+ const Container$H = styled__default.default.div`
24244
+ display: block;
24245
+ `;
24246
+
24247
+ const Label$4 = styled__default.default.label`
24248
+ margin-bottom: 5px;
24249
+ font-weight: bold;
24250
+ `;
24251
+
24252
+ const RoadworkList = styled__default.default.ul`
24253
+ list-style: none;
24254
+ margin: 0;
24255
+ padding: 0;
24256
+ max-width: 100% !important;
24257
+ `;
24258
+
24259
+ const Roadwork = styled__default.default.li`
24260
+ display: block;
24261
+ width: 100%;
24262
+ margin-left: 0;
24263
+ margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.medium} !important;
24264
+ padding: ${(props) => `${props.theme.theme_vars.spacingSizes.small} ${props.theme.theme_vars.spacingSizes.medium}`};
24265
+ left: 0;
24266
+ box-shadow: 1px 1px 5px 1px rgba(0, 0, 0, 0.2);
24267
+ border-radius: ${(props) => props.theme.theme_vars.border_radius};
24268
+ background-color: ${(props) =>
24269
+ props.theme.cardinal_name === 'west'
24270
+ ? props.theme.theme_vars.colours.grey_light + '7a'
24271
+ : props.theme.theme_vars.colours.white};
24272
+
24273
+ h3 {
24274
+ margin-top: ${(props) => props.theme.theme_vars.spacingSizes.medium} !important;
24275
+ }
24276
+ `;
24277
+
24278
+ const IconContainer$2 = styled__default.default.div`
24279
+ display: flex;
24280
+ flex-wrap: nowrap;
24281
+ flex-direction: row;
24282
+ justify-content: flex-start;
24283
+ align-items: center;
24284
+ margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.small};
24285
+
24286
+ &:last-of-type {
24287
+ margin-bottom: 0;
24288
+ }
24289
+
24290
+ & span svg {
24291
+ vertical-align: middle;
24292
+ }
24293
+ `;
24294
+
24295
+ const IconText = styled__default.default.div`
24296
+ padding-left: ${(props) => props.theme.theme_vars.spacingSizes.small};
24297
+ `;
24298
+
24299
+ const NoMatches = styled__default.default.p`
24300
+ padding: ${(props) => props.theme.theme_vars.spacingSizes.small} 0;
24301
+ `;
24302
+
24303
+ const RoadworkLink = styled__default.default.a`
24304
+ color: ${(props) => props.theme.theme_vars.colours.action};
24305
+ text-decoration: underline;
24306
+
24307
+ &:hover {
24308
+ text-decoration: none;
24309
+ }
24310
+
24311
+ &:focus {
24312
+ outline: 3px solid ${(props) => props.theme.theme_vars.colours.focus};
24313
+ outline-offset: 0;
24314
+ background-color: ${(props) => props.theme.theme_vars.colours.focus};
24315
+ color: ${(props) => props.theme.theme_vars.colours.black};
24316
+ text-decoration: none;
24317
+ }
24318
+
24319
+ &:visited {
24320
+ color: ${(props) => props.theme.theme_vars.colours.action_dark};
24321
+ }
24322
+
24323
+ h3 {
24324
+ color: inherit;
24325
+ }
24326
+ `;
24327
+
24328
+ /**
24329
+ * Primary UI component for user interaction
24330
+ * If value is set then treat as controlled component
24331
+ */
24332
+ var Input = function (_a) {
24333
+ var _b = _a.type, type = _b === void 0 ? 'text' : _b, _c = _a.placeholder, placeholder = _c === void 0 ? '' : _c, _d = _a.isErrored, isErrored = _d === void 0 ? false : _d, errorText = _a.errorText, name = _a.name, maxLength = _a.maxLength, defaultValue = _a.defaultValue, onChange = _a.onChange, id = _a.id, value = _a.value, autocomplete = _a.autocomplete, _e = _a.isFullWidth, isFullWidth = _e === void 0 ? false : _e;
24334
+ return (React__default.default.createElement(React__default.default.Fragment, null,
24335
+ errorText && React__default.default.createElement(ErrorText$1, null, errorText),
24336
+ typeof value !== 'undefined' ? (React__default.default.createElement(StyledInput, { onChange: onChange, type: type, placeholder: placeholder, name: name, "$isErrored": isErrored, maxLength: maxLength, value: value, id: id, autoComplete: autocomplete, "$isFullWidth": isFullWidth })) : (React__default.default.createElement(StyledInput, { onChange: onChange, type: type, placeholder: placeholder, name: name, "$isErrored": isErrored, maxLength: maxLength, defaultValue: defaultValue, id: id, autoComplete: autocomplete, "$isFullWidth": isFullWidth }))));
24337
+ };
24338
+
24339
+ /**
24340
+ * A filterable list of roadworks
24341
+ */
24342
+ var RoadworksList = function (_a) {
24343
+ var roadworks = _a.roadworks, title = _a.title;
24344
+ var _b = React.useState(roadworks), filteredRoadworks = _b[0], setFilteredRoadworks = _b[1];
24345
+ // Helper function to remove trailing dot if it's the last character
24346
+ var removeTrailingDot = function (text) {
24347
+ return (text === null || text === void 0 ? void 0 : text.endsWith('.')) ? text.slice(0, -1) : text;
24348
+ };
24349
+ var handleSearch = function (e) {
24350
+ var searchTerm = e.target.value.toLowerCase();
24351
+ if (searchTerm != '') {
24352
+ var updatedRoadworks = roadworks.filter(function (roadwork) {
24353
+ return (roadwork.description.toLowerCase().includes(searchTerm) ||
24354
+ roadwork.detailedLocation.toLocaleLowerCase().includes(searchTerm) ||
24355
+ roadwork.trafficManagement.toLowerCase().includes(searchTerm));
24356
+ });
24357
+ setFilteredRoadworks(updatedRoadworks);
24358
+ }
24359
+ else {
24360
+ setFilteredRoadworks(roadworks);
24361
+ }
24362
+ };
24363
+ // Format the time to match Gov UK style guide
24364
+ // https://www.gov.uk/guidance/style-guide/a-to-z#times
24365
+ var formatTime = function (dayJsInstance) {
24366
+ if (dayJsInstance.format('HH:mm') === '00:00') {
24367
+ return 'midnight';
24368
+ }
24369
+ if (dayJsInstance.format('HH:mm') === '12:00') {
24370
+ return 'midday';
24371
+ }
24372
+ if (dayJsInstance.format('mm') === '00') {
24373
+ return dayJsInstance.format('ha');
24374
+ }
24375
+ else {
24376
+ return dayJsInstance.format('h:mma');
24377
+ }
24378
+ };
24379
+ // Format the time to match the Gov UK style guide
24380
+ // https://www.gov.uk/guidance/style-guide/a-to-z#dates
24381
+ var formatDate = function (startTime, endTime) {
24382
+ if (!endTime) {
24383
+ return dayjs(startTime).format('dddd D MMMM YYYY') + ' at ' + formatTime(dayjs(startTime));
24384
+ }
24385
+ else {
24386
+ var endDate = dayjs(endTime);
24387
+ var startDate = dayjs(startTime);
24388
+ if (startDate.format('YYYY-MM-DD') === endDate.format('YYYY-MM-DD')) {
24389
+ if (startDate.format('HH:mm') === '00:00' && endDate.format('HH:mm') === '23:59') {
24390
+ return "".concat(startDate.format('dddd D MMMM YYYY'), " - all day");
24391
+ }
24392
+ return "".concat(startDate.format('dddd D MMMM YYYY'), " at ").concat(formatTime(startDate), " to ").concat(formatTime(endDate));
24393
+ }
24394
+ else {
24395
+ return "".concat(startDate.format('dddd D MMMM YYYY'), " at ").concat(formatTime(startDate), " to ").concat(endDate.format('dddd D MMMM YYYY'), " at ").concat(formatTime(endDate));
24396
+ }
24397
+ }
24398
+ };
24399
+ return (React__default.default.createElement(Container$H, { "data-testid": "RoadworksList" },
24400
+ React__default.default.createElement(Heading, { level: 2, text: title }),
24401
+ React__default.default.createElement(Label$4, { htmlFor: "roadworksSearch" }, "Search roadworks"),
24402
+ React__default.default.createElement(Input, { id: "roadworksSearch", name: "roadworksSearch", type: "text", placeholder: "Enter a search term", maxLength: 255, onChange: handleSearch, isFullWidth: true }),
24403
+ React__default.default.createElement(RoadworkList, null, filteredRoadworks.map(function (roadwork, index) {
24404
+ var startDate = new Date(roadwork.startTime);
24405
+ var endDate = new Date(roadwork.endTime);
24406
+ return (React__default.default.createElement(Roadwork, { key: index },
24407
+ React__default.default.createElement(IconContainer$2, null,
24408
+ React__default.default.createElement(DynamicIcon, { icon: "mappin" }),
24409
+ React__default.default.createElement(IconText, null, roadwork.urlLinkAddress ? (React__default.default.createElement(RoadworkLink, { href: roadwork.urlLinkAddress, target: "_blank", rel: "noopener noreferrer" },
24410
+ React__default.default.createElement(Heading, { text: removeTrailingDot(roadwork.detailedLocation), level: 3 }))) : (React__default.default.createElement(Heading, { text: removeTrailingDot(roadwork.detailedLocation), level: 3 })))),
24411
+ React__default.default.createElement(IconContainer$2, null,
24412
+ React__default.default.createElement(DynamicIcon, { icon: "events" }),
24413
+ React__default.default.createElement(IconText, null,
24414
+ React__default.default.createElement("span", null, formatDate(startDate, endDate)))),
24415
+ React__default.default.createElement(IconContainer$2, null,
24416
+ React__default.default.createElement(DynamicIcon, { icon: "roadworks" }),
24417
+ React__default.default.createElement(IconText, null,
24418
+ React__default.default.createElement("span", null, removeTrailingDot(roadwork.description)))),
24419
+ React__default.default.createElement(IconContainer$2, null,
24420
+ React__default.default.createElement(DynamicIcon, { icon: "bollard" }),
24421
+ React__default.default.createElement(IconText, null,
24422
+ React__default.default.createElement("span", null, removeTrailingDot(roadwork.trafficManagement))))));
24423
+ })),
24424
+ roadworks.length > 0 && filteredRoadworks.length === 0 && (React__default.default.createElement(NoMatches, null, "We couldn't find any results for your search term. Please try a different search.")),
24425
+ roadworks.length == 0 && (React__default.default.createElement(NoMatches, null, "Sorry, we're not able to find any results at the moment. Please try again later."))));
24426
+ };
24427
+
24097
24428
  const Container$G = styled__default.default.div`
24098
24429
  padding: 0;
24099
24430
  margin: ${(props) => props.theme.theme_vars.spacingSizes.medium} 0;
@@ -24212,17 +24543,6 @@ const SubmitButton = styled__default.default.input`
24212
24543
  }
24213
24544
  `;
24214
24545
 
24215
- /**
24216
- * Primary UI component for user interaction
24217
- * If value is set then treat as controlled component
24218
- */
24219
- var Input = function (_a) {
24220
- var _b = _a.type, type = _b === void 0 ? 'text' : _b, _c = _a.placeholder, placeholder = _c === void 0 ? '' : _c, _d = _a.isErrored, isErrored = _d === void 0 ? false : _d, errorText = _a.errorText, name = _a.name, maxLength = _a.maxLength, defaultValue = _a.defaultValue, onChange = _a.onChange, id = _a.id, value = _a.value, autocomplete = _a.autocomplete, _e = _a.isFullWidth, isFullWidth = _e === void 0 ? false : _e;
24221
- return (React__default.default.createElement(React__default.default.Fragment, null,
24222
- errorText && React__default.default.createElement(ErrorText$1, null, errorText),
24223
- typeof value !== 'undefined' ? (React__default.default.createElement(StyledInput, { onChange: onChange, type: type, placeholder: placeholder, name: name, "$isErrored": isErrored, maxLength: maxLength, value: value, id: id, autoComplete: autocomplete, "$isFullWidth": isFullWidth })) : (React__default.default.createElement(StyledInput, { onChange: onChange, type: type, placeholder: placeholder, name: name, "$isErrored": isErrored, maxLength: maxLength, defaultValue: defaultValue, id: id, autoComplete: autocomplete, "$isFullWidth": isFullWidth }))));
24224
- };
24225
-
24226
24546
  var CustomSearch = function (_a) {
24227
24547
  var method = _a.method, path = _a.path, label = _a.label, _b = _a.hasHiddenLabel, hasHiddenLabel = _b === void 0 ? true : _b, fieldName = _a.fieldName, placeholder = _a.placeholder, searchText = _a.searchText, id = _a.id;
24228
24548
  if (!id) {
@@ -25427,13 +25747,11 @@ const HomeLink = styled__default.default.a`
25427
25747
  }
25428
25748
  }
25429
25749
  &:focus {
25430
- outline: 2px transparent solid;
25431
- box-shadow: ${(props) => props.theme.theme_vars.colours.focus} 0 0 0 2px,
25432
- ${(props) =>
25433
- props.theme.cardinal_name === 'north'
25434
- ? props.theme.theme_vars.colours.black
25435
- : props.theme.theme_vars.colours.focus}
25436
- 0 0 0 4px;
25750
+ outline: none;
25751
+ background: ${(props) => props.theme.theme_vars.colours.focus};
25752
+ box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
25753
+ -webkit-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
25754
+ -moz-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
25437
25755
  transition: box-shadow 0.3s ease 0s;
25438
25756
  }
25439
25757
  `;
@@ -25586,6 +25904,9 @@ const Button$3 = styled__default.default.button`
25586
25904
  &:focus {
25587
25905
  outline: none;
25588
25906
  background: ${(props) => props.theme.theme_vars.colours.focus};
25907
+ box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
25908
+ -webkit-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
25909
+ -moz-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
25589
25910
  svg {
25590
25911
  path {
25591
25912
  fill: ${(props) => props.theme.theme_vars.colours.black};
@@ -25888,12 +26209,14 @@ const CallToActionLink = styled__default.default.a`
25888
26209
  display: inline-block;
25889
26210
  outline: none;
25890
26211
 
25891
- &:hover,
25892
- &:focus {
26212
+ &:hover {
25893
26213
  text-decoration-style: dotted;
25894
26214
  text-shadow: 2px 2px 4px rgba(150, 150, 150, 0.5), -2px 2px 4px rgba(150, 150, 150, 0.5),
25895
26215
  2px -2px 4px rgba(150, 150, 150, 0.5), -2px -2px 4px rgba(150, 150, 150, 0.5);
25896
26216
  }
26217
+ &:focus {
26218
+ ${(props) => props.theme.linkStylesFocus};
26219
+ }
25897
26220
  &:active {
25898
26221
  transform: translate(3px);
25899
26222
  }
@@ -25979,6 +26302,14 @@ const PlayPauseButton = styled__default.default.button`
25979
26302
  &:hover {
25980
26303
  background: rgba(0, 0, 0, 0.7);
25981
26304
  }
26305
+ &:focus {
26306
+ outline: none;
26307
+ background: ${(props) => props.theme.theme_vars.colours.focus};
26308
+ color: ${(props) => props.theme.theme_vars.colours.black};
26309
+ box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
26310
+ -webkit-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
26311
+ -moz-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
26312
+ }
25982
26313
  }
25983
26314
  `;
25984
26315
 
@@ -28083,9 +28414,9 @@ const focusListItem = styled.css`
28083
28414
  color: ${(props) => props.theme.theme_vars.colours.black};
28084
28415
  background-color: ${(props) => props.theme.theme_vars.colours.focus};
28085
28416
  outline: none;
28086
- box-shadow: 0px -2px 0px 0px ${(props) => props.theme.theme_vars.colours.black} inset;
28087
- -webkit-box-shadow: 0px -2px 0px 0px ${(props) => props.theme.theme_vars.colours.black} inset;
28088
- -moz-box-shadow: 0px -2px 0px 0px ${(props) => props.theme.theme_vars.colours.black} inset;
28417
+ box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
28418
+ -webkit-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
28419
+ -moz-box-shadow: 0 0 0 2px ${(props) => props.theme.theme_vars.colours.focus}, 0 0 0 4px ${(props) => props.theme.theme_vars.colours.black};
28089
28420
  `;
28090
28421
 
28091
28422
  const ListItem = styled__default.default.li`
@@ -29883,9 +30214,9 @@ const generate_theme = (theme_vars) => {
29883
30214
  background: ${theme_vars.colours.focus};
29884
30215
  outline: none;
29885
30216
  text-decoration: none !important;
29886
- box-shadow: 0 0 0 1px ${theme_vars.colours.focus}, 0 0 0 3px ${theme_vars.colours.black};
29887
- -webkit-box-shadow: 0 0 0 1px ${theme_vars.colours.focus}, 0 0 0 3px ${theme_vars.colours.black};
29888
- -moz-box-shadow: 0 0 0 1px ${theme_vars.colours.focus}, 0 0 0 3px ${theme_vars.colours.black};
30217
+ box-shadow: 0 0 0 2px ${theme_vars.colours.focus}, 0 0 0 4px ${theme_vars.colours.black};
30218
+ -webkit-box-shadow: 0 0 0 2px ${theme_vars.colours.focus}, 0 0 0 4px ${theme_vars.colours.black};
30219
+ -moz-box-shadow: 0 0 0 2px ${theme_vars.colours.focus}, 0 0 0 4px ${theme_vars.colours.black};
29889
30220
  `,
29890
30221
  linkStylesActive: styled.css`
29891
30222
  color: ${theme_vars.colours.black};
@@ -30325,69 +30656,6 @@ var ServiceContact = function (_a) {
30325
30656
  contact.phones.map(function (phone, phoneIndex) { return (React__default.default.createElement(ContactLink, { href: "tel:".concat(phone.number), key: phoneIndex }, phone.number)); }))); })))))));
30326
30657
  };
30327
30658
 
30328
- const SummaryList$1 = styled__default.default.dl`
30329
- display: table;
30330
- width: 100%;
30331
- table-layout: fixed;
30332
- border-collapse: collapse;
30333
- margin: ${(props) => (props.$hasMargin ? props.theme.theme_vars.spacingSizes.medium : 0)} 0;
30334
- `;
30335
-
30336
- const SummaryRow = styled__default.default.div`
30337
- border-bottom: 1px solid ${(props) => props.theme.theme_vars.colours.grey};
30338
- margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.small};
30339
-
30340
- @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.m}) {
30341
- display: table-row;
30342
- }
30343
-
30344
- @media print {
30345
- display: table-row;
30346
- border-bottom: none;
30347
- }
30348
- `;
30349
-
30350
- const SummaryTerm = styled__default.default.dt`
30351
- margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.small};
30352
- font-weight: bold;
30353
-
30354
- @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.m}) {
30355
- display: table-cell;
30356
- padding: ${(props) => props.theme.theme_vars.spacingSizes.small};
30357
- width: 30%;
30358
- vertical-align: middle;
30359
- }
30360
-
30361
- @media print {
30362
- display: table-cell;
30363
- width: 30%;
30364
- }
30365
- `;
30366
-
30367
- const SummaryDetail = styled__default.default.dd`
30368
- overflow-wrap: break-word;
30369
- width: 100%;
30370
- margin-bottom: ${(props) => props.theme.theme_vars.spacingSizes.small};
30371
-
30372
- @media screen and (min-width: ${(props) => props.theme.theme_vars.breakpoints.m}) {
30373
- display: table-cell;
30374
- width: 70%;
30375
- padding: ${(props) => props.theme.theme_vars.spacingSizes.small};
30376
- }
30377
-
30378
- @media print {
30379
- display: table-cell;
30380
- width: 70%;
30381
- }
30382
- `;
30383
-
30384
- var SummaryList = function (_a) {
30385
- var terms = _a.terms, _b = _a.hasMargin, hasMargin = _b === void 0 ? true : _b;
30386
- return (React__default.default.createElement(SummaryList$1, { "data-testid": "SummaryList", "$hasMargin": hasMargin }, terms.map(function (summaryRow, summaryIndex) { return (React__default.default.createElement(SummaryRow, { key: summaryIndex },
30387
- React__default.default.createElement(SummaryTerm, null, summaryRow.term),
30388
- React__default.default.createElement(SummaryDetail, { dangerouslySetInnerHTML: { __html: sanitizeHtml$1(summaryRow.detail) } }))); })));
30389
- };
30390
-
30391
30659
  /**
30392
30660
  * Group an array of items by the key
30393
30661
  */
@@ -33506,6 +33774,7 @@ exports.PromoBanner = PromoBanner;
33506
33774
  exports.PromoBlock = PromoBlock;
33507
33775
  exports.PromotedLinks = PromotedLinks;
33508
33776
  exports.Promotions = Promotions;
33777
+ exports.RoadworksList = RoadworksList;
33509
33778
  exports.SearchBox = SearchBox;
33510
33779
  exports.SearchResultsList = SearchResultsList;
33511
33780
  exports.Searchbar = Searchbar;