storefront-layouts 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/LoginForm.js +2 -2
- package/dist/components/auth/LoginSheet.js +2 -2
- package/dist/components/auth/login-form-core.js +3 -3
- package/dist/components/auth/login-sheet-header.js +3 -3
- package/dist/components/auth/login-sheet-registry.js +2 -2
- package/dist/components/auth/login-sheet-themes/booking-agenda.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/booking.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/clothing.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/electronics-grid.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/electronics.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/food-modern.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/food.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/index.js +9 -9
- package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.js +1 -1
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts +2 -2
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts.map +1 -1
- package/dist/components/auth/login-sheet-themes/theme-input-baselines.js +2 -2
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts.map +1 -1
- package/dist/components/auth/login-sheets/StoreLoginSheetShell.js +6 -6
- package/dist/components/auth/use-login-submit.js +3 -3
- package/dist/components/cart/InventoryHoldCountdown.js +2 -2
- package/dist/components/categories/category-masonry-grid.js +3 -3
- package/dist/components/checkout/CheckoutFeeLines.js +1 -1
- package/dist/components/checkout/ShippingOptionsPanel.js +3 -3
- package/dist/components/learning/CertificateTemplates.js +2 -2
- package/dist/components/learning/CertificateViewer.js +3 -3
- package/dist/components/learning/MentorshipProgress.d.ts.map +1 -1
- package/dist/components/learning/MentorshipProgress.js +4 -4
- package/dist/components/product/ProductVariationSelectors.js +1 -1
- package/dist/components/rich-text/CategoryDescription.js +2 -2
- package/dist/components/rich-text/ProductDescription.js +2 -2
- package/dist/components/rich-text/RichTextExcerpt.js +1 -1
- package/dist/components/rich-text/SafeRichHtml.d.ts +8 -11
- package/dist/components/rich-text/SafeRichHtml.d.ts.map +1 -1
- package/dist/components/rich-text/SafeRichHtml.js +3 -5
- package/dist/components/shipping/ProductDeliveryInfoSection.d.ts.map +1 -1
- package/dist/components/shipping/ProductDeliveryInfoSection.js +7 -4
- package/dist/components/shipping/ShippingQuoteAddressForm.js +3 -3
- package/dist/components/ui/alert-modal.js +2 -2
- package/dist/components/ui/avatar-image.js +1 -1
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/breadcrumbs.js +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/category-tree.js +2 -2
- package/dist/components/ui/checkout-button.d.ts.map +1 -1
- package/dist/components/ui/checkout-button.js +11 -283
- package/dist/components/ui/guest-checkout-modal.js +3 -3
- package/dist/components/ui/image-skeleton.js +2 -2
- package/dist/components/ui/image-with-fallback.d.ts +3 -1
- package/dist/components/ui/image-with-fallback.d.ts.map +1 -1
- package/dist/components/ui/image-with-fallback.js +55 -139
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/limited-time-offer-badge.js +2 -2
- package/dist/components/ui/loading-skeleton-wrapper.js +1 -1
- package/dist/components/ui/modal.js +2 -2
- package/dist/components/ui/otp-input.js +1 -1
- package/dist/components/ui/out-of-stock-overlay.js +1 -1
- package/dist/components/ui/page-animate-wrapper.js +2 -2
- package/dist/components/ui/page-content-loader.js +2 -2
- package/dist/components/ui/page-loader.js +1 -1
- package/dist/components/ui/product-card.d.ts.map +1 -1
- package/dist/components/ui/product-card.js +17 -17
- package/dist/components/ui/product-rating.js +1 -1
- package/dist/components/ui/product-stock-badge.js +2 -2
- package/dist/components/ui/review-form.js +2 -2
- package/dist/components/ui/route-skeleton-loader.js +6 -6
- package/dist/components/ui/sheet.d.ts +2 -1
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +4 -4
- package/dist/components/ui/skeleton.js +1 -1
- package/dist/components/ui/skeletons/index.js +5 -5
- package/dist/components/ui/skeletons/product-grid-skeleton.js +1 -1
- package/dist/components/ui/store-logos.d.ts.map +1 -1
- package/dist/components/ui/store-logos.js +4 -4
- package/dist/components/ui/toast.js +1 -1
- package/dist/components/ui/video-player.js +2 -2
- package/dist/editor/alignment-schemas/booking.js +1 -1
- package/dist/editor/alignment-schemas/clothing-minimal.js +1 -1
- package/dist/editor/alignment-schemas/index.js +20 -20
- package/dist/editor/alignment-schemas/lazy-loader.js +1 -1
- package/dist/editor/alignment-schemas/metadata.js +1 -1
- package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.js +3 -3
- package/dist/editor/blocks/index.js +3 -3
- package/dist/editor/blocks/migrate-clothing-minimal.js +3 -3
- package/dist/editor/blocks/nav-outline-utils.js +2 -2
- package/dist/editor/blocks/registry.js +1 -1
- package/dist/editor/document/adapter.js +4 -4
- package/dist/editor/document/block-tree.js +1 -1
- package/dist/editor/document/index.js +6 -6
- package/dist/editor/document/validate.js +1 -1
- package/dist/editor/index.js +12 -12
- package/dist/editor/layout-content-loader.js +3 -3
- package/dist/editor/payaza-form/ArrayItemManager.js +2 -2
- package/dist/editor/payaza-form/EditorCanvasPreview.js +5 -5
- package/dist/editor/payaza-form/FieldRenderer.js +17 -17
- package/dist/editor/payaza-form/IframePreviewMessageBridge.js +3 -3
- package/dist/editor/payaza-form/PayazaFormEditor.js +31 -31
- package/dist/editor/payaza-form/PayazaFormEditorFullPage.js +2 -2
- package/dist/editor/payaza-form/SliderArrayEditor.js +3 -3
- package/dist/editor/payaza-form/components/ArrayField.js +1 -1
- package/dist/editor/payaza-form/components/BlockStylesInspector.js +1 -1
- package/dist/editor/payaza-form/components/BlocksField.js +9 -9
- package/dist/editor/payaza-form/components/ButtonField.js +3 -3
- package/dist/editor/payaza-form/components/CanvasGranularInspector.js +11 -11
- package/dist/editor/payaza-form/components/IconField.js +2 -2
- package/dist/editor/payaza-form/components/ImageField.js +1 -1
- package/dist/editor/payaza-form/components/NumberField.js +1 -1
- package/dist/editor/payaza-form/components/RichTextField.js +2 -2
- package/dist/editor/payaza-form/components/SectionField.js +1 -1
- package/dist/editor/payaza-form/components/SectionSchemaInspector.js +3 -3
- package/dist/editor/payaza-form/components/StarRatingField.js +2 -2
- package/dist/editor/payaza-form/components/TextField.js +1 -1
- package/dist/editor/payaza-form/data-merger.js +6 -6
- package/dist/editor/payaza-form/data-transformer.js +3 -3
- package/dist/editor/payaza-form/engine.js +1 -1
- package/dist/editor/payaza-form/examples/custom-widgets.example.js +1 -1
- package/dist/editor/payaza-form/index.js +8 -8
- package/dist/editor/payaza-form/layout-loader.js +2 -2
- package/dist/editor/payaza-form/preview-message-handler.js +3 -3
- package/dist/editor/payaza-form/schema-bridge.js +3 -3
- package/dist/editor/payaza-form/widget-registry.js +1 -1
- package/dist/editor/shared/BlockOutlineTree.js +2 -2
- package/dist/editor/shared/EditorHeader.js +2 -2
- package/dist/editor/shared/EditorNavigator.js +2 -2
- package/dist/editor/shared/IframePreview.js +6 -6
- package/dist/editor/shared/InlineCanvasPreview.js +8 -8
- package/dist/editor/shared/LayoutRenderer.js +1 -1
- package/dist/editor/shared/ResizableSidebar.js +1 -1
- package/dist/editor/shared/index.js +7 -7
- package/dist/hooks/use-analytics.js +3 -3
- package/dist/hooks/use-api.js +1 -1
- package/dist/hooks/use-cart-api.d.ts.map +1 -1
- package/dist/hooks/use-cart-api.js +8 -3
- package/dist/hooks/use-catalog-loader.js +3 -3
- package/dist/hooks/use-catalog-price-range.d.ts +2 -5
- package/dist/hooks/use-catalog-price-range.d.ts.map +1 -1
- package/dist/hooks/use-catalog-price-range.js +20 -5
- package/dist/hooks/use-category-products.d.ts +8 -0
- package/dist/hooks/use-category-products.d.ts.map +1 -0
- package/dist/hooks/use-category-products.js +43 -0
- package/dist/hooks/use-checkout-fees.d.ts +3 -4
- package/dist/hooks/use-checkout-fees.d.ts.map +1 -1
- package/dist/hooks/use-checkout-fees.js +1 -1
- package/dist/hooks/use-content-ready.js +1 -1
- package/dist/hooks/use-featured-products.d.ts +3 -0
- package/dist/hooks/use-featured-products.d.ts.map +1 -0
- package/dist/hooks/use-featured-products.js +25 -0
- package/dist/hooks/use-multi-store-checkout-fees.d.ts +3 -4
- package/dist/hooks/use-multi-store-checkout-fees.d.ts.map +1 -1
- package/dist/hooks/use-multi-store-checkout-fees.js +1 -1
- package/dist/hooks/use-navigation-loading.js +1 -1
- package/dist/hooks/use-payaza-checkout.d.ts +1 -1
- package/dist/hooks/use-payaza-checkout.d.ts.map +1 -1
- package/dist/hooks/use-payaza-checkout.js +9 -3
- package/dist/hooks/use-product-brands.d.ts +5 -0
- package/dist/hooks/use-product-brands.d.ts.map +1 -0
- package/dist/hooks/use-product-brands.js +25 -0
- package/dist/hooks/use-product-by-slug.d.ts +7 -0
- package/dist/hooks/use-product-by-slug.d.ts.map +1 -0
- package/dist/hooks/use-product-by-slug.js +38 -0
- package/dist/hooks/use-product-reviews.d.ts +15 -0
- package/dist/hooks/use-product-reviews.d.ts.map +1 -0
- package/dist/hooks/use-product-reviews.js +75 -0
- package/dist/hooks/use-product-variation-selection.d.ts +2 -8
- package/dist/hooks/use-product-variation-selection.d.ts.map +1 -1
- package/dist/hooks/use-product-variation-selection.js +1 -1
- package/dist/hooks/use-products-api.js +3 -3
- package/dist/hooks/use-shipping-quote.js +2 -2
- package/dist/hooks/use-store-api.js +4 -4
- package/dist/hooks/usePreviewSlideSync.js +1 -1
- package/dist/index.d.ts +62 -74
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -153
- package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -1
- package/dist/layouts/booking/components/BookingHomePage.js +68 -74
- package/dist/layouts/booking/components/BookingMultilineHeading.js +1 -1
- package/dist/layouts/booking/components/BookingTestimonialCard.js +2 -2
- package/dist/layouts/booking/components/BookingTestimonialsEmptyState.js +1 -1
- package/dist/layouts/booking/components/booking-footer-defaults.js +2 -2
- package/dist/layouts/booking/index.js +8 -8
- package/dist/layouts/booking/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/AboutPage.js +39 -60
- package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/BookPage.js +16 -22
- package/dist/layouts/booking/pages/CategoriesPage.js +6 -6
- package/dist/layouts/booking/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/CategoryPage.js +17 -26
- package/dist/layouts/booking/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/ContactPage.js +5 -12
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/ProductDetailPage.js +203 -150
- package/dist/layouts/booking/pages/ServicesPage.d.ts +1 -1
- package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -1
- package/dist/layouts/booking/pages/ServicesPage.js +11 -31
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +21 -30
- package/dist/layouts/booking-agenda/index.js +8 -8
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/AboutPage.js +11 -14
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/BookPage.js +15 -21
- package/dist/layouts/booking-agenda/pages/CategoriesPage.js +5 -5
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/CategoryPage.js +12 -18
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/ContactPage.js +8 -13
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +202 -149
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +1 -1
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/pages/ServicesPage.js +8 -23
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -1
- package/dist/layouts/clothing/components/ClothingHomePage.js +199 -136
- package/dist/layouts/clothing/index.js +7 -7
- package/dist/layouts/clothing/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/AboutPage.js +19 -33
- package/dist/layouts/clothing/pages/CategoriesPage.js +8 -8
- package/dist/layouts/clothing/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/CategoryPage.js +15 -41
- package/dist/layouts/clothing/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/ContactPage.js +5 -8
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/ProductDetailPage.js +256 -167
- package/dist/layouts/clothing/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/clothing/pages/ProductsPage.js +125 -59
- package/dist/layouts/clothing/payaza-bindings.js +2 -2
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +32 -131
- package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.js +8 -8
- package/dist/layouts/clothing-minimal/index.js +7 -7
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/AboutPage.js +37 -61
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +7 -7
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/CategoryPage.js +13 -18
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/ContactPage.js +5 -8
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +202 -143
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/pages/ProductsPage.js +126 -57
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +7 -7
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +10 -10
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsHomePage.js +29 -31
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +4 -4
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsProductsPage.js +81 -23
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +2 -2
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +6 -6
- package/dist/layouts/electronics/index.js +18 -18
- package/dist/layouts/electronics/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/AboutPage.js +11 -14
- package/dist/layouts/electronics/pages/CategoriesPage.js +1 -1
- package/dist/layouts/electronics/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/CategoryPage.js +14 -20
- package/dist/layouts/electronics/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/ContactPage.js +8 -13
- package/dist/layouts/electronics/pages/HelpCenterPage.js +1 -1
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +1 -1
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/ProductDetailPage.js +201 -142
- package/dist/layouts/electronics/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/electronics/pages/ProductsPage.js +119 -49
- package/dist/layouts/electronics/pages/TermsPage.js +1 -1
- package/dist/layouts/electronics/pages/TrackOrderPage.js +4 -4
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +10 -10
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +75 -33
- package/dist/layouts/electronics-grid/index.js +14 -14
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/AboutPage.js +11 -14
- package/dist/layouts/electronics-grid/pages/CategoriesPage.js +1 -1
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/CategoryPage.js +14 -20
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/ContactPage.js +8 -13
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +6 -6
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +1 -1
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +1 -1
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +201 -142
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/pages/ProductsPage.js +121 -52
- package/dist/layouts/electronics-grid/pages/TermsPage.js +1 -1
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +4 -4
- package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -1
- package/dist/layouts/food/components/FoodHomePage.js +42 -41
- package/dist/layouts/food/index.js +8 -8
- package/dist/layouts/food/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/AboutPage.js +44 -45
- package/dist/layouts/food/pages/CategoriesPage.js +6 -6
- package/dist/layouts/food/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/CategoryPage.js +23 -21
- package/dist/layouts/food/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/ContactPage.js +5 -7
- package/dist/layouts/food/pages/MenuPage.d.ts +1 -1
- package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/MenuPage.js +81 -42
- package/dist/layouts/food/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/ProductDetailPage.js +209 -171
- package/dist/layouts/food/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/food/pages/ProductsPage.js +130 -45
- package/dist/layouts/food-modern/components/FoodHomePageModern.js +10 -10
- package/dist/layouts/food-modern/index.js +8 -8
- package/dist/layouts/food-modern/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/AboutPage.js +11 -14
- package/dist/layouts/food-modern/pages/CategoriesPage.js +5 -5
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/CategoryPage.js +23 -20
- package/dist/layouts/food-modern/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/ContactPage.js +5 -7
- package/dist/layouts/food-modern/pages/MenuPage.d.ts +1 -1
- package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/MenuPage.js +81 -46
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +1 -1
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/ProductDetailPage.js +202 -143
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/food-modern/pages/ProductsPage.js +117 -33
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +32 -23
- package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.js +1 -1
- package/dist/layouts/motivational-speaker/index.js +9 -9
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +1 -1
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/AboutPage.js +6 -9
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +1 -1
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/CategoryPage.js +18 -22
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +1 -1
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ContactPage.js +9 -13
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +1 -1
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ProductsPage.js +121 -52
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +1 -1
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +15 -24
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +1 -1
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/pages/ServicesPage.js +8 -23
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +7 -7
- package/dist/layouts/shared/components/BaseStoreLayout.js +9 -9
- package/dist/layouts/shared/components/CartLineQuantityControl.js +1 -1
- package/dist/layouts/shared/components/GenericPageWrapper.js +3 -3
- package/dist/layouts/shared/components/ProductPriceFilterSection.js +4 -4
- package/dist/layouts/shared/components/PromoBanner.d.ts +1 -4
- package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -1
- package/dist/layouts/shared/components/PromoBanner.js +12 -8
- package/dist/layouts/shared/components/StoreFooter.js +10 -10
- package/dist/layouts/shared/components/StoreHeader.js +7 -7
- package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -1
- package/dist/layouts/shared/components/TestimonialCard.js +2 -2
- package/dist/layouts/shared/components/headers/BookingAgendaSidebar.js +2 -2
- package/dist/layouts/shared/components/headers/ClothingMinimalHeader.js +11 -11
- package/dist/layouts/shared/components/headers/FoodModernHeader.js +7 -7
- package/dist/layouts/shared/index.js +22 -22
- package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/AccountPage.js +101 -27
- package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/CartPage.js +39 -90
- package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/CheckoutPage.js +349 -868
- package/dist/layouts/shared/pages/CookiePolicyPage.js +1 -1
- package/dist/layouts/shared/pages/FeatureDisabledPage.js +1 -1
- package/dist/layouts/shared/pages/HelpCenterPage.js +1 -1
- package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/MaintenancePage.js +2 -3
- package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/PortfolioPage.js +2 -2
- package/dist/layouts/shared/pages/PrivacyPolicyPage.js +1 -1
- package/dist/layouts/shared/pages/SizeGuidePage.js +1 -1
- package/dist/layouts/shared/pages/StyleGuidePage.js +3 -3
- package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/TeamPage.js +1 -1
- package/dist/layouts/shared/pages/TermsPage.js +1 -1
- package/dist/layouts/shared/pages/TrackOrderPage.js +4 -4
- package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -1
- package/dist/layouts/shared/pages/WishlistPage.js +44 -29
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts.map +1 -1
- package/dist/layouts/shared/wrappers/BookingAgendaLayout.js +80 -35
- package/dist/layouts/shared/wrappers/ClothingLayout.js +8 -8
- package/dist/layouts/shared/wrappers/ClothingMinimalLayout.js +7 -7
- package/dist/layouts/shared/wrappers/ElectronicsLayout.js +5 -5
- package/dist/layouts/shared/wrappers/FoodModernLayout.js +6 -6
- package/dist/layouts/shared/wrappers/MotivationalLayout.js +9 -9
- package/dist/layouts/shared/wrappers/StandardLayout.js +8 -8
- package/dist/lib/api.d.ts +3 -4
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +69 -109
- package/dist/lib/auth-context.js +2 -2
- package/dist/lib/content-selectors.d.ts +1 -1
- package/dist/lib/content-selectors.d.ts.map +1 -1
- package/dist/lib/content-selectors.js +8 -0
- package/dist/lib/layout-config-hydration.js +2 -2
- package/dist/lib/loading-context.d.ts.map +1 -1
- package/dist/lib/loading-context.js +11 -21
- package/dist/lib/payaza-checkout.d.ts.map +1 -1
- package/dist/lib/payaza-checkout.js +2 -4
- package/dist/lib/payaza-public-key.d.ts +6 -0
- package/dist/lib/payaza-public-key.d.ts.map +1 -0
- package/dist/lib/payaza-public-key.js +10 -0
- package/dist/lib/rich-html.d.ts +31 -26
- package/dist/lib/rich-html.d.ts.map +1 -1
- package/dist/lib/rich-html.js +1 -0
- package/dist/lib/services/analytics.service.js +1 -1
- package/dist/lib/services/auth.service.js +1 -1
- package/dist/lib/services/booking.service.js +1 -1
- package/dist/lib/services/category.service.js +1 -1
- package/dist/lib/services/checkout.service.d.ts +3 -0
- package/dist/lib/services/checkout.service.d.ts.map +1 -1
- package/dist/lib/services/checkout.service.js +1 -1
- package/dist/lib/services/contact.service.js +1 -1
- package/dist/lib/services/customer.service.js +1 -1
- package/dist/lib/services/fees.service.d.ts +17 -63
- package/dist/lib/services/fees.service.d.ts.map +1 -1
- package/dist/lib/services/fees.service.js +4 -138
- package/dist/lib/services/index.js +13 -13
- package/dist/lib/services/location.service.js +1 -1
- package/dist/lib/services/order.service.js +1 -1
- package/dist/lib/services/payment.service.js +1 -1
- package/dist/lib/services/product.service.d.ts +7 -2
- package/dist/lib/services/product.service.d.ts.map +1 -1
- package/dist/lib/services/product.service.js +13 -1
- package/dist/lib/services/promo.service.js +1 -1
- package/dist/lib/services/review.service.js +1 -1
- package/dist/lib/services/service.service.js +1 -1
- package/dist/lib/services/shipping.service.js +1 -1
- package/dist/lib/services/store.service.js +1 -1
- package/dist/lib/store-config-utils.d.ts +1 -10
- package/dist/lib/store-config-utils.d.ts.map +1 -1
- package/dist/lib/store-config-utils.js +73 -261
- package/dist/lib/store-config.js +1 -1
- package/dist/lib/store-context.d.ts +1 -23
- package/dist/lib/store-context.d.ts.map +1 -1
- package/dist/lib/store-context.js +89 -111
- package/dist/lib/store-types.d.ts +9 -91
- package/dist/lib/store-types.d.ts.map +1 -1
- package/dist/lib/utils/asset-helpers.js +1 -1
- package/dist/lib/utils/catalog-price-bounds.d.ts +16 -6
- package/dist/lib/utils/catalog-price-bounds.d.ts.map +1 -1
- package/dist/lib/utils/catalog-price-bounds.js +58 -14
- package/dist/lib/utils/category-tree.d.ts +9 -0
- package/dist/lib/utils/category-tree.d.ts.map +1 -1
- package/dist/lib/utils/category-tree.js +26 -0
- package/dist/lib/utils/editor-preview.d.ts +5 -0
- package/dist/lib/utils/editor-preview.d.ts.map +1 -1
- package/dist/lib/utils/editor-preview.js +17 -3
- package/dist/lib/utils/fee-calculations.d.ts +5 -1
- package/dist/lib/utils/fee-calculations.d.ts.map +1 -1
- package/dist/lib/utils/fee-calculations.js +28 -31
- package/dist/lib/utils/index.d.ts +1 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +4 -4
- package/dist/lib/utils/product-images.js +1 -1
- package/dist/lib/utils/product-share.js +1 -1
- package/dist/lib/utils/url-helpers.d.ts +6 -0
- package/dist/lib/utils/url-helpers.d.ts.map +1 -1
- package/dist/lib/utils/url-helpers.js +20 -4
- package/dist/preview/LayoutPreview.js +6 -6
- package/dist/preview/PreviewRouter.js +4 -4
- package/dist/preview/canvas/PreviewCanvasEnhancer.js +8 -8
- package/dist/preview/canvas/preview-flush-await.js +1 -1
- package/dist/preview/canvas/preview-isolation.js +1 -1
- package/dist/preview/canvas/preview-route.js +2 -2
- package/dist/preview/index.js +5 -5
- package/dist/styles/index.css +190 -149
- package/package.json +31 -43
|
@@ -3,8 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
import Link from 'next/link';
|
|
4
4
|
import { Eye, EyeOff, Loader2, ArrowRight } from 'lucide-react';
|
|
5
5
|
import { motion } from 'framer-motion';
|
|
6
|
-
import { useLoginSubmit } from './use-login-submit
|
|
7
|
-
import { cn } from '../../lib/utils
|
|
6
|
+
import { useLoginSubmit } from './use-login-submit';
|
|
7
|
+
import { cn } from '../../lib/utils';
|
|
8
8
|
/** Full-page auth login only. Store sheets use BespokeStoreLoginSheet + LoginFormCore. */
|
|
9
9
|
export function LoginForm({ callbackUrl = '/', variant = 'page', onSuccess, className, }) {
|
|
10
10
|
const { email, setEmail, password, setPassword, showPassword, setShowPassword, emailError, setEmailError, isLoading, handleSubmit, signupHref, resetHref, } = useLoginSubmit({ callbackUrl, variant: 'page', onSuccess });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useAuth } from '../../lib/auth-context
|
|
4
|
-
import { BespokeStoreLoginSheet } from './login-sheet-registry
|
|
3
|
+
import { useAuth } from '../../lib/auth-context';
|
|
4
|
+
import { BespokeStoreLoginSheet } from './login-sheet-registry';
|
|
5
5
|
export function LoginSheet({ storeConfig }) {
|
|
6
6
|
const { isLoginOpen, loginCallbackUrl, loginOnSuccess, closeLogin } = useAuth();
|
|
7
7
|
return (_jsx(BespokeStoreLoginSheet, { storeConfig: storeConfig, isOpen: isLoginOpen, onClose: closeLogin, callbackUrl: loginCallbackUrl, onSuccess: loginOnSuccess }));
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import Link from 'next/link';
|
|
4
4
|
import { Eye, EyeOff, Loader2, ArrowRight } from 'lucide-react';
|
|
5
|
-
import { useLoginSubmit } from './use-login-submit
|
|
6
|
-
import { cn } from '../../lib/utils
|
|
7
|
-
import { loginSheetButtonTouch } from './login-sheet-themes/theme-input-baselines
|
|
5
|
+
import { useLoginSubmit } from './use-login-submit';
|
|
6
|
+
import { cn } from '../../lib/utils';
|
|
7
|
+
import { loginSheetButtonTouch } from './login-sheet-themes/theme-input-baselines';
|
|
8
8
|
export function LoginFormCore({ storeConfig, theme, callbackUrl = '/', onSuccess, emailInputRef, }) {
|
|
9
9
|
const { email, setEmail, password, setPassword, showPassword, setShowPassword, emailError, setEmailError, isLoading, isSheet, closeLogin, handleSubmit, signupHref, resetHref, } = useLoginSubmit({ callbackUrl, variant: 'sheet', onSuccess });
|
|
10
10
|
const primaryColor = storeConfig.branding.primaryColor || '#1b0029';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { X } from 'lucide-react';
|
|
4
|
-
import { StoreLogo } from '../../components/ui/store-logos
|
|
5
|
-
import { Button } from '../../components/ui/button
|
|
6
|
-
import { cn } from '../../lib/utils
|
|
4
|
+
import { StoreLogo } from '../../components/ui/store-logos';
|
|
5
|
+
import { Button } from '../../components/ui/button';
|
|
6
|
+
import { cn } from '../../lib/utils';
|
|
7
7
|
export function LoginSheetHeader({ storeConfig, theme, onClose }) {
|
|
8
8
|
const isLightPanel = (theme.panelMode ?? 'light') === 'light';
|
|
9
9
|
return (_jsxs("header", { className: cn('shrink-0', theme.headerClassName), children: [_jsxs("div", { className: "flex items-start justify-between gap-3 sm:gap-4 mb-4 sm:mb-5", children: [_jsxs("div", { className: "flex items-center gap-2.5 sm:gap-3 min-w-0 flex-1", children: [_jsx(StoreLogo, { storeConfig: storeConfig, className: "h-9 w-9 sm:h-10 sm:w-10 shrink-0", alt: storeConfig.name }), _jsx("div", { className: "min-w-0", children: _jsx("p", { className: cn('text-[11px] sm:text-xs font-medium truncate', isLightPanel && 'system-dark:text-[#5c4d68]', theme.storeNameClassName ?? 'opacity-70'), children: storeConfig.name }) })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: onClose, className: cn('rounded-full shrink-0 -mr-1 h-11 w-11 min-h-11 min-w-11 touch-manipulation', isLightPanel && 'system-dark:text-[#1b0029] system-dark:hover:bg-black/5', theme.closeButtonClassName), "aria-label": "Close sign in", children: _jsx(X, { className: "h-5 w-5" }) })] }), _jsx("h1", { id: "login-form-title", className: cn('font-display font-bold tracking-tight text-xl sm:text-2xl leading-tight', isLightPanel && 'system-dark:text-[#1b0029]', theme.titleClassName ?? 'text-[#1b0029]'), children: "Sign in" }), _jsx("p", { className: cn('mt-1.5 sm:mt-2 text-[13px] sm:text-sm leading-snug', isLightPanel && 'system-dark:text-[#5c4d68]', theme.subtitleClassName), children: "Sign into your Shopaza account using your registered email address and password" })] }));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { getLoginSheetTheme } from './login-sheet-themes
|
|
4
|
-
import { StoreLoginSheetShell } from './login-sheets/StoreLoginSheetShell
|
|
3
|
+
import { getLoginSheetTheme } from './login-sheet-themes';
|
|
4
|
+
import { StoreLoginSheetShell } from './login-sheets/StoreLoginSheetShell';
|
|
5
5
|
/** Renders the layout-specific bespoke login sheet for the current store. */
|
|
6
6
|
export function BespokeStoreLoginSheet({ storeConfig, isOpen, onClose, callbackUrl, onSuccess, }) {
|
|
7
7
|
const theme = getLoginSheetTheme(storeConfig.layout);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines';
|
|
2
2
|
export const bookingAgendaLoginSheetTheme = {
|
|
3
3
|
panelClassName: `${lightPanelBase} border-rose-100`,
|
|
4
4
|
backdropClassName: 'bg-slate-900/50 backdrop-blur-sm',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines';
|
|
2
2
|
export const bookingLoginSheetTheme = {
|
|
3
3
|
panelClassName: `${lightPanelBase} border-slate-200`,
|
|
4
4
|
backdropClassName: 'bg-slate-900/55 backdrop-blur-sm',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines';
|
|
2
2
|
export const clothingMinimalLoginSheetTheme = {
|
|
3
3
|
panelClassName: lightPanelBase,
|
|
4
4
|
backdropClassName: 'bg-black/65 backdrop-blur-[2px]',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines';
|
|
2
2
|
export const clothingLoginSheetTheme = {
|
|
3
3
|
panelClassName: lightPanelBase,
|
|
4
4
|
backdropClassName: 'bg-black/70 backdrop-blur-sm',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError } from './theme-input-baselines';
|
|
2
2
|
export const electronicsGridLoginSheetTheme = {
|
|
3
3
|
panelClassName: 'bg-brand-bg border-l border-gray-300',
|
|
4
4
|
backdropClassName: 'bg-black/60 backdrop-blur-[2px]',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines';
|
|
2
2
|
export const electronicsLoginSheetTheme = {
|
|
3
3
|
panelClassName: lightPanelBase,
|
|
4
4
|
backdropClassName: 'bg-gray-900/60 backdrop-blur-sm',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { darkPanelInputBase, darkInputError, darkLabelBase, darkPanelShell } from './theme-input-baselines
|
|
1
|
+
import { darkPanelInputBase, darkInputError, darkLabelBase, darkPanelShell } from './theme-input-baselines';
|
|
2
2
|
export const foodModernLoginSheetTheme = {
|
|
3
3
|
panelMode: 'dark',
|
|
4
4
|
panelClassName: `${darkPanelShell} border-l border-white/10 text-white`,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines';
|
|
2
2
|
export const foodLoginSheetTheme = {
|
|
3
3
|
panelClassName: `${lightPanelBase} border-orange-100/80`,
|
|
4
4
|
backdropClassName: 'bg-black/70 backdrop-blur-sm',
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { foodLoginSheetTheme } from './food.theme
|
|
2
|
-
import { foodModernLoginSheetTheme } from './food-modern.theme
|
|
3
|
-
import { clothingLoginSheetTheme } from './clothing.theme
|
|
4
|
-
import { clothingMinimalLoginSheetTheme } from './clothing-minimal.theme
|
|
5
|
-
import { bookingLoginSheetTheme } from './booking.theme
|
|
6
|
-
import { bookingAgendaLoginSheetTheme } from './booking-agenda.theme
|
|
7
|
-
import { electronicsLoginSheetTheme } from './electronics.theme
|
|
8
|
-
import { electronicsGridLoginSheetTheme } from './electronics-grid.theme
|
|
9
|
-
import { motivationalSpeakerLoginSheetTheme } from './motivational-speaker.theme
|
|
1
|
+
import { foodLoginSheetTheme } from './food.theme';
|
|
2
|
+
import { foodModernLoginSheetTheme } from './food-modern.theme';
|
|
3
|
+
import { clothingLoginSheetTheme } from './clothing.theme';
|
|
4
|
+
import { clothingMinimalLoginSheetTheme } from './clothing-minimal.theme';
|
|
5
|
+
import { bookingLoginSheetTheme } from './booking.theme';
|
|
6
|
+
import { bookingAgendaLoginSheetTheme } from './booking-agenda.theme';
|
|
7
|
+
import { electronicsLoginSheetTheme } from './electronics.theme';
|
|
8
|
+
import { electronicsGridLoginSheetTheme } from './electronics-grid.theme';
|
|
9
|
+
import { motivationalSpeakerLoginSheetTheme } from './motivational-speaker.theme';
|
|
10
10
|
const themeByLayout = {
|
|
11
11
|
food: foodLoginSheetTheme,
|
|
12
12
|
'food-modern': foodModernLoginSheetTheme,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines
|
|
1
|
+
import { lightInputBase, lightInputError, lightLabelBase, lightPanelBase } from './theme-input-baselines';
|
|
2
2
|
export const motivationalSpeakerLoginSheetTheme = {
|
|
3
3
|
panelClassName: `${lightPanelBase} border-blue-100`,
|
|
4
4
|
backdropClassName: 'bg-[#0f0018]/65 backdrop-blur-sm',
|
|
@@ -6,8 +6,8 @@ export declare const loginSheetColorSchemeDark = "[color-scheme:dark]";
|
|
|
6
6
|
export declare const loginSheetLightSystemDarkShell = "system-dark:bg-[#fbfaf7] system-dark:text-[#1b0029]";
|
|
7
7
|
export declare const loginSheetLightContentDarkGuards = "system-dark:[&_label]:!text-[#1b0029] system-dark:[&_p]:!text-[#5c4d68] system-dark:[&_a]:!text-[#440066] system-dark:[&_button[type=button]]:text-[#1b0029]";
|
|
8
8
|
export declare const lightPanelBase = "bg-brand-bg border-l border-brand-border/50 [color-scheme:light] system-dark:bg-[#fbfaf7] system-dark:text-[#1b0029]";
|
|
9
|
-
/**
|
|
10
|
-
export declare const loginSheetPanelShell = "w-full max-w-
|
|
9
|
+
/** Right-rail drawer width (~420px) for every template login sheet. */
|
|
10
|
+
export declare const loginSheetPanelShell = "w-full max-w-[420px] max-sm:max-w-[min(100vw,420px)] sm:max-w-[420px] md:max-w-[420px]";
|
|
11
11
|
/** Safe-area aware padding; scrollable when the mobile keyboard is open */
|
|
12
12
|
export declare const loginSheetContentShell = "flex flex-col h-full min-h-0 px-4 pt-[max(0.75rem,env(safe-area-inset-top))] pb-[max(1.25rem,env(safe-area-inset-bottom))] sm:px-6 sm:pt-6 sm:pb-8 overflow-x-hidden overscroll-y-contain [-webkit-overflow-scrolling:touch]";
|
|
13
13
|
/** 44px+ touch targets for CTAs (WCAG / iOS HIG) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-input-baselines.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/login-sheet-themes/theme-input-baselines.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAEvG,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,wDACY,CAAC;AAExD,eAAO,MAAM,gCAAgC,iKACmH,CAAC;AAEjK,eAAO,MAAM,cAAc,yHAC6F,CAAC;AAEzH,
|
|
1
|
+
{"version":3,"file":"theme-input-baselines.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/login-sheet-themes/theme-input-baselines.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAEvG,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,wDACY,CAAC;AAExD,eAAO,MAAM,gCAAgC,iKACmH,CAAC;AAEjK,eAAO,MAAM,cAAc,yHAC6F,CAAC;AAEzH,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,2FACyD,CAAC;AAE3F,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,iOAC6L,CAAC;AAEjO,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AAEnE,eAAO,MAAM,cAAc,ygBAC6e,CAAC;AAEzgB,eAAO,MAAM,eAAe,wHAC2F,CAAC;AAExH,eAAO,MAAM,cAAc,gEACoC,CAAC;AAEhE,wEAAwE;AACxE,eAAO,MAAM,cAAc,qFACyD,CAAC;AAErF,eAAO,MAAM,kBAAkB,8aAC8Y,CAAC;AAE9a,eAAO,MAAM,cAAc,wHAC4F,CAAC;AAExH,eAAO,MAAM,aAAa,kEAAkE,CAAC;AAE7F,eAAO,MAAM,sBAAsB,0GACsE,CAAC"}
|
|
@@ -6,8 +6,8 @@ export const loginSheetColorSchemeDark = '[color-scheme:dark]';
|
|
|
6
6
|
export const loginSheetLightSystemDarkShell = 'system-dark:bg-[#fbfaf7] system-dark:text-[#1b0029]';
|
|
7
7
|
export const loginSheetLightContentDarkGuards = 'system-dark:[&_label]:!text-[#1b0029] system-dark:[&_p]:!text-[#5c4d68] system-dark:[&_a]:!text-[#440066] system-dark:[&_button[type=button]]:text-[#1b0029]';
|
|
8
8
|
export const lightPanelBase = 'bg-brand-bg border-l border-brand-border/50 [color-scheme:light] system-dark:bg-[#fbfaf7] system-dark:text-[#1b0029]';
|
|
9
|
-
/**
|
|
10
|
-
export const loginSheetPanelShell = 'w-full max-w-
|
|
9
|
+
/** Right-rail drawer width (~420px) for every template login sheet. */
|
|
10
|
+
export const loginSheetPanelShell = 'w-full max-w-[420px] max-sm:max-w-[min(100vw,420px)] sm:max-w-[420px] md:max-w-[420px]';
|
|
11
11
|
/** Safe-area aware padding; scrollable when the mobile keyboard is open */
|
|
12
12
|
export const loginSheetContentShell = 'flex flex-col h-full min-h-0 px-4 pt-[max(0.75rem,env(safe-area-inset-top))] pb-[max(1.25rem,env(safe-area-inset-bottom))] sm:px-6 sm:pt-6 sm:pb-8 overflow-x-hidden overscroll-y-contain [-webkit-overflow-scrolling:touch]';
|
|
13
13
|
/** 44px+ touch targets for CTAs (WCAG / iOS HIG) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreLoginSheetShell.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/login-sheets/StoreLoginSheetShell.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAelE,UAAU,yBAAyB;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,GACV,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"StoreLoginSheetShell.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/login-sheets/StoreLoginSheetShell.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAelE,UAAU,yBAAyB;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,GACV,EAAE,yBAAyB,2CA6C3B"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useRef } from 'react';
|
|
4
|
-
import { Sheet } from '../../../components/ui/sheet
|
|
5
|
-
import { LoginSheetHeader } from '../login-sheet-header
|
|
6
|
-
import { LoginFormCore } from '../login-form-core
|
|
7
|
-
import { cn } from '../../../lib/utils
|
|
8
|
-
import { darkPanelContentGuards, loginSheetColorSchemeDark, loginSheetColorSchemeLight, loginSheetContentShell, loginSheetLightContentDarkGuards, loginSheetLightSystemDarkShell, loginSheetPanelShell, } from '../login-sheet-themes/theme-input-baselines
|
|
4
|
+
import { Sheet } from '../../../components/ui/sheet';
|
|
5
|
+
import { LoginSheetHeader } from '../login-sheet-header';
|
|
6
|
+
import { LoginFormCore } from '../login-form-core';
|
|
7
|
+
import { cn } from '../../../lib/utils';
|
|
8
|
+
import { darkPanelContentGuards, loginSheetColorSchemeDark, loginSheetColorSchemeLight, loginSheetContentShell, loginSheetLightContentDarkGuards, loginSheetLightSystemDarkShell, loginSheetPanelShell, } from '../login-sheet-themes/theme-input-baselines';
|
|
9
9
|
export function StoreLoginSheetShell({ storeConfig, theme, isOpen, onClose, callbackUrl, onSuccess, }) {
|
|
10
10
|
const emailInputRef = useRef(null);
|
|
11
11
|
const panelMode = theme.panelMode ?? 'light';
|
|
12
12
|
const isLightPanel = panelMode === 'light';
|
|
13
|
-
return (_jsxs(Sheet, { isOpen: isOpen, onClose: onClose, side: "right", portal: true, overlayTier: "overlay", overlayMobileMode: "
|
|
13
|
+
return (_jsxs(Sheet, { isOpen: isOpen, onClose: onClose, side: "right", portal: true, overlayTier: "overlay", overlayMobileMode: "drawer", dataLoginPanel: panelMode, hideBuiltInTitle: true, showCloseButton: false, ariaLabelledBy: "login-form-title", className: cn('p-0 flex flex-col shadow-2xl', loginSheetPanelShell, isLightPanel ? loginSheetColorSchemeLight : loginSheetColorSchemeDark, isLightPanel && loginSheetLightSystemDarkShell, theme.panelClassName), style: { width: '100%', maxWidth: 420 }, backdropClassName: theme.backdropClassName ?? 'bg-black/70 backdrop-blur-sm', contentClassName: cn(loginSheetContentShell, isLightPanel ? loginSheetLightContentDarkGuards : darkPanelContentGuards, theme.contentClassName), onOpenAutoFocus: () => emailInputRef.current?.focus(), children: [_jsx(LoginSheetHeader, { storeConfig: storeConfig, theme: theme, onClose: onClose }), _jsx("div", { className: "flex-1 min-h-0 mt-4 sm:mt-6 py-0.5", children: _jsx(LoginFormCore, { storeConfig: storeConfig, theme: theme, callbackUrl: callbackUrl, onSuccess: onSuccess, emailInputRef: emailInputRef }) })] }));
|
|
14
14
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useRouter } from 'next/navigation';
|
|
3
3
|
import { useState, useCallback } from 'react';
|
|
4
|
-
import { useAuth } from '../../lib/auth-context
|
|
5
|
-
import { useToast } from '../../components/ui/toast
|
|
6
|
-
import { ApiError } from '../../lib/api
|
|
4
|
+
import { useAuth } from '../../lib/auth-context';
|
|
5
|
+
import { useToast } from '../../components/ui/toast';
|
|
6
|
+
import { ApiError } from '../../lib/api';
|
|
7
7
|
export function useLoginSubmit({ callbackUrl = '/', variant, onSuccess, }) {
|
|
8
8
|
const [email, setEmail] = useState('');
|
|
9
9
|
const [password, setPassword] = useState('');
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { Clock } from 'lucide-react';
|
|
5
|
-
import { cn } from '../../lib/utils
|
|
6
|
-
import { isInventoryHoldExpired } from '../../lib/inventory-utils
|
|
5
|
+
import { cn } from '../../lib/utils';
|
|
6
|
+
import { isInventoryHoldExpired } from '../../lib/inventory-utils';
|
|
7
7
|
function formatRemaining(ms) {
|
|
8
8
|
const totalSeconds = Math.max(0, Math.floor(ms / 1000));
|
|
9
9
|
const minutes = Math.floor(totalSeconds / 60);
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import Link from 'next/link';
|
|
4
4
|
import { ArrowRight } from 'lucide-react';
|
|
5
|
-
import { ImageWithFallback } from '../ui/image-with-fallback
|
|
6
|
-
import { RichTextExcerpt } from '../rich-text/RichTextExcerpt
|
|
7
|
-
import { extractCategoryImage, getColumnsClass, getHeroHeightClass, getMasonryHeightClass, getTwoColumnHeightClass, normalizeCategories, resolveColumnCount, } from './category-masonry-utils
|
|
5
|
+
import { ImageWithFallback } from '../ui/image-with-fallback';
|
|
6
|
+
import { RichTextExcerpt } from '../rich-text/RichTextExcerpt';
|
|
7
|
+
import { extractCategoryImage, getColumnsClass, getHeroHeightClass, getMasonryHeightClass, getTwoColumnHeightClass, normalizeCategories, resolveColumnCount, } from './category-masonry-utils';
|
|
8
8
|
function CategoryCard({ category, href, heightClass, isHero = false, showImages = true, showDescriptions = true, exploreLabel, variant, renderCardOverlay, index, exploreLabelDataAttr, }) {
|
|
9
9
|
const categoryImage = showImages ? extractCategoryImage(category.image) : undefined;
|
|
10
10
|
const roundedClass = variant === 'electronics' ? 'rounded-[2.5rem]' : 'rounded-2xl';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { formatCurrency } from '../../lib/utils
|
|
3
|
+
import { formatCurrency } from '../../lib/utils';
|
|
4
4
|
export function CheckoutFeeLines({ lines, currency, excludeKeys = [], className = 'flex items-center justify-between gap-4 font-medium text-gray-600', labelClassName = 'shrink-0', amountClassName = 'shrink-0 text-right font-semibold tabular-nums text-gray-900', }) {
|
|
5
5
|
const excluded = new Set(excludeKeys);
|
|
6
6
|
return (_jsx(_Fragment, { children: lines
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useEffect, useCallback } from 'react';
|
|
4
|
-
import { api } from '../../lib/api
|
|
5
|
-
import { Skeleton } from '../../components/ui/skeleton
|
|
6
|
-
import { buildDeliveryQuotePayload } from '../../lib/shipping-address.util
|
|
4
|
+
import { api } from '../../lib/api';
|
|
5
|
+
import { Skeleton } from '../../components/ui/skeleton';
|
|
6
|
+
import { buildDeliveryQuotePayload } from '../../lib/shipping-address.util';
|
|
7
7
|
function toSelectedShipping(rate) {
|
|
8
8
|
const serviceCode = rate.serviceCode || rate.methodCode || 'standard';
|
|
9
9
|
const courierId = rate.courierId || '';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { cn } from '../../lib/utils
|
|
3
|
+
import { cn } from '../../lib/utils';
|
|
4
4
|
import { Award, CheckCircle, ShieldCheck, Star, Shield, QrCode } from 'lucide-react';
|
|
5
5
|
import { motion } from 'framer-motion';
|
|
6
|
-
import { Button } from '../../components/ui/button
|
|
6
|
+
import { Button } from '../../components/ui/button';
|
|
7
7
|
export function CertificateTemplate({ data, design, className }) {
|
|
8
8
|
const { studentName, courseName, completionDate, certificateId, instructorName, instructorTitle, institutionName = 'Mindset Mastery Academy', signatureUrl, brandLogo, primaryColor = '#0F172A' } = data;
|
|
9
9
|
const renderClassic = () => (_jsxs("div", { className: "w-full h-full bg-white border-[20px] border-double p-12 flex flex-col items-center text-center font-serif relative", style: { borderColor: primaryColor }, children: [_jsx("div", { className: "absolute top-6 left-6 w-16 h-16 border-t-4 border-l-4", style: { borderColor: primaryColor } }), _jsx("div", { className: "absolute top-6 right-6 w-16 h-16 border-t-4 border-r-4", style: { borderColor: primaryColor } }), _jsx("div", { className: "absolute bottom-6 left-6 w-16 h-16 border-b-4 border-l-4", style: { borderColor: primaryColor } }), _jsx("div", { className: "absolute bottom-6 right-6 w-16 h-16 border-b-4 border-r-4", style: { borderColor: primaryColor } }), _jsxs("div", { className: "mb-6", children: [_jsx("p", { className: "text-[10px] font-bold uppercase tracking-[0.3em] mb-2 text-slate-400", children: institutionName }), _jsx(Award, { className: "w-16 h-16 mb-4 mx-auto", style: { color: primaryColor } }), _jsx("h1", { className: "text-5xl font-black tracking-widest uppercase mb-1", children: "Certificate" }), _jsx("h2", { className: "text-xl italic text-gray-500", children: "of Achievement" })] }), _jsx("p", { className: "text-lg mb-4", children: "This is to certify that" }), _jsx("h3", { className: "text-5xl font-bold mb-6 underline decoration-1 underline-offset-8 text-slate-900", children: studentName }), _jsx("p", { className: "text-lg mb-4", children: "has successfully demonstrated mastery in" }), _jsx("h4", { className: "text-3xl font-bold mb-10 text-slate-800 tracking-tight", children: courseName }), _jsxs("div", { className: "mt-auto w-full flex justify-between items-end px-12 pb-4", children: [_jsxs("div", { className: "text-left w-56", children: [_jsx("div", { className: "border-b border-slate-200 w-full mb-2 h-12 flex items-end justify-center", children: signatureUrl ? (_jsx("img", { src: signatureUrl, alt: "Signature", className: "h-10 object-contain" })) : (_jsx("span", { className: "text-3xl opacity-80 italic font-signature", children: instructorName })) }), _jsx("p", { className: "font-bold text-[10px] text-slate-900", children: instructorName }), _jsx("p", { className: "text-[8px] text-slate-400 uppercase tracking-widest", children: instructorTitle })] }), _jsxs("div", { className: "flex flex-col items-center", children: [_jsx("div", { className: "w-24 h-24 rounded-full border-4 flex items-center justify-center mb-2 shadow-inner", style: { borderColor: `${primaryColor}20` }, children: _jsxs("div", { className: "w-18 h-18 rounded-full border flex items-center justify-center relative bg-white shadow-sm", style: { borderColor: primaryColor }, children: [_jsx(Shield, { className: "w-8 h-8", style: { color: primaryColor } }), _jsx("span", { className: "absolute text-[6px] font-black uppercase tracking-tighter rotate-[-15deg] bg-white px-1", children: "Verified" })] }) }), _jsxs("p", { className: "text-[8px] font-mono text-slate-400", children: ["ID: ", certificateId] })] }), _jsxs("div", { className: "text-right w-56", children: [_jsx("div", { className: "border-b border-slate-200 w-full mb-2 h-12 flex items-end justify-center", children: _jsx("span", { className: "font-bold text-[12px] text-slate-900", children: completionDate }) }), _jsx("p", { className: "text-[8px] text-slate-400 uppercase tracking-widest", children: "Date of Graduation" })] })] })] }));
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { CertificateTemplate } from './CertificateTemplates
|
|
4
|
-
import { Button } from '../../components/ui/button
|
|
3
|
+
import { CertificateTemplate } from './CertificateTemplates';
|
|
4
|
+
import { Button } from '../../components/ui/button';
|
|
5
5
|
import { Download, Printer, X, Share2, ArrowLeft, ShieldCheck } from 'lucide-react';
|
|
6
6
|
import { useState, useRef, useEffect } from 'react';
|
|
7
7
|
import { motion } from 'framer-motion';
|
|
8
|
-
import { cn } from '../../lib/utils
|
|
8
|
+
import { cn } from '../../lib/utils';
|
|
9
9
|
export function CertificateViewer({ certificateId, data: initialData, design: initialDesign, onClose, isStandalone = false }) {
|
|
10
10
|
const [isPrinting, setIsPrinting] = useState(false);
|
|
11
11
|
const certificateRef = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentorshipProgress.d.ts","sourceRoot":"","sources":["../../../src/components/learning/MentorshipProgress.tsx"],"names":[],"mappings":"AAUA,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"MentorshipProgress.d.ts","sourceRoot":"","sources":["../../../src/components/learning/MentorshipProgress.tsx"],"names":[],"mappings":"AAUA,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAAE,2CAiKjF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Button } from '../../components/ui/button
|
|
3
|
+
import { Button } from '../../components/ui/button';
|
|
4
4
|
import { Calendar, Clock, User, MessageSquare, Video, ExternalLink, AlertCircle } from 'lucide-react';
|
|
5
5
|
import Image from 'next/image';
|
|
6
|
-
import { cn } from '../../lib/utils
|
|
6
|
+
import { cn } from '../../lib/utils';
|
|
7
7
|
import { motion } from 'framer-motion';
|
|
8
|
-
import { formatDateSafe } from '../../utils/date
|
|
8
|
+
import { formatDateSafe } from '../../utils/date';
|
|
9
9
|
export function MentorshipProgress({ programs }) {
|
|
10
10
|
if (programs.length === 0) {
|
|
11
11
|
return (_jsxs("div", { className: "text-center py-12 bg-slate-50 rounded-3xl border-2 border-dashed border-slate-200", children: [_jsx("div", { className: "w-16 h-16 bg-white rounded-full flex items-center justify-center mx-auto mb-4 shadow-sm", children: _jsx(User, { className: "w-8 h-8 text-slate-300" }) }), _jsx("h3", { className: "text-lg font-bold text-slate-900", children: "No active mentorships" }), _jsx("p", { className: "text-slate-500 max-w-xs mx-auto mt-2", children: "Ready to level up? Browse our mentorship programs and connect with an expert." }), _jsx(Button, { className: "mt-6 rounded-full bg-black text-white px-8", children: "Browse Mentors" })] }));
|
|
@@ -15,6 +15,6 @@ export function MentorshipProgress({ programs }) {
|
|
|
15
15
|
const progress = (program.sessionsCompleted / program.sessionsTotal) * 100;
|
|
16
16
|
// Calculate days remaining
|
|
17
17
|
const daysRemaining = Math.ceil((new Date(program.expiryDate).getTime() - new Date().getTime()) / (1000 * 60 * 60 * 24));
|
|
18
|
-
return (_jsxs(motion.div, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, className: cn("bg-white border-2 rounded-3xl overflow-hidden transition-all", isExpired ? "border-slate-100 opacity-75" : "border-slate-100 hover:border-blue-200 hover:shadow-xl shadow-sm"), children: [_jsx("div", { className: "p-6 md:p-8", children: _jsxs("div", { className: "flex flex-col md:flex-row gap-8", children: [_jsxs("div", { className: "flex flex-row md:flex-col items-center md:items-center gap-4 md:w-48 text-center border-b md:border-b-0 md:border-r border-slate-100 pb-6 md:pb-0 md:pr-8", children: [_jsx("div", { className: "relative w-20 h-20 md:w-24 md:h-24 rounded-full overflow-hidden border-4 border-slate-50 shadow-sm", children: _jsx(Image, { src: program.mentorAvatar || "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=150&h=150&fit=crop", alt: program.mentorName, fill: true, className: "object-cover"
|
|
18
|
+
return (_jsxs(motion.div, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, className: cn("bg-white border-2 rounded-3xl overflow-hidden transition-all", isExpired ? "border-slate-100 opacity-75" : "border-slate-100 hover:border-blue-200 hover:shadow-xl shadow-sm"), children: [_jsx("div", { className: "p-6 md:p-8", children: _jsxs("div", { className: "flex flex-col md:flex-row gap-8", children: [_jsxs("div", { className: "flex flex-row md:flex-col items-center md:items-center gap-4 md:w-48 text-center border-b md:border-b-0 md:border-r border-slate-100 pb-6 md:pb-0 md:pr-8", children: [_jsx("div", { className: "relative w-20 h-20 md:w-24 md:h-24 rounded-full overflow-hidden border-4 border-slate-50 shadow-sm", children: _jsx(Image, { src: program.mentorAvatar || "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=150&h=150&fit=crop", alt: program.mentorName, fill: true, className: "object-cover" }) }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-slate-900 mt-2", children: program.mentorName }), _jsx("p", { className: "text-xs font-medium text-blue-600 uppercase tracking-widest", children: "Lead Mentor" })] })] }), _jsxs("div", { className: "flex-1 space-y-6", children: [_jsxs("div", { className: "flex flex-col md:flex-row justify-between items-start gap-4", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx("span", { className: cn("px-2 py-0.5 rounded-full text-[10px] font-black uppercase tracking-widest", isExpired ? "bg-slate-100 text-slate-500" : "bg-blue-100 text-blue-700"), children: isExpired ? 'Completed' : 'Active Program' }), !isExpired && daysRemaining <= 7 && (_jsxs("span", { className: "flex items-center gap-1 text-orange-600 text-[10px] font-bold", children: [_jsx(AlertCircle, { className: "w-3 h-3" }), " Expiers Soon"] }))] }), _jsx("h3", { className: "text-2xl font-black text-slate-900", children: program.name })] }), _jsxs("div", { className: "text-right", children: [_jsx("p", { className: "text-xs font-bold text-slate-400 uppercase tracking-widest mb-1", children: "Expires On" }), _jsx("p", { className: cn("font-mono font-bold", isExpired ? "text-slate-400" : "text-slate-900"), children: formatDateSafe(program.expiryDate, undefined, { month: 'short', day: 'numeric', year: 'numeric' }) })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between items-end text-sm", children: [_jsx("span", { className: "font-bold text-slate-600", children: "Session Progress" }), _jsxs("span", { className: "font-mono font-black text-slate-900", children: [program.sessionsCompleted, "/", program.sessionsTotal, " ", _jsx("span", { className: "text-slate-400 font-medium text-xs", children: "SESSIONS" })] })] }), _jsx("div", { className: "w-full h-3 bg-slate-100 rounded-full overflow-hidden", children: _jsx(motion.div, { initial: { width: 0 }, animate: { width: `${progress}%` }, transition: { duration: 1, ease: "easeOut" }, className: cn("h-full rounded-full transition-all", isExpired ? "bg-slate-300" : "bg-gradient-to-r from-blue-500 to-indigo-600") }) })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4 pt-4 border-t border-slate-50", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-10 h-10 rounded-xl bg-slate-50 flex items-center justify-center text-slate-400", children: _jsx(Calendar, { className: "w-5 h-5" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-[10px] font-black uppercase tracking-widest text-slate-400", children: "Next Session" }), _jsx("p", { className: "text-sm font-bold text-slate-700", children: program.nextSessionDate || 'TBD' })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-10 h-10 rounded-xl bg-slate-50 flex items-center justify-center text-slate-400", children: _jsx(MessageSquare, { className: "w-5 h-5" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-[10px] font-black uppercase tracking-widest text-slate-400", children: "Messages" }), _jsx("p", { className: "text-sm font-bold text-slate-700", children: "12 New" })] })] }), _jsxs("div", { className: "flex items-center gap-3 hidden md:flex", children: [_jsx("div", { className: "w-10 h-10 rounded-xl bg-slate-50 flex items-center justify-center text-slate-400", children: _jsx(Clock, { className: "w-5 h-5" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-[10px] font-black uppercase tracking-widest text-slate-400", children: "Enrollment" }), _jsx("p", { className: "text-sm font-bold text-slate-700", children: daysRemaining > 0 ? `${daysRemaining} days left` : 'Expired' })] })] })] })] })] }) }), _jsxs("div", { className: "bg-slate-50/50 border-t border-slate-100 px-8 py-4 flex flex-col sm:flex-row justify-between items-center gap-4", children: [_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("button", { className: "text-sm font-bold text-slate-500 hover:text-slate-900 transition-colors flex items-center gap-2", children: [_jsx(Video, { className: "w-4 h-4" }), " Room Link"] }), _jsx("div", { className: "w-[1px] h-4 bg-slate-200" }), _jsxs("button", { className: "text-sm font-bold text-slate-500 hover:text-slate-900 transition-colors flex items-center gap-2", children: [_jsx(ExternalLink, { className: "w-4 h-4" }), " Resources"] })] }), _jsxs("div", { className: "flex gap-3 w-full sm:w-auto", children: [_jsx(Button, { variant: "outline", className: "flex-1 sm:flex-none rounded-full px-6 font-bold h-11 border-slate-200", children: "Manage Schedule" }), _jsx(Button, { className: "flex-1 sm:flex-none rounded-full px-8 font-bold h-11 bg-black text-white hover:bg-slate-800 shadow-lg shadow-black/10", children: "Enter Session" })] })] })] }, program.id));
|
|
19
19
|
}) }));
|
|
20
20
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Ruler, X } from 'lucide-react';
|
|
4
|
-
import { DEFAULT_COLOR_SWATCHES, formatAttributeLabel, resolveVariantImageUrls, } from '../../lib/product-variation-utils
|
|
4
|
+
import { DEFAULT_COLOR_SWATCHES, formatAttributeLabel, resolveVariantImageUrls, } from '../../lib/product-variation-utils';
|
|
5
5
|
function getOptionImage(variants, attributeKey, value) {
|
|
6
6
|
if (!variants?.length)
|
|
7
7
|
return undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { richFieldHasContent } from '../../lib/rich-html
|
|
4
|
-
import { SafeRichHtml } from './SafeRichHtml
|
|
3
|
+
import { richFieldHasContent } from '../../lib/rich-html';
|
|
4
|
+
import { SafeRichHtml } from './SafeRichHtml';
|
|
5
5
|
/** Category hero / detail description — renders sanitized WYSIWYG HTML. */
|
|
6
6
|
export function CategoryDescription({ description, className }) {
|
|
7
7
|
if (!richFieldHasContent(description))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { richFieldHasContent } from '../../lib/rich-html
|
|
4
|
-
import { SafeRichHtml } from './SafeRichHtml
|
|
3
|
+
import { richFieldHasContent } from '../../lib/rich-html';
|
|
4
|
+
import { SafeRichHtml } from './SafeRichHtml';
|
|
5
5
|
/** Product detail description block — WYSIWYG HTML, legacy plain text, or JSON snapshots. */
|
|
6
6
|
export function ProductDescription({ description, title = 'Description', className = 'mb-8', proseClassName = 'prose prose-sm max-w-none text-gray-600 leading-relaxed', }) {
|
|
7
7
|
if (!richFieldHasContent(description))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { richFieldHasContent, richFieldPlainTextForDisplay } from '../../lib/rich-html
|
|
3
|
+
import { richFieldHasContent, richFieldPlainTextForDisplay } from '../../lib/rich-html';
|
|
4
4
|
/** Plain-text excerpt from WYSIWYG / legacy HTML — safe for cards, meta, and line-clamp. */
|
|
5
5
|
export function RichTextExcerpt({ value, fallbackPlain = '', className, as: Tag = 'span', }) {
|
|
6
6
|
if (!richFieldHasContent(value))
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
/** Persisted rich object, legacy string, or undefined */
|
|
1
|
+
import React, { type ElementType } from 'react';
|
|
2
|
+
type SafeRichHtmlProps = {
|
|
4
3
|
value: unknown;
|
|
5
|
-
|
|
6
|
-
fallbackPlain: string;
|
|
4
|
+
fallbackPlain?: string;
|
|
7
5
|
className?: string;
|
|
8
|
-
as?:
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export declare function SafeRichHtml({ value, fallbackPlain, className, as: Tag }: SafeRichHtmlProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
6
|
+
as?: ElementType;
|
|
7
|
+
};
|
|
8
|
+
/** Renders merchant rich text using the canonical sanitize path. */
|
|
9
|
+
export declare function SafeRichHtml({ value, fallbackPlain, className, as: Tag, }: SafeRichHtmlProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
10
|
+
export {};
|
|
14
11
|
//# sourceMappingURL=SafeRichHtml.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SafeRichHtml.d.ts","sourceRoot":"","sources":["../../../src/components/rich-text/SafeRichHtml.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"SafeRichHtml.d.ts","sourceRoot":"","sources":["../../../src/components/rich-text/SafeRichHtml.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAW,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,aAAa,EACb,SAAS,EACT,EAAE,EAAE,GAAY,GACjB,EAAE,iBAAiB,sEAYnB"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import React, { useMemo } from 'react';
|
|
3
|
-
import { richFieldHtmlForRender } from '../../lib/rich-html
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
export function SafeRichHtml({ value, fallbackPlain, className, as: Tag = 'span' }) {
|
|
3
|
+
import { richFieldHtmlForRender } from '../../lib/rich-html';
|
|
4
|
+
/** Renders merchant rich text using the canonical sanitize path. */
|
|
5
|
+
export function SafeRichHtml({ value, fallbackPlain, className, as: Tag = 'span', }) {
|
|
8
6
|
const html = useMemo(() => richFieldHtmlForRender(value, fallbackPlain), [value, fallbackPlain]);
|
|
9
7
|
if (!html)
|
|
10
8
|
return React.createElement(Tag, { className });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductDeliveryInfoSection.d.ts","sourceRoot":"","sources":["../../../src/components/shipping/ProductDeliveryInfoSection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductDeliveryInfoSection.d.ts","sourceRoot":"","sources":["../../../src/components/shipping/ProductDeliveryInfoSection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAQnE,UAAU,+BAA+B;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,oBAAoB,CAAC;IACtC,qBAAqB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IACtE,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,0BAA0B,CAAC,EACzC,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,GACR,EAAE,+BAA+B,2CAiIjC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { CheckCircle, Truck } from 'lucide-react';
|
|
4
|
-
import { isAutomatedShippingEnabled } from '../../lib/shipping-settings.util
|
|
5
|
-
import { cn, formatCurrency } from '../../lib/utils
|
|
6
|
-
import { ShippingQuoteAddressForm } from './ShippingQuoteAddressForm
|
|
7
|
-
import { MerchantHandledDeliveryNotice } from './MerchantHandledDeliveryNotice
|
|
4
|
+
import { isAutomatedShippingEnabled } from '../../lib/shipping-settings.util';
|
|
5
|
+
import { cn, formatCurrency } from '../../lib/utils';
|
|
6
|
+
import { ShippingQuoteAddressForm } from './ShippingQuoteAddressForm';
|
|
7
|
+
import { MerchantHandledDeliveryNotice } from './MerchantHandledDeliveryNotice';
|
|
8
|
+
const SHOW_PDP_DELIVERY_INFO = false;
|
|
8
9
|
export function ProductDeliveryInfoSection({ storeConfig, currency, productCurrency, productPrice, quantity, shippingAddress, updateShippingAddress, shippingMethods, isCalculatingShipping, shippingError, freeShippingEligible, freeShippingThreshold, onToast, }) {
|
|
10
|
+
if (!SHOW_PDP_DELIVERY_INFO)
|
|
11
|
+
return null;
|
|
9
12
|
const displayCurrency = productCurrency || currency;
|
|
10
13
|
const automatedShipping = isAutomatedShippingEnabled(storeConfig);
|
|
11
14
|
return (_jsxs("div", { className: "mb-8 border-t border-b border-gray-100 py-6", children: [_jsxs("h3", { className: "font-bold text-gray-900 flex items-center gap-2 text-sm mb-4 uppercase tracking-wider", children: [_jsx(Truck, { className: "h-4 w-4" }), " Delivery Information"] }), !automatedShipping ? (_jsx(MerchantHandledDeliveryNotice, { storeName: storeConfig.name })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "mb-4 p-4 bg-gray-50 rounded-lg border border-gray-200", children: [_jsx("p", { className: "text-xs font-semibold text-gray-700 mb-3 uppercase tracking-wider", children: "Calculate Shipping" }), _jsx(ShippingQuoteAddressForm, { address: shippingAddress, onChange: updateShippingAddress, onToast: onToast }), shippingError && (_jsx("p", { className: "text-xs text-red-600 mt-2", children: shippingError }))] }), freeShippingThreshold !== undefined && !freeShippingEligible && (_jsxs("div", { className: "mb-4 p-3 bg-blue-50 border border-blue-200 rounded-lg", children: [_jsxs("p", { className: "text-xs font-medium text-blue-900 mb-1", children: ["Spend", ' ', formatCurrency(freeShippingThreshold - productPrice * quantity, displayCurrency), ' ', "more for free shipping!"] }), _jsx("div", { className: "w-full bg-blue-200 rounded-full h-2", children: _jsx("div", { className: "bg-blue-600 h-2 rounded-full transition-all", style: {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { ChevronDown } from 'lucide-react';
|
|
5
|
-
import { cn } from '../../lib/utils
|
|
6
|
-
import { countries, getCountryByName, getCitiesByCountry, getNigerianCitiesByState } from '../../lib/countries
|
|
7
|
-
import { isNigeria, deriveNigerianStateFromCity, NIGERIAN_STATES, enrichShippingQuoteAddress, } from '../../lib/shipping-address.util
|
|
5
|
+
import { cn } from '../../lib/utils';
|
|
6
|
+
import { countries, getCountryByName, getCitiesByCountry, getNigerianCitiesByState } from '../../lib/countries';
|
|
7
|
+
import { isNigeria, deriveNigerianStateFromCity, NIGERIAN_STATES, enrichShippingQuoteAddress, } from '../../lib/shipping-address.util';
|
|
8
8
|
export function ShippingQuoteAddressForm({ address, onChange, onToast, className, showPhone = false, }) {
|
|
9
9
|
const [isCountryOpen, setIsCountryOpen] = useState(false);
|
|
10
10
|
const [isCityOpen, setIsCityOpen] = useState(false);
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { createContext, useContext, useState, useCallback } from 'react';
|
|
4
4
|
import { CheckCircle2, AlertCircle, Info, AlertTriangle } from 'lucide-react';
|
|
5
|
-
import { cn } from '../../lib/utils
|
|
6
|
-
import { Button } from './button
|
|
5
|
+
import { cn } from '../../lib/utils';
|
|
6
|
+
import { Button } from './button';
|
|
7
7
|
export const AlertModalContext = createContext(undefined);
|
|
8
8
|
export function AlertModalProvider({ children }) {
|
|
9
9
|
const [alert, setAlert] = useState({
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useEffect, useRef } from 'react';
|
|
4
4
|
import { User } from 'lucide-react';
|
|
5
|
-
import { cn } from '../../lib/utils
|
|
5
|
+
import { cn } from '../../lib/utils';
|
|
6
6
|
export function AvatarImage({ src, alt = 'Profile', size = 40, className, fallbackIcon, fill = false, }) {
|
|
7
7
|
const [imageError, setImageError] = useState(false);
|
|
8
8
|
const [imageLoaded, setImageLoaded] = useState(false);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
|
-
import { cn } from "../../lib/utils
|
|
3
|
+
import { cn } from "../../lib/utils";
|
|
4
4
|
const badgeVariants = cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", {
|
|
5
5
|
variants: {
|
|
6
6
|
variant: {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import Link from 'next/link';
|
|
5
|
-
import { formatDisplayLabel } from '../../lib/utils
|
|
5
|
+
import { formatDisplayLabel } from '../../lib/utils';
|
|
6
6
|
export function Breadcrumbs({ items, variant = 'default', className }) {
|
|
7
7
|
const isLight = variant === 'light';
|
|
8
8
|
return (_jsx("nav", { className: `flex items-center gap-3 text-[10px] sm:text-[11px] uppercase tracking-[0.1em] font-bold ${isLight ? 'text-white' : 'text-brand-text-muted/70'} ${className || ''}`, children: items.map((item, index) => {
|
|
@@ -2,7 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const buttonVariants: (props?: {
|
|
4
4
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost";
|
|
5
|
-
size?: "
|
|
5
|
+
size?: "default" | "sm" | "lg" | "xl" | "icon" | "icon-sm" | "icon-lg";
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) => string;
|
|
7
7
|
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
8
8
|
asChild?: boolean;
|