storefront-layouts 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/LoginForm.d.ts +1 -1
- package/dist/components/auth/LoginForm.d.ts.map +1 -1
- package/dist/components/auth/LoginForm.js +1 -1
- package/dist/components/auth/LoginSheet.d.ts +2 -2
- package/dist/components/auth/LoginSheet.d.ts.map +1 -1
- package/dist/components/auth/LoginSheet.js +1 -1
- package/dist/components/auth/login-form-core.d.ts +2 -2
- package/dist/components/auth/login-form-core.d.ts.map +1 -1
- package/dist/components/auth/login-form-core.js +1 -1
- package/dist/components/auth/login-sheet-header.d.ts +2 -2
- package/dist/components/auth/login-sheet-header.d.ts.map +1 -1
- package/dist/components/auth/login-sheet-header.js +3 -3
- package/dist/components/auth/login-sheet-registry.d.ts +2 -2
- package/dist/components/auth/login-sheet-registry.d.ts.map +1 -1
- package/dist/components/auth/login-sheet-theme.types.d.ts +1 -1
- package/dist/components/auth/login-sheet-themes/index.d.ts +1 -1
- package/dist/components/auth/login-sheet-themes/index.d.ts.map +1 -1
- package/dist/components/auth/login-sheet-themes/index.js +0 -2
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts +2 -2
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts.map +1 -1
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.js +2 -2
- package/dist/components/auth/use-login-submit.js +3 -3
- package/dist/components/cart/InventoryHoldCountdown.d.ts +1 -1
- package/dist/components/cart/InventoryHoldCountdown.d.ts.map +1 -1
- package/dist/components/cart/InventoryHoldCountdown.js +2 -2
- package/dist/components/categories/category-masonry-grid.d.ts +1 -1
- package/dist/components/categories/category-masonry-grid.d.ts.map +1 -1
- package/dist/components/checkout/CheckoutFeeLines.d.ts +2 -2
- package/dist/components/checkout/CheckoutFeeLines.d.ts.map +1 -1
- package/dist/components/checkout/CheckoutFeeLines.js +1 -1
- package/dist/components/checkout/ShippingOptionsPanel.d.ts +2 -2
- package/dist/components/checkout/ShippingOptionsPanel.d.ts.map +1 -1
- package/dist/components/checkout/ShippingOptionsPanel.js +3 -3
- package/dist/components/learning/CertificateTemplates.d.ts +2 -2
- package/dist/components/learning/CertificateTemplates.d.ts.map +1 -1
- package/dist/components/learning/CertificateTemplates.js +2 -2
- package/dist/components/learning/CertificateViewer.d.ts +1 -1
- package/dist/components/learning/CertificateViewer.d.ts.map +1 -1
- package/dist/components/learning/CertificateViewer.js +2 -2
- package/dist/components/learning/MentorshipProgress.d.ts +1 -1
- package/dist/components/learning/MentorshipProgress.d.ts.map +1 -1
- package/dist/components/learning/MentorshipProgress.js +3 -3
- package/dist/components/product/ProductVariationSelectors.d.ts +2 -2
- package/dist/components/product/ProductVariationSelectors.d.ts.map +1 -1
- package/dist/components/product/ProductVariationSelectors.js +1 -1
- package/dist/components/rich-text/CategoryDescription.d.ts +2 -1
- package/dist/components/rich-text/CategoryDescription.d.ts.map +1 -1
- package/dist/components/rich-text/ProductDescription.d.ts +2 -1
- package/dist/components/rich-text/ProductDescription.d.ts.map +1 -1
- package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts +1 -1
- package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts.map +1 -1
- package/dist/components/shipping/ProductDeliveryInfoSection.d.ts +4 -4
- package/dist/components/shipping/ProductDeliveryInfoSection.d.ts.map +1 -1
- package/dist/components/shipping/ProductDeliveryInfoSection.js +2 -2
- package/dist/components/shipping/ShippingQuoteAddressForm.d.ts +2 -2
- package/dist/components/shipping/ShippingQuoteAddressForm.d.ts.map +1 -1
- package/dist/components/shipping/ShippingQuoteAddressForm.js +3 -3
- package/dist/components/ui/address-selector.d.ts +2 -2
- package/dist/components/ui/address-selector.d.ts.map +1 -1
- package/dist/components/ui/alert-modal.d.ts +1 -1
- package/dist/components/ui/alert-modal.d.ts.map +1 -1
- package/dist/components/ui/alert-modal.js +1 -1
- package/dist/components/ui/avatar-image.d.ts +1 -1
- package/dist/components/ui/avatar-image.d.ts.map +1 -1
- package/dist/components/ui/avatar-image.js +1 -1
- package/dist/components/ui/background-patterns.d.ts +4 -4
- package/dist/components/ui/background-patterns.d.ts.map +1 -1
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/breadcrumbs.d.ts +2 -1
- package/dist/components/ui/breadcrumbs.d.ts.map +1 -1
- package/dist/components/ui/breadcrumbs.js +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/card.d.ts +7 -7
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/category-tree.d.ts +2 -2
- package/dist/components/ui/category-tree.d.ts.map +1 -1
- package/dist/components/ui/category-tree.js +2 -2
- package/dist/components/ui/checkout-button.d.ts +2 -2
- package/dist/components/ui/checkout-button.d.ts.map +1 -1
- package/dist/components/ui/checkout-button.js +4 -4
- package/dist/components/ui/guest-checkout-modal.d.ts +2 -1
- package/dist/components/ui/guest-checkout-modal.d.ts.map +1 -1
- package/dist/components/ui/guest-checkout-modal.js +1 -1
- package/dist/components/ui/image-skeleton.d.ts +1 -1
- package/dist/components/ui/image-skeleton.d.ts.map +1 -1
- package/dist/components/ui/image-skeleton.js +1 -1
- package/dist/components/ui/image-with-fallback.d.ts +1 -1
- package/dist/components/ui/image-with-fallback.d.ts.map +1 -1
- package/dist/components/ui/image-with-fallback.js +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/limited-time-offer-badge.d.ts +1 -1
- package/dist/components/ui/limited-time-offer-badge.d.ts.map +1 -1
- package/dist/components/ui/limited-time-offer-badge.js +2 -2
- package/dist/components/ui/loading-skeleton-wrapper.d.ts +1 -1
- package/dist/components/ui/loading-skeleton-wrapper.d.ts.map +1 -1
- package/dist/components/ui/modal.d.ts +1 -1
- package/dist/components/ui/modal.d.ts.map +1 -1
- package/dist/components/ui/modal.js +1 -1
- package/dist/components/ui/otp-input.d.ts +2 -1
- package/dist/components/ui/otp-input.d.ts.map +1 -1
- package/dist/components/ui/otp-input.js +1 -1
- package/dist/components/ui/out-of-stock-overlay.d.ts +1 -1
- package/dist/components/ui/out-of-stock-overlay.d.ts.map +1 -1
- package/dist/components/ui/out-of-stock-overlay.js +1 -1
- package/dist/components/ui/page-animate-wrapper.d.ts +1 -1
- package/dist/components/ui/page-animate-wrapper.d.ts.map +1 -1
- package/dist/components/ui/page-animate-wrapper.js +2 -2
- package/dist/components/ui/page-content-loader.d.ts +1 -1
- package/dist/components/ui/page-content-loader.d.ts.map +1 -1
- package/dist/components/ui/page-content-loader.js +1 -1
- package/dist/components/ui/page-loader.d.ts +3 -3
- package/dist/components/ui/page-loader.d.ts.map +1 -1
- package/dist/components/ui/page-loader.js +1 -1
- package/dist/components/ui/product-card.d.ts +2 -2
- package/dist/components/ui/product-card.d.ts.map +1 -1
- package/dist/components/ui/product-card.js +17 -17
- package/dist/components/ui/product-rating.d.ts +1 -1
- package/dist/components/ui/product-rating.d.ts.map +1 -1
- package/dist/components/ui/product-rating.js +1 -1
- package/dist/components/ui/product-stock-badge.d.ts +2 -2
- package/dist/components/ui/product-stock-badge.d.ts.map +1 -1
- package/dist/components/ui/product-stock-badge.js +2 -2
- package/dist/components/ui/review-form.d.ts +2 -2
- package/dist/components/ui/review-form.d.ts.map +1 -1
- package/dist/components/ui/review-form.js +2 -2
- package/dist/components/ui/route-skeleton-loader.d.ts +1 -1
- package/dist/components/ui/route-skeleton-loader.d.ts.map +1 -1
- package/dist/components/ui/route-skeleton-loader.js +7 -2
- package/dist/components/ui/sheet.d.ts +1 -1
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +1 -1
- package/dist/components/ui/skeleton.d.ts +1 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeleton.js +1 -1
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts +1 -1
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts +1 -1
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeletons/page-skeleton.d.ts +1 -1
- package/dist/components/ui/skeletons/page-skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts +1 -1
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts +1 -1
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts +1 -1
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts.map +1 -1
- package/dist/components/ui/store-logos.d.ts +13 -13
- package/dist/components/ui/store-logos.d.ts.map +1 -1
- package/dist/components/ui/store-logos.js +2 -2
- package/dist/components/ui/toast.d.ts +1 -1
- package/dist/components/ui/toast.d.ts.map +1 -1
- package/dist/components/ui/toast.js +1 -1
- package/dist/components/ui/video-player.d.ts +1 -1
- package/dist/components/ui/video-player.d.ts.map +1 -1
- package/dist/components/ui/video-player.js +2 -2
- package/dist/editor/alignment-schemas/booking-footer-section.d.ts.map +1 -1
- package/dist/editor/alignment-schemas/booking-footer-section.js +0 -1
- package/dist/editor/alignment-schemas/clothing.d.ts.map +1 -1
- package/dist/editor/alignment-schemas/clothing.js +0 -1
- package/dist/editor/alignment-schemas/food.d.ts.map +1 -1
- package/dist/editor/alignment-schemas/food.js +0 -1
- package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts +1 -1
- package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts.map +1 -1
- package/dist/editor/payaza-form/EditorCanvasPreview.d.ts +1 -1
- package/dist/editor/payaza-form/EditorCanvasPreview.d.ts.map +1 -1
- package/dist/editor/payaza-form/EditorCanvasPreview.js +1 -1
- package/dist/editor/payaza-form/PayazaFormEditor.d.ts.map +1 -1
- package/dist/editor/payaza-form/PayazaFormEditor.js +4 -2
- package/dist/editor/payaza-form/SliderArrayEditor.js +1 -1
- package/dist/editor/payaza-form/components/BlocksField.js +1 -1
- package/dist/editor/payaza-form/components/SectionField.js +1 -1
- package/dist/editor/payaza-form/components/StarRatingField.js +1 -1
- package/dist/editor/payaza-form/data-transformer.d.ts.map +1 -1
- package/dist/editor/payaza-form/data-transformer.js +8 -1
- package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts +2 -1
- package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts.map +1 -1
- package/dist/editor/shared/BlockOutlineTree.d.ts +2 -1
- package/dist/editor/shared/BlockOutlineTree.d.ts.map +1 -1
- package/dist/editor/shared/BlockOutlineTree.js +1 -1
- package/dist/editor/shared/EditorHeader.js +1 -1
- package/dist/editor/shared/EditorNavigator.js +1 -1
- package/dist/editor/shared/InlineCanvasPreview.js +1 -1
- package/dist/editor/shared/useEditorChromeMetrics.js +2 -1
- package/dist/hooks/use-analytics.d.ts +1 -1
- package/dist/hooks/use-analytics.js +3 -3
- package/dist/hooks/use-api.js +1 -1
- package/dist/hooks/use-cart-api.d.ts +1 -1
- package/dist/hooks/use-cart-api.js +3 -3
- package/dist/hooks/use-catalog-loader.d.ts +1 -1
- package/dist/hooks/use-catalog-loader.js +6 -6
- package/dist/hooks/use-catalog-price-range.d.ts +2 -2
- package/dist/hooks/use-catalog-price-range.js +1 -1
- package/dist/hooks/use-category-products.d.ts +6 -2
- package/dist/hooks/use-category-products.d.ts.map +1 -1
- package/dist/hooks/use-category-products.js +10 -7
- package/dist/hooks/use-checkout-fees.d.ts +4 -3
- package/dist/hooks/use-checkout-fees.d.ts.map +1 -1
- package/dist/hooks/use-checkout-fees.js +1 -1
- package/dist/hooks/use-content-ready.js +1 -1
- package/dist/hooks/use-featured-products.d.ts +1 -1
- package/dist/hooks/use-featured-products.js +2 -2
- package/dist/hooks/use-filtered-products-fetch.d.ts +12 -0
- package/dist/hooks/use-filtered-products-fetch.d.ts.map +1 -0
- package/dist/hooks/use-filtered-products-fetch.js +58 -0
- package/dist/hooks/use-multi-store-checkout-fees.d.ts +4 -3
- package/dist/hooks/use-multi-store-checkout-fees.d.ts.map +1 -1
- package/dist/hooks/use-multi-store-checkout-fees.js +1 -1
- package/dist/hooks/use-navigation-loading.js +1 -1
- package/dist/hooks/use-payaza-checkout.d.ts +1 -1
- package/dist/hooks/use-payaza-checkout.js +2 -2
- package/dist/hooks/use-product-brands.js +1 -1
- package/dist/hooks/use-product-by-slug.d.ts +1 -1
- package/dist/hooks/use-product-by-slug.js +2 -2
- package/dist/hooks/use-product-variation-selection.d.ts +7 -1
- package/dist/hooks/use-product-variation-selection.d.ts.map +1 -1
- package/dist/hooks/use-product-variation-selection.js +1 -1
- package/dist/hooks/use-products-api.d.ts +2 -2
- package/dist/hooks/use-products-api.js +3 -3
- package/dist/hooks/use-shipping-quote.d.ts +2 -2
- package/dist/hooks/use-shipping-quote.js +2 -2
- package/dist/hooks/use-store-api.d.ts +2 -2
- package/dist/hooks/use-store-api.js +4 -4
- package/dist/index.d.ts +15 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -6
- package/dist/layouts/booking/components/BookingHomePage.d.ts +2 -2
- package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -1
- package/dist/layouts/booking/components/BookingHomePage.js +7 -5
- package/dist/layouts/booking/components/BookingMultilineHeading.d.ts +2 -1
- package/dist/layouts/booking/components/BookingMultilineHeading.d.ts.map +1 -1
- package/dist/layouts/booking/components/BookingTestimonialCard.d.ts +3 -2
- package/dist/layouts/booking/components/BookingTestimonialCard.d.ts.map +1 -1
- package/dist/layouts/booking/components/BookingTestimonialCard.js +1 -1
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts +2 -1
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts.map +1 -1
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.js +1 -1
- package/dist/layouts/booking/components/booking-footer-defaults.d.ts +1 -1
- package/dist/layouts/booking/components/booking-testimonial-defaults.d.ts +1 -1
- package/dist/layouts/booking/index.d.ts +5 -5
- package/dist/layouts/booking/index.d.ts.map +1 -1
- package/dist/layouts/booking/index.js +5 -5
- package/dist/layouts/booking/pages/AboutPage.d.ts +2 -2
- package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/AboutPage.js +6 -4
- package/dist/layouts/booking/pages/BookPage.d.ts +2 -2
- package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/BookPage.js +14 -14
- package/dist/layouts/booking/pages/CategoriesPage.d.ts +2 -2
- package/dist/layouts/booking/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/CategoriesPage.js +4 -4
- package/dist/layouts/booking/pages/CategoryPage.d.ts +2 -2
- package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/CategoryPage.js +9 -7
- package/dist/layouts/booking/pages/ContactPage.d.ts +2 -2
- package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/ContactPage.js +3 -3
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts +2 -2
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/ProductDetailPage.js +25 -23
- package/dist/layouts/booking/pages/ServicesPage.d.ts +2 -2
- package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/ServicesPage.js +7 -5
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts +2 -2
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +17 -17
- package/dist/layouts/booking-agenda/index.d.ts +5 -5
- package/dist/layouts/booking-agenda/index.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/index.js +5 -5
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +2 -2
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/AboutPage.js +6 -4
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts +2 -2
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/BookPage.js +14 -14
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts +2 -2
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/CategoriesPage.js +4 -4
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +2 -2
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/CategoryPage.js +9 -7
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +2 -2
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/ContactPage.js +3 -3
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +2 -2
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +25 -23
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +2 -2
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/ServicesPage.js +6 -4
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts +1 -1
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -1
- package/dist/layouts/clothing/components/ClothingHomePage.js +7 -6
- package/dist/layouts/clothing/index.d.ts +5 -5
- package/dist/layouts/clothing/index.d.ts.map +1 -1
- package/dist/layouts/clothing/index.js +5 -5
- package/dist/layouts/clothing/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/AboutPage.js +2 -1
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/CategoriesPage.js +3 -2
- package/dist/layouts/clothing/pages/CategoryPage.d.ts +3 -1
- package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/CategoryPage.js +5 -4
- package/dist/layouts/clothing/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/ProductDetailPage.js +6 -5
- package/dist/layouts/clothing/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/ProductsPage.js +57 -64
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts +1 -1
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +6 -5
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts +6 -5
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/index.d.ts +5 -5
- package/dist/layouts/clothing-minimal/index.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/index.js +5 -5
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/AboutPage.js +2 -1
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +3 -2
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +3 -1
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/CategoryPage.js +5 -4
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +5 -4
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductsPage.js +57 -64
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts +2 -2
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +4 -4
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts +2 -2
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +14 -14
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts +2 -2
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsHomePage.js +10 -9
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts +2 -2
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +2 -2
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts +2 -2
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsProductsPage.js +56 -47
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts +2 -2
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +4 -3
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts +2 -2
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +6 -6
- package/dist/layouts/electronics/index.d.ts +5 -5
- package/dist/layouts/electronics/index.d.ts.map +1 -1
- package/dist/layouts/electronics/index.js +5 -5
- package/dist/layouts/electronics/pages/AboutPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/AboutPage.js +6 -4
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/CategoryPage.d.ts +4 -2
- package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/CategoryPage.js +11 -10
- package/dist/layouts/electronics/pages/ContactPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/ContactPage.js +3 -3
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/HelpCenterPage.js +1 -1
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +1 -1
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/ProductDetailPage.js +25 -23
- package/dist/layouts/electronics/pages/ProductsPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/ProductsPage.js +72 -79
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/TermsPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/TermsPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/TermsPage.js +1 -1
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts +2 -2
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/TrackOrderPage.js +4 -4
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts +2 -2
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +14 -14
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts +2 -2
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +16 -15
- package/dist/layouts/electronics-grid/index.d.ts +5 -5
- package/dist/layouts/electronics-grid/index.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/index.js +5 -5
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/AboutPage.js +6 -4
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +4 -2
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/CategoryPage.js +11 -10
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/ContactPage.js +3 -3
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +6 -6
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +1 -1
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +1 -1
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +25 -23
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/ProductsPage.js +72 -79
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/TermsPage.js +1 -1
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts +2 -2
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +4 -4
- package/dist/layouts/food/components/FoodHomePage.d.ts +2 -2
- package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -1
- package/dist/layouts/food/components/FoodHomePage.js +13 -11
- package/dist/layouts/food/index.d.ts +6 -6
- package/dist/layouts/food/index.d.ts.map +1 -1
- package/dist/layouts/food/index.js +6 -6
- package/dist/layouts/food/pages/AboutPage.d.ts +2 -2
- package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/AboutPage.js +5 -4
- package/dist/layouts/food/pages/CategoriesPage.d.ts +2 -2
- package/dist/layouts/food/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/CategoriesPage.js +4 -4
- package/dist/layouts/food/pages/CategoryPage.d.ts +4 -2
- package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/CategoryPage.js +12 -10
- package/dist/layouts/food/pages/ContactPage.d.ts +2 -2
- package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/ContactPage.js +3 -3
- package/dist/layouts/food/pages/MenuPage.d.ts +2 -2
- package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/MenuPage.js +8 -8
- package/dist/layouts/food/pages/ProductDetailPage.d.ts +2 -2
- package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/ProductDetailPage.js +25 -23
- package/dist/layouts/food/pages/ProductsPage.d.ts +2 -2
- package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/ProductsPage.js +66 -69
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts +2 -2
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -1
- package/dist/layouts/food-modern/components/FoodHomePageModern.js +11 -9
- package/dist/layouts/food-modern/index.d.ts +6 -6
- package/dist/layouts/food-modern/index.d.ts.map +1 -1
- package/dist/layouts/food-modern/index.js +6 -6
- package/dist/layouts/food-modern/pages/AboutPage.d.ts +2 -2
- package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/AboutPage.js +6 -4
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts +2 -2
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/CategoriesPage.js +4 -4
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts +4 -2
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/CategoryPage.js +12 -10
- package/dist/layouts/food-modern/pages/ContactPage.d.ts +2 -2
- package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/ContactPage.js +3 -3
- package/dist/layouts/food-modern/pages/MenuPage.d.ts +2 -2
- package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/MenuPage.js +8 -8
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +2 -2
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/ProductDetailPage.js +25 -23
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts +2 -2
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/ProductsPage.js +66 -69
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts +2 -2
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +10 -8
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts +2 -1
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/index.d.ts +6 -6
- package/dist/layouts/motivational-speaker/index.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/index.js +6 -6
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +2 -2
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/AboutPage.js +6 -4
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +4 -2
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/CategoryPage.js +15 -13
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +2 -2
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ContactPage.js +3 -3
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +2 -2
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ProductsPage.js +72 -79
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +2 -2
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +10 -9
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +2 -2
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ServicesPage.js +6 -4
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts +2 -2
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +10 -9
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts +1 -1
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts.map +1 -1
- package/dist/layouts/shared/components/CartLineQuantityControl.d.ts +2 -2
- package/dist/layouts/shared/components/CartLineQuantityControl.d.ts.map +1 -1
- package/dist/layouts/shared/components/CartLineQuantityControl.js +1 -1
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts +1 -1
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts.map +1 -1
- package/dist/layouts/shared/components/ProductPriceFilterSection.d.ts +1 -1
- package/dist/layouts/shared/components/ProductPriceFilterSection.d.ts.map +1 -1
- package/dist/layouts/shared/components/ProductPriceFilterSection.js +1 -1
- package/dist/layouts/shared/components/PromoBanner.d.ts +2 -1
- package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -1
- package/dist/layouts/shared/components/StoreFooter.d.ts +1 -1
- package/dist/layouts/shared/components/StoreFooter.d.ts.map +1 -1
- package/dist/layouts/shared/components/StoreFooter.js +6 -16
- package/dist/layouts/shared/components/StoreHeader.d.ts +1 -1
- package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -1
- package/dist/layouts/shared/components/StoreHeader.js +4 -4
- package/dist/layouts/shared/components/TestimonialCard.d.ts +3 -2
- package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -1
- package/dist/layouts/shared/components/TestimonialCard.js +1 -1
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts +1 -1
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts.map +1 -1
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts +1 -1
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts.map +1 -1
- package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts +1 -1
- package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts.map +1 -1
- package/dist/layouts/shared/pages/AccountPage.d.ts +2 -2
- package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/AccountPage.js +15 -15
- package/dist/layouts/shared/pages/CartPage.d.ts +2 -2
- package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/CartPage.js +4 -4
- package/dist/layouts/shared/pages/CheckoutPage.d.ts +2 -2
- package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/CheckoutPage.js +19 -19
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts +2 -2
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/CookiePolicyPage.js +1 -1
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts +2 -2
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/FeatureDisabledPage.js +1 -1
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts +2 -2
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/HelpCenterPage.js +1 -1
- package/dist/layouts/shared/pages/MaintenancePage.d.ts +2 -2
- package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/MaintenancePage.js +2 -2
- package/dist/layouts/shared/pages/PortfolioPage.d.ts +2 -2
- package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/PortfolioPage.js +3 -2
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts +2 -2
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/PrivacyPolicyPage.js +1 -1
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts +2 -2
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts +2 -2
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/SizeGuidePage.js +1 -1
- package/dist/layouts/shared/pages/StoreMaintenanceScreen.d.ts +9 -0
- package/dist/layouts/shared/pages/StoreMaintenanceScreen.d.ts.map +1 -0
- package/dist/layouts/shared/pages/StoreMaintenanceScreen.js +10 -0
- package/dist/layouts/shared/pages/StoreOfflinePage.d.ts +19 -0
- package/dist/layouts/shared/pages/StoreOfflinePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/StoreOfflinePage.js +113 -0
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts +2 -2
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/StyleGuidePage.js +3 -3
- package/dist/layouts/shared/pages/TeamPage.d.ts +2 -2
- package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/TermsPage.d.ts +2 -2
- package/dist/layouts/shared/pages/TermsPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/TermsPage.js +1 -1
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts +2 -2
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/TrackOrderPage.js +4 -4
- package/dist/layouts/shared/pages/WishlistPage.d.ts +2 -2
- package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/WishlistPage.js +21 -24
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts +1 -1
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.js +1 -1
- package/dist/layouts/shared/wrappers/ClothingLayout.d.ts +1 -1
- package/dist/layouts/shared/wrappers/ClothingLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/ClothingLayout.js +5 -5
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts +1 -1
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.js +4 -4
- package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts +1 -1
- package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/ElectronicsLayout.js +4 -4
- package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts +1 -1
- package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/FoodModernLayout.js +4 -4
- package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts +1 -1
- package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/MotivationalLayout.js +4 -4
- package/dist/layouts/shared/wrappers/StandardLayout.d.ts +1 -1
- package/dist/layouts/shared/wrappers/StandardLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/StandardLayout.js +4 -4
- package/dist/lib/auth-context.d.ts +1 -1
- package/dist/lib/auth-context.d.ts.map +1 -1
- package/dist/lib/content-selectors.js +3 -3
- package/dist/lib/layout-route-utils.d.ts +1 -0
- package/dist/lib/layout-route-utils.d.ts.map +1 -1
- package/dist/lib/layout-route-utils.js +1 -1
- package/dist/lib/loading-context.d.ts +1 -1
- package/dist/lib/loading-context.d.ts.map +1 -1
- package/dist/lib/loading-context.js +4 -4
- package/dist/lib/payaza-checkout.js +1 -1
- package/dist/lib/payaza-public-key.d.ts +1 -1
- package/dist/lib/preview-data.d.ts.map +1 -1
- package/dist/lib/preview-data.js +0 -2
- package/dist/lib/rich-html.d.ts +8 -0
- package/dist/lib/rich-html.d.ts.map +1 -1
- package/dist/lib/services/fees.service.d.ts +63 -17
- package/dist/lib/services/fees.service.d.ts.map +1 -1
- package/dist/lib/services/fees.service.js +137 -3
- package/dist/lib/services/product.service.d.ts +1 -0
- package/dist/lib/services/product.service.d.ts.map +1 -1
- package/dist/lib/store-context.d.ts +2 -1
- package/dist/lib/store-context.d.ts.map +1 -1
- package/dist/lib/store-context.js +1 -0
- package/dist/lib/store-types.d.ts +32 -0
- package/dist/lib/store-types.d.ts.map +1 -1
- package/dist/lib/utils/asset-helpers.d.ts +1 -1
- package/dist/lib/utils/catalog-price-bounds.d.ts +2 -0
- package/dist/lib/utils/catalog-price-bounds.d.ts.map +1 -1
- package/dist/lib/utils/catalog-price-bounds.js +21 -0
- package/dist/lib/utils/category-tree.d.ts +1 -1
- package/dist/lib/utils/filtered-product-query.d.ts +22 -0
- package/dist/lib/utils/filtered-product-query.d.ts.map +1 -0
- package/dist/lib/utils/filtered-product-query.js +57 -0
- package/dist/lib/utils/filtered-products-inflight.d.ts +3 -0
- package/dist/lib/utils/filtered-products-inflight.d.ts.map +1 -0
- package/dist/lib/utils/filtered-products-inflight.js +15 -0
- package/dist/lib/utils/index.js +1 -1
- package/dist/lib/utils/url-helpers.d.ts.map +1 -1
- package/dist/lib/utils/url-helpers.js +2 -11
- package/dist/preview/LayoutPreview.d.ts +1 -1
- package/dist/preview/LayoutPreview.d.ts.map +1 -1
- package/dist/preview/LayoutPreview.js +23 -6
- package/dist/preview/PreviewRouter.d.ts +3 -2
- package/dist/preview/PreviewRouter.d.ts.map +1 -1
- package/dist/preview/PreviewRouter.js +2 -2
- package/dist/preview/ShadowDOMWrapper.d.ts +1 -1
- package/dist/preview/ShadowDOMWrapper.d.ts.map +1 -1
- package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts +1 -1
- package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts.map +1 -1
- package/dist/preview/canvas/PreviewCanvasStyles.d.ts +1 -1
- package/dist/preview/canvas/PreviewCanvasStyles.d.ts.map +1 -1
- package/dist/preview/index.d.ts +1 -1
- package/dist/preview/index.js +1 -1
- package/dist/styles/index.css +1609 -3279
- package/package.json +4 -2
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Users, Award, Heart, Leaf, MapPin, Clock, Mail, ArrowRight } from 'lucide-react';
|
|
4
|
-
import { Button } from '../../../components/ui/button';
|
|
5
|
-
import { DotPattern } from '../../../components/ui/background-patterns';
|
|
6
|
-
import { useStore } from '../../../lib/store-context';
|
|
4
|
+
import { Button } from '../../../components/ui/button.js';
|
|
5
|
+
import { DotPattern } from '../../../components/ui/background-patterns.js';
|
|
6
|
+
import { useStore } from '../../../lib/store-context.js';
|
|
7
7
|
import Image from 'next/image';
|
|
8
|
+
import { SafeRichHtml } from '../../../components/rich-text/SafeRichHtml.js';
|
|
9
|
+
import { RichTextExcerpt } from '../../../components/rich-text/RichTextExcerpt.js';
|
|
8
10
|
export function AboutPage({ storeConfig: initialConfig }) {
|
|
9
11
|
const { store } = useStore();
|
|
10
12
|
const storeConfig = store || initialConfig;
|
|
@@ -39,7 +41,7 @@ export function AboutPage({ storeConfig: initialConfig }) {
|
|
|
39
41
|
description: "Honest, transparent, and ethical practices in everything we do."
|
|
40
42
|
}
|
|
41
43
|
];
|
|
42
|
-
return (_jsxs("div", { className: "min-h-screen bg-white pb-20 overflow-hidden", children: [_jsxs("section", { "data-section": "hero", className: "relative h-[60vh] min-h-[500px] w-full overflow-hidden", children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(Image, { src: heroImage, alt: "About Us", fill: true, className: "w-full h-full object-cover transform scale-105 animate-pulse-slow" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/80 via-black/50 to-transparent" })] }), _jsx("div", { className: "absolute inset-0 flex items-center", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "max-w-3xl animate-fade-in-up", children: [_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-white/10 backdrop-blur-md border border-white/20 text-white text-sm font-medium mb-6", children: [_jsx("span", { className: "w-2 h-2 rounded-full bg-white animate-pulse" }), "Est. 2024"] }), _jsx("h1", { className: "text-5xl md:text-7xl font-bold text-white mb-6 tracking-tight leading-tight", children: pageTitle }), _jsx("
|
|
44
|
+
return (_jsxs("div", { className: "min-h-screen bg-white pb-20 overflow-hidden", children: [_jsxs("section", { "data-section": "hero", className: "relative h-[60vh] min-h-[500px] w-full overflow-hidden", children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(Image, { src: heroImage, alt: "About Us", fill: true, className: "w-full h-full object-cover transform scale-105 animate-pulse-slow" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/80 via-black/50 to-transparent" })] }), _jsx("div", { className: "absolute inset-0 flex items-center", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "max-w-3xl animate-fade-in-up", children: [_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-white/10 backdrop-blur-md border border-white/20 text-white text-sm font-medium mb-6", children: [_jsx("span", { className: "w-2 h-2 rounded-full bg-white animate-pulse" }), "Est. 2024"] }), _jsx("h1", { className: "text-5xl md:text-7xl font-bold text-white mb-6 tracking-tight leading-tight", children: pageTitle }), _jsx(SafeRichHtml, { value: missionStatement || storeConfig.description, as: "div", className: "text-xl md:text-2xl text-gray-200 max-w-2xl leading-relaxed font-light [&_p]:mb-0" })] }) }) })] }), _jsxs("section", { "data-section": "story", className: "py-24 px-4 sm:px-6 lg:px-8 relative", children: [_jsx("div", { className: "absolute top-0 right-0 -mt-24 -mr-24 w-96 h-96 bg-gray-50 rounded-full blur-3xl -z-10" }), _jsx("div", { className: "container mx-auto max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-16 items-center", children: [_jsxs("div", { className: "relative", children: [galleryImages && galleryImages.length > 0 ? (_jsx("div", { className: "grid grid-cols-2 gap-4", children: galleryImages.slice(0, 4).map((img, i) => (_jsx("div", { className: `relative overflow-hidden rounded-2xl shadow-lg ${i === 0 ? 'col-span-2 aspect-[16/9]' : 'aspect-square'}`, children: _jsx(Image, { src: img.image, alt: img.caption || "Gallery Image", fill: true, className: "w-full h-full object-cover hover:scale-110 transition-transform duration-500" }) }, i))) })) : (_jsxs("div", { className: "relative aspect-[4/5] rounded-[2rem] overflow-hidden shadow-2xl", children: [_jsx(Image, { src: "https://images.unsplash.com/photo-1522202176988-66273c2fd55f?q=80&w=2071&auto=format&fit=crop", alt: "Our Team", fill: true, className: "w-full h-full object-cover" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-60" }), _jsxs("div", { className: "absolute bottom-8 left-8 text-white", children: [_jsx("p", { className: "font-bold text-lg", children: "The Dream Team" }), _jsx("p", { className: "text-white/80 text-sm", children: "Working together to serve you better" })] })] })), _jsx("div", { className: "absolute -bottom-6 -right-6 w-24 h-24 bg-white rounded-2xl shadow-xl flex items-center justify-center p-4 animate-bounce duration-[3000ms]", children: _jsx(Heart, { className: "w-10 h-10", style: { color: primaryColor, fill: primaryColor } }) })] }), _jsxs("div", { className: "space-y-10", children: [_jsxs("div", { children: [_jsx("span", { className: "text-sm font-bold uppercase tracking-widest mb-3 block", style: { color: primaryColor }, children: "Who We Are" }), _jsx("h2", { className: "text-4xl md:text-5xl font-black text-gray-900 mb-6 tracking-tight", children: "Our Journey" }), _jsxs("div", { className: "prose prose-lg text-gray-600 leading-relaxed space-y-6", children: [pageContent?.split('\n').map((paragraph, idx) => (_jsx("p", { children: paragraph }, idx))), !pageContent && (_jsxs(_Fragment, { children: [_jsxs("p", { children: ["Founded with a bold vision to redefine excellence in the ", _jsx("span", { className: "font-semibold text-gray-900", children: storeConfig.type }), " industry, ", storeConfig.name, " has grown from a small passion project into a beloved brand. We believe in the power of quality, innovation, and community."] }), _jsx("p", { children: "Every day, we strive to bring you the best products, curated with care and delivered with a smile. Our team is dedicated to ensuring that your experience with us is nothing short of exceptional." })] }))] })] }), _jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-8", children: values.map((item, idx) => (_jsxs("div", { className: "flex gap-4 group", children: [_jsx("div", { className: "flex-shrink-0", children: _jsx("div", { className: "w-14 h-14 rounded-2xl flex items-center justify-center transition-colors group-hover:bg-gray-100", style: { backgroundColor: `${primaryColor}10` }, children: _jsx(item.icon, { className: "h-7 w-7 transition-transform group-hover:scale-110", style: { color: primaryColor } }) }) }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-gray-900 mb-2 text-lg", children: item.title }), _jsx(RichTextExcerpt, { value: item.description, as: "p", className: "text-gray-600 text-sm leading-relaxed" })] })] }, idx))) })] })] }) })] }), _jsxs("section", { "data-section": "stats", className: "py-20 relative overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 opacity-10", children: _jsx(DotPattern, { color: primaryColor, cx: 2, cy: 2, cr: 2, width: 30, height: 30 }) }), _jsx("div", { className: "absolute inset-0", style: { backgroundColor: `${secondaryColor}15` } }), _jsx("div", { className: "container mx-auto px-4 relative z-10", children: _jsx("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-12", children: [
|
|
43
45
|
{ label: "Sessions Held", value: "12k+" },
|
|
44
46
|
{ label: "Elite Experts", value: "20+" },
|
|
45
47
|
{ label: "Programs", value: storeConfig.services?.length ? `${storeConfig.services.length}+` : "25+" },
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { StoreConfig } from '../../../lib/store-types';
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types.js';
|
|
2
2
|
interface BookPageProps {
|
|
3
3
|
storeConfig: StoreConfig;
|
|
4
4
|
serviceSlug?: string;
|
|
5
5
|
}
|
|
6
|
-
export declare function BookingAgendaBookPage({ storeConfig, serviceSlug }: BookPageProps): import("react
|
|
6
|
+
export declare function BookingAgendaBookPage({ storeConfig, serviceSlug }: BookPageProps): import("react").JSX.Element;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=BookPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/BookPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAoB9D,UAAU,aAAa;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,qBAAqB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,aAAa
|
|
1
|
+
{"version":3,"file":"BookPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/BookPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAoB9D,UAAU,aAAa;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,qBAAqB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,aAAa,+BAg/BhF"}
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useEffect, useRef } from 'react';
|
|
4
4
|
import { Clock, Check, ChevronRight, ChevronLeft, ArrowLeft, ShieldCheck, CheckCircle2, Lock } from 'lucide-react';
|
|
5
|
-
import { Button } from '../../../components/ui/button';
|
|
6
|
-
import { cn, formatCurrency } from '../../../lib/utils';
|
|
5
|
+
import { Button } from '../../../components/ui/button.js';
|
|
6
|
+
import { cn, formatCurrency } from '../../../lib/utils/index.js';
|
|
7
7
|
import Link from 'next/link';
|
|
8
|
-
import { ImageWithFallback } from '../../../components/ui/image-with-fallback';
|
|
9
|
-
import { RichTextExcerpt } from '../../../components/rich-text/RichTextExcerpt';
|
|
10
|
-
import { usePayazaCheckout } from '../../../hooks/use-payaza-checkout';
|
|
11
|
-
import { generateCheckoutConfig } from '../../../lib/payaza-checkout';
|
|
12
|
-
import { requireCheckoutPayazaPublicKey } from '../../../lib/payaza-public-key';
|
|
13
|
-
import { checkoutService } from '../../../lib/services/checkout.service';
|
|
14
|
-
import { paymentService, isPaymentConfirmed } from '../../../lib/services/payment.service';
|
|
15
|
-
import { useToast } from '../../../components/ui/toast';
|
|
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 { requireCheckoutPayazaPublicKey } from '../../../lib/payaza-public-key.js';
|
|
13
|
+
import { checkoutService } from '../../../lib/services/checkout.service.js';
|
|
14
|
+
import { paymentService, isPaymentConfirmed } from '../../../lib/services/payment.service.js';
|
|
15
|
+
import { useToast } from '../../../components/ui/toast.js';
|
|
16
16
|
import { useRouter, useSearchParams } from 'next/navigation';
|
|
17
|
-
import { useAuth } from '../../../lib/auth-context';
|
|
18
|
-
import { formatDateSafe } from '../../../utils/date';
|
|
19
|
-
import { getOrCreateIdempotencyKey } from '../../../lib/utils/idempotency-key';
|
|
20
|
-
import { CHECKOUT_UNAVAILABLE_MESSAGE } from '../../../lib/checkout-availability';
|
|
17
|
+
import { useAuth } from '../../../lib/auth-context.js';
|
|
18
|
+
import { formatDateSafe } from '../../../utils/date.js';
|
|
19
|
+
import { getOrCreateIdempotencyKey } from '../../../lib/utils/idempotency-key.js';
|
|
20
|
+
import { CHECKOUT_UNAVAILABLE_MESSAGE } from '../../../lib/checkout-availability.js';
|
|
21
21
|
export function BookingAgendaBookPage({ storeConfig, serviceSlug }) {
|
|
22
22
|
const primaryColor = storeConfig.branding.primaryColor;
|
|
23
23
|
const { addToast } = useToast();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { StoreConfig } from '../../../lib/store-types';
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types.js';
|
|
2
2
|
interface CategoriesPageProps {
|
|
3
3
|
storeConfig: StoreConfig;
|
|
4
4
|
}
|
|
5
|
-
export declare function BookingAgendaCategoriesPage({ storeConfig: initialConfig }: CategoriesPageProps): import("react
|
|
5
|
+
export declare function BookingAgendaCategoriesPage({ storeConfig: initialConfig }: CategoriesPageProps): import("react").JSX.Element;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=CategoriesPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/CategoriesPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,UAAU,mBAAmB;IAC3B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,2BAA2B,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,mBAAmB
|
|
1
|
+
{"version":3,"file":"CategoriesPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/CategoriesPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,UAAU,mBAAmB;IAC3B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,2BAA2B,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,mBAAmB,+BAsD9F"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Breadcrumbs } from '../../../components/ui/breadcrumbs';
|
|
3
|
+
import { Breadcrumbs } from '../../../components/ui/breadcrumbs.js';
|
|
4
4
|
import { CategoryMasonryGrid } from '../../../components/categories/category-masonry-grid';
|
|
5
|
-
import { useStore } from '../../../lib/store-context';
|
|
6
|
-
import { useCatalogLoader } from '../../../hooks/use-catalog-loader';
|
|
7
|
-
import { isEditorPreviewMode, resolveStoreCategoriesForDisplay } from '../../../lib/utils';
|
|
5
|
+
import { useStore } from '../../../lib/store-context.js';
|
|
6
|
+
import { useCatalogLoader } from '../../../hooks/use-catalog-loader.js';
|
|
7
|
+
import { isEditorPreviewMode, resolveStoreCategoriesForDisplay } from '../../../lib/utils/index.js';
|
|
8
8
|
export function BookingAgendaCategoriesPage({ storeConfig: initialConfig }) {
|
|
9
9
|
const { store } = useStore();
|
|
10
10
|
const storeConfig = store || initialConfig;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { StoreConfig } from '../../../lib/store-types';
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types.js';
|
|
2
2
|
interface CategoryPageProps {
|
|
3
3
|
storeConfig: StoreConfig;
|
|
4
4
|
categorySlug: string;
|
|
5
5
|
}
|
|
6
|
-
export declare function CategoryPage({ storeConfig, categorySlug }: CategoryPageProps): import("react
|
|
6
|
+
export declare function CategoryPage({ storeConfig, categorySlug }: CategoryPageProps): import("react").JSX.Element;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=CategoryPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoryPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/CategoryPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"CategoryPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/CategoryPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAgB5E,UAAU,iBAAiB;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,iBAAiB,+BAyI5E"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Button } from '../../../components/ui/button';
|
|
4
|
-
import { ImageWithFallback } from '../../../components/ui/image-with-fallback';
|
|
5
|
-
import { useStore } from '../../../lib/store-context';
|
|
3
|
+
import { Button } from '../../../components/ui/button.js';
|
|
4
|
+
import { ImageWithFallback } from '../../../components/ui/image-with-fallback.js';
|
|
5
|
+
import { useStore } from '../../../lib/store-context.js';
|
|
6
6
|
import { ArrowLeft, Filter, Clock, ArrowRight } from 'lucide-react';
|
|
7
7
|
import Link from 'next/link';
|
|
8
|
-
import { useToast } from '../../../components/ui/toast';
|
|
9
|
-
import { useAnalytics } from '../../../hooks/use-analytics';
|
|
8
|
+
import { useToast } from '../../../components/ui/toast.js';
|
|
9
|
+
import { useAnalytics } from '../../../hooks/use-analytics.js';
|
|
10
10
|
import { useEffect } from 'react';
|
|
11
|
-
import { formatCurrency, filterActiveServices } from '../../../lib/utils';
|
|
11
|
+
import { formatCurrency, filterActiveServices } from '../../../lib/utils/index.js';
|
|
12
12
|
import Image from 'next/image';
|
|
13
|
+
import { CategoryDescription } from '../../../components/rich-text/CategoryDescription.js';
|
|
14
|
+
import { RichTextExcerpt } from '../../../components/rich-text/RichTextExcerpt.js';
|
|
13
15
|
export function CategoryPage({ storeConfig, categorySlug }) {
|
|
14
16
|
const categories = storeConfig.categories || [];
|
|
15
17
|
const category = categories.find(c => c.slug === categorySlug);
|
|
@@ -38,5 +40,5 @@ export function CategoryPage({ storeConfig, categorySlug }) {
|
|
|
38
40
|
const isDarkTheme = storeConfig.type === 'food-modern' || storeConfig.branding.theme === 'dark';
|
|
39
41
|
const bgColor = isDarkTheme ? 'bg-[#0F0F0F]' : 'bg-gray-50';
|
|
40
42
|
const textColor = isDarkTheme ? 'text-white' : 'text-gray-900';
|
|
41
|
-
return (_jsxs("div", { className: "min-h-screen bg-white text-gray-900 transition-colors duration-300", children: [_jsxs("div", { className: "relative h-[40vh] overflow-hidden", children: [_jsx(ImageWithFallback, { src: category.image, alt: category.name, className: "w-full h-full object-cover", skeletonAspectRatio: "16/9" }), _jsx("div", { className: "absolute inset-0 bg-black/40 backdrop-blur-[2px]" }), _jsxs("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center p-6 text-white", children: [_jsx("h1", { className: "text-5xl md:text-7xl font-bold tracking-tight mb-4", children: category.name }),
|
|
43
|
+
return (_jsxs("div", { className: "min-h-screen bg-white text-gray-900 transition-colors duration-300", children: [_jsxs("div", { className: "relative h-[40vh] overflow-hidden", children: [_jsx(ImageWithFallback, { src: category.image, alt: category.name, className: "w-full h-full object-cover", skeletonAspectRatio: "16/9" }), _jsx("div", { className: "absolute inset-0 bg-black/40 backdrop-blur-[2px]" }), _jsxs("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center p-6 text-white", children: [_jsx("h1", { className: "text-5xl md:text-7xl font-bold tracking-tight mb-4", children: category.name }), _jsx(CategoryDescription, { description: category.description })] })] }), _jsxs("div", { className: "container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-12", children: [_jsxs("div", { className: "flex flex-col md:flex-row justify-between items-center mb-10 gap-4", children: [_jsxs(Link, { href: `/${storeConfig.slug}/categories`, className: "inline-flex items-center text-sm font-medium text-gray-600 hover:text-gray-900", children: [_jsx(ArrowLeft, { className: "h-4 w-4 mr-2" }), "Back to All Categories"] }), _jsx("div", { className: "flex items-center gap-4", children: _jsxs(Button, { variant: "outline", className: "bg-white", children: [_jsx(Filter, { className: "h-4 w-4 mr-2" }), " Filter"] }) })] }), !hasItems ? (_jsxs("div", { className: "text-center py-20 border border-dashed border-gray-300 rounded-3xl", children: [_jsx("p", { className: "text-gray-500 text-lg", children: "No services found in this category." }), _jsx(Button, { className: "mt-4", onClick: () => window.history.back(), children: "Go Back" })] })) : (_jsx("div", { className: "space-y-12", children: _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", children: services.map((service) => (_jsxs("div", { className: "group flex flex-col h-full bg-white rounded-2xl overflow-hidden border border-gray-100 shadow-sm hover:shadow-xl transition-all duration-500", children: [_jsxs(Link, { href: `/${storeConfig.slug}/book?service=${service.slug}`, className: "block relative aspect-[4/3] overflow-hidden", children: [_jsx(Image, { src: service.image || 'https://images.unsplash.com/photo-1629909613654-28e377c37b09?w=800&auto=format&fit=crop&q=60', alt: service.name, fill: true, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" }), _jsx("div", { className: "absolute bottom-4 left-4 bg-white/95 backdrop-blur px-4 py-2 rounded-full text-sm font-bold shadow-sm text-gray-900", children: formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') })] }), _jsxs("div", { className: "p-6 flex flex-col flex-1", children: [_jsx("h3", { className: "text-xl font-bold text-gray-900 mb-2 group-hover:text-blue-600 transition-colors", children: service.name }), _jsx(RichTextExcerpt, { value: service.description, as: "p", className: "text-gray-500 mb-6 line-clamp-2 leading-relaxed text-sm flex-1" }), _jsxs("div", { className: "flex items-center justify-between pt-4 border-t border-gray-100", children: [_jsx("div", { className: "flex items-center gap-4 text-sm text-gray-500 font-medium", children: _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Clock, { className: "w-4 h-4 text-blue-500" }), service.duration, " mins"] }) }), _jsxs(Link, { href: `/${storeConfig.slug}/book?service=${service.slug}`, className: "inline-flex items-center gap-2 text-sm font-bold text-blue-600 group/btn", children: ["Book Now ", _jsx(ArrowRight, { className: "w-4 h-4 transition-transform group-hover/btn:translate-x-1" })] })] })] })] }, service.id))) }) }))] })] }));
|
|
42
44
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { StoreConfig } from '../../../lib/store-types';
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types.js';
|
|
2
2
|
interface ContactPageProps {
|
|
3
3
|
storeConfig: StoreConfig;
|
|
4
4
|
}
|
|
5
|
-
export declare function ContactPage({ storeConfig: initialConfig }: ContactPageProps): import("react
|
|
5
|
+
export declare function ContactPage({ storeConfig: initialConfig }: ContactPageProps): import("react").JSX.Element;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=ContactPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContactPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/ContactPage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,UAAU,gBAAgB;IACtB,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,gBAAgB
|
|
1
|
+
{"version":3,"file":"ContactPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/ContactPage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,UAAU,gBAAgB;IACtB,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,gBAAgB,+BA0S3E"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { Button } from '../../../components/ui/button';
|
|
4
|
+
import { Button } from '../../../components/ui/button.js';
|
|
5
5
|
import { Mail, Phone, MapPin, Clock, Send, MessageSquare, CheckCircle } from 'lucide-react';
|
|
6
|
-
import { useStore } from '../../../lib/store-context';
|
|
6
|
+
import { useStore } from '../../../lib/store-context.js';
|
|
7
7
|
import Image from 'next/image';
|
|
8
|
-
import { submitContact } from '../../../lib/services/contact.service';
|
|
8
|
+
import { submitContact } from '../../../lib/services/contact.service.js';
|
|
9
9
|
export function ContactPage({ storeConfig: initialConfig }) {
|
|
10
10
|
const { store } = useStore();
|
|
11
11
|
const storeConfig = store || initialConfig;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { StoreConfig } from '../../../lib/store-types';
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types.js';
|
|
2
2
|
interface ProductDetailPageProps {
|
|
3
3
|
storeConfig: StoreConfig;
|
|
4
4
|
productSlug: string;
|
|
5
5
|
}
|
|
6
|
-
export declare function ProductDetailPage({ storeConfig, productSlug }: ProductDetailPageProps): import("react
|
|
6
|
+
export declare function ProductDetailPage({ storeConfig: initialConfig, productSlug }: ProductDetailPageProps): import("react").JSX.Element;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=ProductDetailPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/ProductDetailPage.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAA8C,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/ProductDetailPage.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAA8C,MAAM,mBAAmB,CAAC;AA6B5F,UAAU,sBAAsB;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAsHD,wBAAgB,iBAAiB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,sBAAsB,+BAwiCpG"}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useProductBySlug } from '../../../hooks/use-product-by-slug';
|
|
4
|
-
import { useProductReviews } from '../../../hooks/use-product-reviews';
|
|
5
|
-
import { Button } from '../../../components/ui/button';
|
|
6
|
-
import { Breadcrumbs } from '../../../components/ui/breadcrumbs';
|
|
7
|
-
import { Modal } from '../../../components/ui/modal';
|
|
3
|
+
import { useProductBySlug } from '../../../hooks/use-product-by-slug.js';
|
|
4
|
+
import { useProductReviews } from '../../../hooks/use-product-reviews.js';
|
|
5
|
+
import { Button } from '../../../components/ui/button.js';
|
|
6
|
+
import { Breadcrumbs } from '../../../components/ui/breadcrumbs.js';
|
|
7
|
+
import { Modal } from '../../../components/ui/modal.js';
|
|
8
8
|
import { ShoppingCart, Heart, Star, CheckCircle, ThumbsUp, User, Minus, Plus, Ruler, Share2, Info } from 'lucide-react';
|
|
9
9
|
import { useState, useMemo, useEffect } from 'react';
|
|
10
|
-
import { useStore } from '../../../lib/store-context';
|
|
11
|
-
import { useToast } from '../../../components/ui/toast';
|
|
10
|
+
import { useStore } from '../../../lib/store-context.js';
|
|
11
|
+
import { useToast } from '../../../components/ui/toast.js';
|
|
12
12
|
import { useRouter } from 'next/navigation';
|
|
13
|
-
import { useAuth } from '../../../lib/auth-context';
|
|
14
|
-
import { useAnalytics } from '../../../hooks/use-analytics';
|
|
15
|
-
import { customerService } from '../../../lib/services/customer.service';
|
|
16
|
-
import { GuestCheckoutModal } from '../../../components/ui/guest-checkout-modal';
|
|
17
|
-
import { getGuestUserInfo, saveGuestUserInfo } from '../../../lib/guest-user';
|
|
18
|
-
import { ProductCard } from '../../../components/ui/product-card';
|
|
13
|
+
import { useAuth } from '../../../lib/auth-context.js';
|
|
14
|
+
import { useAnalytics } from '../../../hooks/use-analytics.js';
|
|
15
|
+
import { customerService } from '../../../lib/services/customer.service.js';
|
|
16
|
+
import { GuestCheckoutModal } from '../../../components/ui/guest-checkout-modal.js';
|
|
17
|
+
import { getGuestUserInfo, saveGuestUserInfo } from '../../../lib/guest-user.js';
|
|
18
|
+
import { ProductCard } from '../../../components/ui/product-card.js';
|
|
19
19
|
import Image from 'next/image';
|
|
20
|
-
import { ImageWithFallback } from '../../../components/ui/image-with-fallback';
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
20
|
+
import { ImageWithFallback } from '../../../components/ui/image-with-fallback.js';
|
|
21
|
+
import { SafeRichHtml } from '../../../components/rich-text/SafeRichHtml.js';
|
|
22
|
+
import { ButtonLoader } from '../../../components/ui/page-loader.js';
|
|
23
|
+
import { extractImageUrls } from '../../../lib/store-config-utils.js';
|
|
24
|
+
import { OutOfStockOverlay } from '../../../components/ui/out-of-stock-overlay.js';
|
|
25
|
+
import { cn, formatCurrency, filterActiveProducts, isEditorPreviewMode, resolvePdpProduct } from '../../../lib/utils/index.js';
|
|
26
|
+
import { shippingService } from '../../../lib/services/shipping.service.js';
|
|
26
27
|
import { ProductDeliveryInfoSection } from '../../../components/shipping/ProductDeliveryInfoSection';
|
|
27
28
|
import { formatDateSafe } from '../../../utils/date';
|
|
28
29
|
// Helper function to format date
|
|
@@ -49,8 +50,9 @@ function StarRating({ rating, size = 'md', className = '' }) {
|
|
|
49
50
|
function ReviewCard({ review }) {
|
|
50
51
|
return (_jsxs("div", { className: "border-b border-gray-100 pb-8 last:border-b-0 last:pb-0", children: [_jsx("div", { className: "flex items-start justify-between mb-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "w-12 h-12 rounded-full bg-gradient-to-br from-gray-200 to-gray-300 flex items-center justify-center flex-shrink-0 ring-2 ring-white shadow-sm overflow-hidden", children: [review.userAvatar ? (_jsx(Image, { src: review.userAvatar, alt: review.userName, fill: true, className: "w-full h-full object-cover" })) : null, _jsx(User, { className: "h-6 w-6 text-gray-600", style: { display: review.userAvatar ? 'none' : 'flex' } })] }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx("span", { className: "font-semibold text-gray-900", children: review.userName }), review.verified && (_jsx("span", { className: "text-xs bg-blue-50 text-blue-700 px-2.5 py-1 rounded-full font-medium border border-blue-100", children: "Verified Purchase" }))] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(StarRating, { rating: review.rating, size: "sm" }), _jsx("span", { className: "text-xs text-gray-500", children: formatDate(review.date) })] })] })] }) }), review.title && (_jsx("h4", { className: "font-semibold text-gray-900 mb-3 text-lg", children: review.title })), _jsx("p", { className: "text-gray-700 leading-relaxed mb-4", children: review.comment }), review.images && review.images.length > 0 && (_jsx("div", { className: "flex gap-2 mb-4", children: review.images.map((img, idx) => (_jsx("div", { className: "relative w-20 h-20 rounded-lg overflow-hidden border border-gray-200", children: _jsx(Image, { src: img, alt: `${review.userName}'s review image ${idx + 1}`, fill: true, className: "object-cover" }) }, idx))) })), review.helpful !== undefined && (_jsx("div", { className: "flex items-center gap-4", children: _jsxs("button", { className: "flex items-center gap-1.5 text-xs text-gray-600 hover:text-gray-900 transition-colors font-medium", children: [_jsx(ThumbsUp, { className: "h-4 w-4" }), _jsxs("span", { children: ["Helpful (", review.helpful, ")"] })] }) }))] }));
|
|
51
52
|
}
|
|
52
|
-
export function ProductDetailPage({ storeConfig, productSlug }) {
|
|
53
|
-
const { addToCart, isCartLoading, toggleWishlist, isInWishlist, isWishlistLoading, setBuyNowItem } = useStore();
|
|
53
|
+
export function ProductDetailPage({ storeConfig: initialConfig, productSlug }) {
|
|
54
|
+
const { store, addToCart, isCartLoading, toggleWishlist, isInWishlist, isWishlistLoading, setBuyNowItem } = useStore();
|
|
55
|
+
const storeConfig = store || initialConfig;
|
|
54
56
|
const products = filterActiveProducts(storeConfig.products || []);
|
|
55
57
|
const initialProduct = resolvePdpProduct(initialConfig.products, storeConfig.products, productSlug, isEditorPreviewMode(storeConfig));
|
|
56
58
|
const { product, relatedProducts: apiRelatedProducts, isLoading: isLoadingProduct } = useProductBySlug(storeConfig.id, productSlug, initialProduct);
|
|
@@ -491,7 +493,7 @@ export function ProductDetailPage({ storeConfig, productSlug }) {
|
|
|
491
493
|
}, [product?.id, storeConfig?.id, trackEvent]);
|
|
492
494
|
return (_jsxs("div", { className: "min-h-screen bg-white", children: [_jsxs("div", { "data-content-ready": true, className: "container mx-auto px-4 sm:px-6 lg:px-8 py-8 lg:py-12 max-w-7xl", children: [_jsx("div", { className: "mb-6", children: _jsx(Breadcrumbs, { items: breadcrumbItems }) }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-16 mb-20", children: [_jsxs("div", { className: "relative lg:sticky lg:top-24 self-start z-0", children: [_jsxs("div", { className: "relative aspect-square bg-gray-50 rounded-xl overflow-hidden mb-4 border border-gray-100 shadow-sm group", children: [_jsx(ImageWithFallback, { "data-product-image": true, src: displayImages[selectedImage] || displayImages[0] || productImages[0], alt: product.name, className: cn("w-full h-full object-cover transition-transform duration-300 group-hover:scale-105", isOutOfStock && "grayscale"), skeletonAspectRatio: "square" }), isOutOfStock && (_jsx(OutOfStockOverlay, { badgePosition: "center" }))] }), displayImages.length > 0 && (_jsxs("div", { className: "grid grid-cols-5 gap-2", children: [displayImages.map((image, index) => (_jsx("button", { onClick: () => setSelectedImage(Math.min(index, displayImages.length - 1)), className: `aspect-square rounded-lg overflow-hidden border-2 transition-all ${selectedImage === index
|
|
493
495
|
? 'border-gray-900 ring-2 ring-gray-900 ring-offset-2'
|
|
494
|
-
: 'border-gray-200 hover:border-gray-300'}`, children: _jsx(ImageWithFallback, { src: image, alt: `${product.name} view ${index + 1}`, className: cn("w-full h-full object-cover", isOutOfStock && "grayscale"), skeletonAspectRatio: "square" }) }, index))), hasMoreImages && (_jsxs("div", { className: "aspect-square rounded-lg border-2 border-gray-200 bg-gray-50 flex items-center justify-center text-xs text-gray-500 font-medium", children: ["+", productImages.length - 5, " more"] }))] }))] }), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-center justify-between mb-2", children: [_jsx("span", { className: "text-sm font-semibold text-gray-700 uppercase tracking-wide", children: directCategory?.name || storeConfig.name }), _jsx("button", { onClick: handleShare, className: "text-gray-400 hover:text-gray-900 transition-colors p-2 rounded-full hover:bg-gray-100", title: "Share this product", children: _jsx(Share2, { className: "h-5 w-5" }) })] }), _jsx("h1", { "data-product-name": true, className: "text-3xl sm:text-4xl lg:text-5xl font-bold text-gray-900 mb-3 leading-tight tracking-tight", children: product.name }), _jsxs("p", { className: "text-sm text-gray-500 mb-6 font-mono", children: ["SKU: ", displaySKU] }), _jsx("div", { className: "mb-4 flex items-center gap-2", children: product.inStock ? (_jsxs("span", { className: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800", children: [_jsx(CheckCircle, { className: "w-3 h-3 mr-1" }), "In Stock"] })) : (_jsxs("span", { className: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-800", children: [_jsx(Info, { className: "w-3 h-3 mr-1" }), "Out of Stock"] })) }), _jsxs("div", { className: "mb-8", children: [_jsxs("div", { className: "flex items-baseline gap-4", children: [_jsx("span", { "data-product-price": true, className: "text-4xl lg:text-5xl font-bold text-gray-900", children: formatCurrency(product.price, product.currency || 'USD') }), product.compareAtPrice && (_jsx("span", { className: "text-2xl text-gray-500 line-through", children: formatCurrency(product.compareAtPrice, product.currency || 'USD') }))] }), product.compareAtPrice && (_jsxs("span", { className: "inline-block mt-2 bg-red-100 text-red-700 text-xs font-bold px-2 py-1 rounded", children: ["SAVE ", Math.round(((product.compareAtPrice - product.price) / product.compareAtPrice) * 100), "%"] }))] }), colorVariants.length > 0 && (_jsxs("div", { className: "mb-8", children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx("span", { className: "text-sm font-semibold text-gray-900", children: "Color:" }), _jsx("span", { className: "text-sm text-gray-600 capitalize", children: selectedColor || colorVariants[0]?.value })] }), _jsx("div", { className: "flex gap-3", children: colorVariants.map((variant) => {
|
|
496
|
+
: 'border-gray-200 hover:border-gray-300'}`, children: _jsx(ImageWithFallback, { src: image, alt: `${product.name} view ${index + 1}`, className: cn("w-full h-full object-cover", isOutOfStock && "grayscale"), skeletonAspectRatio: "square" }) }, index))), hasMoreImages && (_jsxs("div", { className: "aspect-square rounded-lg border-2 border-gray-200 bg-gray-50 flex items-center justify-center text-xs text-gray-500 font-medium", children: ["+", productImages.length - 5, " more"] }))] }))] }), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-center justify-between mb-2", children: [_jsx("span", { className: "text-sm font-semibold text-gray-700 uppercase tracking-wide", children: directCategory?.name || storeConfig.name }), _jsx("button", { onClick: handleShare, className: "text-gray-400 hover:text-gray-900 transition-colors p-2 rounded-full hover:bg-gray-100", title: "Share this product", children: _jsx(Share2, { className: "h-5 w-5" }) })] }), _jsx("h1", { "data-product-name": true, className: "text-3xl sm:text-4xl lg:text-5xl font-bold text-gray-900 mb-3 leading-tight tracking-tight", children: product.name }), _jsxs("p", { className: "text-sm text-gray-500 mb-6 font-mono", children: ["SKU: ", displaySKU] }), _jsx("div", { className: "mb-4 flex items-center gap-2", children: product.inStock ? (_jsxs("span", { className: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800", children: [_jsx(CheckCircle, { className: "w-3 h-3 mr-1" }), "In Stock"] })) : (_jsxs("span", { className: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-800", children: [_jsx(Info, { className: "w-3 h-3 mr-1" }), "Out of Stock"] })) }), _jsxs("div", { className: "mb-8", children: [_jsxs("div", { className: "flex items-baseline gap-4", children: [_jsx("span", { "data-product-price": true, className: "text-4xl lg:text-5xl font-bold text-gray-900", children: formatCurrency(product.price, product.currency || 'USD') }), product.compareAtPrice != null && product.compareAtPrice > product.price && (_jsx("span", { className: "text-2xl text-gray-500 line-through", children: formatCurrency(product.compareAtPrice, product.currency || 'USD') }))] }), product.compareAtPrice != null && product.compareAtPrice > product.price && (_jsxs("span", { className: "inline-block mt-2 bg-red-100 text-red-700 text-xs font-bold px-2 py-1 rounded", children: ["SAVE ", Math.round(((product.compareAtPrice - product.price) / product.compareAtPrice) * 100), "%"] }))] }), colorVariants.length > 0 && (_jsxs("div", { className: "mb-8", children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx("span", { className: "text-sm font-semibold text-gray-900", children: "Color:" }), _jsx("span", { className: "text-sm text-gray-600 capitalize", children: selectedColor || colorVariants[0]?.value })] }), _jsx("div", { className: "flex gap-3", children: colorVariants.map((variant) => {
|
|
495
497
|
const colorValue = variant.value;
|
|
496
498
|
const swatchColor = colorSwatches[colorValue] || '#CCCCCC';
|
|
497
499
|
const isSelected = selectedColor === colorValue;
|
|
@@ -505,5 +507,5 @@ export function ProductDetailPage({ storeConfig, productSlug }) {
|
|
|
505
507
|
: 'bg-white text-gray-700 border-gray-200 hover:border-gray-300 hover:bg-gray-50'}`, children: variant.value }, variant.id));
|
|
506
508
|
}) })] })), _jsxs("div", { className: "flex flex-col gap-4 mb-8", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "text-sm font-semibold text-gray-900", children: "Quantity" }), _jsxs("div", { className: "flex items-center border border-gray-300 rounded-lg", children: [_jsx("button", { className: "p-3 text-gray-600 hover:bg-gray-100 rounded-l-lg disabled:opacity-50", onClick: () => setQuantity(Math.max(1, quantity - 1)), disabled: quantity <= 1, children: _jsx(Minus, { className: "h-4 w-4" }) }), _jsx("span", { className: "w-12 text-center font-semibold text-gray-900", children: quantity }), _jsx("button", { className: "p-3 text-gray-600 hover:bg-gray-100 rounded-r-lg", onClick: () => setQuantity(quantity + 1), children: _jsx(Plus, { className: "h-4 w-4" }) })] })] }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-3 mt-2", children: [_jsx(Button, { "data-add-to-cart": true, size: "lg", onClick: handleAddToCart, disabled: isCartLoading || isOutOfStock, className: "flex-1 bg-white border-2 border-gray-900 text-gray-900 hover:bg-gray-50 rounded-full h-14 text-base font-bold shadow-sm transition-all disabled:opacity-50 disabled:cursor-not-allowed", children: isCartLoading ? (_jsxs(_Fragment, { children: [_jsx(ButtonLoader, { className: "mr-2" }), "Adding..."] })) : (_jsxs(_Fragment, { children: [_jsx(ShoppingCart, { className: "h-5 w-5 mr-2" }), "Add to Cart"] })) }), _jsx(Button, { size: "lg", onClick: handleBuyNow, disabled: isOutOfStock || isBuyNowLoading || isCartLoading, className: "flex-1 bg-gray-900 hover:bg-gray-800 text-white rounded-full h-14 text-base font-bold shadow-lg hover:shadow-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed", children: isBuyNowLoading || isCartLoading ? (_jsxs(_Fragment, { children: [_jsx(ButtonLoader, { className: "mr-2" }), "Adding..."] })) : ('Buy Now') }), storeConfig.features.wishlist && (_jsx(Button, { variant: "outline", size: "lg", onClick: handleWishlistClick, disabled: isWishlistLoading || !product, className: cn("h-14 w-14 rounded-full border-2 transition-all disabled:opacity-50 disabled:cursor-not-allowed", product && isInWishlist(product.id)
|
|
507
509
|
? "border-red-500 bg-red-50 text-red-500 hover:bg-red-100"
|
|
508
|
-
: "border-gray-200 hover:border-gray-300 hover:bg-gray-50"), children: isWishlistLoading ? (_jsx(ButtonLoader, { className: "h-5 w-5" })) : (_jsx(Heart, { className: cn("h-5 w-5", product && isInWishlist(product.id) && "fill-current") })) }))] })] }), _jsx(ProductDeliveryInfoSection, { storeConfig: storeConfig, currency: storeConfig.settings?.currency || 'USD', productCurrency: product.currency, productPrice: product.price, quantity: quantity, shippingAddress: shippingAddress, updateShippingAddress: (patch) => setShippingAddress((prev) => ({ ...prev, ...patch })), shippingMethods: shippingMethods, isCalculatingShipping: isCalculatingShipping, shippingError: shippingError, freeShippingEligible: freeShippingEligible, freeShippingThreshold: freeShippingThreshold, onToast: addToast }), product.description && (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900 mb-3", children: "Description" }), _jsxs("div", { className: "prose prose-sm max-w-none text-gray-600 leading-relaxed", children: [_jsx(
|
|
510
|
+
: "border-gray-200 hover:border-gray-300 hover:bg-gray-50"), children: isWishlistLoading ? (_jsx(ButtonLoader, { className: "h-5 w-5" })) : (_jsx(Heart, { className: cn("h-5 w-5", product && isInWishlist(product.id) && "fill-current") })) }))] })] }), _jsx(ProductDeliveryInfoSection, { storeConfig: storeConfig, currency: storeConfig.settings?.currency || 'USD', productCurrency: product.currency, productPrice: product.price, quantity: quantity, shippingAddress: shippingAddress, updateShippingAddress: (patch) => setShippingAddress((prev) => ({ ...prev, ...patch })), shippingMethods: shippingMethods, isCalculatingShipping: isCalculatingShipping, shippingError: shippingError, freeShippingEligible: freeShippingEligible, freeShippingThreshold: freeShippingThreshold, onToast: addToast }), product.description && (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900 mb-3", children: "Description" }), _jsxs("div", { className: "prose prose-sm max-w-none text-gray-600 leading-relaxed", children: [_jsx(SafeRichHtml, { value: product.description, fallbackPlain: "", as: "div" }), _jsxs("ul", { className: "list-disc pl-5 space-y-1 mt-2", children: [_jsx("li", { children: "Premium quality material" }), _jsx("li", { children: "Comfortable fit for all-day wear" }), _jsx("li", { children: "Durable stitching and finish" })] })] })] })), product.specifications && Object.keys(product.specifications).length > 0 && (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900 mb-4", children: "Specifications" }), _jsx("dl", { className: "grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-4", children: Object.entries(product.specifications).map(([key, value]) => (_jsxs("div", { className: "flex flex-col p-3 bg-gray-50 rounded-lg", children: [_jsx("dt", { className: "text-xs text-gray-500 font-medium uppercase tracking-wider mb-1", children: key }), _jsx("dd", { className: "text-sm font-bold text-gray-900", children: value })] }, key))) })] }))] })] }), _jsx("div", { className: "mt-20 pt-16 border-t border-gray-200", children: _jsxs("div", { className: "max-w-4xl", children: [_jsxs("div", { className: "flex flex-col sm:flex-row items-start sm:items-center justify-between gap-6 mb-10", children: [_jsxs("div", { className: "flex-1", children: [_jsx("h2", { className: "text-2xl lg:text-3xl font-bold text-gray-900 mb-4", children: "Customer Reviews" }), product.reviewCount && product.reviewCount > 0 && product.rating && product.rating > 0 ? (_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(StarRating, { rating: typeof product.rating === 'number' ? product.rating : Number(product.rating) || 0, size: "lg" }), _jsx("span", { className: "text-2xl font-bold text-gray-900", children: Number(product.rating).toFixed(1) }), _jsx("span", { className: "text-lg text-gray-500", children: "out of 5" })] }), _jsx("span", { className: "text-gray-300", children: "|" }), _jsxs("span", { className: "text-lg text-gray-600", children: [product.reviewCount, " ", product.reviewCount === 1 ? 'review' : 'reviews'] })] })) : (_jsx("div", { className: "text-gray-500", children: _jsx("p", { className: "text-base", children: "Be the first to review this product" }) }))] }), _jsx(Button, { onClick: () => setIsReviewModalOpen(true), className: "rounded-full shrink-0 bg-gray-900 hover:bg-gray-800 text-white", children: product.reviewCount && product.reviewCount > 0 ? 'Write a Review' : 'Be the First to Review' })] }), ratingDistribution.some(r => r.count > 0) && (_jsxs("div", { className: "mb-10 p-6 bg-gray-50 rounded-xl border border-gray-100", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-900 mb-5", children: "Rating Breakdown" }), _jsx("div", { className: "space-y-3", children: ratingDistribution.map(({ rating, count, percentage }) => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("div", { className: "flex items-center gap-1.5 w-20", children: [_jsx("span", { className: "text-sm font-semibold text-gray-900", children: rating }), _jsx(Star, { className: "h-4 w-4 fill-gray-900 text-gray-900" })] }), _jsx("div", { className: "flex-1 h-2.5 bg-gray-200 rounded-full overflow-hidden", children: _jsx("div", { className: "h-full bg-gradient-to-r from-gray-700 to-gray-900 rounded-full transition-all duration-500", style: { width: `${percentage}%` } }) }), _jsx("span", { className: "text-sm font-medium text-gray-700 w-12 text-right", children: count })] }, rating))) })] })), reviews.length > 0 ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "space-y-6", children: displayedReviews.map((review) => (_jsx(ReviewCard, { review: review }, review.id))) }), hasMoreReviews && !showAllReviews && (_jsx("div", { className: "mt-8 text-center", children: _jsxs(Button, { variant: "outline", onClick: () => setShowAllReviews(true), className: "px-8 rounded-full h-12 border-gray-300", children: ["Show All ", reviews.length, " Reviews"] }) }))] })) : (_jsxs("div", { className: "text-center py-12 bg-gray-50 rounded-xl border border-dashed border-gray-300", children: [_jsx("div", { className: "inline-flex items-center justify-center w-12 h-12 rounded-full bg-white shadow-sm mb-4", children: _jsx(Star, { className: "h-6 w-6 text-gray-400" }) }), _jsx("h3", { className: "text-lg font-semibold text-gray-900 mb-2", children: "No Reviews Yet" }), _jsx("p", { className: "text-gray-500 max-w-sm mx-auto mb-6", children: "Be the first to review this product and help other customers make informed decisions." }), _jsx(Button, { onClick: () => setIsReviewModalOpen(true), className: "bg-gray-900 hover:bg-gray-800 text-white", children: "Write the First Review" })] }))] }) }), relatedProducts.length > 0 && (_jsxs("div", { className: "mt-20 pt-16 border-t border-gray-200", children: [_jsx("h2", { className: "text-2xl lg:text-3xl font-bold text-gray-900 mb-8", children: "You Might Also Like" }), _jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6", children: relatedProducts.map((relatedProduct) => (_jsx("div", { className: "h-[400px]", children: _jsx(ProductCard, { product: relatedProduct, storeSlug: storeConfig.slug, onAddToCart: (p) => addToCart(p, 1), onQuickView: handleQuickView, className: "h-full" }) }, relatedProduct.id))) })] }))] }), _jsx(Modal, { isOpen: isReviewModalOpen, onClose: () => setIsReviewModalOpen(false), title: "Write a Review", children: _jsxs("form", { onSubmit: handleSubmitReview, className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Rating" }), _jsxs("div", { className: "flex items-center gap-1", children: [[1, 2, 3, 4, 5].map((star) => (_jsxs("div", { className: "relative group", children: [_jsx("button", { type: "button", onClick: () => setNewReview({ ...newReview, rating: star - 0.5 }), className: "absolute top-0 left-0 w-1/2 h-full z-20 focus:outline-none", title: `${star - 0.5} stars` }), _jsx("button", { type: "button", onClick: () => setNewReview({ ...newReview, rating: star }), className: "absolute top-0 right-0 w-1/2 h-full z-20 focus:outline-none", title: `${star} stars` }), _jsxs("div", { className: "relative pointer-events-none transition-transform group-hover:scale-110", children: [_jsx(Star, { className: "h-8 w-8 text-gray-200 fill-gray-200" }), newReview.rating >= star - 0.5 && (_jsx("div", { className: "absolute inset-0 overflow-hidden", style: { width: newReview.rating === star - 0.5 ? '50%' : '100%' }, children: _jsx(Star, { className: "h-8 w-8 text-gray-900 fill-gray-900" }) }))] })] }, star))), _jsx("span", { className: "ml-3 text-lg font-medium text-gray-900 w-12", children: newReview.rating })] })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "title", className: "block text-sm font-medium text-gray-700 mb-1", children: "Review Title" }), _jsx("input", { type: "text", id: "title", required: true, className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-black", placeholder: "Summarize your thoughts", value: newReview.title, onChange: (e) => setNewReview({ ...newReview, title: e.target.value }) })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "comment", className: "block text-sm font-medium text-gray-700 mb-1", children: "Review" }), _jsx("textarea", { id: "comment", required: true, rows: 4, className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-black", placeholder: "What did you like or dislike?", value: newReview.comment, onChange: (e) => setNewReview({ ...newReview, comment: e.target.value }) })] }), _jsxs("div", { className: "pt-4 flex justify-end gap-3", children: [_jsx(Button, { type: "button", variant: "outline", onClick: () => setIsReviewModalOpen(false), children: "Cancel" }), _jsx(Button, { type: "submit", className: "bg-black text-white hover:bg-gray-800", children: "Submit Review" })] })] }) }), _jsx(GuestCheckoutModal, { isOpen: showGuestModal, onClose: () => setShowGuestModal(false), onSubmit: handleGuestInfoSubmit, initialData: getGuestUserInfo() || undefined })] }));
|
|
509
511
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { StoreConfig } from '../../../lib/store-types';
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types.js';
|
|
2
2
|
interface ServicesPageProps {
|
|
3
3
|
storeConfig: StoreConfig;
|
|
4
4
|
initialCategory?: string;
|
|
5
5
|
titleOverride?: string;
|
|
6
6
|
}
|
|
7
|
-
export declare function ServicesPage({ storeConfig, initialCategory, titleOverride }: ServicesPageProps): import("react
|
|
7
|
+
export declare function ServicesPage({ storeConfig, initialCategory, titleOverride }: ServicesPageProps): import("react").JSX.Element;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=ServicesPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServicesPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/ServicesPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ServicesPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/pages/ServicesPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD,UAAU,iBAAiB;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,iBAAiB,+BA+J9F"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Button } from '../../../components/ui/button';
|
|
3
|
+
import { Button } from '../../../components/ui/button.js';
|
|
4
4
|
import { Clock, ArrowRight, Filter } from 'lucide-react';
|
|
5
5
|
import Link from 'next/link';
|
|
6
|
+
import { RichTextExcerpt } from '../../../components/rich-text/RichTextExcerpt.js';
|
|
7
|
+
import { SafeRichHtml } from '../../../components/rich-text/SafeRichHtml.js';
|
|
6
8
|
import { useState } from 'react';
|
|
7
|
-
import { cn, formatCurrency, filterActiveServices } from '../../../lib/utils';
|
|
9
|
+
import { cn, formatCurrency, filterActiveServices } from '../../../lib/utils/index.js';
|
|
8
10
|
import Image from 'next/image';
|
|
9
11
|
export function ServicesPage({ storeConfig, initialCategory, titleOverride }) {
|
|
10
12
|
const categories = storeConfig.categories || [];
|
|
@@ -25,7 +27,7 @@ export function ServicesPage({ storeConfig, initialCategory, titleOverride }) {
|
|
|
25
27
|
return `/${storeConfig.slug}/book?service=${slug}`;
|
|
26
28
|
};
|
|
27
29
|
const pageTitle = titleOverride || servicesConfig?.title || (_jsxs(_Fragment, { children: ["Signature ", _jsx("span", { className: "font-bold font-sans", style: { color: primaryColor }, children: serviceLabel })] }));
|
|
28
|
-
return (_jsxs("div", { className: "min-h-screen bg-white pb-20", children: [_jsxs("div", { "data-section": "hero", className: "relative bg-gray-900 py-32 px-4 text-center overflow-hidden", children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(Image, { src: "https://images.unsplash.com/photo-1512496015851-a90fb38ba796?q=80&w=2070&auto=format&fit=crop", alt: "Service Menu", fill: true, className: "w-full h-full object-cover opacity-60" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/80 via-black/40 to-black/30" })] }), _jsxs("div", { className: "container mx-auto max-w-4xl relative z-10", children: [_jsx("span", { className: "inline-block py-1 px-3 rounded-full bg-white/10 backdrop-blur-md border border-white/20 text-xs font-bold uppercase tracking-widest text-white mb-6 shadow-sm", children: storeConfig.name }), _jsx("h1", { className: "text-5xl md:text-7xl font-serif font-light mb-6 tracking-tight text-white leading-tight", children: pageTitle }), _jsx(
|
|
30
|
+
return (_jsxs("div", { className: "min-h-screen bg-white pb-20", children: [_jsxs("div", { "data-section": "hero", className: "relative bg-gray-900 py-32 px-4 text-center overflow-hidden", children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(Image, { src: "https://images.unsplash.com/photo-1512496015851-a90fb38ba796?q=80&w=2070&auto=format&fit=crop", alt: "Service Menu", fill: true, className: "w-full h-full object-cover opacity-60" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/80 via-black/40 to-black/30" })] }), _jsxs("div", { className: "container mx-auto max-w-4xl relative z-10", children: [_jsx("span", { className: "inline-block py-1 px-3 rounded-full bg-white/10 backdrop-blur-md border border-white/20 text-xs font-bold uppercase tracking-widest text-white mb-6 shadow-sm", children: storeConfig.name }), _jsx("h1", { className: "text-5xl md:text-7xl font-serif font-light mb-6 tracking-tight text-white leading-tight", children: pageTitle }), _jsx(SafeRichHtml, { value: servicesConfig?.description || storeConfig.description || `Explore our curated selection of premium ${serviceLabel.toLowerCase()} designed for your success.`, as: "div", className: "text-gray-200 max-w-2xl mx-auto text-lg font-light leading-relaxed [&_p]:mb-0" })] })] }), _jsx("div", { className: "sticky top-16 z-30 bg-white/80 backdrop-blur-xl border-b border-gray-100 transition-all", children: _jsx("div", { className: "container mx-auto px-4", children: _jsxs("div", { className: "flex items-center gap-3 overflow-x-auto py-4 scrollbar-hide no-scrollbar", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-gray-400 uppercase tracking-wider px-4 border-r border-gray-100 hidden md:flex shrink-0", children: [_jsx(Filter, { className: "w-3.5 h-3.5" }), categoryLabel] }), categories.map((cat) => (_jsx("button", { onClick: () => setActiveCategory(cat.slug), className: cn("px-6 py-2.5 rounded-full text-sm font-bold whitespace-nowrap transition-all duration-300 border flex-shrink-0", activeCategory === cat.slug
|
|
29
31
|
? "text-white shadow-lg scale-105 border-transparent"
|
|
30
|
-
: "bg-white text-gray-500 border-gray-100 hover:border-gray-300 hover:text-black"), style: activeCategory === cat.slug ? { backgroundColor: primaryColor } : {}, children: cat.name }, cat.id)))] }) }) }), _jsx("div", { "data-section": "services-list", className: "container mx-auto px-4 max-w-7xl py-16", children: _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-x-10 gap-y-16", children: filteredServices.map((service) => (_jsxs("div", { className: "group flex flex-col h-full", children: [_jsxs(Link, { href: getServiceLink(service.slug), className: "block relative aspect-[4/3] rounded-3xl overflow-hidden bg-gray-100 mb-6 shadow-sm group-hover:shadow-xl transition-all duration-500", children: [_jsx(Image, { src: service.image || 'https://images.unsplash.com/photo-1629909613654-28e377c37b09?w=800&auto=format&fit=crop&q=60', alt: service.name, fill: true, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" }), _jsx("div", { className: "absolute bottom-4 left-4 bg-white/95 backdrop-blur px-4 py-2 rounded-full text-sm font-bold shadow-sm text-gray-900", children: service.price > 0 ? formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') : 'Free' }), _jsx("div", { className: "absolute inset-0 bg-black/20 opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-center justify-center", children: _jsx(Button, { className: "rounded-full bg-white text-black hover:bg-gray-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-300 shadow-lg font-bold px-8", children: "Book Now" }) })] }), _jsxs("div", { className: "flex flex-col flex-1", children: [_jsx("div", { className: "flex justify-between items-start mb-3", children: _jsx(Link, { href: getServiceLink(service.slug), children: _jsx("h3", { className: "text-2xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors", children: service.name }) }) }), _jsx("p",
|
|
32
|
+
: "bg-white text-gray-500 border-gray-100 hover:border-gray-300 hover:text-black"), style: activeCategory === cat.slug ? { backgroundColor: primaryColor } : {}, children: cat.name }, cat.id)))] }) }) }), _jsx("div", { "data-section": "services-list", className: "container mx-auto px-4 max-w-7xl py-16", children: _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-x-10 gap-y-16", children: filteredServices.map((service) => (_jsxs("div", { className: "group flex flex-col h-full", children: [_jsxs(Link, { href: getServiceLink(service.slug), className: "block relative aspect-[4/3] rounded-3xl overflow-hidden bg-gray-100 mb-6 shadow-sm group-hover:shadow-xl transition-all duration-500", children: [_jsx(Image, { src: service.image || 'https://images.unsplash.com/photo-1629909613654-28e377c37b09?w=800&auto=format&fit=crop&q=60', alt: service.name, fill: true, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" }), _jsx("div", { className: "absolute bottom-4 left-4 bg-white/95 backdrop-blur px-4 py-2 rounded-full text-sm font-bold shadow-sm text-gray-900", children: service.price > 0 ? formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') : 'Free' }), _jsx("div", { className: "absolute inset-0 bg-black/20 opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-center justify-center", children: _jsx(Button, { className: "rounded-full bg-white text-black hover:bg-gray-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-300 shadow-lg font-bold px-8", children: "Book Now" }) })] }), _jsxs("div", { className: "flex flex-col flex-1", children: [_jsx("div", { className: "flex justify-between items-start mb-3", children: _jsx(Link, { href: getServiceLink(service.slug), children: _jsx("h3", { className: "text-2xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors", children: service.name }) }) }), _jsx(RichTextExcerpt, { value: service.description, as: "p", className: "text-gray-500 mb-6 line-clamp-2 leading-relaxed text-base flex-1" }), _jsxs("div", { className: "flex items-center justify-between pt-4 border-t border-gray-100 text-sm font-medium text-gray-500", children: [_jsxs("div", { className: "flex items-center gap-6", children: [service.duration > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Clock, { className: "w-4 h-4 text-gray-400" }), service.duration, " mins"] })), service.contentType && (_jsx("div", { className: "flex items-center gap-2 uppercase tracking-widest text-[10px] font-black", children: service.contentType }))] }), _jsxs(Link, { href: getServiceLink(service.slug), className: "flex items-center gap-2 text-black font-bold group/link", children: ["Book ", _jsx(ArrowRight, { className: "w-4 h-4 transition-transform group-hover/link:translate-x-1" })] })] })] })] }, service.id))) }) })] }));
|
|
31
33
|
}
|
|
@@ -2,6 +2,6 @@ import { StoreConfig } from '../../../lib/store-types';
|
|
|
2
2
|
interface ClothingHomePageProps {
|
|
3
3
|
storeConfig: StoreConfig;
|
|
4
4
|
}
|
|
5
|
-
export declare function ClothingHomePage({ storeConfig: initialConfig }: ClothingHomePageProps): import("react
|
|
5
|
+
export declare function ClothingHomePage({ storeConfig: initialConfig }: ClothingHomePageProps): import("react").JSX.Element;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=ClothingHomePage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClothingHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing/components/ClothingHomePage.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ClothingHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing/components/ClothingHomePage.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAiBvD,UAAU,qBAAqB;IAC7B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAaD,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,qBAAqB,+BAyvBrF"}
|