@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,169 @@
1
+ "use strict";
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { useState, useEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import FormControl from './FormControl.js';
6
+ import FormFocus from './FormFocus.js';
7
+ import { StyledButtonGroup, StyledButton } from './BooleanInput.styled.js';
8
+
9
+ function BooleanInput({
10
+ disabled = false,
11
+ disableRipple = false,
12
+ fullWidth = false,
13
+ helperText = "",
14
+ helperTextPlacement = "below",
15
+ label = "",
16
+ required = false,
17
+ onChange,
18
+ edges = "normal",
19
+ value = null,
20
+ showError = false,
21
+ errorMessage = "",
22
+ trueLabel = "Yes",
23
+ falseLabel = "No",
24
+ parseBool = (v) => !!v,
25
+ name,
26
+ parseValue = (v) => !!v
27
+ }) {
28
+ const [indeterminate, setIndeterminate] = useState(true);
29
+ const [checked, setChecked] = useState(true);
30
+ const hasError = showError && errorMessage;
31
+ useEffect(() => {
32
+ if (value !== null && value !== "" && value !== void 0) {
33
+ setIndeterminate(false);
34
+ setChecked(parseBool(value));
35
+ }
36
+ }, [value, parseBool]);
37
+ const handleChange = (e, bool) => {
38
+ e.preventDefault();
39
+ onChange(parseValue(bool));
40
+ };
41
+ return /* @__PURE__ */ jsx(
42
+ FormControl,
43
+ {
44
+ fullWidth,
45
+ label,
46
+ name,
47
+ helperText,
48
+ helperTextPlacement,
49
+ disabled,
50
+ required,
51
+ showError,
52
+ errorMessage,
53
+ edges,
54
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
55
+ /* @__PURE__ */ jsx(FormFocus, { name }),
56
+ /* @__PURE__ */ jsxs(StyledButtonGroup, { edges, children: [
57
+ /* @__PURE__ */ jsx(
58
+ StyledButton,
59
+ {
60
+ variant: indeterminate || !checked ? "outlined" : "contained",
61
+ onClick: (e) => handleChange(e, true),
62
+ disableElevation: true,
63
+ disableRipple,
64
+ disableTouchRipple: disableRipple,
65
+ disableFocusRipple: disableRipple,
66
+ type: "button",
67
+ indeterminate: indeterminate ? "yes" : "no",
68
+ checked,
69
+ required,
70
+ selected: !indeterminate && checked,
71
+ error: hasError ? "yes" : "no",
72
+ children: trueLabel
73
+ }
74
+ ),
75
+ /* @__PURE__ */ jsx(
76
+ StyledButton,
77
+ {
78
+ variant: indeterminate || checked ? "outlined" : "contained",
79
+ onClick: (e) => handleChange(e, false),
80
+ disableElevation: true,
81
+ disableRipple,
82
+ disableTouchRipple: disableRipple,
83
+ disableFocusRipple: disableRipple,
84
+ type: "button",
85
+ indeterminate: indeterminate ? "yes" : "no",
86
+ checked,
87
+ required,
88
+ selected: !indeterminate && !checked,
89
+ error: hasError ? "yes" : "no",
90
+ children: falseLabel
91
+ }
92
+ )
93
+ ] })
94
+ ] })
95
+ }
96
+ );
97
+ }
98
+ BooleanInput.propTypes = {
99
+ /**
100
+ * The input name.
101
+ */
102
+ name: PropTypes.string.isRequired,
103
+ /**
104
+ * Whether or not the 'Yes' option is selected. Pass null if indeterminate.
105
+ */
106
+ value: PropTypes.any,
107
+ /**
108
+ * If `true`, the buttons will be disabled.
109
+ */
110
+ disabled: PropTypes.bool,
111
+ /**
112
+ * If `true`, the buttons will not have ripple effect when clicked.
113
+ */
114
+ disableRipple: PropTypes.bool,
115
+ /**
116
+ * If `true`, the buttons will take up the full width of its container.
117
+ */
118
+ fullWidth: PropTypes.bool,
119
+ /**
120
+ * Label for the left button
121
+ */
122
+ trueLabel: PropTypes.string,
123
+ /**
124
+ * Label for the right button
125
+ */
126
+ falseLabel: PropTypes.string,
127
+ /**
128
+ * The helper text content.
129
+ */
130
+ helperText: PropTypes.string,
131
+ /**
132
+ * Placed the helper text above or below the input.
133
+ */
134
+ helperTextPlacement: PropTypes.oneOf(["above", "below"]),
135
+ /**
136
+ * The label content.
137
+ */
138
+ label: PropTypes.string,
139
+ /**
140
+ * If `true`, the label is displayed as required and the `input` element` will be required.
141
+ */
142
+ required: PropTypes.bool,
143
+ /**
144
+ * Function to change input value
145
+ */
146
+ onChange: PropTypes.func.isRequired,
147
+ /**
148
+ * Whether or not to display an error message (if there is a message to display).
149
+ */
150
+ showError: PropTypes.bool,
151
+ /**
152
+ * The error message to display if showError === true
153
+ */
154
+ errorMessage: PropTypes.string,
155
+ /**
156
+ * Make button edges rounded or square
157
+ */
158
+ edges: PropTypes.oneOf(["normal", "rounded", "sharp"]),
159
+ /**
160
+ * Function for parsing the value as a bool to determine which button is currently selected (true = left)
161
+ */
162
+ parseBool: PropTypes.func,
163
+ /**
164
+ * Function for parsing the value back
165
+ */
166
+ parseValue: PropTypes.func
167
+ };
168
+
169
+ export { BooleanInput as default };
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ import { styled } from '@mui/material/styles';
3
+ import Button from '@mui/material/Button';
4
+ import ButtonGroup from '@mui/material/ButtonGroup';
5
+
6
+ const selectedStyles = (hasError, theme) => ({
7
+ borderColor: hasError === "yes" ? theme.palette.secondary.main : theme.palette.primaryAlt.main,
8
+ color: "#fff",
9
+ background: hasError === "yes" ? theme.palette.secondary.main : theme.palette.primaryAlt.main,
10
+ "&:hover": {
11
+ background: hasError === "yes" ? theme.palette.secondary.dark : theme.palette.primaryAlt.dark
12
+ }
13
+ });
14
+ const unselectedStyles = (error, theme) => ({
15
+ borderColor: error === "yes" ? theme.palette.secondary.main : theme.palette.primaryAlt.main,
16
+ color: error === "yes" ? theme.palette.secondary.main : theme.palette.primaryAlt.main
17
+ });
18
+ const requiredUnselectedStyles = (selected, theme) => ({
19
+ borderColor: !selected ? theme.palette.secondary.main : theme.palette.primaryAlt.main,
20
+ color: !selected ? theme.palette.secondary.main : theme.palette.primaryAlt.main
21
+ });
22
+ const borderRadiusStyles = (edges, theme) => {
23
+ if (edges === "rounded") {
24
+ return 99;
25
+ }
26
+ if (edges === "sharp") {
27
+ return 0;
28
+ }
29
+ return theme.shape.borderRadius;
30
+ };
31
+ const StyledButton = styled(Button)(
32
+ ({ error, indeterminate, required, selected, theme }) => ({
33
+ ...!selected && required && {
34
+ ...requiredUnselectedStyles(selected, theme),
35
+ "&:hover, &:active, &:focus": {
36
+ ...requiredUnselectedStyles(selected, theme)
37
+ }
38
+ },
39
+ ...!selected && !required && {
40
+ ...unselectedStyles(error, theme),
41
+ "&:hover, &:active, &:focus": {
42
+ ...unselectedStyles(error, theme)
43
+ }
44
+ },
45
+ ...selected && indeterminate === "no" && selectedStyles(error, theme)
46
+ })
47
+ );
48
+ const StyledButtonGroup = styled(ButtonGroup)(({ edges, theme }) => ({
49
+ "& .MuiButtonBase-root": {
50
+ borderRadius: borderRadiusStyles(edges, theme),
51
+ "&:first-child": {
52
+ borderTopRightRadius: 0,
53
+ borderBottomRightRadius: 0
54
+ },
55
+ "&:last-child": {
56
+ borderTopLeftRadius: 0,
57
+ borderBottomLeftRadius: 0
58
+ }
59
+ }
60
+ }));
61
+
62
+ export { StyledButton, StyledButtonGroup };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import Grid from './Grid.js';
6
+ import { StyledGridBox } from './Grid.styled.js';
7
+
8
+ function BorderedGrid({
9
+ error = false,
10
+ spacing = 5,
11
+ borderStyle = "solid",
12
+ ...rest
13
+ }) {
14
+ return /* @__PURE__ */ jsx(StyledGridBox, { error, borderStyle, children: /* @__PURE__ */ jsx(
15
+ Grid,
16
+ {
17
+ ...rest,
18
+ spacing,
19
+ marginFix: true
20
+ }
21
+ ) });
22
+ }
23
+ BorderedGrid.propTypes = {
24
+ error: PropTypes.bool,
25
+ spacing: PropTypes.number,
26
+ borderStyle: PropTypes.oneOf([
27
+ "none",
28
+ "hidden",
29
+ "dotted",
30
+ "dashed",
31
+ "solid",
32
+ "double",
33
+ "groove",
34
+ "ridge",
35
+ "inset",
36
+ "outset",
37
+ "initial",
38
+ "inherit"
39
+ ])
40
+ };
41
+
42
+ export { BorderedGrid as default };
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import Box$2 from '@mui/material/Box';
6
+
7
+ function Box({
8
+ as = "div",
9
+ align = "flex-start",
10
+ children,
11
+ display = "block",
12
+ direction = "row",
13
+ justify = "flex-start",
14
+ sx = {},
15
+ ...rest
16
+ }, ref) {
17
+ const flexProps = {
18
+ ...(display === "flex" || display === "inline-flex") && {
19
+ flexDirection: direction,
20
+ alignItems: align,
21
+ justifyContent: justify
22
+ }
23
+ };
24
+ return /* @__PURE__ */ jsx(
25
+ Box$2,
26
+ {
27
+ component: as,
28
+ ref,
29
+ sx: {
30
+ display,
31
+ ...flexProps,
32
+ ...sx
33
+ },
34
+ ...rest,
35
+ children
36
+ }
37
+ );
38
+ }
39
+ Box.propTypes = {
40
+ /**
41
+ * The component used for the root node.
42
+ */
43
+ as: PropTypes.oneOf([
44
+ "aside",
45
+ "div",
46
+ "footer",
47
+ "header",
48
+ "main",
49
+ "nav",
50
+ "section",
51
+ "span"
52
+ ]),
53
+ /**
54
+ * Defines css `align-items` property
55
+ */
56
+ align: PropTypes.oneOf(["flex-start", "center", "flex-end", "stretch"]),
57
+ /**
58
+ * Box render function or node.
59
+ */
60
+ children: PropTypes.node.isRequired,
61
+ /**
62
+ * Defines css `display` property
63
+ */
64
+ display: PropTypes.oneOf(["block", "flex", "inline-block", "inline-flex"]),
65
+ /**
66
+ * Defines css `display` property
67
+ */
68
+ direction: PropTypes.oneOf([
69
+ "row",
70
+ "row-reverse",
71
+ "column",
72
+ "column-reverse"
73
+ ]),
74
+ /**
75
+ * Defines css `justify-content` property
76
+ */
77
+ justify: PropTypes.oneOf([
78
+ "flex-start",
79
+ "center",
80
+ "flex-end",
81
+ "space-around",
82
+ "space-between",
83
+ "space-evenly"
84
+ ]),
85
+ /**
86
+ * Accepts all system properties, as well as any valid CSS properties.
87
+ * @see: https://next.material-ui.com/system/properties/
88
+ */
89
+ sx: PropTypes.object
90
+ };
91
+ var Box$1 = forwardRef(Box);
92
+
93
+ export { Box$1 as default };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import CircularProgress from '@mui/material/CircularProgress';
4
+ import StyledButton from './Button.styled.js';
5
+
6
+ const loadingIndicatorSizes = {
7
+ small: 14,
8
+ medium: 16,
9
+ large: 20
10
+ };
11
+ function Button({
12
+ as = "button",
13
+ children,
14
+ color = "primary",
15
+ disabled = false,
16
+ elevation = false,
17
+ fill = false,
18
+ loading = false,
19
+ loadingPosition = "start",
20
+ size = "medium",
21
+ type = "button",
22
+ variant = "contained",
23
+ ...others
24
+ }) {
25
+ const rest = {
26
+ color,
27
+ disabled,
28
+ size,
29
+ type,
30
+ variant,
31
+ loadingPosition,
32
+ disableElevation: !elevation,
33
+ disableRipple: true,
34
+ disableFocusRipple: true,
35
+ component: as,
36
+ fullWidth: fill,
37
+ loadingIndicator: /* @__PURE__ */ jsx(CircularProgress, { size: loadingIndicatorSizes[size], color: "inherit" }),
38
+ ...others,
39
+ ...loading === true && { loading: !disabled && loading }
40
+ };
41
+ return /* @__PURE__ */ jsx(StyledButton, { ...rest, children });
42
+ }
43
+
44
+ export { Button as default };
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ import Button from '@mui/material/Button';
3
+ import { css } from '@emotion/react';
4
+ import { styled } from '@mui/material/styles';
5
+ import { getObjectProp } from '../utils/helpers/object.js';
6
+
7
+ const edgesStyles = ({ edges, theme }) => css`
8
+ ${edges === "sharp" && css`
9
+ border-radius: 0px;
10
+ `}
11
+ ${edges === "rounded" && css`
12
+ border-radius: 99999px;
13
+ `}
14
+ ${edges === "smooth" && css`
15
+ border-radius: ${getObjectProp(theme, "shape.borderRadius", "4")}px;
16
+ `}
17
+ `;
18
+ const focusStyles = css`
19
+ &:focus {
20
+ box-shadow: 0px 0px 6px 0px #1f1c4f;
21
+ }
22
+ `;
23
+ const sizeStyles = ({ size, theme }) => css`
24
+ font-weight: ${getObjectProp(theme, "typography.button.fontWeight", "700")};
25
+ ${size === "small" && css`
26
+ font-size: calc(
27
+ ${getObjectProp(theme, "typography.button.fontSize", "14")}px - 2px
28
+ );
29
+ height: 32px;
30
+ `}
31
+ ${size === "medium" && css`
32
+ font-size: ${getObjectProp(theme, "typography.button.fontSize", "14")}px;
33
+ height: 36px;
34
+ `}
35
+ ${size === "large" && css`
36
+ font-size: font-size: calc(
37
+ ${getObjectProp(theme, "typography.button.fontSize", "14")}px + 2px
38
+ );
39
+ height: 44px;
40
+ `}
41
+ `;
42
+ const disabledStyles = css`
43
+ color: var(--tn-palette-text-muted);
44
+ background-color: var(--tn-palette-background-muted);
45
+ border: none;
46
+ `;
47
+ const containedStyles = ({ color, theme }) => css`
48
+ color: ${getObjectProp(theme, `vars.palette.${color}.contrastText`)};
49
+ background-color: ${getObjectProp(theme, `vars.palette.${color}.main`)};
50
+
51
+ &:hover {
52
+ background-color: ${getObjectProp(theme, `vars.palette.${color}.light`)};
53
+ }
54
+
55
+ &:active {
56
+ background-color: ${getObjectProp(theme, `vars.palette.${color}.dark`)};
57
+ }
58
+ .MuiButton-loadingWrapper {
59
+ color: ${getObjectProp(theme, `vars.palette.${color}.contrastText`)};
60
+ }
61
+
62
+ ${focusStyles}
63
+ `;
64
+ const outlinedStyles = ({ color, theme }) => css`
65
+ color: ${getObjectProp(theme, `vars.palette.${color}.main`)};
66
+ background-color: transparent;
67
+ border: 1px solid currentColor;
68
+
69
+ .MuiButton-loadingWrapper {
70
+ color: ${getObjectProp(theme, `vars.palette.${color}.main`)};
71
+ }
72
+
73
+ &:hover,
74
+ &:active {
75
+ background-color: ${getObjectProp(theme, "vars.palette.background.muted")};
76
+ }
77
+
78
+ ${focusStyles}
79
+ `;
80
+ const StyledButton = styled(Button)`
81
+ ${({ color, disabled, edges, size, theme, variant }) => css`
82
+ padding: 0px 24px;
83
+ text-transform: initial;
84
+ ${edgesStyles({ edges, theme })}
85
+ ${sizeStyles({ size, theme })}
86
+ ${disabled && disabledStyles}
87
+ ${variant === "contained" && !disabled && containedStyles({ color, theme })}
88
+ ${variant === "outlined" && !disabled && outlinedStyles({ color, theme })}
89
+
90
+ && {
91
+ font-weight: 700;
92
+ }
93
+ `}
94
+ `;
95
+
96
+ export { containedStyles, StyledButton as default, disabledStyles, edgesStyles, focusStyles, outlinedStyles, sizeStyles };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import CardContent from './CardContent.js';
6
+ import Media from './Media.js';
7
+ import Paper from './Paper.js';
8
+ import { StyledCardMedia } from './Card.styled.js';
9
+
10
+ function Card({
11
+ children,
12
+ elevate = false,
13
+ imgContent = void 0,
14
+ imgSrc = "",
15
+ onClick = null,
16
+ title = "",
17
+ ...others
18
+ }) {
19
+ const rest = { elevate, ...others };
20
+ return /* @__PURE__ */ jsxs(Paper, { elevate: false, outlined: true, ...rest, children: [
21
+ onClick && // <ActionArea onClick={onClick}>
22
+ /* @__PURE__ */ jsxs(StyledCardMedia, { children: [
23
+ imgContent,
24
+ !imgContent && /* @__PURE__ */ jsx(Media, { src: imgSrc, title })
25
+ ] }),
26
+ !onClick && /* @__PURE__ */ jsx(StyledCardMedia, { children: /* @__PURE__ */ jsx(Media, { src: imgSrc, title }) }),
27
+ /* @__PURE__ */ jsx(CardContent, { children })
28
+ ] });
29
+ }
30
+ Card.propTypes = {
31
+ /**
32
+ * The content of the component. React component, node, text etc.
33
+ */
34
+ children: PropTypes.node.isRequired,
35
+ /**
36
+ * Adds the box shadow
37
+ */
38
+ elevate: PropTypes.bool,
39
+ /**
40
+ * Custom image component, element, node etc.
41
+ */
42
+ imgContent: PropTypes.node,
43
+ /**
44
+ * Path to the image
45
+ */
46
+ imgSrc: PropTypes.string,
47
+ /**
48
+ * Function called when node is clicked
49
+ */
50
+ onClick: PropTypes.oneOfType([PropTypes.func, PropTypes.instanceOf(null)]),
51
+ /**
52
+ * Specifies an title & alternate text for an image
53
+ */
54
+ title: PropTypes.string
55
+ };
56
+
57
+ export { Card as default };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ import styled from 'styled-components';
3
+
4
+ const StyledCardMedia = styled.div`
5
+ height: 170px;
6
+ width: 100%;
7
+
8
+ @media screen and (min-width: 768px) {
9
+ height: 195px;
10
+ }
11
+ `;
12
+
13
+ export { StyledCardMedia };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { StyledCardContent } from './CardContent.styled.js';
6
+
7
+ function CardContent({ children }) {
8
+ return /* @__PURE__ */ jsx(StyledCardContent, { children });
9
+ }
10
+ CardContent.propTypes = {
11
+ /**
12
+ * The content of the component. React component, node, text etc.
13
+ */
14
+ children: PropTypes.node.isRequired
15
+ };
16
+
17
+ export { CardContent as default };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ import styled from 'styled-components';
3
+
4
+ const StyledCardContent = styled.div`
5
+ padding: 10px;
6
+ `;
7
+
8
+ export { StyledCardContent };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import Stack from '@mui/material/Stack';
4
+ import Box from './Box.js';
5
+ import FormLabel from './FormLabel.js';
6
+ import { StyledCheckbox } from './Checkbox.styled.js';
7
+
8
+ function Checkbox({
9
+ color = "primary",
10
+ disabled = false,
11
+ id = "",
12
+ required = false,
13
+ value = "",
14
+ label,
15
+ name,
16
+ size = "medium",
17
+ ...rest
18
+ }) {
19
+ const props = {
20
+ color,
21
+ disabled,
22
+ id: id || name,
23
+ required,
24
+ value,
25
+ size,
26
+ name,
27
+ ...rest
28
+ };
29
+ return /* @__PURE__ */ jsxs(Stack, { direction: "row", gap: "10px", alignItems: "flex-start", children: [
30
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(StyledCheckbox, { ...props, disableRipple: true }) }),
31
+ /* @__PURE__ */ jsx(
32
+ FormLabel,
33
+ {
34
+ htmlFor: id,
35
+ size,
36
+ disabled,
37
+ margin: "none",
38
+ sx: { mt: "2px", fontWeight: "500" },
39
+ children: label
40
+ }
41
+ )
42
+ ] });
43
+ }
44
+
45
+ export { Checkbox as default };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ import { css } from '@emotion/react';
3
+ import { styled } from '@mui/material/styles';
4
+ import Checkbox from '@mui/material/Checkbox';
5
+ import { getObjectProp } from '../utils/helpers/object.js';
6
+
7
+ const StyledCheckbox = styled(Checkbox)`
8
+ ${({ checked, disabled, theme }) => css`
9
+ padding: 0;
10
+ border-radius: 0;
11
+
12
+ ${!checked && css`
13
+ color: ${getObjectProp(theme, "vars.palette.grey.600")};
14
+ `}
15
+ ${disabled && css`
16
+ && {
17
+ color: ${getObjectProp(theme, "vars.palette.grey.400")};
18
+ }
19
+ `}
20
+ `}
21
+ `;
22
+
23
+ export { StyledCheckbox };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import CircularProgress$1 from '@mui/material/CircularProgress';
5
+
6
+ function CircularProgress({ ...rest }) {
7
+ return /* @__PURE__ */ jsx(CircularProgress$1, { ...rest });
8
+ }
9
+
10
+ export { CircularProgress as default };