@sikka/hawa 0.0.49 → 0.0.51

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 (34) hide show
  1. package/es/index.es.js +1 -1
  2. package/lib/index.js +1 -1
  3. package/package.json +1 -1
  4. package/src/blocks/Account/UserProfileForm.js +2 -3
  5. package/src/blocks/Account/UserSettingsForm.js +2 -3
  6. package/src/blocks/Misc/NotFound.js +8 -23
  7. package/src/blocks/Payment/ChargeWalletForm.js +5 -12
  8. package/src/blocks/Payment/CheckoutForm.js +185 -195
  9. package/src/blocks/Payment/Confirmation.js +31 -74
  10. package/src/blocks/Payment/CreditCardForm.js +3 -4
  11. package/src/blocks/Payment/Form/CForm.js +3 -4
  12. package/src/blocks/Payment/Form/PaymentMethod.js +2 -9
  13. package/src/blocks/Payment/Gateway/Wallet.js +145 -145
  14. package/src/blocks/Payment/PayWithWallet.js +6 -13
  15. package/src/blocks/Payment/SelectPayment.js +2 -3
  16. package/src/blocks/Pricing/PricingPlans.js +4 -5
  17. package/src/elements/DraggableCard.js +18 -28
  18. package/src/elements/HawaCheckbox.js +0 -2
  19. package/src/elements/HawaPanelTabs.js +116 -22
  20. package/src/elements/HawaSelect.js +17 -7
  21. package/src/elements/HawaTooltip.js +54 -0
  22. package/src/elements/ResponsiveButton.js +9 -5
  23. package/src/elements/index.js +1 -0
  24. package/src/layout/HawaAppLayout2.js +34 -40
  25. package/storybook-static/iframe.html +1 -1
  26. package/storybook-static/main.030838f5.iframe.bundle.js +1 -0
  27. package/storybook-static/project.json +1 -1
  28. package/storybook-static/vendors~main.8ab765cf.iframe.bundle.js +76 -0
  29. package/storybook-static/{vendors~main.ceb9a32a.iframe.bundle.js.LICENSE.txt → vendors~main.8ab765cf.iframe.bundle.js.LICENSE.txt} +0 -0
  30. package/storybook-static/vendors~main.8ab765cf.iframe.bundle.js.map +1 -0
  31. package/src/elements/StyledTooltip.js +0 -46
  32. package/storybook-static/main.8bf9785a.iframe.bundle.js +0 -1
  33. package/storybook-static/vendors~main.ceb9a32a.iframe.bundle.js +0 -76
  34. package/storybook-static/vendors~main.ceb9a32a.iframe.bundle.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sikka/hawa",
3
- "version": "0.0.49",
3
+ "version": "0.0.51",
4
4
  "description": "UI Kit",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.es.js",
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import { HawaButton, HawaTextField } from "../../elements";
3
3
  import { Controller, FormProvider, useForm } from "react-hook-form";
4
- import Container from "@mui/material/Container";
5
4
 
