@sikka/hawa 0.0.95 → 0.0.97
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.
- package/dist/styles.css +279 -211
- package/es/index.es.js +1 -1
- package/lib/index.js +1 -1
- package/package.json +19 -6
- package/rollup.config.js +14 -2
- package/src/blocks/Account/{UserProfileForm.js → UserProfileForm.tsx} +42 -41
- package/src/blocks/Account/UserSettingsForm.tsx +28 -0
- package/src/blocks/Account/index.ts +2 -0
- package/src/blocks/AuthForms/AppLanding.tsx +33 -0
- package/src/blocks/AuthForms/CodeConfirmation.tsx +59 -0
- package/src/blocks/AuthForms/{NewPasswordForm.js → NewPasswordForm.tsx} +49 -53
- package/src/blocks/AuthForms/{ResetPasswordForm.js → ResetPasswordForm.tsx} +35 -38
- package/src/blocks/AuthForms/{SignInForm.js → SignInForm.tsx} +73 -65
- package/src/blocks/AuthForms/SignInPhone.tsx +68 -0
- package/src/blocks/AuthForms/{SignUpForm.js → SignUpForm.tsx} +88 -82
- package/src/blocks/AuthForms/index.ts +7 -0
- package/src/blocks/Misc/NotFound.tsx +28 -0
- package/src/blocks/Misc/index.ts +1 -0
- package/src/blocks/Payment/ChargeWalletForm.tsx +70 -0
- package/src/blocks/Payment/{CheckoutForm.js → CheckoutForm.tsx} +82 -81
- package/src/blocks/Payment/Confirmation.tsx +96 -0
- package/src/blocks/Payment/{CreditCardForm.js → CreditCardForm.tsx} +48 -33
- package/src/blocks/Payment/PayWithWallet.tsx +29 -0
- package/src/blocks/Payment/{SelectPayment.js → SelectPayment.tsx} +33 -29
- package/src/blocks/Payment/{index.js → index.ts} +0 -0
- package/src/blocks/Pricing/{ComparingPlans.js → ComparingPlans.tsx} +51 -53
- package/src/blocks/Pricing/PricingPlans.tsx +72 -0
- package/src/blocks/Pricing/{index.js → index.ts} +0 -0
- package/src/blocks/{index.js → index.ts} +0 -0
- package/{countries.js → src/countries.ts} +245 -245
- package/src/elements/{AutoCompleteField.js → AutoCompleteField.tsx} +16 -9
- package/src/elements/{DragDropImages.js → DragDropImages.tsx} +78 -53
- package/src/elements/DraggableCard.tsx +29 -0
- package/src/elements/{HawaAccordian.js → HawaAccordian.tsx} +27 -23
- package/src/elements/HawaAdCard.tsx +48 -0
- package/src/elements/HawaAlert.tsx +30 -0
- package/src/elements/HawaButton.tsx +120 -0
- package/src/elements/HawaCheckbox.tsx +37 -0
- package/src/elements/HawaChip.tsx +12 -0
- package/src/elements/HawaColorPicker.tsx +38 -0
- package/src/elements/{HawaCopyrights.js → HawaCopyrights.tsx} +15 -8
- package/src/elements/HawaDrawer.tsx +84 -0
- package/src/elements/{HawaDrawerItem.js → HawaDrawerItem.tsx} +12 -7
- package/src/elements/{HawaItemCard.js → HawaItemCard.tsx} +35 -36
- package/src/elements/{HawaLogoButton.js → HawaLogoButton.tsx} +52 -56
- package/src/elements/HawaMenu.tsx +75 -0
- package/src/elements/{HawaModal.js → HawaModal.tsx} +30 -21
- package/src/elements/{HawaPanelTabs.js → HawaPanelTabs.tsx} +27 -27
- package/src/elements/HawaPhoneInput.tsx +112 -0
- package/src/elements/{HawaPricingCard.js → HawaPricingCard.tsx} +86 -47
- package/src/elements/HawaRadio.tsx +34 -0
- package/src/elements/HawaRange.tsx +47 -0
- package/src/elements/HawaSearchBar.tsx +9 -0
- package/src/elements/{HawaSelect.js → HawaSelect.tsx} +74 -31
- package/src/elements/HawaSettingsRow.tsx +56 -0
- package/src/elements/HawaSnackbar.tsx +73 -0
- package/src/elements/HawaSwitch.tsx +25 -0
- package/src/elements/{HawaTable.js → HawaTable.tsx} +33 -31
- package/src/elements/{HawaTabs.js → HawaTabs.tsx} +17 -12
- package/src/elements/HawaTextField.tsx +71 -0
- package/src/elements/HawaTooltip.tsx +35 -0
- package/src/elements/HawaTypography.tsx +11 -0
- package/src/elements/{TabPanel.js → TabPanel.tsx} +10 -5
- package/src/elements/{index.js → index.ts} +7 -4
- package/src/index.ts +3 -0
- package/src/layout/Box.tsx +5 -0
- package/src/layout/HawaBottomAppBar.tsx +54 -0
- package/src/layout/HawaContainer.tsx +24 -0
- package/src/layout/{HawaLayout.js → HawaLayout.tsx} +54 -49
- package/src/layout/{index.js → index.ts} +0 -0
- package/src/styles.css +279 -211
- package/src/{util.js → util.ts} +0 -0
- package/storybook-static/229.a3257e00.iframe.bundle.js +1 -0
- package/storybook-static/229.d6fb4f8f665962cef844.manager.bundle.js +1 -0
- package/storybook-static/295.67c251ec00675ab59b60.manager.bundle.js +1 -0
- package/storybook-static/51.786e9bbba427ee454dc0.manager.bundle.js +2 -0
- package/storybook-static/{0.1104ca18.iframe.bundle.js.LICENSE.txt → 51.786e9bbba427ee454dc0.manager.bundle.js.LICENSE.txt} +0 -0
- package/storybook-static/51.acbbdb95.iframe.bundle.js +2 -0
- package/storybook-static/{0.cf71f8aa82edef0a7186.manager.bundle.js.LICENSE.txt → 51.acbbdb95.iframe.bundle.js.LICENSE.txt} +0 -0
- package/storybook-static/551.67cd309b0648b0a52636.manager.bundle.js +1 -0
- package/storybook-static/551.c82ea8f1.iframe.bundle.js +1 -0
- package/storybook-static/701.bcf1e718.iframe.bundle.js +1 -0
- package/storybook-static/733.8d2de9f8.iframe.bundle.js +2 -0
- package/storybook-static/{vendors~main.a40572d0.iframe.bundle.js.LICENSE.txt → 733.8d2de9f8.iframe.bundle.js.LICENSE.txt} +0 -10
- package/storybook-static/767.2f9c96fa3338c8d16078.manager.bundle.js +2 -0
- package/storybook-static/{vendors~main.d13ba71108048897ea4a.manager.bundle.js.LICENSE.txt → 767.2f9c96fa3338c8d16078.manager.bundle.js.LICENSE.txt} +0 -10
- package/storybook-static/807.14b8bfa7.iframe.bundle.js +2 -0
- package/storybook-static/{5.5b799f3fbf64cec8e51a.manager.bundle.js.LICENSE.txt → 807.14b8bfa7.iframe.bundle.js.LICENSE.txt} +0 -0
- package/storybook-static/807.4f52b2d047c5e8c5872f.manager.bundle.js +2 -0
- package/storybook-static/{6.6023eba1.iframe.bundle.js.LICENSE.txt → 807.4f52b2d047c5e8c5872f.manager.bundle.js.LICENSE.txt} +0 -0
- package/storybook-static/897.386c170cbd1467abc7ca.manager.bundle.js +2 -0
- package/storybook-static/{8.f9b98ef3e089be1a16d6.manager.bundle.js.LICENSE.txt → 897.386c170cbd1467abc7ca.manager.bundle.js.LICENSE.txt} +0 -0
- package/storybook-static/897.d9a35fd0.iframe.bundle.js +2 -0
- package/storybook-static/{9.63a5cf7a.iframe.bundle.js.LICENSE.txt → 897.d9a35fd0.iframe.bundle.js.LICENSE.txt} +0 -0
- package/storybook-static/935.07c1b6ea.iframe.bundle.js +1 -0
- package/storybook-static/935.0b4e9c201c33f3e66e81.manager.bundle.js +1 -0
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/index.html +1 -1
- package/storybook-static/main.051275cac7b0dc69501c.manager.bundle.js +1 -0
- package/storybook-static/main.71507dcb.iframe.bundle.js +1 -0
- package/storybook-static/project.json +1 -1
- package/storybook-static/runtime~main.25eae181fe0f96887a15.manager.bundle.js +1 -0
- package/storybook-static/runtime~main.4d0bf318.iframe.bundle.js +1 -0
- package/tailwind.config.js +16 -1
- package/tsconfig.json +25 -0
- package/src/blocks/Account/UserSettingsForm.js +0 -17
- package/src/blocks/Account/index.js +0 -2
- package/src/blocks/AuthForms/AppLanding.js +0 -40
- package/src/blocks/AuthForms/CodeConfirmation.js +0 -78
- package/src/blocks/AuthForms/SignInPhone.js +0 -38
- package/src/blocks/AuthForms/index.js +0 -7
- package/src/blocks/Misc/NotFound.js +0 -32
- package/src/blocks/Misc/index.js +0 -1
- package/src/blocks/Payment/ChargeWalletForm.js +0 -81
- package/src/blocks/Payment/Confirmation.js +0 -104
- package/src/blocks/Payment/Form/CForm.js +0 -316
- package/src/blocks/Payment/Form/Card.js +0 -242
- package/src/blocks/Payment/Form/PaymentMethod.js +0 -118
- package/src/blocks/Payment/Gateway/GooglePay.js +0 -251
- package/src/blocks/Payment/Gateway/Payfort.js +0 -90
- package/src/blocks/Payment/Gateway/Paypal.js +0 -138
- package/src/blocks/Payment/Gateway/Wallet.js +0 -148
- package/src/blocks/Payment/PayWithWallet.js +0 -20
- package/src/blocks/Pricing/PricingPlans.js +0 -88
- package/src/elements/DraggableCard.js +0 -24
- package/src/elements/HawaAlert.js +0 -41
- package/src/elements/HawaButton.js +0 -62
- package/src/elements/HawaCheckbox.js +0 -28
- package/src/elements/HawaChip.js +0 -9
- package/src/elements/HawaColorPicker.js +0 -57
- package/src/elements/HawaDrawer.js +0 -68
- package/src/elements/HawaMenu.js +0 -71
- package/src/elements/HawaPhoneInput.js +0 -106
- package/src/elements/HawaRadio.js +0 -31
- package/src/elements/HawaRange.js +0 -54
- package/src/elements/HawaSearchBar.js +0 -15
- package/src/elements/HawaSettingsRow.js +0 -34
- package/src/elements/HawaSnackbar.js +0 -44
- package/src/elements/HawaSwitch.js +0 -21
- package/src/elements/HawaTextField.js +0 -34
- package/src/elements/HawaTooltip.js +0 -19
- package/src/elements/HawaTypography.js +0 -5
- package/src/elements/PinInput.js +0 -141
- package/src/elements/SelectedField.js +0 -46
- package/src/index.js +0 -3
- package/src/layout/Box.js +0 -5
- package/src/layout/HawaAppLayout.js +0 -245
- package/src/layout/HawaAppLayout2.js +0 -254
- package/src/layout/HawaBottomAppBar.js +0 -76
- package/src/layout/HawaContainer.js +0 -8
- package/storybook-static/0.1104ca18.iframe.bundle.js +0 -3
- package/storybook-static/0.1104ca18.iframe.bundle.js.map +0 -1
- package/storybook-static/0.cf71f8aa82edef0a7186.manager.bundle.js +0 -2
- package/storybook-static/1.7e6ec5c45ae5b70c5149.manager.bundle.js +0 -1
- package/storybook-static/1.e3eafd38.iframe.bundle.js +0 -1
- package/storybook-static/2.3841b1a5.iframe.bundle.js +0 -1
- package/storybook-static/5.5b799f3fbf64cec8e51a.manager.bundle.js +0 -2
- package/storybook-static/6.6023eba1.iframe.bundle.js +0 -3
- package/storybook-static/6.6023eba1.iframe.bundle.js.map +0 -1
- package/storybook-static/6.b34ce31193a7fa1dd965.manager.bundle.js +0 -1
- package/storybook-static/7.632f8551.iframe.bundle.js +0 -1
- package/storybook-static/7.72879af713f755a7aa7e.manager.bundle.js +0 -1
- package/storybook-static/8.9a8f8b69.iframe.bundle.js +0 -1
- package/storybook-static/8.f9b98ef3e089be1a16d6.manager.bundle.js +0 -2
- package/storybook-static/9.1e1335092fade49cc986.manager.bundle.js +0 -1
- package/storybook-static/9.63a5cf7a.iframe.bundle.js +0 -3
- package/storybook-static/9.63a5cf7a.iframe.bundle.js.map +0 -1
- package/storybook-static/main.4bd27e4e7faa098302d1.manager.bundle.js +0 -1
- package/storybook-static/main.ea9904c2.iframe.bundle.js +0 -1
- package/storybook-static/runtime~main.67ec6e92.iframe.bundle.js +0 -1
- package/storybook-static/runtime~main.a58df7ba92d01c5088d3.manager.bundle.js +0 -1
- package/storybook-static/vendors~main.a40572d0.iframe.bundle.js +0 -3
- package/storybook-static/vendors~main.a40572d0.iframe.bundle.js.map +0 -1
- package/storybook-static/vendors~main.d13ba71108048897ea4a.manager.bundle.js +0 -2
|
@@ -1,13 +1,38 @@
|
|
|
1
|
-
import React from "react"
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { HawaContainer } from "../../layout";
|
|
1
|
+
import React from "react"
|
|
2
|
+
import { HawaTypography, HawaLogoButton } from "../../elements"
|
|
3
|
+
import { HawaContainer } from "../../layout"
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
type SelectPaymentTypes = {
|
|
6
|
+
viaMada: boolean
|
|
7
|
+
viaWallet: boolean
|
|
8
|
+
viaSTCPay: boolean
|
|
9
|
+
viaPayPal: boolean
|
|
10
|
+
viaApplePay: boolean
|
|
11
|
+
viaCreditCard: boolean
|
|
12
|
+
viaGooglePay: boolean
|
|
13
|
+
madaLabel: string
|
|
14
|
+
stcPayLabel: string
|
|
15
|
+
paypalLabel: string
|
|
16
|
+
walletLabel: string
|
|
17
|
+
applePayLabel: string
|
|
18
|
+
visaMasterLabel: string
|
|
19
|
+
googlePayLabel: string
|
|
20
|
+
handleMada: any
|
|
21
|
+
handleWallet: any
|
|
22
|
+
handleSTCPay: any
|
|
23
|
+
handlePayPal: any
|
|
24
|
+
handleApplePay: any
|
|
25
|
+
handleCreditCard: any
|
|
26
|
+
handleGooglePay: any
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const SelectPayment: React.FunctionComponent<SelectPaymentTypes> = (
|
|
30
|
+
props
|
|
31
|
+
) => {
|
|
7
32
|
return (
|
|
8
33
|
<HawaContainer>
|
|
9
34
|
{/* // <div className="flex flex-col w-1/3 bg-blue-300 rounded-xl p-4"> */}
|
|
10
|
-
<HawaTypography
|
|
35
|
+
<HawaTypography>Choose Payment Method</HawaTypography>
|
|
11
36
|
{props.viaWallet && (
|
|
12
37
|
<HawaLogoButton
|
|
13
38
|
logo="wallet"
|
|
@@ -58,26 +83,5 @@ export const SelectPayment = (props) => {
|
|
|
58
83
|
/>
|
|
59
84
|
)}
|
|
60
85
|
</HawaContainer>
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
SelectPayment.propTypes = {
|
|
65
|
-
viaMada: PropTypes.bool,
|
|
66
|
-
viaWallet: PropTypes.bool,
|
|
67
|
-
viaSTCPay: PropTypes.bool,
|
|
68
|
-
viaPayPal: PropTypes.bool,
|
|
69
|
-
viaApplePay: PropTypes.bool,
|
|
70
|
-
viaCreditCard: PropTypes.bool,
|
|
71
|
-
madaLabel: PropTypes.string,
|
|
72
|
-
stcPayLabel: PropTypes.string,
|
|
73
|
-
paypalLabel: PropTypes.string,
|
|
74
|
-
walletLabel: PropTypes.string,
|
|
75
|
-
applePayLabel: PropTypes.string,
|
|
76
|
-
visaMasterLabel: PropTypes.string,
|
|
77
|
-
handleMada: PropTypes.func,
|
|
78
|
-
handleWallet: PropTypes.func,
|
|
79
|
-
handleSTCPay: PropTypes.func,
|
|
80
|
-
handlePayPal: PropTypes.func,
|
|
81
|
-
handleApplePay: PropTypes.func,
|
|
82
|
-
handleCreditCard: PropTypes.func
|
|
83
|
-
};
|
|
86
|
+
)
|
|
87
|
+
}
|
|
File without changes
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import React, { useState } from "react"
|
|
2
|
-
import { HawaPricingCard, HawaPanelTabs, HawaTabs } from "../../elements"
|
|
3
|
-
import PropTypes from "prop-types";
|
|
1
|
+
import React, { useState } from "react"
|
|
2
|
+
import { HawaPricingCard, HawaPanelTabs, HawaTabs } from "../../elements"
|
|
4
3
|
|
|
5
4
|
const CheckMark = () => (
|
|
6
5
|
<svg
|
|
7
|
-
className="
|
|
6
|
+
className="h-5 w-5 text-green-500"
|
|
8
7
|
aria-hidden="true"
|
|
9
8
|
fill="currentColor"
|
|
10
9
|
viewBox="0 0 20 20"
|
|
@@ -16,11 +15,11 @@ const CheckMark = () => (
|
|
|
16
15
|
clip-rule="evenodd"
|
|
17
16
|
></path>
|
|
18
17
|
</svg>
|
|
19
|
-
)
|
|
18
|
+
)
|
|
20
19
|
|
|
21
20
|
const UncheckMark = () => (
|
|
22
21
|
<svg
|
|
23
|
-
className="
|
|
22
|
+
className="h-5 w-5 text-red-500"
|
|
24
23
|
aria-hidden="true"
|
|
25
24
|
fill="currentColor"
|
|
26
25
|
viewBox="0 0 20 20"
|
|
@@ -32,37 +31,58 @@ const UncheckMark = () => (
|
|
|
32
31
|
clip-rule="evenodd"
|
|
33
32
|
></path>
|
|
34
33
|
</svg>
|
|
35
|
-
)
|
|
34
|
+
)
|
|
36
35
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
type ComparingPlansTypes = {
|
|
37
|
+
plans: any
|
|
38
|
+
// plans: PropTypes.arrayOf(
|
|
39
|
+
// PropTypes.shape({
|
|
40
|
+
// title: PropTypes.string,
|
|
41
|
+
// title_ar: PropTypes.string,
|
|
42
|
+
// subtitle: PropTypes.string,
|
|
43
|
+
// subtitle_ar: PropTypes.string,
|
|
44
|
+
// price: PropTypes.number,
|
|
45
|
+
// currency: PropTypes.string,
|
|
46
|
+
// cycleText: PropTypes.string,
|
|
47
|
+
// buttonText: PropTypes.string,
|
|
48
|
+
// features: PropTypes.array,
|
|
49
|
+
// features_ar: PropTypes.array,
|
|
50
|
+
// selectedPlan: PropTypes.bool,
|
|
51
|
+
// })
|
|
52
|
+
// ),
|
|
53
|
+
lang: any
|
|
54
|
+
}
|
|
55
|
+
export const ComparingPlans: React.FunctionComponent<ComparingPlansTypes> = (
|
|
56
|
+
props
|
|
57
|
+
) => {
|
|
58
|
+
const [currentCurrency, setCurrentCurrency] = useState("sar")
|
|
59
|
+
const [currentCycle, setCurrentCycle] = useState("monthly")
|
|
40
60
|
let cycleOptions = [
|
|
41
61
|
{ label: `Monthly`, value: `monthly` },
|
|
42
62
|
{ label: `3 Months`, value: `3-months` },
|
|
43
63
|
{ label: `6 Months`, value: `6-months` },
|
|
44
|
-
{ label: `Annually`, value: `annually` }
|
|
45
|
-
]
|
|
64
|
+
{ label: `Annually`, value: `annually` },
|
|
65
|
+
]
|
|
46
66
|
let currencyOptions = [
|
|
47
67
|
{ label: `USD`, value: `usd` },
|
|
48
|
-
{ label: `SAR`, value: `sar` }
|
|
49
|
-
]
|
|
68
|
+
{ label: `SAR`, value: `sar` },
|
|
69
|
+
]
|
|
50
70
|
let activeTabStyle =
|
|
51
|
-
"inline-block py-3 px-4 text-white bg-blue-600 rounded-lg active"
|
|
71
|
+
"inline-block py-3 px-4 text-white bg-blue-600 rounded-lg active"
|
|
52
72
|
let inactiveTabStyle =
|
|
53
|
-
"inline-block py-3 px-4 rounded-lg hover:text-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-white"
|
|
73
|
+
"inline-block py-3 px-4 rounded-lg hover:text-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-white"
|
|
54
74
|
return (
|
|
55
|
-
<div id="detailed-pricing" className="overflow-x-auto
|
|
56
|
-
<div className="
|
|
57
|
-
<div className="grid grid-cols-4 gap-x-16
|
|
75
|
+
<div id="detailed-pricing" className="w-full overflow-x-auto">
|
|
76
|
+
<div className="min-w-max overflow-hidden">
|
|
77
|
+
<div className="grid grid-cols-4 gap-x-16 border-t border-b border-gray-200 bg-gray-100 p-4 text-sm font-medium text-gray-900 dark:border-gray-700 dark:bg-gray-800 dark:text-white">
|
|
58
78
|
<div className="flex items-center"></div>
|
|
59
|
-
{props.plans.map((plan) => (
|
|
79
|
+
{props.plans.map((plan: any) => (
|
|
60
80
|
<div>{plan.title}</div>
|
|
61
81
|
))}
|
|
62
82
|
</div>
|
|
63
|
-
{props.plans.map((
|
|
83
|
+
{props.plans.map(() => {
|
|
64
84
|
return (
|
|
65
|
-
<div className="grid grid-cols-4 gap-x-16 py-5 px-4 text-sm text-gray-700
|
|
85
|
+
<div className="grid grid-cols-4 gap-x-16 border-b border-gray-200 py-5 px-4 text-sm text-gray-700 dark:border-gray-700">
|
|
66
86
|
<div className="text-gray-500 dark:text-gray-400">
|
|
67
87
|
Basic components (
|
|
68
88
|
<a href="#" className="text-blue-600 hover:underline">
|
|
@@ -74,9 +94,9 @@ export const ComparingPlans = (props) => {
|
|
|
74
94
|
<CheckMark />
|
|
75
95
|
<CheckMark />
|
|
76
96
|
</div>
|
|
77
|
-
)
|
|
97
|
+
)
|
|
78
98
|
})}
|
|
79
|
-
<div className="grid grid-cols-4 gap-x-16 py-5 px-4 text-sm text-gray-700
|
|
99
|
+
<div className="grid grid-cols-4 gap-x-16 border-b border-gray-200 py-5 px-4 text-sm text-gray-700 dark:border-gray-700">
|
|
80
100
|
<div className="text-gray-500 dark:text-gray-400">
|
|
81
101
|
Application UI (
|
|
82
102
|
<a href="#" className="text-blue-600 hover:underline">
|
|
@@ -88,7 +108,7 @@ export const ComparingPlans = (props) => {
|
|
|
88
108
|
<CheckMark />
|
|
89
109
|
<UncheckMark />
|
|
90
110
|
</div>
|
|
91
|
-
<div className="grid grid-cols-4 gap-x-16 py-5 px-4 text-sm text-gray-700
|
|
111
|
+
<div className="grid grid-cols-4 gap-x-16 border-b border-gray-200 py-5 px-4 text-sm text-gray-700 dark:border-gray-700">
|
|
92
112
|
<div className="text-gray-500 dark:text-gray-400">
|
|
93
113
|
Marketing UI pre-order
|
|
94
114
|
</div>
|
|
@@ -96,12 +116,12 @@ export const ComparingPlans = (props) => {
|
|
|
96
116
|
<CheckMark />
|
|
97
117
|
<UncheckMark />
|
|
98
118
|
</div>
|
|
99
|
-
<div className="grid grid-cols-4 gap-x-16 py-5 px-4 text-sm text-gray-700
|
|
119
|
+
<div className="grid grid-cols-4 gap-x-16 border-b border-gray-200 py-5 px-4 text-sm text-gray-700 dark:border-gray-700">
|
|
100
120
|
<div className="text-gray-500 dark:text-gray-400"></div>
|
|
101
121
|
<div>
|
|
102
122
|
<a
|
|
103
123
|
href="#"
|
|
104
|
-
className="
|
|
124
|
+
className="block w-full rounded-lg bg-blue-600 px-4 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-700 focus:ring-4 focus:ring-blue-200 dark:focus:ring-blue-900"
|
|
105
125
|
>
|
|
106
126
|
Buy now
|
|
107
127
|
</a>
|
|
@@ -109,7 +129,7 @@ export const ComparingPlans = (props) => {
|
|
|
109
129
|
<div>
|
|
110
130
|
<a
|
|
111
131
|
href="#"
|
|
112
|
-
className="
|
|
132
|
+
className="block w-full rounded-lg bg-blue-600 px-4 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-700 focus:ring-4 focus:ring-blue-200 dark:focus:ring-blue-900"
|
|
113
133
|
>
|
|
114
134
|
Buy now
|
|
115
135
|
</a>
|
|
@@ -117,7 +137,7 @@ export const ComparingPlans = (props) => {
|
|
|
117
137
|
<div>
|
|
118
138
|
<a
|
|
119
139
|
href="#"
|
|
120
|
-
className="
|
|
140
|
+
className="block w-full rounded-lg bg-blue-600 px-4 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-700 focus:ring-4 focus:ring-blue-200 dark:focus:ring-blue-900"
|
|
121
141
|
>
|
|
122
142
|
Buy now
|
|
123
143
|
</a>
|
|
@@ -125,27 +145,5 @@ export const ComparingPlans = (props) => {
|
|
|
125
145
|
</div>
|
|
126
146
|
</div>
|
|
127
147
|
</div>
|
|
128
|
-
)
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
ComparingPlans.propTypes = {
|
|
132
|
-
/**
|
|
133
|
-
* An array of the pricing plans
|
|
134
|
-
*/
|
|
135
|
-
plans: PropTypes.arrayOf(
|
|
136
|
-
PropTypes.shape({
|
|
137
|
-
title: PropTypes.string,
|
|
138
|
-
title_ar: PropTypes.string,
|
|
139
|
-
subtitle: PropTypes.string,
|
|
140
|
-
subtitle_ar: PropTypes.string,
|
|
141
|
-
price: PropTypes.number,
|
|
142
|
-
currency: PropTypes.string,
|
|
143
|
-
cycleText: PropTypes.string,
|
|
144
|
-
buttonText: PropTypes.string,
|
|
145
|
-
features: PropTypes.array,
|
|
146
|
-
features_ar: PropTypes.array,
|
|
147
|
-
selectedPlan: PropTypes.bool
|
|
148
|
-
})
|
|
149
|
-
),
|
|
150
|
-
lang: PropTypes.string
|
|
151
|
-
};
|
|
148
|
+
)
|
|
149
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React, { useState } from "react"
|
|
2
|
+
import { HawaPricingCard, HawaTabs } from "../../elements"
|
|
3
|
+
|
|
4
|
+
type PricingPlansTypes = {
|
|
5
|
+
plans: any
|
|
6
|
+
// plans: PropTypes.arrayOf(
|
|
7
|
+
// PropTypes.shape({
|
|
8
|
+
// title: PropTypes.string,
|
|
9
|
+
// title_ar: PropTypes.string,
|
|
10
|
+
// subtitle: PropTypes.string,
|
|
11
|
+
// subtitle_ar: PropTypes.string,
|
|
12
|
+
// price: PropTypes.number,
|
|
13
|
+
// currency: PropTypes.string,
|
|
14
|
+
// cycleText: PropTypes.string,
|
|
15
|
+
// buttonText: PropTypes.string,
|
|
16
|
+
// features: PropTypes.array,
|
|
17
|
+
// features_ar: PropTypes.array,
|
|
18
|
+
// selectedPlan: PropTypes.bool,
|
|
19
|
+
// })
|
|
20
|
+
// ),
|
|
21
|
+
lang: any
|
|
22
|
+
}
|
|
23
|
+
export const PricingPlans: React.FunctionComponent<PricingPlansTypes> = (
|
|
24
|
+
props
|
|
25
|
+
) => {
|
|
26
|
+
const [currentCurrency, setCurrentCurrency] = useState("sar")
|
|
27
|
+
const [currentCycle, setCurrentCycle] = useState("monthly")
|
|
28
|
+
let cycleOptions = [
|
|
29
|
+
{ label: `Monthly`, value: `monthly` },
|
|
30
|
+
{ label: `3 Months`, value: `3-months` },
|
|
31
|
+
{ label: `6 Months`, value: `6-months` },
|
|
32
|
+
{ label: `Annually`, value: `annually` },
|
|
33
|
+
]
|
|
34
|
+
let currencyOptions = [
|
|
35
|
+
{ label: `USD`, value: `usd` },
|
|
36
|
+
{ label: `SAR`, value: `sar` },
|
|
37
|
+
]
|
|
38
|
+
let activeTabStyle =
|
|
39
|
+
"inline-block py-3 px-4 text-white bg-blue-600 rounded-lg active"
|
|
40
|
+
let inactiveTabStyle =
|
|
41
|
+
"inline-block py-3 px-4 rounded-lg hover:text-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-white"
|
|
42
|
+
return (
|
|
43
|
+
<div>
|
|
44
|
+
<div className="mb-2 flex w-full justify-between">
|
|
45
|
+
<HawaTabs
|
|
46
|
+
defaultValue={currentCycle}
|
|
47
|
+
options={cycleOptions}
|
|
48
|
+
onChangeTab={(e: any) => setCurrentCycle(e)}
|
|
49
|
+
/>
|
|
50
|
+
<HawaTabs
|
|
51
|
+
defaultValue={currentCurrency}
|
|
52
|
+
options={currencyOptions}
|
|
53
|
+
onChangeTab={(e: any) => setCurrentCurrency(e)}
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<div className="flex flex-row justify-between">
|
|
58
|
+
{props.plans.map((plan: any) => {
|
|
59
|
+
return (
|
|
60
|
+
<HawaPricingCard
|
|
61
|
+
size="large"
|
|
62
|
+
lang={props.lang}
|
|
63
|
+
{...plan}
|
|
64
|
+
currency={currentCurrency}
|
|
65
|
+
cycleText={currentCycle}
|
|
66
|
+
/>
|
|
67
|
+
)
|
|
68
|
+
})}
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
)
|
|
72
|
+
}
|
|
File without changes
|
|
File without changes
|