@defra/flood-webchat 0.0.1-beta.26 → 0.0.1-beta.27

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.
package/dist/client.js CHANGED
@@ -64,8 +64,8 @@ function Availability() {
64
64
  };
65
65
  }, [buttonRef, isChatOpen]);
66
66
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
67
- document.documentElement.classList.toggle('wc-scroll-padding', isFixed);
68
- document.body.classList.toggle('wc-scroll-padding', isFixed);
67
+ document.documentElement.classList.toggle('wc-u-scroll-padding', isFixed);
68
+ document.body.classList.toggle('wc-u-scroll-padding', isFixed);
69
69
  }, [isFixed]);
70
70
  let TextComponent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, "Show Chat");
71
71
  if (!threadId) {
@@ -80,13 +80,14 @@ function Availability() {
80
80
  className: "wc-availability__inner"
81
81
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
82
82
  className: "wc-availability__link",
83
+ role: "button",
83
84
  href: "#webchat",
84
85
  draggable: "false",
85
86
  onClick: onClick,
86
87
  onKeyUp: onKeyUp,
87
88
  onKeyDown: onKeyDown
88
89
  }, TextComponent, unseenCount > 0 && !isChatOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
89
- className: "wc-open-btn__unseen"
90
+ className: "wc-availability__unseen"
90
91
  }, unseenCount) : null))), isChatOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_jsx__WEBPACK_IMPORTED_MODULE_2__.Panel, null));
91
92
  case 'EXISTING':
92
93
  case 'UNAVAILABLE':
@@ -138,9 +139,11 @@ function Chat({
138
139
  agent,
139
140
  agentStatus,
140
141
  isAgentTyping,
141
- settings
142
+ settings,
143
+ isKeyboard
142
144
  } = (0,_store_useApp_js__WEBPACK_IMPORTED_MODULE_4__.useApp)();
143
145
  const [userMessage, setUserMessage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
146
+ const [focusVisibleWithin, setFocusVisibleWithin] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
144
147
  const messageRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
145
148
  (0,_hooks_useTextareaAutosize_js__WEBPACK_IMPORTED_MODULE_5__.useTextareaAutosize)(messageRef.current, userMessage);
146
149
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
@@ -203,26 +206,25 @@ function Chat({
203
206
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_header_jsx__WEBPACK_IMPORTED_MODULE_1__.PanelHeader, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
204
207
  className: "wc-status"
205
208
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
206
- className: "wc-status__availability govuk-body-s"
209
+ className: "wc-status__availability"
207
210
  }, connectionHeadlineText), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
208
- className: "wc-status__link govuk-!-font-size-16",
211
+ className: "wc-status__link",
209
212
  href: "#",
210
213
  "data-module": "govuk-button",
211
214
  onClick: onEndChatScreen
212
215
  }, "End chat")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
213
- className: "wc-body"
214
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
215
- className: "wc-chat__body"
216
+ className: "wc-body",
217
+ tabIndex: "0"
216
218
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
217
- className: "wc-chat__messages"
219
+ className: "wc-chat"
218
220
  }, messages.length ? messages.map((msg, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_message_message_jsx__WEBPACK_IMPORTED_MODULE_3__.Message, {
219
221
  key: msg.id,
220
222
  message: msg,
221
223
  previousMessage: messages[index - 1]
222
224
  })) : null, isAgentTyping ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
223
- className: "wc-chat__message govuk-body outbound"
225
+ className: "wc-chat__message outbound"
224
226
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
225
- className: "wc-chat__from govuk-!-font-size-14"
227
+ className: "wc-chat__from"
226
228
  }, agentName, " is typing"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
227
229
  className: "wc-chat__text outbound"
