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,482 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useEffect, useRef } from 'react';
|
|
4
|
+
import { Clock, Check, ChevronRight, ChevronLeft, ArrowLeft, ShieldCheck, CheckCircle2, Lock } from 'lucide-react';
|
|
5
|
+
import { Button } from '../../../components/ui/button.js';
|
|
6
|
+
import { cn, formatCurrency } from '../../../lib/utils/index.js';
|
|
7
|
+
import Link from 'next/link';
|
|
8
|
+
import { ImageWithFallback } from '../../../components/ui/image-with-fallback.js';
|
|
9
|
+
import { RichTextExcerpt } from '../../../components/rich-text/RichTextExcerpt.js';
|
|
10
|
+
import { usePayazaCheckout } from '../../../hooks/use-payaza-checkout.js';
|
|
11
|
+
import { generateCheckoutConfig } from '../../../lib/payaza-checkout.js';
|
|
12
|
+
import { checkoutService } from '../../../lib/services/checkout.service.js';
|
|
13
|
+
import { paymentService, isPaymentConfirmed } from '../../../lib/services/payment.service.js';
|
|
14
|
+
import { useToast } from '../../../components/ui/toast.js';
|
|
15
|
+
import { useRouter, useSearchParams } from 'next/navigation';
|
|
16
|
+
import { useAuth } from '../../../lib/auth-context.js';
|
|
17
|
+
import { formatDateSafe } from '../../../utils/date.js';
|
|
18
|
+
import { encodePayazaFieldKey } from '../../../preview/canvas/field-key.js';
|
|
19
|
+
import { getOrCreateIdempotencyKey } from '../../../lib/utils/idempotency-key.js';
|
|
20
|
+
import { CHECKOUT_UNAVAILABLE_MESSAGE } from '../../../lib/checkout-availability.js';
|
|
21
|
+
export function BookingBookPage({ storeConfig, serviceSlug }) {
|
|
22
|
+
const primaryColor = storeConfig.branding.primaryColor;
|
|
23
|
+
const layoutConfig = storeConfig.layoutConfig;
|
|
24
|
+
const isPreview = !!storeConfig.isPreview;
|
|
25
|
+
const bookConfig = layoutConfig?.pages?.book;
|
|
26
|
+
const payaza = (sectionKey, segments) => isPreview ? encodePayazaFieldKey(sectionKey, segments) : undefined;
|
|
27
|
+
const pageTitle = bookConfig?.bookingHeader?.title || 'Book an Appointment';
|
|
28
|
+
const pageSubtitle = bookConfig?.bookingHeader?.subtitle || 'Complete the steps below to schedule your appointment.';
|
|
29
|
+
const backLinkText = bookConfig?.bookingHeader?.backLinkText || 'Back to Store';
|
|
30
|
+
const selectServiceHeading = bookConfig?.bookingForm?.selectServiceHeading || 'Select a Service';
|
|
31
|
+
const dateTimeHeading = bookConfig?.bookingForm?.dateTimeHeading || 'When would you like to come?';
|
|
32
|
+
const detailsHeading = bookConfig?.bookingForm?.detailsHeading || 'Your Contact Information';
|
|
33
|
+
const paymentHeading = bookConfig?.bookingForm?.paymentHeading || 'Secure Payment';
|
|
34
|
+
const summaryTitle = bookConfig?.bookingForm?.summaryTitle || 'Booking Summary';
|
|
35
|
+
const confirmButtonText = bookConfig?.bookingForm?.confirmButtonText || 'Confirm & Pay';
|
|
36
|
+
const { addToast } = useToast();
|
|
37
|
+
const router = useRouter();
|
|
38
|
+
const searchParams = useSearchParams();
|
|
39
|
+
const { user, isAuthenticated } = useAuth();
|
|
40
|
+
const checkoutIdempotencyKeyRef = useRef(null);
|
|
41
|
+
// Get service slug from query params or prop
|
|
42
|
+
const serviceSlugFromQuery = searchParams?.get('service') || null;
|
|
43
|
+
const effectiveServiceSlug = serviceSlug || serviceSlugFromQuery;
|
|
44
|
+
// State
|
|
45
|
+
const [currentStep, setCurrentStep] = useState(effectiveServiceSlug ? 'datetime' : 'service');
|
|
46
|
+
const [selectedService, setSelectedService] = useState(null);
|
|
47
|
+
const [selectedDate, setSelectedDate] = useState(null);
|
|
48
|
+
const [currentMonth, setCurrentMonth] = useState(new Date());
|
|
49
|
+
const [selectedTime, setSelectedTime] = useState(null);
|
|
50
|
+
const [isProcessing, setIsProcessing] = useState(false);
|
|
51
|
+
const [guestInfo, setGuestInfo] = useState({
|
|
52
|
+
firstName: '',
|
|
53
|
+
lastName: '',
|
|
54
|
+
email: '',
|
|
55
|
+
phone: '',
|
|
56
|
+
notes: '',
|
|
57
|
+
address: '',
|
|
58
|
+
city: '',
|
|
59
|
+
state: '',
|
|
60
|
+
zipCode: '',
|
|
61
|
+
country: ''
|
|
62
|
+
});
|
|
63
|
+
// Pre-fill form data for authenticated users
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (isAuthenticated && user) {
|
|
66
|
+
setGuestInfo(prev => ({
|
|
67
|
+
firstName: user.firstName || prev.firstName,
|
|
68
|
+
lastName: user.lastName || prev.lastName,
|
|
69
|
+
email: user.email || prev.email,
|
|
70
|
+
phone: user.phone || prev.phone,
|
|
71
|
+
notes: prev.notes,
|
|
72
|
+
address: user.address || prev.address,
|
|
73
|
+
city: user.city || prev.city,
|
|
74
|
+
state: user.state || prev.state,
|
|
75
|
+
zipCode: user.zipCode || prev.zipCode,
|
|
76
|
+
country: user.country || prev.country,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
}, [isAuthenticated, user]);
|
|
80
|
+
// Payaza Configuration
|
|
81
|
+
// Do not hardcode a live key in code; require configuration via storeConfig/env.
|
|
82
|
+
const payazaPublicKey = storeConfig.payment?.payazaPublicKey || process.env.NEXT_PUBLIC_PAYAZA_PUBLIC_KEY || '';
|
|
83
|
+
const { checkout: initiateCheckout, isLoading: isPayazaLoading } = usePayazaCheckout({
|
|
84
|
+
publicKey: payazaPublicKey,
|
|
85
|
+
onSuccess: async (response) => {
|
|
86
|
+
try {
|
|
87
|
+
setIsProcessing(true);
|
|
88
|
+
const transactionRef = response.transactionRef || response.callbackData?.data?.transaction_reference;
|
|
89
|
+
if (!transactionRef) {
|
|
90
|
+
addToast('Payment successful but no transaction reference. Please contact support.', 'info');
|
|
91
|
+
setIsProcessing(false);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
console.log('[Booking] SDK callback received, verifying payment...');
|
|
95
|
+
addToast('Verifying payment...', 'info');
|
|
96
|
+
// Step 1: Immediate check if webhook already processed payment (no delay)
|
|
97
|
+
let immediateVerification;
|
|
98
|
+
try {
|
|
99
|
+
immediateVerification = await paymentService.verifyPayment(transactionRef, storeConfig.id);
|
|
100
|
+
if (immediateVerification.verified && isPaymentConfirmed(immediateVerification.paymentStatus)) {
|
|
101
|
+
console.log('[Booking] Payment already completed by webhook, proceeding to success page');
|
|
102
|
+
const orderId = immediateVerification.orderId || transactionRef;
|
|
103
|
+
const orderNumber = immediateVerification.orderNumber || '';
|
|
104
|
+
router.push(`/${storeConfig.slug}/order/success?orderId=${orderId}&ref=${transactionRef}${orderNumber ? `&orderNumber=${orderNumber}` : ''}`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.log('[Booking] Immediate verification failed, proceeding with confirmation');
|
|
110
|
+
}
|
|
111
|
+
// Step 2: If webhook hasn't processed yet, immediately confirm from callback data
|
|
112
|
+
// We have the callback data from Payaza, so we can confirm immediately instead of waiting
|
|
113
|
+
if (response.callbackData) {
|
|
114
|
+
console.log('[Booking] Processing Payaza callback confirmation immediately');
|
|
115
|
+
// Retry logic for payment confirmation
|
|
116
|
+
const MAX_RETRIES = 3;
|
|
117
|
+
const RETRY_DELAY = 1000; // 1 second
|
|
118
|
+
let confirmation;
|
|
119
|
+
let lastError;
|
|
120
|
+
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
121
|
+
try {
|
|
122
|
+
// Confirm payment with backend and trigger order processing
|
|
123
|
+
confirmation = await paymentService.confirmPaymentFromCallback(response.callbackData);
|
|
124
|
+
if (confirmation.alreadyProcessed) {
|
|
125
|
+
console.log('[Booking] Payment already processed');
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
console.log('[Booking] Payment confirmed, order processing initiated');
|
|
129
|
+
}
|
|
130
|
+
// Success - break out of retry loop
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
lastError = error;
|
|
135
|
+
console.error(`[Booking] Payment confirmation attempt ${attempt} failed:`, error);
|
|
136
|
+
// If this is not the last attempt, wait before retrying
|
|
137
|
+
if (attempt < MAX_RETRIES) {
|
|
138
|
+
console.log(`[Booking] Retrying payment confirmation in ${RETRY_DELAY}ms...`);
|
|
139
|
+
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY * attempt)); // Exponential backoff
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// If all retries failed, do a short poll to catch webhook processing (max 3 seconds)
|
|
144
|
+
if (!confirmation) {
|
|
145
|
+
console.log('[Booking] Confirmation failed, doing short poll for webhook processing...');
|
|
146
|
+
try {
|
|
147
|
+
const polledVerification = await paymentService.pollPaymentStatus(transactionRef, storeConfig.id, {
|
|
148
|
+
maxAttempts: 3, // Poll for max 3 seconds (3 * 1s)
|
|
149
|
+
intervalMs: 1000, // Poll every 1 second
|
|
150
|
+
onProgress: (attempt, maxAttempts) => {
|
|
151
|
+
console.log(`[Booking] Polling for webhook (${attempt}/${maxAttempts})...`);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
if (polledVerification && polledVerification.verified && isPaymentConfirmed(polledVerification.paymentStatus)) {
|
|
155
|
+
console.log('[Booking] Payment completed by webhook, proceeding to success page');
|
|
156
|
+
const orderId = polledVerification.orderId || transactionRef;
|
|
157
|
+
const orderNumber = polledVerification.orderNumber || '';
|
|
158
|
+
router.push(`/${storeConfig.slug}/order/success?orderId=${orderId}&ref=${transactionRef}${orderNumber ? `&orderNumber=${orderNumber}` : ''}`);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (pollError) {
|
|
163
|
+
console.error('[Booking] Polling also failed:', pollError);
|
|
164
|
+
}
|
|
165
|
+
// Final fallback: Redirect to callback page for manual verification
|
|
166
|
+
console.log('[Booking] Redirecting to callback page for verification');
|
|
167
|
+
addToast('Payment successful. Verifying transaction...', 'info');
|
|
168
|
+
router.push(`/${storeConfig.slug}/payment/callback?reference=${transactionRef}&storeId=${storeConfig.id}`);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
// Success - redirect to success page
|
|
172
|
+
const orderId = confirmation.orderId;
|
|
173
|
+
const orderNumber = confirmation.orderNumber || '';
|
|
174
|
+
// Redirect to success page with order details
|
|
175
|
+
router.push(`/${storeConfig.slug}/order/success?orderId=${orderId}&ref=${transactionRef}${orderNumber ? `&orderNumber=${orderNumber}` : ''}`);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
// Fallback: Use transaction reference to verify payment
|
|
179
|
+
console.log('[Booking] No callback data, verifying payment with transaction reference:', response.transactionRef);
|
|
180
|
+
if (response.transactionRef) {
|
|
181
|
+
// Redirect to callback page for verification and confirmation
|
|
182
|
+
router.push(`/${storeConfig.slug}/payment/callback?reference=${response.transactionRef}&storeId=${storeConfig.id}`);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
addToast('Payment successful but unable to process. Please contact support.', 'info');
|
|
186
|
+
setIsProcessing(false);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
console.error('[Booking] Error processing payment callback:', error);
|
|
192
|
+
// Fallback: Try to redirect to callback page for verification
|
|
193
|
+
const transactionRef = response.transactionRef || response.callbackData?.data?.transaction_reference;
|
|
194
|
+
if (transactionRef) {
|
|
195
|
+
addToast('Payment successful. Verifying transaction...', 'info');
|
|
196
|
+
router.push(`/${storeConfig.slug}/payment/callback?reference=${transactionRef}&storeId=${storeConfig.id}`);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
addToast('Payment successful but verification failed. Please contact support with your transaction details.', 'error');
|
|
200
|
+
setIsProcessing(false);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
onError: (error) => {
|
|
205
|
+
addToast(`Payment error: ${error}`, 'error');
|
|
206
|
+
setIsProcessing(false);
|
|
207
|
+
},
|
|
208
|
+
onClose: () => {
|
|
209
|
+
// onClose is only called when payment was not successful (user canceled)
|
|
210
|
+
// This is now handled correctly by payaza-checkout.ts tracking payment success state
|
|
211
|
+
addToast('Payment canceled', 'info');
|
|
212
|
+
setIsProcessing(false);
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
// Initialize selected service if slug provided (from prop or query param)
|
|
216
|
+
useEffect(() => {
|
|
217
|
+
if (effectiveServiceSlug) {
|
|
218
|
+
const service = storeConfig.services?.find(s => s.slug === effectiveServiceSlug);
|
|
219
|
+
if (service) {
|
|
220
|
+
if (service.id !== selectedService?.id) {
|
|
221
|
+
setSelectedService(service);
|
|
222
|
+
// If service is pre-selected, ensure we're on the datetime step
|
|
223
|
+
setCurrentStep('datetime');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
// Service slug not found - show error and fallback to service selection
|
|
228
|
+
addToast(`Service not found. Please select a service.`, 'error');
|
|
229
|
+
setCurrentStep('service');
|
|
230
|
+
setSelectedService(null);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else if (selectedService && !effectiveServiceSlug) {
|
|
234
|
+
// If no service slug but we have a selected service, keep it
|
|
235
|
+
// This handles the case where user navigates back
|
|
236
|
+
}
|
|
237
|
+
else if (!selectedService && !effectiveServiceSlug) {
|
|
238
|
+
// No service selected and no slug - show service selection
|
|
239
|
+
setCurrentStep('service');
|
|
240
|
+
}
|
|
241
|
+
}, [effectiveServiceSlug, storeConfig.services, addToast]);
|
|
242
|
+
// Mock Data Generators
|
|
243
|
+
const generateDates = () => {
|
|
244
|
+
const dates = [];
|
|
245
|
+
const year = currentMonth.getFullYear();
|
|
246
|
+
const month = currentMonth.getMonth();
|
|
247
|
+
// Get first day of the month
|
|
248
|
+
const firstDay = new Date(year, month, 1);
|
|
249
|
+
const lastDay = new Date(year, month + 1, 0);
|
|
250
|
+
// Calculate start date (Sunday before or on first day)
|
|
251
|
+
const startDate = new Date(firstDay);
|
|
252
|
+
startDate.setDate(1 - firstDay.getDay());
|
|
253
|
+
// Calculate end date (Saturday after or on last day) to complete the grid
|
|
254
|
+
const endDate = new Date(lastDay);
|
|
255
|
+
if (endDate.getDay() < 6) {
|
|
256
|
+
endDate.setDate(lastDay.getDate() + (6 - lastDay.getDay()));
|
|
257
|
+
}
|
|
258
|
+
// Generate dates
|
|
259
|
+
const currentDate = new Date(startDate);
|
|
260
|
+
while (currentDate <= endDate) {
|
|
261
|
+
dates.push(new Date(currentDate));
|
|
262
|
+
currentDate.setDate(currentDate.getDate() + 1);
|
|
263
|
+
}
|
|
264
|
+
return dates;
|
|
265
|
+
};
|
|
266
|
+
const nextMonth = () => {
|
|
267
|
+
setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1));
|
|
268
|
+
};
|
|
269
|
+
const prevMonth = () => {
|
|
270
|
+
setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1));
|
|
271
|
+
};
|
|
272
|
+
const timeSlots = [
|
|
273
|
+
'09:00', '10:00', '11:00', '13:00', '14:00', '15:00', '16:00', '17:00'
|
|
274
|
+
];
|
|
275
|
+
// Helper function to get customer data (user data if authenticated, otherwise guestInfo)
|
|
276
|
+
const getCustomerData = () => {
|
|
277
|
+
if (isAuthenticated && user) {
|
|
278
|
+
return {
|
|
279
|
+
firstName: user.firstName || '',
|
|
280
|
+
lastName: user.lastName || '',
|
|
281
|
+
email: user.email || '',
|
|
282
|
+
phone: user.phone || '',
|
|
283
|
+
notes: guestInfo.notes, // Notes are still editable
|
|
284
|
+
address: user.address || '',
|
|
285
|
+
city: user.city || '',
|
|
286
|
+
state: user.state || '',
|
|
287
|
+
zipCode: user.zipCode || '',
|
|
288
|
+
country: user.country || '',
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
return guestInfo;
|
|
292
|
+
};
|
|
293
|
+
// Helper function to calculate endTime from startTime and duration
|
|
294
|
+
const calculateEndTime = (startTime, durationMinutes) => {
|
|
295
|
+
const [hours, minutes] = startTime.split(':').map(Number);
|
|
296
|
+
const startDate = new Date();
|
|
297
|
+
startDate.setHours(hours, minutes, 0, 0);
|
|
298
|
+
startDate.setMinutes(startDate.getMinutes() + durationMinutes);
|
|
299
|
+
const endHours = String(startDate.getHours()).padStart(2, '0');
|
|
300
|
+
const endMinutes = String(startDate.getMinutes()).padStart(2, '0');
|
|
301
|
+
return `${endHours}:${endMinutes}`;
|
|
302
|
+
};
|
|
303
|
+
// Payaza SDK Integration
|
|
304
|
+
const handlePayment = async () => {
|
|
305
|
+
if (storeConfig.checkoutEnabled === false) {
|
|
306
|
+
addToast(CHECKOUT_UNAVAILABLE_MESSAGE, 'error');
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const customerData = getCustomerData();
|
|
310
|
+
if (!selectedService || !customerData.email) {
|
|
311
|
+
addToast('Missing booking information', 'error');
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
// Validate booking date and time are selected
|
|
315
|
+
if (!selectedDate || !selectedTime) {
|
|
316
|
+
addToast('Please select a date and time for your booking', 'error');
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
setIsProcessing(true);
|
|
320
|
+
try {
|
|
321
|
+
// Calculate endTime from service duration if not already set
|
|
322
|
+
const endTime = selectedService.duration
|
|
323
|
+
? calculateEndTime(selectedTime, selectedService.duration)
|
|
324
|
+
: null;
|
|
325
|
+
// Format booking date as YYYY-MM-DD
|
|
326
|
+
const bookingDateStr = selectedDate.toISOString().split('T')[0];
|
|
327
|
+
// Step 1: Create order via API before payment
|
|
328
|
+
// For services, use serviceId instead of productId
|
|
329
|
+
const checkoutResponse = await checkoutService.processCheckout({
|
|
330
|
+
storeId: storeConfig.id,
|
|
331
|
+
items: selectedService.id ? [{
|
|
332
|
+
serviceId: selectedService.id, // Use serviceId for services
|
|
333
|
+
quantity: 1,
|
|
334
|
+
price: selectedService.price,
|
|
335
|
+
options: {
|
|
336
|
+
bookingDate: bookingDateStr,
|
|
337
|
+
startTime: selectedTime,
|
|
338
|
+
endTime: endTime || undefined,
|
|
339
|
+
customerNotes: guestInfo.notes || undefined,
|
|
340
|
+
},
|
|
341
|
+
}] : [],
|
|
342
|
+
customerInfo: {
|
|
343
|
+
email: customerData.email,
|
|
344
|
+
firstName: customerData.firstName,
|
|
345
|
+
lastName: customerData.lastName,
|
|
346
|
+
phone: customerData.phone,
|
|
347
|
+
},
|
|
348
|
+
shippingAddress: {
|
|
349
|
+
firstName: customerData.firstName,
|
|
350
|
+
lastName: customerData.lastName,
|
|
351
|
+
address1: customerData.address || 'Address to be provided',
|
|
352
|
+
city: customerData.city || 'City',
|
|
353
|
+
state: customerData.state || 'State',
|
|
354
|
+
zipCode: customerData.zipCode || '00000',
|
|
355
|
+
country: customerData.country || 'Country',
|
|
356
|
+
phone: customerData.phone,
|
|
357
|
+
},
|
|
358
|
+
paymentMethod: 'payaza',
|
|
359
|
+
customerId: isAuthenticated && user ? user.id : undefined, // Pass customerId for authenticated users
|
|
360
|
+
}, {
|
|
361
|
+
idempotencyKey: getOrCreateIdempotencyKey(checkoutIdempotencyKeyRef),
|
|
362
|
+
});
|
|
363
|
+
// Step 2: Convert to checkout format for Payaza
|
|
364
|
+
const checkoutItems = [{
|
|
365
|
+
product: {
|
|
366
|
+
name: selectedService.name,
|
|
367
|
+
price: selectedService.price,
|
|
368
|
+
},
|
|
369
|
+
quantity: 1,
|
|
370
|
+
price: selectedService.price,
|
|
371
|
+
}];
|
|
372
|
+
// Step 3: Generate Payaza checkout config with order details
|
|
373
|
+
// Key priority: backend-resolved key for the order currency (DB registry)
|
|
374
|
+
// → storeConfig.payment → NEXT_PUBLIC_PAYAZA_PUBLIC_KEY
|
|
375
|
+
const checkoutConfig = generateCheckoutConfig(checkoutItems, customerData.email, checkoutResponse.payazaPublicKey || payazaPublicKey, {
|
|
376
|
+
firstName: customerData.firstName,
|
|
377
|
+
lastName: customerData.lastName,
|
|
378
|
+
phone: customerData.phone,
|
|
379
|
+
callbackUrl: `${typeof window !== 'undefined' ? window.location.origin : ''}/${storeConfig.slug}/payment/callback?storeId=${storeConfig.id}`,
|
|
380
|
+
currency: checkoutResponse.currency || storeConfig.settings?.currency || 'USD',
|
|
381
|
+
storeId: storeConfig.id,
|
|
382
|
+
orderId: checkoutResponse.orderId,
|
|
383
|
+
orderNumber: checkoutResponse.orderNumber,
|
|
384
|
+
merchantReference: checkoutResponse.merchantReference || checkoutResponse.orderNumber,
|
|
385
|
+
totalAmount: checkoutResponse.totalAmount,
|
|
386
|
+
connectionMode: checkoutResponse.payazaConnectionMode,
|
|
387
|
+
shippingAddress: {
|
|
388
|
+
firstName: customerData.firstName,
|
|
389
|
+
lastName: customerData.lastName,
|
|
390
|
+
address: customerData.address,
|
|
391
|
+
city: customerData.city,
|
|
392
|
+
state: customerData.state,
|
|
393
|
+
country: customerData.country,
|
|
394
|
+
zipCode: customerData.zipCode,
|
|
395
|
+
},
|
|
396
|
+
});
|
|
397
|
+
// Step 4: Use transaction reference from order
|
|
398
|
+
checkoutConfig.reference = checkoutResponse.transactionReference;
|
|
399
|
+
await initiateCheckout(checkoutConfig);
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
const err = error;
|
|
403
|
+
const isCollectionsDisabled = err?.response?.status === 403 &&
|
|
404
|
+
(err?.response?.data?.code === 'COLLECTIONS_DISABLED' ||
|
|
405
|
+
err?.response?.data?.message?.toLowerCase().includes('not accepting payments'));
|
|
406
|
+
if (isCollectionsDisabled) {
|
|
407
|
+
addToast(CHECKOUT_UNAVAILABLE_MESSAGE, 'error');
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
addToast('Failed to start payment. Please try again.', 'error');
|
|
411
|
+
}
|
|
412
|
+
console.error('Payment init error:', error);
|
|
413
|
+
setIsProcessing(false);
|
|
414
|
+
}
|
|
415
|
+
};
|
|
416
|
+
const checkoutDisabled = storeConfig.checkoutEnabled === false;
|
|
417
|
+
// Steps Configuration
|
|
418
|
+
const steps = [
|
|
419
|
+
{ id: 'service', label: 'Service' },
|
|
420
|
+
{ id: 'datetime', label: 'Date & Time' },
|
|
421
|
+
{ id: 'details', label: 'Details' },
|
|
422
|
+
{ id: 'payment', label: 'Payment' },
|
|
423
|
+
{ id: 'success', label: 'Confirmation' },
|
|
424
|
+
];
|
|
425
|
+
const currentStepIndex = steps.findIndex(s => s.id === currentStep);
|
|
426
|
+
return (_jsxs("div", { className: "min-h-screen bg-gray-50 pb-20", children: [bookConfig?.bookingHeader?.show !== false && (_jsx("section", { "data-section": "bookingHeader", "data-payaza-section-key": "bookingHeader", "data-payaza-page": "book", className: "bg-white border-b border-gray-100 pt-20 pb-8", children: _jsxs("div", { className: "container mx-auto px-4 max-w-6xl", children: [_jsx("h1", { className: "text-3xl md:text-4xl font-bold text-gray-900 mb-2", "data-payaza-edit": payaza('bookingHeader', ['title']), children: pageTitle }), _jsx("p", { className: "text-gray-500", "data-payaza-edit": payaza('bookingHeader', ['subtitle']), children: pageSubtitle })] }) })), _jsx("div", { "data-section": "bookingForm", "data-payaza-section-key": "bookingForm", "data-payaza-page": "book", className: "pt-8", children: _jsxs("div", { className: "container mx-auto px-4 max-w-6xl", children: [_jsxs("div", { className: "mb-8", children: [_jsxs(Link, { href: `/${storeConfig.slug}`, className: "inline-flex items-center text-sm text-gray-500 hover:text-black mb-6 transition-colors", children: [_jsx(ArrowLeft, { className: "w-4 h-4 mr-1" }), _jsx("span", { "data-payaza-edit": payaza('bookingHeader', ['backLinkText']), children: backLinkText })] }), _jsxs("div", { className: "flex items-center justify-between relative", children: [_jsx("div", { className: "absolute top-1/2 left-0 w-full h-0.5 bg-gray-200 -z-10" }), steps.filter(s => s.id !== 'success').map((step, idx) => (_jsxs("div", { className: "flex flex-col items-center gap-2 bg-gray-50 px-2", children: [_jsx("div", { className: cn("w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold transition-all duration-500 border-2", idx <= currentStepIndex
|
|
427
|
+
? "bg-black border-black text-white"
|
|
428
|
+
: "bg-white border-gray-300 text-gray-400"), style: idx <= currentStepIndex ? { backgroundColor: primaryColor, borderColor: primaryColor } : {}, children: idx < currentStepIndex ? _jsx(Check, { className: "w-4 h-4" }) : idx + 1 }), _jsx("span", { className: cn("text-xs font-medium uppercase tracking-wider hidden md:block", idx <= currentStepIndex ? "text-black" : "text-gray-400"), children: step.label })] }, step.id)))] })] }), _jsxs("div", { className: "bg-white rounded-2xl shadow-xl min-h-[500px] flex flex-col md:flex-row", children: [currentStep !== 'success' && (_jsxs("div", { className: "hidden md:block w-80 bg-gray-50 p-8 border-r border-gray-100 flex-shrink-0 md:rounded-l-2xl", children: [_jsx("h3", { className: "text-lg font-bold mb-6", "data-payaza-edit": payaza('bookingForm', ['summaryTitle']), children: summaryTitle }), selectedService ? (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("span", { className: "text-xs text-gray-400 uppercase tracking-wider font-bold block mb-1", children: "Service" }), _jsx("p", { className: "font-semibold text-gray-900", children: selectedService.name }), _jsxs("p", { className: "text-sm text-gray-500", children: [selectedService.duration, " mins \u2022 ", formatCurrency(selectedService.price, selectedService.currency || storeConfig.settings?.currency || 'USD')] })] }), selectedDate && (_jsxs("div", { children: [_jsx("span", { className: "text-xs text-gray-400 uppercase tracking-wider font-bold block mb-1", children: "Date" }), _jsx("p", { className: "font-medium text-gray-900", children: formatDateSafe(selectedDate, undefined, { weekday: 'long', month: 'long', day: 'numeric' }) })] })), selectedTime && (_jsxs("div", { children: [_jsx("span", { className: "text-xs text-gray-400 uppercase tracking-wider font-bold block mb-1", children: "Time" }), _jsx("p", { className: "font-medium text-gray-900", children: selectedTime })] })), _jsxs("div", { className: "pt-6 border-t border-gray-200 mt-auto", children: [_jsxs("div", { className: "flex justify-between items-center mb-2", children: [_jsx("span", { className: "text-gray-500", children: "Total" }), _jsx("span", { className: "text-xl font-bold", children: formatCurrency(selectedService.price, selectedService.currency || storeConfig.settings?.currency || 'USD') })] }), _jsxs("div", { className: "flex justify-between items-center text-xs text-green-600 font-medium mt-2", children: [_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(ShieldCheck, { className: "w-3 h-3" }), " Secure Payment"] }), _jsx("span", { children: "Payaza" })] })] })] })) : (_jsx("p", { className: "text-gray-400 text-sm italic", children: "Select a service to begin..." }))] })), _jsxs("div", { className: "flex-1 p-6 md:p-10 flex flex-col md:rounded-r-2xl", children: [currentStep === 'service' && (_jsxs("div", { className: "animate-fade-in w-full", children: [_jsx("h2", { className: "text-2xl font-light mb-6", "data-payaza-edit": payaza('bookingForm', ['selectServiceHeading']), children: selectServiceHeading }), _jsx("div", { className: "grid gap-4", children: storeConfig.services?.map((service) => (_jsxs("div", { onClick: () => {
|
|
429
|
+
setSelectedService(service);
|
|
430
|
+
setCurrentStep('datetime');
|
|
431
|
+
}, className: "group flex items-center p-4 rounded-xl border border-gray-100 hover:border-black hover:shadow-md cursor-pointer transition-all min-w-0", children: [_jsx("div", { className: "h-16 w-16 rounded-lg bg-gray-100 overflow-hidden mr-4 flex-shrink-0 relative", children: _jsx(ImageWithFallback, { src: service.image, alt: service.name, className: "w-full h-full object-cover", skeletonAspectRatio: "square" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex justify-between items-center mb-1 gap-2", children: [_jsx("h3", { className: "font-bold text-gray-900 group-hover:text-black transition-colors truncate min-w-0", children: service.name }), _jsx("span", { className: "font-semibold flex-shrink-0 ml-2", children: formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') })] }), _jsx(RichTextExcerpt, { value: service.description, as: "p", className: "text-sm text-gray-500 line-clamp-1" }), _jsxs("div", { className: "flex items-center gap-2 mt-2 text-xs text-gray-400", children: [_jsx(Clock, { className: "w-3 h-3" }), " ", service.duration, " mins"] })] }), _jsx(ChevronRight, { className: "w-5 h-5 text-gray-300 group-hover:text-black ml-4 flex-shrink-0" })] }, service.id))) })] })), currentStep === 'datetime' && (_jsxs("div", { className: "w-full", children: [_jsx("h2", { className: "text-2xl font-light mb-8", "data-payaza-edit": payaza('bookingForm', ['dateTimeHeading']), children: dateTimeHeading }), _jsx("div", { className: "mb-10", children: _jsxs("div", { className: "mb-6", children: [_jsxs("div", { className: "flex items-center justify-between mb-6", children: [_jsx("h3", { className: "text-lg font-bold text-gray-900", children: currentMonth.toLocaleString('default', { month: 'long', year: 'numeric' }) }), _jsxs("div", { className: "flex gap-1", children: [_jsx(Button, { variant: "outline", size: "icon", className: "h-8 w-8 rounded-full", onClick: prevMonth, children: _jsx(ChevronLeft, { className: "w-4 h-4" }) }), _jsx(Button, { variant: "outline", size: "icon", className: "h-8 w-8 rounded-full", onClick: nextMonth, children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] })] }), _jsx("div", { className: "grid grid-cols-7 mb-3", children: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'].map((day) => (_jsx("div", { className: "text-center text-xs font-bold text-gray-400 uppercase tracking-wider", children: day }, day))) }), _jsx("div", { className: "grid grid-cols-7 gap-y-3", children: generateDates().map((date, i) => {
|
|
432
|
+
const isSelected = selectedDate?.toDateString() === date.toDateString();
|
|
433
|
+
const isToday = date.toDateString() === new Date().toDateString();
|
|
434
|
+
const isCurrentMonth = date.getMonth() === currentMonth.getMonth();
|
|
435
|
+
return (_jsx("div", { className: "flex justify-center", children: _jsxs("button", { onClick: () => setSelectedDate(date), className: cn("h-10 w-10 rounded-full flex items-center justify-center text-sm font-medium transition-all relative", isSelected
|
|
436
|
+
? "bg-black text-white shadow-md scale-110"
|
|
437
|
+
: isToday
|
|
438
|
+
? "text-black font-bold bg-gray-100"
|
|
439
|
+
: !isCurrentMonth
|
|
440
|
+
? "text-gray-300 hover:text-gray-500"
|
|
441
|
+
: "text-gray-600 hover:bg-gray-50 hover:text-black"), style: isSelected ? { backgroundColor: primaryColor } : {}, children: [date.getDate(), isToday && !isSelected && (_jsx("div", { className: "absolute bottom-1.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full bg-gray-400" }))] }) }, i));
|
|
442
|
+
}) })] }) }), selectedDate && (_jsxs("div", { className: "mb-8 animate-fade-in", children: [_jsxs("h3", { className: "text-sm font-bold uppercase tracking-wider text-gray-400 mb-4", children: ["Available Time Slots for ", formatDateSafe(selectedDate, undefined, { weekday: 'long', month: 'short', day: 'numeric' })] }), _jsx("div", { className: "grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-3", children: timeSlots.map((time) => (_jsx("button", { onClick: () => setSelectedTime(time), className: cn("py-3 px-2 rounded-xl text-sm font-medium border transition-all text-center hover:shadow-sm", selectedTime === time
|
|
443
|
+
? "bg-black text-white border-black shadow-md transform scale-[1.02]"
|
|
444
|
+
: "bg-white border-gray-100 text-gray-700 hover:border-gray-300 hover:text-black"), style: selectedTime === time ? { backgroundColor: primaryColor, borderColor: primaryColor } : {}, children: time }, time))) })] })), _jsx("div", { className: "mt-10 pt-6 border-t border-gray-100 flex justify-end", children: _jsxs(Button, { disabled: !selectedDate || !selectedTime, onClick: () => {
|
|
445
|
+
// Skip details step for authenticated users, go directly to payment
|
|
446
|
+
if (isAuthenticated && user) {
|
|
447
|
+
setCurrentStep('payment');
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
setCurrentStep('details');
|
|
451
|
+
}
|
|
452
|
+
}, className: "w-full sm:w-auto shadow-lg min-w-[140px] rounded-full", style: { backgroundColor: primaryColor }, children: ["Continue ", _jsx(ChevronRight, { className: "w-4 h-4 ml-2" })] }) })] })), currentStep === 'details' && (_jsxs("div", { className: "animate-fade-in w-full", children: [_jsx("h2", { className: "text-2xl font-light mb-6", "data-payaza-edit": payaza('bookingForm', ['detailsHeading']), children: detailsHeading }), isAuthenticated && user ? (
|
|
453
|
+
// Authenticated user - show read-only account info
|
|
454
|
+
_jsxs("div", { className: "space-y-4 max-w-md", children: [_jsx("div", { className: "bg-blue-50 border border-blue-200 rounded-lg p-4 mb-6", children: _jsxs("p", { className: "text-sm text-blue-900", children: [_jsx("strong", { children: "Using your account information." }), " Your details are pre-filled from your account."] }) }), _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "First Name" }), _jsx("input", { type: "text", className: "w-full p-3 bg-gray-100 border border-gray-200 rounded-lg text-gray-700 cursor-not-allowed", value: user.firstName || '', disabled: true, readOnly: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Last Name" }), _jsx("input", { type: "text", className: "w-full p-3 bg-gray-100 border border-gray-200 rounded-lg text-gray-700 cursor-not-allowed", value: user.lastName || '', disabled: true, readOnly: true })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Email" }), _jsx("input", { type: "email", className: "w-full p-3 bg-gray-100 border border-gray-200 rounded-lg text-gray-700 cursor-not-allowed", value: user.email || '', disabled: true, readOnly: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Phone" }), _jsx("input", { type: "tel", className: "w-full p-3 bg-gray-100 border border-gray-200 rounded-lg text-gray-700 cursor-not-allowed", value: user.phone || '', disabled: true, readOnly: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Notes (Optional)" }), _jsx("textarea", { className: "w-full p-3 bg-gray-50 border border-gray-200 rounded-lg focus:outline-none focus:border-black transition-colors h-24 resize-none", placeholder: "Any special requests or allergies?", value: guestInfo.notes, onChange: (e) => setGuestInfo({ ...guestInfo, notes: e.target.value }) })] })] })) : (
|
|
455
|
+
// Guest user - show editable form
|
|
456
|
+
_jsxs("form", { className: "space-y-4 max-w-md", children: [_jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "First Name" }), _jsx("input", { type: "text", className: "w-full p-3 bg-gray-50 border border-gray-200 rounded-lg focus:outline-none focus:border-black transition-colors", placeholder: "John", value: guestInfo.firstName, onChange: (e) => setGuestInfo({ ...guestInfo, firstName: e.target.value }), required: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Last Name" }), _jsx("input", { type: "text", className: "w-full p-3 bg-gray-50 border border-gray-200 rounded-lg focus:outline-none focus:border-black transition-colors", placeholder: "Doe", value: guestInfo.lastName, onChange: (e) => setGuestInfo({ ...guestInfo, lastName: e.target.value }), required: true })] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Email" }), _jsx("input", { type: "email", className: "w-full p-3 bg-gray-50 border border-gray-200 rounded-lg focus:outline-none focus:border-black transition-colors", placeholder: "john@example.com", value: guestInfo.email, onChange: (e) => setGuestInfo({ ...guestInfo, email: e.target.value }), required: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Phone" }), _jsx("input", { type: "tel", className: "w-full p-3 bg-gray-50 border border-gray-200 rounded-lg focus:outline-none focus:border-black transition-colors", placeholder: "+1 (555) 000-0000", value: guestInfo.phone, onChange: (e) => setGuestInfo({ ...guestInfo, phone: e.target.value }), required: true })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-xs font-bold uppercase tracking-wider text-gray-500 mb-1", children: "Notes (Optional)" }), _jsx("textarea", { className: "w-full p-3 bg-gray-50 border border-gray-200 rounded-lg focus:outline-none focus:border-black transition-colors h-24 resize-none", placeholder: "Any special requests or allergies?", value: guestInfo.notes, onChange: (e) => setGuestInfo({ ...guestInfo, notes: e.target.value }) })] })] })), _jsxs("div", { className: "mt-10 flex justify-between items-center", children: [_jsxs(Button, { variant: "ghost", onClick: () => {
|
|
457
|
+
// Go back to details for guests, datetime for authenticated users (since they skip details)
|
|
458
|
+
if (isAuthenticated && user) {
|
|
459
|
+
setCurrentStep('datetime');
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
setCurrentStep('details');
|
|
463
|
+
}
|
|
464
|
+
}, children: [_jsx(ChevronLeft, { className: "w-4 h-4 mr-2" }), " Back"] }), _jsxs(Button, { onClick: () => {
|
|
465
|
+
// Validate guest info if not authenticated
|
|
466
|
+
if (!isAuthenticated) {
|
|
467
|
+
if (!guestInfo.firstName || !guestInfo.lastName || !guestInfo.email || !guestInfo.phone) {
|
|
468
|
+
addToast('Please fill in all required fields', 'error');
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
setCurrentStep('payment');
|
|
473
|
+
}, className: "w-full sm:w-auto", style: { backgroundColor: primaryColor }, children: ["Continue to Payment ", _jsx(ChevronRight, { className: "w-4 h-4 ml-2" })] })] })] })), currentStep === 'payment' && (_jsxs("div", { className: "animate-fade-in w-full", children: [_jsx("h2", { className: "text-2xl font-light mb-6", "data-payaza-edit": payaza('bookingForm', ['paymentHeading']), children: paymentHeading }), isAuthenticated && user && (_jsxs("div", { className: "bg-gray-50 p-6 rounded-2xl border border-gray-200 mb-6", children: [_jsx("h3", { className: "text-sm font-bold uppercase tracking-wider text-gray-500 mb-4", children: "Booking Information" }), _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm", children: [_jsxs("div", { children: [_jsx("span", { className: "text-gray-500", children: "Name:" }), _jsxs("p", { className: "font-medium text-gray-900", children: [user.firstName, " ", user.lastName] })] }), _jsxs("div", { children: [_jsx("span", { className: "text-gray-500", children: "Email:" }), _jsx("p", { className: "font-medium text-gray-900", children: user.email })] }), user.phone && (_jsxs("div", { children: [_jsx("span", { className: "text-gray-500", children: "Phone:" }), _jsx("p", { className: "font-medium text-gray-900", children: user.phone })] })), selectedDate && (_jsxs("div", { children: [_jsx("span", { className: "text-gray-500", children: "Date:" }), _jsx("p", { className: "font-medium text-gray-900", children: formatDateSafe(selectedDate, undefined, { weekday: 'long', month: 'long', day: 'numeric' }) })] })), selectedTime && (_jsxs("div", { children: [_jsx("span", { className: "text-gray-500", children: "Time:" }), _jsx("p", { className: "font-medium text-gray-900", children: selectedTime })] }))] }), guestInfo.notes && (_jsxs("div", { className: "mt-4 pt-4 border-t border-gray-200", children: [_jsx("span", { className: "text-gray-500 text-sm", children: "Special Notes:" }), _jsx("p", { className: "text-gray-900 mt-1", children: guestInfo.notes })] }))] })), _jsx("div", { className: "bg-blue-50/50 p-6 rounded-2xl border border-blue-100 mb-6", children: _jsxs("div", { className: "flex items-start gap-4", children: [_jsx(Lock, { className: "w-5 h-5 text-blue-600 mt-1" }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-blue-900 mb-1", children: "Encrypted Transaction" }), _jsx("p", { className: "text-sm text-blue-700/80 leading-relaxed", children: "Your payment is processed securely by Payaza. We do not store your card details." })] })] }) }), _jsxs("div", { className: "flex items-center justify-center gap-2 text-xs font-bold text-gray-400 uppercase tracking-widest", children: [_jsx(Lock, { className: "w-3 h-3" }), "256-bit SSL Secure Payment"] }), _jsxs("div", { className: "mt-10 flex justify-between items-center", children: [_jsxs(Button, { variant: "ghost", onClick: () => {
|
|
474
|
+
// Go back to details for guests, datetime for authenticated users (since they skip details)
|
|
475
|
+
if (isAuthenticated && user) {
|
|
476
|
+
setCurrentStep('datetime');
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
setCurrentStep('details');
|
|
480
|
+
}
|
|
481
|
+
}, disabled: isProcessing || isPayazaLoading, children: [_jsx(ChevronLeft, { className: "w-4 h-4 mr-2" }), " Back"] }), _jsx(Button, { onClick: handlePayment, disabled: isProcessing || isPayazaLoading || checkoutDisabled, className: "w-full sm:w-auto min-w-[200px] h-14 text-lg shadow-xl hover:shadow-2xl transition-all", style: { backgroundColor: primaryColor }, children: isProcessing || isPayazaLoading ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin" }), _jsx("span", { children: "Processing..." })] })) : checkoutDisabled ? (_jsx("span", { children: "Booking unavailable" })) : (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Lock, { className: "w-4 h-4" }), _jsxs("span", { "data-payaza-edit": payaza('bookingForm', ['confirmButtonText']), children: [confirmButtonText, " \u2014 ", formatCurrency(selectedService?.price || 0, selectedService?.currency || storeConfig.settings?.currency || 'USD')] })] })) })] }), checkoutDisabled && (_jsx("p", { className: "mt-4 text-sm text-center text-muted-foreground", children: CHECKOUT_UNAVAILABLE_MESSAGE }))] })), currentStep === 'success' && (_jsxs("div", { className: "animate-fade-in flex-1 flex flex-col items-center justify-center py-12 px-4", children: [_jsxs("div", { className: "mb-8 relative", children: [_jsx("div", { className: "w-24 h-24 bg-green-100 rounded-full flex items-center justify-center animate-scale-in relative z-10", children: _jsx(CheckCircle2, { className: "w-12 h-12 text-green-600" }) }), _jsx("div", { className: "absolute inset-0 bg-green-100 rounded-full animate-ping opacity-20" })] }), _jsx("h2", { className: "text-3xl md:text-4xl font-bold mb-3 text-gray-900 text-center tracking-tight", children: "Booking Confirmed!" }), _jsx("p", { className: "text-gray-500 mb-10 text-center max-w-md text-lg", children: "You're all set. A confirmation email has been sent to you." }), _jsxs("div", { className: "bg-gray-50 border border-gray-100 rounded-2xl p-6 mb-10 w-full max-w-md relative overflow-hidden", children: [_jsx("div", { className: "absolute top-0 left-0 w-1 h-full", style: { backgroundColor: primaryColor } }), _jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("p", { className: "text-xs font-bold text-gray-400 uppercase tracking-wider mb-1", children: "Service" }), _jsx("p", { className: "font-bold text-gray-900", children: selectedService?.name })] }), _jsxs("div", { children: [_jsx("p", { className: "text-xs font-bold text-gray-400 uppercase tracking-wider mb-1", children: "Total Paid" }), _jsx("p", { className: "font-bold text-gray-900", children: formatCurrency(selectedService?.price || 0, selectedService?.currency || storeConfig.settings?.currency || 'USD') })] }), _jsxs("div", { children: [_jsx("p", { className: "text-xs font-bold text-gray-400 uppercase tracking-wider mb-1", children: "Date" }), _jsx("p", { className: "font-medium text-gray-900", children: formatDateSafe(selectedDate, undefined, { weekday: 'short', month: 'short', day: 'numeric' }) })] }), _jsxs("div", { children: [_jsx("p", { className: "text-xs font-bold text-gray-400 uppercase tracking-wider mb-1", children: "Time" }), _jsx("p", { className: "font-medium text-gray-900", children: selectedTime })] })] })] }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4 w-full max-w-md", children: [_jsx(Link, { href: `/${storeConfig.slug}/account?tab=bookings`, className: "flex-1", children: _jsx(Button, { size: "lg", className: "w-full rounded-xl h-14 text-base shadow-xl shadow-black/5 transition-all hover:shadow-2xl hover:-translate-y-0.5", style: { backgroundColor: primaryColor }, children: "View My Bookings" }) }), _jsx(Link, { href: `/${storeConfig.slug}`, className: "flex-1", children: _jsx(Button, { variant: "outline", size: "lg", className: "w-full rounded-xl h-14 text-base border-gray-200 hover:bg-gray-50 hover:text-black hover:border-gray-300", children: "Return to Home" }) })] })] }))] })] })] }) })] }));
|
|
482
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types';
|
|
2
|
+
interface CategoriesPageProps {
|
|
3
|
+
storeConfig: StoreConfig;
|
|
4
|
+
}
|
|
5
|
+
export declare function BookingCategoriesPage({ storeConfig: initialConfig }: CategoriesPageProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=CategoriesPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoriesPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking/pages/CategoriesPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD,UAAU,mBAAmB;IAC3B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,mBAAmB,2CAiFxF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Breadcrumbs } from '../../../components/ui/breadcrumbs.js';
|
|
4
|
+
import { payazaInlineBindingProps, encodePayazaFieldKey } from '../../../preview/canvas/field-key.js';
|
|
5
|
+
import { CategoryMasonryGrid } from '../../../components/categories/category-masonry-grid.js';
|
|
6
|
+
import { useStore } from '../../../lib/store-context.js';
|
|
7
|
+
import { useCatalogLoader } from '../../../hooks/use-catalog-loader.js';
|
|
8
|
+
import { isEditorPreviewMode, resolveStoreCategoriesForDisplay } from '../../../lib/utils/index.js';
|
|
9
|
+
export function BookingCategoriesPage({ storeConfig: initialConfig }) {
|
|
10
|
+
const { store } = useStore();
|
|
11
|
+
const storeConfig = store || initialConfig;
|
|
12
|
+
const isPreview = isEditorPreviewMode(storeConfig);
|
|
13
|
+
const { categories: loadedCategories } = useCatalogLoader(storeConfig, {
|
|
14
|
+
fetchProducts: false,
|
|
15
|
+
fetchServices: false,
|
|
16
|
+
});
|
|
17
|
+
const categories = resolveStoreCategoriesForDisplay(loadedCategories, isPreview);
|
|
18
|
+
const categoriesConfig = storeConfig.layoutConfig?.pages?.categories;
|
|
19
|
+
const categoryGridConfig = categoriesConfig?.categoryGrid;
|
|
20
|
+
const payaza = (sectionKey, segments) => isPreview ? encodePayazaFieldKey(sectionKey, segments) : undefined;
|
|
21
|
+
const pageTitle = categoriesConfig?.categoriesHeader?.title || 'Service Categories';
|
|
22
|
+
const pageSubtitle = categoriesConfig?.categoriesHeader?.subtitle ||
|
|
23
|
+
'Explore our wide range of professional services. Find the perfect expert for your needs.';
|
|
24
|
+
const exploreLabel = categoryGridConfig?.exploreButtonLabel || 'Explore Services';
|
|
25
|
+
const breadcrumbItems = [
|
|
26
|
+
{ label: storeConfig.name, href: `/${storeConfig.slug}` },
|
|
27
|
+
{ label: 'Categories', href: `/${storeConfig.slug}/categories` },
|
|
28
|
+
];
|
|
29
|
+
return (_jsxs("div", { "data-content-ready": true, className: "min-h-screen bg-white text-slate-900 font-sans", children: [_jsx("div", { "data-section": "categoriesHeader", "data-payaza-section-key": "categoriesHeader", "data-payaza-page": "categories", className: "bg-gray-50 border-b border-gray-200", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8 py-12 lg:py-16", children: _jsxs("div", { className: "max-w-3xl animate-fade-in-up", children: [_jsx("div", { className: "mb-6", children: _jsx(Breadcrumbs, { items: breadcrumbItems }) }), _jsx("h1", { className: "text-4xl lg:text-5xl font-bold tracking-tight text-gray-900 mb-6", ...payazaInlineBindingProps(isPreview, 'categoriesHeader', ['title']), children: pageTitle }), _jsx("p", { className: "text-lg text-gray-600 leading-relaxed max-w-2xl", ...payazaInlineBindingProps(isPreview, 'categoriesHeader', ['subtitle'], { rich: 'inline' }), children: pageSubtitle })] }) }) }), _jsx("div", { "data-section": "categoryGrid", "data-payaza-section-key": "categoryGrid", "data-payaza-page": "categories", className: "container mx-auto px-4 sm:px-6 lg:px-8 py-16", children: categories.length === 0 ? (_jsxs("div", { className: "text-center py-20", children: [_jsx("h3", { className: "text-xl font-semibold text-gray-900 mb-2", children: "No categories available" }), _jsx("p", { className: "text-gray-500", children: "Categories will appear here once they are added to the store." })] })) : (_jsx(CategoryMasonryGrid, { categories: categories, mode: "page", columns: categoryGridConfig?.columns, showImages: categoryGridConfig?.showImages !== false, showDescriptions: categoryGridConfig?.showDescriptions !== false, getHref: (category) => `/${storeConfig.slug}/categories/${category.slug}`, exploreLabel: exploreLabel, exploreLabelDataAttr: payaza('categoryGrid', ['exploreButtonLabel']) })) })] }));
|
|
30
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types';
|
|
2
|
+
interface CategoryPageProps {
|
|
3
|
+
storeConfig: StoreConfig;
|
|
4
|
+
categorySlug: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function BookingCategoryPage({ storeConfig: initialConfig, categorySlug }: CategoryPageProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=CategoryPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking/pages/CategoryPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBhD,UAAU,iBAAiB;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,iBAAiB,2CAiKlG"}
|