@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,157 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useState, FC } from "react"
|
|
2
|
-
import clsx from "clsx"
|
|
3
|
-
import { HawaMenu } from "./HawaMenu"
|
|
4
|
-
import { HawaButton } from "./HawaButton"
|
|
5
|
-
|
|
6
|
-
interface ItemCardTypes {
|
|
7
|
-
headerActions?: THeaderActions[][]
|
|
8
|
-
header?: any
|
|
9
|
-
content?: any
|
|
10
|
-
/** a URL for the image of the card */
|
|
11
|
-
cardImage?: string
|
|
12
|
-
/** a function that fires when the card is clicked anywhere */
|
|
13
|
-
onCardClick?: any
|
|
14
|
-
/** a React node with HawaIconCount children to have counters at the bottom of the card */
|
|
15
|
-
counts?: JSX.Element
|
|
16
|
-
/** The action buttons on the bottom right of the card */
|
|
17
|
-
actions?: JSX.Element
|
|
18
|
-
/** The orientation of the card */
|
|
19
|
-
orientation?: "horizontal" | "vertical"
|
|
20
|
-
/** Enabling this blurs the image on hover and shows an action button */
|
|
21
|
-
clickableImage?: boolean
|
|
22
|
-
/** The function of the action button on the image of the card */
|
|
23
|
-
clickableImageAction?: () => void
|
|
24
|
-
/** The text of the action button on the image of the card */
|
|
25
|
-
clickableImageActionText: string
|
|
26
|
-
/** The icon of the action button on the image of the card */
|
|
27
|
-
clickableImageActionIcon?: any
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
type THeaderActions = {
|
|
31
|
-
icon?: JSX.Element
|
|
32
|
-
label: string
|
|
33
|
-
action?: (e: any) => void
|
|
34
|
-
isButton?: boolean
|
|
35
|
-
}
|
|
36
|
-
export const HawaItemCard: FC<ItemCardTypes> = ({
|
|
37
|
-
actions,
|
|
38
|
-
counts,
|
|
39
|
-
content,
|
|
40
|
-
headerActions,
|
|
41
|
-
clickableImage,
|
|
42
|
-
clickableImageAction,
|
|
43
|
-
clickableImageActionText,
|
|
44
|
-
clickableImageActionIcon,
|
|
45
|
-
header,
|
|
46
|
-
cardImage,
|
|
47
|
-
orientation = "vertical",
|
|
48
|
-
...props
|
|
49
|
-
}) => {
|
|
50
|
-
let defaultStyle =
|
|
51
|
-
"block rounded border border-gray-200 bg-white shadow-sm hover:shadow-lg transition-all dark:border-gray-700 dark:bg-gray-800 "
|
|
52
|
-
|
|
53
|
-
let orientationStyles = {
|
|
54
|
-
vertical: "max-w-sm",
|
|
55
|
-
horizontal: "flex flex-row w-full",
|
|
56
|
-
}
|
|
57
|
-
let imageStyles = {
|
|
58
|
-
vertical: "h-auto max-h-56 w-full rounded-t-lg object-cover",
|
|
59
|
-
horizontal:
|
|
60
|
-
// "h-auto w-full rounded-l-lg object-cover md:h-auto md:w-48 md:rounded-none md:rounded-l-lg",
|
|
61
|
-
// "h-full w-full rounded-l-lg object-cover md:w-48 md:rounded-none md:rounded-l-lg",
|
|
62
|
-
"h-full w-48 rounded-l object-cover",
|
|
63
|
-
}
|
|
64
|
-
let headerActionsButtonStyle =
|
|
65
|
-
"inline-block rounded p-1 text-sm text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-700"
|
|
66
|
-
|
|
67
|
-
const [openActionHeader, setOpenActionHeader] = useState(false)
|
|
68
|
-
|
|
69
|
-
function handleOpenActionHeader() {
|
|
70
|
-
setOpenActionHeader(!openActionHeader)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
useEffect((): any => {
|
|
74
|
-
window.onclick = () => {
|
|
75
|
-
if (openActionHeader) {
|
|
76
|
-
setOpenActionHeader(false)
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return () => (window.onclick = null)
|
|
80
|
-
}, [openActionHeader])
|
|
81
|
-
|
|
82
|
-
return (
|
|
83
|
-
<div
|
|
84
|
-
className={clsx(defaultStyle, orientationStyles[orientation])}
|
|
85
|
-
{...props}
|
|
86
|
-
>
|
|
87
|
-
{cardImage && (
|
|
88
|
-
<div className="group relative overflow-clip">
|
|
89
|
-
<img
|
|
90
|
-
src={"https://via.placeholder.com/50"}
|
|
91
|
-
className={clsx(
|
|
92
|
-
imageStyles[orientation],
|
|
93
|
-
clickableImage
|
|
94
|
-
? "overflow-clip transition-all group-hover:blur-lg"
|
|
95
|
-
: ""
|
|
96
|
-
)}
|
|
97
|
-
/>
|
|
98
|
-
{clickableImage && (
|
|
99
|
-
<div className="absolute left-0 top-0 flex h-full w-full items-center justify-center opacity-0 transition-all group-hover:opacity-100 ">
|
|
100
|
-
<HawaButton
|
|
101
|
-
startIcon={clickableImageActionIcon}
|
|
102
|
-
variant="outlined"
|
|
103
|
-
onClick={clickableImageAction}
|
|
104
|
-
>
|
|
105
|
-
{clickableImageActionText}
|
|
106
|
-
</HawaButton>
|
|
107
|
-
</div>
|
|
108
|
-
)}
|
|
109
|
-
</div>
|
|
110
|
-
)}
|
|
111
|
-
<div className="relative w-full p-6">
|
|
112
|
-
{headerActions && (
|
|
113
|
-
<div className="max-h- bg-red absolute right-0 top-0 flex justify-end pr-3 pt-3">
|
|
114
|
-
<HawaMenu position="top-right" menuItems={headerActions}>
|
|
115
|
-
<div
|
|
116
|
-
className={clsx(headerActionsButtonStyle)}
|
|
117
|
-
onClick={handleOpenActionHeader}
|
|
118
|
-
>
|
|
119
|
-
<span className="sr-only">Open dropdown</span>
|
|
120
|
-
<svg
|
|
121
|
-
className="h-6 w-6"
|
|
122
|
-
aria-hidden="true"
|
|
123
|
-
fill="currentColor"
|
|
124
|
-
viewBox="0 0 20 20"
|
|
125
|
-
>
|
|
126
|
-
<path d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"></path>
|
|
127
|
-
</svg>
|
|
128
|
-
</div>
|
|
129
|
-
</HawaMenu>
|
|
130
|
-
</div>
|
|
131
|
-
)}
|
|
132
|
-
|
|
133
|
-
{header && (
|
|
134
|
-
<h5 className="mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white">
|
|
135
|
-
{header}
|
|
136
|
-
</h5>
|
|
137
|
-
)}
|
|
138
|
-
{content && (
|
|
139
|
-
<p className="w-full font-normal text-gray-700 dark:text-gray-400">
|
|
140
|
-
{content}
|
|
141
|
-
</p>
|
|
142
|
-
)}
|
|
143
|
-
{actions || counts ? (
|
|
144
|
-
<div
|
|
145
|
-
className={clsx(
|
|
146
|
-
"mt-3 flex items-center rounded-b-lg dark:text-white ",
|
|
147
|
-
actions && counts ? "justify-between" : "justify-end"
|
|
148
|
-
)}
|
|
149
|
-
>
|
|
150
|
-
{counts}
|
|
151
|
-
{actions}
|
|
152
|
-
</div>
|
|
153
|
-
) : null}
|
|
154
|
-
</div>
|
|
155
|
-
</div>
|
|
156
|
-
)
|
|
157
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import clsx from "clsx"
|
|
2
|
-
import React, { FC } from "react"
|
|
3
|
-
|
|
4
|
-
type LandingCardTypes = {
|
|
5
|
-
orientation: "vertical" | "horizontal"
|
|
6
|
-
title: string
|
|
7
|
-
description: string
|
|
8
|
-
imageURL: string
|
|
9
|
-
handleHide: any
|
|
10
|
-
texts?: {
|
|
11
|
-
titleTip?: string
|
|
12
|
-
title?: string
|
|
13
|
-
description?: string
|
|
14
|
-
linkText?: string
|
|
15
|
-
}
|
|
16
|
-
buttonLink?: string
|
|
17
|
-
className?: any
|
|
18
|
-
}
|
|
19
|
-
export const HawaLandingCard: FC<LandingCardTypes> = ({
|
|
20
|
-
orientation = "horizontal",
|
|
21
|
-
...props
|
|
22
|
-
}) => {
|
|
23
|
-
let cardStyles = {
|
|
24
|
-
horizontal:
|
|
25
|
-
"flex max-w-xl rounded border-gray-200 bg-gray-100 shadow-md dark:border-gray-700 dark:bg-gray-800 ",
|
|
26
|
-
vertical:
|
|
27
|
-
"flex max-w-xs rounded border-gray-200 bg-gray-100 shadow-md dark:border-gray-700 dark:bg-gray-800 ",
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
let imageStyles = {
|
|
31
|
-
horizontal: "w-8 h-8 rounded",
|
|
32
|
-
vertical: "w-14 h-14 rounded",
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return (
|
|
36
|
-
<div
|
|
37
|
-
className={clsx(
|
|
38
|
-
cardStyles[orientation],
|
|
39
|
-
"flex flex-col p-10",
|
|
40
|
-
"relative overflow-hidden dark:text-white",
|
|
41
|
-
props.className
|
|
42
|
-
)}
|
|
43
|
-
{...props}
|
|
44
|
-
>
|
|
45
|
-
{props.texts?.titleTip && (
|
|
46
|
-
<div className="text-sm text-red-600">{props.texts?.titleTip}</div>
|
|
47
|
-
)}
|
|
48
|
-
{props.imageURL && (
|
|
49
|
-
<img
|
|
50
|
-
className="absolute -bottom-10 -right-10 h-40 w-auto "
|
|
51
|
-
src={props.imageURL}
|
|
52
|
-
/>
|
|
53
|
-
)}
|
|
54
|
-
|
|
55
|
-
{props.texts?.title && (
|
|
56
|
-
<div className="mt-2 text-lg font-medium">{props.texts?.title} </div>
|
|
57
|
-
)}
|
|
58
|
-
{props.texts?.description && (
|
|
59
|
-
<div className="z-10 mt-4 text-sm">{props.texts?.description}</div>
|
|
60
|
-
)}
|
|
61
|
-
{props.texts?.linkText && (
|
|
62
|
-
<div className="z-10 mt-6 text-sm underline underline-offset-8">
|
|
63
|
-
{props.texts?.linkText}
|
|
64
|
-
</div>
|
|
65
|
-
)}
|
|
66
|
-
</div>
|
|
67
|
-
)
|
|
68
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import React, { FC } from "react"
|
|
2
|
-
import clsx from "clsx"
|
|
3
|
-
|
|
4
|
-
type LoadingTypes = {
|
|
5
|
-
size?: "button" | "sm" | "normal" | "lg" | "xl"
|
|
6
|
-
design?: "spinner" | "dots-bounce" | "dots-pulse" | "pulse" | "spinner-dots"
|
|
7
|
-
color?: any
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const HawaLoading: FC<LoadingTypes> = ({
|
|
11
|
-
design = "spinner",
|
|
12
|
-
size = "sm",
|
|
13
|
-
color,
|
|
14
|
-
...props
|
|
15
|
-
}) => {
|
|
16
|
-
let sizeStyles = {
|
|
17
|
-
button: "h-4 w-4",
|
|
18
|
-
sm: "h-6 w-6",
|
|
19
|
-
normal: "h-8 w-8",
|
|
20
|
-
lg: "h-14 w-14",
|
|
21
|
-
xl: "h-24 w-24",
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
let animationStyles = {
|
|
25
|
-
pulse: "animate-in fade-in duration-1000",
|
|
26
|
-
bounce: "animate-bounce",
|
|
27
|
-
}
|
|
28
|
-
switch (design.split("-")[0]) {
|
|
29
|
-
case "dots":
|
|
30
|
-
return (
|
|
31
|
-
<div className="flex flex-row gap-2">
|
|
32
|
-
<div
|
|
33
|
-
className={clsx(
|
|
34
|
-
"animate-bounce rounded-full delay-100 repeat-infinite",
|
|
35
|
-
size === "button" ? "h-2 w-2" : sizeStyles[size],
|
|
36
|
-
animationStyles[design.split("-")[1]],
|
|
37
|
-
color ? color : "bg-primary-foreground"
|
|
38
|
-
)}
|
|
39
|
-
></div>
|
|
40
|
-
<div
|
|
41
|
-
className={clsx(
|
|
42
|
-
"animate-bounce rounded-full delay-200 repeat-infinite",
|
|
43
|
-
size === "button" ? "h-2 w-2" : sizeStyles[size],
|
|
44
|
-
animationStyles[design.split("-")[1]],
|
|
45
|
-
|
|
46
|
-
color ? color : "bg-primary-foreground"
|
|
47
|
-
)}
|
|
48
|
-
></div>
|
|
49
|
-
<div
|
|
50
|
-
className={clsx(
|
|
51
|
-
"animate-bounce rounded-full delay-300 repeat-infinite",
|
|
52
|
-
size === "button" ? "h-2 w-2" : sizeStyles[size],
|
|
53
|
-
animationStyles[design.split("-")[1]],
|
|
54
|
-
|
|
55
|
-
color ? color : "bg-primary-foreground"
|
|
56
|
-
)}
|
|
57
|
-
></div>
|
|
58
|
-
</div>
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
default:
|
|
62
|
-
return (
|
|
63
|
-
<div className="flex flex-row gap-x-3">
|
|
64
|
-
<div aria-label="Loading..." role="status">
|
|
65
|
-
<svg
|
|
66
|
-
className={clsx(sizeStyles[size], "animate-spin")}
|
|
67
|
-
viewBox="3 3 18 18"
|
|
68
|
-
>
|
|
69
|
-
<path
|
|
70
|
-
className="fill-gray-200"
|
|
71
|
-
d="M12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5ZM3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12Z"
|
|
72
|
-
></path>
|
|
73
|
-
<path
|
|
74
|
-
// className="fill-buttonPrimary-500 "
|
|
75
|
-
className={color ? color : "fill-buttonPrimary-500"}
|
|
76
|
-
d="M16.9497 7.05015C14.2161 4.31648 9.78392 4.31648 7.05025 7.05015C6.65973 7.44067 6.02656 7.44067 5.63604 7.05015C5.24551 6.65962 5.24551 6.02646 5.63604 5.63593C9.15076 2.12121 14.8492 2.12121 18.364 5.63593C18.7545 6.02646 18.7545 6.65962 18.364 7.05015C17.9734 7.44067 17.3403 7.44067 16.9497 7.05015Z"
|
|
77
|
-
></path>
|
|
78
|
-
</svg>
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
)
|
|
82
|
-
}
|
|
83
|
-
}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import React, { FC } from "react"
|
|
2
|
-
|
|
3
|
-
type LogoButtonTypes = {
|
|
4
|
-
lang?: any
|
|
5
|
-
logo?:
|
|
6
|
-
| "google"
|
|
7
|
-
| "github"
|
|
8
|
-
| "twitter"
|
|
9
|
-
| "wallet"
|
|
10
|
-
| "googlepay"
|
|
11
|
-
| "applepay"
|
|
12
|
-
| "stcpay"
|
|
13
|
-
| "visa/master"
|
|
14
|
-
| "paypal"
|
|
15
|
-
| "mada"
|
|
16
|
-
onClick?: any
|
|
17
|
-
buttonText?: any
|
|
18
|
-
direction?: "rtl" | "ltr"
|
|
19
|
-
}
|
|
20
|
-
export const HawaLogoButton: FC<LogoButtonTypes> = (props) => {
|
|
21
|
-
let isArabic = props.lang === "ar"
|
|
22
|
-
let logoElement: any = ""
|
|
23
|
-
switch (props.logo?.toLowerCase()) {
|
|
24
|
-
case "google":
|
|
25
|
-
logoElement = (
|
|
26
|
-
<img
|
|
27
|
-
src={
|
|
28
|
-
"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_%22G%22_Logo.svg"
|
|
29
|
-
}
|
|
30
|
-
className="h-6"
|
|
31
|
-
/>
|
|
32
|
-
)
|
|
33
|
-
break
|
|
34
|
-
case "github":
|
|
35
|
-
logoElement = (
|
|
36
|
-
<svg width="32px" height="32px" viewBox="0 0 32 32" className="h-7 w-7">
|
|
37
|
-
<path d="M16 0.396c-8.839 0-16 7.167-16 16 0 7.073 4.584 13.068 10.937 15.183 0.803 0.151 1.093-0.344 1.093-0.772 0-0.38-0.009-1.385-0.015-2.719-4.453 0.964-5.391-2.151-5.391-2.151-0.729-1.844-1.781-2.339-1.781-2.339-1.448-0.989 0.115-0.968 0.115-0.968 1.604 0.109 2.448 1.645 2.448 1.645 1.427 2.448 3.744 1.74 4.661 1.328 0.14-1.031 0.557-1.74 1.011-2.135-3.552-0.401-7.287-1.776-7.287-7.907 0-1.751 0.62-3.177 1.645-4.297-0.177-0.401-0.719-2.031 0.141-4.235 0 0 1.339-0.427 4.4 1.641 1.281-0.355 2.641-0.532 4-0.541 1.36 0.009 2.719 0.187 4 0.541 3.043-2.068 4.381-1.641 4.381-1.641 0.859 2.204 0.317 3.833 0.161 4.235 1.015 1.12 1.635 2.547 1.635 4.297 0 6.145-3.74 7.5-7.296 7.891 0.556 0.479 1.077 1.464 1.077 2.959 0 2.14-0.020 3.864-0.020 4.385 0 0.416 0.28 0.916 1.104 0.755 6.4-2.093 10.979-8.093 10.979-15.156 0-8.833-7.161-16-16-16z" />
|
|
38
|
-
</svg>
|
|
39
|
-
)
|
|
40
|
-
break
|
|
41
|
-
case "twitter":
|
|
42
|
-
logoElement = (
|
|
43
|
-
<svg
|
|
44
|
-
version="1.1"
|
|
45
|
-
x="0px"
|
|
46
|
-
y="0px"
|
|
47
|
-
className="h-5 w-5"
|
|
48
|
-
viewBox="0 0 512.002 512.002"
|
|
49
|
-
>
|
|
50
|
-
<path
|
|
51
|
-
// style="fill:#73A1FB;"
|
|
52
|
-
d="M500.398,94.784c-8.043,3.567-16.313,6.578-24.763,9.023c10.004-11.314,17.631-24.626,22.287-39.193
|
|
53
|
-
c1.044-3.265-0.038-6.839-2.722-8.975c-2.681-2.137-6.405-2.393-9.356-0.644c-17.945,10.643-37.305,18.292-57.605,22.764
|
|
54
|
-
c-20.449-19.981-48.222-31.353-76.934-31.353c-60.606,0-109.913,49.306-109.913,109.91c0,4.773,0.302,9.52,0.9,14.201
|
|
55
|
-
c-75.206-6.603-145.124-43.568-193.136-102.463c-1.711-2.099-4.347-3.231-7.046-3.014c-2.7,0.211-5.127,1.734-6.491,4.075
|
|
56
|
-
c-9.738,16.709-14.886,35.82-14.886,55.265c0,26.484,9.455,51.611,26.158,71.246c-5.079-1.759-10.007-3.957-14.711-6.568
|
|
57
|
-
c-2.525-1.406-5.607-1.384-8.116,0.054c-2.51,1.439-4.084,4.084-4.151,6.976c-0.012,0.487-0.012,0.974-0.012,1.468
|
|
58
|
-
c0,39.531,21.276,75.122,53.805,94.52c-2.795-0.279-5.587-0.684-8.362-1.214c-2.861-0.547-5.802,0.456-7.731,2.638
|
|
59
|
-
c-1.932,2.18-2.572,5.219-1.681,7.994c12.04,37.591,43.039,65.24,80.514,73.67c-31.082,19.468-66.626,29.665-103.939,29.665
|
|
60
|
-
c-7.786,0-15.616-0.457-23.279-1.364c-3.807-0.453-7.447,1.795-8.744,5.416c-1.297,3.622,0.078,7.66,3.316,9.736
|
|
61
|
-
c47.935,30.735,103.361,46.98,160.284,46.98c111.903,0,181.907-52.769,220.926-97.037c48.657-55.199,76.562-128.261,76.562-200.451
|
|
62
|
-
c0-3.016-0.046-6.061-0.139-9.097c19.197-14.463,35.724-31.967,49.173-52.085c2.043-3.055,1.822-7.094-0.545-9.906
|
|
63
|
-
C507.7,94.204,503.76,93.294,500.398,94.784z"
|
|
64
|
-
/>
|
|
65
|
-
</svg>
|
|
66
|
-
)
|
|
67
|
-
break
|
|
68
|
-
case "mada":
|
|
69
|
-
logoElement = (
|
|
70
|
-
<img
|
|
71
|
-
src="https://sikka-images.s3.ap-southeast-1.amazonaws.com/payments/mada.png"
|
|
72
|
-
className="h-6"
|
|
73
|
-
/>
|
|
74
|
-
)
|
|
75
|
-
break
|
|
76
|
-
case "stcpay":
|
|
77
|
-
logoElement = (
|
|
78
|
-
<img
|
|
79
|
-
src="https://sikka-images.s3.ap-southeast-1.amazonaws.com/payments/stc-pay.png"
|
|
80
|
-
// height={20}
|
|
81
|
-
className="h-6"
|
|
82
|
-
/>
|
|
83
|
-
)
|
|
84
|
-
break
|
|
85
|
-
case "visa/master":
|
|
86
|
-
logoElement = (
|
|
87
|
-
<img
|
|
88
|
-
src="https://sikka-images.s3.ap-southeast-1.amazonaws.com/payments/visa-master.png"
|
|
89
|
-
className="h-6"
|
|
90
|
-
/>
|
|
91
|
-
)
|
|
92
|
-
break
|
|
93
|
-
case "paypal":
|
|
94
|
-
logoElement = (
|
|
95
|
-
<img
|
|
96
|
-
src="https://sikka-images.s3.ap-southeast-1.amazonaws.com/payments/paypal.png"
|
|
97
|
-
className="h-6"
|
|
98
|
-
/>
|
|
99
|
-
)
|
|
100
|
-
break
|
|
101
|
-
case "googlepay":
|
|
102
|
-
logoElement = (
|
|
103
|
-
<img
|
|
104
|
-
src="https://sikka-images.s3.ap-southeast-1.amazonaws.com/payments/google-pay.png"
|
|
105
|
-
className="h-6"
|
|
106
|
-
/>
|
|
107
|
-
)
|
|
108
|
-
break
|
|
109
|
-
case "applepay":
|
|
110
|
-
logoElement = (
|
|
111
|
-
<img
|
|
112
|
-
src="https://sikka-images.s3.ap-southeast-1.amazonaws.com/payments/apple-pay.png"
|
|
113
|
-
className="h-11"
|
|
114
|
-
/>
|
|
115
|
-
)
|
|
116
|
-
break
|
|
117
|
-
case "wallet":
|
|
118
|
-
logoElement = (
|
|
119
|
-
<svg version="1.1" viewBox="0 0 223 223" className="h-6 w-6">
|
|
120
|
-
<g>
|
|
121
|
-
<path
|
|
122
|
-
d="M223,94.5c0-6.075-4.925-11-11-11h-63c-6.075,0-11,4.925-11,11v33c0,6.075,4.925,11,11,11h63c6.075,0,11-4.925,11-11V94.5z
|
|
123
|
-
M169.515,123.967c-7.082,0-12.823-5.741-12.823-12.823c0-7.082,5.741-12.823,12.823-12.823c7.082,0,12.823,5.741,12.823,12.823
|
|
124
|
-
C182.338,118.225,176.597,123.967,169.515,123.967z"
|
|
125
|
-
/>
|
|
126
|
-
<path
|
|
127
|
-
d="M123.509,68.5H205v-33c0-8.271-6.395-15-14.667-15h-175C7.062,20.5,0,27.229,0,35.5v152c0,8.271,7.062,15,15.333,15h175
|
|
128
|
-
c8.271,0,14.667-6.729,14.667-15v-34h-81.342L123.509,68.5z"
|
|
129
|
-
/>
|
|
130
|
-
</g>
|
|
131
|
-
</svg>
|
|
132
|
-
)
|
|
133
|
-
break
|
|
134
|
-
default:
|
|
135
|
-
break
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
return (
|
|
139
|
-
<button
|
|
140
|
-
dir={props.direction}
|
|
141
|
-
// style={{ direction: isArabic ? "rtl" : "ltr" }}
|
|
142
|
-
onClick={props.onClick}
|
|
143
|
-
className="my-2 flex h-11 w-full flex-row justify-center rounded border bg-white align-middle transition-all hover:ring-1 hover:ring-buttonPrimary-500 hover:brightness-90"
|
|
144
|
-
>
|
|
145
|
-
<div className="flex h-full flex-row items-center justify-end">
|
|
146
|
-
{logoElement}
|
|
147
|
-
</div>
|
|
148
|
-
<div style={{ width: 10 }} />
|
|
149
|
-
<div className="flex h-full flex-col items-start justify-center dark:text-black">
|
|
150
|
-
{props.buttonText}
|
|
151
|
-
</div>
|
|
152
|
-
</button>
|
|
153
|
-
)
|
|
154
|
-
}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode, useEffect, useRef, useState, FC } from "react"
|
|
2
|
-
import clsx from "clsx"
|
|
3
|
-
|
|
4
|
-
// TODO: add width to decrease width
|
|
5
|
-
|
|
6
|
-
interface TMenuTypes {
|
|
7
|
-
menuItems: MenuItems[][]
|
|
8
|
-
withHeader?: boolean
|
|
9
|
-
headerTitle?: string
|
|
10
|
-
headerSubtitle?: string
|
|
11
|
-
direction?: "rtl" | "ltr"
|
|
12
|
-
anchor?: any
|
|
13
|
-
children?: ReactNode
|
|
14
|
-
position?:
|
|
15
|
-
| "left-top"
|
|
16
|
-
| "left-bottom"
|
|
17
|
-
| "right-top"
|
|
18
|
-
| "right-bottom"
|
|
19
|
-
| "top-right"
|
|
20
|
-
| "top-left"
|
|
21
|
-
| "bottom-right"
|
|
22
|
-
| "bottom-left"
|
|
23
|
-
onClickOutside?: any
|
|
24
|
-
actionedItem?: any
|
|
25
|
-
size?: "small" | "normal" | "large"
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
type MenuItems = {
|
|
29
|
-
icon?: JSX.Element
|
|
30
|
-
disabled?: boolean
|
|
31
|
-
label: string
|
|
32
|
-
action?: (e: any) => void
|
|
33
|
-
isButton?: boolean
|
|
34
|
-
element?: any
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export const HawaMenu: FC<TMenuTypes> = ({
|
|
38
|
-
menuItems,
|
|
39
|
-
withHeader,
|
|
40
|
-
direction = "ltr",
|
|
41
|
-
headerTitle,
|
|
42
|
-
headerSubtitle,
|
|
43
|
-
size = "normal",
|
|
44
|
-
children,
|
|
45
|
-
onClickOutside,
|
|
46
|
-
actionedItem,
|
|
47
|
-
position = "top-right",
|
|
48
|
-
}) => {
|
|
49
|
-
const [menuOpened, setMenuOpened] = useState(false)
|
|
50
|
-
const childrenRef = useRef(null)
|
|
51
|
-
const [childrenHeight, setChildrenHeight] = useState(null)
|
|
52
|
-
const [childrenWidth, setChildrenWidth] = useState(null)
|
|
53
|
-
const menuRef = useRef(null)
|
|
54
|
-
const [menuWidth, setMenuWidth] = useState(null)
|
|
55
|
-
const [menuHeight, setMenuHeight] = useState(null)
|
|
56
|
-
|
|
57
|
-
useEffect(() => {
|
|
58
|
-
setMenuHeight(menuRef.current?.getBoundingClientRect().height)
|
|
59
|
-
setMenuWidth(menuRef.current?.getBoundingClientRect().width)
|
|
60
|
-
setChildrenHeight(childrenRef.current?.getBoundingClientRect().height)
|
|
61
|
-
setChildrenWidth(childrenRef.current?.getBoundingClientRect().width)
|
|
62
|
-
|
|
63
|
-
const handleClickOutside = (event) => {
|
|
64
|
-
if (menuRef.current && !menuRef.current.contains(event.target)) {
|
|
65
|
-
setMenuOpened(false)
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
document.addEventListener("click", handleClickOutside, true)
|
|
69
|
-
return () => {
|
|
70
|
-
document.removeEventListener("click", handleClickOutside, true)
|
|
71
|
-
}
|
|
72
|
-
}, [onClickOutside])
|
|
73
|
-
|
|
74
|
-
let defaultStyles =
|
|
75
|
-
"border-none absolute ring-offset-1 absolute z-10 w-44 divide-y divide-gray-100 overflow-y-clip rounded bg-gray-50 shadow-lg transition-all dark:bg-gray-700"
|
|
76
|
-
let sizeStyles = {
|
|
77
|
-
small: "text-[11px] p-1 px-4 m-0",
|
|
78
|
-
normal: "py-2 px-4",
|
|
79
|
-
large: "",
|
|
80
|
-
}
|
|
81
|
-
let menuCoordinates
|
|
82
|
-
let spacing = 5
|
|
83
|
-
switch (position) {
|
|
84
|
-
case "top-right":
|
|
85
|
-
menuCoordinates =
|
|
86
|
-
direction === "rtl"
|
|
87
|
-
? `${menuWidth - childrenWidth}px, -${
|
|
88
|
-
menuHeight + childrenHeight + spacing
|
|
89
|
-
}px`
|
|
90
|
-
: `0px, -${menuHeight + childrenHeight + spacing}px`
|
|
91
|
-
break
|
|
92
|
-
case "top-left":
|
|
93
|
-
menuCoordinates =
|
|
94
|
-
direction === "rtl"
|
|
95
|
-
? `${0}px, -${menuHeight + childrenHeight + spacing}px`
|
|
96
|
-
: `-${menuWidth - childrenWidth}px, -${
|
|
97
|
-
menuHeight + childrenHeight + spacing
|
|
98
|
-
}px`
|
|
99
|
-
break
|
|
100
|
-
case "bottom-right":
|
|
101
|
-
menuCoordinates =
|
|
102
|
-
direction === "rtl"
|
|
103
|
-
? `-${0}px, ${spacing}px`
|
|
104
|
-
: `-${childrenWidth - menuWidth}px, ${spacing}px`
|
|
105
|
-
|
|
106
|
-
break
|
|
107
|
-
case "bottom-left":
|
|
108
|
-
menuCoordinates =
|
|
109
|
-
direction === "rtl"
|
|
110
|
-
? `0px, ${spacing}px`
|
|
111
|
-
: `-${menuWidth - childrenWidth}px,${spacing}px`
|
|
112
|
-
break
|
|
113
|
-
case "right-bottom":
|
|
114
|
-
menuCoordinates =
|
|
115
|
-
direction === "rtl"
|
|
116
|
-
? `${menuWidth + spacing}px, -${childrenHeight}px`
|
|
117
|
-
: `${childrenWidth + spacing}px, -${childrenHeight}px`
|
|
118
|
-
break
|
|
119
|
-
case "right-top":
|
|
120
|
-
menuCoordinates =
|
|
121
|
-
direction === "rtl"
|
|
122
|
-
? `${menuWidth + spacing}px, -${menuHeight}px`
|
|
123
|
-
: `${childrenWidth + spacing}px, -${menuHeight}px`
|
|
124
|
-
break
|
|
125
|
-
case "left-bottom":
|
|
126
|
-
menuCoordinates =
|
|
127
|
-
direction === "rtl"
|
|
128
|
-
? `-${childrenWidth + spacing}px, -${childrenHeight}px`
|
|
129
|
-
: `-${menuWidth + spacing}px, -${childrenHeight}px`
|
|
130
|
-
break
|
|
131
|
-
case "left-top":
|
|
132
|
-
menuCoordinates =
|
|
133
|
-
direction === "rtl"
|
|
134
|
-
? `-${childrenWidth + spacing}px, -${menuHeight}px`
|
|
135
|
-
: `-${menuWidth + spacing}px, -${menuHeight}px`
|
|
136
|
-
break
|
|
137
|
-
|
|
138
|
-
default:
|
|
139
|
-
menuCoordinates = `-${menuWidth / 2}px, -${
|
|
140
|
-
childrenHeight + menuHeight / 2
|
|
141
|
-
}px`
|
|
142
|
-
|
|
143
|
-
break
|
|
144
|
-
}
|
|
145
|
-
return (
|
|
146
|
-
<div
|
|
147
|
-
onClick={() => {
|
|
148
|
-
if (menuOpened) setMenuOpened(false)
|
|
149
|
-
else setMenuOpened(true)
|
|
150
|
-
}}
|
|
151
|
-
>
|
|
152
|
-
<div ref={childrenRef}>{children}</div>
|
|
153
|
-
|
|
154
|
-
<div
|
|
155
|
-
ref={menuRef}
|
|
156
|
-
style={{
|
|
157
|
-
position: "absolute",
|
|
158
|
-
width: "max-content",
|
|
159
|
-
transform: `translate(${menuCoordinates})`,
|
|
160
|
-
maxWidth: "200px",
|
|
161
|
-
}}
|
|
162
|
-
className={clsx(
|
|
163
|
-
defaultStyles,
|
|
164
|
-
menuOpened ? "opacity-100" : "invisible opacity-0"
|
|
165
|
-
)}
|
|
166
|
-
>
|
|
167
|
-
{withHeader && (
|
|
168
|
-
<div className="px-4 py-3 text-xs text-gray-900 dark:text-white">
|
|
169
|
-
<div>{headerTitle}</div>
|
|
170
|
-
<div className="truncate font-medium">{headerSubtitle}</div>
|
|
171
|
-
</div>
|
|
172
|
-
)}
|
|
173
|
-
{menuItems?.map((group, o) => {
|
|
174
|
-
return (
|
|
175
|
-
<ul
|
|
176
|
-
key={o}
|
|
177
|
-
className="bg-layout-1200 flex flex-col gap-1 p-1 text-gray-700 dark:text-gray-200"
|
|
178
|
-
>
|
|
179
|
-
{group?.map((item, indx) => {
|
|
180
|
-
return item.element ? (
|
|
181
|
-
<li
|
|
182
|
-
key={indx}
|
|
183
|
-
className="cursor-pointer items-center rounded hover:bg-gray-200 rtl:flex-row-reverse dark:hover:bg-gray-600 dark:hover:text-white"
|
|
184
|
-
>
|
|
185
|
-
{item.element}
|
|
186
|
-
</li>
|
|
187
|
-
) : (
|
|
188
|
-
<li
|
|
189
|
-
key={indx}
|
|
190
|
-
onClick={() => {
|
|
191
|
-
if (item.disabled) {
|
|
192
|
-
console.log("button is disabled")
|
|
193
|
-
} else {
|
|
194
|
-
item?.action(actionedItem)
|
|
195
|
-
}
|
|
196
|
-
}}
|
|
197
|
-
className={clsx(
|
|
198
|
-
"transition-all",
|
|
199
|
-
item.isButton
|
|
200
|
-
? "flex cursor-pointer flex-row items-center rounded-inner bg-buttonPrimary-500 px-4 py-2 text-white hover:bg-buttonPrimary-700 rtl:flex-row-reverse"
|
|
201
|
-
: item.disabled
|
|
202
|
-
? "text-gray-300"
|
|
203
|
-
: " flex cursor-pointer flex-row items-center rounded-inner hover:bg-gray-200 rtl:flex-row-reverse dark:hover:bg-gray-600 dark:hover:text-white ",
|
|
204
|
-
sizeStyles[size]
|
|
205
|
-
)}
|
|
206
|
-
>
|
|
207
|
-
{item.icon && (
|
|
208
|
-
<div
|
|
209
|
-
className={
|
|
210
|
-
size === "small" ? "mr-1 rtl:ml-1" : "mr-2 rtl:ml-2"
|
|
211
|
-
}
|
|
212
|
-
>
|
|
213
|
-
{item.icon}
|
|
214
|
-
</div>
|
|
215
|
-
)}
|
|
216
|
-
{item.label}
|
|
217
|
-
</li>
|
|
218
|
-
)
|
|
219
|
-
})}
|
|
220
|
-
</ul>
|
|
221
|
-
)
|
|
222
|
-
})}
|
|
223
|
-
</div>
|
|
224
|
-
</div>
|
|
225
|
-
)
|
|
226
|
-
}
|