228
230
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", {
@@ -249,14 +251,12 @@ function Chat({
249
251
  cy: "8",
250
252
  r: "3",
251
253
  fill: "currentColor"
252
- })))) : null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_footer_jsx__WEBPACK_IMPORTED_MODULE_2__.PanelFooter, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
253
- className: "wc-footer__input"
254
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("form", {
255
- className: "wc-form",
254
+ })))) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_footer_jsx__WEBPACK_IMPORTED_MODULE_2__.PanelFooter, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("form", {
255
+ className: `wc-form${focusVisibleWithin ? ' wc-focus-within' : ''}`,
256
256
  noValidate: true,
257
257
  onSubmit: handleSubmit
258
258
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", {
259
- className: "govuk-label wc-form__label govuk-!-font-size-16",
259
+ className: "govuk-label wc-form__label",
260
260
  htmlFor: "wc-form-textarea"
261
261
  }, "Your message", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
262
262
  className: "govuk-visually-hidden"
@@ -264,18 +264,24 @@ function Chat({
264
264
  ref: messageRef,
265
265
  rows: "1",
266
266
  "aria-required": "true",
267
- className: "wc-form__textarea govuk-textarea govuk-!-font-size-16",
267
+ className: "wc-form__textarea",
268
268
  id: "wc-form-textarea",
269
269
  name: "message",
270
270
  onChange: onChange,
271
271
  onKeyDown: handleKeyPress,
272
+ onFocus: () => {
273
+ setFocusVisibleWithin(isKeyboard);
274
+ },
275
+ onBlur: () => {
276
+ setFocusVisibleWithin(false);
277
+ },
272
278
  value: userMessage
273
279
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", {
274
280
  type: "submit",
275
- className: "wc-form__button govuk-button govuk-!-font-size-16",
281
+ className: "wc-form__button govuk-button",
276
282
  value: "Send",
277
283
  "data-prevent-double-click": "true"
278
- }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
284
+ })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
279
285
  className: "wc-footer__settings"
280
286
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
281
287
  href: "#",
@@ -328,11 +334,11 @@ const ErrorSummary = ({
328
334
  role: "alert"
329
335
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", {
330
336
  id: "wc-error",
331
- className: "govuk-error-summary__title"
337
+ className: "wc-error-summary__title govuk-error-summary__title"
332
338
  }, "There is a problem"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
333
339
  className: "govuk-error-summary__body"
334
340
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
335
- className: "govuk-list govuk-error-summary__list"
341
+ className: "govuk-list govuk-error-summary__list wc-error-summary__list"
336
342
  }, errs.map(key => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
337
343
  key: key
338
344
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
@@ -366,13 +372,13 @@ function Message({
366
372
  const outbound = message.direction === 'outbound';
367
373
  const messageOwnerSameAsPrevious = message?.direction === previousMessage?.direction;
368
374
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
369
- className: (0,_lib_classnames__WEBPACK_IMPORTED_MODULE_1__.classnames)('wc-chat__message govuk-body', outbound ? 'outbound' : 'inbound')
375
+ className: (0,_lib_classnames__WEBPACK_IMPORTED_MODULE_1__.classnames)('wc-chat__message', outbound ? 'outbound' : 'inbound')
370
376
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
371
- className: "wc-chat__from govuk-!-font-size-14"
377
+ className: "wc-chat__from"
372
378
  }, messageOwnerSameAsPrevious ? null : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, outbound ? message.assignee : 'You'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
373
379
  className: "govuk-visually-hidden"
374
- }, ":")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
375
- className: (0,_lib_classnames__WEBPACK_IMPORTED_MODULE_1__.classnames)('wc-chat__text', 'govuk-body-s', outbound ? 'outbound' : 'inbound')
380
+ }, ":")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
381
+ className: (0,_lib_classnames__WEBPACK_IMPORTED_MODULE_1__.classnames)('wc-chat__text', outbound ? 'outbound' : 'inbound')
376
382
  }, message.text));
377
383
  }
378
384
 
@@ -465,7 +471,7 @@ function PanelHeader() {
465
471
  className: "wc-header"
466
472
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", {
467
473
  id: "wc-header-title",
468
- className: "wc-header__title govuk-heading-s"
474
+ className: "wc-header__title"
469
475
  }, "Floodline Webchat"), ButtonComponent);
470
476
  }
471
477
 
