@sikka/hawa 0.0.50 → 0.0.52

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 (33) 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/HawaItemCard.js +0 -1
  20. package/src/elements/HawaLogoButton.js +1 -1
  21. package/src/elements/HawaPanelTabs.js +116 -22
  22. package/src/elements/HawaPricingCard.js +102 -120
  23. package/src/elements/HawaSelect.js +17 -7
  24. package/src/elements/HawaSettingsRow.js +4 -5
  25. package/storybook-static/iframe.html +1 -1
  26. package/storybook-static/main.c2f37ee9.iframe.bundle.js +1 -0
  27. package/storybook-static/project.json +1 -1
  28. package/storybook-static/vendors~main.db6a4c38.iframe.bundle.js +76 -0
  29. package/storybook-static/{vendors~main.c0e24dea.iframe.bundle.js.LICENSE.txt → vendors~main.db6a4c38.iframe.bundle.js.LICENSE.txt} +0 -0
  30. package/storybook-static/vendors~main.db6a4c38.iframe.bundle.js.map +1 -0
  31. package/storybook-static/main.c82b0a52.iframe.bundle.js +0 -1
  32. package/storybook-static/vendors~main.c0e24dea.iframe.bundle.js +0 -76
  33. package/storybook-static/vendors~main.c0e24dea.iframe.bundle.js.map +0 -1
