@tenancy.nz/ui 1.0.0 → 1.0.2

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 (294) hide show
  1. package/README.md +0 -69
  2. package/dist/cjs/components/Alert.cjs +48 -0
  3. package/dist/cjs/components/Alert.styled.cjs +41 -0
  4. package/dist/cjs/components/Autocomplete.cjs +176 -0
  5. package/dist/cjs/components/Autocomplete.styled.cjs +15 -0
  6. package/dist/cjs/components/Avatar.cjs +52 -0
  7. package/dist/cjs/components/Avatar.styled.cjs +24 -0
  8. package/dist/cjs/components/AvatarCropDialog.cjs +200 -0
  9. package/dist/cjs/components/AvatarCropDialog.styled.cjs +21 -0
  10. package/dist/cjs/components/AvatarInput.cjs +215 -0
  11. package/dist/cjs/components/AvatarInput.styled.cjs +151 -0
  12. package/dist/cjs/components/Badge.cjs +83 -0
  13. package/dist/cjs/components/Badge.styled.cjs +23 -0
  14. package/dist/cjs/components/BankAccountInput.cjs +296 -0
  15. package/dist/cjs/components/BankAccountInput.styled.cjs +163 -0
  16. package/dist/cjs/components/Bar.cjs +44 -0
  17. package/dist/cjs/components/Bar.styled.cjs +22 -0
  18. package/dist/cjs/components/BaseModal.cjs +41 -0
  19. package/dist/cjs/components/BaseModal.styled.cjs +20 -0
  20. package/dist/cjs/components/BooleanInput.cjs +173 -0
  21. package/dist/cjs/components/BooleanInput.styled.cjs +65 -0
  22. package/dist/cjs/components/BorderedGrid.cjs +46 -0
  23. package/dist/cjs/components/Box.cjs +97 -0
  24. package/dist/cjs/components/Button.cjs +48 -0
  25. package/dist/cjs/components/Button.styled.cjs +106 -0
  26. package/dist/cjs/components/Card.cjs +61 -0
  27. package/dist/cjs/components/Card.styled.cjs +15 -0
  28. package/dist/cjs/components/CardContent.cjs +21 -0
  29. package/dist/cjs/components/CardContent.styled.cjs +10 -0
  30. package/dist/cjs/components/Checkbox.cjs +49 -0
  31. package/dist/cjs/components/Checkbox.styled.cjs +25 -0
  32. package/dist/cjs/components/CircularProgress.cjs +14 -0
  33. package/dist/cjs/components/CollapsedText.cjs +88 -0
  34. package/dist/cjs/components/CollapsedText.styled.cjs +52 -0
  35. package/dist/cjs/components/Confirmation.cjs +60 -0
  36. package/dist/cjs/components/Container.cjs +21 -0
  37. package/dist/cjs/components/CroppedImageInput.cjs +465 -0
  38. package/dist/cjs/components/CroppedImageInput.styled.cjs +91 -0
  39. package/dist/cjs/components/CroppedImageInputActions.cjs +78 -0
  40. package/dist/cjs/components/DateInput.cjs +218 -0
  41. package/dist/cjs/components/DateInput.styled.cjs +26 -0
  42. package/dist/cjs/components/DateNumberInput.cjs +175 -0
  43. package/dist/cjs/components/DateNumberInput.styled.cjs +58 -0
  44. package/dist/cjs/components/DatePicker.cjs +134 -0
  45. package/dist/cjs/components/DatePicker.styled.cjs +17 -0
  46. package/dist/cjs/components/DateSelect.cjs +212 -0
  47. package/dist/cjs/components/DateSelect.styled.cjs +15 -0
  48. package/dist/cjs/components/Divider.cjs +67 -0
  49. package/dist/cjs/components/Divider.styled.cjs +62 -0
  50. package/dist/cjs/components/DropZone.cjs +153 -0
  51. package/dist/cjs/components/DropZone.styled.cjs +76 -0
  52. package/dist/cjs/components/Embed.cjs +41 -0
  53. package/dist/cjs/components/Embed.styled.cjs +38 -0
  54. package/dist/cjs/components/FileUpload.cjs +319 -0
  55. package/dist/cjs/components/FileUpload.styled.cjs +47 -0
  56. package/dist/cjs/components/FileUploadButton.cjs +117 -0
  57. package/dist/cjs/components/FileUploadButtonLoader.cjs +27 -0
  58. package/dist/cjs/components/FileViewer.cjs +117 -0
  59. package/dist/cjs/components/FileViewer.styled.cjs +29 -0
  60. package/dist/cjs/components/FlashMessage.cjs +69 -0
  61. package/dist/cjs/components/FormControl.cjs +102 -0
  62. package/dist/cjs/components/FormControl.styled.cjs +22 -0
  63. package/dist/cjs/components/FormFocus.cjs +37 -0
  64. package/dist/cjs/components/FormLabel.cjs +24 -0
  65. package/dist/cjs/components/FormLabel.styled.cjs +55 -0
  66. package/dist/cjs/components/Grid.cjs +52 -0
  67. package/dist/cjs/components/Grid.styled.cjs +12 -0
  68. package/dist/cjs/components/Heading.cjs +41 -0
  69. package/dist/cjs/components/IconButton.cjs +31 -0
  70. package/dist/cjs/components/IconButton.styled.cjs +31 -0
  71. package/dist/cjs/components/Icons.cjs +62 -0
  72. package/dist/cjs/components/LinearProgress.cjs +14 -0
  73. package/dist/cjs/components/Link.cjs +37 -0
  74. package/dist/cjs/components/Link.styled.cjs +39 -0
  75. package/dist/cjs/components/Media.cjs +44 -0
  76. package/dist/cjs/components/Media.styled.cjs +46 -0
  77. package/dist/cjs/components/Modal.cjs +56 -0
  78. package/dist/cjs/components/ModalActions.cjs +23 -0
  79. package/dist/cjs/components/ModalContent.cjs +32 -0
  80. package/dist/cjs/components/ModalHeader.cjs +24 -0
  81. package/dist/cjs/components/ModalHeader.styled.cjs +29 -0
  82. package/dist/cjs/components/Nameplate.cjs +110 -0
  83. package/dist/cjs/components/Nameplate.styled.cjs +49 -0
  84. package/dist/cjs/components/Pagination.cjs +147 -0
  85. package/dist/cjs/components/Pagination.styled.cjs +83 -0
  86. package/dist/cjs/components/Paper.cjs +34 -0
  87. package/dist/cjs/components/Paper.styled.cjs +63 -0
  88. package/dist/cjs/components/Popper.cjs +64 -0
  89. package/dist/cjs/components/PropertyCard.cjs +222 -0
  90. package/dist/cjs/components/PropertyCard.styled.cjs +67 -0
  91. package/dist/cjs/components/Radio.cjs +49 -0
  92. package/dist/cjs/components/Radio.styled.cjs +25 -0
  93. package/dist/cjs/components/Rating.cjs +14 -0
  94. package/dist/cjs/components/Select.cjs +105 -0
  95. package/dist/cjs/components/Select.styled.cjs +104 -0
  96. package/dist/cjs/components/Skeleton.cjs +23 -0
  97. package/dist/cjs/components/StatusMessage.cjs +27 -0
  98. package/dist/cjs/components/StepIcon.cjs +50 -0
  99. package/dist/cjs/components/StepIcon.styled.cjs +57 -0
  100. package/dist/cjs/components/Stepper.cjs +58 -0
  101. package/dist/cjs/components/Stepper.styled.cjs +61 -0
  102. package/dist/cjs/components/SuccessModal.cjs +43 -0
  103. package/dist/cjs/components/SuccessModal.styled.cjs +22 -0
  104. package/dist/cjs/components/Switch.cjs +46 -0
  105. package/dist/cjs/components/Switch.styled.cjs +109 -0
  106. package/dist/cjs/components/Tab.cjs +39 -0
  107. package/dist/cjs/components/Tab.styled.cjs +14 -0
  108. package/dist/cjs/components/TabPanel.cjs +30 -0
  109. package/dist/cjs/components/TabPanel.styled.cjs +12 -0
  110. package/dist/cjs/components/Table.cjs +21 -0
  111. package/dist/cjs/components/TableBody.cjs +21 -0
  112. package/dist/cjs/components/TableCell.cjs +21 -0
  113. package/dist/cjs/components/TableContainer.cjs +21 -0
  114. package/dist/cjs/components/TableFooter.cjs +21 -0
  115. package/dist/cjs/components/TableHead.cjs +21 -0
  116. package/dist/cjs/components/TableRow.cjs +21 -0
  117. package/dist/cjs/components/Tabs.cjs +65 -0
  118. package/dist/cjs/components/Tabs.styled.cjs +90 -0
  119. package/dist/cjs/components/Tag.cjs +37 -0
  120. package/dist/cjs/components/Tag.styled.cjs +120 -0
  121. package/dist/cjs/components/Text.cjs +36 -0
  122. package/dist/cjs/components/TextInput.cjs +145 -0
  123. package/dist/cjs/components/TextInput.styled.cjs +117 -0
  124. package/dist/cjs/components/ThemeProvider.cjs +43 -0
  125. package/dist/cjs/components/TimeInput.cjs +248 -0
  126. package/dist/cjs/components/TimeInput.styled.cjs +38 -0
  127. package/dist/cjs/components/Tooltip.cjs +40 -0
  128. package/dist/cjs/components/Tooltip.styled.cjs +55 -0
  129. package/dist/cjs/components/Truncate.cjs +23 -0
  130. package/dist/cjs/index.cjs +182 -0
  131. package/dist/cjs/theme/index.cjs +252 -0
  132. package/dist/cjs/utils/animations.cjs +68 -0
  133. package/dist/cjs/utils/colors.cjs +31 -0
  134. package/dist/cjs/utils/constants.cjs +8 -0
  135. package/dist/cjs/utils/files.cjs +44 -0
  136. package/dist/cjs/utils/helpers/array.cjs +24 -0
  137. package/dist/cjs/utils/helpers/boolean.cjs +25 -0
  138. package/dist/cjs/utils/helpers/date.cjs +11 -0
  139. package/dist/cjs/utils/helpers/dateSelect.cjs +41 -0
  140. package/dist/cjs/utils/helpers/file.cjs +53 -0
  141. package/dist/cjs/utils/helpers/index.cjs +36 -0
  142. package/dist/cjs/utils/helpers/number.cjs +18 -0
  143. package/dist/cjs/utils/helpers/object.cjs +97 -0
  144. package/dist/cjs/utils/helpers/string.cjs +21 -0
  145. package/dist/cjs/utils/helpers/time.cjs +64 -0
  146. package/dist/cjs/utils/loadFont.cjs +19 -0
  147. package/dist/cjs/utils/useResize.cjs +24 -0
  148. package/dist/esm/components/Alert.js +44 -0
  149. package/dist/esm/components/Alert.styled.js +36 -0
  150. package/dist/esm/components/Autocomplete.js +172 -0
  151. package/dist/esm/components/Autocomplete.styled.js +13 -0
  152. package/dist/esm/components/Avatar.js +48 -0
  153. package/dist/esm/components/Avatar.styled.js +22 -0
  154. package/dist/esm/components/AvatarCropDialog.js +196 -0
  155. package/dist/esm/components/AvatarCropDialog.styled.js +19 -0
  156. package/dist/esm/components/AvatarInput.js +211 -0
  157. package/dist/esm/components/AvatarInput.styled.js +143 -0
  158. package/dist/esm/components/Badge.js +79 -0
  159. package/dist/esm/components/Badge.styled.js +21 -0
  160. package/dist/esm/components/BankAccountInput.js +292 -0
  161. package/dist/esm/components/BankAccountInput.styled.js +158 -0
  162. package/dist/esm/components/Bar.js +40 -0
  163. package/dist/esm/components/Bar.styled.js +20 -0
  164. package/dist/esm/components/BaseModal.js +37 -0
  165. package/dist/esm/components/BaseModal.styled.js +16 -0
  166. package/dist/esm/components/BooleanInput.js +169 -0
  167. package/dist/esm/components/BooleanInput.styled.js +62 -0
  168. package/dist/esm/components/BorderedGrid.js +42 -0
  169. package/dist/esm/components/Box.js +93 -0
  170. package/dist/esm/components/Button.js +44 -0
  171. package/dist/esm/components/Button.styled.js +96 -0
  172. package/dist/esm/components/Card.js +57 -0
  173. package/dist/esm/components/Card.styled.js +13 -0
  174. package/dist/esm/components/CardContent.js +17 -0
  175. package/dist/esm/components/CardContent.styled.js +8 -0
  176. package/dist/esm/components/Checkbox.js +45 -0
  177. package/dist/esm/components/Checkbox.styled.js +23 -0
  178. package/dist/esm/components/CircularProgress.js +10 -0
  179. package/dist/esm/components/CollapsedText.js +84 -0
  180. package/dist/esm/components/CollapsedText.styled.js +48 -0
  181. package/dist/esm/components/Confirmation.js +56 -0
  182. package/dist/esm/components/Container.js +17 -0
  183. package/dist/esm/components/CroppedImageInput.js +461 -0
  184. package/dist/esm/components/CroppedImageInput.styled.js +85 -0
  185. package/dist/esm/components/CroppedImageInputActions.js +74 -0
  186. package/dist/esm/components/DateInput.js +214 -0
  187. package/dist/esm/components/DateInput.styled.js +21 -0
  188. package/dist/esm/components/DateNumberInput.js +171 -0
  189. package/dist/esm/components/DateNumberInput.styled.js +55 -0
  190. package/dist/esm/components/DatePicker.js +130 -0
  191. package/dist/esm/components/DatePicker.styled.js +15 -0
  192. package/dist/esm/components/DateSelect.js +208 -0
  193. package/dist/esm/components/DateSelect.styled.js +11 -0
  194. package/dist/esm/components/Divider.js +63 -0
  195. package/dist/esm/components/Divider.styled.js +60 -0
  196. package/dist/esm/components/DropZone.js +149 -0
  197. package/dist/esm/components/DropZone.styled.js +71 -0
  198. package/dist/esm/components/Embed.js +37 -0
  199. package/dist/esm/components/Embed.styled.js +34 -0
  200. package/dist/esm/components/FileUpload.js +315 -0
  201. package/dist/esm/components/FileUpload.styled.js +43 -0
  202. package/dist/esm/components/FileUploadButton.js +113 -0
  203. package/dist/esm/components/FileUploadButtonLoader.js +23 -0
  204. package/dist/esm/components/FileViewer.js +113 -0
  205. package/dist/esm/components/FileViewer.styled.js +25 -0
  206. package/dist/esm/components/FlashMessage.js +65 -0
  207. package/dist/esm/components/FormControl.js +98 -0
  208. package/dist/esm/components/FormControl.styled.js +18 -0
  209. package/dist/esm/components/FormFocus.js +33 -0
  210. package/dist/esm/components/FormLabel.js +20 -0
  211. package/dist/esm/components/FormLabel.styled.js +51 -0
  212. package/dist/esm/components/Grid.js +48 -0
  213. package/dist/esm/components/Grid.styled.js +10 -0
  214. package/dist/esm/components/Heading.js +37 -0
  215. package/dist/esm/components/IconButton.js +27 -0
  216. package/dist/esm/components/IconButton.styled.js +27 -0
  217. package/dist/esm/components/Icons.js +58 -0
  218. package/dist/esm/components/LinearProgress.js +10 -0
  219. package/dist/esm/components/Link.js +33 -0
  220. package/dist/esm/components/Link.styled.js +37 -0
  221. package/dist/esm/components/Media.js +40 -0
  222. package/dist/esm/components/Media.styled.js +42 -0
  223. package/dist/esm/components/Modal.js +52 -0
  224. package/dist/esm/components/ModalActions.js +19 -0
  225. package/dist/esm/components/ModalContent.js +28 -0
  226. package/dist/esm/components/ModalHeader.js +20 -0
  227. package/dist/esm/components/ModalHeader.styled.js +25 -0
  228. package/dist/esm/components/Nameplate.js +106 -0
  229. package/dist/esm/components/Nameplate.styled.js +44 -0
  230. package/dist/esm/components/Pagination.js +143 -0
  231. package/dist/esm/components/Pagination.styled.js +79 -0
  232. package/dist/esm/components/Paper.js +30 -0
  233. package/dist/esm/components/Paper.styled.js +59 -0
  234. package/dist/esm/components/Popper.js +60 -0
  235. package/dist/esm/components/PropertyCard.js +218 -0
  236. package/dist/esm/components/PropertyCard.styled.js +62 -0
  237. package/dist/esm/components/Radio.js +45 -0
  238. package/dist/esm/components/Radio.styled.js +23 -0
  239. package/dist/esm/components/Rating.js +10 -0
  240. package/dist/esm/components/Select.js +101 -0
  241. package/dist/esm/components/Select.styled.js +95 -0
  242. package/dist/esm/components/Skeleton.js +19 -0
  243. package/dist/esm/components/StatusMessage.js +23 -0
  244. package/dist/esm/components/StepIcon.js +46 -0
  245. package/dist/esm/components/StepIcon.styled.js +54 -0
  246. package/dist/esm/components/Stepper.js +54 -0
  247. package/dist/esm/components/Stepper.styled.js +59 -0
  248. package/dist/esm/components/SuccessModal.js +39 -0
  249. package/dist/esm/components/SuccessModal.styled.js +19 -0
  250. package/dist/esm/components/Switch.js +42 -0
  251. package/dist/esm/components/Switch.styled.js +103 -0
  252. package/dist/esm/components/Tab.js +35 -0
  253. package/dist/esm/components/Tab.styled.js +12 -0
  254. package/dist/esm/components/TabPanel.js +26 -0
  255. package/dist/esm/components/TabPanel.styled.js +10 -0
  256. package/dist/esm/components/Table.js +17 -0
  257. package/dist/esm/components/TableBody.js +17 -0
  258. package/dist/esm/components/TableCell.js +17 -0
  259. package/dist/esm/components/TableContainer.js +17 -0
  260. package/dist/esm/components/TableFooter.js +17 -0
  261. package/dist/esm/components/TableHead.js +17 -0
  262. package/dist/esm/components/TableRow.js +17 -0
  263. package/dist/esm/components/Tabs.js +61 -0
  264. package/dist/esm/components/Tabs.styled.js +88 -0
  265. package/dist/esm/components/Tag.js +33 -0
  266. package/dist/esm/components/Tag.styled.js +114 -0
  267. package/dist/esm/components/Text.js +32 -0
  268. package/dist/esm/components/TextInput.js +141 -0
  269. package/dist/esm/components/TextInput.styled.js +105 -0
  270. package/dist/esm/components/ThemeProvider.js +39 -0
  271. package/dist/esm/components/TimeInput.js +244 -0
  272. package/dist/esm/components/TimeInput.styled.js +34 -0
  273. package/dist/esm/components/Tooltip.js +36 -0
  274. package/dist/esm/components/Tooltip.styled.js +51 -0
  275. package/dist/esm/components/Truncate.js +19 -0
  276. package/dist/esm/index.js +84 -0
  277. package/dist/esm/theme/index.js +247 -0
  278. package/dist/esm/utils/animations.js +60 -0
  279. package/dist/esm/utils/colors.js +28 -0
  280. package/dist/esm/utils/constants.js +5 -0
  281. package/dist/esm/utils/files.js +39 -0
  282. package/dist/esm/utils/helpers/array.js +20 -0
  283. package/dist/esm/utils/helpers/boolean.js +16 -0
  284. package/dist/esm/utils/helpers/date.js +6 -0
  285. package/dist/esm/utils/helpers/dateSelect.js +35 -0
  286. package/dist/esm/utils/helpers/file.js +47 -0
  287. package/dist/esm/utils/helpers/index.js +6 -0
  288. package/dist/esm/utils/helpers/number.js +15 -0
  289. package/dist/esm/utils/helpers/object.js +88 -0
  290. package/dist/esm/utils/helpers/string.js +15 -0
  291. package/dist/esm/utils/helpers/time.js +59 -0
  292. package/dist/esm/utils/loadFont.js +15 -0
  293. package/dist/esm/utils/useResize.js +20 -0
  294. package/package.json +2 -2
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import mime from 'mime/lite';
6
+ import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
7
+ import Button from './Button.js';
8
+ import Box from './Box.js';
9
+ import Embed from './Embed.js';
10
+ import Grid from './Grid.js';
11
+ import Modal from './Modal.js';
12
+ import ModalContent from './ModalContent.js';
13
+ import ModalHeader from './ModalHeader.js';
14
+ import Heading from './Heading.js';
15
+ import { StyledFilePreviewAreaOuter, StyledBrokenFileIcon } from './FileViewer.styled.js';
16
+ import { isString } from '../utils/helpers/boolean.js';
17
+ import '../utils/helpers/time.js';
18
+
19
+ const getFileName = (file) => {
20
+ if (file.filename) {
21
+ return file.filename;
22
+ }
23
+ if (file.url) {
24
+ const name = file.url.substring(file.url.lastIndexOf("/") + 1);
25
+ if (name.includes("?")) {
26
+ const chuncks = name.split("?");
27
+ return chuncks[0];
28
+ }
29
+ return name;
30
+ }
31
+ return "";
32
+ };
33
+ const getFileExtension = (file) => {
34
+ const type = mime.getType(getFileName(file));
35
+ if (type) {
36
+ return mime.getExtension(type);
37
+ }
38
+ if (file.type) {
39
+ return mime.getExtension(file.type);
40
+ }
41
+ return "unsupported";
42
+ };
43
+ const isImage = (file) => {
44
+ if (file && file.url && file.url.startsWith("data:image")) {
45
+ return true;
46
+ }
47
+ const extension = getFileExtension(file);
48
+ const extensions = ["jpg", "jpeg", "png", "gif", "svg"];
49
+ return extensions.includes(extension);
50
+ };
51
+ function FileViewer({ file = null, heading = "", open = false, onClose }) {
52
+ return /* @__PURE__ */ jsx(Modal, { open: open && file !== null, onClose, fullWidth: true, children: file !== null && open && /* @__PURE__ */ jsxs(Fragment, { children: [
53
+ /* @__PURE__ */ jsx(ModalHeader, { onClose, children: /* @__PURE__ */ jsx(Heading, { as: "h5", children: heading || getFileName(file) }) }),
54
+ /* @__PURE__ */ jsx(ModalContent, { children: /* @__PURE__ */ jsx(StyledFilePreviewAreaOuter, { children: (() => {
55
+ if (isImage(file)) {
56
+ return /* @__PURE__ */ jsx(Box, { display: "flex", justifyContent: "center", width: "100%", children: /* @__PURE__ */ jsx(
57
+ "img",
58
+ {
59
+ src: file.url,
60
+ alt: getFileName(file),
61
+ style: { maxWidth: "100%" }
62
+ }
63
+ ) });
64
+ }
65
+ if (file && isString(file.url) && file.url.startsWith("data") && getFileExtension(file) !== "pdf" || getFileExtension(file) === "unsupported") {
66
+ return /* @__PURE__ */ jsxs(
67
+ Grid,
68
+ {
69
+ container: true,
70
+ spacing: 5,
71
+ direction: "column",
72
+ alignItems: "center",
73
+ justify: "center",
74
+ children: [
75
+ /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(StyledBrokenFileIcon, { children: /* @__PURE__ */ jsx(ErrorOutlineIcon, {}) }) }),
76
+ /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(Heading, { as: "h5", transform: "uppercase", children: "Preview unavailable" }) }),
77
+ /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(
78
+ Button,
79
+ {
80
+ href: file.url,
81
+ as: "a",
82
+ download: true,
83
+ color: "primary",
84
+ size: "large",
85
+ children: "Download"
86
+ }
87
+ ) })
88
+ ]
89
+ }
90
+ );
91
+ }
92
+ return /* @__PURE__ */ jsx(
93
+ Embed,
94
+ {
95
+ src: file.url.startsWith("data") || file.url.includes(".pdf") ? file.url : `https://docs.google.com/gview?url=${file.url}&embedded=true`,
96
+ height: "85%"
97
+ }
98
+ );
99
+ })() }) })
100
+ ] }) });
101
+ }
102
+ FileViewer.propTypes = {
103
+ file: PropTypes.shape({
104
+ url: PropTypes.string,
105
+ filename: PropTypes.string,
106
+ type: PropTypes.string
107
+ }),
108
+ heading: PropTypes.string,
109
+ open: PropTypes.bool,
110
+ onClose: PropTypes.func.isRequired
111
+ };
112
+
113
+ export { FileViewer as default };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ import styled, { css } from 'styled-components';
3
+ import Heading from './Heading.js';
4
+
5
+ const StyledFilePreviewAreaOuter = styled.div`
6
+ min-height: 80vh;
7
+ display: flex;
8
+ align-items: center;
9
+ `;
10
+ const StyledBrokenFileIcon = styled.div`
11
+ ${({ theme }) => css`
12
+ color: ${theme.palette.default.light};
13
+
14
+ & svg {
15
+ font-size: 100px;
16
+ }
17
+ `}
18
+ `;
19
+ const StyledHeading = styled(Heading)`
20
+ overflow: hidden;
21
+ text-overflow: ellipsis;
22
+ white-space: nowrap;
23
+ `;
24
+
25
+ export { StyledBrokenFileIcon, StyledFilePreviewAreaOuter, StyledHeading };
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import Snackbar from '@mui/material/Snackbar';
6
+ import Alert from './Alert.js';
7
+
8
+ function FlashMessage({
9
+ autoHideDuration = 3500,
10
+ children,
11
+ color = "success",
12
+ horizontal = "center",
13
+ open = false,
14
+ onClose,
15
+ vertical = "top",
16
+ ...rest
17
+ }) {
18
+ const handleClose = () => {
19
+ onClose();
20
+ };
21
+ return /* @__PURE__ */ jsx(
22
+ Snackbar,
23
+ {
24
+ anchorOrigin: { vertical, horizontal },
25
+ autoHideDuration,
26
+ open,
27
+ onClose: handleClose,
28
+ message: "This is a text snack message",
29
+ ...rest,
30
+ children: /* @__PURE__ */ jsx(Alert, { color, onClose: handleClose, elevation: 7, children })
31
+ }
32
+ );
33
+ }
34
+ FlashMessage.propTypes = {
35
+ /**
36
+ * The number of milliseconds to wait before automatically calling the `onClose` function.
37
+ */
38
+ autoHideDuration: PropTypes.number,
39
+ /**
40
+ * The main color for the component.
41
+ */
42
+ color: PropTypes.oneOf(["error", "info", "success", "warning"]),
43
+ /**
44
+ * React component, HTML node, string etc..
45
+ */
46
+ children: PropTypes.node.isRequired,
47
+ /**
48
+ * Horizontal position of component
49
+ */
50
+ horizontal: PropTypes.oneOf(["left", "center", "right"]),
51
+ /**
52
+ * If `true`, the component is shown.
53
+ */
54
+ open: PropTypes.bool,
55
+ /**
56
+ * Callback fired when the component requests to be closed.
57
+ */
58
+ onClose: PropTypes.func.isRequired,
59
+ /**
60
+ * Vertical position of component
61
+ */
62
+ vertical: PropTypes.oneOf(["bottom", "top"])
63
+ };
64
+
65
+ export { FlashMessage as default };
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { AnimatePresence, motion } from 'framer-motion';
5
+ import FormHelperText from '@mui/material/FormHelperText';
6
+ import FormLabel from './FormLabel.js';
7
+ import StatusMessage from './StatusMessage.js';
8
+ import StyledFormControl from './FormControl.styled.js';
9
+ import { isString } from '../utils/helpers/boolean.js';
10
+ import 'mime/lite';
11
+ import '../utils/helpers/time.js';
12
+
13
+ const FormControl = forwardRef(
14
+ function FormControl2({
15
+ children,
16
+ color = "default",
17
+ disabled = false,
18
+ errorMessage = "",
19
+ fullWidth = false,
20
+ helperText = "",
21
+ label = void 0,
22
+ message = "",
23
+ required = false,
24
+ showError = false,
25
+ id,
26
+ size = "medium"
27
+ }, ref) {
28
+ const props = {
29
+ color: showError ? "error" : color,
30
+ $disabled: disabled,
31
+ fullWidth,
32
+ $required: required
33
+ };
34
+ const statusMessage = errorMessage || message;
35
+ return (
36
+ /** @ts-ignore */
37
+ /* @__PURE__ */ jsxs(StyledFormControl, { ...props, ref, children: [
38
+ !!label && isString(label) ? /* @__PURE__ */ jsx(
39
+ FormLabel,
40
+ {
41
+ disabled,
42
+ htmlFor: id,
43
+ required,
44
+ size,
45
+ children: label
46
+ }
47
+ ) : label,
48
+ children,
49
+ /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsx(
50
+ motion.div,
51
+ {
52
+ layout: true,
53
+ initial: "collapsed",
54
+ animate: "open",
55
+ exit: "collapsed",
56
+ variants: {
57
+ open: { opacity: 1, height: "auto" },
58
+ collapsed: { opacity: 0, height: 0 }
59
+ },
60
+ transition: {
61
+ delay: 0.15,
62
+ duration: 0.3,
63
+ ease: [0.04, 0.62, 0.23, 0.98]
64
+ },
65
+ children: !!statusMessage && /* @__PURE__ */ jsx(
66
+ StatusMessage,
67
+ {
68
+ color: props.color === "default" ? "info" : props.color,
69
+ children: statusMessage
70
+ }
71
+ )
72
+ },
73
+ `${id}_message`
74
+ ) }),
75
+ !!helperText && /* @__PURE__ */ jsx(
76
+ FormHelperText,
77
+ {
78
+ sx: {
79
+ color: "text.primary",
80
+ fontSize: (theme) => {
81
+ if (size === "medium") {
82
+ return `${theme.typography.fontSize}px`;
83
+ }
84
+ return null;
85
+ },
86
+ padding: 0,
87
+ margin: 0,
88
+ mt: statusMessage ? 0 : "8px"
89
+ },
90
+ children: helperText
91
+ }
92
+ )
93
+ ] })
94
+ );
95
+ }
96
+ );
97
+
98
+ export { FormControl as default };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ import { css } from '@emotion/react';
3
+ import { styled } from '@mui/material/styles';
4
+ import FormControl from '@mui/material/FormControl';
5
+ import { getObjectProp } from '../utils/helpers/object.js';
6
+
7
+ const StyledFormControl = styled(FormControl)`
8
+ ${({ size, theme }) => css`
9
+ ${size === "small" && css`
10
+ font-size: calc(${getObjectProp(theme, "typography.fontSize")}px - 2px);
11
+ `}
12
+ ${size === "medium" && css`
13
+ font-size: ${getObjectProp(theme, "typography.fontSize")}px;
14
+ `}
15
+ `}
16
+ `;
17
+
18
+ export { StyledFormControl as default };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+
6
+ function FormFocus({ name }) {
7
+ return /* @__PURE__ */ jsx(
8
+ "input",
9
+ {
10
+ name,
11
+ style: {
12
+ appearance: "none",
13
+ border: "none",
14
+ outline: "none",
15
+ margin: 0,
16
+ padding: 0,
17
+ // needs to be 'visisble for iOS to scroll to..
18
+ width: "100%",
19
+ height: 1,
20
+ marginBottom: -1,
21
+ opacity: 0.1,
22
+ // prevent zoom...
23
+ fontSize: 20
24
+ },
25
+ readOnly: true
26
+ }
27
+ );
28
+ }
29
+ FormFocus.propTypes = {
30
+ name: PropTypes.string.isRequired
31
+ };
32
+
33
+ export { FormFocus as default };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import StyledFormLabel from './FormLabel.styled.js';
4
+
5
+ function FormLabel({
6
+ children,
7
+ disabled = false,
8
+ margin = "default",
9
+ required = false,
10
+ ...rest
11
+ }) {
12
+ const props = {
13
+ disabled,
14
+ margin,
15
+ required
16
+ };
17
+ return /* @__PURE__ */ jsx(StyledFormLabel, { ...rest, ...props, children });
18
+ }
19
+
20
+ export { FormLabel as default };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ import { styled } from '@mui/material/styles';
3
+ import { css } from '@emotion/react';
4
+ import FormLabel from '@mui/material/FormLabel';
5
+ import { getObjectProp } from '../utils/helpers/object.js';
6
+
7
+ const colorStyles = ({ disabled, theme }) => css`
8
+ ${!disabled && css`
9
+ color: ${getObjectProp(theme, "vars.palette.text.primary")};
10
+ `}
11
+
12
+ ${disabled && css`
13
+ color: ${getObjectProp(theme, "vars.palette.grey.400")};
14
+ pointer-events: none;
15
+ user-select: none;
16
+ `}
17
+ `;
18
+ const marginStyles = ({ margin }) => css`
19
+ ${margin === "default" && css`
20
+ margin-bottom: 8px;
21
+ `}
22
+ ${margin === "dense" && css`
23
+ margin-bottom: 4px;
24
+ `}
25
+ `;
26
+ const StyledFormLabel = styled(FormLabel)`
27
+ ${({ disabled, margin, size, theme }) => css`
28
+ font-weight: 600;
29
+ ${marginStyles({ margin })}
30
+ && {
31
+ display: inline-flex;
32
+ ${colorStyles({ disabled, theme })}
33
+ }
34
+
35
+ ${size === "small" && css`
36
+ font-size: calc(${getObjectProp(theme, "typography.fontSize")}px - 2px);
37
+ `}
38
+ ${size === "medium" && css`
39
+ font-size: ${getObjectProp(theme, "typography.fontSize")}px;
40
+ `}
41
+
42
+ .MuiFormLabel-asterisk {
43
+ color: ${getObjectProp(
44
+ theme,
45
+ disabled ? "vars.palette.grey.400" : "vars.palette.error.main"
46
+ )};
47
+ }
48
+ `}
49
+ `;
50
+
51
+ export { StyledFormLabel as default };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import MuiGrid from '@mui/material/GridLegacy';
6
+ import { useTheme } from '@mui/material/styles';
7
+
8
+ function Grid({
9
+ children,
10
+ marginFix = false,
11
+ spacing = 0,
12
+ container = false,
13
+ ...rest
14
+ }) {
15
+ const theme = useTheme();
16
+ return marginFix && spacing && container ? /* @__PURE__ */ jsx("div", { style: { padding: `${theme.spacing(spacing)}` }, children: /* @__PURE__ */ jsx(
17
+ MuiGrid,
18
+ {
19
+ container: true,
20
+ spacing,
21
+ ...rest,
22
+ children
23
+ }
24
+ ) }) : /* @__PURE__ */ jsx(
25
+ MuiGrid,
26
+ {
27
+ spacing,
28
+ container,
29
+ ...rest,
30
+ children
31
+ }
32
+ );
33
+ }
34
+ Grid.propTypes = {
35
+ /**
36
+ * React component, HTML node, string etc..
37
+ */
38
+ children: PropTypes.node.isRequired,
39
+ spacing: PropTypes.number,
40
+ container: PropTypes.bool,
41
+ /**
42
+ * Remove negative margin issues on containers
43
+ * @see https://material-ui.com/components/grid/#negative-margin
44
+ */
45
+ marginFix: PropTypes.bool
46
+ };
47
+
48
+ export { Grid as default };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ import Box from '@mui/material/Box';
3
+ import { styled } from '@mui/material/styles';
4
+
5
+ const StyledGridBox = styled(Box)(({ borderStyle, error, theme }) => ({
6
+ border: `${borderStyle} 1px ${error ? theme.palette.error.main : theme.palette.grey.A100}`,
7
+ borderRadius: theme.shape.borderRadius
8
+ }));
9
+
10
+ export { StyledGridBox };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import Typography from '@mui/material/Typography';
4
+
5
+ function Heading({
6
+ as,
7
+ children,
8
+ color = "textPrimary",
9
+ italic = false,
10
+ transform = void 0,
11
+ weight = "600",
12
+ sx = {},
13
+ ...rest
14
+ }) {
15
+ const textStyles = {
16
+ fontWeight: weight,
17
+ ...italic && { fontStyle: "italic" },
18
+ ...transform && { textTransform: transform }
19
+ };
20
+ return /* @__PURE__ */ jsx(
21
+ Typography,
22
+ {
23
+ ...rest,
24
+ color,
25
+ component: as,
26
+ variant: as,
27
+ paragraph: false,
28
+ sx: {
29
+ ...textStyles,
30
+ ...sx
31
+ },
32
+ children
33
+ }
34
+ );
35
+ }
36
+
37
+ export { Heading as default };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import StyledIconButton from './IconButton.styled.js';
4
+
5
+ function IconButton({
6
+ children,
7
+ color = "default",
8
+ edges = "smooth",
9
+ disabled = false,
10
+ size = "medium",
11
+ ...others
12
+ }) {
13
+ const rest = { size, ...others };
14
+ return /* @__PURE__ */ jsx(
15
+ StyledIconButton,
16
+ {
17
+ type: "button",
18
+ color,
19
+ edges,
20
+ disabled,
21
+ ...rest,
22
+ children
23
+ }
24
+ );
25
+ }
26
+
27
+ export { IconButton as default };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ import { css } from '@emotion/react';
3
+ import { styled } from '@mui/material/styles';
4
+ import IconButton from '@mui/material/IconButton';
5
+ import { disabledStyles, edgesStyles } from './Button.styled.js';
6
+
7
+ const sizeStyles = ({ size }) => css`
8
+ ${size === "small" && css`
9
+ font-size: 24px;
10
+ `}
11
+ ${size === "medium" && css`
12
+ font-size: 30px;
13
+ `}
14
+ ${size === "large" && css`
15
+ font-size: 36px;
16
+ `}
17
+ `;
18
+ const StyledIconButton = styled(IconButton)`
19
+ ${({ disabled, edges, size, theme }) => css`
20
+ padding: 4px;
21
+ ${disabled && disabledStyles}
22
+ ${edgesStyles({ edges, theme })}
23
+ ${sizeStyles({ size })}
24
+ `}
25
+ `;
26
+
27
+ export { StyledIconButton as default };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import styled from 'styled-components';
5
+ import AddCircleIcon from '@mui/icons-material/AddCircle';
6
+ import Heading from './Heading.js';
7
+ import Link from './Link.js';
8
+ import Text from './Text.js';
9
+
10
+ const Code = styled.code`
11
+ line-height: 1;
12
+ margin: 0 2px;
13
+ padding: 3px 5px;
14
+ white-space: nowrap;
15
+ border-radius: 3px;
16
+ font-size: 13px;
17
+ border: 1px solid #eeeeee;
18
+ color: rgba(51, 51, 51, 0.9);
19
+ background-color: #f8f8f8;
20
+ `;
21
+ function Icons() {
22
+ return /* @__PURE__ */ jsxs("div", { children: [
23
+ /* @__PURE__ */ jsx(Heading, { as: "h3", children: "Icons" }),
24
+ /* @__PURE__ */ jsxs(Text, { color: "inherit", children: [
25
+ "This design system uses ",
26
+ /* @__PURE__ */ jsx(Code, { children: "@mui/icons-material" }),
27
+ ", which includes the 1,100+ official Material icons converted to ",
28
+ /* @__PURE__ */ jsx(Code, { children: "SvgIcon" }),
29
+ " ",
30
+ "components."
31
+ ] }),
32
+ /* @__PURE__ */ jsxs(Text, { color: "inherit", children: [
33
+ "Visit",
34
+ " ",
35
+ /* @__PURE__ */ jsx(
36
+ Link,
37
+ {
38
+ href: "https://material-ui.com/components/material-icons/",
39
+ target: "_blank",
40
+ rel: "noreferrer",
41
+ children: "Material UI Documentation"
42
+ }
43
+ ),
44
+ " ",
45
+ "for full list and examples."
46
+ ] }),
47
+ /* @__PURE__ */ jsx("br", {}),
48
+ /* @__PURE__ */ jsx(Heading, { as: "h5", children: "Basic usage" }),
49
+ /* @__PURE__ */ jsx(Text, { as: "div", children: /* @__PURE__ */ jsx(Code, { children: "import AddCircleIcon from '@mui/icons-material/AddCircle';" }) }),
50
+ /* @__PURE__ */ jsx(Text, { as: "div", paragraph: false, children: /* @__PURE__ */ jsxs(Fragment, { children: [
51
+ /* @__PURE__ */ jsx(AddCircleIcon, {}),
52
+ " ",
53
+ /* @__PURE__ */ jsx(Text, { as: "span", paragraph: false, children: "Add Circle Icon" })
54
+ ] }) })
55
+ ] });
56
+ }
57
+
58
+ export { Icons as default };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import LinearProgress$1 from '@mui/material/LinearProgress';
5
+
6
+ function LinearProgress({ ...rest }) {
7
+ return /* @__PURE__ */ jsx(LinearProgress$1, { ...rest });
8
+ }
9
+
10
+ export { LinearProgress as default };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { StyledLink } from './Link.styled.js';
6
+
7
+ function Link({ children, color = "primary", underline = "none", ...others }) {
8
+ const rest = { color, underline, ...others };
9
+ return /* @__PURE__ */ jsx(StyledLink, { ...rest, children });
10
+ }
11
+ Link.propTypes = {
12
+ /**
13
+ * The content of the component.
14
+ */
15
+ children: PropTypes.node.isRequired,
16
+ /**
17
+ * The color of the link.
18
+ */
19
+ color: PropTypes.oneOf([
20
+ "error",
21
+ "inherit",
22
+ "primary",
23
+ "secondary",
24
+ "textPrimary",
25
+ "textSecondary"
26
+ ]),
27
+ /**
28
+ * When the link should have an underline.
29
+ */
30
+ underline: PropTypes.oneOf(["always", "hover", "none"])
31
+ };
32
+
33
+ export { Link as default };