@@ -517,7 +523,8 @@ function Panel() {
517
523
  setThreadId,
518
524
  setChatVisibility,
519
525
  setMessages,
520
- setUnseenCount
526
+ setUnseenCount,
527
+ isMobile
521
528
  } = (0,_store_useApp_js__WEBPACK_IMPORTED_MODULE_9__.useApp)();
522
529
  const {
523
530
  fetchThread,
@@ -535,6 +542,19 @@ function Panel() {
535
542
  }
536
543
  }, [thread, threadId, setUnseenCount, setChatVisibility]);
537
544
 
545
+ /**
546
+ * We need ammend classes on the body element to handle mobile behaviour
547
+ */
548
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
549
+ document.body.classList.remove('wc-u-hidden');
550
+ document.getElementsByTagName('html')[0].classList.add('wc-u-html');
551
+ document.body.classList.add('wc-u-body');
552
+ return () => {
553
+ document.getElementsByTagName('html')[0].classList.remove('wc-u-html');
554
+ document.body.classList.remove('wc-u-body');
555
+ };
556
+ }, [isMobile]);
557
+
538
558
  /**
539
559
  * Initializes the eventListener for pressing the escape key
540
560
  */
@@ -631,7 +651,9 @@ function Panel() {
631
651
  tabIndex: "-1",
632
652
  "aria-modal": "true",
633
653
  "aria-labelledby": "wc-header-title"
634
- }, ScreenComponent);
654
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
655
+ className: "wc-panel__inner"
656
+ }, ScreenComponent));
635
657
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(Component, document.body));
636
658
  }
637
659
 
@@ -682,22 +704,26 @@ function EndChat({
682
704
  };
683
705
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_header_jsx__WEBPACK_IMPORTED_MODULE_1__.PanelHeader, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
684
706
  className: "wc-body"
707
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
708
+ className: "wc-content"
685
709
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
686
- className: "govuk-heading-s",
710
+ className: "wc-heading",
687
711
  "aria-live": "polite"
688
712
  }, "Are you sure you want to end the chat?"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
689
713
  className: "govuk-button-group"
690
714
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
691
715
  href: "#endChat",
692
- className: "govuk-button govuk-!-font-size-16",
716
+ role: "button",
717
+ className: "wc-button govuk-button",
693
718
  "data-module": "govuk-button",
694
719
  id: "confirmEndChat",
695
720
  onClick: confirmEndChat
696
721
  }, "Yes, end chat"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
697
722
  href: "#resumeChat",
698
- className: "govuk-link govuk-!-font-size-16",
723
+ role: "button",
724
+ className: "wc-link govuk-link",
699
725
  onClick: onChatScreen
700
- }, "No, resume chat"))));
726
+ }, "No, resume chat")))));
701
727
  }
702
728
 
703
729
  /***/ }),
@@ -725,23 +751,24 @@ function Feedback({
725
751
  };
726
752
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_header_jsx__WEBPACK_IMPORTED_MODULE_1__.PanelHeader, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
727
753
  className: "wc-body"
754
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
755
+ className: "wc-content"
728
756
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
729
757
  id: "wc-subtitle",
730
- className: "govuk-heading-s"
731
- }, "Give Feedback on Floodline webchat"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Please note we\u2019re unable to respond to feedback."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
758
+ className: "wc-heading"
759
+ }, "Give Feedback on Floodline webchat"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Please note we\u2019re unable to respond to feedback."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
732
760
  className: "govuk-link",
733
761
  href: "#",
734
762
  target: "_blank",
735
763
  rel: "noreferrer"
736
- }, "Feedback Link"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
737
- className: "govuk-button-group"
738
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
764
+ }, "Feedback Link")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
739
765
  id: "feedback-cancel",
766
+ className: "wc-link govuk-link",
740
767
  href: "#",
741
768
  "data-module": "govuk-button",
742
769
  role: "button",
743
770
  onClick: feedbackCancel
744
- }, "Close"))));
771
+ }, "Close")))));
745
772
  }
746
773
 
747
774
  /***/ }),
