@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,292 @@
1
+ "use strict";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useRef, useState } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import CancelIcon from '@mui/icons-material/Cancel';
6
+ import FormControl from './FormControl.js';
7
+ import IconButton from './IconButton.js';
8
+ import { StyledWrapper, StyledInputWrapper, StyledInput, StyledIcon } from './BankAccountInput.styled.js';
9
+ import { isFunction, isNumber } from '../utils/helpers/boolean.js';
10
+ import 'mime/lite';
11
+ import { stripNonNumeric } from '../utils/helpers/string.js';
12
+ import '../utils/helpers/time.js';
13
+
14
+ function BankAccountInput({
15
+ disabled = false,
16
+ edges = "normal",
17
+ errorMessage = "",
18
+ fullWidth = false,
19
+ helperText = "",
20
+ helperTextPlacement = "below",
21
+ hideLabel = false,
22
+ label = "",
23
+ name,
24
+ onChange,
25
+ onClear = void 0,
26
+ required = false,
27
+ showError = false,
28
+ value = void 0,
29
+ variant = "outlined"
30
+ }) {
31
+ const bankRef = useRef(null);
32
+ const branchRef = useRef(null);
33
+ const accountRef = useRef(null);
34
+ const suffixRef = useRef(null);
35
+ const [bank, setBank] = useState(value && value.bank || "");
36
+ const [branch, setBranch] = useState(value && value.branch || "");
37
+ const [account, setAccount] = useState(value && value.account || "");
38
+ const [suffix, setSuffix] = useState(value && value.suffix || "");
39
+ const [focused, setFocused] = useState(false);
40
+ const valueStr = `${bank}${branch}${account}${suffix}`;
41
+ const handleFocus = () => {
42
+ setFocused(true);
43
+ };
44
+ const handleBlur = () => {
45
+ setFocused(false);
46
+ };
47
+ const handleNextFieldFocus = (e) => {
48
+ const { target } = e;
49
+ if (target.id === `${name}_bank` && branch.length === 0) {
50
+ branchRef.current.focus();
51
+ } else if (target.id === `${name}_branch` && account.length === 0) {
52
+ accountRef.current.focus();
53
+ } else if (target.id === `${name}_account` && suffix.length === 0) {
54
+ suffixRef.current.focus();
55
+ } else if (target.id === `${name}_suffix` && bank.length === 0) {
56
+ bankRef.current.focus();
57
+ }
58
+ };
59
+ const handleClear = () => {
60
+ setAccount("");
61
+ setBank("");
62
+ setBranch("");
63
+ setSuffix("");
64
+ onClear({ account, bank, branch, suffix });
65
+ };
66
+ const handleBankChange = (e) => {
67
+ const thisValue = stripNonNumeric(e.target.value);
68
+ if (thisValue !== bank) {
69
+ onChange({ account, bank: thisValue, branch, suffix });
70
+ setBank(thisValue);
71
+ if (thisValue && isNumber(thisValue) && thisValue.length === 2) {
72
+ handleNextFieldFocus(e);
73
+ }
74
+ }
75
+ };
76
+ const handleBranchChange = (e) => {
77
+ const thisValue = stripNonNumeric(e.target.value);
78
+ if (thisValue !== branch) {
79
+ onChange({ account, bank, branch: thisValue, suffix });
80
+ setBranch(thisValue);
81
+ if (thisValue && isNumber(thisValue) && thisValue.length === 4) {
82
+ handleNextFieldFocus(e);
83
+ }
84
+ }
85
+ };
86
+ const handleAccountChange = (e) => {
87
+ const thisValue = stripNonNumeric(e.target.value);
88
+ if (thisValue !== account) {
89
+ onChange({ account: thisValue, bank, branch, suffix });
90
+ setAccount(thisValue);
91
+ if (thisValue && isNumber(thisValue) && thisValue.length === 7) {
92
+ handleNextFieldFocus(e);
93
+ }
94
+ }
95
+ };
96
+ const handleSuffixChange = (e) => {
97
+ const thisValue = stripNonNumeric(e.target.value);
98
+ if (thisValue !== suffix) {
99
+ onChange({ account, bank, branch, suffix: thisValue });
100
+ setSuffix(thisValue);
101
+ if (thisValue && isNumber(thisValue) && thisValue.length === 3) {
102
+ handleNextFieldFocus(e);
103
+ }
104
+ }
105
+ };
106
+ const handlePaste = (e) => {
107
+ const text = (e.clipboardData || window.clipboardData).getData("text");
108
+ const sanitizedText = stripNonNumeric(text);
109
+ if (bankRef.current.id === e.target.id && !bankRef.current.value) {
110
+ const values = {
111
+ bank: sanitizedText.slice(0, bankRef.current.maxLength),
112
+ branch: sanitizedText.slice(2, 2 + branchRef.current.maxLength),
113
+ account: sanitizedText.slice(6, 6 + accountRef.current.maxLength),
114
+ suffix: sanitizedText.slice(13, 13 + suffixRef.current.maxLength)
115
+ };
116
+ onChange(values);
117
+ setBank(values.bank);
118
+ setBranch(values.branch);
119
+ setAccount(values.account);
120
+ setSuffix(values.suffix);
121
+ }
122
+ };
123
+ return /* @__PURE__ */ jsxs(StyledWrapper, { fullWidth, children: [
124
+ /* @__PURE__ */ jsxs(
125
+ FormControl,
126
+ {
127
+ fullWidth,
128
+ disabled,
129
+ name,
130
+ required,
131
+ label,
132
+ hideLabel,
133
+ helperText,
134
+ helperTextPlacement,
135
+ showError,
136
+ errorMessage,
137
+ edges,
138
+ children: [
139
+ /* @__PURE__ */ jsx(
140
+ "input",
141
+ {
142
+ type: "hidden",
143
+ name,
144
+ value: `${bank} ${branch} ${account} ${suffix}`
145
+ }
146
+ ),
147
+ /* @__PURE__ */ jsxs(
148
+ StyledInputWrapper,
149
+ {
150
+ disabled,
151
+ edges,
152
+ focused,
153
+ fullWidth,
154
+ required: required && valueStr.length < 15,
155
+ variant,
156
+ children: [
157
+ /* @__PURE__ */ jsx(
158
+ StyledInput,
159
+ {
160
+ disabled,
161
+ id: `${name}_bank`,
162
+ fieldType: "bank",
163
+ placeholder: "Bank",
164
+ maxLength: "2",
165
+ ref: bankRef,
166
+ value: bank,
167
+ onChange: handleBankChange,
168
+ onFocus: handleFocus,
169
+ onBlur: handleBlur,
170
+ onPaste: handlePaste
171
+ }
172
+ ),
173
+ /* @__PURE__ */ jsx(
174
+ StyledInput,
175
+ {
176
+ disabled,
177
+ id: `${name}_branch`,
178
+ fieldType: "branch",
179
+ placeholder: "Branch",
180
+ maxLength: "4",
181
+ ref: branchRef,
182
+ value: branch,
183
+ onChange: handleBranchChange,
184
+ onFocus: handleFocus,
185
+ onBlur: handleBlur
186
+ }
187
+ ),
188
+ /* @__PURE__ */ jsx(
189
+ StyledInput,
190
+ {
191
+ disabled,
192
+ id: `${name}_account`,
193
+ fieldType: "account",
194
+ placeholder: "Account",
195
+ maxLength: "7",
196
+ ref: accountRef,
197
+ value: account,
198
+ onChange: handleAccountChange,
199
+ onFocus: handleFocus,
200
+ onBlur: handleBlur
201
+ }
202
+ ),
203
+ /* @__PURE__ */ jsx(
204
+ StyledInput,
205
+ {
206
+ disabled,
207
+ id: `${name}_suffix`,
208
+ fieldType: "suffix",
209
+ placeholder: "Suffix",
210
+ maxLength: "3",
211
+ ref: suffixRef,
212
+ value: suffix,
213
+ onChange: handleSuffixChange,
214
+ onFocus: handleFocus,
215
+ onBlur: handleBlur
216
+ }
217
+ )
218
+ ]
219
+ }
220
+ )
221
+ ]
222
+ }
223
+ ),
224
+ isFunction(onClear) && valueStr && /* @__PURE__ */ jsx(StyledIcon, { children: /* @__PURE__ */ jsx(IconButton, { onClick: handleClear, size: "small", color: "inherit", children: /* @__PURE__ */ jsx(CancelIcon, {}) }) })
225
+ ] });
226
+ }
227
+ BankAccountInput.propTypes = {
228
+ /**
229
+ * If `true`, the label, input and helper text should be displayed in a disabled state.
230
+ */
231
+ disabled: PropTypes.bool,
232
+ /**
233
+ * Make button edges rounded or square
234
+ */
235
+ edges: PropTypes.oneOf(["normal", "rounded", "sharp"]),
236
+ /**
237
+ * The error message to display if showError === true
238
+ */
239
+ errorMessage: PropTypes.string,
240
+ /**
241
+ * If `true`, the component will take up the full width of its container.
242
+ */
243
+ fullWidth: PropTypes.bool,
244
+ /**
245
+ * The helper text content.
246
+ */
247
+ helperText: PropTypes.node,
248
+ /**
249
+ * Make label visible only to screen readers
250
+ */
251
+ hideLabel: PropTypes.bool,
252
+ /**
253
+ * Placed the helper text above or below the input.
254
+ */
255
+ helperTextPlacement: PropTypes.oneOf(["above", "below"]),
256
+ /**
257
+ * The label content.
258
+ */
259
+ label: PropTypes.node,
260
+ /**
261
+ * The input name.
262
+ */
263
+ name: PropTypes.string.isRequired,
264
+ /**
265
+ * Function to handle change event
266
+ */
267
+ onChange: PropTypes.func.isRequired,
268
+ /**
269
+ * Function to handle clear event
270
+ */
271
+ onClear: PropTypes.func,
272
+ /**
273
+ * If `true`, the label will indicate that the input is required.
274
+ */
275
+ required: PropTypes.bool,
276
+ /**
277
+ * Whether or not to display an error message (if there is a message to display).
278
+ */
279
+ showError: PropTypes.bool,
280
+ value: PropTypes.exact({
281
+ bank: PropTypes.string,
282
+ branch: PropTypes.string,
283
+ account: PropTypes.string,
284
+ suffix: PropTypes.string
285
+ }),
286
+ /**
287
+ * How input should look visually
288
+ */
289
+ variant: PropTypes.oneOf(["filled", "outlined"])
290
+ };
291
+
292
+ export { BankAccountInput as default };
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ import styled, { css } from 'styled-components';
3
+
4
+ const StyledWrapper = styled.div`
5
+ ${({ fullWidth }) => css`
6
+ display: inline-flex;
7
+ align-items: center;
8
+ ${fullWidth && css`
9
+ width: 100%;
10
+ `}
11
+ `}
12
+ `;
13
+ const StyledInputWrapper = styled.div`
14
+ ${({ disabled, edges, focused, fullWidth, required, theme, variant }) => css`
15
+ font-family: 'Montserrat', sans-serif;
16
+ font-weight: 500;
17
+ font-size: 15px;
18
+ line-height: 1.4375em;
19
+ color: #394869;
20
+ position: relative;
21
+ cursor: text;
22
+ display: flex;
23
+ align-items: center;
24
+ box-sizing: border-box;
25
+ padding: 0.75rem 0;
26
+ width: ${fullWidth ? "100%" : "400px"};
27
+
28
+ ${!required && !focused && css`
29
+ border: 1px solid rgba(0, 0, 0, 0.23);
30
+ `}
31
+
32
+ ${required && !focused && css`
33
+ border: 1px solid ${theme.palette.secondary.main};
34
+ `}
35
+
36
+ ${!required && focused && css`
37
+ border: 1px solid ${theme.palette.primary.main};
38
+ `}
39
+
40
+ ${required && focused && css`
41
+ border: 1px solid ${theme.palette.secondary.main};
42
+ `}
43
+
44
+ ${edges === "sharp" && css`
45
+ border-radius: 0px;
46
+ `}
47
+
48
+ ${edges === "normal" && css`
49
+ border-radius: 5px;
50
+ `}
51
+
52
+ ${edges === "rounded" && css`
53
+ border-radius: 9999px;
54
+ `}
55
+
56
+ ${variant === "filled" && css`
57
+ background: rgba(140, 152, 178, 0.1);
58
+ border-color: rgba(140, 152, 178, 0.1);
59
+ `}
60
+
61
+ ${disabled && css`
62
+ background: rgba(140, 152, 178, 0.1);
63
+ `}
64
+ `}
65
+ `;
66
+ const StyledInput = styled.input.attrs({
67
+ type: "text",
68
+ autoComplete: "off",
69
+ inputMode: "numeric"
70
+ })`
71
+ ${({ fieldType }) => css`
72
+ height: 1.4375em;
73
+ -webkit-tap-highlight-color: transparent;
74
+ background: transparent;
75
+ letter-spacing: inherit;
76
+ color: currentColor;
77
+ box-sizing: content-box;
78
+ font: inherit;
79
+ border: none;
80
+ border-left: 1px solid rgba(0, 0, 0, 0.23);
81
+ padding: 0 1rem;
82
+ text-align: center;
83
+
84
+ ${fieldType === "bank" && css`
85
+ width: 15%;
86
+ `}
87
+
88
+ ${fieldType === "branch" && css`
89
+ width: 22%;
90
+ `}
91
+
92
+ ${fieldType === "account" && css`
93
+ width: 43%;
94
+ `}
95
+
96
+ ${fieldType === "suffix" && css`
97
+ width: 20%;
98
+ `}
99
+
100
+ &:focus,
101
+ &:active {
102
+ box-shadow: none;
103
+ outline: none;
104
+ }
105
+
106
+ &:first-child {
107
+ border: none;
108
+ }
109
+
110
+ &::-webkit-input-placeholder {
111
+ transition: opacity 200ms ease;
112
+ }
113
+
114
+ &::-moz-placeholder {
115
+ transition: opacity 200ms ease;
116
+ }
117
+
118
+ &:-ms-input-placeholder {
119
+ transition: opacity 200ms ease;
120
+ }
121
+
122
+ &:-moz-placeholder {
123
+ transition: opacity 200ms ease;
124
+ }
125
+
126
+ &:focus::-webkit-input-placeholder {
127
+ opacity: 0.4;
128
+ }
129
+
130
+ &:focus::-moz-placeholder {
131
+ opacity: 0.4;
132
+ }
133
+
134
+ &:focus:-ms-input-placeholder {
135
+ opacity: 0.4;
136
+ }
137
+
138
+ &:focus:-moz-placeholder {
139
+ opacity: 0.4;
140
+ }
141
+ `}
142
+ `;
143
+ const StyledIcon = styled.div`
144
+ ${({ theme }) => css`
145
+ color: ${theme.palette.grey[300]};
146
+ margin-left: 5px;
147
+ transition: color 200ms ease;
148
+ svg {
149
+ font-size: 1.15rem;
150
+ }
151
+
152
+ &:hover {
153
+ color: ${theme.palette.grey[400]};
154
+ }
155
+ `}
156
+ `;
157
+
158
+ export { StyledIcon, StyledInput, StyledInputWrapper, StyledWrapper };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { StyledBar } from './Bar.styled.js';
6
+
7
+ function Bar({ children, color = "transparent", position = "relative" }) {
8
+ return /* @__PURE__ */ jsx(StyledBar, { color, position, children });
9
+ }
10
+ Bar.propTypes = {
11
+ /**
12
+ * The content of the component.
13
+ */
14
+ children: PropTypes.node.isRequired,
15
+ /**
16
+ * The color of the component. It supports those theme colors that make sense for this component.
17
+ */
18
+ color: PropTypes.oneOf([
19
+ "default",
20
+ "inherit",
21
+ "primary",
22
+ "primaryAlt",
23
+ "secondary",
24
+ "secondaryAlt",
25
+ "tertiary",
26
+ "transparent"
27
+ ]),
28
+ /**
29
+ * The positioning type.
30
+ */
31
+ position: PropTypes.oneOf([
32
+ "absolute",
33
+ "fixed",
34
+ "relative",
35
+ "static",
36
+ "sticky"
37
+ ])
38
+ };
39
+
40
+ export { Bar as default };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ import styled, { css } from 'styled-components';
3
+
4
+ const defaultColors = ["inherit", "transparent"];
5
+ const StyledBar = styled.div`
6
+ ${({ color, position, theme }) => css`
7
+ position: ${position};
8
+ ${defaultColors.includes(color) && css`
9
+ background: ${color};
10
+ color: inherit;
11
+ `}
12
+
13
+ ${!defaultColors.includes(color) && css`
14
+ background: ${theme.palette[color].main};
15
+ color: ${theme.palette[color].contrastText};
16
+ `}
17
+ `}
18
+ `;
19
+
20
+ export { StyledBar };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import StyledBaseModal from './BaseModal.styled.js';
4
+ import { objectDeepMerge } from '../utils/helpers/object.js';
5
+
6
+ function BaseModal({
7
+ children,
8
+ fullScreen = false,
9
+ fullWidth = false,
10
+ escapePress = false,
11
+ hideBackdrop = false,
12
+ maxWidth = "sm",
13
+ onClose = () => {
14
+ },
15
+ open = false,
16
+ slotProps = {},
17
+ ...rest
18
+ }) {
19
+ const defaultSlotProps = {
20
+ paper: {
21
+ elevation: "none"
22
+ }
23
+ };
24
+ const props = {
25
+ fullScreen,
26
+ fullWidth,
27
+ hideBackdrop,
28
+ maxWidth,
29
+ onClose,
30
+ open,
31
+ ...rest,
32
+ slotProps: objectDeepMerge(defaultSlotProps, slotProps)
33
+ };
34
+ return /* @__PURE__ */ jsx(StyledBaseModal, { ...props, disableEscapeKeyDown: !escapePress, children });
35
+ }
36
+
37
+ export { BaseModal as default };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ import { css } from '@emotion/react';
3
+ import Dialog from '@mui/material/Dialog';
4
+ import { styled } from '@mui/material/styles';
5
+ import { getObjectProp } from '../utils/helpers/object.js';
6
+
7
+ const StyledBaseModal = styled(Dialog)`
8
+ ${({ theme }) => css`
9
+ .MuiPaper-root {
10
+ color: ${getObjectProp(theme, "vars.palette.text.body")};
11
+ box-shadow: 0px 5px 5px 0px rgba(0, 0, 0, 0.25);
12
+ }
13
+ `};
14
+ `;
15
+
16
+ export { StyledBaseModal as default };