6
5
  export const UserProfileForm = (props) => {
7
6
  const methods = useForm();
@@ -13,7 +12,7 @@ export const UserProfileForm = (props) => {
13
12
  } = methods;
14
13
 
15
14
  return (
16
- <Container maxWidth="sm">
15
+ <div className="flex flex-col divide-y divide-gray-300 bg-blue-300 rounded-xl p-4">
17
16
  <FormProvider {...methods}>
18
17
  <form onSubmit={handleSubmit(props.handleUpdateProfile)}>
19
18
  <Controller
@@ -146,7 +145,7 @@ export const UserProfileForm = (props) => {
146
145
  </HawaButton>
147
146
  </form>
148
147
  </FormProvider>
149
- </Container>
148
+ </div>
150
149
  );
151
150
  };
152
151
 
@@ -1,13 +1,12 @@
1
- import Container from "@mui/material/Container";
2
1
  import { HawaButton } from "../../elements";
3
2
 
4
3
  export const UserSettingsForm = (props) => {
5
4
  return (
6
- <Container maxWidth="sm">
5
+ <div className="flex flex-col divide-y divide-gray-300 bg-blue-300 rounded-xl p-4">
7
6
  {props.children}
8
7
  <HawaButton type="submit" fullWidth onClick={props.handleSaveSettings}>
9
8
  {props.saveSettingsText}
10
9
  </HawaButton>
11
- </Container>
10
+ </div>
12
11
  );
13
12
  };
@@ -1,8 +1,6 @@
1
1
  import React from "react";
2
- import Container from "@mui/material/Container";
3
2
  import PropTypes from "prop-types";
4
- import Typography from "@mui/material/Typography";
5
- import { Button } from "@mui/material";
3
+ import { HawaButton } from "../../elements";
6
4
 
7
5
  export const NotFound = (props) => {
8
6
  return (
@@ -13,27 +11,14 @@ export const NotFound = (props) => {
13
11
  alignItems: "center"
14
12
  }}
15
13
  >
16
- <Typography variant="h2" fontWeight={700}>
17
- 404
18
- </Typography>
19
- <Typography variant="h5" fontWeight={700}>
20
- Page Not Found
21
- </Typography>
22
- <Container
23
- style={{
24
- maxWidth: 300,
25
- marginTop: 10,
26
- direction: props.lang === "ar" ? "rtl" : "ltr"
27
- }}
28
- maxWidth="xs"
29
- >
30
- <Typography textAlign={"center"}>
14
+ <div className="text-6xl font-bold">404</div>
15
+ <div className="text-xl m-2 font-bold">Page Not Found</div>
16
+ <div className="flex w-40 flex-col bg-blue-300 rounded-xl p-4">
17
+ <div className="text-center">
31
18
  If you're lost please contact us help@sikka.io{" "}
32
- </Typography>
33
- <Button style={{ marginTop: 5 }} variant="contained">
34
- Home
35
- </Button>
36
- </Container>
19
+ </div>
20
+ <HawaButton fullWidth>Home</HawaButton>
21
+ </div>
37
22
  </div>
38
23
  );
39
24
  };
@@ -1,8 +1,6 @@
1
1
  import React, { useState } from "react";
2
2
  import { HawaButton, HawaTextField } from "../../elements";
3
3
  import { Controller, FormProvider, useForm } from "react-hook-form";
4
- import Container from "@mui/material/Container";
5
- import Typography from "@mui/material/Typography";
6
4
  import PropTypes from "prop-types";
7
5
 
