storefront-layouts-staging 1.0.0-staging.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +539 -0
- package/dist/components/auth/LoginForm.d.ts +9 -0
- package/dist/components/auth/LoginForm.d.ts.map +1 -0
- package/dist/components/auth/LoginForm.js +21 -0
- package/dist/components/auth/LoginSheet.d.ts +7 -0
- package/dist/components/auth/LoginSheet.d.ts.map +1 -0
- package/dist/components/auth/LoginSheet.js +8 -0
- package/dist/components/auth/login-form-core.d.ts +11 -0
- package/dist/components/auth/login-form-core.d.ts.map +1 -0
- package/dist/components/auth/login-form-core.js +19 -0
- package/dist/components/auth/login-sheet-header.d.ts +10 -0
- package/dist/components/auth/login-sheet-header.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-header.js +10 -0
- package/dist/components/auth/login-sheet-registry.d.ts +11 -0
- package/dist/components/auth/login-sheet-registry.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-registry.js +9 -0
- package/dist/components/auth/login-sheet-theme.types.d.ts +29 -0
- package/dist/components/auth/login-sheet-theme.types.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-theme.types.js +1 -0
- package/dist/components/auth/login-sheet-themes/booking-agenda.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/booking-agenda.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/booking-agenda.theme.js +21 -0
- package/dist/components/auth/login-sheet-themes/booking.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/booking.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/booking.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/clothing.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/clothing.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/clothing.theme.js +21 -0
- package/dist/components/auth/login-sheet-themes/electronics-grid.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/electronics-grid.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/electronics-grid.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/electronics.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/electronics.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/electronics.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/food-modern.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/food-modern.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/food-modern.theme.js +22 -0
- package/dist/components/auth/login-sheet-themes/food.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/food.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/food.theme.js +22 -0
- package/dist/components/auth/login-sheet-themes/index.d.ts +14 -0
- package/dist/components/auth/login-sheet-themes/index.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/index.js +29 -0
- package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.d.ts +3 -0
- package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.js +20 -0
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts +24 -0
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts.map +1 -0
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.js +23 -0
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts +13 -0
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts.map +1 -0
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.js +14 -0
- package/dist/components/auth/use-login-submit.d.ts +22 -0
- package/dist/components/auth/use-login-submit.d.ts.map +1 -0
- package/dist/components/auth/use-login-submit.js +99 -0
- package/dist/components/cart/InventoryHoldCountdown.d.ts +8 -0
- package/dist/components/cart/InventoryHoldCountdown.d.ts.map +1 -0
- package/dist/components/cart/InventoryHoldCountdown.js +73 -0
- package/dist/components/categories/category-masonry-grid.d.ts +18 -0
- package/dist/components/categories/category-masonry-grid.d.ts.map +1 -0
- package/dist/components/categories/category-masonry-grid.js +50 -0
- package/dist/components/categories/category-masonry-utils.d.ts +9 -0
- package/dist/components/categories/category-masonry-utils.d.ts.map +1 -0
- package/dist/components/categories/category-masonry-utils.js +67 -0
- package/dist/components/checkout/CheckoutFeeLines.d.ts +12 -0
- package/dist/components/checkout/CheckoutFeeLines.d.ts.map +1 -0
- package/dist/components/checkout/CheckoutFeeLines.js +9 -0
- package/dist/components/checkout/ShippingOptionsPanel.d.ts +54 -0
- package/dist/components/checkout/ShippingOptionsPanel.d.ts.map +1 -0
- package/dist/components/checkout/ShippingOptionsPanel.js +115 -0
- package/dist/components/learning/CertificateTemplates.d.ts +25 -0
- package/dist/components/learning/CertificateTemplates.d.ts.map +1 -0
- package/dist/components/learning/CertificateTemplates.js +31 -0
- package/dist/components/learning/CertificateViewer.d.ts +11 -0
- package/dist/components/learning/CertificateViewer.d.ts.map +1 -0
- package/dist/components/learning/CertificateViewer.js +114 -0
- package/dist/components/learning/MentorshipProgress.d.ts +18 -0
- package/dist/components/learning/MentorshipProgress.d.ts.map +1 -0
- package/dist/components/learning/MentorshipProgress.js +20 -0
- package/dist/components/product/ProductVariationSelectors.d.ts +10 -0
- package/dist/components/product/ProductVariationSelectors.d.ts.map +1 -0
- package/dist/components/product/ProductVariationSelectors.js +27 -0
- package/dist/components/rich-text/CategoryDescription.d.ts +7 -0
- package/dist/components/rich-text/CategoryDescription.d.ts.map +1 -0
- package/dist/components/rich-text/CategoryDescription.js +11 -0
- package/dist/components/rich-text/ProductDescription.d.ts +9 -0
- package/dist/components/rich-text/ProductDescription.d.ts.map +1 -0
- package/dist/components/rich-text/ProductDescription.js +10 -0
- package/dist/components/rich-text/RichTextExcerpt.d.ts +10 -0
- package/dist/components/rich-text/RichTextExcerpt.d.ts.map +1 -0
- package/dist/components/rich-text/RichTextExcerpt.js +12 -0
- package/dist/components/rich-text/SafeRichHtml.d.ts +14 -0
- package/dist/components/rich-text/SafeRichHtml.d.ts.map +1 -0
- package/dist/components/rich-text/SafeRichHtml.js +15 -0
- package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts +7 -0
- package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts.map +1 -0
- package/dist/components/shipping/MerchantHandledDeliveryNotice.js +7 -0
- package/dist/components/shipping/ProductDeliveryInfoSection.d.ts +21 -0
- package/dist/components/shipping/ProductDeliveryInfoSection.d.ts.map +1 -0
- package/dist/components/shipping/ProductDeliveryInfoSection.js +22 -0
- package/dist/components/shipping/ShippingQuoteAddressForm.d.ts +11 -0
- package/dist/components/shipping/ShippingQuoteAddressForm.d.ts.map +1 -0
- package/dist/components/shipping/ShippingQuoteAddressForm.js +66 -0
- package/dist/components/ui/address-selector.d.ts +11 -0
- package/dist/components/ui/address-selector.d.ts.map +1 -0
- package/dist/components/ui/address-selector.js +21 -0
- package/dist/components/ui/alert-modal.d.ts +21 -0
- package/dist/components/ui/alert-modal.d.ts.map +1 -0
- package/dist/components/ui/alert-modal.js +59 -0
- package/dist/components/ui/avatar-image.d.ts +11 -0
- package/dist/components/ui/avatar-image.d.ts.map +1 -0
- package/dist/components/ui/avatar-image.js +39 -0
- package/dist/components/ui/background-patterns.d.ts +27 -0
- package/dist/components/ui/background-patterns.d.ts.map +1 -0
- package/dist/components/ui/background-patterns.js +5 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +20 -0
- package/dist/components/ui/breadcrumbs.d.ts +12 -0
- package/dist/components/ui/breadcrumbs.d.ts.map +1 -0
- package/dist/components/ui/breadcrumbs.js +12 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +34 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +24 -0
- package/dist/components/ui/category-tree.d.ts +16 -0
- package/dist/components/ui/category-tree.d.ts.map +1 -0
- package/dist/components/ui/category-tree.js +74 -0
- package/dist/components/ui/checkout-button.d.ts +11 -0
- package/dist/components/ui/checkout-button.d.ts.map +1 -0
- package/dist/components/ui/checkout-button.js +298 -0
- package/dist/components/ui/dynamic-icon.d.ts +11 -0
- package/dist/components/ui/dynamic-icon.d.ts.map +1 -0
- package/dist/components/ui/dynamic-icon.js +77 -0
- package/dist/components/ui/guest-checkout-modal.d.ts +19 -0
- package/dist/components/ui/guest-checkout-modal.d.ts.map +1 -0
- package/dist/components/ui/guest-checkout-modal.js +95 -0
- package/dist/components/ui/image-skeleton.d.ts +7 -0
- package/dist/components/ui/image-skeleton.d.ts.map +1 -0
- package/dist/components/ui/image-skeleton.js +15 -0
- package/dist/components/ui/image-with-fallback.d.ts +10 -0
- package/dist/components/ui/image-with-fallback.d.ts.map +1 -0
- package/dist/components/ui/image-with-fallback.js +165 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +8 -0
- package/dist/components/ui/limited-time-offer-badge.d.ts +12 -0
- package/dist/components/ui/limited-time-offer-badge.d.ts.map +1 -0
- package/dist/components/ui/limited-time-offer-badge.js +13 -0
- package/dist/components/ui/loading-skeleton-wrapper.d.ts +6 -0
- package/dist/components/ui/loading-skeleton-wrapper.d.ts.map +1 -0
- package/dist/components/ui/loading-skeleton-wrapper.js +10 -0
- package/dist/components/ui/modal.d.ts +11 -0
- package/dist/components/ui/modal.d.ts.map +1 -0
- package/dist/components/ui/modal.js +26 -0
- package/dist/components/ui/otp-input.d.ts +10 -0
- package/dist/components/ui/otp-input.d.ts.map +1 -0
- package/dist/components/ui/otp-input.js +57 -0
- package/dist/components/ui/out-of-stock-overlay.d.ts +8 -0
- package/dist/components/ui/out-of-stock-overlay.d.ts.map +1 -0
- package/dist/components/ui/out-of-stock-overlay.js +12 -0
- package/dist/components/ui/page-animate-wrapper.d.ts +7 -0
- package/dist/components/ui/page-animate-wrapper.d.ts.map +1 -0
- package/dist/components/ui/page-animate-wrapper.js +13 -0
- package/dist/components/ui/page-content-loader.d.ts +13 -0
- package/dist/components/ui/page-content-loader.d.ts.map +1 -0
- package/dist/components/ui/page-content-loader.js +12 -0
- package/dist/components/ui/page-loader.d.ts +20 -0
- package/dist/components/ui/page-loader.d.ts.map +1 -0
- package/dist/components/ui/page-loader.js +31 -0
- package/dist/components/ui/product-card.d.ts +11 -0
- package/dist/components/ui/product-card.d.ts.map +1 -0
- package/dist/components/ui/product-card.js +124 -0
- package/dist/components/ui/product-rating.d.ts +17 -0
- package/dist/components/ui/product-rating.d.ts.map +1 -0
- package/dist/components/ui/product-rating.js +54 -0
- package/dist/components/ui/product-stock-badge.d.ts +9 -0
- package/dist/components/ui/product-stock-badge.d.ts.map +1 -0
- package/dist/components/ui/product-stock-badge.js +20 -0
- package/dist/components/ui/review-form.d.ts +9 -0
- package/dist/components/ui/review-form.d.ts.map +1 -0
- package/dist/components/ui/review-form.js +28 -0
- package/dist/components/ui/route-skeleton-loader.d.ts +7 -0
- package/dist/components/ui/route-skeleton-loader.d.ts.map +1 -0
- package/dist/components/ui/route-skeleton-loader.js +75 -0
- package/dist/components/ui/sheet.d.ts +29 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +45 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +6 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts +6 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.js +9 -0
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/checkout-skeleton.js +4 -0
- package/dist/components/ui/skeletons/index.d.ts +6 -0
- package/dist/components/ui/skeletons/index.d.ts.map +1 -0
- package/dist/components/ui/skeletons/index.js +5 -0
- package/dist/components/ui/skeletons/page-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/page-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/page-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-card-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts +7 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.js +12 -0
- package/dist/components/ui/store-logos.d.ts +43 -0
- package/dist/components/ui/store-logos.d.ts.map +1 -0
- package/dist/components/ui/store-logos.js +83 -0
- package/dist/components/ui/toast.d.ts +20 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +33 -0
- package/dist/components/ui/video-player.d.ts +48 -0
- package/dist/components/ui/video-player.d.ts.map +1 -0
- package/dist/components/ui/video-player.js +101 -0
- package/dist/editor/alignment-schemas/booking-agenda.d.ts +3 -0
- package/dist/editor/alignment-schemas/booking-agenda.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/booking-agenda.js +145 -0
- package/dist/editor/alignment-schemas/booking-footer-section.d.ts +4 -0
- package/dist/editor/alignment-schemas/booking-footer-section.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/booking-footer-section.js +69 -0
- package/dist/editor/alignment-schemas/booking.d.ts +3 -0
- package/dist/editor/alignment-schemas/booking.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/booking.js +476 -0
- package/dist/editor/alignment-schemas/clothing-minimal.d.ts +3 -0
- package/dist/editor/alignment-schemas/clothing-minimal.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/clothing-minimal.js +363 -0
- package/dist/editor/alignment-schemas/clothing.d.ts +3 -0
- package/dist/editor/alignment-schemas/clothing.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/clothing.js +477 -0
- package/dist/editor/alignment-schemas/electronics-grid.d.ts +3 -0
- package/dist/editor/alignment-schemas/electronics-grid.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/electronics-grid.js +97 -0
- package/dist/editor/alignment-schemas/electronics.d.ts +3 -0
- package/dist/editor/alignment-schemas/electronics.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/electronics.js +145 -0
- package/dist/editor/alignment-schemas/food-modern.d.ts +3 -0
- package/dist/editor/alignment-schemas/food-modern.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/food-modern.js +237 -0
- package/dist/editor/alignment-schemas/food.d.ts +3 -0
- package/dist/editor/alignment-schemas/food.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/food.js +494 -0
- package/dist/editor/alignment-schemas/index.d.ts +15 -0
- package/dist/editor/alignment-schemas/index.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/index.js +50 -0
- package/dist/editor/alignment-schemas/lazy-loader.d.ts +14 -0
- package/dist/editor/alignment-schemas/lazy-loader.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/lazy-loader.js +80 -0
- package/dist/editor/alignment-schemas/metadata.d.ts +25 -0
- package/dist/editor/alignment-schemas/metadata.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/metadata.js +225 -0
- package/dist/editor/alignment-schemas/motivational-speaker.d.ts +3 -0
- package/dist/editor/alignment-schemas/motivational-speaker.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/motivational-speaker.js +185 -0
- package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.d.ts +18 -0
- package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.js +166 -0
- package/dist/editor/alignment-schemas/resolve-field.d.ts +9 -0
- package/dist/editor/alignment-schemas/resolve-field.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/resolve-field.js +56 -0
- package/dist/editor/alignment-schemas/types.d.ts +53 -0
- package/dist/editor/alignment-schemas/types.d.ts.map +1 -0
- package/dist/editor/alignment-schemas/types.js +1 -0
- package/dist/editor/blocks/defaults/clothing-minimal-home.d.ts +9 -0
- package/dist/editor/blocks/defaults/clothing-minimal-home.d.ts.map +1 -0
- package/dist/editor/blocks/defaults/clothing-minimal-home.js +207 -0
- package/dist/editor/blocks/index.d.ts +4 -0
- package/dist/editor/blocks/index.d.ts.map +1 -0
- package/dist/editor/blocks/index.js +3 -0
- package/dist/editor/blocks/migrate-clothing-minimal.d.ts +5 -0
- package/dist/editor/blocks/migrate-clothing-minimal.d.ts.map +1 -0
- package/dist/editor/blocks/migrate-clothing-minimal.js +140 -0
- package/dist/editor/blocks/nav-outline-utils.d.ts +47 -0
- package/dist/editor/blocks/nav-outline-utils.d.ts.map +1 -0
- package/dist/editor/blocks/nav-outline-utils.js +201 -0
- package/dist/editor/blocks/registry.d.ts +19 -0
- package/dist/editor/blocks/registry.d.ts.map +1 -0
- package/dist/editor/blocks/registry.js +118 -0
- package/dist/editor/blocks/types.d.ts +14 -0
- package/dist/editor/blocks/types.d.ts.map +1 -0
- package/dist/editor/blocks/types.js +14 -0
- package/dist/editor/document/adapter.d.ts +44 -0
- package/dist/editor/document/adapter.d.ts.map +1 -0
- package/dist/editor/document/adapter.js +159 -0
- package/dist/editor/document/block-tree.d.ts +46 -0
- package/dist/editor/document/block-tree.d.ts.map +1 -0
- package/dist/editor/document/block-tree.js +345 -0
- package/dist/editor/document/constants.d.ts +6 -0
- package/dist/editor/document/constants.d.ts.map +1 -0
- package/dist/editor/document/constants.js +14 -0
- package/dist/editor/document/index.d.ts +7 -0
- package/dist/editor/document/index.d.ts.map +1 -0
- package/dist/editor/document/index.js +6 -0
- package/dist/editor/document/layout-id.d.ts +3 -0
- package/dist/editor/document/layout-id.d.ts.map +1 -0
- package/dist/editor/document/layout-id.js +17 -0
- package/dist/editor/document/types.d.ts +91 -0
- package/dist/editor/document/types.d.ts.map +1 -0
- package/dist/editor/document/types.js +1 -0
- package/dist/editor/document/validate.d.ts +11 -0
- package/dist/editor/document/validate.d.ts.map +1 -0
- package/dist/editor/document/validate.js +92 -0
- package/dist/editor/feature-flags.d.ts +11 -0
- package/dist/editor/feature-flags.d.ts.map +1 -0
- package/dist/editor/feature-flags.js +19 -0
- package/dist/editor/index.d.ts +28 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +72 -0
- package/dist/editor/layout-content-loader.d.ts +13 -0
- package/dist/editor/layout-content-loader.d.ts.map +1 -0
- package/dist/editor/layout-content-loader.js +222 -0
- package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts +20 -0
- package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/ActiveArrayFocusContext.js +31 -0
- package/dist/editor/payaza-form/ArrayItemManager.d.ts +19 -0
- package/dist/editor/payaza-form/ArrayItemManager.d.ts.map +1 -0
- package/dist/editor/payaza-form/ArrayItemManager.js +62 -0
- package/dist/editor/payaza-form/AssetSelectionContext.d.ts +17 -0
- package/dist/editor/payaza-form/AssetSelectionContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/AssetSelectionContext.js +81 -0
- package/dist/editor/payaza-form/EditorCanvasPreview.d.ts +41 -0
- package/dist/editor/payaza-form/EditorCanvasPreview.d.ts.map +1 -0
- package/dist/editor/payaza-form/EditorCanvasPreview.js +56 -0
- package/dist/editor/payaza-form/EditorLayoutContext.d.ts +8 -0
- package/dist/editor/payaza-form/EditorLayoutContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/EditorLayoutContext.js +6 -0
- package/dist/editor/payaza-form/FieldRenderer.d.ts +16 -0
- package/dist/editor/payaza-form/FieldRenderer.d.ts.map +1 -0
- package/dist/editor/payaza-form/FieldRenderer.js +192 -0
- package/dist/editor/payaza-form/IframePreviewMessageBridge.d.ts +29 -0
- package/dist/editor/payaza-form/IframePreviewMessageBridge.d.ts.map +1 -0
- package/dist/editor/payaza-form/IframePreviewMessageBridge.js +46 -0
- package/dist/editor/payaza-form/PayazaFormEditor.d.ts +12 -0
- package/dist/editor/payaza-form/PayazaFormEditor.d.ts.map +1 -0
- package/dist/editor/payaza-form/PayazaFormEditor.js +1226 -0
- package/dist/editor/payaza-form/PayazaFormEditorFullPage.d.ts +9 -0
- package/dist/editor/payaza-form/PayazaFormEditorFullPage.d.ts.map +1 -0
- package/dist/editor/payaza-form/PayazaFormEditorFullPage.js +6 -0
- package/dist/editor/payaza-form/SliderArrayEditor.d.ts +17 -0
- package/dist/editor/payaza-form/SliderArrayEditor.d.ts.map +1 -0
- package/dist/editor/payaza-form/SliderArrayEditor.js +96 -0
- package/dist/editor/payaza-form/components/ArrayField.d.ts +21 -0
- package/dist/editor/payaza-form/components/ArrayField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ArrayField.js +18 -0
- package/dist/editor/payaza-form/components/BlockStylesInspector.d.ts +9 -0
- package/dist/editor/payaza-form/components/BlockStylesInspector.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/BlockStylesInspector.js +150 -0
- package/dist/editor/payaza-form/components/BlocksField.d.ts +17 -0
- package/dist/editor/payaza-form/components/BlocksField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/BlocksField.js +108 -0
- package/dist/editor/payaza-form/components/ButtonField.d.ts +15 -0
- package/dist/editor/payaza-form/components/ButtonField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ButtonField.js +17 -0
- package/dist/editor/payaza-form/components/CanvasGranularInspector.d.ts +16 -0
- package/dist/editor/payaza-form/components/CanvasGranularInspector.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/CanvasGranularInspector.js +32 -0
- package/dist/editor/payaza-form/components/FieldDensityContext.d.ts +10 -0
- package/dist/editor/payaza-form/components/FieldDensityContext.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/FieldDensityContext.js +13 -0
- package/dist/editor/payaza-form/components/IconField.d.ts +12 -0
- package/dist/editor/payaza-form/components/IconField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/IconField.js +42 -0
- package/dist/editor/payaza-form/components/ImageField.d.ts +10 -0
- package/dist/editor/payaza-form/components/ImageField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ImageField.js +30 -0
- package/dist/editor/payaza-form/components/NumberField.d.ts +14 -0
- package/dist/editor/payaza-form/components/NumberField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/NumberField.js +23 -0
- package/dist/editor/payaza-form/components/ObjectField.d.ts +11 -0
- package/dist/editor/payaza-form/components/ObjectField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ObjectField.js +7 -0
- package/dist/editor/payaza-form/components/RichTextField.d.ts +15 -0
- package/dist/editor/payaza-form/components/RichTextField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/RichTextField.js +88 -0
- package/dist/editor/payaza-form/components/SectionField.d.ts +14 -0
- package/dist/editor/payaza-form/components/SectionField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/SectionField.js +8 -0
- package/dist/editor/payaza-form/components/SectionSchemaInspector.d.ts +18 -0
- package/dist/editor/payaza-form/components/SectionSchemaInspector.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/SectionSchemaInspector.js +64 -0
- package/dist/editor/payaza-form/components/SegmentedControlField.d.ts +13 -0
- package/dist/editor/payaza-form/components/SegmentedControlField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/SegmentedControlField.js +7 -0
- package/dist/editor/payaza-form/components/StarRatingField.d.ts +13 -0
- package/dist/editor/payaza-form/components/StarRatingField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/StarRatingField.js +16 -0
- package/dist/editor/payaza-form/components/TextField.d.ts +13 -0
- package/dist/editor/payaza-form/components/TextField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/TextField.js +12 -0
- package/dist/editor/payaza-form/components/TextareaField.d.ts +11 -0
- package/dist/editor/payaza-form/components/TextareaField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/TextareaField.js +6 -0
- package/dist/editor/payaza-form/components/ToggleField.d.ts +12 -0
- package/dist/editor/payaza-form/components/ToggleField.d.ts.map +1 -0
- package/dist/editor/payaza-form/components/ToggleField.js +15 -0
- package/dist/editor/payaza-form/data-merger.d.ts +28 -0
- package/dist/editor/payaza-form/data-merger.d.ts.map +1 -0
- package/dist/editor/payaza-form/data-merger.js +878 -0
- package/dist/editor/payaza-form/data-transformer.d.ts +28 -0
- package/dist/editor/payaza-form/data-transformer.d.ts.map +1 -0
- package/dist/editor/payaza-form/data-transformer.js +304 -0
- package/dist/editor/payaza-form/engine.d.ts +72 -0
- package/dist/editor/payaza-form/engine.d.ts.map +1 -0
- package/dist/editor/payaza-form/engine.js +140 -0
- package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts +8 -0
- package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts.map +1 -0
- package/dist/editor/payaza-form/examples/custom-widgets.example.js +51 -0
- package/dist/editor/payaza-form/field-renderer-ref.d.ts +4 -0
- package/dist/editor/payaza-form/field-renderer-ref.d.ts.map +1 -0
- package/dist/editor/payaza-form/field-renderer-ref.js +16 -0
- package/dist/editor/payaza-form/index.d.ts +11 -0
- package/dist/editor/payaza-form/index.d.ts.map +1 -0
- package/dist/editor/payaza-form/index.js +8 -0
- package/dist/editor/payaza-form/layout-loader.d.ts +12 -0
- package/dist/editor/payaza-form/layout-loader.d.ts.map +1 -0
- package/dist/editor/payaza-form/layout-loader.js +43 -0
- package/dist/editor/payaza-form/payaza-style-sanitize.d.ts +14 -0
- package/dist/editor/payaza-form/payaza-style-sanitize.d.ts.map +1 -0
- package/dist/editor/payaza-form/payaza-style-sanitize.js +76 -0
- package/dist/editor/payaza-form/preview-message-handler.d.ts +18 -0
- package/dist/editor/payaza-form/preview-message-handler.d.ts.map +1 -0
- package/dist/editor/payaza-form/preview-message-handler.js +89 -0
- package/dist/editor/payaza-form/schema-bridge.d.ts +12 -0
- package/dist/editor/payaza-form/schema-bridge.d.ts.map +1 -0
- package/dist/editor/payaza-form/schema-bridge.js +90 -0
- package/dist/editor/payaza-form/widget-registry.d.ts +94 -0
- package/dist/editor/payaza-form/widget-registry.d.ts.map +1 -0
- package/dist/editor/payaza-form/widget-registry.js +107 -0
- package/dist/editor/shared/AIGenerateModal.d.ts +17 -0
- package/dist/editor/shared/AIGenerateModal.d.ts.map +1 -0
- package/dist/editor/shared/AIGenerateModal.js +59 -0
- package/dist/editor/shared/BlockOutlineTree.d.ts +14 -0
- package/dist/editor/shared/BlockOutlineTree.d.ts.map +1 -0
- package/dist/editor/shared/BlockOutlineTree.js +47 -0
- package/dist/editor/shared/EditorHeader.d.ts +61 -0
- package/dist/editor/shared/EditorHeader.d.ts.map +1 -0
- package/dist/editor/shared/EditorHeader.js +181 -0
- package/dist/editor/shared/EditorNavigator.d.ts +42 -0
- package/dist/editor/shared/EditorNavigator.d.ts.map +1 -0
- package/dist/editor/shared/EditorNavigator.js +44 -0
- package/dist/editor/shared/IframePreview.d.ts +36 -0
- package/dist/editor/shared/IframePreview.d.ts.map +1 -0
- package/dist/editor/shared/IframePreview.js +217 -0
- package/dist/editor/shared/InlineCanvasPreview.d.ts +36 -0
- package/dist/editor/shared/InlineCanvasPreview.d.ts.map +1 -0
- package/dist/editor/shared/InlineCanvasPreview.js +174 -0
- package/dist/editor/shared/LayoutRenderer.d.ts +11 -0
- package/dist/editor/shared/LayoutRenderer.d.ts.map +1 -0
- package/dist/editor/shared/LayoutRenderer.js +7 -0
- package/dist/editor/shared/PageTabs.d.ts +13 -0
- package/dist/editor/shared/PageTabs.d.ts.map +1 -0
- package/dist/editor/shared/PageTabs.js +6 -0
- package/dist/editor/shared/ResizableSidebar.d.ts +14 -0
- package/dist/editor/shared/ResizableSidebar.d.ts.map +1 -0
- package/dist/editor/shared/ResizableSidebar.js +45 -0
- package/dist/editor/shared/index.d.ts +8 -0
- package/dist/editor/shared/index.d.ts.map +1 -0
- package/dist/editor/shared/index.js +7 -0
- package/dist/editor/shared/preview-viewport.d.ts +9 -0
- package/dist/editor/shared/preview-viewport.d.ts.map +1 -0
- package/dist/editor/shared/preview-viewport.js +17 -0
- package/dist/editor/shared/useEditorChromeMetrics.d.ts +15 -0
- package/dist/editor/shared/useEditorChromeMetrics.d.ts.map +1 -0
- package/dist/editor/shared/useEditorChromeMetrics.js +52 -0
- package/dist/editor/types.d.ts +162 -0
- package/dist/editor/types.d.ts.map +1 -0
- package/dist/editor/types.js +1 -0
- package/dist/hooks/use-analytics.d.ts +15 -0
- package/dist/hooks/use-analytics.d.ts.map +1 -0
- package/dist/hooks/use-analytics.js +62 -0
- package/dist/hooks/use-api.d.ts +17 -0
- package/dist/hooks/use-api.d.ts.map +1 -0
- package/dist/hooks/use-api.js +53 -0
- package/dist/hooks/use-cart-api.d.ts +28 -0
- package/dist/hooks/use-cart-api.d.ts.map +1 -0
- package/dist/hooks/use-cart-api.js +116 -0
- package/dist/hooks/use-catalog-loader.d.ts +19 -0
- package/dist/hooks/use-catalog-loader.d.ts.map +1 -0
- package/dist/hooks/use-catalog-loader.js +107 -0
- package/dist/hooks/use-catalog-price-range.d.ts +17 -0
- package/dist/hooks/use-catalog-price-range.d.ts.map +1 -0
- package/dist/hooks/use-catalog-price-range.js +26 -0
- package/dist/hooks/use-checkout-fees.d.ts +16 -0
- package/dist/hooks/use-checkout-fees.d.ts.map +1 -0
- package/dist/hooks/use-checkout-fees.js +105 -0
- package/dist/hooks/use-content-ready.d.ts +17 -0
- package/dist/hooks/use-content-ready.d.ts.map +1 -0
- package/dist/hooks/use-content-ready.js +197 -0
- package/dist/hooks/use-debounce.d.ts +6 -0
- package/dist/hooks/use-debounce.d.ts.map +1 -0
- package/dist/hooks/use-debounce.js +17 -0
- package/dist/hooks/use-multi-store-checkout-fees.d.ts +25 -0
- package/dist/hooks/use-multi-store-checkout-fees.d.ts.map +1 -0
- package/dist/hooks/use-multi-store-checkout-fees.js +116 -0
- package/dist/hooks/use-navigation-loading.d.ts +4 -0
- package/dist/hooks/use-navigation-loading.d.ts.map +1 -0
- package/dist/hooks/use-navigation-loading.js +14 -0
- package/dist/hooks/use-payaza-checkout.d.ts +15 -0
- package/dist/hooks/use-payaza-checkout.d.ts.map +1 -0
- package/dist/hooks/use-payaza-checkout.js +123 -0
- package/dist/hooks/use-product-variation-selection.d.ts +26 -0
- package/dist/hooks/use-product-variation-selection.d.ts.map +1 -0
- package/dist/hooks/use-product-variation-selection.js +26 -0
- package/dist/hooks/use-products-api.d.ts +19 -0
- package/dist/hooks/use-products-api.d.ts.map +1 -0
- package/dist/hooks/use-products-api.js +84 -0
- package/dist/hooks/use-shipping-quote.d.ts +25 -0
- package/dist/hooks/use-shipping-quote.d.ts.map +1 -0
- package/dist/hooks/use-shipping-quote.js +80 -0
- package/dist/hooks/use-store-api.d.ts +12 -0
- package/dist/hooks/use-store-api.d.ts.map +1 -0
- package/dist/hooks/use-store-api.js +73 -0
- package/dist/hooks/usePreviewSlideSync.d.ts +5 -0
- package/dist/hooks/usePreviewSlideSync.d.ts.map +1 -0
- package/dist/hooks/usePreviewSlideSync.js +28 -0
- package/dist/index.d.ts +150 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +164 -0
- package/dist/json/booking-agenda.json +166 -0
- package/dist/json/booking.json +224 -0
- package/dist/json/clothing-minimal.json +203 -0
- package/dist/json/clothing.json +418 -0
- package/dist/json/electronics-grid.json +246 -0
- package/dist/json/electronics.json +303 -0
- package/dist/json/food-modern.json +191 -0
- package/dist/json/food.json +283 -0
- package/dist/json/json-map.d.ts +7 -0
- package/dist/json/json-map.d.ts.map +1 -0
- package/dist/json/json-map.js +36 -0
- package/dist/json/motivational-speaker.json +361 -0
- package/dist/layouts/booking/components/BookingHomePage.d.ts +7 -0
- package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingHomePage.js +107 -0
- package/dist/layouts/booking/components/BookingMultilineHeading.d.ts +20 -0
- package/dist/layouts/booking/components/BookingMultilineHeading.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingMultilineHeading.js +32 -0
- package/dist/layouts/booking/components/BookingTestimonialCard.d.ts +10 -0
- package/dist/layouts/booking/components/BookingTestimonialCard.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingTestimonialCard.js +11 -0
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts +9 -0
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.js +19 -0
- package/dist/layouts/booking/components/booking-about-defaults.d.ts +26 -0
- package/dist/layouts/booking/components/booking-about-defaults.d.ts.map +1 -0
- package/dist/layouts/booking/components/booking-about-defaults.js +99 -0
- package/dist/layouts/booking/components/booking-footer-defaults.d.ts +19 -0
- package/dist/layouts/booking/components/booking-footer-defaults.d.ts.map +1 -0
- package/dist/layouts/booking/components/booking-footer-defaults.js +52 -0
- package/dist/layouts/booking/components/booking-testimonial-defaults.d.ts +21 -0
- package/dist/layouts/booking/components/booking-testimonial-defaults.d.ts.map +1 -0
- package/dist/layouts/booking/components/booking-testimonial-defaults.js +112 -0
- package/dist/layouts/booking/index.d.ts +9 -0
- package/dist/layouts/booking/index.d.ts.map +1 -0
- package/dist/layouts/booking/index.js +9 -0
- package/dist/layouts/booking/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/AboutPage.js +69 -0
- package/dist/layouts/booking/pages/BookPage.d.ts +8 -0
- package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/BookPage.js +482 -0
- package/dist/layouts/booking/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/booking/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/CategoriesPage.js +30 -0
- package/dist/layouts/booking/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/CategoryPage.js +51 -0
- package/dist/layouts/booking/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ContactPage.js +59 -0
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ProductDetailPage.js +433 -0
- package/dist/layouts/booking/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ServicesPage.js +54 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts +7 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +283 -0
- package/dist/layouts/booking-agenda/index.d.ts +9 -0
- package/dist/layouts/booking-agenda/index.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/index.js +9 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.js +51 -0
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/BookPage.js +468 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.js +23 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.js +48 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.js +57 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +433 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.js +46 -0
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts +7 -0
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -0
- package/dist/layouts/clothing/components/ClothingHomePage.js +260 -0
- package/dist/layouts/clothing/index.d.ts +8 -0
- package/dist/layouts/clothing/index.d.ts.map +1 -0
- package/dist/layouts/clothing/index.js +8 -0
- package/dist/layouts/clothing/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/AboutPage.js +55 -0
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/CategoriesPage.js +34 -0
- package/dist/layouts/clothing/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/CategoryPage.js +77 -0
- package/dist/layouts/clothing/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ContactPage.js +58 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.js +393 -0
- package/dist/layouts/clothing/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ProductsPage.js +268 -0
- package/dist/layouts/clothing/payaza-bindings.d.ts +23 -0
- package/dist/layouts/clothing/payaza-bindings.d.ts.map +1 -0
- package/dist/layouts/clothing/payaza-bindings.js +17 -0
- package/dist/layouts/clothing/styles/clothing.css +80 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts +7 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +163 -0
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts +40 -0
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.js +180 -0
- package/dist/layouts/clothing-minimal/index.d.ts +8 -0
- package/dist/layouts/clothing-minimal/index.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/index.js +8 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.js +71 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +35 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.js +56 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.js +53 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +432 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.js +274 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +40 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts +10 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +107 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.js +96 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts +8 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +10 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.js +99 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +11 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +39 -0
- package/dist/layouts/electronics/index.d.ts +19 -0
- package/dist/layouts/electronics/index.d.ts.map +1 -0
- package/dist/layouts/electronics/index.js +19 -0
- package/dist/layouts/electronics/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/AboutPage.js +51 -0
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/CategoriesPage.js +6 -0
- package/dist/layouts/electronics/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/CategoryPage.js +55 -0
- package/dist/layouts/electronics/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ContactPage.js +57 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +9 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.js +430 -0
- package/dist/layouts/electronics/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ProductsPage.js +273 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/electronics/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/TermsPage.js +9 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.js +376 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts +10 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +107 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts +7 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +111 -0
- package/dist/layouts/electronics-grid/index.d.ts +15 -0
- package/dist/layouts/electronics-grid/index.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/index.js +15 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.js +51 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.js +6 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.js +55 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.js +57 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +26 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +9 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +430 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.js +273 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.js +9 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +376 -0
- package/dist/layouts/food/components/FoodHomePage.d.ts +7 -0
- package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -0
- package/dist/layouts/food/components/FoodHomePage.js +387 -0
- package/dist/layouts/food/index.d.ts +9 -0
- package/dist/layouts/food/index.d.ts.map +1 -0
- package/dist/layouts/food/index.js +9 -0
- package/dist/layouts/food/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/AboutPage.js +67 -0
- package/dist/layouts/food/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/food/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/CategoriesPage.js +26 -0
- package/dist/layouts/food/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/CategoryPage.js +65 -0
- package/dist/layouts/food/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ContactPage.js +55 -0
- package/dist/layouts/food/pages/MenuPage.d.ts +8 -0
- package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/MenuPage.js +107 -0
- package/dist/layouts/food/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ProductDetailPage.js +485 -0
- package/dist/layouts/food/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ProductsPage.js +174 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts +7 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.js +101 -0
- package/dist/layouts/food-modern/index.d.ts +9 -0
- package/dist/layouts/food-modern/index.d.ts.map +1 -0
- package/dist/layouts/food-modern/index.js +9 -0
- package/dist/layouts/food-modern/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/AboutPage.js +52 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.js +23 -0
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/CategoryPage.js +64 -0
- package/dist/layouts/food-modern/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ContactPage.js +55 -0
- package/dist/layouts/food-modern/pages/MenuPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/MenuPage.js +110 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.js +427 -0
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ProductsPage.js +175 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +131 -0
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts +3 -0
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.js +7 -0
- package/dist/layouts/motivational-speaker/index.d.ts +10 -0
- package/dist/layouts/motivational-speaker/index.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/index.js +10 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.js +51 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.js +72 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.js +57 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.js +273 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +8 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +153 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.js +46 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +137 -0
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts +8 -0
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts.map +1 -0
- package/dist/layouts/shared/components/BaseStoreLayout.js +49 -0
- package/dist/layouts/shared/components/CartLineQuantityControl.d.ts +12 -0
- package/dist/layouts/shared/components/CartLineQuantityControl.d.ts.map +1 -0
- package/dist/layouts/shared/components/CartLineQuantityControl.js +99 -0
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts +8 -0
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts.map +1 -0
- package/dist/layouts/shared/components/GenericPageWrapper.js +24 -0
- package/dist/layouts/shared/components/PromoBanner.d.ts +12 -0
- package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -0
- package/dist/layouts/shared/components/PromoBanner.js +17 -0
- package/dist/layouts/shared/components/StoreFooter.d.ts +7 -0
- package/dist/layouts/shared/components/StoreFooter.d.ts.map +1 -0
- package/dist/layouts/shared/components/StoreFooter.js +156 -0
- package/dist/layouts/shared/components/StoreHeader.d.ts +8 -0
- package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -0
- package/dist/layouts/shared/components/StoreHeader.js +111 -0
- package/dist/layouts/shared/components/TestimonialCard.d.ts +8 -0
- package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -0
- package/dist/layouts/shared/components/TestimonialCard.js +10 -0
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts +8 -0
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts.map +1 -0
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.js +16 -0
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts +7 -0
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts.map +1 -0
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.js +38 -0
- package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts +7 -0
- package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts.map +1 -0
- package/dist/layouts/shared/components/headers/FoodModernHeader.js +61 -0
- package/dist/layouts/shared/index.d.ts +23 -0
- package/dist/layouts/shared/index.d.ts.map +1 -0
- package/dist/layouts/shared/index.js +23 -0
- package/dist/layouts/shared/pages/AccountPage.d.ts +7 -0
- package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/AccountPage.js +549 -0
- package/dist/layouts/shared/pages/CartPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CartPage.js +121 -0
- package/dist/layouts/shared/pages/CheckoutPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CheckoutPage.js +1430 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.js +9 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts +9 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.js +8 -0
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/shared/pages/MaintenancePage.d.ts +7 -0
- package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/MaintenancePage.js +10 -0
- package/dist/layouts/shared/pages/PortfolioPage.d.ts +7 -0
- package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/PortfolioPage.js +130 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.js +9 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts +7 -0
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/SizeGuidePage.js +10 -0
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts +7 -0
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/StyleGuidePage.js +126 -0
- package/dist/layouts/shared/pages/TeamPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TeamPage.js +39 -0
- package/dist/layouts/shared/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TermsPage.js +9 -0
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TrackOrderPage.js +379 -0
- package/dist/layouts/shared/pages/WishlistPage.d.ts +7 -0
- package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/WishlistPage.js +144 -0
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts +14 -0
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.js +152 -0
- package/dist/layouts/shared/wrappers/ClothingLayout.d.ts +10 -0
- package/dist/layouts/shared/wrappers/ClothingLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/ClothingLayout.js +44 -0
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.js +48 -0
- package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/ElectronicsLayout.js +40 -0
- package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/FoodModernLayout.js +48 -0
- package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/MotivationalLayout.js +51 -0
- package/dist/layouts/shared/wrappers/StandardLayout.d.ts +8 -0
- package/dist/layouts/shared/wrappers/StandardLayout.d.ts.map +1 -0
- package/dist/layouts/shared/wrappers/StandardLayout.js +45 -0
- package/dist/lib/alignment-schemas.d.ts +51 -0
- package/dist/lib/alignment-schemas.d.ts.map +1 -0
- package/dist/lib/alignment-schemas.js +637 -0
- package/dist/lib/api.d.ts +11 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +167 -0
- package/dist/lib/auth-context.d.ts +49 -0
- package/dist/lib/auth-context.d.ts.map +1 -0
- package/dist/lib/auth-context.js +296 -0
- package/dist/lib/checkout-availability.d.ts +10 -0
- package/dist/lib/checkout-availability.d.ts.map +1 -0
- package/dist/lib/checkout-availability.js +16 -0
- package/dist/lib/compact-array-items.d.ts +7 -0
- package/dist/lib/compact-array-items.d.ts.map +1 -0
- package/dist/lib/compact-array-items.js +13 -0
- package/dist/lib/content-selectors.d.ts +21 -0
- package/dist/lib/content-selectors.d.ts.map +1 -0
- package/dist/lib/content-selectors.js +75 -0
- package/dist/lib/countries.d.ts +13 -0
- package/dist/lib/countries.d.ts.map +1 -0
- package/dist/lib/countries.js +292 -0
- package/dist/lib/currency-symbols.d.ts +36 -0
- package/dist/lib/currency-symbols.d.ts.map +1 -0
- package/dist/lib/currency-symbols.js +153 -0
- package/dist/lib/guest-user.d.ts +27 -0
- package/dist/lib/guest-user.d.ts.map +1 -0
- package/dist/lib/guest-user.js +71 -0
- package/dist/lib/inventory-utils.d.ts +41 -0
- package/dist/lib/inventory-utils.d.ts.map +1 -0
- package/dist/lib/inventory-utils.js +180 -0
- package/dist/lib/layout-badges.d.ts +4 -0
- package/dist/lib/layout-badges.d.ts.map +1 -0
- package/dist/lib/layout-badges.js +5 -0
- package/dist/lib/layout-config-hydration.d.ts +25 -0
- package/dist/lib/layout-config-hydration.d.ts.map +1 -0
- package/dist/lib/layout-config-hydration.js +264 -0
- package/dist/lib/layout-field-normalize.d.ts +18 -0
- package/dist/lib/layout-field-normalize.d.ts.map +1 -0
- package/dist/lib/layout-field-normalize.js +190 -0
- package/dist/lib/layout-route-utils.d.ts +30 -0
- package/dist/lib/layout-route-utils.d.ts.map +1 -0
- package/dist/lib/layout-route-utils.js +79 -0
- package/dist/lib/limited-time-offer.d.ts +6 -0
- package/dist/lib/limited-time-offer.d.ts.map +1 -0
- package/dist/lib/limited-time-offer.js +24 -0
- package/dist/lib/loading-context.d.ts +20 -0
- package/dist/lib/loading-context.d.ts.map +1 -0
- package/dist/lib/loading-context.js +212 -0
- package/dist/lib/mock-stores.d.ts +24 -0
- package/dist/lib/mock-stores.d.ts.map +1 -0
- package/dist/lib/mock-stores.js +2106 -0
- package/dist/lib/order-success-cart.d.ts +5 -0
- package/dist/lib/order-success-cart.d.ts.map +1 -0
- package/dist/lib/order-success-cart.js +50 -0
- package/dist/lib/payaza-checkout.d.ts +147 -0
- package/dist/lib/payaza-checkout.d.ts.map +1 -0
- package/dist/lib/payaza-checkout.js +717 -0
- package/dist/lib/payaza-section-styles.d.ts +16 -0
- package/dist/lib/payaza-section-styles.d.ts.map +1 -0
- package/dist/lib/payaza-section-styles.js +93 -0
- package/dist/lib/preview-data.d.ts +58 -0
- package/dist/lib/preview-data.d.ts.map +1 -0
- package/dist/lib/preview-data.js +2576 -0
- package/dist/lib/product-variation-utils.d.ts +8 -0
- package/dist/lib/product-variation-utils.d.ts.map +1 -0
- package/dist/lib/product-variation-utils.js +101 -0
- package/dist/lib/rich-html.d.ts +38 -0
- package/dist/lib/rich-html.d.ts.map +1 -0
- package/dist/lib/rich-html.js +272 -0
- package/dist/lib/services/analytics.service.d.ts +59 -0
- package/dist/lib/services/analytics.service.d.ts.map +1 -0
- package/dist/lib/services/analytics.service.js +382 -0
- package/dist/lib/services/auth.service.d.ts +63 -0
- package/dist/lib/services/auth.service.d.ts.map +1 -0
- package/dist/lib/services/auth.service.js +101 -0
- package/dist/lib/services/booking.service.d.ts +53 -0
- package/dist/lib/services/booking.service.d.ts.map +1 -0
- package/dist/lib/services/booking.service.js +52 -0
- package/dist/lib/services/category.service.d.ts +21 -0
- package/dist/lib/services/category.service.d.ts.map +1 -0
- package/dist/lib/services/category.service.js +41 -0
- package/dist/lib/services/checkout.service.d.ts +168 -0
- package/dist/lib/services/checkout.service.d.ts.map +1 -0
- package/dist/lib/services/checkout.service.js +48 -0
- package/dist/lib/services/contact.service.d.ts +26 -0
- package/dist/lib/services/contact.service.d.ts.map +1 -0
- package/dist/lib/services/contact.service.js +23 -0
- package/dist/lib/services/customer.service.d.ts +54 -0
- package/dist/lib/services/customer.service.d.ts.map +1 -0
- package/dist/lib/services/customer.service.js +64 -0
- package/dist/lib/services/fees.service.d.ts +85 -0
- package/dist/lib/services/fees.service.d.ts.map +1 -0
- package/dist/lib/services/fees.service.js +147 -0
- package/dist/lib/services/index.d.ts +19 -0
- package/dist/lib/services/index.d.ts.map +1 -0
- package/dist/lib/services/index.js +18 -0
- package/dist/lib/services/location.service.d.ts +31 -0
- package/dist/lib/services/location.service.d.ts.map +1 -0
- package/dist/lib/services/location.service.js +25 -0
- package/dist/lib/services/order.service.d.ts +5 -0
- package/dist/lib/services/order.service.d.ts.map +1 -0
- package/dist/lib/services/order.service.js +12 -0
- package/dist/lib/services/payment.service.d.ts +56 -0
- package/dist/lib/services/payment.service.d.ts.map +1 -0
- package/dist/lib/services/payment.service.js +122 -0
- package/dist/lib/services/product.service.d.ts +92 -0
- package/dist/lib/services/product.service.d.ts.map +1 -0
- package/dist/lib/services/product.service.js +86 -0
- package/dist/lib/services/promo.service.d.ts +31 -0
- package/dist/lib/services/promo.service.d.ts.map +1 -0
- package/dist/lib/services/promo.service.js +29 -0
- package/dist/lib/services/review.service.d.ts +47 -0
- package/dist/lib/services/review.service.d.ts.map +1 -0
- package/dist/lib/services/review.service.js +54 -0
- package/dist/lib/services/service.service.d.ts +55 -0
- package/dist/lib/services/service.service.d.ts.map +1 -0
- package/dist/lib/services/service.service.js +37 -0
- package/dist/lib/services/shipping.service.d.ts +62 -0
- package/dist/lib/services/shipping.service.d.ts.map +1 -0
- package/dist/lib/services/shipping.service.js +39 -0
- package/dist/lib/services/store.service.d.ts +89 -0
- package/dist/lib/services/store.service.d.ts.map +1 -0
- package/dist/lib/services/store.service.js +41 -0
- package/dist/lib/shipping-address.util.d.ts +76 -0
- package/dist/lib/shipping-address.util.d.ts.map +1 -0
- package/dist/lib/shipping-address.util.js +149 -0
- package/dist/lib/shipping-settings.util.d.ts +4 -0
- package/dist/lib/shipping-settings.util.d.ts.map +1 -0
- package/dist/lib/shipping-settings.util.js +6 -0
- package/dist/lib/store-config-utils.d.ts +50 -0
- package/dist/lib/store-config-utils.d.ts.map +1 -0
- package/dist/lib/store-config-utils.js +1713 -0
- package/dist/lib/store-config.d.ts +4 -0
- package/dist/lib/store-config.d.ts.map +1 -0
- package/dist/lib/store-config.js +4 -0
- package/dist/lib/store-context.d.ts +69 -0
- package/dist/lib/store-context.d.ts.map +1 -0
- package/dist/lib/store-context.js +456 -0
- package/dist/lib/store-types.d.ts +921 -0
- package/dist/lib/store-types.d.ts.map +1 -0
- package/dist/lib/store-types.js +1 -0
- package/dist/lib/template-pages.d.ts +8 -0
- package/dist/lib/template-pages.d.ts.map +1 -0
- package/dist/lib/template-pages.js +62 -0
- package/dist/lib/utils/asset-helpers.d.ts +111 -0
- package/dist/lib/utils/asset-helpers.d.ts.map +1 -0
- package/dist/lib/utils/asset-helpers.js +462 -0
- package/dist/lib/utils/catalog-price-bounds.d.ts +13 -0
- package/dist/lib/utils/catalog-price-bounds.d.ts.map +1 -0
- package/dist/lib/utils/catalog-price-bounds.js +24 -0
- package/dist/lib/utils/category-tree.d.ts +25 -0
- package/dist/lib/utils/category-tree.d.ts.map +1 -0
- package/dist/lib/utils/category-tree.js +85 -0
- package/dist/lib/utils/demo-detection.d.ts +23 -0
- package/dist/lib/utils/demo-detection.d.ts.map +1 -0
- package/dist/lib/utils/demo-detection.js +36 -0
- package/dist/lib/utils/editor-preview.d.ts +42 -0
- package/dist/lib/utils/editor-preview.d.ts.map +1 -0
- package/dist/lib/utils/editor-preview.js +214 -0
- package/dist/lib/utils/fee-calculations.d.ts +35 -0
- package/dist/lib/utils/fee-calculations.d.ts.map +1 -0
- package/dist/lib/utils/fee-calculations.js +81 -0
- package/dist/lib/utils/footer-nav-defaults.d.ts +11 -0
- package/dist/lib/utils/footer-nav-defaults.d.ts.map +1 -0
- package/dist/lib/utils/footer-nav-defaults.js +67 -0
- package/dist/lib/utils/idempotency-key.d.ts +15 -0
- package/dist/lib/utils/idempotency-key.d.ts.map +1 -0
- package/dist/lib/utils/idempotency-key.js +22 -0
- package/dist/lib/utils/index.d.ts +45 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +197 -0
- package/dist/lib/utils/mobile-editor.d.ts +13 -0
- package/dist/lib/utils/mobile-editor.d.ts.map +1 -0
- package/dist/lib/utils/mobile-editor.js +34 -0
- package/dist/lib/utils/phone-format.d.ts +6 -0
- package/dist/lib/utils/phone-format.d.ts.map +1 -0
- package/dist/lib/utils/phone-format.js +17 -0
- package/dist/lib/utils/product-catalog.d.ts +11 -0
- package/dist/lib/utils/product-catalog.d.ts.map +1 -0
- package/dist/lib/utils/product-catalog.js +40 -0
- package/dist/lib/utils/product-images.d.ts +20 -0
- package/dist/lib/utils/product-images.d.ts.map +1 -0
- package/dist/lib/utils/product-images.js +31 -0
- package/dist/lib/utils/product-share.d.ts +17 -0
- package/dist/lib/utils/product-share.d.ts.map +1 -0
- package/dist/lib/utils/product-share.js +48 -0
- package/dist/lib/utils/scroll-to-top.util.d.ts +9 -0
- package/dist/lib/utils/scroll-to-top.util.d.ts.map +1 -0
- package/dist/lib/utils/scroll-to-top.util.js +18 -0
- package/dist/lib/utils/url-helpers.d.ts +30 -0
- package/dist/lib/utils/url-helpers.d.ts.map +1 -0
- package/dist/lib/utils/url-helpers.js +61 -0
- package/dist/lib/utils/video-helpers.d.ts +32 -0
- package/dist/lib/utils/video-helpers.d.ts.map +1 -0
- package/dist/lib/utils/video-helpers.js +210 -0
- package/dist/preview/LayoutPreview.d.ts +14 -0
- package/dist/preview/LayoutPreview.d.ts.map +1 -0
- package/dist/preview/LayoutPreview.js +122 -0
- package/dist/preview/PreviewRouter.d.ts +9 -0
- package/dist/preview/PreviewRouter.d.ts.map +1 -0
- package/dist/preview/PreviewRouter.js +332 -0
- package/dist/preview/ShadowDOMWrapper.d.ts +18 -0
- package/dist/preview/ShadowDOMWrapper.d.ts.map +1 -0
- package/dist/preview/ShadowDOMWrapper.js +80 -0
- package/dist/preview/canvas/PreviewBlockToolbar.d.ts +23 -0
- package/dist/preview/canvas/PreviewBlockToolbar.d.ts.map +1 -0
- package/dist/preview/canvas/PreviewBlockToolbar.js +113 -0
- package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts +17 -0
- package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts.map +1 -0
- package/dist/preview/canvas/PreviewCanvasEnhancer.js +741 -0
- package/dist/preview/canvas/PreviewCanvasStyles.d.ts +4 -0
- package/dist/preview/canvas/PreviewCanvasStyles.d.ts.map +1 -0
- package/dist/preview/canvas/PreviewCanvasStyles.js +51 -0
- package/dist/preview/canvas/extract-editable-plain-text.d.ts +11 -0
- package/dist/preview/canvas/extract-editable-plain-text.d.ts.map +1 -0
- package/dist/preview/canvas/extract-editable-plain-text.js +65 -0
- package/dist/preview/canvas/field-key.d.ts +34 -0
- package/dist/preview/canvas/field-key.d.ts.map +1 -0
- package/dist/preview/canvas/field-key.js +62 -0
- package/dist/preview/canvas/preview-editable-commit.util.d.ts +3 -0
- package/dist/preview/canvas/preview-editable-commit.util.d.ts.map +1 -0
- package/dist/preview/canvas/preview-editable-commit.util.js +11 -0
- package/dist/preview/canvas/preview-flush-await.d.ts +6 -0
- package/dist/preview/canvas/preview-flush-await.d.ts.map +1 -0
- package/dist/preview/canvas/preview-flush-await.js +23 -0
- package/dist/preview/canvas/preview-flush-handle.d.ts +13 -0
- package/dist/preview/canvas/preview-flush-handle.d.ts.map +1 -0
- package/dist/preview/canvas/preview-flush-handle.js +3 -0
- package/dist/preview/canvas/preview-isolation.d.ts +9 -0
- package/dist/preview/canvas/preview-isolation.d.ts.map +1 -0
- package/dist/preview/canvas/preview-isolation.js +10 -0
- package/dist/preview/canvas/preview-messages.d.ts +65 -0
- package/dist/preview/canvas/preview-messages.d.ts.map +1 -0
- package/dist/preview/canvas/preview-messages.js +17 -0
- package/dist/preview/canvas/preview-route.d.ts +4 -0
- package/dist/preview/canvas/preview-route.d.ts.map +1 -0
- package/dist/preview/canvas/preview-route.js +76 -0
- package/dist/preview/index.d.ts +13 -0
- package/dist/preview/index.d.ts.map +1 -0
- package/dist/preview/index.js +12 -0
- package/dist/preview/route-audit.d.ts +17 -0
- package/dist/preview/route-audit.d.ts.map +1 -0
- package/dist/preview/route-audit.js +54 -0
- package/dist/styles/index.css +10598 -0
- package/dist/utils/date.d.ts +20 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +47 -0
- package/package.json +192 -0
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import Link from 'next/link';
|
|
4
|
+
import Image from 'next/image';
|
|
5
|
+
import { useSearchParams, useRouter } from 'next/navigation';
|
|
6
|
+
import { Store, User as UserIcon, Package, Settings, LogOut, Heart, Bell, Edit2, Check, Trash2, Lock, Calendar, Clock, Loader2, X, Camera, Truck } from 'lucide-react';
|
|
7
|
+
import { Button } from '../../../components/ui/button.js';
|
|
8
|
+
import { AvatarImage } from '../../../components/ui/avatar-image.js';
|
|
9
|
+
import { useState, useEffect } from 'react';
|
|
10
|
+
import { useAuth } from '../../../lib/auth-context.js';
|
|
11
|
+
import { getStoreHomeUrl } from '../../../lib/layout-route-utils.js';
|
|
12
|
+
import { cn, formatCurrency } from '../../../lib/utils/index.js';
|
|
13
|
+
// Note: orderService and wishlistService removed - these pages are shared and not editable in the editor
|
|
14
|
+
// Using StoreContext for wishlist functionality instead
|
|
15
|
+
import { bookingService } from '../../../lib/services/booking.service.js';
|
|
16
|
+
import { customerService } from '../../../lib/services/customer.service.js';
|
|
17
|
+
import { useStore } from '../../../lib/store-context.js';
|
|
18
|
+
import { useToast } from '../../../components/ui/toast.js';
|
|
19
|
+
import { useLoading } from '../../../lib/loading-context.js';
|
|
20
|
+
import { formatDateSafe, getCurrentYear } from '../../../utils/date.js';
|
|
21
|
+
export function AccountPage({ storeConfig }) {
|
|
22
|
+
const { user, isAuthenticated, isLoading, logout, updateUserState, openLogin } = useAuth();
|
|
23
|
+
const { wishlist, toggleWishlist } = useStore();
|
|
24
|
+
const searchParams = useSearchParams();
|
|
25
|
+
const router = useRouter();
|
|
26
|
+
const { addToast } = useToast();
|
|
27
|
+
const { startBackendLoading, stopBackendLoading } = useLoading();
|
|
28
|
+
const tabParam = searchParams.get('tab');
|
|
29
|
+
const [activeTab, setActiveTab] = useState(tabParam || 'profile');
|
|
30
|
+
const [isEditingProfile, setIsEditingProfile] = useState(false);
|
|
31
|
+
const [isLoadingData, setIsLoadingData] = useState(false);
|
|
32
|
+
const [orders, setOrders] = useState([]);
|
|
33
|
+
const [bookings, setBookings] = useState([]);
|
|
34
|
+
const [wishlistItems, setWishlistItems] = useState([]);
|
|
35
|
+
// Update active tab if URL param changes
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (tabParam && tabParam !== activeTab) {
|
|
38
|
+
setActiveTab(tabParam);
|
|
39
|
+
}
|
|
40
|
+
}, [tabParam, activeTab]);
|
|
41
|
+
// Open in-store login sheet when not authenticated
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (!isLoading && !isAuthenticated) {
|
|
44
|
+
const returnUrl = storeConfig ? `/${storeConfig.slug}/account` : '/account';
|
|
45
|
+
openLogin({ callbackUrl: returnUrl });
|
|
46
|
+
}
|
|
47
|
+
}, [isLoading, isAuthenticated, openLogin, storeConfig]);
|
|
48
|
+
const [isChangingPassword, setIsChangingPassword] = useState(false);
|
|
49
|
+
const [isSavingProfile, setIsSavingProfile] = useState(false);
|
|
50
|
+
const [avatarPreview, setAvatarPreview] = useState(null);
|
|
51
|
+
const [avatarFile, setAvatarFile] = useState(null);
|
|
52
|
+
const [profileData, setProfileData] = useState({
|
|
53
|
+
firstName: '',
|
|
54
|
+
lastName: '',
|
|
55
|
+
email: '',
|
|
56
|
+
phone: '',
|
|
57
|
+
address: '',
|
|
58
|
+
city: '',
|
|
59
|
+
state: '',
|
|
60
|
+
zipCode: '',
|
|
61
|
+
country: ''
|
|
62
|
+
});
|
|
63
|
+
// Load user profile data
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (user) {
|
|
66
|
+
// Parse address with error handling
|
|
67
|
+
let addressObj = {};
|
|
68
|
+
try {
|
|
69
|
+
if (typeof user.address === 'string') {
|
|
70
|
+
// Try to parse as JSON if it's a string
|
|
71
|
+
if (user.address && user.address.trim()) {
|
|
72
|
+
try {
|
|
73
|
+
addressObj = JSON.parse(user.address);
|
|
74
|
+
}
|
|
75
|
+
catch (parseError) {
|
|
76
|
+
// If JSON parsing fails, treat as plain string
|
|
77
|
+
console.warn('Failed to parse address as JSON, treating as plain string:', parseError);
|
|
78
|
+
addressObj = { address: user.address };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (user.address && typeof user.address === 'object') {
|
|
83
|
+
// Already an object
|
|
84
|
+
addressObj = user.address;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error('Error processing address data:', error);
|
|
89
|
+
// Continue with empty address object
|
|
90
|
+
addressObj = {};
|
|
91
|
+
}
|
|
92
|
+
// Safely set profile data with validation
|
|
93
|
+
setProfileData({
|
|
94
|
+
firstName: user.firstName || '',
|
|
95
|
+
lastName: user.lastName || '',
|
|
96
|
+
email: user.email || '',
|
|
97
|
+
phone: user.phone || '',
|
|
98
|
+
address: addressObj.address1 || addressObj.address || addressObj.street || '',
|
|
99
|
+
city: addressObj.city || user.city || '',
|
|
100
|
+
state: addressObj.state || user.state || '',
|
|
101
|
+
zipCode: addressObj.zipCode || user.zipCode || '',
|
|
102
|
+
country: addressObj.country || user.country || ''
|
|
103
|
+
});
|
|
104
|
+
// Set avatar preview - always sync with user avatar
|
|
105
|
+
setAvatarPreview(user.avatar || null);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
// If user is null, clear avatar preview
|
|
109
|
+
setAvatarPreview(null);
|
|
110
|
+
}
|
|
111
|
+
}, [user]);
|
|
112
|
+
// Fetch orders, bookings, and wishlist when authenticated
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
if (isAuthenticated && !isLoading) {
|
|
115
|
+
const fetchData = async () => {
|
|
116
|
+
setIsLoadingData(true);
|
|
117
|
+
startBackendLoading();
|
|
118
|
+
try {
|
|
119
|
+
// Note: orderService removed - orders not available in editor preview
|
|
120
|
+
// In production, orders would be fetched from the backend API
|
|
121
|
+
setOrders([]);
|
|
122
|
+
// Fetch bookings
|
|
123
|
+
try {
|
|
124
|
+
const bookingsData = await bookingService.getBookings();
|
|
125
|
+
setBookings(bookingsData);
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
console.error('Failed to fetch bookings:', error);
|
|
129
|
+
setBookings([]);
|
|
130
|
+
}
|
|
131
|
+
// Use wishlist from StoreContext (localStorage-based)
|
|
132
|
+
// Note: wishlistService removed - using StoreContext instead
|
|
133
|
+
if (wishlist && storeConfig?.products) {
|
|
134
|
+
const items = wishlist
|
|
135
|
+
.map(productId => {
|
|
136
|
+
const product = storeConfig.products?.find(p => p.id === productId);
|
|
137
|
+
return product ? { id: productId, productId, product } : null;
|
|
138
|
+
})
|
|
139
|
+
.filter((item) => item !== null);
|
|
140
|
+
setWishlistItems(items);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
setWishlistItems([]);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
console.error('Failed to fetch account data:', error);
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
setIsLoadingData(false);
|
|
151
|
+
stopBackendLoading();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
fetchData();
|
|
155
|
+
}
|
|
156
|
+
}, [isAuthenticated, isLoading, startBackendLoading, stopBackendLoading]);
|
|
157
|
+
const [passwordData, setPasswordData] = useState({
|
|
158
|
+
current: '',
|
|
159
|
+
new: '',
|
|
160
|
+
confirm: ''
|
|
161
|
+
});
|
|
162
|
+
// Mock Notifications
|
|
163
|
+
// const [notifications, setNotifications] = useState({
|
|
164
|
+
// orderUpdates: true,
|
|
165
|
+
// promotions: false,
|
|
166
|
+
// newArrivals: true
|
|
167
|
+
// });
|
|
168
|
+
const handleAvatarChange = (e) => {
|
|
169
|
+
const file = e.target.files?.[0];
|
|
170
|
+
if (file) {
|
|
171
|
+
// Validate file type - must match backend allowed MIME types
|
|
172
|
+
const allowedMimes = ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp'];
|
|
173
|
+
if (!allowedMimes.includes(file.type)) {
|
|
174
|
+
addToast('Invalid file type. Only JPEG, PNG, GIF, and WebP images are allowed.', 'error');
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// Validate file size (5MB) - must match backend limit
|
|
178
|
+
const maxSize = 5 * 1024 * 1024; // 5MB
|
|
179
|
+
if (file.size > maxSize) {
|
|
180
|
+
addToast('File size must be less than 5MB', 'error');
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
setAvatarFile(file);
|
|
184
|
+
// Create preview
|
|
185
|
+
const reader = new FileReader();
|
|
186
|
+
reader.onloadend = () => {
|
|
187
|
+
setAvatarPreview(reader.result);
|
|
188
|
+
};
|
|
189
|
+
reader.readAsDataURL(file);
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const handleRemoveAvatar = () => {
|
|
193
|
+
setAvatarFile(null);
|
|
194
|
+
setAvatarPreview(user?.avatar || null);
|
|
195
|
+
};
|
|
196
|
+
const handleProfileSave = async (e) => {
|
|
197
|
+
e.preventDefault();
|
|
198
|
+
// Validation
|
|
199
|
+
if (!profileData.firstName.trim()) {
|
|
200
|
+
addToast('First name is required', 'error');
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (!profileData.lastName.trim()) {
|
|
204
|
+
addToast('Last name is required', 'error');
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
setIsSavingProfile(true);
|
|
208
|
+
startBackendLoading();
|
|
209
|
+
try {
|
|
210
|
+
// Create FormData if avatar is being uploaded, otherwise use JSON
|
|
211
|
+
const hasAvatar = avatarFile !== null;
|
|
212
|
+
const hasAddress = profileData.address || profileData.city || profileData.state || profileData.zipCode || profileData.country;
|
|
213
|
+
let updatedUser;
|
|
214
|
+
if (hasAvatar) {
|
|
215
|
+
// Use FormData for file upload
|
|
216
|
+
const formData = new FormData();
|
|
217
|
+
formData.append('firstName', profileData.firstName);
|
|
218
|
+
formData.append('lastName', profileData.lastName);
|
|
219
|
+
// Always append phone, even if empty (backend will handle null)
|
|
220
|
+
formData.append('phone', profileData.phone || '');
|
|
221
|
+
formData.append('avatar', avatarFile);
|
|
222
|
+
// Add address fields if provided
|
|
223
|
+
if (hasAddress) {
|
|
224
|
+
formData.append('address1', profileData.address || '');
|
|
225
|
+
formData.append('city', profileData.city || '');
|
|
226
|
+
formData.append('state', profileData.state || '');
|
|
227
|
+
formData.append('zipCode', profileData.zipCode || '');
|
|
228
|
+
formData.append('country', profileData.country || '');
|
|
229
|
+
}
|
|
230
|
+
// Update profile with FormData
|
|
231
|
+
updatedUser = await customerService.updateProfile(formData);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// Use regular JSON update
|
|
235
|
+
const addressData = hasAddress ? {
|
|
236
|
+
address1: profileData.address || '',
|
|
237
|
+
city: profileData.city || '',
|
|
238
|
+
state: profileData.state || '',
|
|
239
|
+
zipCode: profileData.zipCode || '',
|
|
240
|
+
country: profileData.country || ''
|
|
241
|
+
} : undefined;
|
|
242
|
+
const updateData = {
|
|
243
|
+
firstName: profileData.firstName,
|
|
244
|
+
lastName: profileData.lastName,
|
|
245
|
+
phone: profileData.phone,
|
|
246
|
+
};
|
|
247
|
+
if (addressData) {
|
|
248
|
+
updateData.address = JSON.stringify(addressData);
|
|
249
|
+
}
|
|
250
|
+
updatedUser = await customerService.updateProfile(updateData);
|
|
251
|
+
}
|
|
252
|
+
// Validate API response - ensure all required fields exist
|
|
253
|
+
if (!updatedUser) {
|
|
254
|
+
throw new Error('Invalid response from server: no user data received');
|
|
255
|
+
}
|
|
256
|
+
if (!updatedUser.id) {
|
|
257
|
+
throw new Error('Invalid response from server: missing user ID');
|
|
258
|
+
}
|
|
259
|
+
if (!updatedUser.email) {
|
|
260
|
+
throw new Error('Invalid response from server: missing email');
|
|
261
|
+
}
|
|
262
|
+
if (!updatedUser.firstName) {
|
|
263
|
+
throw new Error('Invalid response from server: missing first name');
|
|
264
|
+
}
|
|
265
|
+
if (!updatedUser.lastName) {
|
|
266
|
+
throw new Error('Invalid response from server: missing last name');
|
|
267
|
+
}
|
|
268
|
+
// Parse address data with error handling
|
|
269
|
+
let addressObj = {};
|
|
270
|
+
try {
|
|
271
|
+
const addressData = updatedUser.address || {};
|
|
272
|
+
if (typeof addressData === 'string') {
|
|
273
|
+
if (addressData && addressData.trim()) {
|
|
274
|
+
try {
|
|
275
|
+
addressObj = JSON.parse(addressData);
|
|
276
|
+
}
|
|
277
|
+
catch (parseError) {
|
|
278
|
+
// If JSON parsing fails, treat as plain string
|
|
279
|
+
console.warn('Failed to parse address as JSON, treating as plain string:', parseError);
|
|
280
|
+
addressObj = { address: addressData };
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else if (addressData && typeof addressData === 'object') {
|
|
285
|
+
addressObj = addressData;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (parseError) {
|
|
289
|
+
console.error('Error processing address data:', parseError);
|
|
290
|
+
// Continue with empty address object if parsing fails
|
|
291
|
+
addressObj = {};
|
|
292
|
+
}
|
|
293
|
+
// Build updated user object for auth context with validated data
|
|
294
|
+
const updatedUserData = {
|
|
295
|
+
id: updatedUser.id,
|
|
296
|
+
firstName: updatedUser.firstName,
|
|
297
|
+
lastName: updatedUser.lastName,
|
|
298
|
+
email: updatedUser.email,
|
|
299
|
+
phone: updatedUser.phone || undefined,
|
|
300
|
+
avatar: updatedUser.avatar || user?.avatar || undefined, // Preserve existing avatar if not updated
|
|
301
|
+
address: addressObj.address1 || addressObj.address || addressObj.street || '',
|
|
302
|
+
city: addressObj.city || '',
|
|
303
|
+
state: addressObj.state || '',
|
|
304
|
+
zipCode: addressObj.zipCode || '',
|
|
305
|
+
country: addressObj.country || '',
|
|
306
|
+
createdAt: user?.createdAt || updatedUser.createdAt // Preserve createdAt
|
|
307
|
+
};
|
|
308
|
+
// Validate the user object before updating state
|
|
309
|
+
if (!updatedUserData.id || !updatedUserData.firstName || !updatedUserData.lastName || !updatedUserData.email) {
|
|
310
|
+
throw new Error('Invalid user data: missing required fields');
|
|
311
|
+
}
|
|
312
|
+
// Update auth context state without triggering isLoading
|
|
313
|
+
try {
|
|
314
|
+
updateUserState(updatedUserData);
|
|
315
|
+
}
|
|
316
|
+
catch (stateError) {
|
|
317
|
+
console.error('Error updating user state:', stateError);
|
|
318
|
+
throw new Error('Failed to update user state');
|
|
319
|
+
}
|
|
320
|
+
// Update local profile data to reflect changes with defensive checks
|
|
321
|
+
try {
|
|
322
|
+
setProfileData({
|
|
323
|
+
firstName: updatedUserData.firstName || '',
|
|
324
|
+
lastName: updatedUserData.lastName || '',
|
|
325
|
+
email: updatedUserData.email || '',
|
|
326
|
+
phone: updatedUserData.phone || '',
|
|
327
|
+
address: updatedUserData.address || '',
|
|
328
|
+
city: updatedUserData.city || '',
|
|
329
|
+
state: updatedUserData.state || '',
|
|
330
|
+
zipCode: updatedUserData.zipCode || '',
|
|
331
|
+
country: updatedUserData.country || ''
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
catch (profileDataError) {
|
|
335
|
+
console.error('Error updating profile data:', profileDataError);
|
|
336
|
+
// Don't throw - profile data update failure shouldn't break the flow
|
|
337
|
+
}
|
|
338
|
+
// Update avatar preview if avatar was updated
|
|
339
|
+
if (updatedUser.avatar) {
|
|
340
|
+
setAvatarPreview(updatedUser.avatar);
|
|
341
|
+
}
|
|
342
|
+
else if (!hasAvatar && user?.avatar) {
|
|
343
|
+
// If no new avatar was uploaded, keep the existing one
|
|
344
|
+
setAvatarPreview(user.avatar);
|
|
345
|
+
}
|
|
346
|
+
// Reset avatar file
|
|
347
|
+
setAvatarFile(null);
|
|
348
|
+
// Show success message and exit edit mode
|
|
349
|
+
addToast('Profile updated successfully', 'success');
|
|
350
|
+
setIsEditingProfile(false);
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
console.error('Profile update error:', error);
|
|
354
|
+
let errorMessage = 'Failed to update profile';
|
|
355
|
+
if (error instanceof Error) {
|
|
356
|
+
errorMessage = error.message;
|
|
357
|
+
}
|
|
358
|
+
else if (typeof error === 'object' && error !== null && 'message' in error) {
|
|
359
|
+
errorMessage = String(error.message);
|
|
360
|
+
}
|
|
361
|
+
addToast(errorMessage, 'error');
|
|
362
|
+
}
|
|
363
|
+
finally {
|
|
364
|
+
setIsSavingProfile(false);
|
|
365
|
+
stopBackendLoading();
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
const handlePasswordChange = async (e) => {
|
|
369
|
+
e.preventDefault();
|
|
370
|
+
if (passwordData.new !== passwordData.confirm) {
|
|
371
|
+
addToast('New passwords do not match', 'error');
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
if (passwordData.new.length < 8) {
|
|
375
|
+
addToast('Password must be at least 8 characters', 'error');
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
// TODO: Implement password change API endpoint
|
|
380
|
+
// For now, redirect to forgot password flow
|
|
381
|
+
addToast('Password change feature coming soon. Please use "Forgot Password" to reset your password.', 'info');
|
|
382
|
+
setIsChangingPassword(false);
|
|
383
|
+
setPasswordData({ current: '', new: '', confirm: '' });
|
|
384
|
+
}
|
|
385
|
+
catch (error) {
|
|
386
|
+
const errorMessage = error instanceof Error ? error.message : 'Failed to change password';
|
|
387
|
+
addToast(errorMessage, 'error');
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
// Determine primary color if store config is present, otherwise default to black/blue
|
|
391
|
+
const primaryColor = storeConfig?.branding?.primaryColor || '#000000';
|
|
392
|
+
if (isLoading) {
|
|
393
|
+
return (_jsx("div", { className: "min-h-screen flex items-center justify-center bg-gray-50", children: _jsx(Loader2, { className: "w-8 h-8 animate-spin text-gray-400" }) }));
|
|
394
|
+
}
|
|
395
|
+
if (!isAuthenticated) {
|
|
396
|
+
return null; // Login sheet opened via useEffect
|
|
397
|
+
}
|
|
398
|
+
return (_jsxs("div", { className: "min-h-screen bg-gray-50", children: [!storeConfig && (_jsx("header", { className: "bg-white border-b border-gray-200 sticky top-0 z-50", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "flex items-center justify-between h-16", children: [_jsxs(Link, { href: "/", className: "flex items-center gap-2 group", children: [_jsx("div", { className: "w-8 h-8 bg-black rounded-lg flex items-center justify-center text-white", children: _jsx(Store, { className: "w-5 h-5" }) }), _jsx("span", { className: "text-xl font-bold tracking-tight text-gray-900", children: "Storefront" })] }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("span", { className: "text-sm font-medium text-gray-700 hidden sm:block", children: [user?.firstName, " ", user?.lastName] }), _jsx("div", { className: "w-9 h-9 rounded-full bg-gray-200 overflow-hidden ring-2 ring-gray-100", children: _jsx(AvatarImage, { src: user?.avatar, alt: "Profile", size: 36, className: "rounded-full" }) })] })] }) }) })), _jsx("div", { className: cn("container mx-auto px-4 sm:px-6 lg:px-8 py-8", storeConfig ? "pt-24" : ""), children: _jsxs("div", { className: "flex flex-col lg:flex-row gap-8", children: [_jsx("div", { className: "w-full lg:w-72 flex-shrink-0", children: _jsxs("div", { className: "bg-white rounded-2xl shadow-sm border border-gray-100 p-4 sticky top-24", children: [_jsxs("div", { className: "mb-6 px-4 pt-4 text-center", children: [_jsx("div", { className: "w-20 h-20 mx-auto rounded-full bg-gray-100 mb-3 overflow-hidden", children: _jsx(AvatarImage, { src: user?.avatar, alt: "Profile", size: 80, className: "rounded-full" }) }), _jsxs("h3", { className: "font-bold text-gray-900", children: [user?.firstName, " ", user?.lastName] }), _jsxs("p", { className: "text-sm text-gray-500", children: ["Member since ", user?.createdAt
|
|
399
|
+
? new Date(user.createdAt).getFullYear()
|
|
400
|
+
: getCurrentYear()] })] }), _jsxs("nav", { className: "space-y-1", children: [[
|
|
401
|
+
{ id: 'profile', label: 'My Profile', icon: UserIcon },
|
|
402
|
+
{ id: 'orders', label: 'Orders', icon: Package },
|
|
403
|
+
{ id: 'bookings', label: 'My Bookings', icon: Calendar },
|
|
404
|
+
{ id: 'wishlist', label: 'Wishlist', icon: Heart },
|
|
405
|
+
// { id: 'payment', label: 'Payment Methods', icon: CreditCard }, // Hidden for now
|
|
406
|
+
{ id: 'notifications', label: 'Notifications', icon: Bell },
|
|
407
|
+
{ id: 'settings', label: 'Settings', icon: Settings },
|
|
408
|
+
].map((item) => (_jsxs("button", { onClick: () => setActiveTab(item.id), className: `w-full flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium transition-colors ${activeTab === item.id
|
|
409
|
+
? 'bg-black text-white shadow-md shadow-black/10'
|
|
410
|
+
: 'text-gray-600 hover:bg-gray-50'}`, style: activeTab === item.id && storeConfig ? { backgroundColor: primaryColor } : {}, children: [_jsx(item.icon, { className: "w-4.5 h-4.5" }), item.label] }, item.id))), _jsx("div", { className: "pt-4 mt-4 border-t border-gray-100", children: _jsxs("button", { onClick: () => logout(storeConfig?.slug ? getStoreHomeUrl(storeConfig.slug) : '/'), className: "w-full flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium text-red-600 hover:bg-red-50 transition-colors", children: [_jsx(LogOut, { className: "w-4.5 h-4.5" }), "Sign Out"] }) })] })] }) }), _jsx("div", { className: "flex-1 min-w-0", children: _jsxs("div", { className: "bg-white rounded-2xl shadow-sm border border-gray-100 min-h-[600px] p-6 sm:p-8", children: [activeTab === 'profile' && (_jsxs("div", { className: "space-y-8 animate-fade-in", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "My Profile" }), !isEditingProfile && (_jsxs(Button, { variant: "outline", size: "sm", onClick: () => setIsEditingProfile(true), className: "gap-2", children: [_jsx(Edit2, { className: "w-4 h-4" }), " Edit Profile"] }))] }), _jsxs("form", { onSubmit: handleProfileSave, className: "space-y-8", children: [_jsxs("div", { className: "flex items-center gap-6 pb-6 border-b border-gray-100", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "w-24 h-24 rounded-full bg-gray-100 overflow-hidden border-2 border-gray-200", children: avatarPreview ? (_jsx(AvatarImage, { src: avatarPreview, alt: "Profile", size: 96, className: "rounded-full" })) : (_jsx(AvatarImage, { src: user?.avatar, alt: "Profile", size: 96, className: "rounded-full" })) }), isEditingProfile && (_jsx("div", { className: "absolute bottom-0 right-0", children: _jsxs("label", { className: "cursor-pointer", children: [_jsx("div", { className: "w-8 h-8 rounded-full bg-black flex items-center justify-center text-white hover:bg-gray-800 transition-colors shadow-lg", style: storeConfig ? { backgroundColor: primaryColor } : {}, children: _jsx(Camera, { className: "w-4 h-4" }) }), _jsx("input", { type: "file", accept: "image/jpeg,image/jpg,image/png,image/gif,image/webp", onChange: handleAvatarChange, className: "hidden" })] }) }))] }), _jsxs("div", { className: "flex-1", children: [_jsx("h3", { className: "font-bold text-gray-900 mb-1", children: "Profile Photo" }), _jsx("p", { className: "text-sm text-gray-500 mb-3", children: "Upload a new profile picture. JPG, PNG, GIF, or WebP. Max size 5MB." }), isEditingProfile && avatarFile && (_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: handleRemoveAvatar, className: "gap-2 text-red-600 hover:text-red-700 hover:bg-red-50", children: [_jsx(X, { className: "w-4 h-4" }), " Remove Photo"] }))] })] }), _jsxs("div", { children: [_jsx("h3", { className: "text-lg font-bold text-gray-900 mb-4", children: "Personal Information" }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: "text-sm font-semibold text-gray-700", children: ["First Name ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { type: "text", value: profileData.firstName || '', onChange: (e) => setProfileData({ ...profileData, firstName: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, required: true, className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
411
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
412
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: "text-sm font-semibold text-gray-700", children: ["Last Name ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { type: "text", value: profileData.lastName || '', onChange: (e) => setProfileData({ ...profileData, lastName: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, required: true, className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
413
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
414
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "Email" }), _jsx("input", { type: "email", value: profileData.email, readOnly: true, className: "w-full px-4 py-2.5 rounded-lg border border-gray-200 bg-gray-50 text-gray-500 cursor-not-allowed focus:outline-none" }), _jsx("p", { className: "text-xs text-gray-400", children: "Email cannot be changed" })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "Phone" }), _jsx("input", { type: "tel", value: profileData.phone || '', onChange: (e) => setProfileData({ ...profileData, phone: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, placeholder: "+1 (555) 000-0000", className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
415
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
416
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "text-lg font-bold text-gray-900 mb-4", children: "Address Information" }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { className: "space-y-2 md:col-span-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "Street Address" }), _jsx("input", { type: "text", value: profileData.address || '', onChange: (e) => setProfileData({ ...profileData, address: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, placeholder: "123 Main Street", className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
417
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
418
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "City" }), _jsx("input", { type: "text", value: profileData.city || '', onChange: (e) => setProfileData({ ...profileData, city: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, placeholder: "New York", className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
419
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
420
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "State/Province" }), _jsx("input", { type: "text", value: profileData.state || '', onChange: (e) => setProfileData({ ...profileData, state: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, placeholder: "NY", className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
421
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
422
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "ZIP/Postal Code" }), _jsx("input", { type: "text", value: profileData.zipCode || '', onChange: (e) => setProfileData({ ...profileData, zipCode: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, placeholder: "10001", className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
423
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
424
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "Country" }), _jsx("input", { type: "text", value: profileData.country || '', onChange: (e) => setProfileData({ ...profileData, country: e.target.value }), disabled: !isEditingProfile, readOnly: !isEditingProfile, placeholder: "United States", className: cn("w-full px-4 py-2.5 rounded-lg border border-gray-200 focus:outline-none transition-all", isEditingProfile
|
|
425
|
+
? "bg-white text-gray-900 cursor-text focus:border-black focus:ring-0"
|
|
426
|
+
: "bg-gray-50 text-gray-500 cursor-not-allowed") })] })] })] }), isEditingProfile && (_jsxs("div", { className: "flex justify-end gap-3 pt-4 border-t border-gray-100", children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => {
|
|
427
|
+
setIsEditingProfile(false);
|
|
428
|
+
setAvatarFile(null);
|
|
429
|
+
setAvatarPreview(user?.avatar || null);
|
|
430
|
+
// Reset form data
|
|
431
|
+
if (user) {
|
|
432
|
+
const addressObj = typeof user.address === 'string'
|
|
433
|
+
? (user.address ? JSON.parse(user.address) : {})
|
|
434
|
+
: (user.address || {});
|
|
435
|
+
setProfileData({
|
|
436
|
+
firstName: user.firstName || '',
|
|
437
|
+
lastName: user.lastName || '',
|
|
438
|
+
email: user.email || '',
|
|
439
|
+
phone: user.phone || '',
|
|
440
|
+
address: addressObj.address1 || addressObj.address || addressObj.street || '',
|
|
441
|
+
city: addressObj.city || user.city || '',
|
|
442
|
+
state: addressObj.state || '',
|
|
443
|
+
zipCode: addressObj.zipCode || '',
|
|
444
|
+
country: addressObj.country || user.country || ''
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
}, disabled: isSavingProfile, children: "Cancel" }), _jsx(Button, { type: "submit", className: "bg-black text-white gap-2 min-w-[120px]", style: storeConfig ? { backgroundColor: primaryColor } : {}, disabled: isSavingProfile, children: isSavingProfile ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "w-4 h-4 animate-spin" }), " Saving..."] })) : (_jsxs(_Fragment, { children: [_jsx(Check, { className: "w-4 h-4" }), " Save Changes"] })) })] }))] })] })), activeTab === 'orders' && (_jsxs("div", { className: "space-y-6 animate-fade-in", children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Order History" }), isLoadingData ? (_jsx("div", { className: "flex items-center justify-center py-12", children: _jsx(Loader2, { className: "w-8 h-8 animate-spin text-gray-400" }) })) : orders.length === 0 ? (_jsxs("div", { className: "text-center py-12", children: [_jsx("div", { className: "w-16 h-16 bg-gray-50 rounded-full flex items-center justify-center mx-auto mb-4", children: _jsx(Package, { className: "w-8 h-8 text-gray-300" }) }), _jsx("h3", { className: "text-lg font-medium text-gray-900", children: "No orders yet" }), _jsx("p", { className: "text-gray-500 mt-2", children: "Start shopping to see your orders here" })] })) : (_jsx("div", { className: "space-y-6", children: orders.map((order, orderIndex) => {
|
|
448
|
+
// Tracking number equals order number, so use order number for tracking
|
|
449
|
+
const trackingId = order.orderNumber;
|
|
450
|
+
// Create visual distinction for each order container
|
|
451
|
+
const isEven = orderIndex % 2 === 0;
|
|
452
|
+
return (_jsxs("div", { className: `
|
|
453
|
+
border rounded-xl p-4 transition-all relative overflow-hidden
|
|
454
|
+
${isEven
|
|
455
|
+
? 'border-gray-200 bg-white shadow-sm'
|
|
456
|
+
: 'border-gray-100 bg-gray-50/50'}
|
|
457
|
+
hover:border-gray-300 hover:shadow-md
|
|
458
|
+
before:absolute before:left-0 before:top-0 before:bottom-0 before:w-0.5 before:bg-gray-300
|
|
459
|
+
`, children: [_jsxs("div", { className: "flex items-start justify-between gap-4 mb-3", children: [_jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx(Package, { className: `w-4 h-4 flex-shrink-0 ${order.status === 'delivered' ? 'text-green-600' :
|
|
460
|
+
order.status === 'pending' ? 'text-yellow-600' :
|
|
461
|
+
order.status === 'cancelled' ? 'text-red-600' :
|
|
462
|
+
'text-blue-600'}` }), _jsxs("p", { className: "font-bold text-gray-900 text-base", children: ["Order #", order.orderNumber] }), _jsx("span", { className: `px-2 py-0.5 text-xs font-semibold rounded-full ${order.status === 'delivered' ? 'bg-green-50 text-green-700 border border-green-200' :
|
|
463
|
+
order.status === 'pending' ? 'bg-yellow-50 text-yellow-700 border border-yellow-200' :
|
|
464
|
+
order.status === 'cancelled' ? 'bg-red-50 text-red-700 border border-red-200' :
|
|
465
|
+
'bg-blue-50 text-blue-700 border border-blue-200'}`, children: order.status.charAt(0).toUpperCase() + order.status.slice(1) })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-gray-500", children: [_jsx("span", { children: formatDateSafe(order.createdAt, undefined, {
|
|
466
|
+
year: 'numeric',
|
|
467
|
+
month: 'short',
|
|
468
|
+
day: 'numeric'
|
|
469
|
+
}) }), order.paymentStatus && (_jsxs("span", { className: "flex items-center gap-1", children: [_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-gray-400" }), order.paymentStatus.charAt(0).toUpperCase() + order.paymentStatus.slice(1)] }))] })] }), _jsx(Link, { href: storeConfig
|
|
470
|
+
? `/${storeConfig.slug}/track-order?orderNumber=${order.orderNumber}`
|
|
471
|
+
: `/track-order?orderNumber=${order.orderNumber}`, className: "flex-shrink-0", children: _jsxs(Button, { variant: "outline", size: "sm", className: "text-xs h-8 px-3 gap-1.5", children: [_jsx(Truck, { className: "w-3.5 h-3.5" }), "Track"] }) })] }), _jsx("div", { className: "space-y-2 mb-3", children: order.items?.map((item, idx) => {
|
|
472
|
+
// Extract product image from images array (backend returns images as array)
|
|
473
|
+
const productImage = item.product?.images
|
|
474
|
+
? (Array.isArray(item.product.images)
|
|
475
|
+
? (item.product.images[0]?.url || (typeof item.product.images[0] === 'string' ? item.product.images[0] : null))
|
|
476
|
+
: null)
|
|
477
|
+
: (item.product?.image || null); // Fallback for legacy single image field
|
|
478
|
+
// Use item.name if product name is not available (from order item)
|
|
479
|
+
const productName = item.product?.name || item.name || 'Product';
|
|
480
|
+
return (_jsxs("div", { className: "flex items-center gap-3 p-2.5 bg-gray-50 rounded-lg", children: [_jsx("div", { className: "w-12 h-12 bg-white rounded-md shadow-sm overflow-hidden flex-shrink-0 relative", children: productImage ? (_jsx(Image, { src: productImage, fill: true, className: "object-cover", alt: productName, unoptimized: true })) : (_jsx("div", { className: "w-full h-full flex items-center justify-center bg-gray-100", children: _jsx(Package, { className: "w-4 h-4 text-gray-400" }) })) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "font-semibold text-sm text-gray-900 truncate", children: productName }), _jsxs("p", { className: "text-xs text-gray-500", children: ["Qty: ", item.quantity] })] }), _jsx("div", { className: "text-right flex-shrink-0", children: (() => {
|
|
481
|
+
// Use item currency if available, otherwise use order currency, then store config, then USD
|
|
482
|
+
const itemCurrency = item.currency || order.currency || storeConfig?.settings?.currency || 'USD';
|
|
483
|
+
return (_jsx("p", { className: "font-bold text-sm text-gray-900", children: formatCurrency(item.price * item.quantity, itemCurrency) }));
|
|
484
|
+
})() })] }, item.id || idx));
|
|
485
|
+
}) }), _jsxs("div", { className: "pt-2.5 border-t border-gray-100 flex justify-between items-center", children: [_jsx("span", { className: "text-xs font-medium text-gray-500", children: "Total" }), (() => {
|
|
486
|
+
// Determine currency: extract from items if order currency is missing or inconsistent
|
|
487
|
+
let displayCurrency = order.currency || storeConfig?.settings?.currency || 'USD';
|
|
488
|
+
if (order.items && order.items.length > 0) {
|
|
489
|
+
const itemCurrencies = order.items
|
|
490
|
+
.map(item => item.currency)
|
|
491
|
+
.filter(Boolean);
|
|
492
|
+
if (itemCurrencies.length > 0) {
|
|
493
|
+
const currencyCounts = {};
|
|
494
|
+
itemCurrencies.forEach(curr => {
|
|
495
|
+
currencyCounts[curr] = (currencyCounts[curr] || 0) + 1;
|
|
496
|
+
});
|
|
497
|
+
const mostCommonCurrency = Object.entries(currencyCounts).reduce((a, b) => currencyCounts[a[0]] > currencyCounts[b[0]] ? a : b)[0];
|
|
498
|
+
// If all items have same currency, use it for totals
|
|
499
|
+
if (itemCurrencies.every(c => c === mostCommonCurrency)) {
|
|
500
|
+
displayCurrency = mostCommonCurrency;
|
|
501
|
+
}
|
|
502
|
+
else if (!order.currency || order.currency === 'USD') {
|
|
503
|
+
displayCurrency = mostCommonCurrency;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
return (_jsx("span", { className: "text-base font-bold text-gray-900", children: formatCurrency(order.total, displayCurrency) }));
|
|
508
|
+
})()] })] }, order.id));
|
|
509
|
+
}) }))] })), activeTab === 'bookings' && (_jsxs("div", { className: "space-y-6 animate-fade-in", children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "My Bookings" }), isLoadingData ? (_jsx("div", { className: "flex items-center justify-center py-12", children: _jsx(Loader2, { className: "w-8 h-8 animate-spin text-gray-400" }) })) : bookings.length === 0 ? (_jsxs("div", { className: "text-center py-12", children: [_jsx("div", { className: "w-16 h-16 bg-gray-50 rounded-full flex items-center justify-center mx-auto mb-4", children: _jsx(Calendar, { className: "w-8 h-8 text-gray-300" }) }), _jsx("h3", { className: "text-lg font-medium text-gray-900", children: "No bookings yet" }), _jsx("p", { className: "text-gray-500 mt-2", children: "Book a service to see your appointments here" })] })) : (_jsxs(_Fragment, { children: [bookings.filter(b => b.status === 'confirmed' || b.status === 'pending').length > 0 && (_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-semibold text-gray-900 mb-4", children: "Upcoming" }), _jsx("div", { className: "space-y-4", children: bookings.filter(b => b.status === 'confirmed' || b.status === 'pending').map((booking) => (_jsx("div", { className: "border border-gray-100 rounded-2xl p-6 bg-white hover:shadow-md transition-all", children: _jsxs("div", { className: "flex flex-col md:flex-row gap-6", children: [_jsx("div", { className: "w-full md:w-48 h-32 bg-gray-100 rounded-xl overflow-hidden flex-shrink-0 relative", children: _jsx("div", { className: "w-full h-full flex items-center justify-center bg-gradient-to-br from-gray-100 to-gray-200", children: _jsx(Calendar, { className: "w-12 h-12 text-gray-400" }) }) }), _jsxs("div", { className: "flex-1", children: [_jsxs("div", { className: "flex justify-between items-start mb-2", children: [_jsxs("div", { children: [_jsxs("h4", { className: "text-xl font-bold text-gray-900", children: ["Booking #", booking.id.slice(-6)] }), _jsxs("p", { className: "text-sm text-gray-500", children: ["Service ID: ", booking.serviceId] })] }), _jsx("span", { className: `px-3 py-1 text-xs font-bold rounded-full ${booking.status === 'confirmed' ? 'bg-blue-50 text-blue-700' :
|
|
510
|
+
booking.status === 'pending' ? 'bg-yellow-50 text-yellow-700' :
|
|
511
|
+
'bg-gray-50 text-gray-700'}`, children: booking.status.charAt(0).toUpperCase() + booking.status.slice(1) })] }), _jsxs("div", { className: "flex flex-wrap gap-4 mt-4 text-sm text-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 bg-gray-50 px-3 py-1.5 rounded-lg", children: [_jsx(Calendar, { className: "w-4 h-4" }), formatDateSafe(booking.bookingDate, undefined, { weekday: 'short', month: 'long', day: 'numeric' })] }), _jsxs("div", { className: "flex items-center gap-2 bg-gray-50 px-3 py-1.5 rounded-lg", children: [_jsx(Clock, { className: "w-4 h-4" }), booking.startTime, " - ", booking.endTime] }), _jsx("div", { className: "flex items-center gap-2 bg-gray-50 px-3 py-1.5 rounded-lg", children: _jsx("span", { className: "font-semibold", children: formatCurrency(booking.price, booking.currency || storeConfig?.settings?.currency || 'USD') }) })] }), _jsxs("div", { className: "mt-6 pt-4 border-t border-gray-100 flex justify-end gap-3", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: async () => {
|
|
512
|
+
try {
|
|
513
|
+
await bookingService.cancelBooking(booking.id);
|
|
514
|
+
addToast('Booking cancelled successfully', 'success');
|
|
515
|
+
// Refresh bookings
|
|
516
|
+
const updatedBookings = await bookingService.getBookings();
|
|
517
|
+
setBookings(updatedBookings);
|
|
518
|
+
}
|
|
519
|
+
catch (error) {
|
|
520
|
+
const errorMessage = error instanceof Error ? error.message : 'Failed to cancel booking';
|
|
521
|
+
addToast(errorMessage, 'error');
|
|
522
|
+
}
|
|
523
|
+
}, children: "Cancel" }), _jsx(Button, { size: "sm", className: "bg-black text-white", style: storeConfig ? { backgroundColor: primaryColor } : {}, children: "View Details" })] })] })] }) }, booking.id))) })] })), bookings.filter(b => b.status === 'completed' || b.status === 'cancelled').length > 0 && (_jsxs("div", { className: "pt-8", children: [_jsx("h3", { className: "text-lg font-semibold text-gray-900 mb-4", children: "Past" }), _jsx("div", { className: "space-y-4", children: bookings.filter(b => b.status === 'completed' || b.status === 'cancelled').map((booking) => (_jsx("div", { className: `border border-gray-100 rounded-2xl p-6 ${booking.status === 'cancelled' ? 'bg-red-50/30' : 'bg-gray-50/50'} opacity-75 hover:opacity-100 transition-all`, children: _jsxs("div", { className: "flex items-center gap-6", children: [_jsx("div", { className: "w-16 h-16 bg-gray-200 rounded-lg overflow-hidden flex-shrink-0 relative", children: _jsx("div", { className: "w-full h-full flex items-center justify-center bg-gradient-to-br from-gray-200 to-gray-300", children: _jsx(Calendar, { className: "w-8 h-8 text-gray-400" }) }) }), _jsxs("div", { className: "flex-1", children: [_jsxs("h4", { className: "font-bold text-gray-900", children: ["Booking #", booking.id.slice(-6)] }), _jsxs("p", { className: "text-sm text-gray-500", children: [formatDateSafe(booking.bookingDate), " \u2022 ", booking.startTime, " - ", booking.endTime] }), _jsx("p", { className: "text-sm font-medium text-gray-700 mt-1", children: formatCurrency(booking.price, booking.currency || storeConfig?.settings?.currency || 'USD') })] }), _jsx("span", { className: `px-3 py-1 text-xs font-bold rounded-full ${booking.status === 'cancelled' ? 'bg-red-50 text-red-700' : 'bg-gray-50 text-gray-700'}`, children: booking.status.charAt(0).toUpperCase() + booking.status.slice(1) })] }) }, booking.id))) })] }))] }))] })), activeTab === 'wishlist' && (_jsxs("div", { className: "space-y-6 animate-fade-in", children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "My Wishlist" }), isLoadingData ? (_jsx("div", { className: "flex items-center justify-center py-12", children: _jsx(Loader2, { className: "w-8 h-8 animate-spin text-gray-400" }) })) : wishlistItems.length > 0 ? (_jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: wishlistItems.map((item) => {
|
|
524
|
+
const product = item.product;
|
|
525
|
+
const productSlug = product?.slug || product?.id;
|
|
526
|
+
const storeSlug = product?.storeSlug || storeConfig?.slug;
|
|
527
|
+
return (_jsxs("div", { className: "group border border-gray-100 rounded-2xl p-4 hover:shadow-md transition-all relative bg-white", children: [_jsx("button", { className: "absolute top-4 right-4 z-10 p-2 bg-white/80 backdrop-blur rounded-full text-red-500 hover:bg-red-50 transition-colors", onClick: async () => {
|
|
528
|
+
try {
|
|
529
|
+
// Use StoreContext toggleWishlist (localStorage-based)
|
|
530
|
+
await toggleWishlist(item.productId);
|
|
531
|
+
addToast('Removed from wishlist', 'success');
|
|
532
|
+
// Refresh wishlist from StoreContext
|
|
533
|
+
if (wishlist && storeConfig?.products) {
|
|
534
|
+
const items = wishlist
|
|
535
|
+
.map(productId => {
|
|
536
|
+
const product = storeConfig.products?.find(p => p.id === productId);
|
|
537
|
+
return product ? { id: productId, productId, product } : null;
|
|
538
|
+
})
|
|
539
|
+
.filter((item) => item !== null);
|
|
540
|
+
setWishlistItems(items);
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
catch (error) {
|
|
544
|
+
const errorMessage = error instanceof Error ? error.message : 'Failed to remove from wishlist';
|
|
545
|
+
addToast(errorMessage, 'error');
|
|
546
|
+
}
|
|
547
|
+
}, children: _jsx(Heart, { className: "w-5 h-5 fill-current" }) }), _jsx("div", { className: "aspect-square bg-gray-100 rounded-xl mb-4 overflow-hidden relative", children: product?.image ? (_jsx(Image, { src: product.image, alt: product.name || 'Product', fill: true, className: "object-cover group-hover:scale-105 transition-transform duration-500", unoptimized: true })) : (_jsx("div", { className: "w-full h-full flex items-center justify-center bg-gradient-to-br from-gray-100 to-gray-200", children: _jsx(Heart, { className: "w-12 h-12 text-gray-300" }) })) }), storeSlug && (_jsx(Link, { href: `/${storeSlug}`, className: "block text-xs font-bold text-gray-400 uppercase tracking-wider mb-1 hover:text-black", children: product?.storeName || storeConfig?.name || 'Store' })), _jsx("h3", { className: "font-bold text-gray-900 mb-2 truncate", children: product?.name || 'Product' }), _jsxs("div", { className: "flex items-center justify-between mt-4", children: [_jsx("span", { className: "text-lg font-bold", children: product?.price ? formatCurrency(product.price, product.currency || storeConfig?.settings?.currency || 'USD') : formatCurrency(0, storeConfig?.settings?.currency || 'USD') }), storeSlug && productSlug && (_jsx(Link, { href: `/${storeSlug}/product/${productSlug}`, children: _jsx(Button, { size: "sm", className: "rounded-full bg-black text-white px-4", style: storeConfig ? { backgroundColor: primaryColor } : {}, children: "View Item" }) }))] })] }, item.id));
|
|
548
|
+
}) })) : (_jsxs("div", { className: "text-center py-12", children: [_jsx("div", { className: "w-16 h-16 bg-gray-50 rounded-full flex items-center justify-center mx-auto mb-4", children: _jsx(Heart, { className: "w-8 h-8 text-gray-300" }) }), _jsx("h3", { className: "text-lg font-medium text-gray-900", children: "Your wishlist is empty" }), _jsx("p", { className: "text-gray-500 mt-2", children: "Start saving items you love!" })] }))] })), activeTab === 'notifications' && (_jsxs("div", { className: "space-y-6 animate-fade-in", children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Notification Preferences" }), _jsxs("div", { className: "space-y-4 divide-y divide-gray-100", children: [_jsxs("div", { className: "flex items-center justify-between py-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-bold text-gray-900", children: "Order Updates" }), _jsx("p", { className: "text-sm text-gray-500", children: "Receive updates about your order status" })] }), _jsx("div", { className: "relative inline-flex h-6 w-11 items-center rounded-full bg-black transition-colors", style: storeConfig ? { backgroundColor: primaryColor } : {}, children: _jsx("span", { className: "inline-block h-4 w-4 transform rounded-full bg-white transition-transform translate-x-6" }) })] }), _jsxs("div", { className: "flex items-center justify-between py-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-bold text-gray-900", children: "Promotions" }), _jsx("p", { className: "text-sm text-gray-500", children: "Receive emails about new sales and deals" })] }), _jsx("div", { className: "relative inline-flex h-6 w-11 items-center rounded-full bg-gray-200 transition-colors", children: _jsx("span", { className: "inline-block h-4 w-4 transform rounded-full bg-white transition-transform translate-x-1" }) })] }), _jsxs("div", { className: "flex items-center justify-between py-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-bold text-gray-900", children: "New Arrivals" }), _jsx("p", { className: "text-sm text-gray-500", children: "Get notified when new products arrive" })] }), _jsx("div", { className: "relative inline-flex h-6 w-11 items-center rounded-full bg-black transition-colors", style: storeConfig ? { backgroundColor: primaryColor } : {}, children: _jsx("span", { className: "inline-block h-4 w-4 transform rounded-full bg-white transition-transform translate-x-6" }) })] })] })] })), activeTab === 'settings' && (_jsxs("div", { className: "space-y-8 animate-fade-in", children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Account Settings" }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("div", { className: "flex justify-between items-center mb-4", children: _jsx("h3", { className: "text-lg font-bold text-gray-900", children: "Security" }) }), !isChangingPassword ? (_jsxs(Button, { variant: "outline", className: "w-full justify-between group h-12 rounded-xl", onClick: () => setIsChangingPassword(true), children: [_jsx("span", { children: "Change Password" }), _jsx(Lock, { className: "w-4 h-4 text-gray-400 group-hover:text-black" })] })) : (_jsxs("form", { onSubmit: handlePasswordChange, className: "p-6 border border-gray-200 rounded-xl space-y-4 bg-gray-50/50", children: [_jsx("h4", { className: "font-bold text-gray-900 mb-2", children: "Change Password" }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "Current Password" }), _jsx("input", { type: "password", value: passwordData.current, onChange: (e) => setPasswordData({ ...passwordData, current: e.target.value }), className: "w-full px-4 py-2.5 rounded-lg border border-gray-200 bg-white focus:border-black focus:ring-0 focus:outline-none transition-all", required: true })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "New Password" }), _jsx("input", { type: "password", value: passwordData.new, onChange: (e) => setPasswordData({ ...passwordData, new: e.target.value }), className: "w-full px-4 py-2.5 rounded-lg border border-gray-200 bg-white focus:border-black focus:ring-0 focus:outline-none transition-all", required: true })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-semibold text-gray-700", children: "Confirm New Password" }), _jsx("input", { type: "password", value: passwordData.confirm, onChange: (e) => setPasswordData({ ...passwordData, confirm: e.target.value }), className: "w-full px-4 py-2.5 rounded-lg border border-gray-200 bg-white focus:border-black focus:ring-0 focus:outline-none transition-all", required: true })] }), _jsxs("div", { className: "flex justify-end gap-3 pt-2", children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => setIsChangingPassword(false), children: "Cancel" }), _jsx(Button, { type: "submit", className: "bg-black text-white", style: storeConfig ? { backgroundColor: primaryColor } : {}, children: "Update Password" })] })] }))] }), _jsxs("div", { className: "pt-8 border-t border-gray-100", children: [_jsx("h3", { className: "text-lg font-bold text-red-600 mb-2", children: "Danger Zone" }), _jsx("p", { className: "text-gray-500 text-sm mb-4", children: "Once you delete your account, there is no going back. Please be certain." }), _jsxs(Button, { variant: "outline", className: "border-red-200 text-red-600 hover:bg-red-50 hover:text-red-700 w-full justify-between h-12 rounded-xl", children: [_jsx("span", { children: "Delete Account" }), _jsx(Trash2, { className: "w-4 h-4" })] })] })] })] }))] }) })] }) })] }));
|
|
549
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { StoreConfig } from '../../../lib/store-types';
|
|
2
|
+
interface CartPageProps {
|
|
3
|
+
storeConfig: StoreConfig;
|
|
4
|
+
}
|
|
5
|
+
export declare function CartPage({ storeConfig }: CartPageProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=CartPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/shared/pages/CartPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAehD,UAAU,aAAa;IACrB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,EAAE,WAAW,EAAE,EAAE,aAAa,2CAyUtD"}
|