@@ -89,7 +89,7 @@ export const HawaLogoButton = (props) => {
89
89
  style={{ direction: isArabic ? "rtl" : "ltr" }}
90
90
  {...props}
91
91
  // variant="withLogo"
92
- className="bg-white rounded-xl my-2 h-11 flex flex-row justify-center align-middle"
92
+ className="bg-white rounded-xl my-2 h-11 flex max-w-sm w-full flex-row justify-center align-middle"
93
93
  >
94
94
  <div className="h-full w-1/2 flex flex-row justify-end items-center">
95
95
  {logoElement}
@@ -1,32 +1,126 @@
1
1
  import React, { useState } from "react";
2
2
 
3
- import Container from "@mui/material/Container";
4
3
  import PropTypes from "prop-types";
4
+ import "flowbite";
5
5
 
6
6
  export const HawaPanelTabs = (props) => {
7
7
  const [value, setValue] = useState(props.defaultValue);
8
8
  return (
9
- <Container variant={props.location || "panelTabs"}>
10
- {props.options.map((singleOption, i) => {
11
- return (
12
- <button
13
- key={i}
14
- onClick={() => {
15
- props.handleChange(singleOption.value);
16
- setValue(singleOption.value);
17
- }}
18
- fullWidth
19
- variant={
20
- value?.toLowerCase() === singleOption.value?.toLowerCase()
21
- ? "selected"
22
- : "unselected"
23
- }
24
- >
25
- {singleOption.label}
26
- </button>
27
- );
28
- })}
29
- </Container>
9
+ <div>
10
+ <div class="mb-4 border-b border-gray-200 dark:border-gray-700">
11
+ <ul
12
+ class="flex flex-wrap -mb-px text-sm font-medium text-center"
13
+ id="myTab"
14
+ data-tabs-toggle="#myTabContent"
15
+ role="tablist"
16
+ >
17
+ {props.options.map((option) => {
18
+ return (
19
+ <li class="mr-2" role="presentation">
20
+ <button
21
+ class="inline-block p-4 rounded-t-lg border-b-2 text-blue-600 hover:text-blue-600 dark:text-blue-500 dark:hover:text-blue-500 border-blue-600 dark:border-blue-500"
22
+ id="profile-tab"
23
+ data-tabs-target="#profile"
24
+ type="button"
25
+ role="tab"
26
+ aria-controls="profile"
27
+ aria-selected="true"
28
+ >
29
+ {option.label}
30
+ </button>
31
+ </li>
32
+ );
33
+ })}
34
+ </ul>
35
+ </div>
36
+ {/* <div id="myTabContent">
37
+ <div
38
+ class="p-4 bg-gray-50 rounded-lg dark:bg-gray-800"
39
+ id="profile"
40
+ role="tabpanel"
41
+ aria-labelledby="profile-tab"
42
+ >
43
+ <p class="text-sm text-gray-500 dark:text-gray-400">
44
+ This is some placeholder content the{" "}
45
+ <strong class="font-medium text-gray-800 dark:text-white">
46
+ Profile tab's associated content
47
+ </strong>
48
+ . Clicking another tab will toggle the visibility of this one for
49
+ the next. The tab JavaScript swaps classes to control the content
50
+ visibility and styling.
51
+ </p>
52
+ </div>
53
+ <div
54
+ class="hidden p-4 bg-gray-50 rounded-lg dark:bg-gray-800"
55
+ id="dashboard"
56
+ role="tabpanel"
57
+ aria-labelledby="dashboard-tab"
58
+ >
59
+ <p class="text-sm text-gray-500 dark:text-gray-400">
60
+ This is some placeholder content the{" "}
61
+ <strong class="font-medium text-gray-800 dark:text-white">
62
+ Dashboard tab's associated content
63
+ </strong>
64
+ . Clicking another tab will toggle the visibility of this one for
65
+ the next. The tab JavaScript swaps classes to control the content
66
+ visibility and styling.
67
+ </p>
68
+ </div>
69
+ <div
70
+ class="hidden p-4 bg-gray-50 rounded-lg dark:bg-gray-800"
71
+ id="settings"
72
+ role="tabpanel"
73
+ aria-labelledby="settings-tab"
74
+ >
75
+ <p class="text-sm text-gray-500 dark:text-gray-400">
76
+ This is some placeholder content the{" "}
77
+ <strong class="font-medium text-gray-800 dark:text-white">
78
+ Settings tab's associated content
79
+ </strong>
80
+ . Clicking another tab will toggle the visibility of this one for
81
+ the next. The tab JavaScript swaps classes to control the content
82
+ visibility and styling.
83
+ </p>
84
+ </div>
85
+ <div
86
+ class="hidden p-4 bg-gray-50 rounded-lg dark:bg-gray-800"
87
+ id="contacts"
88
+ role="tabpanel"
89
+ aria-labelledby="contacts-tab"
90
+ >
91
+ <p class="text-sm text-gray-500 dark:text-gray-400">
92
+ This is some placeholder content the{" "}
93
+ <strong class="font-medium text-gray-800 dark:text-white">
94
+ Contacts tab's associated content
95
+ </strong>
96
+ . Clicking another tab will toggle the visibility of this one for
97
+ the next. The tab JavaScript swaps classes to control the content
98
+ visibility and styling.
99
+ </p>
100
+ </div>
101
+ </div> */}
102
+ </div>
103
+ // <Container variant={props.location || "panelTabs"}>
104
+ // {props.options.map((singleOption, i) => {
105
+ // return (
106
+ // <button
107
+ // key={i}
108
+ // onClick={() => {
109
+ // props.handleChange(singleOption.value);
110
+ // setValue(singleOption.value);
111
+ // }}
112
+ // fullWidth
113
+ // variant={
114
+ // value?.toLowerCase() === singleOption.value?.toLowerCase()
115
+ // ? "selected"
116
+ // : "unselected"
117
+ // }
118
+ // >
119
+ // {singleOption.label}
120
+ // </button>
121
+ // );
122
+ // })}
123
+ // </Container>
30
124
  );
31
125
  };
32
126
 
@@ -1,9 +1,5 @@
1
1
  import React from "react";
2
- import Container from "@mui/material/Container";
3
- import Typography from "@mui/material/Typography";
4
- import CheckIcon from "@mui/icons-material/CheckCircleOutlined";
5
2
  import PropTypes from "prop-types";
6
- import Chip from "@mui/material/Chip";
7
3
 
8
4
  export const HawaPricingCard = (props) => {
9
5
  let isArabic = props.lang === "ar";
@@ -26,126 +22,112 @@ export const HawaPricingCard = (props) => {
26
22
  let featuresMapping = isArabic ? props.features_ar : props.features;
27
23
  let chipSpacing = isArabic ? { left: 10 } : { right: 10 };
28
24
  return (
29
- <Container
30
- maxWidth="xs"
31
- variant={props.selectedPlan ? "selected-plan-card" : "plan-card"}
32
- style={{ direction: isArabic ? "rtl" : "ltr" }}
33
- >
34
- <Container variant="plan-header">
35
- {props.discount && (
36
- <Chip
37
- label={props.discount}
38
- variant="standard"
39
- style={{
40
- maxWidth: "fit-content",
41
- position: "absolute",
42
- bottom: 10,
43
- ...chipSpacing
44
- }}
45
- color="success"
46
- />
47
- )}
48
- <Typography variant="h3" fontWeight={500}>
25
+ <div>
26
+ <div class="p-4 w-full max-w-sm bg-white rounded-lg border shadow-md sm:p-8 dark:bg-gray-800 dark:border-gray-700">
27
+ <h5 class="mb-4 text-xl font-medium text-gray-500 dark:text-gray-400">
49
28
  {isArabic ? props.title_ar : props.title}
50
- </Typography>
51
- <Typography variant="caption">
52
- {isArabic ? props.subtitle_ar : props.subtitle}
53
- </Typography>
54
- <br />
55
- <Typography
56
- variant="h4"
57
- fontWeight={500}
58
- style={{ display: "flex", alignItems: "center" }}
59
- >
60
- {props.lang === "ar" ? (
61
- <div
62
- style={{
63
- width: "100%",
64
- display: "flex",
65
- flexDirection: "column",
66
- justifyContent: "center"
67
- }}
68
- >
69
- <div style={{ display: "flex", flexDirection: "row" }}>
70
- {props.price}
71
- <div style={{ width: 5 }} />
72
- {/* <Typography>{props.currency?.toUpperCase()}</Typography> */}
73
- <Typography>
74
- {currencyMapping[props.currency?.toLowerCase()]}
75
- </Typography>
76
- </div>
77
- <Typography style={{ fontSize: 14, margin: 5 }}>
78
- {isArabic
79
- ? cycleTextsArabic[props.cycleText]
80
- : cycleTextsEnglish[props.cycleText]}
81
- </Typography>
82
- </div>
83
- ) : (
84
- <div
85
- style={{
86
- width: "100%",
87
- display: "flex",
88
- flexDirection: "column",
89
- justifyContent: "center"
90
- }}
91
- >
92
- <div style={{ display: "flex", flexDirection: "row" }}>
93
- <Typography>
94
- {currencyMapping[props.currency?.toLowerCase()]}
95
- </Typography>
96
- {/* <Typography>{props.currency?.toUpperCase()}</Typography> */}
97
- <div style={{ width: 5 }} />
98
- {props.price}
99
- </div>
100
- <Typography style={{ fontSize: 14, margin: 5 }}>
101
- {props.lang === "ar"
102
- ? cycleTextsArabic[props.cycleText]
103
- : cycleTextsEnglish[props.cycleText]}
104
- </Typography>
105
- </div>
106
- )}
107
- </Typography>
108
- </Container>
29
+ </h5>
30
+ <div class="flex items-baseline text-gray-900 dark:text-white">
31
+ <span class="text-3xl font-semibold">
32
+ {" "}
33
+ {currencyMapping[props.currency?.toLowerCase()]}
34
+ </span>
35
+ <span class="text-5xl font-extrabold tracking-tight">
36
+ {props.price}
37
+ </span>
38
+ <span class="ml-1 text-xl font-normal text-gray-500 dark:text-gray-400">
39
+ /{" "}
40
+ {isArabic
41
+ ? cycleTextsArabic[props.cycleText]
42
+ : cycleTextsEnglish[props.cycleText]}
43
+ </span>
44
+ </div>
45
+ <ul role="list" class="my-7 space-y-5">
46
+ {featuresMapping?.map((feature) => {
47
+ return (
48
+ <li class="flex space-x-3">
49
+ <svg
50
+ aria-hidden="true"
51
+ class="flex-shrink-0 w-5 h-5 text-blue-600 dark:text-blue-500"
52
+ fill="currentColor"
53
+ viewBox="0 0 20 20"
54
+ xmlns="http://www.w3.org/2000/svg"
55
+ >
56
+ <title>Check icon</title>
57
+ <path
58
+ fill-rule="evenodd"
59
+ d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
60
+ clip-rule="evenodd"
61
+ ></path>
62
+ </svg>
63
+ <span class="text-base font-normal leading-tight text-gray-500 dark:text-gray-400">
64
+ {feature}
65
+ </span>
66
+ </li>
67
+ );
68
+ })}
109
69
 
110
- <div
111
- style={{ padding: 20, color: props.selectedPlan ? "white" : "black" }}
112
- >
113
- {featuresMapping?.map((feature) => {
114
- return (
115
- <div
116
- style={{
117
- display: "flex",
118
- flexDirection: "row",
119
- alignItems: "center",
120
- justifyContent: "flex-start",
121
- marginTop: 10,
122
- width: "100%"
123
- }}
70
+ {/* <li class="flex space-x-3 line-through decoration-gray-500">
71
+ <svg
72
+ aria-hidden="true"
73
+ class="flex-shrink-0 w-5 h-5 text-gray-400 dark:text-gray-500"
74
+ fill="currentColor"
75
+ viewBox="0 0 20 20"
76
+ xmlns="http://www.w3.org/2000/svg"
124
77
  >
125
- <div
126
- style={{
127
- display: "flex",
128
- flexDirection: "row",
129
- justifyContent: "flex-end",
130
- width: "10%"
131
- }}
132
- >
133
- <CheckIcon fontSize="small" />
134
- </div>
135
- <div style={{ width: 10 }} />
136
- <Typography variant="subtitle2">{feature}</Typography>
137
- </div>
138
- );
139
- })}
78
+ <title>Check icon</title>
79
+ <path
80
+ fill-rule="evenodd"
81
+ d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
82
+ clip-rule="evenodd"
83
+ ></path>
84
+ </svg>
85
+ <span class="text-base font-normal leading-tight text-gray-500">
86
+ Sketch Files
87
+ </span>
88
+ </li> */}
89
+ </ul>
90
+ <button
91
+ type="button"
92
+ class="text-white bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-200 dark:focus:ring-blue-900 font-medium rounded-lg text-sm px-5 py-2.5 inline-flex justify-center w-full text-center"
93
+ >
94
+ {props.buttonText}
95
+ </button>
140
96
  </div>
141
- <button
142
- onClick={props.selectPlan}
143
- variant={props.selectedPlan ? "outlined" : "contained"}
144
- style={{ margin: 20 }}
145
- >
146
- {props.buttonText}
147
- </button>
148
- </Container>
97
+ </div>
98
+
99
+ // <Container
100
+ // maxWidth="xs"
101
+ // variant={props.selectedPlan ? "selected-plan-card" : "plan-card"}
102
+ // style={{ direction: isArabic ? "rtl" : "ltr" }}
103
+ // >
104
+ // {props.discount && (
105
+ // <Chip
106
+ // label={props.discount}
107
+ // variant="standard"
108
+ // style={{
109
+ // maxWidth: "fit-content",
110
+ // position: "absolute",
111
+ // bottom: 10,
112
+ // ...chipSpacing
113
+ // }}
114
+ // color="success"
115
+ // />
116
+ // )}
117
+
118
+ // <div
119
+ // style={{ padding: 20, color: props.selectedPlan ? "white" : "black" }}
120
+ // >
121
+ //
122
+ // </div>
123
+ // <button
124
+ // onClick={props.selectPlan}
125
+ // variant={props.selectedPlan ? "outlined" : "contained"}
126
+ // style={{ margin: 20 }}
127
+ // >
128
+ // {props.buttonText}
129
+ // </button>
130
+ // </Container>
149
131
  );
150
132
  };
151
133
 
@@ -1,12 +1,16 @@
1
1
  import React from "react";
2
- import InputLabel from "@mui/material/InputLabel";
3
- import Select from "@mui/material/Select";
4
- import Typography from "@mui/material/Typography";
5
2
 
6
3
  export const HawaSelect = (props) => {
7
4
  return (
8
5
  <div style={{ width: "100%" }}>
9
- <div
6
+ <label
7
+ for="first_name"
8
+ className="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300"
9
+ >
10
+ {props.label}
11
+ </label>
12
+
13
+ {/* <div
10
14
  style={{
11
15
  display: "flex",
12
16
  flexDirection: "row",
@@ -14,13 +18,19 @@ export const HawaSelect = (props) => {
14
18
  alignItems: "center"
15
19
  }}
16
20
  >
17
- <InputLabel>{props.label}</InputLabel>
18
21
 
19
22
  {props.helperText && (
20
23
  <Typography variant="validation">{props.helperText}</Typography>
21
24
  )}
22
- </div>
23
- <Select {...props}>{props.children}</Select>
25
+ </div> */}
26
+ {/* <Select {...props}>{props.children}</Select> */}
27
+
28
+ <select
29
+ id="countries"
30
+ class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
31
+ >
32
+ {props.children}
33
+ </select>
24
34
  </div>
25
35
  );
26
36
  };
@@ -1,19 +1,18 @@
1
1
  import React from "react";
2
2
  import PropTypes from "prop-types";
3
- import Checkbox from "@mui/material/Checkbox";
4
- import Container from "@mui/material/Container";
5
3
  import { HawaTypography } from "./HawaTypography";
6
4
  import { HawaTextField } from "./HawaTextField";
7
5
  import { HawaPanelTabs } from "./HawaPanelTabs";
8
6
  import { HawaSwitch } from "./HawaSwitch";
9
7
  import { HawaColorPicker } from "./HawaColorPicker";
10
8
  import { HawaRange } from "./HawaRange";
9
+ import { HawaCheckbox } from "./HawaCheckbox";
11
10
 
12
11
  export const HawaSettingsRow = (props) => {
13
12
  return (
14
- <Container variant="settingsRow">
13
+ <div className="flex flex-row bg-white justify-between align-middle items-center p-2 rounded-xl my-2 h-14">
15
14
  <HawaTypography>{props.settingsLabel}</HawaTypography>
16
- {props.settingsType === "checkbox" && <Checkbox {...props} />}
15
+ {props.settingsType === "checkbox" && <HawaCheckbox {...props} />}
17
16
  {props.settingsType === "text" && <HawaTextField {...props} />}
18
17
  {props.settingsType === "boolean" && <HawaSwitch {...props} />}
19
18
  {props.settingsType === "range" && <HawaRange {...props} />}
@@ -21,7 +20,7 @@ export const HawaSettingsRow = (props) => {
21
20
  {props.settingsType === "radio" && (
22
21
  <HawaPanelTabs location="inSettings" {...props} />
23
22
  )}
24
- </Container>
23
+ </div>
25
24
  );
26
25
  };
27
26
 
@@ -361,4 +361,4 @@
361
361
 
362
362
 
363
363
 
364
- window['STORIES'] = [{"titlePrefix":"","directory":"./src","files":"**/*.stories.mdx","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.mdx)$"},{"titlePrefix":"","directory":"./src","files":"**/*.stories.@(js|jsx|ts|tsx)","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.(js|jsx|ts|tsx))$"}];</script><script src="runtime~main.0e8a2888.iframe.bundle.js"></script><script src="vendors~main.c0e24dea.iframe.bundle.js"></script><script src="main.c82b0a52.iframe.bundle.js"></script></body></html>
364
+ window['STORIES'] = [{"titlePrefix":"","directory":"./src","files":"**/*.stories.mdx","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.mdx)$"},{"titlePrefix":"","directory":"./src","files":"**/*.stories.@(js|jsx|ts|tsx)","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.(js|jsx|ts|tsx))$"}];</script><script src="runtime~main.0e8a2888.iframe.bundle.js"></script><script src="vendors~main.db6a4c38.iframe.bundle.js"></script><script src="main.c2f37ee9.iframe.bundle.js"></script></body></html>