@@ -766,18 +793,14 @@ function PreChat({
766
793
  }) {
767
794
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_header_jsx__WEBPACK_IMPORTED_MODULE_1__.PanelHeader, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
768
795
  className: "wc-body"
796
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
797
+ className: "wc-content"
769
798
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
770
- className: "govuk-heading-s",
799
+ className: "wc-heading",
771
800
  "aria-live": "polite"
772
- }, "What you can use webchat for"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
773
- className: "govuk-body-s"
774
- }, "Webchat lets you talk directly to a Floodline adviser."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
775
- className: "govuk-body-s"
776
- }, "You can use webchat to get:"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
777
- className: "govuk-list govuk-list--bullet govuk-body-s"
778
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "current flood warnings and alerts in your area"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "information on the flood warning service"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "advice on what to do before, during and after a flood")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
779
- className: "govuk-body-s"
780
- }, "There are other ways to\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
801
+ }, "What you can use webchat for"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Webchat lets you talk directly to a Floodline adviser."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "You can use webchat to get:"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
802
+ className: "wc-list"
803
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "current flood warnings and alerts in your area"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "information on the flood warning service"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "advice on what to do before, during and after a flood")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "There are other ways to\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
781
804
  className: "govuk-link",
782
805
  href: "https://www.gov.uk/sign-up-for-flood-warnings",
783
806
  target: "_blank",
@@ -787,29 +810,23 @@ function PreChat({
787
810
  href: "https://www.fws.environment-agency.gov.uk/app/olr/login",
788
811
  target: "_blank",
789
812
  rel: "noreferrer"
790
- }, "manage your flood warnings account"), "."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
791
- className: "govuk-body-s"
792
- }, "Do not use webchat to\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
813
+ }, "manage your flood warnings account"), "."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Do not use webchat to\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
793
814
  className: "govuk-link",
794
815
  href: "https://www.gov.uk/report-flood-cause",
795
816
  target: "_blank",
796
817
  rel: "noreferrer"
797
818
  }, "report a flood"), "."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
798
- className: "govuk-button govuk-!-font-size-16",
819
+ className: "govuk-button wc-button govuk-!-margin-top-1",
799
820
  "data-module": "govuk-button",
800
821
  onClick: onContinue
801
822
  }, "Continue"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
802
- className: "govuk-heading-s"
803
- }, "Other flood information"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
804
- className: "govuk-body-s"
805
- }, "Call Floodline for all other flood and flood warning information."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
806
- className: "govuk-body-s"
807
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "Floodline helpline"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), "Telephone: 0345 988 1188", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), "Textphone: 0345 602 6340", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), "Open 24 hours a day, 7 days a week", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
823
+ className: "wc-heading"
824
+ }, "Other flood information"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Call Floodline for all other flood and flood warning information."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "Floodline helpline"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), "Telephone: 0345 988 1188", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), "Textphone: 0345 602 6340", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), "Open 24 hours a day, 7 days a week", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
808
825
  className: "govuk-link",
809
826
  href: "https://gov.uk/call-charges",
810
827
  target: "_blank",
811
828
  rel: "noreferrer"
812
- }, "Find out more about call charges"))));
829
+ }, "Find out more about call charges")))));
813
830
  }
814
831
 
815
832
  /***/ }),
@@ -907,6 +924,8 @@ function RequestChat({
907
924
  };
908
925
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_header_jsx__WEBPACK_IMPORTED_MODULE_3__.PanelHeader, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
909
926
  className: "wc-body"
927
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
928
+ className: "wc-content"
910
929
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
911
930
  href: "#",
912
931
  className: "wc-back-link govuk-back-link",
@@ -914,12 +933,12 @@ function RequestChat({
914
933
  }, "What you can use webchat for"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_errorSummary_error_summary_jsx__WEBPACK_IMPORTED_MODULE_6__.ErrorSummary, {
915
934
  errors: errors
916
935
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
917
- className: "govuk-heading-s",
936
+ className: "wc-heading",
918
937
  "aria-live": "polite"
919
938
  }, "Your name and question"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("form", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
920
- className: (0,_lib_classnames_js__WEBPACK_IMPORTED_MODULE_2__.classnames)('govuk-form-group', errors.name && 'govuk-form-group--error')
939
+ className: (0,_lib_classnames_js__WEBPACK_IMPORTED_MODULE_2__.classnames)('wc-form-group', 'govuk-form-group', errors.name && 'govuk-form-group--error')
921
940
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", {
922
- className: "govuk-label",
941
+ className: "wc-label govuk-label",
923
942
  htmlFor: "wc-name"
924
943
  }, "Your name"), errors.name && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
925
944
  className: "govuk-error-message"
@@ -927,19 +946,19 @@ function RequestChat({
927
946
  className: "govuk-visually-hidden"
928
947
  }, "Error:"), " ", errors.name), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", {
