@sikka/hawa 0.0.2 → 0.0.5

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 (192) hide show
  1. package/.github/workflows/hawa-publish-push.yml +45 -0
  2. package/.github/workflows/hawa-publish.yml +45 -0
  3. package/.prettierrc +28 -28
  4. package/README.md +149 -148
  5. package/es/index.es.js +1 -0
  6. package/lib/index.js +1 -0
  7. package/package.json +62 -47
  8. package/rollup.config.js +30 -30
  9. package/src/Assets/images/card-background/1.jpeg +0 -0
  10. package/src/Assets/images/card-background/10.jpeg +0 -0
  11. package/src/Assets/images/card-background/11.jpeg +0 -0
  12. package/src/Assets/images/card-background/12.jpeg +0 -0
  13. package/src/Assets/images/card-background/13.jpeg +0 -0
  14. package/src/Assets/images/card-background/14.jpeg +0 -0
  15. package/src/Assets/images/card-background/15.jpeg +0 -0
  16. package/src/Assets/images/card-background/16.jpeg +0 -0
  17. package/src/Assets/images/card-background/17.jpeg +0 -0
  18. package/src/Assets/images/card-background/18.jpeg +0 -0
  19. package/src/Assets/images/card-background/19.jpeg +0 -0
  20. package/src/Assets/images/card-background/2.jpeg +0 -0
  21. package/src/Assets/images/card-background/20.jpeg +0 -0
  22. package/src/Assets/images/card-background/21.jpeg +0 -0
  23. package/src/Assets/images/card-background/22.jpeg +0 -0
  24. package/src/Assets/images/card-background/23.jpeg +0 -0
  25. package/src/Assets/images/card-background/24.jpeg +0 -0
  26. package/src/Assets/images/card-background/25.jpeg +0 -0
  27. package/src/Assets/images/card-background/3.jpeg +0 -0
  28. package/src/Assets/images/card-background/4.jpeg +0 -0
  29. package/src/Assets/images/card-background/5.jpeg +0 -0
  30. package/src/Assets/images/card-background/6.jpeg +0 -0
  31. package/src/Assets/images/card-background/7.jpeg +0 -0
  32. package/src/Assets/images/card-background/8.jpeg +0 -0
  33. package/src/Assets/images/card-background/9.jpeg +0 -0
  34. package/src/Assets/images/card-type/amex.png +0 -0
  35. package/src/Assets/images/card-type/diners.png +0 -0
  36. package/src/Assets/images/card-type/discover.png +0 -0
  37. package/src/Assets/images/card-type/mastercard.png +0 -0
  38. package/src/Assets/images/card-type/troy.png +0 -0
  39. package/src/Assets/images/card-type/unionpay.png +0 -0
  40. package/src/Assets/images/card-type/visa.png +0 -0
  41. package/src/blocks/Account/UserProfile.js +15 -0
  42. package/src/blocks/Account/UserSettings.js +15 -0
  43. package/src/blocks/Account/index.js +2 -0
  44. package/src/blocks/AuthForms/NewPasswordForm.js +24 -0
  45. package/src/blocks/AuthForms/ResetPasswordForm.js +13 -0
  46. package/src/blocks/AuthForms/SignInForm.js +55 -0
  47. package/src/blocks/AuthForms/SignUpForm.js +68 -0
  48. package/src/{components/Hawa → blocks}/AuthForms/index.js +4 -4
  49. package/src/blocks/Payment/CreditCardForm.js +31 -0
  50. package/src/blocks/Payment/Form/CForm.js +328 -0
  51. package/src/blocks/Payment/Form/Card.js +242 -0
  52. package/src/blocks/Payment/Gateway/GooglePay.js +251 -0
  53. package/src/blocks/Payment/Gateway/Payfort.js +90 -0
  54. package/src/blocks/Payment/Gateway/Paypal.js +138 -0
  55. package/src/blocks/Payment/Gateway/Wallet.js +149 -0
  56. package/src/blocks/Payment/PaymentMethod.js +132 -0
  57. package/src/blocks/Payment/SelectPayment.js +95 -0
  58. package/src/blocks/Payment/index.js +16 -0
  59. package/src/index.js +4 -1
  60. package/src/layout/Box.js +39 -0
  61. package/src/layout/index.js +1 -0
  62. package/src/stories/ActionButton.stories.js +53 -0
  63. package/src/stories/AdaptiveButton.stories.js +80 -80
  64. package/src/stories/Alert.stories.js +41 -48
  65. package/src/stories/BlocksStories/AuthForm.stories.js +99 -0
  66. package/src/stories/BlocksStories/PaymentForm.stories.js +111 -0
  67. package/src/stories/BlocksStories/UserAccount.stories.js +46 -0
  68. package/src/stories/CheckBox.stories.js +35 -34
  69. package/src/stories/GlobalVariables.stories.js +44 -108
  70. package/src/stories/HawaProvider.stories.js +22 -23
  71. package/src/stories/InputLabel.stories.js +92 -100
  72. package/src/stories/Introduction.stories.js +211 -0
  73. package/src/stories/LayoutStories/Box.stories.js +56 -0
  74. package/src/stories/RadioSelector.stories.js +69 -69
  75. package/src/stories/TextField.stories.js +50 -50
  76. package/src/styles.css +400 -400
  77. package/src/styles.scss +679 -0
  78. package/src/themes/HawaProvider.js +87 -0
  79. package/src/ui/ActionButton.js +40 -0
  80. package/src/{components/Hawa/AdaptiveButton → ui}/AdaptiveButton.js +252 -254
  81. package/src/ui/ApplePayButton.js +94 -0
  82. package/src/{components/Hawa/AutoCompleteField/AutoCompleteField.jsx → ui/AutoCompleteField.js} +32 -33
  83. package/src/{components/Hawa/Checkbox/Checkbox.jsx → ui/Checkbox.js} +21 -20
  84. package/src/{components/Hawa/DragDropImages/DragDropImages.jsx → ui/DragDropImages.js} +180 -180
  85. package/src/ui/GithubButton.js +91 -0
  86. package/src/ui/GoogleButton.js +83 -0
  87. package/src/ui/GooglePayButton.js +94 -0
  88. package/src/{components/Hawa/Hawa.jsx → ui/Hawa.js} +3 -3
  89. package/src/ui/HawaInputLabel.js +33 -0
  90. package/src/{components/Hawa/TextArea/TextArea.jsx → ui/HawaTextArea.js} +38 -38
  91. package/src/ui/HawaTextField.js +118 -0
  92. package/src/ui/MadaButton.js +94 -0
  93. package/src/ui/PayPalButton.js +94 -0
  94. package/src/{components/Hawa/RadioBox/RadioBox.jsx → ui/RadioBox.js} +29 -29
  95. package/src/{components/Hawa/RadioSelector/RadioSelector.jsx → ui/RadioSelector.js} +51 -51
  96. package/src/{components/Hawa/Row/Row.jsx → ui/Row.js} +21 -21
  97. package/src/ui/STCPayButton.js +94 -0
  98. package/src/{components/Hawa/SelectedField/SelectedField.jsx → ui/SelectedField.js} +46 -46
  99. package/src/ui/StyledAlert.js +30 -0
  100. package/src/{components/Hawa/StyledTooltip → ui}/StyledTooltip.js +46 -46
  101. package/src/{components/Hawa/TabPanel/TabPanel.jsx → ui/TabPanel.js} +37 -37
  102. package/src/ui/TwitterButton.js +84 -0
  103. package/src/ui/VisaMasterButton.js +94 -0
  104. package/src/ui/WalletButton.js +91 -0
  105. package/src/ui/index.js +22 -0
  106. package/src/util.js +20 -20
  107. package/storybook-static/0.54f7e52e.iframe.bundle.js +1 -0
  108. package/storybook-static/0.f47eb24a4893a96ec307.manager.bundle.js +1 -0
  109. package/storybook-static/1.95be85dd.iframe.bundle.js +3 -0
  110. package/storybook-static/{1.7c0dc86d.iframe.bundle.js.LICENSE.txt → 1.95be85dd.iframe.bundle.js.LICENSE.txt} +0 -0
  111. package/storybook-static/1.95be85dd.iframe.bundle.js.map +1 -0
  112. package/storybook-static/2.eb601582.iframe.bundle.js +1 -0
  113. package/storybook-static/{3.592ce28f.iframe.bundle.js → 3.d72f7fac.iframe.bundle.js} +0 -0
  114. package/storybook-static/4.0fcda1281dc1961dbe94.manager.bundle.js +2 -0
  115. package/storybook-static/{5.f459d151315e6780c20f.manager.bundle.js.LICENSE.txt → 4.0fcda1281dc1961dbe94.manager.bundle.js.LICENSE.txt} +0 -0
  116. package/storybook-static/5.63ab4f94d50a3acf080d.manager.bundle.js +1 -0
  117. package/storybook-static/6.a6d45262f7e98f3f18d3.manager.bundle.js +2 -0
  118. package/storybook-static/{11.f4e922583ae35da460f3.manager.bundle.js.LICENSE.txt → 6.a6d45262f7e98f3f18d3.manager.bundle.js.LICENSE.txt} +0 -0
  119. package/storybook-static/{7.3d04765dbf3f1dcd706c.manager.bundle.js → 7.097710753af9a1c41b80.manager.bundle.js} +1 -1
  120. package/storybook-static/7.ffb0d84b.iframe.bundle.js +1 -0
  121. package/storybook-static/{8.8e2132ec.iframe.bundle.js → 8.68cd1217.iframe.bundle.js} +2 -2
  122. package/storybook-static/{8.8e2132ec.iframe.bundle.js.LICENSE.txt → 8.68cd1217.iframe.bundle.js.LICENSE.txt} +0 -0
  123. package/storybook-static/8.68cd1217.iframe.bundle.js.map +1 -0
  124. package/storybook-static/8.76c3cbf398692028e834.manager.bundle.js +1 -0
  125. package/storybook-static/{9.109ea555.iframe.bundle.js → 9.488e3969.iframe.bundle.js} +0 -0
  126. package/storybook-static/iframe.html +2 -2
  127. package/storybook-static/index.html +9 -1
  128. package/storybook-static/main.044648aa.iframe.bundle.js +1 -0
  129. package/storybook-static/main.ac6e4b72b033097dad76.manager.bundle.js +1 -0
  130. package/storybook-static/{runtime~main.ffc8677e.iframe.bundle.js → runtime~main.3e280e98.iframe.bundle.js} +1 -1
  131. package/storybook-static/runtime~main.c8dac23bc753439736f0.manager.bundle.js +1 -0
  132. package/storybook-static/vendors~main.a697e07137d366f95f76.manager.bundle.js +2 -0
  133. package/storybook-static/{vendors~main.a935f15a2179a6eff5fd.manager.bundle.js.LICENSE.txt → vendors~main.a697e07137d366f95f76.manager.bundle.js.LICENSE.txt} +6 -12
  134. package/storybook-static/vendors~main.d75dc38b.iframe.bundle.js +76 -0
  135. package/storybook-static/{vendors~main.4aa936b1.iframe.bundle.js.LICENSE.txt → vendors~main.d75dc38b.iframe.bundle.js.LICENSE.txt} +3 -45
  136. package/storybook-static/vendors~main.d75dc38b.iframe.bundle.js.map +1 -0
  137. package/tools/build-styles.js +17 -0
  138. package/dist/index.es.js +0 -37
  139. package/dist/index.js +0 -37
  140. package/src/components/Hawa/AdaptiveButton/index.js +0 -1
  141. package/src/components/Hawa/AuthForms/NewPasswordForm.js +0 -23
  142. package/src/components/Hawa/AuthForms/ResetPasswordForm.js +0 -21
  143. package/src/components/Hawa/AuthForms/SignInForm.js +0 -25
  144. package/src/components/Hawa/AuthForms/SignUpForm.js +0 -26
  145. package/src/components/Hawa/AuthForms/viaFacebook.js +0 -0
  146. package/src/components/Hawa/AuthForms/viaGithub.js +0 -0
  147. package/src/components/Hawa/AuthForms/viaGoogle.js +0 -0
  148. package/src/components/Hawa/AuthForms/viaTwitter.js +0 -0
  149. package/src/components/Hawa/AutoCompleteField/index.js +0 -1
  150. package/src/components/Hawa/Box/Box.js +0 -18
  151. package/src/components/Hawa/Box/index.js +0 -1
  152. package/src/components/Hawa/Checkbox/index.js +0 -1
  153. package/src/components/Hawa/DragDropImages/index.js +0 -1
  154. package/src/components/Hawa/HawaProvider/HawaProvider.js +0 -19
  155. package/src/components/Hawa/HawaProvider/index.js +0 -1
  156. package/src/components/Hawa/InputLabel/StyledInputLabel.js +0 -15
  157. package/src/components/Hawa/InputLabel/index.js +0 -1
  158. package/src/components/Hawa/RadioBox/index.js +0 -1
  159. package/src/components/Hawa/RadioSelector/index.js +0 -1
  160. package/src/components/Hawa/Row/index.js +0 -1
  161. package/src/components/Hawa/SelectedField/index.js +0 -1
  162. package/src/components/Hawa/StyledAlert/StyledAlert.js +0 -15
  163. package/src/components/Hawa/StyledAlert/index.js +0 -1
  164. package/src/components/Hawa/StyledTooltip/index.js +0 -1
  165. package/src/components/Hawa/TabPanel/index.js +0 -1
  166. package/src/components/Hawa/TextArea/index.js +0 -1
  167. package/src/components/Hawa/TextField/TextField.js +0 -54
  168. package/src/components/Hawa/TextField/index.js +0 -1
  169. package/src/components/Hawa/index.js +0 -10
  170. package/src/stories/AuthForm.stories.js +0 -76
  171. package/src/stories/Box.stories.js +0 -45
  172. package/storybook-static/0.12392f0b.iframe.bundle.js +0 -1
  173. package/storybook-static/0.55b012452099ace2dca6.manager.bundle.js +0 -1
  174. package/storybook-static/1.0f38715c61c7c3cd11db.manager.bundle.js +0 -1
  175. package/storybook-static/1.7c0dc86d.iframe.bundle.js +0 -3
  176. package/storybook-static/1.7c0dc86d.iframe.bundle.js.map +0 -1
  177. package/storybook-static/10.9f2923a7561bc20fffdb.manager.bundle.js +0 -1
  178. package/storybook-static/11.f4e922583ae35da460f3.manager.bundle.js +0 -2
  179. package/storybook-static/12.1415460941f0bdcb8fa8.manager.bundle.js +0 -1
  180. package/storybook-static/2.ee357266.iframe.bundle.js +0 -1
  181. package/storybook-static/5.f459d151315e6780c20f.manager.bundle.js +0 -2
  182. package/storybook-static/6.3bd64d820f3745f262ff.manager.bundle.js +0 -1
  183. package/storybook-static/7.af56919f.iframe.bundle.js +0 -1
  184. package/storybook-static/8.8e2132ec.iframe.bundle.js.map +0 -1
  185. package/storybook-static/8.b541eadfcb9164835dfc.manager.bundle.js +0 -1
  186. package/storybook-static/9.411ac8e451bbb10926c7.manager.bundle.js +0 -1
  187. package/storybook-static/main.78b7d418.iframe.bundle.js +0 -1
  188. package/storybook-static/main.9bb085ebb152f5b19a2a.manager.bundle.js +0 -1
  189. package/storybook-static/runtime~main.9468098d21070636985f.manager.bundle.js +0 -1
  190. package/storybook-static/vendors~main.4aa936b1.iframe.bundle.js +0 -3
  191. package/storybook-static/vendors~main.4aa936b1.iframe.bundle.js.map +0 -1
  192. package/storybook-static/vendors~main.a935f15a2179a6eff5fd.manager.bundle.js +0 -2
