@motech-development/breeze-ui 2.4.0 → 3.0.1

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 (248) hide show
  1. package/dist/Cabin-LICENSE.txt +93 -0
  2. package/dist/assets/cabin-latin-wght-normal-DZW_uTKI.woff2 +0 -0
  3. package/dist/formatting/FormattedDateTime/FormattedDateTime.d.ts +17 -0
  4. package/dist/formatting/FormattedDateTime/FormattedDateTime.d.ts.map +1 -0
  5. package/dist/formatting/FormattedList/FormattedList.d.ts +17 -0
  6. package/dist/formatting/FormattedList/FormattedList.d.ts.map +1 -0
  7. package/dist/formatting/FormattedNumber/FormattedNumber.d.ts +17 -0
  8. package/dist/formatting/FormattedNumber/FormattedNumber.d.ts.map +1 -0
  9. package/dist/formatting/RelativeTime/RelativeTime.d.ts +21 -0
  10. package/dist/formatting/RelativeTime/RelativeTime.d.ts.map +1 -0
  11. package/dist/icons/index.d.ts +77 -0
  12. package/dist/icons/index.d.ts.map +1 -0
  13. package/dist/icons.js +27 -0
  14. package/dist/index.d.ts +100 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +5759 -0
  17. package/dist/internal/collections/VirtualizedCollection.d.ts +15 -0
  18. package/dist/internal/collections/VirtualizedCollection.d.ts.map +1 -0
  19. package/dist/internal/collections/useCollectionEmptyContent.d.ts +3 -0
  20. package/dist/internal/collections/useCollectionEmptyContent.d.ts.map +1 -0
  21. package/dist/internal/collections/useLoadMoreHandler.d.ts +7 -0
  22. package/dist/internal/collections/useLoadMoreHandler.d.ts.map +1 -0
  23. package/dist/internal/date/conversion.d.ts +16 -0
  24. package/dist/internal/date/conversion.d.ts.map +1 -0
  25. package/dist/internal/files/validation.d.ts +17 -0
  26. package/dist/internal/files/validation.d.ts.map +1 -0
  27. package/dist/internal/hooks/useForwardedRef.d.ts +3 -0
  28. package/dist/internal/hooks/useForwardedRef.d.ts.map +1 -0
  29. package/dist/internal/react-aria/DisclosureParts.d.ts +27 -0
  30. package/dist/internal/react-aria/DisclosureParts.d.ts.map +1 -0
  31. package/dist/internal/react-aria/OverlayParts.d.ts +55 -0
  32. package/dist/internal/react-aria/OverlayParts.d.ts.map +1 -0
  33. package/dist/internal/react-aria/renderNativeButton.d.ts +6 -0
  34. package/dist/internal/react-aria/renderNativeButton.d.ts.map +1 -0
  35. package/dist/internal/styling/actions.d.ts +72 -0
  36. package/dist/internal/styling/actions.d.ts.map +1 -0
  37. package/dist/internal/styling/formControls.d.ts +23 -0
  38. package/dist/internal/styling/formControls.d.ts.map +1 -0
  39. package/dist/internal/styling/layout.d.ts +108 -0
  40. package/dist/internal/styling/layout.d.ts.map +1 -0
  41. package/dist/internal/styling/responsive.d.ts +22 -0
  42. package/dist/internal/styling/responsive.d.ts.map +1 -0
  43. package/dist/internal/styling/visual.d.ts +7 -0
  44. package/dist/internal/styling/visual.d.ts.map +1 -0
  45. package/dist/internal/types/collection.d.ts +60 -0
  46. package/dist/internal/types/collection.d.ts.map +1 -0
  47. package/dist/internal/types/date.d.ts +8 -0
  48. package/dist/internal/types/date.d.ts.map +1 -0
  49. package/dist/internal/types/file.d.ts +21 -0
  50. package/dist/internal/types/file.d.ts.map +1 -0
  51. package/dist/internal/types/native.d.ts +8 -0
  52. package/dist/internal/types/native.d.ts.map +1 -0
  53. package/dist/patterns/ApplicationShell/ApplicationShell.d.ts +32 -0
  54. package/dist/patterns/ApplicationShell/ApplicationShell.d.ts.map +1 -0
  55. package/dist/patterns/ButtonGroup/ButtonGroup.d.ts +20 -0
  56. package/dist/patterns/ButtonGroup/ButtonGroup.d.ts.map +1 -0
  57. package/dist/patterns/ConfirmationDialog/ConfirmationDialog.d.ts +58 -0
  58. package/dist/patterns/ConfirmationDialog/ConfirmationDialog.d.ts.map +1 -0
  59. package/dist/patterns/ContextSwitcher/ContextSwitcher.d.ts +42 -0
  60. package/dist/patterns/ContextSwitcher/ContextSwitcher.d.ts.map +1 -0
  61. package/dist/patterns/FileAttachment/FileAttachment.d.ts +17 -0
  62. package/dist/patterns/FileAttachment/FileAttachment.d.ts.map +1 -0
  63. package/dist/patterns/FileUpload/FileUpload.d.ts +35 -0
  64. package/dist/patterns/FileUpload/FileUpload.d.ts.map +1 -0
  65. package/dist/patterns/FormActions/FormActions.d.ts +25 -0
  66. package/dist/patterns/FormActions/FormActions.d.ts.map +1 -0
  67. package/dist/patterns/FormSection/FormSection.d.ts +31 -0
  68. package/dist/patterns/FormSection/FormSection.d.ts.map +1 -0
  69. package/dist/patterns/MetricCard/MetricCard.d.ts +28 -0
  70. package/dist/patterns/MetricCard/MetricCard.d.ts.map +1 -0
  71. package/dist/patterns/NavigationSection/NavigationSection.d.ts +17 -0
  72. package/dist/patterns/NavigationSection/NavigationSection.d.ts.map +1 -0
  73. package/dist/patterns/PageHeader/PageHeader.d.ts +21 -0
  74. package/dist/patterns/PageHeader/PageHeader.d.ts.map +1 -0
  75. package/dist/patterns/Pagination/Pagination.d.ts +23 -0
  76. package/dist/patterns/Pagination/Pagination.d.ts.map +1 -0
  77. package/dist/patterns/PasswordField/PasswordField.d.ts +58 -0
  78. package/dist/patterns/PasswordField/PasswordField.d.ts.map +1 -0
  79. package/dist/patterns/SectionHeader/SectionHeader.d.ts +21 -0
  80. package/dist/patterns/SectionHeader/SectionHeader.d.ts.map +1 -0
  81. package/dist/patterns/SegmentedControl/SegmentedControl.d.ts +56 -0
  82. package/dist/patterns/SegmentedControl/SegmentedControl.d.ts.map +1 -0
  83. package/dist/patterns/StatePanel/StatePanel.d.ts +25 -0
  84. package/dist/patterns/StatePanel/StatePanel.d.ts.map +1 -0
  85. package/dist/patterns/UserMenu/UserMenu.d.ts +45 -0
  86. package/dist/patterns/UserMenu/UserMenu.d.ts.map +1 -0
  87. package/dist/primitives/Accordion/Accordion.d.ts +76 -0
  88. package/dist/primitives/Accordion/Accordion.d.ts.map +1 -0
  89. package/dist/primitives/Alert/Alert.d.ts +23 -0
  90. package/dist/primitives/Alert/Alert.d.ts.map +1 -0
  91. package/dist/primitives/AlertDialog/AlertDialog.d.ts +63 -0
  92. package/dist/primitives/AlertDialog/AlertDialog.d.ts.map +1 -0
  93. package/dist/primitives/Avatar/Avatar.d.ts +308 -0
  94. package/dist/primitives/Avatar/Avatar.d.ts.map +1 -0
  95. package/dist/primitives/Badge/Badge.d.ts +299 -0
  96. package/dist/primitives/Badge/Badge.d.ts.map +1 -0
  97. package/dist/primitives/Breadcrumbs/Breadcrumbs.d.ts +40 -0
  98. package/dist/primitives/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  99. package/dist/primitives/Button/Button.d.ts +36 -0
  100. package/dist/primitives/Button/Button.d.ts.map +1 -0
  101. package/dist/primitives/Calendar/Calendar.d.ts +61 -0
  102. package/dist/primitives/Calendar/Calendar.d.ts.map +1 -0
  103. package/dist/primitives/Card/Card.d.ts +63 -0
  104. package/dist/primitives/Card/Card.d.ts.map +1 -0
  105. package/dist/primitives/Center/Center.d.ts +295 -0
  106. package/dist/primitives/Center/Center.d.ts.map +1 -0
  107. package/dist/primitives/Checkbox/Checkbox.d.ts +106 -0
  108. package/dist/primitives/Checkbox/Checkbox.d.ts.map +1 -0
  109. package/dist/primitives/CheckboxGroup/CheckboxGroup.d.ts +76 -0
  110. package/dist/primitives/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
  111. package/dist/primitives/ComboBox/ComboBox.d.ts +174 -0
  112. package/dist/primitives/ComboBox/ComboBox.d.ts.map +1 -0
  113. package/dist/primitives/Container/Container.d.ts +296 -0
  114. package/dist/primitives/Container/Container.d.ts.map +1 -0
  115. package/dist/primitives/DateField/DateField.d.ts +87 -0
  116. package/dist/primitives/DateField/DateField.d.ts.map +1 -0
  117. package/dist/primitives/DatePicker/DatePicker.d.ts +74 -0
  118. package/dist/primitives/DatePicker/DatePicker.d.ts.map +1 -0
  119. package/dist/primitives/DateRangePicker/DateRangePicker.d.ts +116 -0
  120. package/dist/primitives/DateRangePicker/DateRangePicker.d.ts.map +1 -0
  121. package/dist/primitives/DateTimePicker/DateTimePicker.d.ts +93 -0
  122. package/dist/primitives/DateTimePicker/DateTimePicker.d.ts.map +1 -0
  123. package/dist/primitives/DescriptionList/DescriptionList.d.ts +45 -0
  124. package/dist/primitives/DescriptionList/DescriptionList.d.ts.map +1 -0
  125. package/dist/primitives/Dialog/Dialog.d.ts +56 -0
  126. package/dist/primitives/Dialog/Dialog.d.ts.map +1 -0
  127. package/dist/primitives/Disclosure/Disclosure.d.ts +59 -0
  128. package/dist/primitives/Disclosure/Disclosure.d.ts.map +1 -0
  129. package/dist/primitives/Drawer/Drawer.d.ts +87 -0
  130. package/dist/primitives/Drawer/Drawer.d.ts.map +1 -0
  131. package/dist/primitives/DropZone/DropZone.d.ts +85 -0
  132. package/dist/primitives/DropZone/DropZone.d.ts.map +1 -0
  133. package/dist/primitives/Fieldset/Fieldset.d.ts +57 -0
  134. package/dist/primitives/Fieldset/Fieldset.d.ts.map +1 -0
  135. package/dist/primitives/FileTrigger/FileTrigger.d.ts +72 -0
  136. package/dist/primitives/FileTrigger/FileTrigger.d.ts.map +1 -0
  137. package/dist/primitives/Grid/Grid.d.ts +307 -0
  138. package/dist/primitives/Grid/Grid.d.ts.map +1 -0
  139. package/dist/primitives/GridList/GridList.d.ts +131 -0
  140. package/dist/primitives/GridList/GridList.d.ts.map +1 -0
  141. package/dist/primitives/IconButton/IconButton.d.ts +37 -0
  142. package/dist/primitives/IconButton/IconButton.d.ts.map +1 -0
  143. package/dist/primitives/IconTile/IconTile.d.ts +312 -0
  144. package/dist/primitives/IconTile/IconTile.d.ts.map +1 -0
  145. package/dist/primitives/Inline/Inline.d.ts +302 -0
  146. package/dist/primitives/Inline/Inline.d.ts.map +1 -0
  147. package/dist/primitives/InputGroup/InputGroup.d.ts +36 -0
  148. package/dist/primitives/InputGroup/InputGroup.d.ts.map +1 -0
  149. package/dist/primitives/Link/Link.d.ts +28 -0
  150. package/dist/primitives/Link/Link.d.ts.map +1 -0
  151. package/dist/primitives/LinkButton/LinkButton.d.ts +31 -0
  152. package/dist/primitives/LinkButton/LinkButton.d.ts.map +1 -0
  153. package/dist/primitives/List/List.d.ts +29 -0
  154. package/dist/primitives/List/List.d.ts.map +1 -0
  155. package/dist/primitives/ListBox/ListBox.d.ts +102 -0
  156. package/dist/primitives/ListBox/ListBox.d.ts.map +1 -0
  157. package/dist/primitives/Logo/Logo.d.ts +292 -0
  158. package/dist/primitives/Logo/Logo.d.ts.map +1 -0
  159. package/dist/primitives/Menu/Menu.d.ts +151 -0
  160. package/dist/primitives/Menu/Menu.d.ts.map +1 -0
  161. package/dist/primitives/Meter/Meter.d.ts +28 -0
  162. package/dist/primitives/Meter/Meter.d.ts.map +1 -0
  163. package/dist/primitives/NavigationList/NavigationList.d.ts +44 -0
  164. package/dist/primitives/NavigationList/NavigationList.d.ts.map +1 -0
  165. package/dist/primitives/NumberField/NumberField.d.ts +118 -0
  166. package/dist/primitives/NumberField/NumberField.d.ts.map +1 -0
  167. package/dist/primitives/Popover/Popover.d.ts +61 -0
  168. package/dist/primitives/Popover/Popover.d.ts.map +1 -0
  169. package/dist/primitives/ProgressBar/ProgressBar.d.ts +41 -0
  170. package/dist/primitives/ProgressBar/ProgressBar.d.ts.map +1 -0
  171. package/dist/primitives/RadioGroup/RadioGroup.d.ts +131 -0
  172. package/dist/primitives/RadioGroup/RadioGroup.d.ts.map +1 -0
  173. package/dist/primitives/RangeCalendar/RangeCalendar.d.ts +57 -0
  174. package/dist/primitives/RangeCalendar/RangeCalendar.d.ts.map +1 -0
  175. package/dist/primitives/SearchField/SearchField.d.ts +70 -0
  176. package/dist/primitives/SearchField/SearchField.d.ts.map +1 -0
  177. package/dist/primitives/Select/Select.d.ts +110 -0
  178. package/dist/primitives/Select/Select.d.ts.map +1 -0
  179. package/dist/primitives/Separator/Separator.d.ts +302 -0
  180. package/dist/primitives/Separator/Separator.d.ts.map +1 -0
  181. package/dist/primitives/Skeleton/Skeleton.d.ts +27 -0
  182. package/dist/primitives/Skeleton/Skeleton.d.ts.map +1 -0
  183. package/dist/primitives/SkipLink/SkipLink.d.ts +21 -0
  184. package/dist/primitives/SkipLink/SkipLink.d.ts.map +1 -0
  185. package/dist/primitives/Slider/Slider.d.ts +148 -0
  186. package/dist/primitives/Slider/Slider.d.ts.map +1 -0
  187. package/dist/primitives/Spinner/Spinner.d.ts +23 -0
  188. package/dist/primitives/Spinner/Spinner.d.ts.map +1 -0
  189. package/dist/primitives/Stack/Stack.d.ts +300 -0
  190. package/dist/primitives/Stack/Stack.d.ts.map +1 -0
  191. package/dist/primitives/Stepper/Stepper.d.ts +42 -0
  192. package/dist/primitives/Stepper/Stepper.d.ts.map +1 -0
  193. package/dist/primitives/Surface/Surface.d.ts +306 -0
  194. package/dist/primitives/Surface/Surface.d.ts.map +1 -0
  195. package/dist/primitives/Switch/Switch.d.ts +118 -0
  196. package/dist/primitives/Switch/Switch.d.ts.map +1 -0
  197. package/dist/primitives/Table/Table.d.ts +226 -0
  198. package/dist/primitives/Table/Table.d.ts.map +1 -0
  199. package/dist/primitives/Tabs/Tabs.d.ts +105 -0
  200. package/dist/primitives/Tabs/Tabs.d.ts.map +1 -0
  201. package/dist/primitives/Tag/Tag.d.ts +18 -0
  202. package/dist/primitives/Tag/Tag.d.ts.map +1 -0
  203. package/dist/primitives/TagGroup/TagGroup.d.ts +60 -0
  204. package/dist/primitives/TagGroup/TagGroup.d.ts.map +1 -0
  205. package/dist/primitives/TextArea/TextArea.d.ts +40 -0
  206. package/dist/primitives/TextArea/TextArea.d.ts.map +1 -0
  207. package/dist/primitives/TextField/TextField.d.ts +102 -0
  208. package/dist/primitives/TextField/TextField.d.ts.map +1 -0
  209. package/dist/primitives/TimeField/TimeField.d.ts +58 -0
  210. package/dist/primitives/TimeField/TimeField.d.ts.map +1 -0
  211. package/dist/primitives/Toast/Toast.d.ts +88 -0
  212. package/dist/primitives/Toast/Toast.d.ts.map +1 -0
  213. package/dist/primitives/ToggleButton/ToggleButton.d.ts +55 -0
  214. package/dist/primitives/ToggleButton/ToggleButton.d.ts.map +1 -0
  215. package/dist/primitives/ToggleGroup/ToggleGroup.d.ts +48 -0
  216. package/dist/primitives/ToggleGroup/ToggleGroup.d.ts.map +1 -0
  217. package/dist/primitives/Toolbar/Toolbar.d.ts +17 -0
  218. package/dist/primitives/Toolbar/Toolbar.d.ts.map +1 -0
  219. package/dist/primitives/Tooltip/Tooltip.d.ts +66 -0
  220. package/dist/primitives/Tooltip/Tooltip.d.ts.map +1 -0
  221. package/dist/primitives/Typography/Typography.d.ts +317 -0
  222. package/dist/primitives/Typography/Typography.d.ts.map +1 -0
  223. package/dist/primitives/VisuallyHidden/VisuallyHidden.d.ts +294 -0
  224. package/dist/primitives/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
  225. package/dist/primitives/date/CalendarParts.d.ts +26 -0
  226. package/dist/primitives/date/CalendarParts.d.ts.map +1 -0
  227. package/dist/primitives/date/DateInput.d.ts +9 -0
  228. package/dist/primitives/date/DateInput.d.ts.map +1 -0
  229. package/dist/primitives/date/PickerFieldParts.d.ts +11 -0
  230. package/dist/primitives/date/PickerFieldParts.d.ts.map +1 -0
  231. package/dist/primitives/date/PickerParts.d.ts +29 -0
  232. package/dist/primitives/date/PickerParts.d.ts.map +1 -0
  233. package/dist/primitives/file/FileFeedback.d.ts +14 -0
  234. package/dist/primitives/file/FileFeedback.d.ts.map +1 -0
  235. package/dist/provider/BreezeContext.d.ts +19 -0
  236. package/dist/provider/BreezeContext.d.ts.map +1 -0
  237. package/dist/provider/BreezeProvider.d.ts +30 -0
  238. package/dist/provider/BreezeProvider.d.ts.map +1 -0
  239. package/dist/provider/messages.d.ts +43 -0
  240. package/dist/provider/messages.d.ts.map +1 -0
  241. package/dist/reset.css +2 -0
  242. package/dist/styles.css +2 -0
  243. package/package.json +66 -93
  244. package/lib/index.cjs.js +0 -2900
  245. package/lib/index.cjs.js.map +0 -1
  246. package/lib/index.d.ts +0 -489
  247. package/lib/index.esm.js +0 -2846
  248. package/lib/index.esm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/Alert/Alert.tsx","../src/AppBar/AppBar.tsx","../src/Avatar/Avatar.tsx","../src/BaseStyles/BaseStyles.tsx","../src/hooks/useWindowSize.ts","../src/hooks/useBreakpoint.ts","../src/Breakpoint/Breakpoint.tsx","../src/BaseButton/BaseButton.tsx","../src/Loader/Loader.tsx","../src/Button/Button.tsx","../src/BaseLink/BaseLink.tsx","../src/ButtonLink/ButtonLink.tsx","../src/Table/Table.tsx","../src/TableBody/TableBody.tsx","../src/TableCell/TableCell.tsx","../src/TableHead/TableHead.tsx","../src/TableRow/TableRow.tsx","../src/Typography/Typography.tsx","../src/Calendar/Calendar.tsx","../src/Card/Card.tsx","../src/CheckableInput/CheckableInput.tsx","../src/HelpText/HelpText.tsx","../src/InputAlert/InputAlert.tsx","../src/Tooltip/Tooltip.tsx","../src/ValidatorWrapper/ValidatorWrapper.tsx","../src/FieldSet/FieldSet.tsx","../src/hooks/useInputValidation.ts","../src/Legend/Legend.tsx","../src/OptionLabel/OptionLabel.tsx","../src/OptionLabelText/OptionLabelText.tsx","../src/CheckBox/CheckBox.tsx","../src/Col/Col.tsx","../src/Content/Content.tsx","../src/DataTable/DataTable.tsx","../src/DateTime/DateTime.tsx","../src/hooks/useOutsideClick.ts","../src/InputWrapper/InputWrapper.tsx","../src/Label/Label.tsx","../src/LikeInput/LikeInput.tsx","../src/DatePicker/DatePicker.tsx","../src/FileUpload/FileUpload.tsx","../src/Row/Row.tsx","../src/Form/Form.tsx","../src/Link/Link.tsx","../src/LinkButton/LinkButton.tsx","../src/Masonry/Masonry.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Modal.tsx","../src/Notifications/Notifications.tsx","../src/PageTitle/PageTitle.tsx","../src/ProgressBar/ProgressBar.tsx","../src/Radio/Radio.tsx","../src/ScrollToTop/ScrollToTop.tsx","../src/Select/Select.tsx","../src/Stepper/Stepper.tsx","../src/TextBox/TextBox.tsx","../src/ToastProvider/ToastProvider.tsx","../src/Typeahead/Typeahead.tsx","../src/Window/Window.tsx"],"sourcesContent":["import { faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FC, ReactNode, useEffect, useRef, useState } from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\n\ntype AlertSpacing = 'sm' | 'md' | 'lg';\n\nconst alertTheme = {\n danger: {\n background: 'rgb(199,56,79)',\n colour: '#fff',\n },\n primary: {\n background: '#007fa8',\n colour: '#fff',\n },\n secondary: {\n background: '#f6f9fc',\n colour: '#333',\n },\n success: {\n background: 'rgb(0,128,93)',\n colour: '#fff',\n },\n};\n\nexport type AlertTheme = keyof typeof alertTheme;\n\ninterface IBaseAlert {\n $colour: AlertTheme;\n $icon: boolean;\n $spacing: AlertSpacing;\n}\n\nconst BaseAlert = styled.div<IBaseAlert>`\n ${({ $colour, $icon, $spacing, theme }) => `\n background-color: ${theme[$colour].background};\n color: ${theme[$colour].colour};\n margin-bottom: ${(() => {\n switch ($spacing) {\n case 'lg':\n return '20px';\n case 'md':\n return '10px';\n default:\n return '5px';\n }\n })()};\n padding: 12px 56px 12px ${$icon ? '56px' : '20px'};\n position: relative;\n `}\n`;\n\nconst AlertIconWrapper = styled.div`\n left: 20px;\n position: absolute;\n top: 12px;\n`;\n\ninterface IAlertDismissButton {\n $colour: AlertTheme;\n}\n\nconst AlertDismissButton = styled.button<IAlertDismissButton>`\n ${({ $colour, theme }) => `\n appearance: none;\n background-color: ${theme[$colour].background};\n border: 0;\n color: ${theme[$colour].colour};\n cursor: pointer;\n font-size: inherit;\n margin: 0;\n padding: 0;\n position: absolute;\n right: 20px;\n top: 12px;\n `}\n`;\n\nexport interface IAlertProps {\n colour?: AlertTheme;\n dismissable?: boolean | number;\n icon?: ReactNode;\n message: string;\n spacing?: AlertSpacing;\n onDismiss?: () => void;\n}\n\nconst Alert: FC<IAlertProps> = ({\n colour = 'primary',\n dismissable = false,\n icon,\n message,\n spacing = 'md',\n onDismiss,\n}) => {\n const renderCheck = process.env.NODE_ENV === 'development' ? 2 : 1;\n const renderCount = useRef(0);\n const [visible, setVisiblity] = useState(true);\n const dismiss = () => {\n setVisiblity(false);\n\n if (onDismiss) {\n onDismiss();\n }\n };\n\n useEffect(() => {\n renderCount.current += 1;\n }, []);\n\n useEffect(\n () => () => {\n if (renderCount.current >= renderCheck) {\n setVisiblity(false);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useEffect(() => {\n let timeout: ReturnType<typeof setTimeout>;\n\n if (typeof dismissable === 'number') {\n timeout = setTimeout(dismiss, dismissable);\n }\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (visible) {\n return (\n <ThemeProvider theme={alertTheme}>\n <BaseAlert\n role=\"alert\"\n $colour={colour}\n $icon={!!icon}\n $spacing={spacing}\n >\n {icon && <AlertIconWrapper>{icon}</AlertIconWrapper>}\n\n {message}\n\n {dismissable && (\n <AlertDismissButton\n type=\"button\"\n aria-label=\"Dismiss\"\n $colour={colour}\n onClick={dismiss}\n >\n <FontAwesomeIcon icon={faTimes} />\n </AlertDismissButton>\n )}\n </BaseAlert>\n </ThemeProvider>\n );\n }\n\n return null;\n};\n\nexport default Alert;\n","import { FC, ReactNode } from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\n\nconst AppBarInner = styled.div`\n align-items: center;\n display: flex;\n min-height: 64px;\n padding: 0 1rem;\n`;\n\ninterface IAppBarToolbarBase {\n $colour: keyof typeof appBarTheme;\n}\n\nconst AppBarToolbar = styled.header<IAppBarToolbarBase>`\n ${({ $colour, theme }) => `\n background-color: ${theme[$colour].background};\n border-bottom: 1px solid ${theme[$colour].border};\n box-sizing: border-box;\n color: ${theme[$colour].colour};\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n user-select: none;\n width: 100%;\n z-index: 1100;\n `}\n`;\n\ninterface IAppBarTheme {\n [name: string]: {\n background: string;\n border: string;\n colour: string;\n };\n}\n\nconst appBarTheme: IAppBarTheme = {\n primary: {\n background: '#161616',\n border: '#222',\n colour: '#fff',\n },\n secondary: {\n background: '#f6f9fc',\n border: '#ccc',\n colour: '#333',\n },\n};\n\ninterface IAppBarBase {\n $fixed: boolean;\n}\n\nconst AppBarBase = styled.div<IAppBarBase>`\n ${({ $fixed }) => `\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14),\n 0 1px 14px 0 rgba(0, 0, 0, 0.12);\n flex-grow: 1;\n left: 0;\n position: ${$fixed ? 'fixed' : 'relative'};\n top: 0;\n width: 100%;\n z-index: 10;\n `}\n`;\n\nexport interface IAppBarProps {\n children: ReactNode;\n colour?: keyof typeof appBarTheme;\n element?: 'header' | 'div';\n fixed?: boolean;\n}\n\nconst AppBar: FC<IAppBarProps> = ({\n children,\n colour = 'primary',\n element = 'header',\n fixed = false,\n}) => (\n <ThemeProvider theme={appBarTheme}>\n <AppBarBase $fixed={fixed}>\n <AppBarToolbar as={element} $colour={colour}>\n <AppBarInner>{children}</AppBarInner>\n </AppBarToolbar>\n </AppBarBase>\n </ThemeProvider>\n);\n\nexport default AppBar;\n","import { FC } from 'react';\nimport styled from 'styled-components';\n\ninterface IImageProps {\n $width: number;\n}\n\nconst Image = styled.img<IImageProps>`\n ${({ $width }) => `\n display: block;\n width: ${$width ? `${$width}px` : 'auto'};\n `}\n`;\n\ninterface IWrapperProps {\n $width: number;\n}\n\nconst Wrapper = styled.div<IWrapperProps>`\n ${({ $width }) => `\n border-radius: 50%;\n display: inline-block;\n overflow: hidden;\n width: ${$width ? `${$width}px` : 'auto'};\n\n ${$width ? `min-width: ${$width}px` : ''}\n `}\n`;\n\nexport interface IAvatarProps {\n alt: string;\n src: string;\n width?: number;\n}\n\nconst Avatar: FC<IAvatarProps> = ({ alt, src, width = 0 }) => (\n <Wrapper $width={width}>\n <Image alt={alt} src={src} $width={width} />\n </Wrapper>\n);\n\nexport default Avatar;\n","import { createGlobalStyle } from 'styled-components';\nimport reset from 'styled-reset';\n\nconst BaseStyles = createGlobalStyle`\n ${reset as string}\n\n body,\n html {\n background: #161616;\n color: #fff;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n }\n\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n }\n`;\n\nexport default BaseStyles;\n","import { useEffect, useState } from 'react';\n\ninterface IUseWindowSize {\n height: number;\n width: number;\n}\n\nconst useWindowSize = (): IUseWindowSize => {\n const getWindowSize = () => ({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n const [windowSize, setWindowSize] = useState(getWindowSize);\n const handleResize = () => {\n setWindowSize(getWindowSize);\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return windowSize;\n};\n\nexport default useWindowSize;\n","import { useEffect, useState } from 'react';\nimport useWindowSize from './useWindowSize';\n\nconst getBreakpoint = () => {\n const lg = window.matchMedia('(min-width: 992px)');\n const md = window.matchMedia('(min-width: 768px)');\n const sm = window.matchMedia('(min-width: 576px)');\n\n if (lg.matches) {\n return 'lg';\n }\n\n if (md.matches) {\n return 'md';\n }\n\n if (sm.matches) {\n return 'sm';\n }\n\n return 'xs';\n};\n\ntype TUseBreakpoint = 'xs' | 'sm' | 'md' | 'lg';\n\nconst useBreakpoint = (): TUseBreakpoint => {\n const [breakpoint, setBreakpoint] = useState<TUseBreakpoint>('xs');\n const { width } = useWindowSize();\n\n useEffect(() => {\n setBreakpoint(getBreakpoint);\n }, [width]);\n\n return breakpoint;\n};\n\nexport default useBreakpoint;\n","import { FC, ReactNode } from 'react';\nimport useBreakpoint from '../hooks/useBreakpoint';\n\nexport interface IBreakpoint {\n children: ReactNode;\n lg?: boolean;\n md?: boolean;\n sm?: boolean;\n xs?: boolean;\n}\n\nconst Breakpoint: FC<IBreakpoint> = ({\n children,\n lg = true,\n md = true,\n sm = true,\n xs = true,\n}) => {\n const breakpoint = useBreakpoint();\n const matrix = {\n lg,\n md,\n sm,\n xs,\n };\n\n if (matrix[breakpoint]) {\n return <>{children}</>;\n }\n\n return null;\n};\n\nexport default Breakpoint;\n","import { darken } from 'polished';\nimport styled from 'styled-components';\n\nexport const buttonTheme = {\n danger: {\n background: 'rgb(199,56,79)',\n colour: '#fff',\n },\n primary: {\n background: '#007fa8',\n colour: '#fff',\n },\n secondary: {\n background: '#f6f9fc',\n colour: '#333',\n },\n success: {\n background: 'rgb(0,128,93)',\n colour: '#fff',\n },\n};\n\nexport type ButtonColour = keyof typeof buttonTheme;\n\nexport interface IBaseButtonProps {\n block?: boolean;\n colour?: ButtonColour;\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst BaseButton = styled('button').withConfig({\n shouldForwardProp: (prop) => !['block', 'colour', 'size'].includes(prop),\n})<IBaseButtonProps>`\n ${({ block = false, colour = 'primary', size = 'md', theme }) => `\n appearance: none;\n background-color: ${theme[colour].background};\n border: 0;\n color: ${theme[colour].colour};\n cursor: pointer;\n font-family: 'Cabin', sans-serif;\n font-weight: 600;\n position: relative;\n vertical-align: middle;\n text-align: center;\n text-decoration: none;\n user-select: none;\n white-space: nowrap;\n\n ${\n block\n ? `\n display: block;\n width: 100%;\n `\n : `\n display: inline-block;\n `\n }\n\n ${(() => {\n switch (size) {\n case 'sm':\n return `\n font-size: 16px;\n height: 32px;\n line-height: 32px;\n padding: ${block ? '0' : '0 16px'};\n `;\n case 'lg':\n return `\n font-size: 18px;\n height: 46px;\n line-height: 46px;\n padding: ${block ? '0' : '0 32px'};\n `;\n default:\n return `\n font-size: 16px;\n height: 40px;\n line-height: 40px;\n padding: ${block ? '0' : '0 24px'};\n `;\n }\n })()}\n\n :hover {\n background-color: ${darken(0.1, theme[colour].background ?? '')};\n }\n\n :disabled {\n background-color: ${theme[colour].background};\n opacity: .6;\n }\n `}\n`;\n\nexport default BaseButton;\n","import { FC } from 'react';\nimport styled from 'styled-components';\n\ninterface ICircle {\n $colour: 'default' | 'secondary';\n}\n\nconst Circle = styled.circle<ICircle>`\n ${({ $colour }) => `\n animation: dash 1.5s ease-in-out infinite;\n stroke: ${$colour === 'default' ? '#007fa8' : '#fff'};\n stroke-linecap: round;\n\n @keyframes dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n }\n `}\n`;\n\nconst BaseLoader = styled.svg`\n animation: rotate 2s linear infinite;\n height: 50px;\n left: 50%;\n margin: -25px 0 0 -25px;\n position: absolute;\n top: 50%;\n width: 50px;\n\n @keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport interface ILoaderProps {\n className?: string;\n colour?: 'default' | 'secondary';\n}\n\nconst Loader: FC<ILoaderProps> = ({ colour = 'default', className = '' }) => (\n <BaseLoader className={className} viewBox=\"0 0 50 50\">\n <Circle\n $colour={colour}\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"4\"\n />\n </BaseLoader>\n);\n\nexport default Loader;\n","import { FC, HTMLAttributes } from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\nimport BaseButton, {\n buttonTheme,\n IBaseButtonProps,\n} from '../BaseButton/BaseButton';\nimport Loader, { ILoaderProps } from '../Loader/Loader';\n\nconst loaderSizes = {\n lg: {\n height: '36px',\n margin: '-18px 0 0 -18px',\n width: '36px',\n },\n md: {\n height: '28px',\n margin: '-14px 0 0 -14px',\n width: '28px',\n },\n sm: {\n height: '20px',\n margin: '-10px 0 0 -10px',\n width: '20px',\n },\n};\n\ninterface IButtonLoaderProps extends ILoaderProps {\n $size: keyof typeof loaderSizes;\n}\n\nconst ButtonLoader = styled(Loader)<IButtonLoaderProps>`\n ${({ $size }) => `\n height: ${loaderSizes[$size].height};\n margin: ${loaderSizes[$size].margin};\n width: ${loaderSizes[$size].width};\n `}\n`;\n\ninterface IButtonContainerProps {\n $isLoading: boolean;\n}\n\nconst ButtonContainer = styled.span<IButtonContainerProps>`\n ${({ $isLoading }) => `\n visibility: ${$isLoading ? 'hidden' : 'visible'};\n `}\n`;\n\nexport interface IButtonProps\n extends IBaseButtonProps,\n HTMLAttributes<HTMLButtonElement> {\n block?: boolean;\n disabled?: boolean;\n loading?: boolean;\n type?: 'submit' | 'reset' | 'button';\n}\n\nconst Button: FC<IButtonProps> = ({\n block = false,\n children,\n colour = 'primary',\n disabled = false,\n loading = false,\n size = 'md',\n type = 'button',\n ...rest\n}) => {\n const loadingColour = colour === 'secondary' ? 'default' : 'secondary';\n\n return (\n <ThemeProvider theme={buttonTheme}>\n <BaseButton\n block={block}\n colour={colour}\n type={type}\n size={size}\n disabled={disabled || loading}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n >\n {loading && <ButtonLoader colour={loadingColour} $size={size} />}\n\n <ButtonContainer $isLoading={loading}>{children}</ButtonContainer>\n </BaseButton>\n </ThemeProvider>\n );\n};\n\nexport default Button;\n","import styled from 'styled-components';\n\nconst BaseLink = styled.a`\n appearance: none;\n background: none;\n border: 0;\n color: #007aa3;\n cursor: pointer;\n font-weight: 600;\n font-size: inherit;\n margin: 0;\n padding: 0;\n text-decoration: underline;\n\n :hover {\n color: rgb(199, 56, 79);\n text-decoration: none;\n }\n`;\n\nexport default BaseLink;\n","import { ButtonHTMLAttributes, FC } from 'react';\nimport BaseLink from '../BaseLink/BaseLink';\n\nconst ButtonLink: FC<ButtonHTMLAttributes<HTMLButtonElement>> = (props) => (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <BaseLink as=\"button\" {...props} />\n);\n\nexport default ButtonLink;\n","import { FC, HTMLAttributes, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div`\n border-bottom: 2px solid #007fa8;\n display: block;\n overflow-x: auto;\n width: 100%;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n`;\n\ninterface IBaseTable {\n $fixed: boolean;\n}\n\nconst BaseTable = styled.table<IBaseTable>`\n ${({ $fixed }) => `\n background-color: #fff;\n max-width: 100%;\n table-layout: ${$fixed ? 'fixed' : 'auto'};\n width: 100%;\n `}\n`;\n\nexport interface ITableProps extends HTMLAttributes<HTMLTableElement> {\n children: ReactNode;\n fixed?: boolean;\n}\n\nconst Table: FC<ITableProps> = ({ children, fixed = false, ...rest }) => (\n <Wrapper>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <BaseTable $fixed={fixed} {...rest}>\n {children}\n </BaseTable>\n </Wrapper>\n);\n\nexport default Table;\n","import styled from 'styled-components';\n\nconst TableBody = styled.tbody`\n background-color: #fff;\n color: #000;\n`;\n\nexport default TableBody;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport { FC, TdHTMLAttributes } from 'react';\nimport styled from 'styled-components';\n\nconst baseStyles = (noWrap: boolean, align = 'inherit') => `\n padding: 10px;\n text-align: ${align};\n vertical-align: middle;\n ${noWrap ? 'white-space: nowrap;' : ''}\n`;\n\ninterface ITableCell {\n $noWrap: boolean;\n}\n\nconst TableDataCell = styled.td<ITableCell>`\n ${({ align, $noWrap }) => `\n ${baseStyles($noWrap, align)}\n font-weight: 300;\n `}\n`;\n\nconst TableHeadCell = styled.th<ITableCell>`\n ${({ align, $noWrap }) => `\n ${baseStyles($noWrap, align)}\n font-family: 'Cabin', sans-serif;\n font-weight: 600;\n `}\n`;\n\nexport interface ITableCellProps\n extends TdHTMLAttributes<HTMLTableDataCellElement> {\n as?: 'td' | 'th';\n noWrap?: boolean;\n}\n\nconst TableCell: FC<ITableCellProps> = ({\n as = 'td',\n noWrap = true,\n ...rest\n}) =>\n as === 'td' ? (\n <TableDataCell $noWrap={noWrap} {...rest} />\n ) : (\n <TableHeadCell $noWrap={noWrap} {...rest} />\n );\n\nexport default TableCell;\n","import styled from 'styled-components';\n\nconst TableHead = styled.thead`\n font-weight: 600;\n`;\n\nexport default TableHead;\n","import { darken } from 'polished';\nimport { FC, HTMLAttributes } from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\n\nconst tableRowTheme = {\n default: {\n background: '#fff',\n border: '#eee',\n colour: '#000',\n },\n primary: {\n background: '#007fa8',\n border: darken(0.02, '#007fa8'),\n colour: '#fff',\n },\n secondary: {\n background: '#f6f9fc',\n border: '#eee',\n colour: '#333',\n },\n};\n\ninterface IBaseTableRow {\n $colour: keyof typeof tableRowTheme;\n}\n\nconst BaseTableRow = styled.tr<IBaseTableRow>`\n ${({ $colour, theme }) => `\n background-color: ${theme[$colour].background};\n border-bottom: 2px solid ${theme[$colour].border};\n color: ${theme[$colour].colour};\n `}\n`;\n\nexport interface ITableRowProps extends HTMLAttributes<HTMLTableRowElement> {\n colour?: keyof typeof tableRowTheme;\n}\n\nconst TableRow: FC<ITableRowProps> = ({ colour = 'default', ...rest }) => (\n <ThemeProvider theme={tableRowTheme}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <BaseTableRow $colour={colour} {...rest} />\n </ThemeProvider>\n);\n\nexport default TableRow;\n","import { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nconst margins = {\n lg: 1,\n md: 0.5,\n none: 0,\n sm: 0.25,\n};\n\ntype TypographyVariants = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p';\n\ninterface IBaseTypographyProps {\n $align: 'left' | 'right' | 'center';\n $breakWord: boolean;\n $margin: keyof typeof margins;\n $truncate: boolean;\n $variant: TypographyVariants | 'lead';\n}\n\nconst BaseTypography = styled.p<IBaseTypographyProps>`\n ${({ $align, $breakWord, $margin, $truncate, $variant }) => `\n margin: ${margins[$margin] ? `0 0 ${margins[$margin]}rem` : '0'};\n text-align: ${$align};\n\n ${\n $breakWord\n ? `\n hyphens: auto;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-all;\n word-break: break-word;\n `\n : ''\n }\n\n ${\n $truncate\n ? `\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `\n : ''\n }\n\n ${(() => {\n switch ($variant) {\n case 'p':\n return `\n color: inherit;\n line-height: 1.5;\n `;\n case 'lead':\n return `\n font-size: 1.25rem;\n font-weight: 300;\n line-height: 1.5;\n `;\n default:\n return `\n color: inherit;\n font-family: 'Cabin', sans-serif;\n font-size: ${(() => {\n switch ($variant) {\n case 'h6':\n return '1rem';\n case 'h5':\n return '1.25rem';\n case 'h4':\n return '1.5rem';\n case 'h3':\n return '1.75rem';\n case 'h2':\n return '2rem';\n default:\n return '2.5rem';\n }\n })()};\n font-weight: 600;\n line-height: 1.2;\n `;\n }\n })()}\n `}\n`;\n\ninterface ILineProps {\n $margin: keyof typeof margins;\n}\n\nconst Line = styled.hr<ILineProps>`\n ${({ $margin }) => `\n border: 0;\n border-top: 2.5px solid #007fa8;\n margin: ${margins[$margin] ? `${margins[$margin]}rem 0` : '0'};\n padding: 0;\n\n `}\n`;\n\nexport interface ITypographyProps {\n align?: 'left' | 'right' | 'center';\n breakWord?: boolean;\n children: ReactNode;\n className?: string;\n component: TypographyVariants;\n id?: string;\n margin?: keyof typeof margins;\n rule?: boolean;\n truncate?: boolean;\n variant: TypographyVariants | 'lead';\n}\n\nconst Typography: FC<ITypographyProps> = ({\n align = 'left',\n breakWord = false,\n children,\n className = '',\n component,\n id,\n margin = 'md',\n rule = false,\n truncate = false,\n variant,\n}) => (\n <>\n <BaseTypography\n id={id}\n as={component}\n className={className}\n $align={align}\n $breakWord={breakWord}\n $margin={margin}\n $truncate={truncate}\n $variant={variant}\n >\n {children}\n </BaseTypography>\n\n {rule && <Line $margin={margin} />}\n </>\n);\n\nexport default Typography;\n","/* eslint-disable react/no-array-index-key */\nimport {\n faAngleDoubleLeft,\n faAngleDoubleRight,\n faAngleLeft,\n faAngleRight,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DateTime, Info, PossibleDaysInMonth } from 'luxon';\nimport { FC, ReactNode, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { ButtonColour } from '../BaseButton/BaseButton';\nimport Button from '../Button/Button';\nimport Table from '../Table/Table';\nimport TableBody from '../TableBody/TableBody';\nimport TableCell from '../TableCell/TableCell';\nimport TableHead from '../TableHead/TableHead';\nimport TableRow from '../TableRow/TableRow';\nimport Typography from '../Typography/Typography';\n\nconst Toolbar = styled.div`\n align-items: stretch;\n background-color: #007fa8;\n color: #fff;\n display: flex;\n flex-direction: row;\n`;\n\nconst Title = styled(Typography)`\n flex-grow: 1;\n line-height: 40px;\n`;\n\ninterface ICalendarButton {\n $fixed?: boolean;\n}\n\nconst CalendarButton = styled(Button)<ICalendarButton>`\n ${({ $fixed = false }) => `\n ${$fixed ? 'width' : 'min-width'}: 40px;\n padding: 0;\n `}\n`;\n\nconst Weekdays: FC = () => {\n const short = Info.weekdays('short');\n const abbrs = Info.weekdays();\n\n return (\n <TableHead>\n <TableRow colour=\"primary\">\n {short.map((day, i) => (\n <TableCell\n key={day}\n abbr={abbrs[i]}\n as=\"th\"\n align=\"center\"\n scope=\"col\"\n >\n {day}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n};\n\ninterface IDates {\n date: DateTime;\n id: string;\n view: DateTime;\n onSelect: (day: number, month: number, year: number) => void;\n}\n\nconst Dates: FC<IDates> = ({ date, id, onSelect, view }) => {\n const currentDay = parseInt(date.toFormat('dd'), 10);\n const { daysInMonth } = view;\n const firstDayOfMonth = parseInt(view.startOf('month').toFormat('c'), 10);\n const previousMonth = view.minus({\n months: 1,\n });\n const lastDayOfPreviousMonth = parseInt(\n previousMonth.endOf('month').toFormat('dd'),\n 10,\n );\n const nextMonth = view.plus({\n months: 1,\n });\n\n const blanks = [...Array(firstDayOfMonth - 1)]\n .map((_, i) => {\n const day = lastDayOfPreviousMonth - i;\n const thisMonth = date.hasSame(previousMonth, 'month');\n\n let colour: ButtonColour;\n\n if (thisMonth) {\n colour = day === currentDay ? 'primary' : 'secondary';\n } else {\n colour = 'secondary';\n }\n\n return (\n <TableCell key={0 - i} align=\"center\">\n <CalendarButton block disabled colour={colour}>\n {day}\n </CalendarButton>\n </TableCell>\n );\n })\n .reverse();\n const days = [...Array(daysInMonth)].map((_, i) => {\n const day = i + 1;\n const month = view.get('month');\n const year = view.get('year');\n const thisMonth = date.hasSame(view, 'month');\n\n let colour: ButtonColour;\n\n if (thisMonth) {\n colour = day === currentDay ? 'primary' : 'secondary';\n } else {\n colour = 'secondary';\n }\n\n return (\n <TableCell key={day} align=\"center\">\n <CalendarButton\n block\n colour={colour}\n data-testid={`calendar-day-${day}`}\n tabIndex={-1}\n onClick={() => onSelect(day, month, year)}\n >\n {day}\n </CalendarButton>\n </TableCell>\n );\n });\n const totalSlots = [...blanks, ...days];\n const rows: ReactNode[] = [];\n\n let cells: ReactNode[] = [];\n\n totalSlots.forEach((row, i) => {\n if (i % 7 !== 0) {\n cells.push(row);\n } else {\n rows.push(cells);\n cells = [];\n cells.push(row);\n }\n\n if (i === totalSlots.length - 1) {\n const filler = [...Array(7 - cells.length)].map((_, fillerIndex) => {\n const key = (daysInMonth as PossibleDaysInMonth) + fillerIndex + 1;\n\n const day = 1 + fillerIndex;\n const thisMonth = date.hasSame(nextMonth, 'month');\n\n let colour: ButtonColour;\n\n if (thisMonth) {\n colour = day === currentDay ? 'primary' : 'secondary';\n } else {\n colour = 'secondary';\n }\n\n return (\n <TableCell key={key} align=\"center\">\n <CalendarButton block disabled colour={colour}>\n {day}\n </CalendarButton>\n </TableCell>\n );\n });\n\n rows.push([...cells, ...filler]);\n }\n });\n\n return (\n <Table id={id} role=\"grid\">\n <Weekdays />\n\n <TableBody>\n {rows.map((d, i) => (\n <TableRow key={i}>{d}</TableRow>\n ))}\n </TableBody>\n </Table>\n );\n};\n\ntype JumpUnits = 'month' | 'year';\n\nconst selectMoment = (start: DateTime, date?: DateTime) => date || start;\n\nexport interface ICalendarProps {\n selectedDate?: string;\n id: string;\n onDateChange: (date: string) => void;\n}\n\nconst Calendar: FC<ICalendarProps> = ({\n onDateChange,\n id,\n selectedDate = '',\n}) => {\n const [startDate] = useState(() => {\n if (selectedDate !== '') {\n return DateTime.fromISO(selectedDate).toUTC();\n }\n\n return DateTime.utc();\n });\n const [date, setDate] = useState<DateTime>();\n const [view, setView] = useState<DateTime>();\n const [currentMonth, setCurrentMonth] = useState('');\n const [currentYear, setCurrentYear] = useState('');\n const selected = selectMoment(startDate, date);\n const selectedView = selectMoment(startDate, view);\n const grid = `${id}-calendar`;\n const label = `${id}-dialog-label`;\n const setDay = (day: number, month: number, year: number) => {\n const updated = selected.set({\n day,\n month,\n year,\n });\n\n setDate(updated);\n };\n const next = (unit: JumpUnits) => {\n const updated = selectedView.plus({\n [unit]: 1,\n });\n\n setView(updated);\n };\n const previous = (unit: JumpUnits) => {\n const updated = selectedView.minus({\n [unit]: 1,\n });\n\n setView(updated);\n };\n\n useEffect(() => {\n setCurrentMonth(selectedView.toFormat('MMMM'));\n setCurrentYear(selectedView.toFormat('y'));\n }, [selectedView]);\n\n useEffect(() => {\n const isoDate = date?.toISO();\n\n if (isoDate) {\n onDateChange(isoDate);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [date]);\n\n return (\n <>\n <Toolbar>\n <CalendarButton\n $fixed\n block\n aria-label=\"Previous year\"\n onClick={() => previous('year')}\n >\n <FontAwesomeIcon icon={faAngleDoubleLeft} />\n </CalendarButton>\n\n <CalendarButton\n $fixed\n block\n aria-label=\"Previous month\"\n onClick={() => previous('month')}\n >\n <FontAwesomeIcon icon={faAngleLeft} />\n </CalendarButton>\n\n <Title\n id={label}\n component=\"p\"\n variant=\"h6\"\n align=\"center\"\n margin=\"none\"\n >\n {currentMonth} {currentYear}\n </Title>\n\n <CalendarButton\n $fixed\n block\n aria-label=\"Next month\"\n onClick={() => next('month')}\n >\n <FontAwesomeIcon icon={faAngleRight} />\n </CalendarButton>\n\n <CalendarButton\n $fixed\n block\n aria-label=\"Next year\"\n onClick={() => next('year')}\n >\n <FontAwesomeIcon icon={faAngleDoubleRight} />\n </CalendarButton>\n </Toolbar>\n\n <Dates id={grid} date={selected} view={selectedView} onSelect={setDay} />\n </>\n );\n};\n\nexport default Calendar;\n","import { FC, ReactNode } from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\n\nconst cardTheme = {\n lg: {\n padding: '20px',\n },\n md: {\n padding: '10px',\n },\n none: {\n padding: '0',\n },\n sm: {\n padding: '5px',\n },\n};\n\ntype CardPadding = keyof typeof cardTheme;\n\ninterface IBaseCard {\n $padding: CardPadding;\n}\n\nconst BaseCard = styled.div<IBaseCard>`\n ${({ $padding, theme }) => `\n background: #f8f8f8;\n color: #000;\n padding: ${theme[$padding].padding}\n `}\n`;\n\nexport interface ICardProps {\n children: ReactNode;\n padding?: CardPadding;\n}\n\nconst Card: FC<ICardProps> = ({ children, padding = 'md' }) => (\n <ThemeProvider theme={cardTheme}>\n <BaseCard $padding={padding}>{children}</BaseCard>\n </ThemeProvider>\n);\n\nexport default Card;\n","import styled from 'styled-components';\n\nconst CheckableInput = styled.input`\n cursor: pointer;\n height: 100%;\n left: 0;\n margin: 0;\n padding: 0;\n position: absolute;\n opacity: 0;\n top: 0;\n width: 100%;\n z-index: 1;\n`;\n\nexport default CheckableInput;\n","import styled from 'styled-components';\n\nconst helpTextSpacing = {\n lg: '20px',\n md: '10px',\n sm: '5px',\n};\n\nexport interface IHelpTextProps {\n error: boolean;\n spacing: keyof typeof helpTextSpacing;\n}\n\nconst HelpText = styled('p').withConfig({\n shouldForwardProp: (prop) => !['error', 'spacing'].includes(prop),\n})<IHelpTextProps>`\n ${({ error, spacing }) => `\n color: ${error ? 'rgb(199,56,79)' : '#727272'};\n font-size: 0.75rem;\n margin-bottom: ${helpTextSpacing[spacing]};\n `}\n`;\n\nexport default HelpText;\n","import { faExclamation } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div`\n background-color: rgb(199, 56, 79);\n border-radius: 50%;\n color: #fff;\n cursor: pointer;\n display: block;\n height: 22px;\n line-height: 22px;\n text-align: center;\n width: 22px;\n`;\n\nexport interface IInputAlertProps {\n message: ReactNode;\n}\n\nconst InputAlert: FC<IInputAlertProps> = () => (\n <Wrapper role=\"alert\">\n <FontAwesomeIcon icon={faExclamation} />\n </Wrapper>\n);\n\nexport default InputAlert;\n","import { FC, ReactNode, useEffect, useRef, useState } from 'react';\nimport { Manager, Popper, Reference } from 'react-popper';\nimport styled, { ThemeProvider } from 'styled-components';\n\nconst tooltipTheme = {\n danger: {\n background: 'rgb(199,56,79)',\n colour: '#fff',\n },\n primary: {\n background: '#007fa8',\n colour: '#fff',\n },\n secondary: {\n background: '#f6f9fc',\n colour: '#333',\n },\n success: {\n background: 'rgb(0,128,93)',\n colour: '#fff',\n },\n};\n\ntype TooltipPlacement =\n | 'auto-start'\n | 'auto'\n | 'auto-end'\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'right-start'\n | 'right'\n | 'right-end'\n | 'bottom-end'\n | 'bottom'\n | 'bottom-start'\n | 'left-end'\n | 'left'\n | 'left-start';\n\ninterface ITooltipPlacement {\n $colour: keyof typeof tooltipTheme;\n $placement: TooltipPlacement;\n}\n\nconst TooltipArrow = styled.div<ITooltipPlacement>`\n ${({ $colour, $placement, theme }) => `\n height: 0;\n position: absolute;\n width: 0;\n\n ${(() => {\n switch ($placement) {\n case 'bottom':\n return `\n border-bottom: 5px solid ${theme[$colour].background};\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n top: -5px;\n `;\n case 'left':\n return `\n border-bottom: 5px solid transparent;\n border-left: 5px solid ${theme[$colour].background};\n border-top: 5px solid transparent;\n right: -5px;\n `;\n case 'right':\n return `\n border-bottom: 5px solid transparent;\n border-right: 5px solid ${theme[$colour].background};\n border-top: 5px solid transparent;\n left: -5px;\n `;\n case 'top':\n return `\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid ${theme[$colour].background};\n bottom: -5px;\n `;\n default:\n return '';\n }\n })()}\n `}\n`;\n\nconst TooltipWrapper = styled.div`\n display: inline-block;\n position: relative;\n`;\n\ninterface ITooltipContent extends ITooltipPlacement {\n $visible: boolean;\n}\n\nconst TooltipContent = styled.div<ITooltipContent>`\n ${({ $colour, $visible, theme }) => `\n background-color: ${theme[$colour].background};\n color: ${theme[$colour].colour};\n font-size: 14px;\n line-height: 22px;\n padding: 0 5px;\n visibility: ${$visible ? 'visible' : 'hidden'};\n z-index: 10;\n `}\n`;\n\nexport interface ITooltipProps {\n colour?: keyof typeof tooltipTheme;\n id: string;\n message: ReactNode;\n parent: ReactNode;\n placement: TooltipPlacement;\n}\n\nconst Tooltip: FC<ITooltipProps> = ({\n colour = 'primary',\n message,\n id,\n parent,\n placement,\n}) => {\n let timer: ReturnType<typeof setTimeout>;\n const [visible, setVisibility] = useState(false);\n const mounted = useRef(false);\n const hideTooltip = () => {\n timer = setTimeout(() => {\n if (mounted.current) {\n setVisibility(false);\n }\n }, 1000);\n };\n const showTooltip = () => {\n clearTimeout(timer);\n setVisibility(true);\n };\n\n useEffect(() => {\n mounted.current = true;\n\n return () => {\n mounted.current = false;\n };\n });\n\n return (\n <ThemeProvider theme={tooltipTheme}>\n <Manager>\n <Reference>\n {({ ref }) => (\n <TooltipWrapper\n ref={ref}\n onBlur={hideTooltip}\n onFocus={showTooltip}\n onMouseOver={showTooltip}\n onMouseOut={hideTooltip}\n >\n {parent}\n </TooltipWrapper>\n )}\n </Reference>\n\n <Popper\n placement={placement}\n strategy=\"fixed\"\n modifiers={[\n {\n name: 'offset',\n options: {\n offset: [0, 5],\n },\n },\n ]}\n >\n {({ arrowProps, placement: popperPlacement, ref, style }) => {\n const placementToUse =\n process.env.NODE_ENV === 'test' ? placement : popperPlacement;\n\n return (\n <TooltipContent\n $placement={placementToUse}\n $visible={visible}\n id={id}\n role=\"tooltip\"\n ref={ref}\n $colour={colour}\n style={style}\n >\n {message}\n <TooltipArrow\n $placement={placementToUse}\n ref={arrowProps.ref}\n $colour={colour}\n style={arrowProps.style}\n />\n </TooltipContent>\n );\n }}\n </Popper>\n </Manager>\n </ThemeProvider>\n );\n};\n\nexport default Tooltip;\n","import styled from 'styled-components';\n\nconst ValidatorWrapper = styled.div`\n margin-top: -11px;\n position: absolute;\n right: 8px;\n top: 50%;\n z-index: 1;\n`;\n\nexport default ValidatorWrapper;\n","import { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport HelpText from '../HelpText/HelpText';\nimport InputAlert from '../InputAlert/InputAlert';\nimport Tooltip from '../Tooltip/Tooltip';\nimport ValidatorWrapper from '../ValidatorWrapper/ValidatorWrapper';\n\nconst BaseFieldSet = styled.fieldset`\n padding-right: 38px;\n position: relative;\n`;\n\nexport interface IFieldSetProps {\n error: boolean;\n children: ReactNode;\n helpText?: string;\n message: string;\n name: string;\n spacing: 'lg' | 'md' | 'sm';\n}\n\nconst FieldSet: FC<IFieldSetProps> = ({\n error,\n children,\n helpText = null,\n message,\n name,\n spacing,\n}) => {\n const describedBy = `${name}-error`;\n\n return (\n <>\n <BaseFieldSet>\n {children}\n\n <ValidatorWrapper>\n {error && (\n <Tooltip\n id={describedBy}\n parent={<InputAlert message={message} />}\n colour=\"danger\"\n placement=\"left\"\n message={message}\n />\n )}\n </ValidatorWrapper>\n </BaseFieldSet>\n\n {helpText && (\n <HelpText error={error} spacing={spacing}>\n {helpText}\n </HelpText>\n )}\n </>\n );\n};\n\nexport default FieldSet;\n","import { FormikErrors, FormikTouched, getIn } from 'formik';\nimport { useEffect, useState } from 'react';\n\nconst useInputValidation = <T>(\n name: string,\n errors: FormikErrors<T>,\n touched: FormikTouched<T>,\n): boolean => {\n const [error, setError] = useState(false);\n\n useEffect(() => {\n const touch = getIn(touched, name);\n const err = getIn(errors, name);\n\n setError(!!touch && !!err);\n }, [errors, name, touched]);\n\n return error;\n};\n\nexport default useInputValidation;\n","import styled from 'styled-components';\n\nexport interface ILegendProps {\n error: boolean;\n}\n\nconst Legend = styled('legend').withConfig({\n shouldForwardProp: (prop) => !['error'].includes(prop),\n})<ILegendProps>`\n ${({ error }) => `\n color: ${error ? 'rgb(199,56,79)' : '#007aa3'};\n font-size: 16px;\n margin-bottom: 10px;\n `}\n`;\n\nexport default Legend;\n","import { darken } from 'polished';\nimport { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\n\ninterface IBaseOptionLabel {\n $disabled: boolean;\n $selected: boolean;\n}\n\nconst BaseOptionLabel = styled.label<IBaseOptionLabel>`\n ${({ $disabled, $selected }) => `\n cursor: pointer;\n display: inline-flex;\n margin: 0 10px 10px 0;\n padding: 0 8px;\n position: relative;\n\n ${\n $disabled\n ? `\n background: #fff;\n border-bottom: 2px solid #eee;\n color: #767676;\n `\n : `\n background: ${$selected ? '#007fa8' : '#fff'};\n border-bottom: 2px solid ${$selected ? darken(0.02, '#007fa8') : '#eee'};\n color: ${$selected ? '#fff' : '#000'};\n `\n }\n `}\n`;\n\ninterface IOptionLabel {\n children: ReactNode;\n disabled: boolean;\n selected: boolean;\n}\n\nconst OptionLabel: FC<IOptionLabel> = ({ children, disabled, selected }) => (\n <BaseOptionLabel $disabled={disabled} $selected={selected}>\n {children}\n </BaseOptionLabel>\n);\n\nexport default OptionLabel;\n","import styled from 'styled-components';\n\nconst OptionLabelText = styled.div`\n line-height: 44px;\n`;\n\nexport default OptionLabelText;\n","import { Field, FieldProps, FormikProps, FormikValues, getIn } from 'formik';\nimport { ChangeEvent, FC } from 'react';\nimport CheckableInput from '../CheckableInput/CheckableInput';\nimport FieldSet from '../FieldSet/FieldSet';\nimport useInputValidation from '../hooks/useInputValidation';\nimport Legend from '../Legend/Legend';\nimport OptionLabel from '../OptionLabel/OptionLabel';\nimport OptionLabelText from '../OptionLabelText/OptionLabelText';\n\ntype CheckBoxSpacing = 'sm' | 'md' | 'lg';\n\ninterface IInternalCheckBox extends FieldProps {\n disabled: boolean;\n helpText: string;\n label: string;\n legend: string;\n readOnly: boolean;\n spacing: CheckBoxSpacing;\n onChange: (\n e: ChangeEvent<HTMLInputElement>,\n form: FormikProps<FormikValues>,\n ) => void;\n}\n\nconst InternalCheckBox: FC<IInternalCheckBox> = ({\n disabled,\n field,\n form,\n helpText,\n label,\n legend,\n onChange,\n readOnly,\n spacing,\n}) => {\n const { errors, handleChange, touched } = form;\n const error = useInputValidation(field.name, errors, touched);\n const markAsDisabled = disabled || readOnly;\n const doChange = (e: ChangeEvent<HTMLInputElement>) => {\n handleChange(e);\n\n if (onChange) {\n onChange(e, form);\n }\n };\n\n return (\n <FieldSet\n error={error}\n helpText={helpText}\n message={getIn(errors, field.name)}\n name={field.name}\n spacing={spacing}\n >\n <Legend error={error}>{legend}</Legend>\n\n <OptionLabel disabled={disabled} selected={field.value}>\n <CheckableInput\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...field}\n checked={field.value}\n disabled={markAsDisabled}\n readOnly={readOnly}\n type=\"checkbox\"\n onChange={doChange}\n />\n\n <OptionLabelText>{label}</OptionLabelText>\n </OptionLabel>\n\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n {readOnly && <input type=\"hidden\" {...field} />}\n </FieldSet>\n );\n};\n\nexport interface ICheckBoxProps {\n disabled?: boolean;\n helpText?: string;\n label: string;\n legend: string;\n name: string;\n readOnly?: boolean;\n spacing?: CheckBoxSpacing;\n onChange?: (\n e: ChangeEvent<HTMLInputElement>,\n form: FormikProps<FormikValues>,\n ) => void;\n}\n\nconst CheckBox: FC<ICheckBoxProps> = ({\n disabled = false,\n helpText = null,\n label,\n legend,\n name,\n onChange,\n readOnly = false,\n spacing = 'md',\n}) => (\n <Field\n id={name}\n component={InternalCheckBox}\n disabled={disabled}\n helpText={helpText}\n label={label}\n legend={legend}\n name={name}\n onChange={onChange}\n readOnly={readOnly}\n spacing={spacing}\n />\n);\n\nexport default CheckBox;\n","import { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\n\ninterface IColContainer {\n $align: 'centre' | 'left' | 'right';\n $lg: number;\n $lgOffset: number;\n $md: number;\n $mdOffset: number;\n $sm: number;\n $smOffset: number;\n $verticalAlign: boolean;\n $xs: number;\n $xsOffset: number;\n}\n\nconst ColContainer = styled.div<IColContainer>`\n ${({\n $align,\n $lg,\n $lgOffset,\n $md,\n $mdOffset,\n $sm,\n $smOffset,\n $verticalAlign,\n $xs,\n $xsOffset,\n }) => `\n grid-column: ${\n $xsOffset > 0 ? `${$xsOffset} / span ${$xs}` : `span ${$xs}`\n };\n position: relative;\n text-align ${$align === 'centre' ? 'center' : $align};\n\n ${\n $verticalAlign\n ? `\n align-items: center;\n display: flex;\n `\n : ``\n }\n\n ${\n $sm\n ? `\n @media (min-width: 576px) {\n grid-column: ${\n $smOffset > 0 ? `${$smOffset} / span ${$sm}` : `span ${$sm}`\n };\n }\n `\n : ''\n }\n\n ${\n $md\n ? `\n @media (min-width: 768px) {\n grid-column: ${\n $mdOffset > 0 ? `${$mdOffset} / span ${$md}` : `span ${$md}`\n };\n }\n `\n : ''\n }\n\n ${\n $lg\n ? `\n @media (min-width: 992px) {\n grid-column: ${\n $lgOffset > 0 ? `${$lgOffset} / span ${$lg}` : `span ${$lg}`\n };\n }\n `\n : ''\n }\n `}\n`;\n\nconst VericalAlignWrapper = styled.div`\n flex: 1;\n`;\n\nexport interface IColProps {\n children: ReactNode;\n align?: 'centre' | 'left' | 'right';\n lg?: number;\n lgOffset?: number;\n md?: number;\n mdOffset?: number;\n sm?: number;\n smOffset?: number;\n verticalAlign?: 'middle';\n xs?: number;\n xsOffset?: number;\n}\n\nconst Col: FC<IColProps> = ({\n children,\n align = 'left',\n lg = 0,\n lgOffset = 0,\n md = 0,\n mdOffset = 0,\n sm = 0,\n smOffset = 0,\n verticalAlign = null,\n xs = 12,\n xsOffset = 0,\n}) => (\n <ColContainer\n $align={align}\n $lg={lg}\n $lgOffset={lgOffset}\n $md={md}\n $mdOffset={mdOffset}\n $sm={sm}\n $smOffset={smOffset}\n $verticalAlign={!!verticalAlign}\n $xs={xs}\n $xsOffset={xsOffset}\n >\n {verticalAlign ? (\n <VericalAlignWrapper>{children}</VericalAlignWrapper>\n ) : (\n children\n )}\n </ColContainer>\n);\n\nexport default Col;\n","import { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.section`\n background-color: #f8f8f8;\n color: #000;\n display: block;\n padding: 1rem;\n`;\n\nexport interface IContentProps {\n children: ReactNode;\n}\n\nconst Content: FC<IContentProps> = ({ children }) => (\n <Wrapper>{children}</Wrapper>\n);\n\nexport default Content;\n","import { ReactNode } from 'react';\nimport Table from '../Table/Table';\nimport TableBody from '../TableBody/TableBody';\nimport TableHead from '../TableHead/TableHead';\nimport TableRow from '../TableRow/TableRow';\n\ntype DataTableTheme = 'default' | 'primary' | 'secondary';\n\nexport interface IDataTableProps<T> {\n header?: ReactNode;\n items: T[];\n noResults: ReactNode;\n theme?: DataTableTheme;\n row: (item: T) => ReactNode;\n}\n\nfunction DataTable<T>({\n header = null,\n items,\n noResults,\n row,\n theme = 'primary',\n}: IDataTableProps<T>): JSX.Element {\n if (items.length === 0) {\n return <>{noResults}</>;\n }\n\n return (\n <Table>\n {header && (\n <TableHead>\n <TableRow colour={theme}>{header}</TableRow>\n </TableHead>\n )}\n\n <TableBody>\n {items.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <TableRow key={i}>{row(item)}</TableRow>\n ))}\n </TableBody>\n </Table>\n );\n}\n\nexport default DataTable;\n","import { DateTime as Luxon } from 'luxon';\nimport { FC } from 'react';\n\nconst defaultFormat = 'dd/MM/yyyy';\n\ninterface IFormatDateTime {\n ISOString: string;\n formatted: string;\n}\n\nexport const formatDateTime = (\n value: string | number,\n format = defaultFormat,\n): IFormatDateTime => {\n const date =\n typeof value === 'string' ? Luxon.fromISO(value) : Luxon.fromSeconds(value);\n\n return {\n ISOString: date.toUTC().toISO() as string,\n formatted: date.toFormat(format),\n };\n};\n\nexport interface IDateTimeProps {\n format?: string;\n value: string | number;\n}\n\nconst DateTime: FC<IDateTimeProps> = ({ format = defaultFormat, value }) => {\n const { ISOString, formatted } = formatDateTime(value, format);\n\n return <time dateTime={ISOString}>{formatted}</time>;\n};\n\nexport default DateTime;\n","import { useEffect } from 'react';\n\ntype Handler = (event: globalThis.MouseEvent | TouchEvent) => void;\n\nconst useOutsideClick = (ref: HTMLElement | null, handler: Handler): void => {\n useEffect(() => {\n const listener = (event: globalThis.MouseEvent | TouchEvent) => {\n if (!ref || ref.contains(event.target as Node)) {\n return;\n }\n\n handler(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [handler, ref]);\n};\n\nexport default useOutsideClick;\n","import { FC, ReactNode } from 'react';\nimport styled, { ThemeProvider } from 'styled-components';\nimport HelpText from '../HelpText/HelpText';\nimport InputAlert from '../InputAlert/InputAlert';\nimport Tooltip from '../Tooltip/Tooltip';\nimport ValidatorWrapper from '../ValidatorWrapper/ValidatorWrapper';\n\nconst inputWrapperTheme = {\n lg: {\n spacing: '20px',\n },\n md: {\n spacing: '10px',\n },\n sm: {\n spacing: '5px',\n },\n};\n\ninterface IBaseInputWrapper {\n $error: boolean;\n $spacing: keyof typeof inputWrapperTheme;\n}\n\nconst BaseInputWrapper = styled.div<IBaseInputWrapper>`\n ${({ theme, $error, $spacing }) => `\n background: #fff;\n border-bottom: 2px solid ${$error ? 'rgb(199,56,79)' : '#eee'};\n margin-bottom: ${theme[$spacing].spacing};\n padding: 0 38px 0 8px;\n position: relative;\n `}\n`;\n\nexport interface IInputWrapperProps {\n children: ReactNode;\n error: boolean;\n helpText?: string;\n message: string;\n name: string;\n spacing: keyof typeof inputWrapperTheme;\n}\n\nconst InputWrapper: FC<IInputWrapperProps> = ({\n children,\n error,\n helpText = null,\n message,\n name,\n spacing,\n}) => {\n const describedBy = `${name}-error`;\n\n return (\n <ThemeProvider theme={inputWrapperTheme}>\n <BaseInputWrapper $error={error} $spacing={helpText ? 'md' : spacing}>\n {children}\n\n <ValidatorWrapper>\n {error && (\n <Tooltip\n id={describedBy}\n parent={<InputAlert message={message} />}\n colour=\"danger\"\n placement=\"left\"\n message={message}\n />\n )}\n </ValidatorWrapper>\n </BaseInputWrapper>\n\n {helpText && (\n <HelpText error={error} spacing={spacing}>\n {helpText}\n </HelpText>\n )}\n </ThemeProvider>\n );\n};\n\nexport default InputWrapper;\n","import styled from 'styled-components';\n\nexport interface ILabelProps {\n active: boolean;\n error: boolean;\n}\n\nconst Label = styled('label').withConfig({\n shouldForwardProp: (prop) => !['active', 'error'].includes(prop),\n})<ILabelProps>`\n ${({ active, error }) => `\n color: ${(() => {\n if (error) {\n return 'rgb(199,56,79)';\n }\n\n if (active) {\n return '#007fa8';\n }\n\n return '#767676';\n })()};\n font-size: 16px;\n pointer-events: none;\n position: absolute;\n transform: ${\n active ? 'translate(0,4px) scale(.75)' : 'translate(0,16px) scale(1)'\n };\n transform-origin: top left;\n transition: all .1s ease-in-out;\n `}\n`;\n\nexport default Label;\n","import styled from 'styled-components';\n\nexport interface ILikeInputProps {\n $disabled: boolean;\n}\n\nconst LikeInput = styled.div<ILikeInputProps>`\n ${({ $disabled }) => `\n background: #fff;\n border: none;\n color: ${$disabled ? '#767676' : '#333'};\n font-size: 16px;\n line-height: 18px;\n outline: 0;\n padding: 16px 0 10px;\n width: 100%;\n `}\n`;\n\nexport default LikeInput;\n","import { faCalendar } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Field, FieldProps, getIn } from 'formik';\nimport { DateTime as Luxon } from 'luxon';\nimport { FC, useEffect, useState } from 'react';\nimport { usePopper } from 'react-popper';\nimport styled from 'styled-components';\nimport Calendar from '../Calendar/Calendar';\nimport DateTime, { formatDateTime } from '../DateTime/DateTime';\nimport useOutsideClick from '../hooks/useOutsideClick';\nimport InputWrapper from '../InputWrapper/InputWrapper';\nimport Label from '../Label/Label';\nimport LikeInput from '../LikeInput/LikeInput';\nimport { InputSpacing } from '../TextBox/TextBox';\n\nconst IconOuter = styled.div`\n margin-top: -21px;\n position: absolute;\n right: 38px;\n top: 50%;\n z-index: 1;\n`;\n\nconst IconButton = styled.button`\n appearance: none;\n background-color: #fff;\n border: 0;\n color: #767676;\n cursor: pointer;\n display: block;\n height: 42px;\n line-height: 42px;\n padding: 0;\n text-align: center;\n width: 42px;\n`;\n\nconst DatePickerWrapper = styled.div`\n position: relative;\n`;\n\nconst CalendarWrapper = styled.div`\n z-index: 1000;\n`;\n\ninterface IInnerDatePicker extends FieldProps<string, string> {\n disabled: boolean;\n helpText: string;\n label: string;\n readOnly: boolean;\n spacing: InputSpacing;\n}\n\nconst InnerDatePicker: FC<IInnerDatePicker> = ({\n disabled,\n field,\n form,\n helpText,\n label,\n readOnly,\n spacing,\n}) => {\n const [referenceElement, setReferenceElement] =\n useState<HTMLDivElement | null>(null);\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(\n null,\n );\n const { attributes, styles } = usePopper(referenceElement, popperElement, {\n placement: 'bottom-end',\n });\n const [error, setError] = useState(false);\n const [visible, setVisible] = useState(false);\n const { name, value } = field;\n const [date, setDate] = useState(() => {\n if (value === '') {\n return Luxon.utc().toISO();\n }\n\n return Luxon.fromISO(value).toUTC().toISO();\n });\n const { errors, setFieldValue } = form;\n const markAsDisabled = disabled || readOnly;\n const describedBy = `${name}-error`;\n const { formatted } = formatDateTime(value);\n const selectDate = (d: string) => {\n setDate(d);\n };\n\n useEffect(() => {\n setFieldValue(name, date).catch(() => {});\n setVisible(false);\n\n const err = getIn(errors, name);\n\n setError(!!err);\n }, [date, errors, name, setFieldValue]);\n\n useOutsideClick(referenceElement, () => {\n setVisible(false);\n });\n\n return (\n <DatePickerWrapper ref={setReferenceElement}>\n <InputWrapper\n error={error}\n helpText={helpText}\n message={getIn(errors, name)}\n name={name}\n spacing={spacing}\n >\n <Label active htmlFor={name} error={error}>\n {label}\n </Label>\n\n <input\n hidden\n id={name}\n disabled={disabled}\n readOnly={readOnly}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...field}\n />\n\n <LikeInput\n aria-describedby={error ? describedBy : undefined}\n $disabled={disabled}\n >\n <DateTime value={value} />\n </LikeInput>\n\n <IconOuter>\n <IconButton\n data-testid=\"date-picker\"\n disabled={markAsDisabled}\n type=\"button\"\n aria-label={`Choose ${label}, selected date is ${formatted}`}\n onClick={() => setVisible(!visible)}\n >\n <FontAwesomeIcon icon={faCalendar} />\n </IconButton>\n </IconOuter>\n </InputWrapper>\n\n {visible && (\n <CalendarWrapper\n ref={setPopperElement}\n style={styles.popper}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...attributes.popper}\n >\n <Calendar id={name} selectedDate={value} onDateChange={selectDate} />\n </CalendarWrapper>\n )}\n </DatePickerWrapper>\n );\n};\n\nexport interface IDatePickerProps {\n disabled?: boolean;\n helpText?: string;\n label: string;\n name: string;\n readOnly?: boolean;\n spacing?: InputSpacing;\n}\n\nconst DatePicker: FC<IDatePickerProps> = ({\n disabled = false,\n helpText = null,\n label,\n name,\n readOnly = false,\n spacing = 'md',\n}) => (\n <Field\n component={InnerDatePicker}\n disabled={disabled}\n helpText={helpText}\n id={name}\n label={label}\n name={name}\n readOnly={readOnly}\n spacing={spacing}\n />\n);\n\nexport default DatePicker;\n","import { Field, FieldProps, FormikProps, FormikValues, getIn } from 'formik';\nimport { ChangeEvent, FC, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport useInputValidation from '../hooks/useInputValidation';\nimport InputWrapper from '../InputWrapper/InputWrapper';\nimport Label from '../Label/Label';\nimport LikeInput from '../LikeInput/LikeInput';\n\nexport type FileUploadSpacing = 'sm' | 'md' | 'lg';\n\ninterface IUploadInput {\n $active: boolean;\n}\n\nconst UploadInput = styled.input<IUploadInput>`\n ${({ $active }) => `\n cursor: ${$active ? 'text' : 'pointer'};\n height: 44px;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n width: 100%;\n `}\n`;\n\nconst InnerFileUpload = styled.div`\n display: flex;\n`;\n\nconst UploadButton = styled(Button)`\n height: 44px;\n`;\n\nconst InputContainer = styled.div`\n flex-grow: 1;\n position: relative;\n`;\n\ninterface IInternalFileUpload extends FieldProps {\n accept: string;\n buttonText: string;\n disabled: boolean;\n helpText: string;\n label: string;\n loading: boolean;\n spacing: FileUploadSpacing;\n onSelect: (\n file: File,\n form: FormikProps<FormikValues>,\n ) => void | Promise<void>;\n}\n\nconst InternalFileUpload: FC<IInternalFileUpload> = ({\n accept,\n buttonText,\n disabled,\n field,\n form,\n helpText,\n label,\n loading,\n onSelect,\n spacing,\n}) => {\n const [active, setActive] = useState(false);\n const { errors, touched } = form;\n const { name } = field;\n const [fileName, setFileName] = useState('');\n const error = useInputValidation(name, errors, touched);\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const file = e.target.files[0];\n\n setFileName(file.name);\n\n Promise.resolve(onSelect(file, form))\n .then(async () => {\n await form.setFieldTouched(name, true);\n })\n .catch(() => {});\n }\n };\n const onClick = () => {\n const input = document.getElementById(name) as HTMLInputElement;\n\n input.click();\n };\n\n useEffect(() => {\n setActive(!!fileName);\n }, [fileName]);\n\n return (\n <InputWrapper\n error={error}\n helpText={helpText}\n message={getIn(errors, name)}\n name={name}\n spacing={spacing}\n >\n <InnerFileUpload>\n <InputContainer>\n <Label htmlFor={name} active={active} error={error}>\n {label}\n </Label>\n\n <LikeInput $disabled={disabled}>{fileName}</LikeInput>\n\n <UploadInput\n $active={active}\n id={name}\n disabled={disabled}\n type=\"file\"\n accept={accept}\n onChange={onChange}\n />\n\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <input {...field} type=\"hidden\" disabled={disabled} />\n </InputContainer>\n\n <UploadButton\n colour=\"secondary\"\n disabled={disabled}\n loading={loading}\n onClick={onClick}\n >\n {buttonText}\n </UploadButton>\n </InnerFileUpload>\n </InputWrapper>\n );\n};\n\nexport interface IFileUploadProps {\n accept?: string;\n buttonText: string;\n disabled?: boolean;\n helpText?: string;\n label: string;\n loading?: boolean;\n name: string;\n spacing?: FileUploadSpacing;\n onSelect: (\n file: File,\n form: FormikProps<FormikValues>,\n ) => void | Promise<void>;\n}\n\nconst FileUpload: FC<IFileUploadProps> = ({\n accept,\n buttonText,\n disabled = false,\n helpText,\n label,\n loading = false,\n name,\n onSelect,\n spacing = 'md',\n}) => (\n <Field\n component={InternalFileUpload}\n accept={accept}\n buttonText={buttonText}\n disabled={disabled}\n helpText={helpText}\n label={label}\n loading={loading}\n name={name}\n onSelect={onSelect}\n spacing={spacing}\n />\n);\n\nexport default FileUpload;\n","import { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\n\ninterface IRowContainer {\n $columns: number;\n $gutter: string;\n}\n\nconst RowContainer = styled.div<IRowContainer>`\n ${({ $columns, $gutter }) => `\n display: grid;\n gap: ${$gutter};\n grid-template-columns: repeat(${$columns},1fr);\n `}\n`;\n\nexport interface IRowProps {\n children: ReactNode;\n columns?: number;\n gutter?: string;\n}\n\nexport type TRowData<TInput, TOutput> = (input: TInput) => FC<TOutput>;\n\nconst Row: FC<IRowProps> = ({ children, columns = 12, gutter = '1rem' }) => (\n <RowContainer $columns={columns} $gutter={gutter}>\n {children}\n </RowContainer>\n);\n\nexport default Row;\n","import { Form as FormikForm, Formik, FormikValues } from 'formik';\nimport { ReactNode } from 'react';\nimport { ObjectSchema } from 'yup';\nimport Button from '../Button/Button';\nimport Col from '../Col/Col';\nimport Row from '../Row/Row';\n\nconst isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && !Array.isArray(value) && value !== null;\n\nfunction encodeNullValues<T extends Record<string, unknown>>(values: T): T {\n const initialValues = {\n ...values,\n };\n\n return Object.keys(initialValues).reduce((aggregate, key) => {\n const value = initialValues[key];\n\n if (value === null) {\n return {\n ...aggregate,\n [key]: '',\n };\n }\n\n if (isObject(value)) {\n return {\n ...aggregate,\n [key]: encodeNullValues(value),\n };\n }\n\n return {\n ...aggregate,\n [key]: value,\n };\n }, {} as T);\n}\n\nfunction formNormaliser<T extends Record<string, object>>(values: T) {\n return encodeNullValues({\n ...values,\n });\n}\n\nexport interface IFormProps<T extends FormikValues = FormikValues> {\n children: ReactNode;\n cancel?: ReactNode;\n initialValues: T;\n loading?: boolean;\n onPreSubmit?: (values: T) => T | Promise<T>;\n onSubmit: (values: T) => void | Promise<void>;\n submitLabel: string;\n validationSchema: ObjectSchema<T>;\n}\n\nfunction Form<T extends FormikValues = FormikValues>({\n children,\n cancel = null,\n initialValues,\n loading = false,\n onPreSubmit,\n onSubmit,\n submitLabel,\n validationSchema,\n}: IFormProps<T>) {\n const doSubmit = async (values: T) => {\n const payload = onPreSubmit\n ? await Promise.resolve(onPreSubmit(values))\n : values;\n\n await Promise.resolve(onSubmit(payload));\n };\n\n return (\n <Formik\n validateOnMount\n initialValues={formNormaliser(initialValues)}\n validationSchema={validationSchema}\n onSubmit={doSubmit}\n >\n {({ isValid }) => (\n <FormikForm autoComplete=\"off\" aria-label=\"form\">\n <Row>\n <Col>{children}</Col>\n\n <Col>\n <Row>\n <Col xs={12} md={cancel ? 3 : 6} mdOffset={7}>\n <Button\n block\n type=\"submit\"\n colour=\"success\"\n disabled={!isValid}\n size=\"lg\"\n loading={loading}\n >\n {submitLabel}\n </Button>\n </Col>\n\n {cancel && (\n <Col xs={12} md={3}>\n {cancel}\n </Col>\n )}\n </Row>\n </Col>\n </Row>\n </FormikForm>\n )}\n </Formik>\n );\n}\n\nexport default Form;\n","import { FC } from 'react';\nimport { Link as RouterLink, LinkProps } from 'react-router-dom';\nimport BaseLink from '../BaseLink/BaseLink';\n\nconst Link: FC<LinkProps> = (props) => (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <BaseLink as={RouterLink} {...props} />\n);\n\nexport default Link;\n","import { FC } from 'react';\nimport { Link, LinkProps } from 'react-router-dom';\nimport { ThemeProvider } from 'styled-components';\nimport BaseButton, {\n buttonTheme,\n IBaseButtonProps,\n} from '../BaseButton/BaseButton';\n\nconst InternalLink: FC<ILinkButtonProps> = ({\n className,\n colour,\n block,\n ...rest\n}) => (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <Link className={className} {...rest} />\n);\n\nexport interface ILinkButtonProps extends IBaseButtonProps, LinkProps {\n block?: boolean;\n}\n\nconst LinkButton: FC<ILinkButtonProps> = ({\n block = false,\n colour = 'primary',\n size = 'md',\n ...rest\n}) => (\n <ThemeProvider theme={buttonTheme}>\n <BaseButton\n as={InternalLink}\n block={block}\n colour={colour}\n size={size}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n />\n </ThemeProvider>\n);\n\nexport default LinkButton;\n","import { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport Col from '../Col/Col';\nimport useBreakpoint from '../hooks/useBreakpoint';\nimport Row from '../Row/Row';\n\ninterface IMasonryItemContainerProps {\n $gutter: string;\n}\n\nconst MasonryItem = styled.div<IMasonryItemContainerProps>`\n ${({ $gutter }) => `\n margin-bottom: ${$gutter};\n `}\n`;\n\nconst calculateCols = (cols: number) => 12 / cols;\n\nexport interface IMasonryProps {\n children: ReactNode | ReactNode[];\n gutter?: string;\n lg: number;\n md: number;\n sm: number;\n xs: number;\n}\n\nconst Masonry: FC<IMasonryProps> = ({\n children,\n gutter = '1rem',\n lg,\n md,\n sm,\n xs,\n}) => {\n const breakpoints = {\n lg,\n md,\n sm,\n xs,\n };\n const breakpoint = useBreakpoint();\n const columns = breakpoints[breakpoint];\n const cols: ReactNode[][] = Array.from(new Array(columns), () => []);\n const flat = Array.isArray(children) ? children.flat() : [children];\n\n flat.forEach((child, i) => {\n const colIndex = i % columns;\n\n cols[colIndex].push(\n // eslint-disable-next-line react/no-array-index-key\n <MasonryItem key={i} $gutter={gutter}>\n {child}\n </MasonryItem>,\n );\n });\n\n return (\n <Row gutter={gutter}>\n {cols.map((_, i) => (\n <Col\n // eslint-disable-next-line react/no-array-index-key\n key={i}\n xs={calculateCols(xs)}\n sm={calculateCols(sm)}\n md={calculateCols(md)}\n lg={calculateCols(lg)}\n >\n {cols[i]}\n </Col>\n ))}\n </Row>\n );\n};\n\nexport default Masonry;\n","import styled from 'styled-components';\n\nconst Overlay = styled.div`\n background: rgba(0, 0, 0, 0.5);\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 1000;\n`;\n\nexport default Overlay;\n","import { FC, MouseEvent, ReactNode, Suspense, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport styled from 'styled-components';\nimport Card from '../Card/Card';\nimport Loader from '../Loader/Loader';\nimport Overlay from '../Overlay/Overlay';\n\ntype TModalSize = 'sm' | 'lg';\n\nconst ModalOuter = styled.div`\n bottom: 0;\n left: 0;\n outline: 0;\n overflow-x: hidden;\n overflow-y: auto;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 1100;\n`;\n\nconst ModalContent = styled.div`\n outline: 0;\n position: relative;\n width: 100%;\n pointer-events: auto;\n`;\n\ninterface IModalDialogProps {\n size: TModalSize;\n}\n\nconst ModalDialog = styled.div<IModalDialogProps>`\n box-shadow:\n 0 3px 5px -1px rgba(0, 0, 0, 0.2),\n 0 5px 8px 0 rgba(0, 0, 0, 0.14),\n 0 1px 14px 0 rgba(0, 0, 0, 0.12);\n margin: 5rem auto;\n max-width: ${({ size }) => (size === 'sm' ? '500px' : '90vw')};\n pointer-events: none;\n position: relative;\n`;\n\nexport interface IModalProps {\n children: ReactNode;\n isOpen: boolean;\n size?: TModalSize;\n title: string;\n onDismiss: () => void;\n}\n\nconst Modal: FC<IModalProps> = ({\n children,\n isOpen,\n onDismiss,\n size = 'sm',\n title,\n}) => {\n const doNotDismiss = (e: MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n };\n\n useEffect(() => {\n const keyboardEvent = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onDismiss();\n }\n };\n\n document.addEventListener('keydown', keyboardEvent, false);\n\n return () => {\n document.body.style.removeProperty('overflow');\n\n document.removeEventListener('keydown', keyboardEvent, false);\n };\n }, [onDismiss]);\n\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n }\n }, [isOpen]);\n\n if (isOpen) {\n return createPortal(\n <Suspense fallback={<Loader />}>\n <ModalOuter\n aria-modal\n aria-label={title}\n role=\"dialog\"\n tabIndex={-1}\n onClick={onDismiss}\n >\n <ModalDialog size={size} role=\"document\">\n <ModalContent onClick={doNotDismiss}>\n <Card padding=\"lg\">{children}</Card>\n </ModalContent>\n </ModalDialog>\n </ModalOuter>\n\n <Overlay />\n </Suspense>,\n document.body,\n );\n }\n\n return null;\n};\n\nexport default Modal;\n","import { faAsterisk, faBell } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ReactNode, useEffect, useRef, useState } from 'react';\nimport { usePopper } from 'react-popper';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport DataTable from '../DataTable/DataTable';\nimport useOutsideClick from '../hooks/useOutsideClick';\nimport TableCell from '../TableCell/TableCell';\n\nconst NotificationArrow = styled.div`\n height: 0;\n position: absolute;\n width: 0;\n border-bottom: 5px solid #007fa8;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n top: -5px;\n`;\n\nconst NotificationButton = styled(Button)`\n background: none;\n color: inherit;\n\n :hover {\n background: none;\n color: inherit;\n }\n`;\n\nconst NotificationContainer = styled.div`\n box-shadow:\n 0 3px 5px -1px rgba(0, 0, 0, 0.2),\n 0 5px 8px 0 rgba(0, 0, 0, 0.14),\n 0 1px 14px 0 rgba(0, 0, 0, 0.12);\n`;\n\nconst NotificationWrapper = styled.div`\n position: relative;\n`;\n\nconst AlertWrapper = styled.div`\n background-color: rgb(199, 56, 79);\n border-radius: 50%;\n color: #fff;\n padding: 5px;\n pointer-events: none;\n position: absolute;\n right: 5px;\n top: -5px;\n transform: scale(0.5);\n z-index: 1;\n`;\n\nconst NotificationAlert = () => (\n <AlertWrapper>\n <FontAwesomeIcon icon={faAsterisk} />\n </AlertWrapper>\n);\n\ntype Placement = 'bottom' | 'bottom-end' | 'bottom-start';\n\nexport interface INotificationsProps<T> {\n alert: boolean;\n cols?: number;\n items: T[];\n label: string;\n noResults: ReactNode;\n placement?: Placement;\n row: (item: T) => ReactNode;\n onClose: () => void | Promise<void>;\n}\n\nfunction Notifications<T>({\n alert,\n cols = 1,\n items,\n label,\n noResults,\n onClose,\n placement = 'bottom',\n row,\n}: INotificationsProps<T>): JSX.Element {\n const isFirstRun = useRef(true);\n const [visible, setVisible] = useState(false);\n const [referenceElement, setReferenceElement] =\n useState<HTMLDivElement | null>(null);\n const [arrowElement, setArrowElement] = useState<HTMLDivElement | null>(null);\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(\n null,\n );\n const { attributes, styles } = usePopper(referenceElement, popperElement, {\n modifiers: [\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n },\n },\n ],\n placement,\n strategy: 'fixed',\n });\n const toggleNotifications = () => {\n setVisible(!visible);\n };\n\n useOutsideClick(referenceElement, () => {\n setVisible(false);\n });\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n\n return;\n }\n\n if (!visible) {\n Promise.resolve().then(onClose, () => {});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n return (\n <NotificationWrapper ref={setReferenceElement}>\n {alert && <NotificationAlert />}\n\n <NotificationButton\n aria-label={label}\n size=\"sm\"\n onClick={toggleNotifications}\n >\n <FontAwesomeIcon icon={faBell} />\n </NotificationButton>\n\n {visible && (\n <NotificationContainer\n ref={setPopperElement}\n style={styles.popper}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...attributes.popper}\n >\n <DataTable\n header={\n <TableCell as=\"th\" align=\"left\" colSpan={cols}>\n {label}\n </TableCell>\n }\n items={items}\n noResults={noResults}\n row={row}\n />\n\n <NotificationArrow ref={setArrowElement} style={styles.arrow} />\n </NotificationContainer>\n )}\n </NotificationWrapper>\n );\n}\n\nexport default Notifications;\n","import { FC } from 'react';\nimport styled from 'styled-components';\nimport Typography from '../Typography/Typography';\n\nconst PageTitleTypography = styled(Typography)`\n line-height: 1.4;\n margin: 0 0 0.2rem;\n`;\n\nconst TitleInner = styled.span`\n background-color: #007fa8;\n box-decoration-break: clone;\n color: #fff;\n display: inline;\n padding: 0.25rem 0.5rem;\n`;\n\nconst SubTitleInner = styled.span`\n background-color: #f8f8f8;\n box-decoration-break: clone;\n color: #000;\n display: inline;\n padding: 0.25rem 0.5rem;\n`;\n\nconst Split = styled.hr`\n border: 0;\n margin: 0;\n padding: 0;\n`;\n\nconst Wrapper = styled.div`\n margin-bottom: 1rem;\n padding: 0 0.25rem 0 0;\n`;\n\nexport interface IPageTitleProps {\n subTitle?: string;\n title: string;\n}\n\nconst PageTitle: FC<IPageTitleProps> = ({ subTitle = null, title }) => (\n <Wrapper>\n <PageTitleTypography component=\"h2\" variant=\"h2\">\n <TitleInner>{title}</TitleInner>\n </PageTitleTypography>\n\n <Split />\n\n {subTitle && (\n <PageTitleTypography component=\"p\" variant=\"lead\" margin=\"none\">\n <SubTitleInner>{subTitle}</SubTitleInner>\n </PageTitleTypography>\n )}\n </Wrapper>\n);\n\nexport default PageTitle;\n","import { rgba } from 'polished';\nimport { FC } from 'react';\nimport styled from 'styled-components';\n\nconst ProgressBarInternal = styled.progress`\n appearance: none;\n background-color: ${rgba('#007fa8', 0.25)};\n border: none;\n height: 20px;\n margin: 0;\n padding: 0;\n width: 100%;\n\n &::-webkit-progress-bar {\n background-color: ${rgba('#007fa8', 0.25)};\n height: 20px;\n }\n\n &::-webkit-progress-value {\n background-color: #007fa8;\n height: 20px;\n }\n\n &::-moz-progress-bar {\n background-color: #007fa8;\n height: 20px;\n }\n`;\n\nexport interface IProgressBarProps {\n max?: number;\n progress: number;\n}\n\nconst ProgressBar: FC<IProgressBarProps> = ({ max = 100, progress }) => (\n <ProgressBarInternal max={max} value={progress} />\n);\n\nexport default ProgressBar;\n","import { Field, FieldProps, FormikProps, FormikValues, getIn } from 'formik';\nimport { ChangeEvent, FC } from 'react';\nimport CheckableInput from '../CheckableInput/CheckableInput';\nimport FieldSet from '../FieldSet/FieldSet';\nimport useInputValidation from '../hooks/useInputValidation';\nimport Legend from '../Legend/Legend';\nimport OptionLabel from '../OptionLabel/OptionLabel';\nimport OptionLabelText from '../OptionLabelText/OptionLabelText';\n\ntype RadioSpacing = 'sm' | 'md' | 'lg';\n\nexport interface IRadioOption {\n name: string;\n value: string;\n}\n\ninterface IInternalRadio extends FieldProps {\n disabled: boolean;\n helpText: string;\n label: string;\n options: IRadioOption[];\n readOnly: boolean;\n spacing: RadioSpacing;\n onChange: (\n e: ChangeEvent<HTMLInputElement>,\n form: FormikProps<FormikValues>,\n ) => void;\n}\n\nconst InternalRadio: FC<IInternalRadio> = ({\n disabled,\n field,\n form,\n helpText,\n label,\n onChange,\n options,\n readOnly,\n spacing,\n}) => {\n const { errors, handleChange, setFieldValue, touched } = form;\n const error = useInputValidation(field.name, errors, touched);\n const markAsDisabled = disabled || readOnly;\n const doChange = (e: ChangeEvent<HTMLInputElement>, value: string) => {\n handleChange(e);\n\n setFieldValue(field.name, value).catch(() => {});\n\n if (onChange) {\n onChange(e, form);\n }\n };\n\n return (\n <FieldSet\n error={error}\n helpText={helpText}\n message={getIn(errors, field.name)}\n name={field.name}\n spacing={spacing}\n >\n <Legend error={error}>{label}</Legend>\n\n {options.map(({ name, value }) => (\n <OptionLabel\n key={value}\n disabled={disabled}\n selected={field.value === value}\n >\n <CheckableInput\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...field}\n checked={field.value === value}\n disabled={markAsDisabled}\n readOnly={readOnly}\n type=\"radio\"\n value={value}\n onChange={(e) => doChange(e, value)}\n />\n\n <OptionLabelText>{name}</OptionLabelText>\n </OptionLabel>\n ))}\n\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n {readOnly && <input type=\"hidden\" {...field} />}\n </FieldSet>\n );\n};\n\nexport interface IRadioProps {\n disabled?: boolean;\n helpText?: string;\n label: string;\n name: string;\n options: IRadioOption[];\n readOnly?: boolean;\n spacing?: RadioSpacing;\n onChange?: (\n e: ChangeEvent<HTMLInputElement>,\n form: FormikProps<FormikValues>,\n ) => void;\n}\n\nconst Radio: FC<IRadioProps> = ({\n disabled = false,\n helpText = null,\n label,\n name,\n onChange,\n options,\n readOnly = false,\n spacing = 'md',\n}) => (\n <Field\n id={name}\n component={InternalRadio}\n disabled={disabled}\n helpText={helpText}\n name={name}\n onChange={onChange}\n options={options}\n readOnly={readOnly}\n label={label}\n spacing={spacing}\n />\n);\n\nexport default Radio;\n","import { FC, useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nconst ScrollToTop: FC = () => {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n};\n\nexport default ScrollToTop;\n","import { faAngleDown } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Field, FieldProps, FormikProps, FormikValues, getIn } from 'formik';\nimport {\n ChangeEvent,\n FC,\n FocusEvent,\n SelectHTMLAttributes,\n useEffect,\n useState,\n} from 'react';\nimport styled from 'styled-components';\nimport useInputValidation from '../hooks/useInputValidation';\nimport InputWrapper from '../InputWrapper/InputWrapper';\nimport Label from '../Label/Label';\n\ntype SelectSpacing = 'sm' | 'md' | 'lg';\n\nexport interface ISelectOption {\n name: string;\n value: string;\n}\n\ninterface IBaseSelectInput {\n $active: boolean;\n $readOnly: boolean;\n}\n\nconst BaseSelectInput = styled.select<IBaseSelectInput>`\n ${({ $active, $readOnly }) => `\n appearance: none;\n background: #fff;\n border: none;\n color: ${$active ? '#333' : '#fff'};\n cursor: pointer;\n font-size: 16px;\n outline: 0;\n padding: 16px 0 10px;\n width: 100%;\n\n ${\n $readOnly\n ? `\n :disabled {\n color: ${$active ? '#333' : '#fff'};\n }\n `\n : `\n :disabled {\n color: ${$active ? '#767676' : '#fff'};\n }\n `\n }\n `}\n`;\n\ninterface ISelectInput extends SelectHTMLAttributes<HTMLSelectElement> {\n active: boolean;\n describedBy: string;\n errors: boolean;\n readOnly: boolean;\n}\n\nconst SelectInput: FC<ISelectInput> = ({\n active,\n describedBy,\n errors,\n readOnly,\n ...rest\n}) => (\n <BaseSelectInput\n $active={active}\n $readOnly={readOnly}\n aria-describedby={errors ? describedBy : undefined}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n />\n);\n\nconst IconOuter = styled.div`\n margin-top: -21px;\n pointer-events: none;\n position: absolute;\n right: 38px;\n top: 50%;\n z-index: 1;\n`;\n\nconst IconInner = styled.div`\n color: #767676;\n cursor: pointer;\n display: block;\n height: 42px;\n line-height: 42px;\n text-align: center;\n width: 42px;\n`;\n\ninterface IInternalSelect extends FieldProps {\n active: boolean;\n disabled: boolean;\n helpText: string;\n label: string;\n onChange: (\n e: ChangeEvent<HTMLSelectElement>,\n form: FormikProps<FormikValues>,\n ) => void;\n options: ISelectOption[];\n placeholder: string;\n readOnly: boolean;\n setFocus: (focus: boolean) => void;\n spacing: SelectSpacing;\n}\n\nconst InternalSelect: FC<IInternalSelect> = ({\n active,\n disabled,\n field,\n form,\n helpText,\n label,\n onChange,\n options,\n readOnly,\n placeholder,\n setFocus,\n spacing,\n ...props\n}) => {\n useEffect(() => {\n const focus = !!field.value || field.value === 0;\n\n setFocus(focus);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const { onBlur, ...rest } = field;\n const { errors, handleBlur, handleChange, touched } = form;\n const error = useInputValidation(field.name, errors, touched);\n const markAsDisabled = disabled || readOnly;\n const describedBy = `${field.name}-error`;\n const doBlur = (e: FocusEvent<HTMLSelectElement>) => {\n handleBlur(e);\n\n if (!field.value && field.value !== 0) {\n setFocus(false);\n }\n\n onBlur(e);\n };\n const doChange = (e: ChangeEvent<HTMLSelectElement>) => {\n handleChange(e);\n\n if (onChange) {\n onChange(e, form);\n }\n };\n const doFocus = () => {\n if (!field.value && field.value !== 0) {\n setFocus(true);\n }\n };\n\n return (\n <InputWrapper\n error={error}\n helpText={helpText}\n message={getIn(errors, field.name)}\n name={field.name}\n spacing={spacing}\n >\n <Label htmlFor={field.name} active={active} error={error}>\n {label}\n </Label>\n\n {/* eslint-disable react/jsx-props-no-spreading */}\n <SelectInput\n {...props}\n {...rest}\n active={active}\n describedBy={describedBy}\n disabled={markAsDisabled}\n errors={error}\n onBlur={doBlur}\n onChange={doChange}\n onFocus={doFocus}\n readOnly={readOnly}\n >\n <option disabled value=\"\">\n {placeholder}\n </option>\n {options.map(({ name, value }) => (\n <option key={value} value={value}>\n {name}\n </option>\n ))}\n </SelectInput>\n\n <IconOuter>\n <IconInner>\n <FontAwesomeIcon icon={faAngleDown} />\n </IconInner>\n </IconOuter>\n\n {readOnly && <input type=\"hidden\" {...field} />}\n {/* eslint-enable react/jsx-props-no-spreading */}\n </InputWrapper>\n );\n};\n\nexport interface ISelectProps {\n disabled?: boolean;\n helpText?: string;\n label: string;\n name: string;\n options: ISelectOption[];\n placeholder: string;\n readOnly?: boolean;\n spacing?: SelectSpacing;\n onChange?: (\n e: ChangeEvent<HTMLSelectElement>,\n form: FormikProps<FormikValues>,\n ) => void;\n}\n\nconst Select: FC<ISelectProps> = ({\n disabled = false,\n helpText = null,\n label,\n name,\n onChange,\n options,\n placeholder,\n readOnly = false,\n spacing = 'md',\n}) => {\n const [focus, setFocus] = useState();\n\n return (\n <Field\n id={name}\n component={InternalSelect}\n active={focus}\n disabled={disabled}\n helpText={helpText}\n name={name}\n onChange={onChange}\n options={options}\n placeholder={placeholder}\n readOnly={readOnly}\n setFocus={setFocus}\n label={label}\n spacing={spacing}\n />\n );\n};\n\nexport default Select;\n","import { Children, FC, ReactNode, useState } from 'react';\nimport Button from '../Button/Button';\nimport Card from '../Card/Card';\nimport Col from '../Col/Col';\nimport ProgressBar from '../ProgressBar/ProgressBar';\nimport Row from '../Row/Row';\n\nexport interface IStepperProps {\n children: ReactNode[];\n nextLabel: string;\n onComplete?: ReactNode;\n onStart?: ReactNode;\n previousLabel: string;\n start?: number;\n enableNext?: (step: number) => boolean;\n}\n\nconst Stepper: FC<IStepperProps> = ({\n children,\n enableNext = () => true,\n nextLabel,\n onComplete,\n onStart,\n previousLabel,\n start = 0,\n}) => {\n const [step, setStep] = useState(start);\n const activeStep = Children.toArray(children)[step];\n const steps = Children.count(children) - 1;\n const next = () => {\n setStep(step + 1);\n };\n const showNext = step < steps;\n const previous = () => {\n setStep(step - 1);\n };\n const disablePrevious = step === 0;\n const progress = (step / steps) * 100;\n const showOnStart = disablePrevious && onStart;\n\n return (\n <Row>\n <Col>{activeStep}</Col>\n\n <Col>\n <Row>\n <Col xs={12} md={6} mdOffset={7}>\n <Card padding=\"none\">\n <ProgressBar progress={progress} />\n </Card>\n\n <Card padding=\"lg\">\n <Row>\n <Col xs={12} md={6}>\n {showOnStart && onStart}\n\n {!showOnStart && (\n <Button\n block\n disabled={disablePrevious}\n size=\"lg\"\n onClick={previous}\n >\n {previousLabel}\n </Button>\n )}\n </Col>\n\n <Col xs={12} md={6} align=\"right\">\n {showNext && (\n <Button\n block\n disabled={!enableNext(step)}\n size=\"lg\"\n onClick={next}\n >\n {nextLabel}\n </Button>\n )}\n\n {!showNext && onComplete}\n </Col>\n </Row>\n </Card>\n </Col>\n </Row>\n </Col>\n </Row>\n );\n};\n\nexport default Stepper;\n","import { Field, FieldProps, FormikProps, FormikValues, getIn } from 'formik';\nimport {\n ChangeEvent,\n FC,\n FocusEvent,\n InputHTMLAttributes,\n useEffect,\n useState,\n} from 'react';\nimport {\n NumberFormatValues,\n NumericFormat,\n PatternFormat,\n} from 'react-number-format';\nimport styled from 'styled-components';\nimport useInputValidation from '../hooks/useInputValidation';\nimport InputWrapper from '../InputWrapper/InputWrapper';\nimport Label from '../Label/Label';\n\nexport type InputSpacing = 'sm' | 'md' | 'lg';\n\ninterface IBaseTextBox {\n $active: boolean;\n}\n\nconst BaseTextBox = styled.input<IBaseTextBox>`\n ${({ $active }) => `\n background: #fff;\n border: none;\n color: ${$active ? '#333' : '#fff'};\n cursor: ${$active ? 'text' : 'pointer'};\n font-size: 16px;\n outline: 0;\n padding: 16px 0 10px;\n width: 100%;\n\n :disabled {\n color: #767676;\n }\n\n ::placeholder {\n color: ${$active ? '#767676' : '#fff'};\n }\n\n :-ms-input-placeholder {\n color: ${$active ? '#767676' : '#fff'};\n }\n\n ::-ms-input-placeholder {\n color: ${$active ? '#767676' : '#fff'};\n }\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n [type=\"number\"] {\n -moz-appearance: textfield;\n }\n `}\n`;\n\ninterface IInput extends InputHTMLAttributes<HTMLInputElement> {\n active: boolean;\n describedBy: string;\n errors: boolean;\n}\n\nconst Input: FC<IInput> = ({ active, describedBy, errors, ...rest }) => (\n <BaseTextBox\n $active={active}\n aria-describedby={errors ? describedBy : undefined}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n />\n);\n\ninterface IInternalTextBox extends FieldProps {\n active: boolean;\n decimalScale: number;\n format: string;\n helpText: string;\n label: string;\n onChange: (\n e: ChangeEvent<HTMLInputElement>,\n form: FormikProps<FormikValues>,\n ) => Promise<void> | void;\n prefix: string;\n setFocus: (focus: boolean) => void;\n spacing: InputSpacing;\n suffix: string;\n}\n\nconst InternalTextBox: FC<IInternalTextBox> = ({\n active,\n decimalScale,\n field,\n format,\n form,\n helpText,\n label,\n onChange,\n prefix,\n setFocus,\n spacing,\n suffix,\n ...props\n}) => {\n useEffect(() => {\n const focus = !!field.value || field.value === 0;\n\n setFocus(focus);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [field.value]);\n\n const { onBlur, ...rest } = field;\n const { errors, handleBlur, handleChange, setFieldValue, touched } = form;\n const error = useInputValidation(field.name, errors, touched);\n const describedBy = `${field.name}-error`;\n const useNumberFormat = Boolean(decimalScale || format || prefix || suffix);\n const doBlur = (e: FocusEvent<HTMLInputElement>) => {\n handleBlur(e);\n\n if (!field.value && field.value !== 0) {\n setFocus(false);\n }\n\n onBlur(e);\n };\n const doFocus = () => {\n if (!field.value && field.value !== 0) {\n setFocus(true);\n }\n };\n const doValueChange = ({\n floatValue,\n formattedValue,\n }: NumberFormatValues) => {\n if (format) {\n setFieldValue(field.name, formattedValue).catch(() => {});\n } else {\n setFieldValue(field.name, floatValue).catch(() => {});\n }\n };\n const doChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!useNumberFormat) {\n handleChange(e);\n }\n\n if (onChange) {\n Promise.resolve(onChange(e, form)).catch(() => {});\n }\n };\n\n return (\n <InputWrapper\n error={error}\n helpText={helpText}\n message={getIn(errors, field.name)}\n name={field.name}\n spacing={spacing}\n >\n <Label htmlFor={field.name} active={active} error={error}>\n {label}\n </Label>\n\n {/* eslint-disable react/jsx-props-no-spreading */}\n {(() => {\n if (useNumberFormat) {\n if (format) {\n return (\n <PatternFormat\n {...props}\n {...rest}\n valueIsNumericString={Boolean(prefix || suffix)}\n customInput={Input}\n format={format}\n inputMode=\"decimal\"\n prefix={prefix}\n active={active}\n describedBy={describedBy}\n errors={error}\n onBlur={doBlur}\n onChange={doChange}\n onFocus={doFocus}\n onValueChange={doValueChange}\n />\n );\n }\n\n return (\n <NumericFormat\n {...props}\n {...rest}\n valueIsNumericString={Boolean(prefix || suffix)}\n customInput={Input}\n decimalScale={decimalScale}\n fixedDecimalScale={!!decimalScale}\n inputMode=\"decimal\"\n prefix={prefix}\n suffix={suffix}\n active={active}\n describedBy={describedBy}\n errors={error}\n onBlur={doBlur}\n onChange={doChange}\n onFocus={doFocus}\n onValueChange={doValueChange}\n />\n );\n }\n\n return (\n <Input\n {...props}\n {...rest}\n active={active}\n describedBy={describedBy}\n errors={error}\n onBlur={doBlur}\n onChange={doChange}\n onFocus={doFocus}\n />\n );\n })()}\n {/* eslint-enable react/jsx-props-no-spreading */}\n </InputWrapper>\n );\n};\n\nexport interface ITextBoxProps {\n decimalScale?: number;\n disabled?: boolean;\n format?: string;\n helpText?: string;\n label: string;\n name: string;\n placeholder?: string;\n prefix?: string;\n readOnly?: boolean;\n spacing?: InputSpacing;\n suffix?: string;\n type?: 'email' | 'number' | 'password' | 'text';\n onChange?: (\n e: ChangeEvent<HTMLInputElement>,\n form: FormikProps<FormikValues>,\n ) => Promise<void> | void;\n}\n\nconst TextBox: FC<ITextBoxProps> = ({\n decimalScale,\n disabled = false,\n format,\n helpText = null,\n label,\n name,\n onChange,\n placeholder = '',\n prefix,\n readOnly = false,\n spacing = 'md',\n suffix,\n type = 'text',\n}) => {\n const [focus, setFocus] = useState();\n\n return (\n <Field\n id={name}\n component={InternalTextBox}\n decimalScale={decimalScale}\n disabled={disabled}\n active={focus}\n format={format}\n helpText={helpText}\n type={type}\n name={name}\n onChange={onChange}\n placeholder={placeholder}\n prefix={prefix}\n readOnly={readOnly}\n setFocus={setFocus}\n suffix={suffix}\n label={label}\n spacing={spacing}\n />\n );\n};\n\nexport default TextBox;\n","import {\n faCheckCircle,\n faExclamationCircle,\n faExclamationTriangle,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n createContext,\n FC,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport styled from 'styled-components';\nimport Alert, { AlertTheme } from '../Alert/Alert';\n\nconst ToastContainer = styled.div`\n bottom: 0;\n left: 1rem;\n position: fixed;\n right: 1rem;\n z-index: 1800;\n`;\n\nexport interface IAddToast {\n colour: AlertTheme;\n message: string;\n onDismiss?: () => void;\n}\n\ninterface IToast extends IAddToast {\n id: string;\n}\n\ninterface IToastContext {\n add: (alert: IAddToast) => void;\n remove: (id: string) => void;\n}\n\nexport const ToastContext = createContext<IToastContext | null>(null);\n\nexport const useToast = (): IToastContext => useContext(ToastContext)!;\n\nconst generateId = () => {\n const array = new Uint32Array(2);\n const output = crypto.getRandomValues(array);\n\n return (\n output[0].toString(36).substring(2, 15) +\n output[1].toString(36).substring(2, 15)\n );\n};\n\nconst selectIcon = (alertType: AlertTheme) => {\n switch (alertType) {\n case 'danger':\n return faExclamationTriangle;\n case 'success':\n return faCheckCircle;\n case 'primary':\n case 'secondary':\n default:\n return faExclamationCircle;\n }\n};\n\nexport interface IToastProviderProps {\n children: ReactNode;\n}\n\nconst ToastProvider: FC<IToastProviderProps> = ({ children }) => {\n const [toasts, setToasts] = useState<IToast[]>([]);\n const add = useCallback(\n ({ colour, message, onDismiss }: IAddToast) => {\n const id = generateId();\n\n setToasts([\n ...toasts,\n {\n colour,\n id,\n message,\n onDismiss,\n },\n ]);\n },\n [toasts],\n );\n const remove = useCallback((id: string) => {\n setToasts((value) => {\n const item = value.findIndex((t) => t.id === id);\n\n if (value[item]?.onDismiss) {\n value[item].onDismiss();\n }\n\n if (item !== -1) {\n value.splice(item, 1);\n }\n\n return value;\n });\n }, []);\n\n const value = useMemo(\n () => ({\n add,\n remove,\n }),\n [add, remove],\n );\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n {createPortal(\n <ToastContainer>\n {toasts.map(({ colour, id, message }) => (\n <Alert\n spacing=\"lg\"\n key={id}\n dismissable={5000}\n icon={<FontAwesomeIcon icon={selectIcon(colour)} />}\n colour={colour}\n message={message}\n onDismiss={() => {\n remove(id);\n }}\n />\n ))}\n </ToastContainer>,\n document.body,\n )}\n </ToastContext.Provider>\n );\n};\n\nexport default ToastProvider;\n","import { FormikProps, FormikValues } from 'formik';\nimport { FC, useState } from 'react';\nimport { usePopper } from 'react-popper';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport useOutsideClick from '../hooks/useOutsideClick';\nimport TextBox, { ITextBoxProps } from '../TextBox/TextBox';\n\nconst TypeaheadWrapper = styled.div`\n position: relative;\n`;\n\nconst Suggestions = styled.div`\n width: 100%;\n z-index: 10;\n`;\n\nconst Suggestion = styled(Button)`\n padding-left: 8px;\n padding-right: 8px;\n text-align: left;\n`;\n\nexport interface ITypeaheadSuggestion {\n name: string;\n value: string;\n}\n\nexport interface ITypeaheadProps\n extends Omit<ITextBoxProps, 'type' | 'onChange'> {\n suggestions: ITypeaheadSuggestion[];\n}\n\nconst Typeahead: FC<ITypeaheadProps> = ({ suggestions, ...rest }) => {\n const { name } = rest;\n const [filteredSuggestions, setFilteredSuggestions] = useState(suggestions);\n const [referenceElement, setReferenceElement] =\n useState<HTMLDivElement | null>(null);\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(\n null,\n );\n const [visible, setVisible] = useState(false);\n const [form, setForm] = useState<FormikProps<FormikValues>>();\n const { attributes, styles } = usePopper(referenceElement, popperElement, {\n placement: 'bottom',\n });\n const setValue = (value: string) => {\n form!.setFieldValue(name, value).catch(() => {});\n\n setVisible(false);\n };\n\n useOutsideClick(referenceElement, () => {\n setVisible(false);\n });\n\n return (\n <TypeaheadWrapper ref={setReferenceElement}>\n <TextBox\n type=\"text\"\n onChange={(e, context) => {\n if (!form) {\n setForm(context);\n }\n\n const input = e.currentTarget.value;\n const filter = suggestions.filter(\n ({ name: suggestion }) =>\n suggestion.toLowerCase().indexOf(input.toLowerCase()) > -1,\n );\n\n setFilteredSuggestions(filter);\n\n if (visible) {\n setVisible(!!input);\n } else {\n setVisible(true);\n }\n }}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n />\n\n {visible && (\n <Suggestions\n ref={setPopperElement}\n style={styles.popper}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...attributes.popper}\n >\n {[...filteredSuggestions]\n .sort((a, b) => a.name.localeCompare(b.name))\n .map(({ name: suggestion, value }) => (\n <Suggestion\n block\n key={value}\n colour=\"secondary\"\n size=\"sm\"\n onClick={() => setValue(value)}\n >\n {suggestion}\n </Suggestion>\n ))}\n </Suggestions>\n )}\n </TypeaheadWrapper>\n );\n};\n\nexport default Typeahead;\n","import { FC, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport Col from '../Col/Col';\nimport Row from '../Row/Row';\n\nconst Wrapper = styled.div`\n margin: 100px 0;\n padding: 1rem;\n`;\n\nexport interface IWindowProps {\n children: ReactNode;\n}\n\nconst Window: FC<IWindowProps> = ({ children }) => (\n <Wrapper>\n <Row>\n <Col sm={8} smOffset={3} md={6} mdOffset={4} lg={4} lgOffset={5}>\n {children}\n </Col>\n </Row>\n </Wrapper>\n);\n\nexport default Window;\n"],"names":["alertTheme","danger","background","colour","primary","secondary","success","BaseAlert","styled","div","$colour","$icon","$spacing","theme","AlertIconWrapper","AlertDismissButton","button","Alert","dismissable","icon","message","spacing","onDismiss","renderCheck","process","env","NODE_ENV","renderCount","useRef","visible","setVisiblity","useState","dismiss","useEffect","current","timeout","setTimeout","clearTimeout","_jsx","ThemeProvider","_jsxs","role","type","aria-label","onClick","FontAwesomeIcon","faTimes","AppBarInner","AppBarToolbar","header","border","appBarTheme","AppBarBase","$fixed","AppBar","children","element","fixed","as","Image","img","$width","Wrapper","Avatar","alt","src","width","BaseStyles","createGlobalStyle","reset","useWindowSize","getWindowSize","height","window","innerHeight","innerWidth","windowSize","setWindowSize","handleResize","addEventListener","removeEventListener","getBreakpoint","lg","matchMedia","md","sm","matches","useBreakpoint","breakpoint","setBreakpoint","Breakpoint","xs","matrix","_Fragment","buttonTheme","BaseButton","withConfig","shouldForwardProp","prop","includes","block","size","darken","Circle","circle","BaseLoader","svg","Loader","className","viewBox","cx","cy","r","fill","strokeWidth","loaderSizes","margin","ButtonLoader","$size","ButtonContainer","span","$isLoading","Button","disabled","loading","rest","loadingColour","BaseLink","a","ButtonLink","props","BaseTable","table","Table","TableBody","tbody","baseStyles","noWrap","align","TableDataCell","td","$noWrap","TableHeadCell","th","TableCell","TableHead","thead","tableRowTheme","default","BaseTableRow","tr","TableRow","margins","none","BaseTypography","p","$align","$breakWord","$margin","$truncate","$variant","Line","hr","Typography","breakWord","component","id","rule","truncate","variant","Toolbar","Title","CalendarButton","Weekdays","short","Info","weekdays","abbrs","map","day","i","abbr","scope","Dates","date","onSelect","view","currentDay","parseInt","toFormat","daysInMonth","firstDayOfMonth","startOf","previousMonth","minus","months","lastDayOfPreviousMonth","endOf","nextMonth","plus","blanks","Array","_","thisMonth","hasSame","reverse","days","month","get","year","data-testid","tabIndex","totalSlots","rows","cells","forEach","row","push","length","filler","fillerIndex","key","d","selectMoment","start","Calendar","onDateChange","selectedDate","startDate","DateTime","fromISO","toUTC","utc","setDate","setView","currentMonth","setCurrentMonth","currentYear","setCurrentYear","selected","selectedView","grid","label","setDay","updated","set","next","unit","previous","isoDate","toISO","faAngleDoubleLeft","faAngleLeft","faAngleRight","faAngleDoubleRight","cardTheme","padding","BaseCard","$padding","Card","CheckableInput","input","helpTextSpacing","HelpText","error","InputAlert","faExclamation","tooltipTheme","TooltipArrow","$placement","TooltipWrapper","TooltipContent","$visible","Tooltip","parent","placement","timer","setVisibility","mounted","hideTooltip","showTooltip","Manager","Reference","ref","onBlur","onFocus","onMouseOver","onMouseOut","Popper","strategy","modifiers","name","options","offset","arrowProps","popperPlacement","style","placementToUse","ValidatorWrapper","BaseFieldSet","fieldset","FieldSet","helpText","describedBy","useInputValidation","errors","touched","setError","touch","getIn","err","Legend","BaseOptionLabel","$disabled","$selected","OptionLabel","OptionLabelText","InternalCheckBox","field","form","legend","onChange","readOnly","handleChange","markAsDisabled","doChange","e","value","checked","CheckBox","Field","ColContainer","$lg","$lgOffset","$md","$mdOffset","$sm","$smOffset","$verticalAlign","$xs","$xsOffset","VericalAlignWrapper","Col","lgOffset","mdOffset","smOffset","verticalAlign","xsOffset","section","Content","DataTable","items","noResults","item","defaultFormat","formatDateTime","format","Luxon","fromSeconds","ISOString","formatted","time","dateTime","useOutsideClick","handler","listener","event","contains","target","document","inputWrapperTheme","BaseInputWrapper","$error","InputWrapper","Label","active","LikeInput","IconOuter","IconButton","DatePickerWrapper","CalendarWrapper","InnerDatePicker","referenceElement","setReferenceElement","popperElement","setPopperElement","attributes","styles","usePopper","setVisible","setFieldValue","selectDate","catch","htmlFor","hidden","aria-describedby","undefined","faCalendar","popper","DatePicker","UploadInput","$active","InnerFileUpload","UploadButton","InputContainer","InternalFileUpload","accept","buttonText","setActive","fileName","setFileName","files","file","Promise","resolve","then","setFieldTouched","getElementById","click","FileUpload","RowContainer","$columns","$gutter","Row","columns","gutter","isObject","isArray","encodeNullValues","values","initialValues","Object","keys","reduce","aggregate","formNormaliser","Form","cancel","onPreSubmit","onSubmit","submitLabel","validationSchema","doSubmit","payload","Formik","validateOnMount","isValid","FormikForm","autoComplete","Link","RouterLink","InternalLink","LinkButton","MasonryItem","calculateCols","cols","Masonry","breakpoints","from","flat","child","colIndex","Overlay","ModalOuter","ModalContent","ModalDialog","Modal","isOpen","title","doNotDismiss","stopPropagation","keyboardEvent","body","removeProperty","overflow","createPortal","Suspense","fallback","aria-modal","NotificationArrow","NotificationButton","NotificationContainer","NotificationWrapper","AlertWrapper","NotificationAlert","faAsterisk","Notifications","alert","onClose","isFirstRun","arrowElement","setArrowElement","toggleNotifications","faBell","colSpan","arrow","PageTitleTypography","TitleInner","SubTitleInner","Split","PageTitle","subTitle","ProgressBarInternal","progress","rgba","ProgressBar","max","InternalRadio","Radio","ScrollToTop","pathname","useLocation","scrollTo","BaseSelectInput","select","$readOnly","SelectInput","IconInner","InternalSelect","placeholder","setFocus","focus","handleBlur","doBlur","doFocus","option","faAngleDown","Select","Stepper","enableNext","nextLabel","onComplete","onStart","previousLabel","step","setStep","activeStep","Children","toArray","steps","count","showNext","disablePrevious","showOnStart","BaseTextBox","Input","InternalTextBox","decimalScale","prefix","suffix","useNumberFormat","Boolean","doValueChange","floatValue","formattedValue","PatternFormat","valueIsNumericString","customInput","inputMode","onValueChange","NumericFormat","fixedDecimalScale","TextBox","ToastContainer","ToastContext","createContext","useToast","useContext","generateId","array","Uint32Array","output","crypto","getRandomValues","toString","substring","selectIcon","alertType","faExclamationTriangle","faCheckCircle","faExclamationCircle","ToastProvider","toasts","setToasts","add","useCallback","remove","findIndex","t","splice","useMemo","Provider","TypeaheadWrapper","Suggestions","Suggestion","Typeahead","suggestions","filteredSuggestions","setFilteredSuggestions","setForm","setValue","context","currentTarget","filter","suggestion","toLowerCase","indexOf","sort","b","localeCompare","Window"],"mappings":"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"}