8
6
  export const ChargeWalletForm = (props) => {
@@ -15,16 +13,11 @@ export const ChargeWalletForm = (props) => {
15
13
  } = methods;
16
14
 
17
15
  return (
18
- <Container maxWidth="xs">
19
- <Typography
20
- align="center"
21
- variant="h2"
22
- fontWeight={500}
23
- style={{ marginBottom: 20 }}
24
- >
16
+ <div className="flex flex-col bg-blue-300 rounded-xl p-4">
17
+ <div className="text-5xl font-extrabold text-center">
25
18
  {Number(walletAmount).toLocaleString("en") || "0"}
26
- <Typography>{props.currency || "SAR"}</Typography>
27
- </Typography>
19
+ <div className="text-sm font-normal">{props.currency || "SAR"}</div>
20
+ </div>
28
21
  <FormProvider {...methods}>
29
22
  <form onSubmit={handleSubmit(props.handleChargeWallet)}>
30
23
  <Controller
@@ -60,7 +53,7 @@ export const ChargeWalletForm = (props) => {
60
53
  </HawaButton>
61
54
  </form>
62
55
  </FormProvider>
63
- </Container>
56
+ </div>
64
57
  );
65
58
  };
66
59
 
@@ -6,9 +6,6 @@ import {
6
6
  HawaButton
7
7
  } from "../../elements";
8
8
  import { Controller, FormProvider, useForm } from "react-hook-form";
9
- import Container from "@mui/material/Container";
10
- import Typography from "@mui/material/Typography";
11
- import Divider from "@mui/material/Divider";
12
9
  import PropTypes from "prop-types";
13
10
 
14
11
  export const CheckoutForm = (props) => {
@@ -35,217 +32,210 @@ export const CheckoutForm = (props) => {
35
32
  }
36
33
  };
37
34
  return (
38
- <Container maxWidth="sm" style={{ direction: isArabic ? "rtl" : "ltr" }}>
39
- <Typography
40
- align="center"
41
- variant="h5"
42
- fontWeight={500}
43
- style={{ marginBottom: 10 }}
44
- >
45
- {props.texts.orderDetails}
46
- </Typography>
47
- <HawaTable
48
- lang={props.lang}
49
- columns={["Product", "Price"]}
50
- rows={props.products}
51
- end={["Total", props.total]}
52
- />
53
- <Divider variant="middle" />
35
+ <div className="flex flex-col bg-blue-300 rounded-xl p-4">
36
+ <div>
37
+ <div className="text-xl text-center font-semibold mb-2">
38
+ {props.texts.orderDetails}
39
+ </div>
40
+ <HawaTable
41
+ lang={props.lang}
42
+ columns={["Product", "Price"]}
43
+ rows={props.products}
44
+ end={["Total", props.total]}
45
+ />
46
+ </div>
54
47
 
55
- <Typography
56
- align="center"
57
- variant="h5"
58
- fontWeight={500}
59
- style={{ marginBottom: 10 }}
60
- >
61
- {props.texts.billingAddress}
62
- </Typography>
48
+ <div>
49
+ <div className="text-xl text-center font-semibold my-2">
50
+ {props.texts.billingAddress}
51
+ </div>
63
52
 
64
- <FormProvider {...methods}>
65
- <form onSubmit={handleSubmit(props.handlePayNow)}>
66
- <Container sx={containerStyle}>
67
- <Controller
68
- control={control}
69
- name="firstName"
70
- rules={{ required: props.texts?.required }}
71
- render={({ field }) => (
72
- <HawaTextField
73
- inForm
74
- fullWidth
75
- type="text"
76
- value={field.value ?? ""}
77
- label={props.texts?.firstNameLabel + " *"}
78
- helperText={errors.firstName?.message}
79
- {...field}
80
- />
81
- )}
82
- />
83
- <div style={{ width: 20 }} />
84
-
85
- <Controller
86
- control={control}
87
- name="lastName"
88
- rules={{ required: props.texts?.required }}
89
- render={({ field }) => (
90
- <HawaTextField
91
- inForm
92
- fullWidth
93
- type="text"
94
- value={field.value ?? ""}
95
- label={props.texts?.lastNameLabel + " *"}
96
- helperText={errors.lastName?.message}
97
- {...field}
98
- />
99
- )}
100
- />
101
- </Container>
102
- <Controller
103
- control={control}
104
- name="email"
105
- render={({ field }) => (
106
- <HawaTextField
107
- inForm
108
- fullWidth
109
- type="text"
110
- value={field.value ?? ""}
111
- label={props.texts?.emailLabel + " *"}
112
- helperText={errors.email?.message}
113
- {...field}
53
+ <FormProvider {...methods}>
54
+ <form onSubmit={handleSubmit(props.handlePayNow)}>
55
+ <div>
56
+ <Controller
57
+ control={control}
58
+ name="firstName"
59
+ rules={{ required: props.texts?.required }}
60
+ render={({ field }) => (
61
+ <HawaTextField
62
+ inForm
63
+ fullWidth
64
+ type="text"
65
+ value={field.value ?? ""}
66
+ label={props.texts?.firstNameLabel + " *"}
67
+ helperText={errors.firstName?.message}
68
+ {...field}
69
+ />
70
+ )}
114
71
  />
115
- )}
116
- rules={{
117
- required: props.texts?.emailRequiredText,
118
- pattern: {
119
- value:
120
- /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
121
- message: props.texts?.emailInvalidText
122
- }
123
- }}
124
- />
72
+ <div style={{ width: 20 }} />
125
73
 
126
- <Container sx={containerStyle}>
74
+ <Controller
75
+ control={control}
76
+ name="lastName"
77
+ rules={{ required: props.texts?.required }}
78
+ render={({ field }) => (
79
+ <HawaTextField
80
+ inForm
81
+ fullWidth
82
+ type="text"
83
+ value={field.value ?? ""}
84
+ label={props.texts?.lastNameLabel + " *"}
85
+ helperText={errors.lastName?.message}
86
+ {...field}
87
+ />
88
+ )}
89
+ />
90
+ </div>
127
91
  <Controller
128
92
  control={control}
129
- name="streetAddress"
130
- rules={{ required: props.texts?.required }}
93
+ name="email"
131
94
  render={({ field }) => (
132
95
  <HawaTextField
133
96
  inForm
134
97
  fullWidth
135
98
  type="text"
136
99
  value={field.value ?? ""}
137
- label={props.texts?.streetAddressLabel + " *"}
138
- helperText={errors.streetAddress?.message}
100
+ label={props.texts?.emailLabel + " *"}
101
+ helperText={errors.email?.message}
139
102
  {...field}
140
103
  />
141
104
  )}
105
+ rules={{
106
+ required: props.texts?.emailRequiredText,
107
+ pattern: {
108
+ value:
109
+ /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
110
+ message: props.texts?.emailInvalidText
111
+ }
112
+ }}
142
113
  />
143
- <div style={{ width: 20 }} />
144
114
 
145
- <Controller
146
- control={control}
147
- name="buildingNumber"
148
- rules={{ required: props.texts?.required }}
149
- render={({ field }) => (
150
- <HawaTextField
151
- inForm
152
- fullWidth
153
- type="text"
154
- value={field.value ?? ""}
155
- label={props.texts?.buildingNumberLabel + " *"}
156
- helperText={errors.buildingNumber?.message}
157
- {...field}
158
- />
159
- )}
160
- />
161
- </Container>
162
- <Container sx={containerStyle}>
163
- <Controller
164
- control={control}
165
- name="province"
166
- rules={{ required: props.texts?.required }}
167
- render={({ field }) => (
168
- <HawaTextField
169
- inForm
170
- fullWidth
171
- type="text"
172
- value={field.value ?? ""}
173
- label={props.texts?.stateLabel + " *"}
174
- helperText={errors.province?.message}
175
- {...field}
176
- />
177
- )}
178
- />
179
- <div style={{ width: 20 }} />
115
+ <div sx={containerStyle}>
116
+ <Controller
117
+ control={control}
118
+ name="streetAddress"
119
+ rules={{ required: props.texts?.required }}
120
+ render={({ field }) => (
121
+ <HawaTextField
122
+ inForm
123
+ fullWidth
124
+ type="text"
125
+ value={field.value ?? ""}
126
+ label={props.texts?.streetAddressLabel + " *"}
127
+ helperText={errors.streetAddress?.message}
128
+ {...field}
129
+ />
130
+ )}
131
+ />
132
+ <div style={{ width: 20 }} />
180
133
 
181
- <Controller
182
- control={control}
183
- name="city"
184
- rules={{ required: props.texts?.required }}
185
- render={({ field }) => (
186
- <HawaTextField
187
- inForm
188
- fullWidth
189
- type="text"
190
- value={field.value ?? ""}
191
- label={props.texts?.cityLabel + " *"}
192
- helperText={errors.city?.message}
193
- {...field}
194
- />
195
- )}
196
- />
197
- </Container>
198
- <Container sx={containerStyle}>
199
- <Controller
200
- control={control}
201
- name="zipCode"
202
- rules={{ required: props.texts?.required }}
203
- render={({ field }) => (
204
- <HawaTextField
205
- inForm
206
- fullWidth
207
- type="number"
208
- variant="unscrollable"
209
- value={field.value ?? ""}
210
- label={props.texts?.zipCodeLabel + " *"}
211
- helperText={errors.zipCode?.message}
212
- {...field}
213
- />
214
- )}
215
- />
216
- <div style={{ width: 20 }} />
134
+ <Controller
135
+ control={control}
136
+ name="buildingNumber"
137
+ rules={{ required: props.texts?.required }}
138
+ render={({ field }) => (
139
+ <HawaTextField
140
+ inForm
141
+ fullWidth
142
+ type="text"
143
+ value={field.value ?? ""}
144
+ label={props.texts?.buildingNumberLabel + " *"}
145
+ helperText={errors.buildingNumber?.message}
146
+ {...field}
147
+ />
148
+ )}
149
+ />
150
+ </div>
151
+ <div sx={containerStyle}>
152
+ <Controller
153
+ control={control}
154
+ name="province"
155
+ rules={{ required: props.texts?.required }}
156
+ render={({ field }) => (
157
+ <HawaTextField
158
+ inForm
159
+ fullWidth
160
+ type="text"
161
+ value={field.value ?? ""}
162
+ label={props.texts?.stateLabel + " *"}
163
+ helperText={errors.province?.message}
164
+ {...field}
165
+ />
166
+ )}
167
+ />
168
+ <div style={{ width: 20 }} />
217
169
 
218
- <Controller
219
- control={control}
220
- name="country"
221
- rules={{ required: props.texts?.required }}
222
- render={({ field }) => (
223
- <HawaSelect
224
- fullWidth
225
- native
226
- label={props.texts?.countryLabel + " *"}
227
- variant="standard"
228
- value={field.value ?? ""}
229
- helperText={errors.country?.message}
230
- displayEmpty
231
- disableUnderline
232
- validators={["required"]}
233
- {...field}
234
- >
235
- <option></option>
236
- {props.countriesList.map((country, i) => (
237
- <option key={i}>{country}</option>
238
- ))}
239
- </HawaSelect>
240
- )}
241
- />
242
- </Container>
243
- <HawaButton type="submit" fullWidth>
244
- {props.texts.payNow}
245
- </HawaButton>
246
- </form>
247
- </FormProvider>
248
- </Container>
170
+ <Controller
171
+ control={control}
172
+ name="city"
173
+ rules={{ required: props.texts?.required }}
174
+ render={({ field }) => (
175
+ <HawaTextField
176
+ inForm
177
+ fullWidth
178
+ type="text"
179
+ value={field.value ?? ""}
180
+ label={props.texts?.cityLabel + " *"}
181
+ helperText={errors.city?.message}
182
+ {...field}
183
+ />
184
+ )}
185
+ />
186
+ </div>
187
+ <div sx={containerStyle}>
188
+ <Controller
189
+ control={control}
190
+ name="zipCode"
191
+ rules={{ required: props.texts?.required }}
192
+ render={({ field }) => (
193
+ <HawaTextField
194
+ inForm
195
+ fullWidth
196
+ type="number"
197
+ variant="unscrollable"
198
+ value={field.value ?? ""}
199
+ label={props.texts?.zipCodeLabel + " *"}
200
+ helperText={errors.zipCode?.message}
201
+ {...field}
202
+ />
203
+ )}
204
+ />
205
+ <div style={{ width: 20 }} />
206
+
207
+ <Controller
208
+ control={control}
209
+ name="country"
210
+ rules={{ required: props.texts?.required }}
211
+ render={({ field }) => (
212
+ <HawaSelect
213
+ fullWidth
214
+ native
215
+ label={props.texts?.countryLabel + " *"}
216
+ variant="standard"
217
+ value={field.value ?? ""}
218
+ helperText={errors.country?.message}
219
+ displayEmpty
220
+ disableUnderline
221
+ validators={["required"]}
222
+ {...field}
223
+ >
224
+ <option></option>
225
+ {props.countriesList.map((country, i) => (
226
+ <option key={i}>{country}</option>
227
+ ))}
228
+ </HawaSelect>
229
+ )}
230
+ />
231
+ </div>
232
+ <HawaButton type="submit" fullWidth>
233
+ {props.texts.payNow}
234
+ </HawaButton>
235
+ </form>
236
+ </FormProvider>
237
+ </div>
238
+ </div>
249
239
  );
250
240
  };
251
241