929
948
  ref: nameRef,
930
- className: (0,_lib_classnames_js__WEBPACK_IMPORTED_MODULE_2__.classnames)('govuk-input', errors.name && 'govuk-input--error'),
949
+ className: (0,_lib_classnames_js__WEBPACK_IMPORTED_MODULE_2__.classnames)('wc-input', 'govuk-input', errors.name && 'govuk-input--error'),
931
950
  id: "wc-name",
932
951
  name: "name",
933
952
  type: "text",
934
953
  "data-testid": "request-chat-user-name"
935
954
  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
936
- className: "govuk-character-count",
955
+ className: "wc-form-group govuk-character-count",
937
956
  "data-module": "govuk-character-count",
938
957
  "data-maxlength": "500"
939
958
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
940
959
  className: (0,_lib_classnames_js__WEBPACK_IMPORTED_MODULE_2__.classnames)('govuk-form-group', errors.question && 'govuk-form-group--error')
941
960
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", {
942
- className: "govuk-label",
961
+ className: "wc-label govuk-label",
943
962
  htmlFor: "wc-question"
944
963
  }, "Your question"), errors.question && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
945
964
  className: "govuk-error-message"
@@ -952,11 +971,11 @@ function RequestChat({
952
971
  rows: "5",
953
972
  "aria-describedby": "wc-question-info",
954
973
  onChange: onQuestionChange,
955
- className: (0,_lib_classnames_js__WEBPACK_IMPORTED_MODULE_2__.classnames)('govuk-textarea', 'govuk-js-character-count', !isQuestionLengthValid || errors.question ? 'govuk-textarea--error' : ''),
974
+ className: (0,_lib_classnames_js__WEBPACK_IMPORTED_MODULE_2__.classnames)('wc-textarea', 'govuk-textarea', 'govuk-js-character-count', !isQuestionLengthValid || errors.question ? 'govuk-textarea--error' : ''),
956
975
  "data-testid": "request-chat-user-question"
957
976
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
958
977
  id: "wc-question-info",
959
- className: "govuk-hint govuk-character-count__message",
978
+ className: "wc-hint govuk-hint govuk-char-count__msg",
960
979
  style: {
961
980
  color: `${!isQuestionLengthValid ? '#d4351c' : ''}`
962
981
  },
@@ -965,18 +984,18 @@ function RequestChat({
965
984
  className: "govuk-character-count__sr-status govuk-visually-hidden",
966
985
  "aria-live": "polite"
967
986
  }, questionHint))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
968
- className: "govuk-inset-text govuk-!-font-size-16"
987
+ className: "wc-inset-text govuk-inset-text"
969
988
  }, "By selecting 'Request chat' you agree to the terms of our\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
970
989
  href: "https://check-for-flooding.service.gov.uk/privacy-notice",
971
990
  target: "_blank",
972
991
  rel: "noreferrer",
973
992
  className: "govuk-link"
974
993
  }, "privacy notice"), "."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
975
- className: "govuk-button govuk-!-margin-top-1 govuk-!-font-size-16",
994
+ className: "wc-button govuk-button govuk-!-margin-top-1",
976
995
  "data-module": "govuk-button",
977
996
  onClick: onRequestChat,
978
997
  disabled: isButtonDisabled
979
- }, buttonLabel))));
998
+ }, buttonLabel)))));
980
999
  }
981
1000
 
982
1001
  /***/ }),