@@ -1,51 +1,51 @@
1
- import React, { useState, useContext } from "react";
2
- import { ThemeProvider } from "../HawaProvider";
3
-
4
- export const StyledRadioSelector = (props) => {
5
- const [value, setValue] = useState(props.defaultValue);
6
- const theme = useContext(ThemeProvider);
7
-
8
- return (
9
- <div
10
- style={{
11
- backgroundColor: "white",
12
- display: "flex",
13
- flexDirection: "row",
14
- margin: theme.margins,
15
- padding: theme.paddings,
16
- marginBottom: 10
17
- }}
18
- >
19
- {props.options.map((singleOption) => {
20
- return (
21
- <div
22
- key={singleOption.label}
23
- className="radio_option"
24
- onClick={() => {
25
- setValue(singleOption.label);
26
- if (props.handleChange) {
27
- props.handleChange();
28
- }
29
- }}
30
- style={
31
- value.toLowerCase() === singleOption.label.toLowerCase()
32
- ? {
33
- borderRadius: theme.borderRadius,
34
- padding: theme.paddings,
35
- backgroundColor:
36
- theme.primaryColor || props.bgSelectedColor || "blue",
37
- color: props.textSelectedColor || "lightgray"
38
- }
39
- : {
40
- borderRadius: theme.borderRadius,
41
- padding: theme.paddings
42
- }
43
- }
44
- >
45
- {singleOption.text}
46
- </div>
47
- );
48
- })}
49
- </div>
50
- );
51
- };
1
+ import React, { useState, useContext } from "react";
2
+ import { ThemeProvider } from "../themes/HawaProvider";
3
+
4
+ export const StyledRadioSelector = (props) => {
5
+ const [value, setValue] = useState(props.defaultValue);
6
+ const theme = useContext(ThemeProvider);
7
+
8
+ return (
9
+ <div
10
+ style={{
11
+ backgroundColor: "white",
12
+ display: "flex",
13
+ flexDirection: "row",
14
+ margin: theme.margins,
15
+ padding: theme.paddings,
16
+ marginBottom: 10
17
+ }}
18
+ >
19
+ {props.options.map((singleOption) => {
20
+ return (
21
+ <div
22
+ key={singleOption.label}
23
+ className="radio_option"
24
+ onClick={() => {
25
+ setValue(singleOption.label);
26
+ if (props.handleChange) {
27
+ props.handleChange();
28
+ }
29
+ }}
30
+ style={
31
+ value.toLowerCase() === singleOption.label.toLowerCase()
32
+ ? {
33
+ borderRadius: theme.borderRadius,
34
+ padding: theme.paddings,
35
+ backgroundColor:
36
+ theme.primaryColor || props.bgSelectedColor || "blue",
37
+ color: props.textSelectedColor || "lightgray"
38
+ }
39
+ : {
40
+ borderRadius: theme.borderRadius,
41
+ padding: theme.paddings
42
+ }
43
+ }
44
+ >
45
+ {singleOption.text}
46
+ </div>
47
+ );
48
+ })}
49
+ </div>
50
+ );
51
+ };
@@ -1,21 +1,21 @@
1
- export const Row = (props) => {
2
- return (
3
- <div
4
- style={{
5
- backgroundColor: "var(--light)",
6
- borderRadius: "var(--borderR)",
7
- display: "flex",
8
- flexDirection: "row",
9
- justifyContent: "space-between",
10
- alignItems: "center",
11
- height: 50,
12
- padding: 10,
13
- marginBottom: 20,
14
- width: "100%"
15
- }}
16
- >
17
- <div style={{ fontWeight: 800 }}>{props.title}</div>
18
- {props.actionComponent}
19
- </div>
20
- );
21
- };
1
+ export const Row = (props) => {
2
+ return (
3
+ <div
4
+ style={{
5
+ backgroundColor: "var(--light)",
6
+ borderRadius: "var(--borderR)",
7
+ display: "flex",
8
+ flexDirection: "row",
9
+ justifyContent: "space-between",
10
+ alignItems: "center",
11
+ height: 50,
12
+ padding: 10,
13
+ marginBottom: 20,
14
+ width: "100%"
15
+ }}
16
+ >
17
+ <div style={{ fontWeight: 800 }}>{props.title}</div>
18
+ {props.actionComponent}
19
+ </div>
20
+ );
21
+ };
@@ -0,0 +1,94 @@
1
+ import React, { useContext } from "react";
2
+ import { ThemeProvider } from "../themes/HawaProvider";
3
+ import Button from "@mui/material/Button";
4
+ import { styled, darken } from "@mui/material/styles";
5
+
6
+ import GitHubIcon from "@mui/icons-material/GitHub";
7
+
8
+ export const STCPayButton = (props) => {
9
+ const theme = useContext(ThemeProvider);
10
+ let buttonStyle = {};
11
+
12
+ console.log(Object.keys(theme.actionButton));
13
+ let currentTheme = Object.keys(theme.actionButton).find(
14
+ (themeName) => themeName.toLowerCase() === props.themeType?.toLowerCase()
15
+ );
16
+ if (currentTheme) {
17
+ buttonStyle = {
18
+ cursor: "pointer",
19
+ display: "flex",
20
+ flexDirection: "row",
21
+ alignItems: "center",
22
+ justifyContent: "center",
23
+ padding: 0,
24
+ marginTop: theme.actionButton[currentTheme].margin,
25
+ border: props.outlined ? "2px solid black" : "none",
26
+ borderRadius: theme.actionButton[currentTheme].borderRadius,
27
+ backgroundColor: "white",
28
+ "&:hover": {
29
+ backgroundColor: darken("#ffffff", 0.1)
30
+ }
31
+ };
32
+ } else {
33
+ buttonStyle = {
34
+ cursor: "pointer",
35
+ display: "flex",
36
+ flexDirection: "row",
37
+ alignItems: "center",
38
+ justifyContent: "center",
39
+ marginTop: theme.margins,
40
+ border: props.outlined ? "2px solid black" : "none",
41
+ borderRadius: 0,
42
+ backgroundColor: "white",
43
+ "&:hover": {
44
+ backgroundColor: darken("#ffffff", 0.1)
45
+ }
46
+ };
47
+ }
48
+
49
+ const StyledButton = styled(Button)(({ theme }) => {
50
+ return {
51
+ // "label + &": {
52
+ // marginTop: theme.spacing(3)
53
+ // },
54
+
55
+ borderRadius: 4,
56
+ position: "relative",
57
+ border: "1px solid #ced4da",
58
+ fontSize: 16,
59
+ // width: "auto",
60
+ height: 50,
61
+ // padding: "10px 12px",
62
+ ...buttonStyle,
63
+ "&:focus": {
64
+ // boxShadow: `${alpha(theme.palette.primary.main, 0.25)} 0 0 0 0.2rem`,
65
+ borderColor: theme.palette.primary.main
66
+ }
67
+ };
68
+ });
69
+
70
+ return (
71
+ <StyledButton
72
+ // style={buttonStyle}
73
+ onClick={props.handleClick}
74
+ >
75
+ <img
76
+ src="https://sikka-images.s3.ap-southeast-1.amazonaws.com/payments/stc-pay.png"
77
+ height={30}
78
+ />{" "}
79
+ <div style={{ width: 10 }} />
80
+ <p
81
+ style={{
82
+ color: "black",
83
+ fontSize: 14,
84
+ textAlign: "center",
85
+ letterSpacing: 0.4,
86
+ fontFamily: "Roboto",
87
+ fontWeight: 500
88
+ }}
89
+ >
90
+ {props.buttonText}
91
+ </p>
92
+ </StyledButton>
93
+ );
94
+ };
@@ -1,46 +1,46 @@
1
- import React from "react";
2
- import { Controller, useFormContext } from "react-hook-form";
3
- import FormHelperText from "@material-ui/core/FormHelperText";
4
- import FormControl from "@material-ui/core/FormControl";
5
- import MenuItem from "@material-ui/core/MenuItem";
6
- import Select from "@material-ui/core/Select";
7
-
8
- const MuiSelect = (props) => {
9
- const { name, options, required, error } = props;
10
- let isError = false;
11
- let errorMessage = "";
12
- if (error && error.hasOwnProperty(name)) {
13
- isError = true;
14
- errorMessage = error[name].message;
15
- }
16
-
17
- return (
18
- <FormControl fullWidth={true} error={isError}>
19
- {label} {required ? <span className="req-label">*</span> : null}
20
- <Select id={name} {...props}>
21
- <MenuItem value="">
22
- <em>None</em>
23
- </MenuItem>
24
- {options.map((item) => (
25
- <MenuItem key={item.id} value={item.id}>
26
- {item.label}
27
- </MenuItem>
28
- ))}
29
- </Select>
30
- <FormHelperText>{errorMessage}</FormHelperText>
31
- </FormControl>
32
- );
33
- };
34
-
35
- export const SelectField = (props) => {
36
- const { control } = useFormContext();
37
- return (
38
- <React.Fragment>
39
- <Controller
40
- control={control}
41
- render={(field) => <MuiSelect {...props} {...field} />}
42
- {...props}
43
- />
44
- </React.Fragment>
45
- );
46
- };
1
+ import React from "react";
2
+ import { Controller, useFormContext } from "react-hook-form";
3
+ import FormHelperText from "@mui/material/FormHelperText";
4
+ import FormControl from "@mui/material/FormControl";
5
+ import MenuItem from "@mui/material/MenuItem";
6
+ import Select from "@mui/material/Select";
7
+
8
+ const MuiSelect = (props) => {
9
+ const { name, options, required, error } = props;
10
+ let isError = false;
11
+ let errorMessage = "";
12
+ if (error && error.hasOwnProperty(name)) {
13
+ isError = true;
14
+ errorMessage = error[name].message;
15
+ }
16
+
17
+ return (
18
+ <FormControl fullWidth={true} error={isError}>
19
+ {label} {required ? <span className="req-label">*</span> : null}
20
+ <Select id={name} {...props}>
21
+ <MenuItem value="">
22
+ <em>None</em>
23
+ </MenuItem>
24
+ {options.map((item) => (
25
+ <MenuItem key={item.id} value={item.id}>
26
+ {item.label}
27
+ </MenuItem>
28
+ ))}
29
+ </Select>
30
+ <FormHelperText>{errorMessage}</FormHelperText>
31
+ </FormControl>
32
+ );
33
+ };
34
+
35
+ export const SelectField = (props) => {
36
+ const { control } = useFormContext();
37
+ return (
38
+ <React.Fragment>
39
+ <Controller
40
+ control={control}
41
+ render={(field) => <MuiSelect {...props} {...field} />}
42
+ {...props}
43
+ />
44
+ </React.Fragment>
45
+ );
46
+ };
@@ -0,0 +1,30 @@
1
+ import React, { useContext } from "react";
2
+ import { ThemeProvider } from "../themes/HawaProvider";
3
+
4
+ export const StyledAlert = (props) => {
5
+ const theme = useContext(ThemeProvider);
6
+
7
+ let alertStyle = {
8
+ backgroundColor: "green",
9
+ padding: 10,
10
+ marginTop: 10,
11
+ marginBottom: 10,
12
+ borderRadius: theme.borderRadius
13
+ };
14
+ switch (props.type) {
15
+ case "warning":
16
+ alertStyle.backgroundColor = "yellow";
17
+ return <div style={alertStyle}>{props.text}</div>;
18
+ break;
19
+ case "danger":
20
+ alertStyle.backgroundColor = "red";
21
+ return <div style={alertStyle}>{props.text}</div>;
22
+ break;
23
+ case "notification":
24
+ alertStyle.backgroundColor = "blue";
25
+ return <div style={alertStyle}>{props.text}</div>;
26
+ break;
27
+ default:
28
+ return <div style={alertStyle}>{props.text}</div>;
29
+ }
30
+ };
@@ -1,46 +1,46 @@
1
- import React, { useState, useContext } from "react";
2
- import Tooltip from "@material-ui/core/Tooltip";
3
-
4
- export const StyledTooltip = (props) => {
5
- const screenSize = {
6
- width: 1500,
7
- height: 200
8
- };
9
- return (
10
- <Tooltip
11
- placement={screenSize.width > 400 ? "bottom-center" : "top-center"}
12
- enterTouchDelay={100}
13
- title={
14
- props.hint ? (
15
- props.hint
16
- ) : (
17
- <div>
18
- <div
19
- style={{
20
- fontSize: 20,
21
- fontWeight: 800,
22
- padding: 10,
23
- paddingBottom: 5,
24
- textAlign: "center"
25
- }}
26
- >
27
- {props.hintTitle}
28
- </div>
29
- <div
30
- style={{
31
- fontSize: 13,
32
- fontWeight: 100,
33
- padding: 10,
34
- textAlign: "center"
35
- }}
36
- >
37
- {props.hintContent}
38
- </div>
39
- </div>
40
- )
41
- }
42
- >
43
- {props.children}
44
- </Tooltip>
45
- );
46
- };
1
+ import React, { useState, useContext } from "react";
2
+ import Tooltip from "@mui/material/Tooltip";
3
+
4
+ export const StyledTooltip = (props) => {
5
+ const screenSize = {
6
+ width: 1500,
7
+ height: 200
8
+ };
9
+ return (
10
+ <Tooltip
11
+ placement={screenSize.width > 400 ? "bottom-center" : "top-center"}
12
+ enterTouchDelay={100}
13
+ title={
14
+ props.hint ? (
15
+ props.hint
16
+ ) : (
17
+ <div>
18
+ <div
19
+ style={{
20
+ fontSize: 20,
21
+ fontWeight: 800,
22
+ padding: 10,
23
+ paddingBottom: 5,
24
+ textAlign: "center"
25
+ }}
26
+ >
27
+ {props.hintTitle}
28
+ </div>
29
+ <div
30
+ style={{
31
+ fontSize: 13,
32
+ fontWeight: 100,
33
+ padding: 10,
34
+ textAlign: "center"
35
+ }}
36
+ >
37
+ {props.hintContent}
38
+ </div>
39
+ </div>
40
+ )
41
+ }
42
+ >
43
+ {props.children}
44
+ </Tooltip>
45
+ );
46
+ };
@@ -1,37 +1,37 @@
1
- import React from "react";
2
- import { makeStyles } from "@material-ui/core";
3
-
4
- const useStyles = makeStyles((theme) => ({
5
- panelsContainer: {
6
- height: "100%",
7
- width: "100%"
8
- },
9
- panel: {
10
- backgroundColor: "var(--lightGrey)",
11
- borderRadius: "var(--borderR)",
12
- height: "100%",
13
- width: "100%",
14
- padding: 10
15
- }
16
- }));
17
-
18
- export const TabPanel = (props) => {
19
- const classes = useStyles();
20
- const { children, value, index, ...other } = props;
21
- return (
22
- <div
23
- role="tabpanel"
24
- className={classes.panelsContainer}
25
- hidden={value !== index}
26
- id={`vertical-tabpanel-${index}`}
27
- aria-labelledby={`vertical-tab-${index}`}
28
- {...other}
29
- >
30
- {value === index && (
31
- <div className={classes.panel}>
32
- <span>{children}</span>
33
- </div>
34
- )}
35
- </div>
36
- );
37
- };
1
+ import React from "react";
2
+ import { makeStyles } from "@mui/material/styles";
3
+
4
+ const useStyles = makeStyles((theme) => ({
5
+ panelsContainer: {
6
+ height: "100%",
7
+ width: "100%"
8
+ },
9
+ panel: {
10
+ backgroundColor: "var(--lightGrey)",
11
+ borderRadius: "var(--borderR)",
12
+ height: "100%",
13
+ width: "100%",
14
+ padding: 10
15
+ }
16
+ }));
17
+
18
+ export const TabPanel = (props) => {
19
+ const classes = useStyles();
20
+ const { children, value, index, ...other } = props;
21
+ return (
22
+ <div
23
+ role="tabpanel"
24
+ className={classes.panelsContainer}
25
+ hidden={value !== index}
26
+ id={`vertical-tabpanel-${index}`}
27
+ aria-labelledby={`vertical-tab-${index}`}
28
+ {...other}
29
+ >
30
+ {value === index && (
31
+ <div className={classes.panel}>
32
+ <span>{children}</span>
33
+ </div>
34
+ )}
35
+ </div>
36
+ );
37
+ };
@@ -0,0 +1,84 @@
1
+ import React, { useContext } from "react";
2
+ import { ThemeProvider } from "../themes/HawaProvider";
3
+ import TwitterIcon from "@mui/icons-material/Twitter";
4
+ import Button from "@mui/material/Button";
5
+ import { styled, alpha, darken } from "@mui/material/styles";
6
+
7
+ export const TwitterButton = (props) => {
8
+ const theme = useContext(ThemeProvider);
9
+ let buttonStyle = {};
10
+
11
+ console.log(Object.keys(theme.actionButton));
12
+ let currentTheme = Object.keys(theme.actionButton).find(
13
+ (themeName) => themeName.toLowerCase() === props.themeType?.toLowerCase()
14
+ );
15
+ if (currentTheme) {
16
+ buttonStyle = {
17
+ cursor: "pointer",
18
+ display: "flex",
19
+ flexDirection: "row",
20
+ alignItems: "center",
21
+ justifyContent: "center",
22
+ marginTop: theme.layout[currentTheme].margin,
23
+ border: props.outlined ? "2px solid black" : "none",
24
+ borderRadius: theme.layout[currentTheme].borderRadius,
25
+ backgroundColor: "white",
26
+ "&:hover": {
27
+ backgroundColor: darken("#ffffff", 0.1)
28
+ }
29
+ };
30
+ } else {
31
+ buttonStyle = {
32
+ cursor: "pointer",
33
+ display: "flex",
34
+ flexDirection: "row",
35
+ alignItems: "center",
36
+ justifyContent: "center",
37
+ marginTop: theme.margins,
38
+ border: props.outlined ? "2px solid black" : "none",
39
+ borderRadius: 0,
40
+ backgroundColor: "white",
41
+ "&:hover": {
42
+ backgroundColor: darken("#ffffff", 0.1)
43
+ }
44
+ };
45
+ }
46
+ const StyledButton = styled(Button)(({ theme }) => {
47
+ return {
48
+ // "label + &": {
49
+ // marginTop: theme.spacing(3)
50
+ // },
51
+
52
+ borderRadius: 4,
53
+ position: "relative",
54
+ border: "1px solid #ced4da",
55
+ fontSize: 16,
56
+ // width: "auto",
57
+ height: 50,
58
+ // padding: "10px 12px",
59
+ ...buttonStyle,
60
+ "&:focus": {
61
+ // boxShadow: `${alpha(theme.palette.primary.main, 0.25)} 0 0 0 0.2rem`,
62
+ borderColor: theme.palette.primary.main
63
+ }
64
+ };
65
+ });
66
+ return (
67
+ <StyledButton onClick={props.handleClick}>
68
+ <TwitterIcon />
69
+ <div style={{ width: 10 }} />
70
+ <p
71
+ style={{
72
+ color: "black",
73
+ fontSize: 14,
74
+ textAlign: "center",
75
+ letterSpacing: 0.4,
76
+ fontFamily: "Roboto",
77
+ fontWeight: 500
78
+ }}
79
+ >
80
+ {props.buttonText}
81
+ </p>
82
+ </StyledButton>
83
+ );
84
+ };