@sikka/hawa 0.1.1 → 0.1.2-next
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/README.md +21 -43
- package/dist/index.css +1385 -0
- package/dist/index.d.mts +15 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +246 -0
- package/dist/index.mjs +157 -0
- package/package.json +48 -115
- package/.github/workflows/hawa-actions.yml +0 -112
- package/.github/workflows/hawa-publish-push.yml +0 -74
- package/.github/workflows/hawa-publish.yml +0 -48
- package/.prettierrc +0 -28
- package/_config.yml +0 -1
- package/dist/styles.css +0 -3511
- package/es/blocks/Account/HawaApiBox.d.ts +0 -8
- package/es/blocks/Account/UserProfileForm.d.ts +0 -8
- package/es/blocks/Account/UserSettingsForm.d.ts +0 -9
- package/es/blocks/Account/index.d.ts +0 -2
- package/es/blocks/AuthForms/AppLanding.d.ts +0 -14
- package/es/blocks/AuthForms/CodeConfirmation.d.ts +0 -22
- package/es/blocks/AuthForms/NewPasswordForm.d.ts +0 -18
- package/es/blocks/AuthForms/ResetPasswordForm.d.ts +0 -18
- package/es/blocks/AuthForms/SignInBlock.d.ts +0 -2
- package/es/blocks/AuthForms/SignInForm.d.ts +0 -51
- package/es/blocks/AuthForms/SignInPhone.d.ts +0 -13
- package/es/blocks/AuthForms/SignUpForm.d.ts +0 -55
- package/es/blocks/AuthForms/index.d.ts +0 -8
- package/es/blocks/Misc/EmptyState.d.ts +0 -11
- package/es/blocks/Misc/LeadGenerator.d.ts +0 -12
- package/es/blocks/Misc/Newsletter.d.ts +0 -12
- package/es/blocks/Misc/NoPermission.d.ts +0 -10
- package/es/blocks/Misc/NotFound.d.ts +0 -11
- package/es/blocks/Misc/Testimonial.d.ts +0 -6
- package/es/blocks/Misc/index.d.ts +0 -6
- package/es/blocks/Payment/ChargeWalletForm.d.ts +0 -12
- package/es/blocks/Payment/CheckoutForm.d.ts +0 -27
- package/es/blocks/Payment/Confirmation.d.ts +0 -38
- package/es/blocks/Payment/CreditCardForm.d.ts +0 -7
- package/es/blocks/Payment/PayWithWallet.d.ts +0 -8
- package/es/blocks/Payment/SelectPayment.d.ts +0 -26
- package/es/blocks/Payment/index.d.ts +0 -6
- package/es/blocks/Pricing/ComparingPlans.d.ts +0 -39
- package/es/blocks/Pricing/HorizontalPricing.d.ts +0 -47
- package/es/blocks/Pricing/PricingPlans.d.ts +0 -47
- package/es/blocks/Pricing/index.d.ts +0 -3
- package/es/blocks/Referral/ReferralAccount.d.ts +0 -7
- package/es/blocks/Referral/ReferralSettlement.d.ts +0 -8
- package/es/blocks/Referral/ReferralStats.d.ts +0 -8
- package/es/blocks/Referral/index.d.ts +0 -3
- package/es/blocks/index.d.ts +0 -6
- package/es/countries.d.ts +0 -2
- package/es/elements/ArrowCarousel.d.ts +0 -13
- package/es/elements/AutoCompleteField.d.ts +0 -8
- package/es/elements/BackToTop.d.ts +0 -10
- package/es/elements/Breadcrumb.d.ts +0 -12
- package/es/elements/Button.d.ts +0 -12
- package/es/elements/Card.d.ts +0 -10
- package/es/elements/DragDropImages.d.ts +0 -28
- package/es/elements/DraggableCard.d.ts +0 -6
- package/es/elements/FloatingComment.d.ts +0 -32
- package/es/elements/FloatingCommentExec.d.ts +0 -4
- package/es/elements/FloatingCommentSlate.d.ts +0 -19
- package/es/elements/HawaAccordion.d.ts +0 -11
- package/es/elements/HawaAdCard.d.ts +0 -10
- package/es/elements/HawaAlert.d.ts +0 -23
- package/es/elements/HawaButton.d.ts +0 -21
- package/es/elements/HawaCardInput.d.ts +0 -25
- package/es/elements/HawaCheckbox.d.ts +0 -11
- package/es/elements/HawaChip.d.ts +0 -17
- package/es/elements/HawaCodeBlock.d.ts +0 -15
- package/es/elements/HawaColorPicker.d.ts +0 -9
- package/es/elements/HawaCopyrights.d.ts +0 -15
- package/es/elements/HawaDatepicker.d.ts +0 -4
- package/es/elements/HawaDropdownMenu.d.ts +0 -7
- package/es/elements/HawaIconCount.d.ts +0 -9
- package/es/elements/HawaInlineCode.d.ts +0 -6
- package/es/elements/HawaItemCard.d.ts +0 -32
- package/es/elements/HawaLandingCard.d.ts +0 -18
- package/es/elements/HawaLoading.d.ts +0 -8
- package/es/elements/HawaLogoButton.d.ts +0 -10
- package/es/elements/HawaMenu.d.ts +0 -24
- package/es/elements/HawaModal.d.ts +0 -21
- package/es/elements/HawaPanelTabs.d.ts +0 -13
- package/es/elements/HawaPhoneInput.d.ts +0 -11
- package/es/elements/HawaPinInput.d.ts +0 -10
- package/es/elements/HawaPricingCard.d.ts +0 -21
- package/es/elements/HawaRadio.d.ts +0 -16
- package/es/elements/HawaRange.d.ts +0 -12
- package/es/elements/HawaSearchBar.d.ts +0 -4
- package/es/elements/HawaSelect.d.ts +0 -23
- package/es/elements/HawaSettingsRow.d.ts +0 -44
- package/es/elements/HawaSnackbar.d.ts +0 -19
- package/es/elements/HawaStats.d.ts +0 -14
- package/es/elements/HawaStepper.d.ts +0 -8
- package/es/elements/HawaStoreButtons.d.ts +0 -7
- package/es/elements/HawaSwitch.d.ts +0 -7
- package/es/elements/HawaTable.d.ts +0 -45
- package/es/elements/HawaTabs.d.ts +0 -13
- package/es/elements/HawaTextField.d.ts +0 -31
- package/es/elements/HawaTooltip.d.ts +0 -12
- package/es/elements/HawaTypography.d.ts +0 -7
- package/es/elements/Icons.d.ts +0 -19
- package/es/elements/Input.d.ts +0 -5
- package/es/elements/InvoiceAccordion.d.ts +0 -31
- package/es/elements/Label.d.ts +0 -5
- package/es/elements/SubsectionList.d.ts +0 -19
- package/es/elements/TabPanel.d.ts +0 -8
- package/es/elements/Timeline.d.ts +0 -13
- package/es/elements/UsageCard.d.ts +0 -9
- package/es/elements/UserFeedback.d.ts +0 -14
- package/es/elements/index.d.ts +0 -52
- package/es/hooks/index.d.ts +0 -2
- package/es/hooks/useBreakpoint.d.ts +0 -2
- package/es/hooks/useDiscloser.d.ts +0 -7
- package/es/hooks/useHover.d.ts +0 -3
- package/es/hooks/useScrollPosition.d.ts +0 -2
- package/es/hooks/useTable.d.ts +0 -5
- package/es/index.d.ts +0 -4
- package/es/index.es.js +0 -16
- package/es/layout/AppSidebar.d.ts +0 -11
- package/es/layout/Banner.d.ts +0 -14
- package/es/layout/Box.d.ts +0 -2
- package/es/layout/Footer.d.ts +0 -20
- package/es/layout/HawaAppLayout.d.ts +0 -31
- package/es/layout/HawaAppLayoutSimplified.d.ts +0 -33
- package/es/layout/HawaBottomAppBar.d.ts +0 -8
- package/es/layout/HawaContainer.d.ts +0 -10
- package/es/layout/HawaGrid.d.ts +0 -6
- package/es/layout/HawaSiteLayout.d.ts +0 -23
- package/es/layout/index.d.ts +0 -10
- package/es/stories/ElementsStories/Breadcrumb.stories.d.ts +0 -6
- package/es/stories/ManualStories/BlocksIntroduction.stories.d.ts +0 -21
- package/es/stories/ManualStories/Customization.stories.d.ts +0 -21
- package/es/stories/ManualStories/ElementsIntroduction.stories.d.ts +0 -21
- package/es/stories/ManualStories/Installation.stories.d.ts +0 -21
- package/es/stories/ManualStories/LayoutIntroduction.stories.d.ts +0 -21
- package/es/stories/ManualStories/Overview.stories.d.ts +0 -22
- package/es/stories/ManualStories/Usage.stories.d.ts +0 -21
- package/es/util.d.ts +0 -10
- package/lib/blocks/Account/HawaApiBox.d.ts +0 -8
- package/lib/blocks/Account/UserProfileForm.d.ts +0 -8
- package/lib/blocks/Account/UserSettingsForm.d.ts +0 -9
- package/lib/blocks/Account/index.d.ts +0 -2
- package/lib/blocks/AuthForms/AppLanding.d.ts +0 -14
- package/lib/blocks/AuthForms/CodeConfirmation.d.ts +0 -22
- package/lib/blocks/AuthForms/NewPasswordForm.d.ts +0 -18
- package/lib/blocks/AuthForms/ResetPasswordForm.d.ts +0 -18
- package/lib/blocks/AuthForms/SignInBlock.d.ts +0 -2
- package/lib/blocks/AuthForms/SignInForm.d.ts +0 -51
- package/lib/blocks/AuthForms/SignInPhone.d.ts +0 -13
- package/lib/blocks/AuthForms/SignUpForm.d.ts +0 -55
- package/lib/blocks/AuthForms/index.d.ts +0 -8
- package/lib/blocks/Misc/EmptyState.d.ts +0 -11
- package/lib/blocks/Misc/LeadGenerator.d.ts +0 -12
- package/lib/blocks/Misc/Newsletter.d.ts +0 -12
- package/lib/blocks/Misc/NoPermission.d.ts +0 -10
- package/lib/blocks/Misc/NotFound.d.ts +0 -11
- package/lib/blocks/Misc/Testimonial.d.ts +0 -6
- package/lib/blocks/Misc/index.d.ts +0 -6
- package/lib/blocks/Payment/ChargeWalletForm.d.ts +0 -12
- package/lib/blocks/Payment/CheckoutForm.d.ts +0 -27
- package/lib/blocks/Payment/Confirmation.d.ts +0 -38
- package/lib/blocks/Payment/CreditCardForm.d.ts +0 -7
- package/lib/blocks/Payment/PayWithWallet.d.ts +0 -8
- package/lib/blocks/Payment/SelectPayment.d.ts +0 -26
- package/lib/blocks/Payment/index.d.ts +0 -6
- package/lib/blocks/Pricing/ComparingPlans.d.ts +0 -39
- package/lib/blocks/Pricing/HorizontalPricing.d.ts +0 -47
- package/lib/blocks/Pricing/PricingPlans.d.ts +0 -47
- package/lib/blocks/Pricing/index.d.ts +0 -3
- package/lib/blocks/Referral/ReferralAccount.d.ts +0 -7
- package/lib/blocks/Referral/ReferralSettlement.d.ts +0 -8
- package/lib/blocks/Referral/ReferralStats.d.ts +0 -8
- package/lib/blocks/Referral/index.d.ts +0 -3
- package/lib/blocks/index.d.ts +0 -6
- package/lib/countries.d.ts +0 -2
- package/lib/elements/ArrowCarousel.d.ts +0 -13
- package/lib/elements/AutoCompleteField.d.ts +0 -8
- package/lib/elements/BackToTop.d.ts +0 -10
- package/lib/elements/Breadcrumb.d.ts +0 -12
- package/lib/elements/Button.d.ts +0 -12
- package/lib/elements/Card.d.ts +0 -10
- package/lib/elements/DragDropImages.d.ts +0 -28
- package/lib/elements/DraggableCard.d.ts +0 -6
- package/lib/elements/FloatingComment.d.ts +0 -32
- package/lib/elements/FloatingCommentExec.d.ts +0 -4
- package/lib/elements/FloatingCommentSlate.d.ts +0 -19
- package/lib/elements/HawaAccordion.d.ts +0 -11
- package/lib/elements/HawaAdCard.d.ts +0 -10
- package/lib/elements/HawaAlert.d.ts +0 -23
- package/lib/elements/HawaButton.d.ts +0 -21
- package/lib/elements/HawaCardInput.d.ts +0 -25
- package/lib/elements/HawaCheckbox.d.ts +0 -11
- package/lib/elements/HawaChip.d.ts +0 -17
- package/lib/elements/HawaCodeBlock.d.ts +0 -15
- package/lib/elements/HawaColorPicker.d.ts +0 -9
- package/lib/elements/HawaCopyrights.d.ts +0 -15
- package/lib/elements/HawaDatepicker.d.ts +0 -4
- package/lib/elements/HawaDropdownMenu.d.ts +0 -7
- package/lib/elements/HawaIconCount.d.ts +0 -9
- package/lib/elements/HawaInlineCode.d.ts +0 -6
- package/lib/elements/HawaItemCard.d.ts +0 -32
- package/lib/elements/HawaLandingCard.d.ts +0 -18
- package/lib/elements/HawaLoading.d.ts +0 -8
- package/lib/elements/HawaLogoButton.d.ts +0 -10
- package/lib/elements/HawaMenu.d.ts +0 -24
- package/lib/elements/HawaModal.d.ts +0 -21
- package/lib/elements/HawaPanelTabs.d.ts +0 -13
- package/lib/elements/HawaPhoneInput.d.ts +0 -11
- package/lib/elements/HawaPinInput.d.ts +0 -10
- package/lib/elements/HawaPricingCard.d.ts +0 -21
- package/lib/elements/HawaRadio.d.ts +0 -16
- package/lib/elements/HawaRange.d.ts +0 -12
- package/lib/elements/HawaSearchBar.d.ts +0 -4
- package/lib/elements/HawaSelect.d.ts +0 -23
- package/lib/elements/HawaSettingsRow.d.ts +0 -44
- package/lib/elements/HawaSnackbar.d.ts +0 -19
- package/lib/elements/HawaStats.d.ts +0 -14
- package/lib/elements/HawaStepper.d.ts +0 -8
- package/lib/elements/HawaStoreButtons.d.ts +0 -7
- package/lib/elements/HawaSwitch.d.ts +0 -7
- package/lib/elements/HawaTable.d.ts +0 -45
- package/lib/elements/HawaTabs.d.ts +0 -13
- package/lib/elements/HawaTextField.d.ts +0 -31
- package/lib/elements/HawaTooltip.d.ts +0 -12
- package/lib/elements/HawaTypography.d.ts +0 -7
- package/lib/elements/Icons.d.ts +0 -19
- package/lib/elements/Input.d.ts +0 -5
- package/lib/elements/InvoiceAccordion.d.ts +0 -31
- package/lib/elements/Label.d.ts +0 -5
- package/lib/elements/SubsectionList.d.ts +0 -19
- package/lib/elements/TabPanel.d.ts +0 -8
- package/lib/elements/Timeline.d.ts +0 -13
- package/lib/elements/UsageCard.d.ts +0 -9
- package/lib/elements/UserFeedback.d.ts +0 -14
- package/lib/elements/index.d.ts +0 -52
- package/lib/hooks/index.d.ts +0 -2
- package/lib/hooks/useBreakpoint.d.ts +0 -2
- package/lib/hooks/useDiscloser.d.ts +0 -7
- package/lib/hooks/useHover.d.ts +0 -3
- package/lib/hooks/useScrollPosition.d.ts +0 -2
- package/lib/hooks/useTable.d.ts +0 -5
- package/lib/index.d.ts +0 -4
- package/lib/index.js +0 -16
- package/lib/layout/AppSidebar.d.ts +0 -11
- package/lib/layout/Banner.d.ts +0 -14
- package/lib/layout/Box.d.ts +0 -2
- package/lib/layout/Footer.d.ts +0 -20
- package/lib/layout/HawaAppLayout.d.ts +0 -31
- package/lib/layout/HawaAppLayoutSimplified.d.ts +0 -33
- package/lib/layout/HawaBottomAppBar.d.ts +0 -8
- package/lib/layout/HawaContainer.d.ts +0 -10
- package/lib/layout/HawaGrid.d.ts +0 -6
- package/lib/layout/HawaSiteLayout.d.ts +0 -23
- package/lib/layout/index.d.ts +0 -10
- package/lib/stories/ElementsStories/Breadcrumb.stories.d.ts +0 -6
- package/lib/stories/ManualStories/BlocksIntroduction.stories.d.ts +0 -21
- package/lib/stories/ManualStories/Customization.stories.d.ts +0 -21
- package/lib/stories/ManualStories/ElementsIntroduction.stories.d.ts +0 -21
- package/lib/stories/ManualStories/Installation.stories.d.ts +0 -21
- package/lib/stories/ManualStories/LayoutIntroduction.stories.d.ts +0 -21
- package/lib/stories/ManualStories/Overview.stories.d.ts +0 -22
- package/lib/stories/ManualStories/Usage.stories.d.ts +0 -21
- package/lib/util.d.ts +0 -10
- package/postcss.config.js +0 -6
- package/rollup.config.js +0 -61
- package/src/blocks/Account/HawaApiBox.tsx +0 -12
- package/src/blocks/Account/UserProfileForm.tsx +0 -113
- package/src/blocks/Account/UserSettingsForm.tsx +0 -27
- package/src/blocks/Account/index.ts +0 -2
- package/src/blocks/AuthForms/AppLanding.tsx +0 -34
- package/src/blocks/AuthForms/CodeConfirmation.tsx +0 -71
- package/src/blocks/AuthForms/NewPasswordForm.tsx +0 -101
- package/src/blocks/AuthForms/ResetPasswordForm.tsx +0 -89
- package/src/blocks/AuthForms/SignInBlock.tsx +0 -60
- package/src/blocks/AuthForms/SignInForm.tsx +0 -230
- package/src/blocks/AuthForms/SignInPhone.tsx +0 -56
- package/src/blocks/AuthForms/SignUpForm.tsx +0 -342
- package/src/blocks/AuthForms/index.ts +0 -8
- package/src/blocks/Misc/EmptyState.tsx +0 -43
- package/src/blocks/Misc/LeadGenerator.tsx +0 -44
- package/src/blocks/Misc/Newsletter.tsx +0 -50
- package/src/blocks/Misc/NoPermission.tsx +0 -40
- package/src/blocks/Misc/NotFound.tsx +0 -34
- package/src/blocks/Misc/Testimonial.tsx +0 -44
- package/src/blocks/Misc/index.ts +0 -6
- package/src/blocks/Payment/ChargeWalletForm.tsx +0 -82
- package/src/blocks/Payment/CheckoutForm.tsx +0 -260
- package/src/blocks/Payment/Confirmation.tsx +0 -94
- package/src/blocks/Payment/CreditCardForm.tsx +0 -109
- package/src/blocks/Payment/PayWithWallet.tsx +0 -26
- package/src/blocks/Payment/SelectPayment.tsx +0 -84
- package/src/blocks/Payment/index.ts +0 -6
- package/src/blocks/Pricing/ComparingPlans.tsx +0 -154
- package/src/blocks/Pricing/HorizontalPricing.tsx +0 -148
- package/src/blocks/Pricing/PricingPlans.tsx +0 -81
- package/src/blocks/Pricing/index.ts +0 -3
- package/src/blocks/Referral/ReferralAccount.tsx +0 -65
- package/src/blocks/Referral/ReferralSettlement.tsx +0 -170
- package/src/blocks/Referral/ReferralStats.tsx +0 -85
- package/src/blocks/Referral/index.ts +0 -3
- package/src/blocks/index.ts +0 -6
- package/src/countries.ts +0 -1940
- package/src/elements/ArrowCarousel.tsx +0 -94
- package/src/elements/AutoCompleteField.tsx +0 -37
- package/src/elements/BackToTop.tsx +0 -129
- package/src/elements/Breadcrumb.tsx +0 -41
- package/src/elements/Button.tsx +0 -77
- package/src/elements/Card.tsx +0 -87
- package/src/elements/DragDropImages.tsx +0 -251
- package/src/elements/DraggableCard.tsx +0 -27
- package/src/elements/FloatingComment.tsx +0 -1107
- package/src/elements/FloatingCommentExec.tsx +0 -106
- package/src/elements/FloatingCommentSlate.tsx +0 -149
- package/src/elements/HawaAccordion.tsx +0 -57
- package/src/elements/HawaAdCard.tsx +0 -49
- package/src/elements/HawaAlert.tsx +0 -195
- package/src/elements/HawaButton.tsx +0 -241
- package/src/elements/HawaCardInput.tsx +0 -318
- package/src/elements/HawaCheckbox.tsx +0 -54
- package/src/elements/HawaChip.tsx +0 -59
- package/src/elements/HawaCodeBlock.tsx +0 -156
- package/src/elements/HawaColorPicker.tsx +0 -40
- package/src/elements/HawaCopyrights.tsx +0 -30
- package/src/elements/HawaDatepicker.tsx +0 -23
- package/src/elements/HawaDropdownMenu.tsx +0 -267
- package/src/elements/HawaIconCount.tsx +0 -17
- package/src/elements/HawaInlineCode.tsx +0 -9
- package/src/elements/HawaItemCard.tsx +0 -157
- package/src/elements/HawaLandingCard.tsx +0 -68
- package/src/elements/HawaLoading.tsx +0 -83
- package/src/elements/HawaLogoButton.tsx +0 -154
- package/src/elements/HawaMenu.tsx +0 -226
- package/src/elements/HawaModal.tsx +0 -89
- package/src/elements/HawaPanelTabs.tsx +0 -57
- package/src/elements/HawaPhoneInput.tsx +0 -171
- package/src/elements/HawaPinInput.tsx +0 -78
- package/src/elements/HawaPricingCard.tsx +0 -107
- package/src/elements/HawaRadio.tsx +0 -180
- package/src/elements/HawaRange.tsx +0 -49
- package/src/elements/HawaSearchBar.tsx +0 -7
- package/src/elements/HawaSelect.tsx +0 -209
- package/src/elements/HawaSettingsRow.tsx +0 -74
- package/src/elements/HawaSnackbar.tsx +0 -137
- package/src/elements/HawaStats.tsx +0 -72
- package/src/elements/HawaStepper.tsx +0 -109
- package/src/elements/HawaStoreButtons.tsx +0 -129
- package/src/elements/HawaSwitch.tsx +0 -41
- package/src/elements/HawaTable.tsx +0 -587
- package/src/elements/HawaTabs.tsx +0 -143
- package/src/elements/HawaTextField.tsx +0 -148
- package/src/elements/HawaTooltip.tsx +0 -137
- package/src/elements/HawaTypography.tsx +0 -9
- package/src/elements/Icons.tsx +0 -145
- package/src/elements/Input.tsx +0 -25
- package/src/elements/InvoiceAccordion.tsx +0 -155
- package/src/elements/Label.tsx +0 -26
- package/src/elements/SubsectionList.tsx +0 -77
- package/src/elements/TabPanel.tsx +0 -25
- package/src/elements/Timeline.tsx +0 -35
- package/src/elements/UsageCard.tsx +0 -45
- package/src/elements/UserFeedback.tsx +0 -126
- package/src/elements/index.ts +0 -55
- package/src/hooks/index.ts +0 -2
- package/src/hooks/useBreakpoint.ts +0 -24
- package/src/hooks/useDiscloser.ts +0 -21
- package/src/hooks/useHover.ts +0 -25
- package/src/hooks/useScrollPosition.ts +0 -30
- package/src/hooks/useTable.ts +0 -159
- package/src/index.ts +0 -4
- package/src/layout/AppSidebar.tsx +0 -39
- package/src/layout/Banner.tsx +0 -122
- package/src/layout/Box.tsx +0 -5
- package/src/layout/Footer.tsx +0 -71
- package/src/layout/HawaAppLayout.tsx +0 -527
- package/src/layout/HawaAppLayoutSimplified.tsx +0 -568
- package/src/layout/HawaBottomAppBar.tsx +0 -55
- package/src/layout/HawaContainer.tsx +0 -43
- package/src/layout/HawaGrid.tsx +0 -15
- package/src/layout/HawaSiteLayout.tsx +0 -159
- package/src/layout/index.ts +0 -10
- package/src/styles.css +0 -3511
- package/src/tailwind.css +0 -179
- package/src/translations/ar.json +0 -30
- package/src/translations/en.json +0 -29
- package/src/translations/i18n.js +0 -15
- package/src/util.ts +0 -149
- package/tailwind.config.js +0 -227
- package/tools/build-styles.js +0 -17
- package/tsconfig.json +0 -31
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import React, { ReactElement, useEffect, FC } from "react"
|
|
2
|
-
import clsx from "clsx"
|
|
3
|
-
|
|
4
|
-
type ModalTypes = {
|
|
5
|
-
/** * The boolean to open and close the modal */
|
|
6
|
-
open: boolean
|
|
7
|
-
/** * The title of the modal, it will appear in the header of the modal */
|
|
8
|
-
title: string
|
|
9
|
-
/**
|
|
10
|
-
* a function that's triggered when the modal is closed either by the clicking the close button or outside the modal.
|
|
11
|
-
* @returns void
|
|
12
|
-
*/
|
|
13
|
-
onClose: () => void
|
|
14
|
-
/** * Boolean to enable/disable closing the modal upon clicking outside the modal */
|
|
15
|
-
closeOnClickOutside?: boolean
|
|
16
|
-
/** * The id of the modal */
|
|
17
|
-
modalID?: string
|
|
18
|
-
children: ReactElement
|
|
19
|
-
/** * The array of actions for the modal, it will appear in the footer of the modal */
|
|
20
|
-
actions: any
|
|
21
|
-
}
|
|
22
|
-
export const HawaModal: FC<ModalTypes> = ({
|
|
23
|
-
open,
|
|
24
|
-
title,
|
|
25
|
-
onClose,
|
|
26
|
-
closeOnClickOutside = true,
|
|
27
|
-
...props
|
|
28
|
-
}) => {
|
|
29
|
-
let defaultStyle =
|
|
30
|
-
"absolute top-1/2 left-1/2 w-full h-screen flex flex-col justify-center items-center -translate-x-1/2 -translate-y-1/2 transition-all"
|
|
31
|
-
useEffect((): any => {
|
|
32
|
-
if (closeOnClickOutside && open) {
|
|
33
|
-
window.onclick = (e) => {
|
|
34
|
-
e.stopPropagation()
|
|
35
|
-
onClose()
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return () => (window.onclick = null)
|
|
39
|
-
}, [open])
|
|
40
|
-
return (
|
|
41
|
-
<div
|
|
42
|
-
className={clsx(
|
|
43
|
-
defaultStyle,
|
|
44
|
-
open ? "z-10 opacity-100 " : "invisible -z-10 opacity-0"
|
|
45
|
-
)}
|
|
46
|
-
>
|
|
47
|
-
<div
|
|
48
|
-
className={clsx(
|
|
49
|
-
"absolute h-screen w-full bg-gray-500 opacity-50",
|
|
50
|
-
open ? "opacity-50" : "opacity-0"
|
|
51
|
-
)}
|
|
52
|
-
></div>
|
|
53
|
-
|
|
54
|
-
<div className="relative w-1/2 max-w-md rounded bg-white p-1 shadow-lg dark:bg-gray-700">
|
|
55
|
-
<div className="flex items-start justify-between rounded-t p-3 dark:border-gray-600">
|
|
56
|
-
<h3 className="text-xl font-semibold text-gray-900 dark:text-white">
|
|
57
|
-
{title}
|
|
58
|
-
</h3>
|
|
59
|
-
<button
|
|
60
|
-
type="button"
|
|
61
|
-
className="inline-flex items-center rounded bg-transparent p-1.5 text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
62
|
-
data-modal-toggle="defaultModal"
|
|
63
|
-
onClick={(e) => {
|
|
64
|
-
onClose()
|
|
65
|
-
}}
|
|
66
|
-
>
|
|
67
|
-
<svg
|
|
68
|
-
aria-hidden="true"
|
|
69
|
-
className="h-5 w-5"
|
|
70
|
-
fill="currentColor"
|
|
71
|
-
viewBox="0 0 20 20"
|
|
72
|
-
>
|
|
73
|
-
<path
|
|
74
|
-
fillRule="evenodd"
|
|
75
|
-
d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
|
|
76
|
-
clipRule="evenodd"
|
|
77
|
-
></path>
|
|
78
|
-
</svg>
|
|
79
|
-
<span className="sr-only">Close modal</span>
|
|
80
|
-
</button>
|
|
81
|
-
</div>
|
|
82
|
-
<div className="space-y-6 p-3">{props.children}</div>
|
|
83
|
-
<div className="mx-2 flex items-center justify-end space-x-1 p-0 dark:border-gray-600">
|
|
84
|
-
{props.actions}
|
|
85
|
-
</div>
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
)
|
|
89
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import React, { useState, FC } from "react"
|
|
2
|
-
|
|
3
|
-
type PanelTabsTypes = {
|
|
4
|
-
defaultValue: any
|
|
5
|
-
options: [{ label: string; value: string }]
|
|
6
|
-
lang: any
|
|
7
|
-
handleChange: any
|
|
8
|
-
location: any
|
|
9
|
-
}
|
|
10
|
-
export const HawaPanelTabs: FC<PanelTabsTypes> = (props) => {
|
|
11
|
-
const [value, setValue] = useState(props.defaultValue)
|
|
12
|
-
return (
|
|
13
|
-
<div>
|
|
14
|
-
<div className="mb-4 border-b border-gray-200 dark:border-gray-700">
|
|
15
|
-
<ul
|
|
16
|
-
className="-mb-px flex flex-wrap text-center text-sm font-medium"
|
|
17
|
-
id="myTab"
|
|
18
|
-
data-tabs-toggle="#myTabContent"
|
|
19
|
-
role="tablist"
|
|
20
|
-
>
|
|
21
|
-
{props.options.map((option: any, o) => {
|
|
22
|
-
return (
|
|
23
|
-
<li key={o} className="mr-2" role="presentation">
|
|
24
|
-
<button
|
|
25
|
-
className="inline-block rounded-t-lg border-b-2 border-blue-600 p-4 text-blue-600 hover:text-blue-600 dark:border-blue-500 dark:text-blue-500 dark:hover:text-blue-500"
|
|
26
|
-
id={`${option.value}-tab`}
|
|
27
|
-
data-tabs-target={`#${option.value}`}
|
|
28
|
-
type="button"
|
|
29
|
-
role="tab"
|
|
30
|
-
aria-controls={option.value}
|
|
31
|
-
aria-selected="true"
|
|
32
|
-
>
|
|
33
|
-
{option.label}
|
|
34
|
-
</button>
|
|
35
|
-
</li>
|
|
36
|
-
)
|
|
37
|
-
})}
|
|
38
|
-
</ul>
|
|
39
|
-
</div>
|
|
40
|
-
<div id="myTabContent">
|
|
41
|
-
{props.options.map((option: any, indx) => {
|
|
42
|
-
return (
|
|
43
|
-
<div
|
|
44
|
-
key={indx}
|
|
45
|
-
className="rounded bg-gray-50 p-4 dark:bg-gray-800"
|
|
46
|
-
id={`${option.value}`}
|
|
47
|
-
role="tabpanel"
|
|
48
|
-
aria-labelledby={`${option.value}-tab`}
|
|
49
|
-
>
|
|
50
|
-
{option.content}
|
|
51
|
-
</div>
|
|
52
|
-
)
|
|
53
|
-
})}
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
)
|
|
57
|
-
}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import React, { useState, FC } from "react"
|
|
2
|
-
import Countries from "../countries"
|
|
3
|
-
import Select from "react-select"
|
|
4
|
-
type MenuTypes = {
|
|
5
|
-
cx: any
|
|
6
|
-
children: any
|
|
7
|
-
getStyles: any
|
|
8
|
-
innerProps: any
|
|
9
|
-
innerRef: any
|
|
10
|
-
}
|
|
11
|
-
const Menu: FC<MenuTypes> = ({
|
|
12
|
-
cx,
|
|
13
|
-
children,
|
|
14
|
-
getStyles,
|
|
15
|
-
innerProps,
|
|
16
|
-
innerRef,
|
|
17
|
-
...props
|
|
18
|
-
}) => {
|
|
19
|
-
return (
|
|
20
|
-
<div
|
|
21
|
-
// width: 190,
|
|
22
|
-
// borderRadius: "0.5rem",
|
|
23
|
-
className="absolute z-50 w-[190px] rounded border bg-background"
|
|
24
|
-
// "absolute z-10 mt-2 flex w-full flex-col justify-start rounded bg-white p-1 px-1.5 ring-1 ring-blue-200"
|
|
25
|
-
ref={innerRef}
|
|
26
|
-
{...innerProps}
|
|
27
|
-
// {...props}
|
|
28
|
-
>
|
|
29
|
-
{children}
|
|
30
|
-
</div>
|
|
31
|
-
)
|
|
32
|
-
}
|
|
33
|
-
type OptionTypes = {
|
|
34
|
-
cx: any
|
|
35
|
-
data: any
|
|
36
|
-
children: any
|
|
37
|
-
getStyles: any
|
|
38
|
-
innerProps: any
|
|
39
|
-
innerRef: any
|
|
40
|
-
}
|
|
41
|
-
const Option: FC<OptionTypes> = ({
|
|
42
|
-
cx,
|
|
43
|
-
children,
|
|
44
|
-
getStyles,
|
|
45
|
-
innerProps,
|
|
46
|
-
innerRef,
|
|
47
|
-
...props
|
|
48
|
-
}) => (
|
|
49
|
-
<div
|
|
50
|
-
ref={innerRef}
|
|
51
|
-
className="m-2 flex cursor-pointer flex-row items-center justify-between rounded-inner p-1 px-2 hover:bg-buttonPrimary-500/30 dark:text-white dark:hover:bg-buttonPrimary-500/60"
|
|
52
|
-
{...innerProps}
|
|
53
|
-
>
|
|
54
|
-
<div className="flex flex-row items-center justify-center gap-1">
|
|
55
|
-
<img className="h-8 w-8" src={props.data.image}></img>
|
|
56
|
-
<span className="text-[10px]">{props.data.country_label}</span>
|
|
57
|
-
</div>
|
|
58
|
-
{children}
|
|
59
|
-
</div>
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
type HawaPhoneInputTypes = {
|
|
63
|
-
preferredCountry?: any
|
|
64
|
-
helperText?: any
|
|
65
|
-
label?: string
|
|
66
|
-
value?: any
|
|
67
|
-
country?: any
|
|
68
|
-
handleChange?: any
|
|
69
|
-
}
|
|
70
|
-
export const HawaPhoneInput: FC<HawaPhoneInputTypes> = (props) => {
|
|
71
|
-
const [selectedCountry, setSelectedCountry] = useState("+966")
|
|
72
|
-
|
|
73
|
-
return (
|
|
74
|
-
<div className="mb-3 flex flex-col">
|
|
75
|
-
{props.label && (
|
|
76
|
-
<label className="mb-2 block text-sm font-medium">{props.label}</label>
|
|
77
|
-
)}
|
|
78
|
-
<div dir="ltr" className="flex flex-row ">
|
|
79
|
-
<Select
|
|
80
|
-
classNames={{
|
|
81
|
-
// container: () => "cursor-pointer z-10 border rounded-l bg-background",
|
|
82
|
-
control: () =>
|
|
83
|
-
"w-[64px] text-right pr-2 cursor-pointer z-10 border rounded-l bg-background",
|
|
84
|
-
placeholder: (state) => "text-muted-foreground text-right ",
|
|
85
|
-
input: (state) =>
|
|
86
|
-
"bg-transparent cursor-pointer dark:text-white p-2 rounded-l text-[0.875rem] ",
|
|
87
|
-
valueContainer: () => "rounded-l h-auto text-[0.875rem]",
|
|
88
|
-
// container: () => "bg-orange-400 border-none",
|
|
89
|
-
// control: () => "bg-blue-500",
|
|
90
|
-
// menu: () => "bg-red-900",
|
|
91
|
-
}}
|
|
92
|
-
styles={{
|
|
93
|
-
// input: (base) => ({
|
|
94
|
-
// ...base,
|
|
95
|
-
// fontSize: "0.875rem",
|
|
96
|
-
// "input:focus": {
|
|
97
|
-
// boxShadow: "none",
|
|
98
|
-
// },
|
|
99
|
-
// lineHeight: "1.25rem",
|
|
100
|
-
// padding: "0.37rem",
|
|
101
|
-
// paddingLeft: 0,
|
|
102
|
-
// textAlign: "right",
|
|
103
|
-
// direction: "ltr",
|
|
104
|
-
// }),
|
|
105
|
-
// singleValue: (base) => ({
|
|
106
|
-
// ...base,
|
|
107
|
-
// fontSize: "0.875rem",
|
|
108
|
-
// // textAlign: "right",
|
|
109
|
-
// }),
|
|
110
|
-
placeholder: (base) => ({
|
|
111
|
-
...base,
|
|
112
|
-
fontSize: "0.875rem",
|
|
113
|
-
textAlign: "right",
|
|
114
|
-
}),
|
|
115
|
-
// control: (base) => ({
|
|
116
|
-
// ...base,
|
|
117
|
-
// width: 64,
|
|
118
|
-
// borderRadius: "0.5rem",
|
|
119
|
-
// borderTopRightRadius: 0,
|
|
120
|
-
// borderBottomRightRadius: 0,
|
|
121
|
-
// }),
|
|
122
|
-
// menu: (base) => ({
|
|
123
|
-
// ...base,
|
|
124
|
-
// width: 190,
|
|
125
|
-
// borderRadius: "0.5rem",
|
|
126
|
-
// }),
|
|
127
|
-
}}
|
|
128
|
-
components={{
|
|
129
|
-
Option,
|
|
130
|
-
Menu,
|
|
131
|
-
// SelectContainer,
|
|
132
|
-
DropdownIndicator: () => null,
|
|
133
|
-
IndicatorSeparator: () => null,
|
|
134
|
-
// Placeholder: () => <div className="bg-red-400">test</div>,
|
|
135
|
-
// SelectContainer:
|
|
136
|
-
// () =>
|
|
137
|
-
// ({ innerProps, innerRef }) =>
|
|
138
|
-
// <div ref={innerRef} {...innerProps} />,
|
|
139
|
-
}}
|
|
140
|
-
// className="bg-red-500"
|
|
141
|
-
|
|
142
|
-
options={Countries}
|
|
143
|
-
isMulti={false}
|
|
144
|
-
isSearchable={true}
|
|
145
|
-
isClearable={false}
|
|
146
|
-
placeholder="+966"
|
|
147
|
-
unstyled
|
|
148
|
-
defaultValue={props.preferredCountry}
|
|
149
|
-
value={selectedCountry}
|
|
150
|
-
onChange={(newValue, action) => setSelectedCountry(newValue)}
|
|
151
|
-
/>
|
|
152
|
-
<input
|
|
153
|
-
onChange={props.handleChange}
|
|
154
|
-
type="number"
|
|
155
|
-
placeholder="531045453"
|
|
156
|
-
// text-gray-900 dark:text-gray-300
|
|
157
|
-
// dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 dark:focus:ring-blue-500
|
|
158
|
-
className="block w-full rounded-r border bg-background p-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500"
|
|
159
|
-
|
|
160
|
-
// className="block w-full appearance-none rounded rounded-l-none border border-l-0
|
|
161
|
-
// bg-background p-2 text-[0.875rem] text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:text-white "
|
|
162
|
-
/>
|
|
163
|
-
{props.helperText && (
|
|
164
|
-
<p className="mb-1 mt-1 text-xs text-red-600 dark:text-red-500">
|
|
165
|
-
{props.helperText}
|
|
166
|
-
</p>
|
|
167
|
-
)}
|
|
168
|
-
</div>
|
|
169
|
-
</div>
|
|
170
|
-
)
|
|
171
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useState, FC } from "react"
|
|
2
|
-
import clsx from "clsx"
|
|
3
|
-
|
|
4
|
-
type PinInputTypes = {
|
|
5
|
-
label?: string
|
|
6
|
-
icon?: JSX.Element
|
|
7
|
-
digits: number
|
|
8
|
-
width?: "normal" | "full"
|
|
9
|
-
getPins?: any
|
|
10
|
-
}
|
|
11
|
-
export const HawaPinInput: FC<PinInputTypes> = ({
|
|
12
|
-
label,
|
|
13
|
-
icon,
|
|
14
|
-
digits,
|
|
15
|
-
width = "normal",
|
|
16
|
-
getPins,
|
|
17
|
-
...props
|
|
18
|
-
}) => {
|
|
19
|
-
const [pin, setPin] = useState(Array.from(Array(digits)))
|
|
20
|
-
|
|
21
|
-
const handleKeyDown = (e, index) => {
|
|
22
|
-
let backTo = 0
|
|
23
|
-
if (e.key === "Backspace") {
|
|
24
|
-
e.target.value.length === 0 ? (backTo = index - 1) : (backTo = index)
|
|
25
|
-
const previousInput = document.getElementById(`input-${backTo}`)
|
|
26
|
-
previousInput?.focus()
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
let unfilled = pin.includes(undefined)
|
|
31
|
-
if (!unfilled) {
|
|
32
|
-
getPins(pin)
|
|
33
|
-
}
|
|
34
|
-
})
|
|
35
|
-
const handleChange = (e, index) => {
|
|
36
|
-
if (!/^\d*$/.test(e.target.value)) {
|
|
37
|
-
const newPin = [...pin]
|
|
38
|
-
newPin[index] = ""
|
|
39
|
-
setPin(newPin)
|
|
40
|
-
return
|
|
41
|
-
} else {
|
|
42
|
-
const newPin = [...pin]
|
|
43
|
-
newPin[index] = e.target.value
|
|
44
|
-
setPin(newPin)
|
|
45
|
-
|
|
46
|
-
if (e.target.value.length === 1) {
|
|
47
|
-
const nextInput = document.getElementById(`input-${index + 1}`)
|
|
48
|
-
nextInput?.focus()
|
|
49
|
-
} else if (e.target.value.length === 0) {
|
|
50
|
-
const previousInput = document.getElementById(`input-${index - 1}`)
|
|
51
|
-
previousInput?.focus()
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return (
|
|
57
|
-
<div className="flex w-full flex-row justify-center gap-2">
|
|
58
|
-
{pin.map((value, index) => (
|
|
59
|
-
<input
|
|
60
|
-
key={index}
|
|
61
|
-
type="text"
|
|
62
|
-
maxLength={1}
|
|
63
|
-
value={value}
|
|
64
|
-
id={`input-${index}`}
|
|
65
|
-
pattern="[0-9]*"
|
|
66
|
-
className={clsx(
|
|
67
|
-
"h-10 rounded border bg-background text-center",
|
|
68
|
-
width === "full" ? "w-full" : "w-10"
|
|
69
|
-
)}
|
|
70
|
-
onChange={(e) => handleChange(e, index)}
|
|
71
|
-
onKeyDown={(e) => handleKeyDown(e, index)}
|
|
72
|
-
onFocus={(e) => e.target.select()}
|
|
73
|
-
{...props}
|
|
74
|
-
/>
|
|
75
|
-
))}
|
|
76
|
-
</div>
|
|
77
|
-
)
|
|
78
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import clsx from "clsx"
|
|
2
|
-
import React, { FC } from "react"
|
|
3
|
-
import { HawaButton } from "./HawaButton"
|
|
4
|
-
|
|
5
|
-
// TODO: if feature.excluded is false, show gray and x
|
|
6
|
-
// TODO: add badge to feature if soon
|
|
7
|
-
// TODO: add a discount element
|
|
8
|
-
|
|
9
|
-
type PricingCardTypes = {
|
|
10
|
-
direction?: "rtl" | "ltr"
|
|
11
|
-
features: [{ included: boolean; text: string }]
|
|
12
|
-
price: number
|
|
13
|
-
texts: {
|
|
14
|
-
title: string
|
|
15
|
-
subtitle: string
|
|
16
|
-
buttonText: string
|
|
17
|
-
cycleText: string
|
|
18
|
-
currencyText: string
|
|
19
|
-
}
|
|
20
|
-
onPlanClicked?: () => void
|
|
21
|
-
currentPlan?: boolean
|
|
22
|
-
size: "small" | "medium" | "large"
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const HawaPricingCard: FC<PricingCardTypes> = ({
|
|
26
|
-
size = "medium",
|
|
27
|
-
direction = "ltr",
|
|
28
|
-
currentPlan = false,
|
|
29
|
-
...props
|
|
30
|
-
}) => {
|
|
31
|
-
let isArabic = direction === "rtl"
|
|
32
|
-
let cardSizes = {
|
|
33
|
-
small:
|
|
34
|
-
"mx-1 w-full max-w-sm rounded border dark:border-gray-700 dark:bg-gray-800 ",
|
|
35
|
-
medium:
|
|
36
|
-
"mx-1 w-full rounded min-w-fit border dark:border-gray-700 dark:bg-gray-800 ",
|
|
37
|
-
large:
|
|
38
|
-
"mx-1 w-full max-w-lg rounded border dark:border-gray-700 dark:bg-gray-800 ",
|
|
39
|
-
}
|
|
40
|
-
return (
|
|
41
|
-
<div
|
|
42
|
-
dir={isArabic ? "rtl" : "ltr"}
|
|
43
|
-
className={clsx(
|
|
44
|
-
currentPlan
|
|
45
|
-
? "border-buttonPrimary-500 bg-layoutPrimary-500"
|
|
46
|
-
: "bg-white",
|
|
47
|
-
cardSizes[size],
|
|
48
|
-
"flex flex-col gap-4 rounded border-2 p-4"
|
|
49
|
-
)}
|
|
50
|
-
>
|
|
51
|
-
<h5 className="text-md 0 font-bold text-gray-500 dark:text-gray-400">
|
|
52
|
-
{props.texts.title}
|
|
53
|
-
</h5>
|
|
54
|
-
<div className=" flex items-baseline text-gray-900 dark:text-white">
|
|
55
|
-
<>
|
|
56
|
-
<span className="text-5xl font-extrabold tracking-tight">
|
|
57
|
-
{props.price}
|
|
58
|
-
</span>
|
|
59
|
-
<span className="mx-1 text-sm font-semibold">
|
|
60
|
-
{props.texts.currencyText}
|
|
61
|
-
</span>
|
|
62
|
-
</>
|
|
63
|
-
<span className="ml-1 text-xl font-normal text-gray-500 dark:text-gray-400">
|
|
64
|
-
/ {props.texts.cycleText}
|
|
65
|
-
</span>
|
|
66
|
-
</div>
|
|
67
|
-
<h5 className="text-md font-normal text-gray-500 dark:text-gray-400">
|
|
68
|
-
{props.texts.subtitle}
|
|
69
|
-
</h5>
|
|
70
|
-
|
|
71
|
-
{props.features && (
|
|
72
|
-
<ul role="list" className="space-y-0 ">
|
|
73
|
-
{props.features?.map((feature, o) => {
|
|
74
|
-
return (
|
|
75
|
-
<li key={o} className="flex ">
|
|
76
|
-
<svg
|
|
77
|
-
aria-hidden="true"
|
|
78
|
-
className="m-2 h-5 w-5 flex-shrink-0 text-blue-600 dark:text-blue-500"
|
|
79
|
-
fill="currentColor"
|
|
80
|
-
viewBox="0 0 20 20"
|
|
81
|
-
>
|
|
82
|
-
<title>Check icon</title>
|
|
83
|
-
<path
|
|
84
|
-
fillRule="evenodd"
|
|
85
|
-
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"
|
|
86
|
-
clipRule="evenodd"
|
|
87
|
-
></path>
|
|
88
|
-
</svg>
|
|
89
|
-
<span className="flex items-center text-center font-normal leading-tight text-gray-500 dark:text-gray-400">
|
|
90
|
-
{feature.text}
|
|
91
|
-
</span>
|
|
92
|
-
</li>
|
|
93
|
-
)
|
|
94
|
-
})}
|
|
95
|
-
</ul>
|
|
96
|
-
)}
|
|
97
|
-
<HawaButton
|
|
98
|
-
onClick={props.onPlanClicked}
|
|
99
|
-
margins="none"
|
|
100
|
-
disabled={currentPlan}
|
|
101
|
-
width="full"
|
|
102
|
-
>
|
|
103
|
-
{props.texts.buttonText}
|
|
104
|
-
</HawaButton>
|
|
105
|
-
</div>
|
|
106
|
-
)
|
|
107
|
-
}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import React, { useState, FC } from "react"
|
|
2
|
-
import clsx from "clsx"
|
|
3
|
-
|
|
4
|
-
type RadioTypes = {
|
|
5
|
-
orientation?: "vertical" | "horizontal"
|
|
6
|
-
design?: "default" | "tabs" | "cards" | "bordered"
|
|
7
|
-
options?: {
|
|
8
|
-
value: any
|
|
9
|
-
label: any
|
|
10
|
-
disabled?: any
|
|
11
|
-
sublabel?: any
|
|
12
|
-
icon?: any
|
|
13
|
-
}[]
|
|
14
|
-
|
|
15
|
-
onChangeTab?: any
|
|
16
|
-
defaultValue?: any
|
|
17
|
-
}
|
|
18
|
-
export const HawaRadio: FC<RadioTypes> = ({
|
|
19
|
-
design = "default",
|
|
20
|
-
orientation = "horizontal",
|
|
21
|
-
...props
|
|
22
|
-
}) => {
|
|
23
|
-
const [selectedOption, setSelectedOption] = useState(props.defaultValue)
|
|
24
|
-
let activeTabStyle =
|
|
25
|
-
"inline-block py-2 px-4 w-full text-white bg-buttonPrimary-500 rounded active"
|
|
26
|
-
let inactiveTabStyle =
|
|
27
|
-
"inline-block py-2 px-4 w-full bg-gray-100 rounded hover:text-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 dark:hover:text-white"
|
|
28
|
-
let orientationStyle = {
|
|
29
|
-
horizontal: "flex flex-row",
|
|
30
|
-
vertical: "flex flex-col",
|
|
31
|
-
}
|
|
32
|
-
switch (design) {
|
|
33
|
-
case "tabs":
|
|
34
|
-
return (
|
|
35
|
-
<div>
|
|
36
|
-
<ul
|
|
37
|
-
className={clsx(
|
|
38
|
-
props.options?.length > 2
|
|
39
|
-
? "flex-wrap xs:max-w-full xs:flex-nowrap"
|
|
40
|
-
: "",
|
|
41
|
-
" max-w-fit whitespace-nowrap rounded bg-gray-100 text-center text-sm font-medium text-gray-500 dark:text-gray-400",
|
|
42
|
-
orientationStyle[orientation]
|
|
43
|
-
)}
|
|
44
|
-
>
|
|
45
|
-
{props.options?.map((opt: any, o) => (
|
|
46
|
-
<li className="w-full" key={o}>
|
|
47
|
-
<button
|
|
48
|
-
aria-current="page"
|
|
49
|
-
onClick={() => {
|
|
50
|
-
setSelectedOption(opt.value)
|
|
51
|
-
props.onChangeTab(opt.value)
|
|
52
|
-
}}
|
|
53
|
-
className={clsx(
|
|
54
|
-
"flex flex-row items-center justify-center gap-2",
|
|
55
|
-
selectedOption === opt.value
|
|
56
|
-
? activeTabStyle
|
|
57
|
-
: inactiveTabStyle
|
|
58
|
-
)}
|
|
59
|
-
>
|
|
60
|
-
{opt.icon && opt.icon}
|
|
61
|
-
{opt.label}
|
|
62
|
-
</button>
|
|
63
|
-
</li>
|
|
64
|
-
))}
|
|
65
|
-
</ul>
|
|
66
|
-
</div>
|
|
67
|
-
)
|
|
68
|
-
case "bordered":
|
|
69
|
-
return (
|
|
70
|
-
<div className={clsx(orientationStyle[orientation], "gap-4")}>
|
|
71
|
-
{props.options.map((opt, i) => (
|
|
72
|
-
<div className="rounded border border-gray-200 ">
|
|
73
|
-
<div
|
|
74
|
-
className="radio-item radio-item-bordered flex items-center transition-all"
|
|
75
|
-
key={i + 1}
|
|
76
|
-
>
|
|
77
|
-
<input
|
|
78
|
-
disabled={opt.disabled}
|
|
79
|
-
id={opt.value.toString()}
|
|
80
|
-
type="radio"
|
|
81
|
-
value={opt.value}
|
|
82
|
-
name="bordered-radio"
|
|
83
|
-
// className="h-4 w-4 border-gray-300 "
|
|
84
|
-
/>
|
|
85
|
-
<label
|
|
86
|
-
htmlFor={opt.value.toString()}
|
|
87
|
-
className={clsx(
|
|
88
|
-
"ml-2 w-full p-4 pl-3 text-sm font-medium dark:text-white",
|
|
89
|
-
opt.disabled ? "opacity-50" : "cursor-pointer text-gray-900"
|
|
90
|
-
)}
|
|
91
|
-
>
|
|
92
|
-
{opt.label}
|
|
93
|
-
</label>
|
|
94
|
-
</div>
|
|
95
|
-
</div>
|
|
96
|
-
))}
|
|
97
|
-
</div>
|
|
98
|
-
)
|
|
99
|
-
case "cards":
|
|
100
|
-
return (
|
|
101
|
-
<ul className={clsx(orientationStyle[orientation], "gap-4")}>
|
|
102
|
-
{props.options?.map((opt: any, o) => (
|
|
103
|
-
<li>
|
|
104
|
-
<input
|
|
105
|
-
type="radio"
|
|
106
|
-
id={opt.value.toString()}
|
|
107
|
-
name="cards-radio"
|
|
108
|
-
value={opt.value.toString()}
|
|
109
|
-
className="peer hidden"
|
|
110
|
-
required
|
|
111
|
-
disabled={opt.disabled}
|
|
112
|
-
/>
|
|
113
|
-
<label
|
|
114
|
-
htmlFor={opt.value.toString()}
|
|
115
|
-
className={clsx(
|
|
116
|
-
"inline-flex h-full w-full items-center justify-between rounded-lg border border-gray-200 bg-white p-5 text-gray-500 peer-checked:border-blue-600 peer-checked:text-blue-600 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-300 dark:peer-checked:text-blue-500",
|
|
117
|
-
opt.disabled
|
|
118
|
-
? "opacity-50"
|
|
119
|
-
: "cursor-pointer hover:bg-gray-100 hover:text-gray-600"
|
|
120
|
-
)}
|
|
121
|
-
>
|
|
122
|
-
<div className="block h-full w-full">
|
|
123
|
-
<div className="w-full text-lg font-semibold">
|
|
124
|
-
{opt.label}
|
|
125
|
-
</div>
|
|
126
|
-
<div className="w-full">{opt.sublabel}</div>
|
|
127
|
-
</div>
|
|
128
|
-
{/* <svg
|
|
129
|
-
className="ml-3 h-5 w-5 "
|
|
130
|
-
aria-hidden="true"
|
|
131
|
-
fill="none"
|
|
132
|
-
viewBox="0 0 14 10"
|
|
133
|
-
>
|
|
134
|
-
<path
|
|
135
|
-
stroke="currentColor"
|
|
136
|
-
stroke-linecap="round"
|
|
137
|
-
stroke-linejoin="round"
|
|
138
|
-
stroke-width="2"
|
|
139
|
-
d="M1 5h12m0 0L9 1m4 4L9 9"
|
|
140
|
-
/>
|
|
141
|
-
</svg> */}
|
|
142
|
-
</label>
|
|
143
|
-
</li>
|
|
144
|
-
))}
|
|
145
|
-
</ul>
|
|
146
|
-
)
|
|
147
|
-
|
|
148
|
-
default:
|
|
149
|
-
return (
|
|
150
|
-
<div className={orientationStyle[orientation]}>
|
|
151
|
-
{props.options.map((opt, i) => (
|
|
152
|
-
<div
|
|
153
|
-
className="radio-item radio-item-default mb-4 flex items-center transition-all"
|
|
154
|
-
key={i + 1}
|
|
155
|
-
>
|
|
156
|
-
<input
|
|
157
|
-
disabled={opt.disabled}
|
|
158
|
-
id={opt.value.toString()}
|
|
159
|
-
type="radio"
|
|
160
|
-
value={opt.value}
|
|
161
|
-
name="default-radio"
|
|
162
|
-
// className="h-4 w-4 border-gray-300 "
|
|
163
|
-
/>
|
|
164
|
-
<label
|
|
165
|
-
htmlFor={opt.value.toString()}
|
|
166
|
-
className={clsx(
|
|
167
|
-
"ml-2 text-sm font-medium dark:text-white",
|
|
168
|
-
opt.disabled
|
|
169
|
-
? "text-gray-400"
|
|
170
|
-
: "cursor-pointer text-gray-900"
|
|
171
|
-
)}
|
|
172
|
-
>
|
|
173
|
-
{opt.label}
|
|
174
|
-
</label>
|
|
175
|
-
</div>
|
|
176
|
-
))}
|
|
177
|
-
</div>
|
|
178
|
-
)
|
|
179
|
-
}
|
|
180
|
-
}
|