@@ -1017,13 +1036,15 @@ function Settings({
1017
1036
  };
1018
1037
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_header_jsx__WEBPACK_IMPORTED_MODULE_1__.PanelHeader, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
1019
1038
  className: "wc-body"
1039
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
1040
+ className: "wc-content"
1020
1041
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("fieldset", {
1021
1042
  className: "govuk-fieldset govuk-!-margin-bottom-4"
1022
1043
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("legend", {
1023
1044
  className: "govuk-fieldset__legend govuk-fieldset__legend"
1024
1045
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", {
1025
1046
  id: "wc-subtitle",
1026
- className: "govuk-heading-s"
1047
+ className: "wc-heading"
1027
1048
  }, "Change settings")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
1028
1049
  className: "govuk-checkboxes govuk-checkboxes--small",
1029
1050
  "data-module": "govuk-checkboxes"
@@ -1038,7 +1059,7 @@ function Settings({
1038
1059
  defaultChecked: optionAudio,
1039
1060
  onChange: () => setOptionAudio(!optionAudio)
1040
1061
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", {
1041
- className: "govuk-label govuk-checkboxes__label govuk-!-font-size-16",
1062
+ className: "wc-label govuk-label govuk-checkboxes__label",
1042
1063
  htmlFor: "audio"
1043
1064
  }, "Play a sound when receiving a new message")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
1044
1065
  className: "govuk-checkboxes__item"
@@ -1051,23 +1072,23 @@ function Settings({
1051
1072
  defaultChecked: optionScroll,
1052
1073
  onChange: () => setOptionScroll(!optionScroll)
1053
1074
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", {
1054
- className: "govuk-label govuk-checkboxes__label govuk-!-font-size-16",
1075
+ className: "wc-label govuk-label govuk-checkboxes__label",
1055
1076
  htmlFor: "scroll"
1056
1077
  }, "Scroll automatically to a new message")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
1057
1078
  className: "govuk-button-group"
1058
1079
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
1059
1080
  id: "settings-save",
1060
1081
  href: "#",
1061
- className: "govuk-button govuk-!-font-size-16",
1082
+ className: "wc-button govuk-button",
1062
1083
  "data-module": "govuk-button",
1063
1084
  onClick: onSave
1064
1085
  }, "Save"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
1065
1086
  id: "settings-cancel",
1066
1087
  href: "#",
1067
- className: "govuk-link govuk-!-font-size-16",
1088
+ className: "wc-link govuk-link",
1068
1089
  "data-module": "govuk-button",
1069
1090
  onClick: onCancel
1070
- }, "Cancel"))));
1091
+ }, "Cancel")))));
1071
1092
  }
1072
1093
 
1073
1094
  /***/ }),
@@ -1121,10 +1142,19 @@ __webpack_require__.r(__webpack_exports__);
1121
1142
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1122
1143
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1123
1144
 
1124
- const setAriaHidden = bool => {
1145
+ const ariaHidden = 'aria-hidden';
1146
+ const dataWcInert = 'data-wc-inert';
1147
+ const setAriaHidden = isInert => {
1125
1148
  for (const node of document.body.children) {
1126
1149
  if (node.id !== 'wc-panel') {
1127
- bool ? node.setAttribute('aria-hidden', 'true') : node.removeAttribute('aria-hidden');
1150
+ // We only want to toggle elements that aren't already inert
1151
+ if (isInert && !node.getAttribute(ariaHidden)) {
1152
+ node.setAttribute(ariaHidden, 'true');
1153
+ node.setAttribute(dataWcInert, '');
1154
+ } else if (node.hasAttribute(dataWcInert)) {
1155
+ node.removeAttribute(ariaHidden);
1156
+ node.removeAttribute(dataWcInert);
1157
+ }
1128
1158
  }
1129
1159
  }
1130
1160
  };
@@ -1415,6 +1445,24 @@ const AppProvider = ({
1415
1445
  payload: e.detail.data.case.status
1416
1446
  });
1417
1447
  };
