storefront-layouts-staging 1.0.0-staging.0
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 +539 -0
- package/dist/components/auth/LoginForm.d.ts +9 -0
- package/dist/components/auth/LoginForm.d.ts.map +1 -0
- package/dist/components/auth/LoginForm.js +21 -0
- package/dist/components/auth/LoginSheet.d.ts +7 -0
- package/dist/components/auth/LoginSheet.d.ts.map +1 -0
- package/dist/components/auth/LoginSheet.js +8 -0
- package/dist/components/auth/login-form-core.d.ts +11 -0
- package/dist/components/auth/login-form-core.d.ts.map +1 -0
- package/dist/components/auth/login-form-core.js +19 -0
- package/dist/components/auth/login-sheet-header.d.ts +10 -0
- package/dist/components/auth/login-sheet-header.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-header.js +10 -0
- package/dist/components/auth/login-sheet-registry.d.ts +11 -0
- package/dist/components/auth/login-sheet-registry.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-registry.js +9 -0
- package/dist/components/auth/login-sheet-theme.types.d.ts +29 -0
- package/dist/components/auth/login-sheet-theme.types.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-theme.types.js +1 -0
- package/dist/components/auth/login-sheet-themes/booking-agenda.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/booking-agenda.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/booking-agenda.theme.js +21 -0
- package/dist/components/auth/login-sheet-themes/booking.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/booking.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/booking.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/clothing.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/clothing.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/clothing.theme.js +21 -0
- package/dist/components/auth/login-sheet-themes/electronics-grid.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/electronics-grid.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/electronics-grid.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/electronics.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/electronics.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/electronics.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/food-modern.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/food-modern.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/food-modern.theme.js +22 -0
- package/dist/components/auth/login-sheet-themes/food.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/food.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/food.theme.js +22 -0
- package/dist/components/auth/login-sheet-themes/index.d.ts +14 -0
- package/dist/components/auth/login-sheet-themes/index.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/index.js +29 -0
- package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts +24 -0
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.js +23 -0
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts +13 -0
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts.map +1 -0
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.js +14 -0
- package/dist/components/auth/use-login-submit.d.ts +22 -0
- package/dist/components/auth/use-login-submit.d.ts.map +1 -0
- package/dist/components/auth/use-login-submit.js +99 -0
- package/dist/components/cart/InventoryHoldCountdown.d.ts +8 -0
- package/dist/components/cart/InventoryHoldCountdown.d.ts.map +1 -0
- package/dist/components/cart/InventoryHoldCountdown.js +73 -0
- package/dist/components/categories/category-masonry-grid.d.ts +18 -0
- package/dist/components/categories/category-masonry-grid.d.ts.map +1 -0
- package/dist/components/categories/category-masonry-grid.js +50 -0
- package/dist/components/categories/category-masonry-utils.d.ts +9 -0
- package/dist/components/categories/category-masonry-utils.d.ts.map +1 -0
- package/dist/components/categories/category-masonry-utils.js +67 -0
- package/dist/components/checkout/CheckoutFeeLines.d.ts +12 -0
- package/dist/components/checkout/CheckoutFeeLines.d.ts.map +1 -0
- package/dist/components/checkout/CheckoutFeeLines.js +9 -0
- package/dist/components/checkout/ShippingOptionsPanel.d.ts +54 -0
- package/dist/components/checkout/ShippingOptionsPanel.d.ts.map +1 -0
- package/dist/components/checkout/ShippingOptionsPanel.js +115 -0
- package/dist/components/learning/CertificateTemplates.d.ts +25 -0
- package/dist/components/learning/CertificateTemplates.d.ts.map +1 -0
- package/dist/components/learning/CertificateTemplates.js +31 -0
- package/dist/components/learning/CertificateViewer.d.ts +11 -0
- package/dist/components/learning/CertificateViewer.d.ts.map +1 -0
- package/dist/components/learning/CertificateViewer.js +114 -0
- package/dist/components/learning/MentorshipProgress.d.ts +18 -0
- package/dist/components/learning/MentorshipProgress.d.ts.map +1 -0
- package/dist/components/learning/MentorshipProgress.js +20 -0
- package/dist/components/product/ProductVariationSelectors.d.ts +10 -0
- package/dist/components/product/ProductVariationSelectors.d.ts.map +1 -0
- package/dist/components/product/ProductVariationSelectors.js +27 -0
- package/dist/components/rich-text/CategoryDescription.d.ts +7 -0
- package/dist/components/rich-text/CategoryDescription.d.ts.map +1 -0
- package/dist/components/rich-text/CategoryDescription.js +11 -0
- package/dist/components/rich-text/ProductDescription.d.ts +9 -0
- package/dist/components/rich-text/ProductDescription.d.ts.map +1 -0
- package/dist/components/rich-text/ProductDescription.js +10 -0
- package/dist/components/rich-text/RichTextExcerpt.d.ts +10 -0
- package/dist/components/rich-text/RichTextExcerpt.d.ts.map +1 -0
- package/dist/components/rich-text/RichTextExcerpt.js +12 -0
- package/dist/components/rich-text/SafeRichHtml.d.ts +14 -0
- package/dist/components/rich-text/SafeRichHtml.d.ts.map +1 -0
- package/dist/components/rich-text/SafeRichHtml.js +15 -0
- package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts +7 -0
- package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts.map +1 -0
- package/dist/components/shipping/MerchantHandledDeliveryNotice.js +7 -0
- package/dist/components/shipping/ProductDeliveryInfoSection.d.ts +21 -0
- package/dist/components/shipping/ProductDeliveryInfoSection.d.ts.map +1 -0
- package/dist/components/shipping/ProductDeliveryInfoSection.js +22 -0
- package/dist/components/shipping/ShippingQuoteAddressForm.d.ts +11 -0
- package/dist/components/shipping/ShippingQuoteAddressForm.d.ts.map +1 -0
- package/dist/components/shipping/ShippingQuoteAddressForm.js +66 -0
- package/dist/components/ui/address-selector.d.ts +11 -0
- package/dist/components/ui/address-selector.d.ts.map +1 -0
- package/dist/components/ui/address-selector.js +21 -0
- package/dist/components/ui/alert-modal.d.ts +21 -0
- package/dist/components/ui/alert-modal.d.ts.map +1 -0
- package/dist/components/ui/alert-modal.js +59 -0
- package/dist/components/ui/avatar-image.d.ts +11 -0
- package/dist/components/ui/avatar-image.d.ts.map +1 -0
- package/dist/components/ui/avatar-image.js +39 -0
- package/dist/components/ui/background-patterns.d.ts +27 -0
- package/dist/components/ui/background-patterns.d.ts.map +1 -0
- package/dist/components/ui/background-patterns.js +5 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +20 -0
- package/dist/components/ui/breadcrumbs.d.ts +12 -0
- package/dist/components/ui/breadcrumbs.d.ts.map +1 -0
- package/dist/components/ui/breadcrumbs.js +12 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +34 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +24 -0
- package/dist/components/ui/category-tree.d.ts +16 -0
- package/dist/components/ui/category-tree.d.ts.map +1 -0
- package/dist/components/ui/category-tree.js +74 -0
- package/dist/components/ui/checkout-button.d.ts +11 -0
- package/dist/components/ui/checkout-button.d.ts.map +1 -0
- package/dist/components/ui/checkout-button.js +298 -0
- package/dist/components/ui/dynamic-icon.d.ts +11 -0
- package/dist/components/ui/dynamic-icon.d.ts.map +1 -0
- package/dist/components/ui/dynamic-icon.js +77 -0
- package/dist/components/ui/guest-checkout-modal.d.ts +19 -0
- package/dist/components/ui/guest-checkout-modal.d.ts.map +1 -0
- package/dist/components/ui/guest-checkout-modal.js +95 -0
- package/dist/components/ui/image-skeleton.d.ts +7 -0
- package/dist/components/ui/image-skeleton.d.ts.map +1 -0
- package/dist/components/ui/image-skeleton.js +15 -0
- package/dist/components/ui/image-with-fallback.d.ts +10 -0
- package/dist/components/ui/image-with-fallback.d.ts.map +1 -0
- package/dist/components/ui/image-with-fallback.js +165 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +8 -0
- package/dist/components/ui/limited-time-offer-badge.d.ts +12 -0
- package/dist/components/ui/limited-time-offer-badge.d.ts.map +1 -0
- package/dist/components/ui/limited-time-offer-badge.js +13 -0
- package/dist/components/ui/loading-skeleton-wrapper.d.ts +6 -0
- package/dist/components/ui/loading-skeleton-wrapper.d.ts.map +1 -0
- package/dist/components/ui/loading-skeleton-wrapper.js +10 -0
- package/dist/components/ui/modal.d.ts +11 -0
- package/dist/components/ui/modal.d.ts.map +1 -0
- package/dist/components/ui/modal.js +26 -0
- package/dist/components/ui/otp-input.d.ts +10 -0
- package/dist/components/ui/otp-input.d.ts.map +1 -0
- package/dist/components/ui/otp-input.js +57 -0
- package/dist/components/ui/out-of-stock-overlay.d.ts +8 -0
- package/dist/components/ui/out-of-stock-overlay.d.ts.map +1 -0
- package/dist/components/ui/out-of-stock-overlay.js +12 -0
- package/dist/components/ui/page-animate-wrapper.d.ts +7 -0
- package/dist/components/ui/page-animate-wrapper.d.ts.map +1 -0
- package/dist/components/ui/page-animate-wrapper.js +13 -0
- package/dist/components/ui/page-content-loader.d.ts +13 -0
- package/dist/components/ui/page-content-loader.d.ts.map +1 -0
- package/dist/components/ui/page-content-loader.js +12 -0
- package/dist/components/ui/page-loader.d.ts +20 -0
- package/dist/components/ui/page-loader.d.ts.map +1 -0
- package/dist/components/ui/page-loader.js +31 -0
- package/dist/components/ui/product-card.d.ts +11 -0
- package/dist/components/ui/product-card.d.ts.map +1 -0
- package/dist/components/ui/product-card.js +124 -0
- package/dist/components/ui/product-rating.d.ts +17 -0
- package/dist/components/ui/product-rating.d.ts.map +1 -0
- package/dist/components/ui/product-rating.js +54 -0
- package/dist/components/ui/product-stock-badge.d.ts +9 -0
- package/dist/components/ui/product-stock-badge.d.ts.map +1 -0
- package/dist/components/ui/product-stock-badge.js +20 -0
- package/dist/components/ui/review-form.d.ts +9 -0
- package/dist/components/ui/review-form.d.ts.map +1 -0
- package/dist/components/ui/review-form.js +28 -0
- package/dist/components/ui/route-skeleton-loader.d.ts +7 -0
- package/dist/components/ui/route-skeleton-loader.d.ts.map +1 -0
- package/dist/components/ui/route-skeleton-loader.js +75 -0
- package/dist/components/ui/sheet.d.ts +29 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +45 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +6 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts +6 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.js +9 -0
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/checkout-skeleton.js +4 -0
- package/dist/components/ui/skeletons/index.d.ts +6 -0
- package/dist/components/ui/skeletons/index.d.ts.map +1 -0
- package/dist/components/ui/skeletons/index.js +5 -0
- package/dist/components/ui/skeletons/page-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/page-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/page-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-card-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts +7 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.js +12 -0
- package/dist/components/ui/store-logos.d.ts +43 -0
- package/dist/components/ui/store-logos.d.ts.map +1 -0
- package/dist/components/ui/store-logos.js +83 -0
- package/dist/components/ui/toast.d.ts +20 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +33 -0
- package/dist/components/ui/video-player.d.ts +48 -0
- package/dist/components/ui/video-player.d.ts.map +1 -0
- package/dist/components/ui/video-player.js +101 -0
- package/dist/editor/alignment-schemas/booking-agenda.d.ts +3 -0
- package/dist/editor/alignment-schemas/booking-agenda.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/booking-agenda.js +145 -0
- package/dist/editor/alignment-schemas/booking-footer-section.d.ts +4 -0
- package/dist/editor/alignment-schemas/booking-footer-section.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/booking-footer-section.js +69 -0
- package/dist/editor/alignment-schemas/booking.d.ts +3 -0
- package/dist/editor/alignment-schemas/booking.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/booking.js +476 -0
- package/dist/editor/alignment-schemas/clothing-minimal.d.ts +3 -0
- package/dist/editor/alignment-schemas/clothing-minimal.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/clothing-minimal.js +363 -0
- package/dist/editor/alignment-schemas/clothing.d.ts +3 -0
- package/dist/editor/alignment-schemas/clothing.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/clothing.js +477 -0
- package/dist/editor/alignment-schemas/electronics-grid.d.ts +3 -0
- package/dist/editor/alignment-schemas/electronics-grid.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/electronics-grid.js +97 -0
- package/dist/editor/alignment-schemas/electronics.d.ts +3 -0
- package/dist/editor/alignment-schemas/electronics.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/electronics.js +145 -0
- package/dist/editor/alignment-schemas/food-modern.d.ts +3 -0
- package/dist/editor/alignment-schemas/food-modern.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/food-modern.js +237 -0
- package/dist/editor/alignment-schemas/food.d.ts +3 -0
- package/dist/editor/alignment-schemas/food.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/food.js +494 -0
- package/dist/editor/alignment-schemas/index.d.ts +15 -0
- package/dist/editor/alignment-schemas/index.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/index.js +50 -0
- package/dist/editor/alignment-schemas/lazy-loader.d.ts +14 -0
- package/dist/editor/alignment-schemas/lazy-loader.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/lazy-loader.js +80 -0
- package/dist/editor/alignment-schemas/metadata.d.ts +25 -0
- package/dist/editor/alignment-schemas/metadata.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/metadata.js +225 -0
- package/dist/editor/alignment-schemas/motivational-speaker.d.ts +3 -0
- package/dist/editor/alignment-schemas/motivational-speaker.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/motivational-speaker.js +185 -0
- package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.d.ts +18 -0
- package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.js +166 -0
- package/dist/editor/alignment-schemas/resolve-field.d.ts +9 -0
- package/dist/editor/alignment-schemas/resolve-field.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/resolve-field.js +56 -0
- package/dist/editor/alignment-schemas/types.d.ts +53 -0
- package/dist/editor/alignment-schemas/types.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/types.js +1 -0
- package/dist/editor/blocks/defaults/clothing-minimal-home.d.ts +9 -0
- package/dist/editor/blocks/defaults/clothing-minimal-home.d.ts.map +1 -0
- package/dist/editor/blocks/defaults/clothing-minimal-home.js +207 -0
- package/dist/editor/blocks/index.d.ts +4 -0
- package/dist/editor/blocks/index.d.ts.map +1 -0
- package/dist/editor/blocks/index.js +3 -0
- package/dist/editor/blocks/migrate-clothing-minimal.d.ts +5 -0
- package/dist/editor/blocks/migrate-clothing-minimal.d.ts.map +1 -0
- package/dist/editor/blocks/migrate-clothing-minimal.js +140 -0
- package/dist/editor/blocks/nav-outline-utils.d.ts +47 -0
- package/dist/editor/blocks/nav-outline-utils.d.ts.map +1 -0
- package/dist/editor/blocks/nav-outline-utils.js +201 -0
- package/dist/editor/blocks/registry.d.ts +19 -0
- package/dist/editor/blocks/registry.d.ts.map +1 -0
- package/dist/editor/blocks/registry.js +118 -0
- package/dist/editor/blocks/types.d.ts +14 -0
- package/dist/editor/blocks/types.d.ts.map +1 -0
- package/dist/editor/blocks/types.js +14 -0
- package/dist/editor/document/adapter.d.ts +44 -0
- package/dist/editor/document/adapter.d.ts.map +1 -0
- package/dist/editor/document/adapter.js +159 -0
- package/dist/editor/document/block-tree.d.ts +46 -0
- package/dist/editor/document/block-tree.d.ts.map +1 -0
- package/dist/editor/document/block-tree.js +345 -0
- package/dist/editor/document/constants.d.ts +6 -0
- package/dist/editor/document/constants.d.ts.map +1 -0
- package/dist/editor/document/constants.js +14 -0
- package/dist/editor/document/index.d.ts +7 -0
- package/dist/editor/document/index.d.ts.map +1 -0
- package/dist/editor/document/index.js +6 -0
- package/dist/editor/document/layout-id.d.ts +3 -0
- package/dist/editor/document/layout-id.d.ts.map +1 -0
- package/dist/editor/document/layout-id.js +17 -0
- package/dist/editor/document/types.d.ts +91 -0
- package/dist/editor/document/types.d.ts.map +1 -0
- package/dist/editor/document/types.js +1 -0
- package/dist/editor/document/validate.d.ts +11 -0
- package/dist/editor/document/validate.d.ts.map +1 -0
- package/dist/editor/document/validate.js +92 -0
- package/dist/editor/feature-flags.d.ts +11 -0
- package/dist/editor/feature-flags.d.ts.map +1 -0
- package/dist/editor/feature-flags.js +19 -0
- package/dist/editor/index.d.ts +28 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +72 -0
- package/dist/editor/layout-content-loader.d.ts +13 -0
- package/dist/editor/layout-content-loader.d.ts.map +1 -0
- package/dist/editor/layout-content-loader.js +222 -0
- package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts +20 -0
- package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/ActiveArrayFocusContext.js +31 -0
- package/dist/editor/payaza-form/ArrayItemManager.d.ts +19 -0
- package/dist/editor/payaza-form/ArrayItemManager.d.ts.map +1 -0
- package/dist/editor/payaza-form/ArrayItemManager.js +62 -0
- package/dist/editor/payaza-form/AssetSelectionContext.d.ts +17 -0
- package/dist/editor/payaza-form/AssetSelectionContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/AssetSelectionContext.js +81 -0
- package/dist/editor/payaza-form/EditorCanvasPreview.d.ts +41 -0
- package/dist/editor/payaza-form/EditorCanvasPreview.d.ts.map +1 -0
- package/dist/editor/payaza-form/EditorCanvasPreview.js +56 -0
- package/dist/editor/payaza-form/EditorLayoutContext.d.ts +8 -0
- package/dist/editor/payaza-form/EditorLayoutContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/EditorLayoutContext.js +6 -0
- package/dist/editor/payaza-form/FieldRenderer.d.ts +16 -0
- package/dist/editor/payaza-form/FieldRenderer.d.ts.map +1 -0
- package/dist/editor/payaza-form/FieldRenderer.js +192 -0
- package/dist/editor/payaza-form/IframePreviewMessageBridge.d.ts +29 -0
- package/dist/editor/payaza-form/IframePreviewMessageBridge.d.ts.map +1 -0
- package/dist/editor/payaza-form/IframePreviewMessageBridge.js +46 -0
- package/dist/editor/payaza-form/PayazaFormEditor.d.ts +12 -0
- package/dist/editor/payaza-form/PayazaFormEditor.d.ts.map +1 -0
- package/dist/editor/payaza-form/PayazaFormEditor.js +1226 -0
- package/dist/editor/payaza-form/PayazaFormEditorFullPage.d.ts +9 -0
- package/dist/editor/payaza-form/PayazaFormEditorFullPage.d.ts.map +1 -0
- package/dist/editor/payaza-form/PayazaFormEditorFullPage.js +6 -0
- package/dist/editor/payaza-form/SliderArrayEditor.d.ts +17 -0
- package/dist/editor/payaza-form/SliderArrayEditor.d.ts.map +1 -0
- package/dist/editor/payaza-form/SliderArrayEditor.js +96 -0
- package/dist/editor/payaza-form/components/ArrayField.d.ts +21 -0
- package/dist/editor/payaza-form/components/ArrayField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ArrayField.js +18 -0
- package/dist/editor/payaza-form/components/BlockStylesInspector.d.ts +9 -0
- package/dist/editor/payaza-form/components/BlockStylesInspector.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/BlockStylesInspector.js +150 -0
- package/dist/editor/payaza-form/components/BlocksField.d.ts +17 -0
- package/dist/editor/payaza-form/components/BlocksField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/BlocksField.js +108 -0
- package/dist/editor/payaza-form/components/ButtonField.d.ts +15 -0
- package/dist/editor/payaza-form/components/ButtonField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ButtonField.js +17 -0
- package/dist/editor/payaza-form/components/CanvasGranularInspector.d.ts +16 -0
- package/dist/editor/payaza-form/components/CanvasGranularInspector.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/CanvasGranularInspector.js +32 -0
- package/dist/editor/payaza-form/components/FieldDensityContext.d.ts +10 -0
- package/dist/editor/payaza-form/components/FieldDensityContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/FieldDensityContext.js +13 -0
- package/dist/editor/payaza-form/components/IconField.d.ts +12 -0
- package/dist/editor/payaza-form/components/IconField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/IconField.js +42 -0
- package/dist/editor/payaza-form/components/ImageField.d.ts +10 -0
- package/dist/editor/payaza-form/components/ImageField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ImageField.js +30 -0
- package/dist/editor/payaza-form/components/NumberField.d.ts +14 -0
- package/dist/editor/payaza-form/components/NumberField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/NumberField.js +23 -0
- package/dist/editor/payaza-form/components/ObjectField.d.ts +11 -0
- package/dist/editor/payaza-form/components/ObjectField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ObjectField.js +7 -0
- package/dist/editor/payaza-form/components/RichTextField.d.ts +15 -0
- package/dist/editor/payaza-form/components/RichTextField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/RichTextField.js +88 -0
- package/dist/editor/payaza-form/components/SectionField.d.ts +14 -0
- package/dist/editor/payaza-form/components/SectionField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/SectionField.js +8 -0
- package/dist/editor/payaza-form/components/SectionSchemaInspector.d.ts +18 -0
- package/dist/editor/payaza-form/components/SectionSchemaInspector.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/SectionSchemaInspector.js +64 -0
- package/dist/editor/payaza-form/components/SegmentedControlField.d.ts +13 -0
- package/dist/editor/payaza-form/components/SegmentedControlField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/SegmentedControlField.js +7 -0
- package/dist/editor/payaza-form/components/StarRatingField.d.ts +13 -0
- package/dist/editor/payaza-form/components/StarRatingField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/StarRatingField.js +16 -0
- package/dist/editor/payaza-form/components/TextField.d.ts +13 -0
- package/dist/editor/payaza-form/components/TextField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/TextField.js +12 -0
- package/dist/editor/payaza-form/components/TextareaField.d.ts +11 -0
- package/dist/editor/payaza-form/components/TextareaField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/TextareaField.js +6 -0
- package/dist/editor/payaza-form/components/ToggleField.d.ts +12 -0
- package/dist/editor/payaza-form/components/ToggleField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ToggleField.js +15 -0
- package/dist/editor/payaza-form/data-merger.d.ts +28 -0
- package/dist/editor/payaza-form/data-merger.d.ts.map +1 -0
- package/dist/editor/payaza-form/data-merger.js +878 -0
- package/dist/editor/payaza-form/data-transformer.d.ts +28 -0
- package/dist/editor/payaza-form/data-transformer.d.ts.map +1 -0
- package/dist/editor/payaza-form/data-transformer.js +304 -0
- package/dist/editor/payaza-form/engine.d.ts +72 -0
- package/dist/editor/payaza-form/engine.d.ts.map +1 -0
- package/dist/editor/payaza-form/engine.js +140 -0
- package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts +8 -0
- package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts.map +1 -0
- package/dist/editor/payaza-form/examples/custom-widgets.example.js +51 -0
- package/dist/editor/payaza-form/field-renderer-ref.d.ts +4 -0
- package/dist/editor/payaza-form/field-renderer-ref.d.ts.map +1 -0
- package/dist/editor/payaza-form/field-renderer-ref.js +16 -0
- package/dist/editor/payaza-form/index.d.ts +11 -0
- package/dist/editor/payaza-form/index.d.ts.map +1 -0
- package/dist/editor/payaza-form/index.js +8 -0
- package/dist/editor/payaza-form/layout-loader.d.ts +12 -0
- package/dist/editor/payaza-form/layout-loader.d.ts.map +1 -0
- package/dist/editor/payaza-form/layout-loader.js +43 -0
- package/dist/editor/payaza-form/payaza-style-sanitize.d.ts +14 -0
- package/dist/editor/payaza-form/payaza-style-sanitize.d.ts.map +1 -0
- package/dist/editor/payaza-form/payaza-style-sanitize.js +76 -0
- package/dist/editor/payaza-form/preview-message-handler.d.ts +18 -0
- package/dist/editor/payaza-form/preview-message-handler.d.ts.map +1 -0
- package/dist/editor/payaza-form/preview-message-handler.js +89 -0
- package/dist/editor/payaza-form/schema-bridge.d.ts +12 -0
- package/dist/editor/payaza-form/schema-bridge.d.ts.map +1 -0
- package/dist/editor/payaza-form/schema-bridge.js +90 -0
- package/dist/editor/payaza-form/widget-registry.d.ts +94 -0
- package/dist/editor/payaza-form/widget-registry.d.ts.map +1 -0
- package/dist/editor/payaza-form/widget-registry.js +107 -0
- package/dist/editor/shared/AIGenerateModal.d.ts +17 -0
- package/dist/editor/shared/AIGenerateModal.d.ts.map +1 -0
- package/dist/editor/shared/AIGenerateModal.js +59 -0
- package/dist/editor/shared/BlockOutlineTree.d.ts +14 -0
- package/dist/editor/shared/BlockOutlineTree.d.ts.map +1 -0
- package/dist/editor/shared/BlockOutlineTree.js +47 -0
- package/dist/editor/shared/EditorHeader.d.ts +61 -0
- package/dist/editor/shared/EditorHeader.d.ts.map +1 -0
- package/dist/editor/shared/EditorHeader.js +181 -0
- package/dist/editor/shared/EditorNavigator.d.ts +42 -0
- package/dist/editor/shared/EditorNavigator.d.ts.map +1 -0
- package/dist/editor/shared/EditorNavigator.js +44 -0
- package/dist/editor/shared/IframePreview.d.ts +36 -0
- package/dist/editor/shared/IframePreview.d.ts.map +1 -0
- package/dist/editor/shared/IframePreview.js +217 -0
- package/dist/editor/shared/InlineCanvasPreview.d.ts +36 -0
- package/dist/editor/shared/InlineCanvasPreview.d.ts.map +1 -0
- package/dist/editor/shared/InlineCanvasPreview.js +174 -0
- package/dist/editor/shared/LayoutRenderer.d.ts +11 -0
- package/dist/editor/shared/LayoutRenderer.d.ts.map +1 -0
- package/dist/editor/shared/LayoutRenderer.js +7 -0
- package/dist/editor/shared/PageTabs.d.ts +13 -0
- package/dist/editor/shared/PageTabs.d.ts.map +1 -0
- package/dist/editor/shared/PageTabs.js +6 -0
- package/dist/editor/shared/ResizableSidebar.d.ts +14 -0
- package/dist/editor/shared/ResizableSidebar.d.ts.map +1 -0
- package/dist/editor/shared/ResizableSidebar.js +45 -0
- package/dist/editor/shared/index.d.ts +8 -0
- package/dist/editor/shared/index.d.ts.map +1 -0
- package/dist/editor/shared/index.js +7 -0
- package/dist/editor/shared/preview-viewport.d.ts +9 -0
- package/dist/editor/shared/preview-viewport.d.ts.map +1 -0
- package/dist/editor/shared/preview-viewport.js +17 -0
- package/dist/editor/shared/useEditorChromeMetrics.d.ts +15 -0
- package/dist/editor/shared/useEditorChromeMetrics.d.ts.map +1 -0
- package/dist/editor/shared/useEditorChromeMetrics.js +52 -0
- package/dist/editor/types.d.ts +162 -0
- package/dist/editor/types.d.ts.map +1 -0
- package/dist/editor/types.js +1 -0
- package/dist/hooks/use-analytics.d.ts +15 -0
- package/dist/hooks/use-analytics.d.ts.map +1 -0
- package/dist/hooks/use-analytics.js +62 -0
- package/dist/hooks/use-api.d.ts +17 -0
- package/dist/hooks/use-api.d.ts.map +1 -0
- package/dist/hooks/use-api.js +53 -0
- package/dist/hooks/use-cart-api.d.ts +28 -0
- package/dist/hooks/use-cart-api.d.ts.map +1 -0
- package/dist/hooks/use-cart-api.js +116 -0
- package/dist/hooks/use-catalog-loader.d.ts +19 -0
- package/dist/hooks/use-catalog-loader.d.ts.map +1 -0
- package/dist/hooks/use-catalog-loader.js +107 -0
- package/dist/hooks/use-catalog-price-range.d.ts +17 -0
- package/dist/hooks/use-catalog-price-range.d.ts.map +1 -0
- package/dist/hooks/use-catalog-price-range.js +26 -0
- package/dist/hooks/use-checkout-fees.d.ts +16 -0
- package/dist/hooks/use-checkout-fees.d.ts.map +1 -0
- package/dist/hooks/use-checkout-fees.js +105 -0
- package/dist/hooks/use-content-ready.d.ts +17 -0
- package/dist/hooks/use-content-ready.d.ts.map +1 -0
- package/dist/hooks/use-content-ready.js +197 -0
- package/dist/hooks/use-debounce.d.ts +6 -0
- package/dist/hooks/use-debounce.d.ts.map +1 -0
- package/dist/hooks/use-debounce.js +17 -0
- package/dist/hooks/use-multi-store-checkout-fees.d.ts +25 -0
- package/dist/hooks/use-multi-store-checkout-fees.d.ts.map +1 -0
- package/dist/hooks/use-multi-store-checkout-fees.js +116 -0
- package/dist/hooks/use-navigation-loading.d.ts +4 -0
- package/dist/hooks/use-navigation-loading.d.ts.map +1 -0
- package/dist/hooks/use-navigation-loading.js +14 -0
- package/dist/hooks/use-payaza-checkout.d.ts +15 -0
- package/dist/hooks/use-payaza-checkout.d.ts.map +1 -0
- package/dist/hooks/use-payaza-checkout.js +123 -0
- package/dist/hooks/use-product-variation-selection.d.ts +26 -0
- package/dist/hooks/use-product-variation-selection.d.ts.map +1 -0
- package/dist/hooks/use-product-variation-selection.js +26 -0
- package/dist/hooks/use-products-api.d.ts +19 -0
- package/dist/hooks/use-products-api.d.ts.map +1 -0
- package/dist/hooks/use-products-api.js +84 -0
- package/dist/hooks/use-shipping-quote.d.ts +25 -0
- package/dist/hooks/use-shipping-quote.d.ts.map +1 -0
- package/dist/hooks/use-shipping-quote.js +80 -0
- package/dist/hooks/use-store-api.d.ts +12 -0
- package/dist/hooks/use-store-api.d.ts.map +1 -0
- package/dist/hooks/use-store-api.js +73 -0
- package/dist/hooks/usePreviewSlideSync.d.ts +5 -0
- package/dist/hooks/usePreviewSlideSync.d.ts.map +1 -0
- package/dist/hooks/usePreviewSlideSync.js +28 -0
- package/dist/index.d.ts +150 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +164 -0
- package/dist/json/booking-agenda.json +166 -0
- package/dist/json/booking.json +224 -0
- package/dist/json/clothing-minimal.json +203 -0
- package/dist/json/clothing.json +418 -0
- package/dist/json/electronics-grid.json +246 -0
- package/dist/json/electronics.json +303 -0
- package/dist/json/food-modern.json +191 -0
- package/dist/json/food.json +283 -0
- package/dist/json/json-map.d.ts +7 -0
- package/dist/json/json-map.d.ts.map +1 -0
- package/dist/json/json-map.js +36 -0
- package/dist/json/motivational-speaker.json +361 -0
- package/dist/layouts/booking/components/BookingHomePage.d.ts +7 -0
- package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingHomePage.js +107 -0
- package/dist/layouts/booking/components/BookingMultilineHeading.d.ts +20 -0
- package/dist/layouts/booking/components/BookingMultilineHeading.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingMultilineHeading.js +32 -0
- package/dist/layouts/booking/components/BookingTestimonialCard.d.ts +10 -0
- package/dist/layouts/booking/components/BookingTestimonialCard.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingTestimonialCard.js +11 -0
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts +9 -0
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.js +19 -0
- package/dist/layouts/booking/components/booking-about-defaults.d.ts +26 -0
- package/dist/layouts/booking/components/booking-about-defaults.d.ts.map +1 -0
- package/dist/layouts/booking/components/booking-about-defaults.js +99 -0
- package/dist/layouts/booking/components/booking-footer-defaults.d.ts +19 -0
- package/dist/layouts/booking/components/booking-footer-defaults.d.ts.map +1 -0
- package/dist/layouts/booking/components/booking-footer-defaults.js +52 -0
- package/dist/layouts/booking/components/booking-testimonial-defaults.d.ts +21 -0
- package/dist/layouts/booking/components/booking-testimonial-defaults.d.ts.map +1 -0
- package/dist/layouts/booking/components/booking-testimonial-defaults.js +112 -0
- package/dist/layouts/booking/index.d.ts +9 -0
- package/dist/layouts/booking/index.d.ts.map +1 -0
- package/dist/layouts/booking/index.js +9 -0
- package/dist/layouts/booking/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/AboutPage.js +69 -0
- package/dist/layouts/booking/pages/BookPage.d.ts +8 -0
- package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/BookPage.js +482 -0
- package/dist/layouts/booking/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/booking/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/CategoriesPage.js +30 -0
- package/dist/layouts/booking/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/CategoryPage.js +51 -0
- package/dist/layouts/booking/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ContactPage.js +59 -0
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ProductDetailPage.js +433 -0
- package/dist/layouts/booking/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ServicesPage.js +54 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts +7 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +283 -0
- package/dist/layouts/booking-agenda/index.d.ts +9 -0
- package/dist/layouts/booking-agenda/index.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/index.js +9 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.js +51 -0
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/BookPage.js +468 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.js +23 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.js +48 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.js +57 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +433 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.js +46 -0
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts +7 -0
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -0
- package/dist/layouts/clothing/components/ClothingHomePage.js +260 -0
- package/dist/layouts/clothing/index.d.ts +8 -0
- package/dist/layouts/clothing/index.d.ts.map +1 -0
- package/dist/layouts/clothing/index.js +8 -0
- package/dist/layouts/clothing/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/AboutPage.js +55 -0
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/CategoriesPage.js +34 -0
- package/dist/layouts/clothing/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/CategoryPage.js +77 -0
- package/dist/layouts/clothing/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ContactPage.js +58 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.js +393 -0
- package/dist/layouts/clothing/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ProductsPage.js +268 -0
- package/dist/layouts/clothing/payaza-bindings.d.ts +23 -0
- package/dist/layouts/clothing/payaza-bindings.d.ts.map +1 -0
- package/dist/layouts/clothing/payaza-bindings.js +17 -0
- package/dist/layouts/clothing/styles/clothing.css +80 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts +7 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +163 -0
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts +40 -0
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.js +180 -0
- package/dist/layouts/clothing-minimal/index.d.ts +8 -0
- package/dist/layouts/clothing-minimal/index.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/index.js +8 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.js +71 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +35 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.js +56 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.js +53 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +432 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.js +274 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +40 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts +10 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +107 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.js +96 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts +8 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +10 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.js +99 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +11 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +39 -0
- package/dist/layouts/electronics/index.d.ts +19 -0
- package/dist/layouts/electronics/index.d.ts.map +1 -0
- package/dist/layouts/electronics/index.js +19 -0
- package/dist/layouts/electronics/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/AboutPage.js +51 -0
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/CategoriesPage.js +6 -0
- package/dist/layouts/electronics/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/CategoryPage.js +55 -0
- package/dist/layouts/electronics/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ContactPage.js +57 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +9 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.js +430 -0
- package/dist/layouts/electronics/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ProductsPage.js +273 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/electronics/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/TermsPage.js +9 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.js +376 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts +10 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +107 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts +7 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +111 -0
- package/dist/layouts/electronics-grid/index.d.ts +15 -0
- package/dist/layouts/electronics-grid/index.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/index.js +15 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.js +51 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.js +6 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.js +55 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.js +57 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +26 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +9 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +430 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.js +273 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.js +9 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +376 -0
- package/dist/layouts/food/components/FoodHomePage.d.ts +7 -0
- package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -0
- package/dist/layouts/food/components/FoodHomePage.js +387 -0
- package/dist/layouts/food/index.d.ts +9 -0
- package/dist/layouts/food/index.d.ts.map +1 -0
- package/dist/layouts/food/index.js +9 -0
- package/dist/layouts/food/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/AboutPage.js +67 -0
- package/dist/layouts/food/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/food/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/CategoriesPage.js +26 -0
- package/dist/layouts/food/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/CategoryPage.js +65 -0
- package/dist/layouts/food/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ContactPage.js +55 -0
- package/dist/layouts/food/pages/MenuPage.d.ts +8 -0
- package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/MenuPage.js +107 -0
- package/dist/layouts/food/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ProductDetailPage.js +485 -0
- package/dist/layouts/food/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ProductsPage.js +174 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts +7 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.js +101 -0
- package/dist/layouts/food-modern/index.d.ts +9 -0
- package/dist/layouts/food-modern/index.d.ts.map +1 -0
- package/dist/layouts/food-modern/index.js +9 -0
- package/dist/layouts/food-modern/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/AboutPage.js +52 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.js +23 -0
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/CategoryPage.js +64 -0
- package/dist/layouts/food-modern/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ContactPage.js +55 -0
- package/dist/layouts/food-modern/pages/MenuPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/MenuPage.js +110 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.js +427 -0
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ProductsPage.js +175 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +131 -0
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts +3 -0
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.js +7 -0
- package/dist/layouts/motivational-speaker/index.d.ts +10 -0
- package/dist/layouts/motivational-speaker/index.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/index.js +10 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.js +51 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.js +72 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.js +57 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.js +273 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +8 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +153 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.js +46 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +137 -0
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts +8 -0
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts.map +1 -0
- package/dist/layouts/shared/components/BaseStoreLayout.js +49 -0
- package/dist/layouts/shared/components/CartLineQuantityControl.d.ts +12 -0
- package/dist/layouts/shared/components/CartLineQuantityControl.d.ts.map +1 -0
- package/dist/layouts/shared/components/CartLineQuantityControl.js +99 -0
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts +8 -0
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts.map +1 -0
- package/dist/layouts/shared/components/GenericPageWrapper.js +24 -0
- package/dist/layouts/shared/components/PromoBanner.d.ts +12 -0
- package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -0
- package/dist/layouts/shared/components/PromoBanner.js +17 -0
- package/dist/layouts/shared/components/StoreFooter.d.ts +7 -0
- package/dist/layouts/shared/components/StoreFooter.d.ts.map +1 -0
- package/dist/layouts/shared/components/StoreFooter.js +156 -0
- package/dist/layouts/shared/components/StoreHeader.d.ts +8 -0
- package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -0
- package/dist/layouts/shared/components/StoreHeader.js +111 -0
- package/dist/layouts/shared/components/TestimonialCard.d.ts +8 -0
- package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -0
- package/dist/layouts/shared/components/TestimonialCard.js +10 -0
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts +8 -0
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts.map +1 -0
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.js +16 -0
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts +7 -0
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts.map +1 -0
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.js +38 -0
- package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts +7 -0
- package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts.map +1 -0
- package/dist/layouts/shared/components/headers/FoodModernHeader.js +61 -0
- package/dist/layouts/shared/index.d.ts +23 -0
- package/dist/layouts/shared/index.d.ts.map +1 -0
- package/dist/layouts/shared/index.js +23 -0
- package/dist/layouts/shared/pages/AccountPage.d.ts +7 -0
- package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/AccountPage.js +549 -0
- package/dist/layouts/shared/pages/CartPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CartPage.js +121 -0
- package/dist/layouts/shared/pages/CheckoutPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CheckoutPage.js +1430 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.js +9 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts +9 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.js +8 -0
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/shared/pages/MaintenancePage.d.ts +7 -0
- package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/MaintenancePage.js +10 -0
- package/dist/layouts/shared/pages/PortfolioPage.d.ts +7 -0
- package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/PortfolioPage.js +130 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.js +9 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts +7 -0
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/SizeGuidePage.js +10 -0
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts +7 -0
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/StyleGuidePage.js +126 -0
- package/dist/layouts/shared/pages/TeamPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TeamPage.js +39 -0
- package/dist/layouts/shared/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TermsPage.js +9 -0
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TrackOrderPage.js +379 -0
- package/dist/layouts/shared/pages/WishlistPage.d.ts +7 -0
- package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/WishlistPage.js +144 -0
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts +14 -0
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.js +152 -0
- package/dist/layouts/shared/wrappers/ClothingLayout.d.ts +10 -0
- package/dist/layouts/shared/wrappers/ClothingLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/ClothingLayout.js +44 -0
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.js +48 -0
- package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/ElectronicsLayout.js +40 -0
- package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/FoodModernLayout.js +48 -0
- package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/MotivationalLayout.js +51 -0
- package/dist/layouts/shared/wrappers/StandardLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/StandardLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/StandardLayout.js +45 -0
- package/dist/lib/alignment-schemas.d.ts +51 -0
- package/dist/lib/alignment-schemas.d.ts.map +1 -0
- package/dist/lib/alignment-schemas.js +637 -0
- package/dist/lib/api.d.ts +11 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +167 -0
- package/dist/lib/auth-context.d.ts +49 -0
- package/dist/lib/auth-context.d.ts.map +1 -0
- package/dist/lib/auth-context.js +296 -0
- package/dist/lib/checkout-availability.d.ts +10 -0
- package/dist/lib/checkout-availability.d.ts.map +1 -0
- package/dist/lib/checkout-availability.js +16 -0
- package/dist/lib/compact-array-items.d.ts +7 -0
- package/dist/lib/compact-array-items.d.ts.map +1 -0
- package/dist/lib/compact-array-items.js +13 -0
- package/dist/lib/content-selectors.d.ts +21 -0
- package/dist/lib/content-selectors.d.ts.map +1 -0
- package/dist/lib/content-selectors.js +75 -0
- package/dist/lib/countries.d.ts +13 -0
- package/dist/lib/countries.d.ts.map +1 -0
- package/dist/lib/countries.js +292 -0
- package/dist/lib/currency-symbols.d.ts +36 -0
- package/dist/lib/currency-symbols.d.ts.map +1 -0
- package/dist/lib/currency-symbols.js +153 -0
- package/dist/lib/guest-user.d.ts +27 -0
- package/dist/lib/guest-user.d.ts.map +1 -0
- package/dist/lib/guest-user.js +71 -0
- package/dist/lib/inventory-utils.d.ts +41 -0
- package/dist/lib/inventory-utils.d.ts.map +1 -0
- package/dist/lib/inventory-utils.js +180 -0
- package/dist/lib/layout-badges.d.ts +4 -0
- package/dist/lib/layout-badges.d.ts.map +1 -0
- package/dist/lib/layout-badges.js +5 -0
- package/dist/lib/layout-config-hydration.d.ts +25 -0
- package/dist/lib/layout-config-hydration.d.ts.map +1 -0
- package/dist/lib/layout-config-hydration.js +264 -0
- package/dist/lib/layout-field-normalize.d.ts +18 -0
- package/dist/lib/layout-field-normalize.d.ts.map +1 -0
- package/dist/lib/layout-field-normalize.js +190 -0
- package/dist/lib/layout-route-utils.d.ts +30 -0
- package/dist/lib/layout-route-utils.d.ts.map +1 -0
- package/dist/lib/layout-route-utils.js +79 -0
- package/dist/lib/limited-time-offer.d.ts +6 -0
- package/dist/lib/limited-time-offer.d.ts.map +1 -0
- package/dist/lib/limited-time-offer.js +24 -0
- package/dist/lib/loading-context.d.ts +20 -0
- package/dist/lib/loading-context.d.ts.map +1 -0
- package/dist/lib/loading-context.js +212 -0
- package/dist/lib/mock-stores.d.ts +24 -0
- package/dist/lib/mock-stores.d.ts.map +1 -0
- package/dist/lib/mock-stores.js +2106 -0
- package/dist/lib/order-success-cart.d.ts +5 -0
- package/dist/lib/order-success-cart.d.ts.map +1 -0
- package/dist/lib/order-success-cart.js +50 -0
- package/dist/lib/payaza-checkout.d.ts +147 -0
- package/dist/lib/payaza-checkout.d.ts.map +1 -0
- package/dist/lib/payaza-checkout.js +717 -0
- package/dist/lib/payaza-section-styles.d.ts +16 -0
- package/dist/lib/payaza-section-styles.d.ts.map +1 -0
- package/dist/lib/payaza-section-styles.js +93 -0
- package/dist/lib/preview-data.d.ts +58 -0
- package/dist/lib/preview-data.d.ts.map +1 -0
- package/dist/lib/preview-data.js +2576 -0
- package/dist/lib/product-variation-utils.d.ts +8 -0
- package/dist/lib/product-variation-utils.d.ts.map +1 -0
- package/dist/lib/product-variation-utils.js +101 -0
- package/dist/lib/rich-html.d.ts +38 -0
- package/dist/lib/rich-html.d.ts.map +1 -0
- package/dist/lib/rich-html.js +272 -0
- package/dist/lib/services/analytics.service.d.ts +59 -0
- package/dist/lib/services/analytics.service.d.ts.map +1 -0
- package/dist/lib/services/analytics.service.js +382 -0
- package/dist/lib/services/auth.service.d.ts +63 -0
- package/dist/lib/services/auth.service.d.ts.map +1 -0
- package/dist/lib/services/auth.service.js +101 -0
- package/dist/lib/services/booking.service.d.ts +53 -0
- package/dist/lib/services/booking.service.d.ts.map +1 -0
- package/dist/lib/services/booking.service.js +52 -0
- package/dist/lib/services/category.service.d.ts +21 -0
- package/dist/lib/services/category.service.d.ts.map +1 -0
- package/dist/lib/services/category.service.js +41 -0
- package/dist/lib/services/checkout.service.d.ts +168 -0
- package/dist/lib/services/checkout.service.d.ts.map +1 -0
- package/dist/lib/services/checkout.service.js +48 -0
- package/dist/lib/services/contact.service.d.ts +26 -0
- package/dist/lib/services/contact.service.d.ts.map +1 -0
- package/dist/lib/services/contact.service.js +23 -0
- package/dist/lib/services/customer.service.d.ts +54 -0
- package/dist/lib/services/customer.service.d.ts.map +1 -0
- package/dist/lib/services/customer.service.js +64 -0
- package/dist/lib/services/fees.service.d.ts +85 -0
- package/dist/lib/services/fees.service.d.ts.map +1 -0
- package/dist/lib/services/fees.service.js +147 -0
- package/dist/lib/services/index.d.ts +19 -0
- package/dist/lib/services/index.d.ts.map +1 -0
- package/dist/lib/services/index.js +18 -0
- package/dist/lib/services/location.service.d.ts +31 -0
- package/dist/lib/services/location.service.d.ts.map +1 -0
- package/dist/lib/services/location.service.js +25 -0
- package/dist/lib/services/order.service.d.ts +5 -0
- package/dist/lib/services/order.service.d.ts.map +1 -0
- package/dist/lib/services/order.service.js +12 -0
- package/dist/lib/services/payment.service.d.ts +56 -0
- package/dist/lib/services/payment.service.d.ts.map +1 -0
- package/dist/lib/services/payment.service.js +122 -0
- package/dist/lib/services/product.service.d.ts +92 -0
- package/dist/lib/services/product.service.d.ts.map +1 -0
- package/dist/lib/services/product.service.js +86 -0
- package/dist/lib/services/promo.service.d.ts +31 -0
- package/dist/lib/services/promo.service.d.ts.map +1 -0
- package/dist/lib/services/promo.service.js +29 -0
- package/dist/lib/services/review.service.d.ts +47 -0
- package/dist/lib/services/review.service.d.ts.map +1 -0
- package/dist/lib/services/review.service.js +54 -0
- package/dist/lib/services/service.service.d.ts +55 -0
- package/dist/lib/services/service.service.d.ts.map +1 -0
- package/dist/lib/services/service.service.js +37 -0
- package/dist/lib/services/shipping.service.d.ts +62 -0
- package/dist/lib/services/shipping.service.d.ts.map +1 -0
- package/dist/lib/services/shipping.service.js +39 -0
- package/dist/lib/services/store.service.d.ts +89 -0
- package/dist/lib/services/store.service.d.ts.map +1 -0
- package/dist/lib/services/store.service.js +41 -0
- package/dist/lib/shipping-address.util.d.ts +76 -0
- package/dist/lib/shipping-address.util.d.ts.map +1 -0
- package/dist/lib/shipping-address.util.js +149 -0
- package/dist/lib/shipping-settings.util.d.ts +4 -0
- package/dist/lib/shipping-settings.util.d.ts.map +1 -0
- package/dist/lib/shipping-settings.util.js +6 -0
- package/dist/lib/store-config-utils.d.ts +50 -0
- package/dist/lib/store-config-utils.d.ts.map +1 -0
- package/dist/lib/store-config-utils.js +1713 -0
- package/dist/lib/store-config.d.ts +4 -0
- package/dist/lib/store-config.d.ts.map +1 -0
- package/dist/lib/store-config.js +4 -0
- package/dist/lib/store-context.d.ts +69 -0
- package/dist/lib/store-context.d.ts.map +1 -0
- package/dist/lib/store-context.js +456 -0
- package/dist/lib/store-types.d.ts +921 -0
- package/dist/lib/store-types.d.ts.map +1 -0
- package/dist/lib/store-types.js +1 -0
- package/dist/lib/template-pages.d.ts +8 -0
- package/dist/lib/template-pages.d.ts.map +1 -0
- package/dist/lib/template-pages.js +62 -0
- package/dist/lib/utils/asset-helpers.d.ts +111 -0
- package/dist/lib/utils/asset-helpers.d.ts.map +1 -0
- package/dist/lib/utils/asset-helpers.js +462 -0
- package/dist/lib/utils/catalog-price-bounds.d.ts +13 -0
- package/dist/lib/utils/catalog-price-bounds.d.ts.map +1 -0
- package/dist/lib/utils/catalog-price-bounds.js +24 -0
- package/dist/lib/utils/category-tree.d.ts +25 -0
- package/dist/lib/utils/category-tree.d.ts.map +1 -0
- package/dist/lib/utils/category-tree.js +85 -0
- package/dist/lib/utils/demo-detection.d.ts +23 -0
- package/dist/lib/utils/demo-detection.d.ts.map +1 -0
- package/dist/lib/utils/demo-detection.js +36 -0
- package/dist/lib/utils/editor-preview.d.ts +42 -0
- package/dist/lib/utils/editor-preview.d.ts.map +1 -0
- package/dist/lib/utils/editor-preview.js +214 -0
- package/dist/lib/utils/fee-calculations.d.ts +35 -0
- package/dist/lib/utils/fee-calculations.d.ts.map +1 -0
- package/dist/lib/utils/fee-calculations.js +81 -0
- package/dist/lib/utils/footer-nav-defaults.d.ts +11 -0
- package/dist/lib/utils/footer-nav-defaults.d.ts.map +1 -0
- package/dist/lib/utils/footer-nav-defaults.js +67 -0
- package/dist/lib/utils/idempotency-key.d.ts +15 -0
- package/dist/lib/utils/idempotency-key.d.ts.map +1 -0
- package/dist/lib/utils/idempotency-key.js +22 -0
- package/dist/lib/utils/index.d.ts +45 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +197 -0
- package/dist/lib/utils/mobile-editor.d.ts +13 -0
- package/dist/lib/utils/mobile-editor.d.ts.map +1 -0
- package/dist/lib/utils/mobile-editor.js +34 -0
- package/dist/lib/utils/phone-format.d.ts +6 -0
- package/dist/lib/utils/phone-format.d.ts.map +1 -0
- package/dist/lib/utils/phone-format.js +17 -0
- package/dist/lib/utils/product-catalog.d.ts +11 -0
- package/dist/lib/utils/product-catalog.d.ts.map +1 -0
- package/dist/lib/utils/product-catalog.js +40 -0
- package/dist/lib/utils/product-images.d.ts +20 -0
- package/dist/lib/utils/product-images.d.ts.map +1 -0
- package/dist/lib/utils/product-images.js +31 -0
- package/dist/lib/utils/product-share.d.ts +17 -0
- package/dist/lib/utils/product-share.d.ts.map +1 -0
- package/dist/lib/utils/product-share.js +48 -0
- package/dist/lib/utils/scroll-to-top.util.d.ts +9 -0
- package/dist/lib/utils/scroll-to-top.util.d.ts.map +1 -0
- package/dist/lib/utils/scroll-to-top.util.js +18 -0
- package/dist/lib/utils/url-helpers.d.ts +30 -0
- package/dist/lib/utils/url-helpers.d.ts.map +1 -0
- package/dist/lib/utils/url-helpers.js +61 -0
- package/dist/lib/utils/video-helpers.d.ts +32 -0
- package/dist/lib/utils/video-helpers.d.ts.map +1 -0
- package/dist/lib/utils/video-helpers.js +210 -0
- package/dist/preview/LayoutPreview.d.ts +14 -0
- package/dist/preview/LayoutPreview.d.ts.map +1 -0
- package/dist/preview/LayoutPreview.js +122 -0
- package/dist/preview/PreviewRouter.d.ts +9 -0
- package/dist/preview/PreviewRouter.d.ts.map +1 -0
- package/dist/preview/PreviewRouter.js +332 -0
- package/dist/preview/ShadowDOMWrapper.d.ts +18 -0
- package/dist/preview/ShadowDOMWrapper.d.ts.map +1 -0
- package/dist/preview/ShadowDOMWrapper.js +80 -0
- package/dist/preview/canvas/PreviewBlockToolbar.d.ts +23 -0
- package/dist/preview/canvas/PreviewBlockToolbar.d.ts.map +1 -0
- package/dist/preview/canvas/PreviewBlockToolbar.js +113 -0
- package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts +17 -0
- package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts.map +1 -0
- package/dist/preview/canvas/PreviewCanvasEnhancer.js +741 -0
- package/dist/preview/canvas/PreviewCanvasStyles.d.ts +4 -0
- package/dist/preview/canvas/PreviewCanvasStyles.d.ts.map +1 -0
- package/dist/preview/canvas/PreviewCanvasStyles.js +51 -0
- package/dist/preview/canvas/extract-editable-plain-text.d.ts +11 -0
- package/dist/preview/canvas/extract-editable-plain-text.d.ts.map +1 -0
- package/dist/preview/canvas/extract-editable-plain-text.js +65 -0
- package/dist/preview/canvas/field-key.d.ts +34 -0
- package/dist/preview/canvas/field-key.d.ts.map +1 -0
- package/dist/preview/canvas/field-key.js +62 -0
- package/dist/preview/canvas/preview-editable-commit.util.d.ts +3 -0
- package/dist/preview/canvas/preview-editable-commit.util.d.ts.map +1 -0
- package/dist/preview/canvas/preview-editable-commit.util.js +11 -0
- package/dist/preview/canvas/preview-flush-await.d.ts +6 -0
- package/dist/preview/canvas/preview-flush-await.d.ts.map +1 -0
- package/dist/preview/canvas/preview-flush-await.js +23 -0
- package/dist/preview/canvas/preview-flush-handle.d.ts +13 -0
- package/dist/preview/canvas/preview-flush-handle.d.ts.map +1 -0
- package/dist/preview/canvas/preview-flush-handle.js +3 -0
- package/dist/preview/canvas/preview-isolation.d.ts +9 -0
- package/dist/preview/canvas/preview-isolation.d.ts.map +1 -0
- package/dist/preview/canvas/preview-isolation.js +10 -0
- package/dist/preview/canvas/preview-messages.d.ts +65 -0
- package/dist/preview/canvas/preview-messages.d.ts.map +1 -0
- package/dist/preview/canvas/preview-messages.js +17 -0
- package/dist/preview/canvas/preview-route.d.ts +4 -0
- package/dist/preview/canvas/preview-route.d.ts.map +1 -0
- package/dist/preview/canvas/preview-route.js +76 -0
- package/dist/preview/index.d.ts +13 -0
- package/dist/preview/index.d.ts.map +1 -0
- package/dist/preview/index.js +12 -0
- package/dist/preview/route-audit.d.ts +17 -0
- package/dist/preview/route-audit.d.ts.map +1 -0
- package/dist/preview/route-audit.js +54 -0
- package/dist/styles/index.css +10598 -0
- package/dist/utils/date.d.ts +20 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +47 -0
- package/package.json +192 -0
|
@@ -0,0 +1,717 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payaza Checkout SDK Integration
|
|
3
|
+
* Based on Payaza Web SDK documentation: https://docs.payaza.africa/developers/apis/sdks/web-sdk
|
|
4
|
+
*
|
|
5
|
+
* Implementation uses npm package: payaza_staging_sdk
|
|
6
|
+
* Method: setup(config).showPopup()
|
|
7
|
+
*/
|
|
8
|
+
import PayazaCheckout from 'payaza_staging_sdk';
|
|
9
|
+
import { normalizePhoneForPayaza } from '../lib/utils/phone-format.js';
|
|
10
|
+
/** Map backend payazaConnectionMode (or legacy environment values) to SDK connection mode. */
|
|
11
|
+
export function normalizeConnectionMode(value) {
|
|
12
|
+
if (value === 'Test' || value === 'test')
|
|
13
|
+
return 'Test';
|
|
14
|
+
return 'Live';
|
|
15
|
+
}
|
|
16
|
+
export function validateAndNormalizeCurrency(currency) {
|
|
17
|
+
if (!currency || typeof currency !== 'string') {
|
|
18
|
+
throw new Error('Currency is required and must be a string');
|
|
19
|
+
}
|
|
20
|
+
// Normalize: trim whitespace and convert to uppercase
|
|
21
|
+
const normalized = currency.trim().toUpperCase();
|
|
22
|
+
// Validate: must be exactly 3 uppercase letters (ISO 4217 format)
|
|
23
|
+
const iso4217Pattern = /^[A-Z]{3}$/;
|
|
24
|
+
if (!iso4217Pattern.test(normalized)) {
|
|
25
|
+
throw new Error(`Invalid currency format: "${currency}". Must be a 3-letter ISO 4217 code (e.g., USD, NGN, KES, GHS)`);
|
|
26
|
+
}
|
|
27
|
+
return normalized;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate and normalize currency with fallback
|
|
31
|
+
* @param currency - Currency code to validate
|
|
32
|
+
* @param fallback - Fallback currency if validation fails (default: 'USD')
|
|
33
|
+
* @returns Validated uppercase ISO 4217 currency code or fallback
|
|
34
|
+
*/
|
|
35
|
+
export function validateAndNormalizeCurrencyWithFallback(currency, fallback = 'USD') {
|
|
36
|
+
try {
|
|
37
|
+
return validateAndNormalizeCurrency(currency);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.warn(`[Currency] Invalid currency "${currency}", using fallback "${fallback}":`, error);
|
|
41
|
+
try {
|
|
42
|
+
return validateAndNormalizeCurrency(fallback);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
console.error(`[Currency] Fallback currency "${fallback}" is also invalid, using USD`);
|
|
46
|
+
return 'USD';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Extract currency from items with fallback logic
|
|
52
|
+
* Handles mixed currencies by using the most common currency, or first item's currency
|
|
53
|
+
* All currencies are validated and normalized to ISO 4217 format
|
|
54
|
+
*/
|
|
55
|
+
export function getCurrencyFromItems(items, fallbackCurrency) {
|
|
56
|
+
if (!items || items.length === 0) {
|
|
57
|
+
return validateAndNormalizeCurrencyWithFallback(fallbackCurrency, 'USD');
|
|
58
|
+
}
|
|
59
|
+
// Extract currencies from items and validate/normalize them
|
|
60
|
+
const currencies = [];
|
|
61
|
+
for (const item of items) {
|
|
62
|
+
if (item.product?.currency) {
|
|
63
|
+
try {
|
|
64
|
+
const validated = validateAndNormalizeCurrency(item.product.currency);
|
|
65
|
+
currencies.push(validated);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.warn(`[Currency] Invalid currency "${item.product.currency}" in product, skipping:`, error);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (currencies.length === 0) {
|
|
73
|
+
return validateAndNormalizeCurrencyWithFallback(fallbackCurrency, 'USD');
|
|
74
|
+
}
|
|
75
|
+
// If all items have the same currency, use it
|
|
76
|
+
const uniqueCurrencies = Array.from(new Set(currencies));
|
|
77
|
+
if (uniqueCurrencies.length === 1) {
|
|
78
|
+
return uniqueCurrencies[0];
|
|
79
|
+
}
|
|
80
|
+
// If mixed currencies, find the most common one
|
|
81
|
+
const currencyCounts = {};
|
|
82
|
+
currencies.forEach(currency => {
|
|
83
|
+
currencyCounts[currency] = (currencyCounts[currency] || 0) + 1;
|
|
84
|
+
});
|
|
85
|
+
const mostCommonCurrency = Object.entries(currencyCounts).reduce((a, b) => currencyCounts[a[0]] > currencyCounts[b[0]] ? a : b)[0];
|
|
86
|
+
return mostCommonCurrency;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Remove all Payaza SDK DOM nodes (loader overlay + invisible iframe).
|
|
90
|
+
* The SDK appends a fullscreen fixed iframe at max z-index; if checkout never
|
|
91
|
+
* loads, only the spinner is removed and the invisible iframe blocks all clicks.
|
|
92
|
+
*/
|
|
93
|
+
export function teardownPayazaCheckoutDom() {
|
|
94
|
+
if (typeof document === 'undefined' || !document.body)
|
|
95
|
+
return;
|
|
96
|
+
document.querySelectorAll('style').forEach((styleEl) => {
|
|
97
|
+
if (styleEl.textContent?.includes('payaza-loading-spinner')) {
|
|
98
|
+
styleEl.remove();
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
document.querySelectorAll('div').forEach((div) => {
|
|
102
|
+
if (div.innerHTML.includes('payaza-loading-spinner')) {
|
|
103
|
+
div.remove();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
document.querySelectorAll('iframe[src*="payaza.africa"], iframe[src*="shopaza.africa"]').forEach((iframe) => {
|
|
107
|
+
iframe.remove();
|
|
108
|
+
});
|
|
109
|
+
if (document.body.style.overflow === 'hidden') {
|
|
110
|
+
document.body.style.overflow = '';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const PAYAZA_IFRAME_SELECTOR = 'iframe[src*="payaza.africa"], iframe[src*="shopaza.africa"]';
|
|
114
|
+
/**
|
|
115
|
+
* Payaza checkout is served without Cross-Origin-Resource-Policy. When the host
|
|
116
|
+
* page sets COEP credentialless, the iframe must have the `credentialless` attribute
|
|
117
|
+
* or the embed is blocked (DevTools: "Cross-Origin-Resource-Policy header not set").
|
|
118
|
+
*/
|
|
119
|
+
function patchPayazaIframeForCoep(iframe) {
|
|
120
|
+
if (!iframe.hasAttribute('credentialless')) {
|
|
121
|
+
iframe.setAttribute('credentialless', '');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function patchPayazaIframesInDom() {
|
|
125
|
+
if (typeof document === 'undefined')
|
|
126
|
+
return;
|
|
127
|
+
document.querySelectorAll(PAYAZA_IFRAME_SELECTOR).forEach((node) => {
|
|
128
|
+
patchPayazaIframeForCoep(node);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function observePayazaIframeInsertion() {
|
|
132
|
+
if (typeof document === 'undefined' || !document.body) {
|
|
133
|
+
return () => { };
|
|
134
|
+
}
|
|
135
|
+
patchPayazaIframesInDom();
|
|
136
|
+
const observer = new MutationObserver(() => {
|
|
137
|
+
patchPayazaIframesInDom();
|
|
138
|
+
});
|
|
139
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
140
|
+
return () => observer.disconnect();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Initialize Payaza checkout using SDK
|
|
144
|
+
* Uses setup() function from payaza-web-sdk npm package as per official documentation
|
|
145
|
+
*/
|
|
146
|
+
export const initiatePayazaCheckout = async (config) => {
|
|
147
|
+
try {
|
|
148
|
+
// Validate currency before proceeding
|
|
149
|
+
if (!config.currency) {
|
|
150
|
+
throw new Error('Currency is required for Payaza checkout');
|
|
151
|
+
}
|
|
152
|
+
// Validate and normalize currency to ISO 4217 format
|
|
153
|
+
let validatedCurrency;
|
|
154
|
+
try {
|
|
155
|
+
validatedCurrency = validateAndNormalizeCurrency(config.currency);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
throw new Error(`Invalid currency code: ${config.currency}. Currency must be a valid 3-letter ISO 4217 code (e.g., USD, NGN, KES, GHS)`);
|
|
159
|
+
}
|
|
160
|
+
console.log('[Payaza] Initiating checkout with npm package...');
|
|
161
|
+
console.log('[Payaza] SDK verified ready, proceeding with checkout setup');
|
|
162
|
+
if (!Number.isFinite(config.amount) || config.amount <= 0) {
|
|
163
|
+
throw new Error('Invalid payment amount. Please refresh and try again.');
|
|
164
|
+
}
|
|
165
|
+
if (!config.email?.trim()) {
|
|
166
|
+
throw new Error('Email is required for payment.');
|
|
167
|
+
}
|
|
168
|
+
if (!config.firstName?.trim()) {
|
|
169
|
+
throw new Error('First name is required for payment.');
|
|
170
|
+
}
|
|
171
|
+
if (!config.lastName?.trim()) {
|
|
172
|
+
throw new Error('Last name is required for payment.');
|
|
173
|
+
}
|
|
174
|
+
const normalizedPhone = config.phone ? normalizePhoneForPayaza(config.phone) : '';
|
|
175
|
+
// Generate transaction reference
|
|
176
|
+
const reference = config.reference || `PL${Math.floor((Math.random() * 10000000) + 1)}`;
|
|
177
|
+
console.log('[Payaza] Transaction reference:', reference);
|
|
178
|
+
// Determine connection mode — backend config is authoritative; default Live
|
|
179
|
+
if (!config.publicKey) {
|
|
180
|
+
throw new Error('Payment gateway not configured. Please contact support.');
|
|
181
|
+
}
|
|
182
|
+
const connectionMode = config.connectionMode
|
|
183
|
+
? normalizeConnectionMode(config.connectionMode)
|
|
184
|
+
: PayazaCheckout.LIVE_CONNECTION_MODE;
|
|
185
|
+
console.log('[Payaza] Connection mode:', connectionMode, config.connectionMode ? '(from backend config)' : '(default Live)');
|
|
186
|
+
// Build comprehensive additional_details metadata
|
|
187
|
+
// This data will be available in Payaza webhooks and transaction responses
|
|
188
|
+
const additionalDetails = {
|
|
189
|
+
// Merge any custom metadata first
|
|
190
|
+
...(config.metadata || {}),
|
|
191
|
+
};
|
|
192
|
+
console.log('[Payaza] Building checkout configuration...', {
|
|
193
|
+
amount: config.amount,
|
|
194
|
+
currency: validatedCurrency,
|
|
195
|
+
email: config.email,
|
|
196
|
+
connectionMode,
|
|
197
|
+
});
|
|
198
|
+
// Core order identifiers
|
|
199
|
+
if (config.storeId) {
|
|
200
|
+
additionalDetails.storeId = config.storeId;
|
|
201
|
+
}
|
|
202
|
+
if (config.orderId) {
|
|
203
|
+
additionalDetails.orderId = config.orderId;
|
|
204
|
+
}
|
|
205
|
+
if (config.orderNumber) {
|
|
206
|
+
additionalDetails.orderNumber = config.orderNumber;
|
|
207
|
+
}
|
|
208
|
+
// Customer information
|
|
209
|
+
if (config.email) {
|
|
210
|
+
additionalDetails.customerEmail = config.email;
|
|
211
|
+
}
|
|
212
|
+
if (config.firstName) {
|
|
213
|
+
additionalDetails.customerFirstName = config.firstName;
|
|
214
|
+
}
|
|
215
|
+
if (config.lastName) {
|
|
216
|
+
additionalDetails.customerLastName = config.lastName;
|
|
217
|
+
}
|
|
218
|
+
if (normalizedPhone) {
|
|
219
|
+
additionalDetails.customerPhone = normalizedPhone;
|
|
220
|
+
}
|
|
221
|
+
// Shipping address information
|
|
222
|
+
if (config.shippingAddress) {
|
|
223
|
+
additionalDetails.shippingAddress = {
|
|
224
|
+
firstName: config.shippingAddress.firstName,
|
|
225
|
+
lastName: config.shippingAddress.lastName,
|
|
226
|
+
address: config.shippingAddress.address,
|
|
227
|
+
city: config.shippingAddress.city,
|
|
228
|
+
state: config.shippingAddress.state,
|
|
229
|
+
country: config.shippingAddress.country,
|
|
230
|
+
zipCode: config.shippingAddress.zipCode,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// Transaction details
|
|
234
|
+
additionalDetails.amount = config.amount;
|
|
235
|
+
additionalDetails.currency = validatedCurrency;
|
|
236
|
+
if (config.description) {
|
|
237
|
+
additionalDetails.description = config.description;
|
|
238
|
+
}
|
|
239
|
+
// Timestamp for tracking
|
|
240
|
+
additionalDetails.timestamp = new Date().toISOString();
|
|
241
|
+
if (config.merchantReference) {
|
|
242
|
+
additionalDetails.merchantReference = config.merchantReference;
|
|
243
|
+
}
|
|
244
|
+
// Setup Payaza checkout with correct configuration
|
|
245
|
+
// Ensure currency_code is validated ISO 4217 format
|
|
246
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
247
|
+
const payazaConfig = {
|
|
248
|
+
merchant_key: config.publicKey,
|
|
249
|
+
connection_mode: connectionMode,
|
|
250
|
+
checkout_amount: config.amount,
|
|
251
|
+
currency_code: validatedCurrency, // Use validated ISO 4217 currency code
|
|
252
|
+
currency: validatedCurrency, // Required by npm package
|
|
253
|
+
email_address: config.email,
|
|
254
|
+
first_name: config.firstName || '', // Required field
|
|
255
|
+
last_name: config.lastName || '', // Required field
|
|
256
|
+
phone_number: normalizedPhone,
|
|
257
|
+
transaction_reference: reference,
|
|
258
|
+
additional_details: additionalDetails,
|
|
259
|
+
// Required by interface, but we'll override with setCallback/setOnClose
|
|
260
|
+
onClose: () => { },
|
|
261
|
+
callback: () => { },
|
|
262
|
+
};
|
|
263
|
+
if (config.merchantReference) {
|
|
264
|
+
payazaConfig.merchant_reference = config.merchantReference;
|
|
265
|
+
}
|
|
266
|
+
if (config.callbackUrl) {
|
|
267
|
+
payazaConfig.callback_url = config.callbackUrl;
|
|
268
|
+
}
|
|
269
|
+
// Create checkout instance
|
|
270
|
+
console.log('[Payaza] Calling setup() from payaza-web-sdk...');
|
|
271
|
+
const payazaCheckout = PayazaCheckout.setup(payazaConfig);
|
|
272
|
+
console.log('[Payaza] PayazaCheckout instance created successfully');
|
|
273
|
+
// Track payment success state to prevent misleading "Payment canceled" message
|
|
274
|
+
// when checkout window closes after successful payment
|
|
275
|
+
let paymentSuccessful = false;
|
|
276
|
+
let closeHandled = false;
|
|
277
|
+
const PAYAZA_CLOSE_CHECK_MS = 1500;
|
|
278
|
+
const PAYAZA_CLOSE_CHECK_MAX_MS = 5 * 60 * 1000; // 5 minutes
|
|
279
|
+
const PAYAZA_LOADER_TIMEOUT_MS = 30000; // 30 seconds
|
|
280
|
+
const popupOpenedAt = Date.now();
|
|
281
|
+
let closeCheckIntervalId = null;
|
|
282
|
+
let loaderTimeoutId = null;
|
|
283
|
+
let checkoutLoadedFired = false;
|
|
284
|
+
const removePayazaLoaderDom = () => {
|
|
285
|
+
teardownPayazaCheckoutDom();
|
|
286
|
+
};
|
|
287
|
+
const clearLoaderTimeout = () => {
|
|
288
|
+
if (loaderTimeoutId) {
|
|
289
|
+
clearTimeout(loaderTimeoutId);
|
|
290
|
+
loaderTimeoutId = null;
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
const markCheckoutLoaded = () => {
|
|
294
|
+
if (checkoutLoadedFired)
|
|
295
|
+
return;
|
|
296
|
+
checkoutLoadedFired = true;
|
|
297
|
+
clearLoaderTimeout();
|
|
298
|
+
config.onCheckoutLoaded?.();
|
|
299
|
+
};
|
|
300
|
+
const hasPayazaLoaderInDom = () => {
|
|
301
|
+
if (typeof document === 'undefined')
|
|
302
|
+
return false;
|
|
303
|
+
let found = false;
|
|
304
|
+
document.querySelectorAll('style').forEach((styleEl) => {
|
|
305
|
+
if (styleEl.textContent?.includes('payaza-loading-spinner')) {
|
|
306
|
+
found = true;
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
document.querySelectorAll('div').forEach((div) => {
|
|
310
|
+
if (div.innerHTML.includes('payaza-loading-spinner')) {
|
|
311
|
+
found = true;
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
return found;
|
|
315
|
+
};
|
|
316
|
+
const clearCloseCheckInterval = () => {
|
|
317
|
+
if (closeCheckIntervalId) {
|
|
318
|
+
clearInterval(closeCheckIntervalId);
|
|
319
|
+
closeCheckIntervalId = null;
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
let stopIframeObserver = null;
|
|
323
|
+
const handleClose = () => {
|
|
324
|
+
if (closeHandled)
|
|
325
|
+
return;
|
|
326
|
+
closeHandled = true;
|
|
327
|
+
stopIframeObserver?.();
|
|
328
|
+
stopIframeObserver = null;
|
|
329
|
+
clearCloseCheckInterval();
|
|
330
|
+
// Only call onClose when payment was not successful (user closed/canceled)
|
|
331
|
+
// When payment succeeded, SDK closes popup too - avoid misleading "Payment canceled" toast
|
|
332
|
+
if (!paymentSuccessful && config.onClose)
|
|
333
|
+
config.onClose();
|
|
334
|
+
paymentSuccessful = false;
|
|
335
|
+
};
|
|
336
|
+
// Set callback for payment response
|
|
337
|
+
payazaCheckout.setCallback((callbackResponse) => {
|
|
338
|
+
// TO BE REMOVED FOR PRODUCTION - Temporary logging for debugging
|
|
339
|
+
console.log('=== PAYAZA CHECKOUT SDK CALLBACK DATA (TO BE REMOVED FOR PRODUCTION) ===');
|
|
340
|
+
console.log('Full callback response:', JSON.stringify(callbackResponse, null, 2));
|
|
341
|
+
console.log('=== END OF CALLBACK DATA ===');
|
|
342
|
+
// Parse the callback response structure
|
|
343
|
+
// Payaza returns: { type: "success", status: 201, data: { ... } } for success
|
|
344
|
+
// Payaza returns: { type: "error", status: 400/500, data: { message, errors: [...] } } for errors
|
|
345
|
+
const isErrorResponse = callbackResponse.type === 'error' ||
|
|
346
|
+
(callbackResponse.status && callbackResponse.status >= 400 && callbackResponse.status < 600);
|
|
347
|
+
const isSuccessResponse = callbackResponse.type === 'success' ||
|
|
348
|
+
(callbackResponse.status !== undefined &&
|
|
349
|
+
callbackResponse.status >= 200 &&
|
|
350
|
+
callbackResponse.status < 300);
|
|
351
|
+
// Handle error responses first
|
|
352
|
+
if (isErrorResponse) {
|
|
353
|
+
const errorData = callbackResponse.data;
|
|
354
|
+
let errorMessage = 'Payment failed';
|
|
355
|
+
// Extract error message from response
|
|
356
|
+
if (errorData?.message) {
|
|
357
|
+
errorMessage = errorData.message;
|
|
358
|
+
}
|
|
359
|
+
else if (errorData?.errors && Array.isArray(errorData.errors) && errorData.errors.length > 0) {
|
|
360
|
+
// Handle validation errors
|
|
361
|
+
const validationErrors = errorData.errors.map((err) => {
|
|
362
|
+
if (err.field && err.errors && Array.isArray(err.errors)) {
|
|
363
|
+
return `${err.field}: ${err.errors.join(', ')}`;
|
|
364
|
+
}
|
|
365
|
+
return JSON.stringify(err);
|
|
366
|
+
});
|
|
367
|
+
errorMessage = `Validation error: ${validationErrors.join('; ')}`;
|
|
368
|
+
}
|
|
369
|
+
else if (typeof errorData === 'string') {
|
|
370
|
+
errorMessage = errorData;
|
|
371
|
+
}
|
|
372
|
+
console.error('[Payaza Callback] Payment error:', {
|
|
373
|
+
type: callbackResponse.type,
|
|
374
|
+
status: callbackResponse.status,
|
|
375
|
+
message: errorMessage,
|
|
376
|
+
data: errorData,
|
|
377
|
+
});
|
|
378
|
+
clearCloseCheckInterval();
|
|
379
|
+
clearLoaderTimeout();
|
|
380
|
+
removePayazaLoaderDom();
|
|
381
|
+
if (config.onError) {
|
|
382
|
+
config.onError(errorMessage);
|
|
383
|
+
}
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
// Handle success responses
|
|
387
|
+
if (isSuccessResponse && callbackResponse.data) {
|
|
388
|
+
// Full success response with transaction details
|
|
389
|
+
// PayazaCallbackResponse.data is { message: string, [key: string]: any }
|
|
390
|
+
const responseData = callbackResponse.data;
|
|
391
|
+
const payazaNativeRef = responseData.payaza_reference || '';
|
|
392
|
+
const payazaReturnedRef = responseData.transaction_reference || payazaNativeRef || '';
|
|
393
|
+
const internalRef = reference;
|
|
394
|
+
// Prefer our TRX-* reference for DB lookup when Payaza returns P-C-* or another external ref
|
|
395
|
+
const transactionRef = payazaReturnedRef.startsWith('TRX-')
|
|
396
|
+
? payazaReturnedRef
|
|
397
|
+
: internalRef.startsWith('TRX-')
|
|
398
|
+
? internalRef
|
|
399
|
+
: payazaReturnedRef || payazaNativeRef || internalRef;
|
|
400
|
+
const callbackAdditionalDetails = {
|
|
401
|
+
storeId: config.storeId,
|
|
402
|
+
orderId: config.orderId,
|
|
403
|
+
orderNumber: config.orderNumber,
|
|
404
|
+
merchantReference: config.merchantReference || config.orderNumber,
|
|
405
|
+
internalTransactionReference: internalRef,
|
|
406
|
+
payazaReference: payazaNativeRef || (payazaReturnedRef.startsWith('P-C-') ? payazaReturnedRef : undefined),
|
|
407
|
+
};
|
|
408
|
+
// Build PayazaSuccessData from response data
|
|
409
|
+
const successData = {
|
|
410
|
+
message: responseData.message || 'Payment successful',
|
|
411
|
+
payaza_reference: payazaNativeRef || (payazaReturnedRef.startsWith('P-C-') ? payazaReturnedRef : ''),
|
|
412
|
+
transaction_reference: payazaReturnedRef || internalRef,
|
|
413
|
+
transaction_fee: responseData.transaction_fee || 0,
|
|
414
|
+
transaction_total_amount: responseData.transaction_total_amount || config.amount,
|
|
415
|
+
currency: responseData.currency || { name: '', code: validatedCurrency, unicode: '', html_value: '', enabled: true },
|
|
416
|
+
customer: responseData.customer || { customer_id: '', email_address: config.email, first_name: config.firstName || '', last_name: config.lastName || '', mobile_number: config.phone || '' },
|
|
417
|
+
merchant_reference: config.merchantReference || config.orderNumber,
|
|
418
|
+
additional_details: callbackAdditionalDetails,
|
|
419
|
+
};
|
|
420
|
+
const fullCallback = {
|
|
421
|
+
type: callbackResponse.type || 'success',
|
|
422
|
+
status: callbackResponse.status || 201,
|
|
423
|
+
data: successData,
|
|
424
|
+
};
|
|
425
|
+
console.log('[Payaza Callback] Transaction successful:', {
|
|
426
|
+
transactionRef,
|
|
427
|
+
payazaReference: successData.payaza_reference,
|
|
428
|
+
amount: successData.transaction_total_amount,
|
|
429
|
+
fee: successData.transaction_fee,
|
|
430
|
+
currency: successData.currency?.code,
|
|
431
|
+
});
|
|
432
|
+
// Mark payment as successful BEFORE calling onSuccess
|
|
433
|
+
// This ensures onClose knows payment succeeded even if it fires immediately after
|
|
434
|
+
paymentSuccessful = true;
|
|
435
|
+
clearCloseCheckInterval();
|
|
436
|
+
// Call the success handler with full callback data
|
|
437
|
+
if (config.onSuccess) {
|
|
438
|
+
config.onSuccess({
|
|
439
|
+
status: 'success',
|
|
440
|
+
transactionRef,
|
|
441
|
+
message: successData.message || 'Payment successful',
|
|
442
|
+
callbackData: fullCallback,
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
else if (isSuccessResponse) {
|
|
447
|
+
// Fallback for minimal response (no transaction_reference in data)
|
|
448
|
+
const responseData = callbackResponse.data || {};
|
|
449
|
+
const payazaReturnedRef = responseData?.transaction_reference || responseData?.payaza_reference || '';
|
|
450
|
+
const transactionRef = payazaReturnedRef.startsWith('TRX-')
|
|
451
|
+
? payazaReturnedRef
|
|
452
|
+
: reference.startsWith('TRX-')
|
|
453
|
+
? reference
|
|
454
|
+
: payazaReturnedRef || reference;
|
|
455
|
+
const callbackAdditionalDetails = {
|
|
456
|
+
storeId: config.storeId,
|
|
457
|
+
orderId: config.orderId,
|
|
458
|
+
orderNumber: config.orderNumber,
|
|
459
|
+
merchantReference: config.merchantReference || config.orderNumber,
|
|
460
|
+
internalTransactionReference: reference,
|
|
461
|
+
payazaReference: payazaReturnedRef.startsWith('P-C-') ? payazaReturnedRef : undefined,
|
|
462
|
+
};
|
|
463
|
+
const successData = {
|
|
464
|
+
message: responseData?.message || 'Payment successful',
|
|
465
|
+
payaza_reference: responseData?.payaza_reference || (payazaReturnedRef.startsWith('P-C-') ? payazaReturnedRef : ''),
|
|
466
|
+
transaction_reference: payazaReturnedRef || reference,
|
|
467
|
+
transaction_fee: responseData?.transaction_fee || 0,
|
|
468
|
+
transaction_total_amount: responseData?.transaction_total_amount || config.amount,
|
|
469
|
+
currency: responseData?.currency || { name: '', code: validatedCurrency, unicode: '', html_value: '', enabled: true },
|
|
470
|
+
customer: responseData?.customer || { customer_id: '', email_address: config.email, first_name: config.firstName || '', last_name: config.lastName || '', mobile_number: config.phone || '' },
|
|
471
|
+
merchant_reference: config.merchantReference || config.orderNumber,
|
|
472
|
+
additional_details: callbackAdditionalDetails,
|
|
473
|
+
};
|
|
474
|
+
const fullCallback = {
|
|
475
|
+
type: 'success',
|
|
476
|
+
status: callbackResponse.status || 201,
|
|
477
|
+
data: successData,
|
|
478
|
+
};
|
|
479
|
+
console.log('[Payaza Callback] Transaction reference (minimal response):', transactionRef);
|
|
480
|
+
paymentSuccessful = true;
|
|
481
|
+
clearCloseCheckInterval();
|
|
482
|
+
if (config.onSuccess) {
|
|
483
|
+
config.onSuccess({
|
|
484
|
+
status: 'success',
|
|
485
|
+
transactionRef,
|
|
486
|
+
message: 'Payment successful',
|
|
487
|
+
callbackData: fullCallback,
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
// Unknown response type - log and treat as error
|
|
493
|
+
console.warn('[Payaza Callback] Unknown response type:', {
|
|
494
|
+
type: callbackResponse.type,
|
|
495
|
+
status: callbackResponse.status,
|
|
496
|
+
data: callbackResponse.data,
|
|
497
|
+
});
|
|
498
|
+
clearCloseCheckInterval();
|
|
499
|
+
clearLoaderTimeout();
|
|
500
|
+
removePayazaLoaderDom();
|
|
501
|
+
if (config.onError) {
|
|
502
|
+
config.onError('Received unexpected response from payment gateway. Please try again.');
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
// Set onClose handler: always call config.onClose() so UI loading state clears
|
|
507
|
+
payazaCheckout.setOnClose(() => {
|
|
508
|
+
console.log('[Payaza] Checkout closed', { paymentSuccessful });
|
|
509
|
+
handleClose();
|
|
510
|
+
});
|
|
511
|
+
// Show the popup
|
|
512
|
+
console.log('[Payaza] Showing checkout popup');
|
|
513
|
+
try {
|
|
514
|
+
stopIframeObserver = observePayazaIframeInsertion();
|
|
515
|
+
payazaCheckout.showPopup();
|
|
516
|
+
patchPayazaIframesInDom();
|
|
517
|
+
console.log('[Payaza] Checkout popup opened successfully');
|
|
518
|
+
// Fallback: poll for Payaza loader removal (actual load) and iframe close.
|
|
519
|
+
if (typeof document !== 'undefined' && document.querySelector) {
|
|
520
|
+
const checkLoadedAndClose = setInterval(() => {
|
|
521
|
+
const iframe = document.querySelector(PAYAZA_IFRAME_SELECTOR);
|
|
522
|
+
if (iframe) {
|
|
523
|
+
patchPayazaIframeForCoep(iframe);
|
|
524
|
+
}
|
|
525
|
+
const elapsed = Date.now() - popupOpenedAt;
|
|
526
|
+
if (elapsed > PAYAZA_CLOSE_CHECK_MAX_MS) {
|
|
527
|
+
clearInterval(checkLoadedAndClose);
|
|
528
|
+
closeCheckIntervalId = null;
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
if (!checkoutLoadedFired && iframe) {
|
|
532
|
+
const opacity = parseFloat(window.getComputedStyle(iframe).opacity || '0');
|
|
533
|
+
if (opacity >= 1 || !hasPayazaLoaderInDom()) {
|
|
534
|
+
markCheckoutLoaded();
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
if (!iframe && !closeHandled && !paymentSuccessful) {
|
|
538
|
+
console.log('[Payaza] Fallback: Payaza iframe no longer in DOM, waiting for SDK callback...');
|
|
539
|
+
setTimeout(() => {
|
|
540
|
+
if (!closeHandled && !paymentSuccessful) {
|
|
541
|
+
console.log('[Payaza] Fallback: no success callback received, treating checkout as closed');
|
|
542
|
+
handleClose();
|
|
543
|
+
}
|
|
544
|
+
}, 2500);
|
|
545
|
+
}
|
|
546
|
+
}, PAYAZA_CLOSE_CHECK_MS);
|
|
547
|
+
closeCheckIntervalId = checkLoadedAndClose;
|
|
548
|
+
loaderTimeoutId = setTimeout(() => {
|
|
549
|
+
if (closeHandled || checkoutLoadedFired)
|
|
550
|
+
return;
|
|
551
|
+
const loaderStillVisible = hasPayazaLoaderInDom();
|
|
552
|
+
const iframePresent = Boolean(typeof document !== 'undefined' &&
|
|
553
|
+
document.querySelector('iframe[src*="payaza.africa"], iframe[src*="shopaza.africa"]'));
|
|
554
|
+
if (!loaderStillVisible && !iframePresent)
|
|
555
|
+
return;
|
|
556
|
+
stopIframeObserver?.();
|
|
557
|
+
stopIframeObserver = null;
|
|
558
|
+
console.error('[Payaza] Loader timeout: checkout overlay did not clear', {
|
|
559
|
+
keyPrefix: config.publicKey?.substring(0, 8),
|
|
560
|
+
amount: config.amount,
|
|
561
|
+
currency: validatedCurrency,
|
|
562
|
+
connectionMode,
|
|
563
|
+
email: config.email,
|
|
564
|
+
reference,
|
|
565
|
+
loaderStillVisible,
|
|
566
|
+
iframePresent,
|
|
567
|
+
});
|
|
568
|
+
teardownPayazaCheckoutDom();
|
|
569
|
+
closeHandled = true;
|
|
570
|
+
clearCloseCheckInterval();
|
|
571
|
+
clearLoaderTimeout();
|
|
572
|
+
checkoutLoadedFired = true;
|
|
573
|
+
config.onCheckoutLoaded?.();
|
|
574
|
+
if (config.onError) {
|
|
575
|
+
config.onError('Payment window failed to load. This may be caused by browser security settings or a blocked connection to Payaza. Please try again.');
|
|
576
|
+
}
|
|
577
|
+
}, PAYAZA_LOADER_TIMEOUT_MS);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
catch (popupError) {
|
|
581
|
+
console.error('[Payaza] Failed to show popup:', popupError);
|
|
582
|
+
// Call onError if popup fails to open
|
|
583
|
+
if (config.onError) {
|
|
584
|
+
config.onError('Failed to open payment popup. Please check if popups are blocked in your browser.');
|
|
585
|
+
}
|
|
586
|
+
throw new Error('Failed to open payment popup. Please check if popups are blocked in your browser.');
|
|
587
|
+
}
|
|
588
|
+
// Return success - actual payment status comes via callback
|
|
589
|
+
return {
|
|
590
|
+
status: 'success',
|
|
591
|
+
transactionRef: reference,
|
|
592
|
+
message: 'Checkout popup opened',
|
|
593
|
+
};
|
|
594
|
+
}
|
|
595
|
+
catch (error) {
|
|
596
|
+
console.error('[Payaza] Checkout initiation error:', {
|
|
597
|
+
error,
|
|
598
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
599
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
600
|
+
});
|
|
601
|
+
// Throw error instead of returning error object - let the caller handle it
|
|
602
|
+
// This ensures errors are properly propagated and not masked
|
|
603
|
+
throw error instanceof Error ? error : new Error('Failed to initialize checkout');
|
|
604
|
+
}
|
|
605
|
+
};
|
|
606
|
+
/**
|
|
607
|
+
* Generate checkout config from cart items
|
|
608
|
+
*/
|
|
609
|
+
export const generateCheckoutConfig = (items, customerEmail, publicKey, options) => {
|
|
610
|
+
const itemsTotal = items.reduce((sum, item) => sum + item.price * item.quantity, 0);
|
|
611
|
+
const requestedTotal = options?.totalAmount != null ? Number(options.totalAmount) : NaN;
|
|
612
|
+
const totalAmount = (Number.isFinite(requestedTotal) && requestedTotal >= 0)
|
|
613
|
+
? requestedTotal
|
|
614
|
+
: itemsTotal;
|
|
615
|
+
const itemCount = items.reduce((sum, item) => sum + item.quantity, 0);
|
|
616
|
+
// Extract currency from items or use provided currency with fallback chain
|
|
617
|
+
// Fallback chain: options.currency → getCurrencyFromItems() → 'USD'
|
|
618
|
+
// CRITICAL: Payaza only accepts ISO 4217 currency codes (e.g., 'NGN', 'USD'), NOT currency symbols (e.g., '₦', '$')
|
|
619
|
+
// All currency values must be validated and normalized to ISO format before use
|
|
620
|
+
let currency;
|
|
621
|
+
try {
|
|
622
|
+
if (options?.currency) {
|
|
623
|
+
// Validate that provided currency is an ISO code, not a symbol
|
|
624
|
+
currency = validateAndNormalizeCurrency(options.currency);
|
|
625
|
+
}
|
|
626
|
+
else {
|
|
627
|
+
// Try to get currency from items
|
|
628
|
+
const itemsCurrency = getCurrencyFromItems(items);
|
|
629
|
+
currency = validateAndNormalizeCurrency(itemsCurrency);
|
|
630
|
+
}
|
|
631
|
+
// Double-check: Ensure currency is a valid 3-letter ISO code
|
|
632
|
+
if (!currency || currency.length !== 3 || !/^[A-Z]{3}$/.test(currency)) {
|
|
633
|
+
throw new Error(`Invalid currency format: "${currency}". Must be a 3-letter ISO 4217 code.`);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
catch (error) {
|
|
637
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
638
|
+
console.error('[Checkout Config] Currency validation failed:', {
|
|
639
|
+
providedCurrency: options?.currency,
|
|
640
|
+
error: errorMessage,
|
|
641
|
+
fallback: 'USD'
|
|
642
|
+
});
|
|
643
|
+
// Always fallback to USD if validation fails
|
|
644
|
+
currency = 'USD';
|
|
645
|
+
}
|
|
646
|
+
// Build comprehensive payer description
|
|
647
|
+
const customerName = options?.firstName && options?.lastName
|
|
648
|
+
? `${options.firstName} ${options.lastName}`
|
|
649
|
+
: options?.firstName || options?.lastName || 'Customer';
|
|
650
|
+
// Build shipping address string
|
|
651
|
+
const shippingParts = [];
|
|
652
|
+
if (options?.shippingAddress) {
|
|
653
|
+
const addr = options.shippingAddress;
|
|
654
|
+
if (addr.address)
|
|
655
|
+
shippingParts.push(addr.address);
|
|
656
|
+
if (addr.city)
|
|
657
|
+
shippingParts.push(addr.city);
|
|
658
|
+
if (addr.state)
|
|
659
|
+
shippingParts.push(addr.state);
|
|
660
|
+
if (addr.zipCode)
|
|
661
|
+
shippingParts.push(addr.zipCode);
|
|
662
|
+
if (addr.country)
|
|
663
|
+
shippingParts.push(addr.country);
|
|
664
|
+
}
|
|
665
|
+
const shippingAddressStr = shippingParts.length > 0 ? shippingParts.join(', ') : 'Not provided';
|
|
666
|
+
// Build comprehensive description
|
|
667
|
+
let description = '';
|
|
668
|
+
if (options?.orderNumber) {
|
|
669
|
+
description = `Order #${options.orderNumber} - ${customerName} (${customerEmail})\n`;
|
|
670
|
+
}
|
|
671
|
+
else {
|
|
672
|
+
description = `Order - ${customerName} (${customerEmail})\n`;
|
|
673
|
+
}
|
|
674
|
+
description += `Items: ${itemCount} | Total: ${currency} ${totalAmount.toFixed(2)}\n`;
|
|
675
|
+
description += `Shipping: ${shippingAddressStr}`;
|
|
676
|
+
// Truncate if too long (Payaza may have limits)
|
|
677
|
+
const maxDescriptionLength = 500;
|
|
678
|
+
if (description.length > maxDescriptionLength) {
|
|
679
|
+
description = description.substring(0, maxDescriptionLength - 3) + '...';
|
|
680
|
+
}
|
|
681
|
+
return {
|
|
682
|
+
publicKey,
|
|
683
|
+
connectionMode: options?.connectionMode
|
|
684
|
+
? normalizeConnectionMode(options.connectionMode)
|
|
685
|
+
: undefined,
|
|
686
|
+
amount: totalAmount,
|
|
687
|
+
currency,
|
|
688
|
+
email: customerEmail,
|
|
689
|
+
firstName: options?.firstName,
|
|
690
|
+
lastName: options?.lastName,
|
|
691
|
+
phone: options?.phone,
|
|
692
|
+
description,
|
|
693
|
+
callbackUrl: options?.callbackUrl,
|
|
694
|
+
storeId: options?.storeId,
|
|
695
|
+
orderId: options?.orderId,
|
|
696
|
+
orderNumber: options?.orderNumber,
|
|
697
|
+
merchantReference: options?.merchantReference,
|
|
698
|
+
shippingAddress: options?.shippingAddress,
|
|
699
|
+
metadata: {
|
|
700
|
+
// Cart items information
|
|
701
|
+
items: items.map(item => ({
|
|
702
|
+
name: item.product.name,
|
|
703
|
+
quantity: item.quantity,
|
|
704
|
+
price: item.price,
|
|
705
|
+
currency: item.product.currency,
|
|
706
|
+
})),
|
|
707
|
+
// Order summary
|
|
708
|
+
itemCount: itemCount,
|
|
709
|
+
totalAmount: totalAmount,
|
|
710
|
+
// Customer information
|
|
711
|
+
customerName: customerName,
|
|
712
|
+
customerEmail: customerEmail,
|
|
713
|
+
// Shipping information
|
|
714
|
+
shippingAddress: shippingAddressStr,
|
|
715
|
+
},
|
|
716
|
+
};
|
|
717
|
+
};
|