1448
+ const onMatchMedia = e => {
1449
+ dispatch({
1450
+ type: 'TOGGLE_IS_MOBILE',
1451
+ payload: e.matches
1452
+ });
1453
+ };
1454
+ const onKeydown = () => {
1455
+ dispatch({
1456
+ type: 'TOGGLE_IS_KEYBOARD',
1457
+ payload: true
1458
+ });
1459
+ };
1460
+ const onPointerdown = () => {
1461
+ dispatch({
1462
+ type: 'TOGGLE_IS_KEYBOARD',
1463
+ payload: false
1464
+ });
1465
+ };
1418
1466
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1419
1467
  sdk.onChatEvent(_nice_devone_nice_cxone_chat_web_sdk__WEBPACK_IMPORTED_MODULE_1__.ChatEvent.LIVECHAT_RECOVERED, onLiveChatRecovered);
1420
1468
  sdk.onChatEvent(_nice_devone_nice_cxone_chat_web_sdk__WEBPACK_IMPORTED_MODULE_1__.ChatEvent.MESSAGE_CREATED, onMessageCreated);
@@ -1422,6 +1470,16 @@ const AppProvider = ({
1422
1470
  sdk.onChatEvent(_nice_devone_nice_cxone_chat_web_sdk__WEBPACK_IMPORTED_MODULE_1__.ChatEvent.AGENT_TYPING_ENDED, onAgentTypingEnded);
1423
1471
  sdk.onChatEvent(_nice_devone_nice_cxone_chat_web_sdk__WEBPACK_IMPORTED_MODULE_1__.ChatEvent.ASSIGNED_AGENT_CHANGED, onAssignedAgentChanged);
1424
1472
  sdk.onChatEvent(_nice_devone_nice_cxone_chat_web_sdk__WEBPACK_IMPORTED_MODULE_1__.ChatEvent.CONTACT_STATUS_CHANGED, onContactStatusChanged);
1473
+ // We need to know if it is a mobile and if it is a keyboard interaction
1474
+ window.matchMedia('(max-width: 640px)').addEventListener('change', onMatchMedia);
1475
+ window.addEventListener('keydown', onKeydown);
1476
+ window.addEventListener('pointerdown', onPointerdown);
1477
+ // Tidying up
1478
+ return () => {
1479
+ window.removeEventListener('change', onMatchMedia);
1480
+ window.removeEventListener('keydown', onKeydown);
1481
+ window.removeEventListener('pointerdown', onPointerdown);
1482
+ };
1425
1483
  }, [sdk]);
1426
1484
 
1427
1485
  /**
@@ -1617,6 +1675,18 @@ const setUnseenCount = (state, payload) => {
1617
1675
  unseenCount: payload
1618
1676
  };
1619
1677
  };
1678
+ const toggleIsMobile = (state, payload) => {
1679
+ return {
1680
+ ...state,
1681
+ isMobile: payload
1682
+ };
1683
+ };
1684
+ const toggleIsKeyboard = (state, payload) => {
1685
+ return {
1686
+ ...state,
1687
+ isKeyboard: payload
1688
+ };
1689
+ };
1620
1690
  const actionsMap = {
1621
1691
  SET_CHAT_VISIBILITY: setChatVisibility,
1622
1692
  SET_AVAILABILITY: setAvailability,
@@ -1629,7 +1699,9 @@ const actionsMap = {
1629
1699
  SET_AGENT: setAgent,
1630
1700
  SET_AGENT_TYPING: setAgentIsTyping,
1631
1701
  SET_AGENT_STATUS: setAgentStatus,
1632
- SET_UNSEEN_COUNT: setUnseenCount
1702
+ SET_UNSEEN_COUNT: setUnseenCount,
1703
+ TOGGLE_IS_MOBILE: toggleIsMobile,
1704
+ TOGGLE_IS_KEYBOARD: toggleIsKeyboard
1633
1705
  };
1634
1706
 
1635
1707
  /***/ }),
@@ -1676,6 +1748,8 @@ const initialState = {
1676
1748
  agentStatus: null,
1677
1749
  isAgentTyping: false,
1678
1750
  isChatOpen: false,
1751
+ isMobile: window.matchMedia('(max-width: 640px)').matches,
1752
+ isKeyboard: false,
1679
1753
  settings: {
1680
1754
  audio: true,
1681
1755
  scroll: true