@pradip1995/create-storefront 1.0.1
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/bin/create-storefront.js +239 -0
- package/lib/kit-next-config.js +84 -0
- package/package.json +32 -0
- package/templates/storefront/.eslintrc.json +3 -0
- package/templates/storefront/README.md +35 -0
- package/templates/storefront/check-env-variables.js +51 -0
- package/templates/storefront/kit-next-config.js +71 -0
- package/templates/storefront/next-env.d.ts +5 -0
- package/templates/storefront/next.config.js +25 -0
- package/templates/storefront/package.json +56 -0
- package/templates/storefront/postcss.config.js +6 -0
- package/templates/storefront/public/favicon.png +0 -0
- package/templates/storefront/src/app/[countryCode]/(checkout)/checkout/page.tsx +23 -0
- package/templates/storefront/src/app/[countryCode]/(checkout)/checkout/payment/page.tsx +47 -0
- package/templates/storefront/src/app/[countryCode]/(checkout)/layout.tsx +31 -0
- package/templates/storefront/src/app/[countryCode]/(checkout)/not-found.tsx +19 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/addresses/page.tsx +31 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/loading.tsx +9 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/orders/details/[id]/page.tsx +35 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/orders/exchange/[id]/page.tsx +47 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/orders/page.tsx +28 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/orders/return/[id]/page.tsx +66 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/page.tsx +22 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/payment-methods/page.tsx +23 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@dashboard/profile/page.tsx +43 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@login/default.tsx +11 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/@login/page.tsx +18 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/guest-orders/page.tsx +13 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/layout.tsx +22 -0
- package/templates/storefront/src/app/[countryCode]/(main)/account/loading.tsx +9 -0
- package/templates/storefront/src/app/[countryCode]/(main)/cart/loading.tsx +5 -0
- package/templates/storefront/src/app/[countryCode]/(main)/cart/not-found.tsx +21 -0
- package/templates/storefront/src/app/[countryCode]/(main)/cart/page.tsx +23 -0
- package/templates/storefront/src/app/[countryCode]/(main)/categories/[...category]/page.tsx +11 -0
- package/templates/storefront/src/app/[countryCode]/(main)/collections/[handle]/page.tsx +11 -0
- package/templates/storefront/src/app/[countryCode]/(main)/contact/page.tsx +21 -0
- package/templates/storefront/src/app/[countryCode]/(main)/guest-orders/page.tsx +12 -0
- package/templates/storefront/src/app/[countryCode]/(main)/help/page.tsx +28 -0
- package/templates/storefront/src/app/[countryCode]/(main)/layout.tsx +21 -0
- package/templates/storefront/src/app/[countryCode]/(main)/not-found.tsx +20 -0
- package/templates/storefront/src/app/[countryCode]/(main)/order/[id]/confirmed/loading.tsx +5 -0
- package/templates/storefront/src/app/[countryCode]/(main)/order/[id]/confirmed/page.tsx +23 -0
- package/templates/storefront/src/app/[countryCode]/(main)/order/[id]/transfer/[token]/accept/page.tsx +41 -0
- package/templates/storefront/src/app/[countryCode]/(main)/order/[id]/transfer/[token]/decline/page.tsx +41 -0
- package/templates/storefront/src/app/[countryCode]/(main)/order/[id]/transfer/[token]/page.tsx +38 -0
- package/templates/storefront/src/app/[countryCode]/(main)/order/exchange/[id]/page.tsx +47 -0
- package/templates/storefront/src/app/[countryCode]/(main)/order/return/[id]/page.tsx +61 -0
- package/templates/storefront/src/app/[countryCode]/(main)/orders/[id]/page.tsx +33 -0
- package/templates/storefront/src/app/[countryCode]/(main)/page.tsx +24 -0
- package/templates/storefront/src/app/[countryCode]/(main)/privacy-policy/page.tsx +173 -0
- package/templates/storefront/src/app/[countryCode]/(main)/products/[handle]/page.tsx +193 -0
- package/templates/storefront/src/app/[countryCode]/(main)/reset-password/page.tsx +192 -0
- package/templates/storefront/src/app/[countryCode]/(main)/store/page.tsx +72 -0
- package/templates/storefront/src/app/[countryCode]/(main)/terms-of-use/page.tsx +179 -0
- package/templates/storefront/src/app/[countryCode]/(main)/wishlist/page.tsx +19 -0
- package/templates/storefront/src/app/api/meta/event/route.ts +63 -0
- package/templates/storefront/src/app/auth/customer/google/callback/page.tsx +126 -0
- package/templates/storefront/src/app/layout.tsx +104 -0
- package/templates/storefront/src/app/not-found.tsx +30 -0
- package/templates/storefront/src/app/opengraph-image.jpg +0 -0
- package/templates/storefront/src/app/robots.ts +15 -0
- package/templates/storefront/src/app/sitemap.ts +65 -0
- package/templates/storefront/src/app/twitter-image.jpg +0 -0
- package/templates/storefront/src/modules/account/components/account-deletion/index.tsx +160 -0
- package/templates/storefront/src/modules/account/components/account-info/index.tsx +145 -0
- package/templates/storefront/src/modules/account/components/account-nav/icons.tsx +43 -0
- package/templates/storefront/src/modules/account/components/account-nav/index.tsx +318 -0
- package/templates/storefront/src/modules/account/components/account-nav/logout-modal.tsx +92 -0
- package/templates/storefront/src/modules/account/components/account-nav/payment-methods-icon.tsx +9 -0
- package/templates/storefront/src/modules/account/components/address-book/index.tsx +47 -0
- package/templates/storefront/src/modules/account/components/address-card/add-address.tsx +377 -0
- package/templates/storefront/src/modules/account/components/address-card/edit-address-modal.tsx +468 -0
- package/templates/storefront/src/modules/account/components/deletion-pending-modal/index.tsx +213 -0
- package/templates/storefront/src/modules/account/components/forgot-password/index.tsx +1 -0
- package/templates/storefront/src/modules/account/components/login/index.tsx +1 -0
- package/templates/storefront/src/modules/account/components/order-card/index.tsx +221 -0
- package/templates/storefront/src/modules/account/components/order-overview/index.tsx +159 -0
- package/templates/storefront/src/modules/account/components/overview/index.tsx +189 -0
- package/templates/storefront/src/modules/account/components/profile-billing-address/index.tsx +447 -0
- package/templates/storefront/src/modules/account/components/profile-email/index.tsx +75 -0
- package/templates/storefront/src/modules/account/components/profile-form/index.tsx +416 -0
- package/templates/storefront/src/modules/account/components/profile-name/index.tsx +76 -0
- package/templates/storefront/src/modules/account/components/profile-password/index.tsx +70 -0
- package/templates/storefront/src/modules/account/components/profile-phone/index.tsx +185 -0
- package/templates/storefront/src/modules/account/components/register/index.tsx +1 -0
- package/templates/storefront/src/modules/account/components/return-item-selector/index.tsx +187 -0
- package/templates/storefront/src/modules/account/components/return-shipping-selector/index.tsx +118 -0
- package/templates/storefront/src/modules/account/components/transfer-request-form/index.tsx +81 -0
- package/templates/storefront/src/modules/account/templates/account-layout.tsx +38 -0
- package/templates/storefront/src/modules/account/templates/exchange-request-template.tsx +389 -0
- package/templates/storefront/src/modules/account/templates/guest-orders-template.tsx +123 -0
- package/templates/storefront/src/modules/account/templates/login-template.tsx +44 -0
- package/templates/storefront/src/modules/account/templates/payment-methods-template.tsx +478 -0
- package/templates/storefront/src/modules/account/templates/return-request-template.tsx +300 -0
- package/templates/storefront/src/modules/cart/components/abandoned-carts/ScrollToPendingOrdersButton.tsx +21 -0
- package/templates/storefront/src/modules/cart/components/abandoned-carts/index.tsx +335 -0
- package/templates/storefront/src/modules/cart/components/applied-promotions/index.tsx +121 -0
- package/templates/storefront/src/modules/cart/components/cart-delivery-selection/index.tsx +203 -0
- package/templates/storefront/src/modules/cart/components/cart-item-card/index.tsx +476 -0
- package/templates/storefront/src/modules/cart/components/cart-item-select/index.tsx +73 -0
- package/templates/storefront/src/modules/cart/components/cart-view-tracker/index.tsx +44 -0
- package/templates/storefront/src/modules/cart/components/delivery-information/index.tsx +89 -0
- package/templates/storefront/src/modules/cart/components/empty-cart-message/index.tsx +38 -0
- package/templates/storefront/src/modules/cart/components/item/index.tsx +150 -0
- package/templates/storefront/src/modules/cart/components/pincode-checker/index.tsx +174 -0
- package/templates/storefront/src/modules/cart/components/sign-in-prompt/index.tsx +26 -0
- package/templates/storefront/src/modules/cart/components/you-may-also-like/index.tsx +137 -0
- package/templates/storefront/src/modules/cart/templates/index.tsx +88 -0
- package/templates/storefront/src/modules/cart/templates/items.tsx +49 -0
- package/templates/storefront/src/modules/cart/templates/preview.tsx +51 -0
- package/templates/storefront/src/modules/cart/templates/summary.tsx +29 -0
- package/templates/storefront/src/modules/checkout/components/add-address-modal/index.tsx +390 -0
- package/templates/storefront/src/modules/checkout/components/address-card/index.tsx +135 -0
- package/templates/storefront/src/modules/checkout/components/address-select/index.tsx +116 -0
- package/templates/storefront/src/modules/checkout/components/addresses/index.tsx +605 -0
- package/templates/storefront/src/modules/checkout/components/back-link/index.tsx +32 -0
- package/templates/storefront/src/modules/checkout/components/billing_address/index.tsx +301 -0
- package/templates/storefront/src/modules/checkout/components/checkout-begin-tracker/index.tsx +45 -0
- package/templates/storefront/src/modules/checkout/components/checkout-leave-guard/index.tsx +109 -0
- package/templates/storefront/src/modules/checkout/components/checkout-shipping-tracker/index.tsx +45 -0
- package/templates/storefront/src/modules/checkout/components/country-select/index.tsx +50 -0
- package/templates/storefront/src/modules/checkout/components/discount-code/index.tsx +220 -0
- package/templates/storefront/src/modules/checkout/components/error-message/index.tsx +13 -0
- package/templates/storefront/src/modules/checkout/components/payment/index.tsx +572 -0
- package/templates/storefront/src/modules/checkout/components/payment-button/index.tsx +257 -0
- package/templates/storefront/src/modules/checkout/components/payment-button/razorpay-payment-button.tsx +136 -0
- package/templates/storefront/src/modules/checkout/components/payment-container/index.tsx +129 -0
- package/templates/storefront/src/modules/checkout/components/payment-test/index.tsx +12 -0
- package/templates/storefront/src/modules/checkout/components/payment-wrapper/index.tsx +50 -0
- package/templates/storefront/src/modules/checkout/components/payment-wrapper/stripe-wrapper.tsx +54 -0
- package/templates/storefront/src/modules/checkout/components/processing-overlay/index.tsx +83 -0
- package/templates/storefront/src/modules/checkout/components/review/index.tsx +60 -0
- package/templates/storefront/src/modules/checkout/components/select-address-modal/index.tsx +103 -0
- package/templates/storefront/src/modules/checkout/components/shipping/index.tsx +533 -0
- package/templates/storefront/src/modules/checkout/components/shipping-address/index.tsx +521 -0
- package/templates/storefront/src/modules/checkout/components/submit-button/index.tsx +32 -0
- package/templates/storefront/src/modules/checkout/templates/checkout-form/index.tsx +38 -0
- package/templates/storefront/src/modules/checkout/templates/checkout-summary/index.tsx +274 -0
- package/templates/storefront/src/modules/common/components/breadcrumb/index.tsx +43 -0
- package/templates/storefront/src/modules/common/components/cart-totals/index.tsx +473 -0
- package/templates/storefront/src/modules/common/components/checkbox/index.tsx +98 -0
- package/templates/storefront/src/modules/common/components/delete-button/index.tsx +156 -0
- package/templates/storefront/src/modules/common/components/divider/index.tsx +9 -0
- package/templates/storefront/src/modules/common/components/filter-checkbox-group/index.tsx +134 -0
- package/templates/storefront/src/modules/common/components/filter-radio-group/index.tsx +62 -0
- package/templates/storefront/src/modules/common/components/input/index.tsx +79 -0
- package/templates/storefront/src/modules/common/components/interactive-link/index.tsx +33 -0
- package/templates/storefront/src/modules/common/components/line-item-options/index.tsx +26 -0
- package/templates/storefront/src/modules/common/components/line-item-price/index.tsx +64 -0
- package/templates/storefront/src/modules/common/components/line-item-unit-price/index.tsx +61 -0
- package/templates/storefront/src/modules/common/components/localized-client-link/index.tsx +32 -0
- package/templates/storefront/src/modules/common/components/login-popup/index.tsx +78 -0
- package/templates/storefront/src/modules/common/components/modal/index.tsx +123 -0
- package/templates/storefront/src/modules/common/components/native-select/index.tsx +75 -0
- package/templates/storefront/src/modules/common/components/obfuscated-email/index.tsx +30 -0
- package/templates/storefront/src/modules/common/components/product/product-rating/index.tsx +172 -0
- package/templates/storefront/src/modules/common/components/product/review-modal/index.tsx +333 -0
- package/templates/storefront/src/modules/common/components/product/share-button/index.tsx +227 -0
- package/templates/storefront/src/modules/common/components/product/wishlist-icon/index.tsx +46 -0
- package/templates/storefront/src/modules/common/components/radio/index.tsx +27 -0
- package/templates/storefront/src/modules/common/components/select/index.tsx +164 -0
- package/templates/storefront/src/modules/common/components/side-panel/index.tsx +65 -0
- package/templates/storefront/src/modules/common/icons/arrow-left.tsx +36 -0
- package/templates/storefront/src/modules/common/icons/back.tsx +37 -0
- package/templates/storefront/src/modules/common/icons/bancontact.tsx +26 -0
- package/templates/storefront/src/modules/common/icons/chevron-down.tsx +30 -0
- package/templates/storefront/src/modules/common/icons/delivered.tsx +29 -0
- package/templates/storefront/src/modules/common/icons/envelope.tsx +27 -0
- package/templates/storefront/src/modules/common/icons/eye-off.tsx +37 -0
- package/templates/storefront/src/modules/common/icons/eye.tsx +37 -0
- package/templates/storefront/src/modules/common/icons/fast-delivery.tsx +65 -0
- package/templates/storefront/src/modules/common/icons/ideal.tsx +26 -0
- package/templates/storefront/src/modules/common/icons/lock.tsx +31 -0
- package/templates/storefront/src/modules/common/icons/map-pin.tsx +37 -0
- package/templates/storefront/src/modules/common/icons/medusa.tsx +27 -0
- package/templates/storefront/src/modules/common/icons/menu.tsx +45 -0
- package/templates/storefront/src/modules/common/icons/nextjs.tsx +27 -0
- package/templates/storefront/src/modules/common/icons/package.tsx +44 -0
- package/templates/storefront/src/modules/common/icons/paypal.tsx +30 -0
- package/templates/storefront/src/modules/common/icons/phone.tsx +30 -0
- package/templates/storefront/src/modules/common/icons/placeholder-image.tsx +44 -0
- package/templates/storefront/src/modules/common/icons/refresh.tsx +51 -0
- package/templates/storefront/src/modules/common/icons/spinner.tsx +37 -0
- package/templates/storefront/src/modules/common/icons/trash.tsx +51 -0
- package/templates/storefront/src/modules/common/icons/user.tsx +37 -0
- package/templates/storefront/src/modules/common/icons/x.tsx +37 -0
- package/templates/storefront/src/modules/contact/templates/index.tsx +272 -0
- package/templates/storefront/src/modules/help/templates/index.tsx +629 -0
- package/templates/storefront/src/modules/home/components/dynamic-banner/index.tsx +190 -0
- package/templates/storefront/src/modules/home/components/featured-products/index.tsx +16 -0
- package/templates/storefront/src/modules/home/components/featured-products/product-rail/index.tsx +51 -0
- package/templates/storefront/src/modules/home/components/features/index.tsx +1 -0
- package/templates/storefront/src/modules/home/components/hero/index.tsx +1 -0
- package/templates/storefront/src/modules/home/components/loved-by-moms/index.tsx +1 -0
- package/templates/storefront/src/modules/home/components/new-arrivals/index.tsx +1 -0
- package/templates/storefront/src/modules/home/components/shop-by-age/index.tsx +1 -0
- package/templates/storefront/src/modules/home/components/shop-by-category/index.tsx +1 -0
- package/templates/storefront/src/modules/home/components/testimonials/index.tsx +1 -0
- package/templates/storefront/src/modules/home/components/why-choose-us/dynamic-features.tsx +93 -0
- package/templates/storefront/src/modules/home/components/why-choose-us/index.tsx +1 -0
- package/templates/storefront/src/modules/layout/components/account-dropdown/index.tsx +56 -0
- package/templates/storefront/src/modules/layout/components/cart-button/index.tsx +8 -0
- package/templates/storefront/src/modules/layout/components/cart-dropdown/index.tsx +424 -0
- package/templates/storefront/src/modules/layout/components/cart-mismatch-banner/index.tsx +57 -0
- package/templates/storefront/src/modules/layout/components/cookie-consent/index.tsx +116 -0
- package/templates/storefront/src/modules/layout/components/country-select/index.tsx +135 -0
- package/templates/storefront/src/modules/layout/components/desktop-search/index.tsx +148 -0
- package/templates/storefront/src/modules/layout/components/dynamic-logo/index.tsx +27 -0
- package/templates/storefront/src/modules/layout/components/footer-categories/index.tsx +34 -0
- package/templates/storefront/src/modules/layout/components/footer-contact/index.tsx +87 -0
- package/templates/storefront/src/modules/layout/components/footer-description/index.tsx +12 -0
- package/templates/storefront/src/modules/layout/components/footer-logo/index.tsx +22 -0
- package/templates/storefront/src/modules/layout/components/footer-newsletter/index.tsx +100 -0
- package/templates/storefront/src/modules/layout/components/language-select/index.tsx +192 -0
- package/templates/storefront/src/modules/layout/components/medusa-cta/index.tsx +21 -0
- package/templates/storefront/src/modules/layout/components/mobile-menu/index.tsx +296 -0
- package/templates/storefront/src/modules/layout/components/nav-links/index.tsx +66 -0
- package/templates/storefront/src/modules/layout/components/nav-wrapper/index.tsx +14 -0
- package/templates/storefront/src/modules/layout/components/promo-bar/index.tsx +7 -0
- package/templates/storefront/src/modules/layout/components/promo-bar/promo-bar-content.tsx +174 -0
- package/templates/storefront/src/modules/layout/components/push-notification-manager/index.tsx +191 -0
- package/templates/storefront/src/modules/layout/components/search-panel/index.tsx +136 -0
- package/templates/storefront/src/modules/layout/components/side-menu/index.tsx +144 -0
- package/templates/storefront/src/modules/layout/components/verification-banner/index.tsx +217 -0
- package/templates/storefront/src/modules/layout/components/wishlist-counter/index.tsx +17 -0
- package/templates/storefront/src/modules/layout/templates/footer/index.tsx +7 -0
- package/templates/storefront/src/modules/layout/templates/nav/index.tsx +14 -0
- package/templates/storefront/src/modules/order/components/cancel-order-modal/index.tsx +168 -0
- package/templates/storefront/src/modules/order/components/help/index.tsx +25 -0
- package/templates/storefront/src/modules/order/components/item/index.tsx +62 -0
- package/templates/storefront/src/modules/order/components/items/index.tsx +44 -0
- package/templates/storefront/src/modules/order/components/onboarding-cta/index.tsx +28 -0
- package/templates/storefront/src/modules/order/components/order-confirmation-back-handler/index.tsx +28 -0
- package/templates/storefront/src/modules/order/components/order-details/index.tsx +63 -0
- package/templates/storefront/src/modules/order/components/order-purchase-tracker/index.tsx +48 -0
- package/templates/storefront/src/modules/order/components/order-redesign/index.tsx +887 -0
- package/templates/storefront/src/modules/order/components/order-summary/index.tsx +60 -0
- package/templates/storefront/src/modules/order/components/payment-details/index.tsx +63 -0
- package/templates/storefront/src/modules/order/components/shipping-details/index.tsx +73 -0
- package/templates/storefront/src/modules/order/components/transfer-actions/index.tsx +81 -0
- package/templates/storefront/src/modules/order/components/transfer-image/index.tsx +275 -0
- package/templates/storefront/src/modules/order/templates/order-completed-template.tsx +233 -0
- package/templates/storefront/src/modules/order/templates/order-details-template.tsx +128 -0
- package/templates/storefront/src/modules/products/components/image-gallery/index.tsx +297 -0
- package/templates/storefront/src/modules/products/components/product-actions/index.tsx +1400 -0
- package/templates/storefront/src/modules/products/components/product-actions/mobile-actions.tsx +217 -0
- package/templates/storefront/src/modules/products/components/product-actions/option-select.tsx +62 -0
- package/templates/storefront/src/modules/products/components/product-onboarding-cta/index.tsx +30 -0
- package/templates/storefront/src/modules/products/components/product-preview/index.tsx +5 -0
- package/templates/storefront/src/modules/products/components/product-preview/price.tsx +29 -0
- package/templates/storefront/src/modules/products/components/product-price/index.tsx +58 -0
- package/templates/storefront/src/modules/products/components/product-rating/index.tsx +1 -0
- package/templates/storefront/src/modules/products/components/product-tabs/accordion.tsx +100 -0
- package/templates/storefront/src/modules/products/components/product-tabs/index.tsx +127 -0
- package/templates/storefront/src/modules/products/components/product-tabs/ratings-tab.tsx +598 -0
- package/templates/storefront/src/modules/products/components/product-view-tracker/index.tsx +53 -0
- package/templates/storefront/src/modules/products/components/related-products/index.tsx +152 -0
- package/templates/storefront/src/modules/products/components/review-modal/index.tsx +1 -0
- package/templates/storefront/src/modules/products/components/share-button/index.tsx +1 -0
- package/templates/storefront/src/modules/products/components/thumbnail/index.tsx +91 -0
- package/templates/storefront/src/modules/products/components/wishlist-icon/index.tsx +1 -0
- package/templates/storefront/src/modules/products/context/product-context.tsx +52 -0
- package/templates/storefront/src/modules/products/templates/index.tsx +26 -0
- package/templates/storefront/src/modules/products/templates/product-actions-wrapper/index.tsx +1 -0
- package/templates/storefront/src/modules/products/templates/product-info/index.tsx +2 -0
- package/templates/storefront/src/modules/shipping/components/free-shipping-price-nudge/index.tsx +283 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-button/index.tsx +5 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-card-details/index.tsx +10 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-cart-item/index.tsx +35 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-cart-totals/index.tsx +30 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-code-form/index.tsx +13 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-line-item/index.tsx +35 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-order-confirmed-header/index.tsx +14 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-order-information/index.tsx +36 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-order-items/index.tsx +43 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-order-summary/index.tsx +15 -0
- package/templates/storefront/src/modules/skeletons/components/skeleton-product-preview/index.tsx +15 -0
- package/templates/storefront/src/modules/skeletons/templates/skeleton-cart-page/index.tsx +65 -0
- package/templates/storefront/src/modules/skeletons/templates/skeleton-order-confirmed/index.tsx +21 -0
- package/templates/storefront/src/modules/skeletons/templates/skeleton-product-grid/index.tsx +23 -0
- package/templates/storefront/src/modules/skeletons/templates/skeleton-related-products/index.tsx +25 -0
- package/templates/storefront/src/modules/store/components/client-paginated-products.tsx +108 -0
- package/templates/storefront/src/modules/store/components/mobile-filters/index.tsx +135 -0
- package/templates/storefront/src/modules/store/components/pagination/index.tsx +118 -0
- package/templates/storefront/src/modules/store/components/product-list-view-tracker/index.tsx +43 -0
- package/templates/storefront/src/modules/store/components/refinement-list/index.tsx +299 -0
- package/templates/storefront/src/modules/store/components/refinement-list/sort-products/index.tsx +120 -0
- package/templates/storefront/src/modules/store/components/store-header/index.tsx +67 -0
- package/templates/storefront/src/modules/store/templates/index.tsx +1 -0
- package/templates/storefront/src/modules/store/templates/paginated-products.tsx +175 -0
- package/templates/storefront/src/modules/wishlist/components/wishlist-item/index.tsx +797 -0
- package/templates/storefront/src/modules/wishlist/templates/index.tsx +176 -0
- package/templates/storefront/src/storefront.config.ts +12 -0
- package/templates/storefront/src/styles/globals.css +326 -0
- package/templates/storefront/src/theme/valero/blocks/home/Features/index.tsx +61 -0
- package/templates/storefront/src/theme/valero/blocks/home/Hero/index.tsx +102 -0
- package/templates/storefront/src/theme/valero/blocks/home/LovedByMoms/index.tsx +407 -0
- package/templates/storefront/src/theme/valero/blocks/home/NewArrivals/index.tsx +48 -0
- package/templates/storefront/src/theme/valero/blocks/home/ShopByAge/index.tsx +128 -0
- package/templates/storefront/src/theme/valero/blocks/home/ShopByCategory/index.tsx +409 -0
- package/templates/storefront/src/theme/valero/blocks/home/Testimonials/index.tsx +697 -0
- package/templates/storefront/src/theme/valero/blocks/home/WhyChooseUs/index.tsx +62 -0
- package/templates/storefront/src/theme/valero/layouts/MainLayoutShell.tsx +14 -0
- package/templates/storefront/src/theme/valero/primitives/Button.tsx +28 -0
- package/templates/storefront/src/theme/valero/primitives/Card.tsx +32 -0
- package/templates/storefront/src/theme/valero/primitives/index.ts +2 -0
- package/templates/storefront/src/theme/valero/slots/account/ForgotPassword/index.tsx +1 -0
- package/templates/storefront/src/theme/valero/slots/account/Login/index.tsx +1 -0
- package/templates/storefront/src/theme/valero/slots/account/LoginTemplate/index.tsx +44 -0
- package/templates/storefront/src/theme/valero/slots/account/Register/index.tsx +1 -0
- package/templates/storefront/src/theme/valero/slots/cart/CartItem/index.tsx +11 -0
- package/templates/storefront/src/theme/valero/slots/cart/CartSummary/index.tsx +13 -0
- package/templates/storefront/src/theme/valero/slots/checkout/CheckoutForm/index.tsx +1 -0
- package/templates/storefront/src/theme/valero/slots/checkout/CheckoutSummary/index.tsx +1 -0
- package/templates/storefront/src/theme/valero/slots/layout/Footer/index.tsx +104 -0
- package/templates/storefront/src/theme/valero/slots/layout/Nav/index.tsx +97 -0
- package/templates/storefront/src/theme/valero/slots/layout/PromoBar/index.tsx +19 -0
- package/templates/storefront/src/theme/valero/slots/layout/PromoBar/promo-bar-content.tsx +174 -0
- package/templates/storefront/src/theme/valero/slots/order/OrderDetails/index.tsx +12 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/ProductCTASection.tsx +191 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/ProductDetailsSection.tsx +137 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/ProductFeaturePanel.tsx +245 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/ProductHighlightsSection.tsx +98 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/ProductOptionsSection.tsx +233 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/ProductPriceSection.tsx +53 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/ProductTrustSection.tsx +84 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductActions/index.tsx +161 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductCard/index.tsx +132 -0
- package/templates/storefront/src/theme/valero/slots/product/ProductInfo/index.tsx +40 -0
- package/templates/storefront/src/theme/valero/templates/StorePage/index.tsx +154 -0
- package/templates/storefront/src/theme/valero/tokens/colors.js +16 -0
- package/templates/storefront/src/theme/valero/tokens/colors.ts +21 -0
- package/templates/storefront/src/theme/valero/tokens/fonts.ts +13 -0
- package/templates/storefront/src/theme/valero/tokens/index.ts +3 -0
- package/templates/storefront/src/theme/valero/tokens/spacing.ts +9 -0
- package/templates/storefront/src/theme/valero/tokens/theme.css +91 -0
- package/templates/storefront/tailwind.config.js +221 -0
- package/templates/storefront/tsconfig.json +30 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Metadata } from "next"
|
|
2
|
+
|
|
3
|
+
import InteractiveLink from "@modules/common/components/interactive-link"
|
|
4
|
+
|
|
5
|
+
export const metadata: Metadata = {
|
|
6
|
+
title: "404",
|
|
7
|
+
description: "Something went wrong",
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default function NotFound() {
|
|
11
|
+
return (
|
|
12
|
+
<div className="flex flex-col gap-4 items-center justify-center min-h-[calc(100vh-64px)]">
|
|
13
|
+
<h1 className="text-2xl-semi text-ui-fg-base">Page not found</h1>
|
|
14
|
+
<p className="text-small-regular text-ui-fg-base">
|
|
15
|
+
The page you tried to access does not exist.
|
|
16
|
+
</p>
|
|
17
|
+
<InteractiveLink href="/">Go to frontpage</InteractiveLink>
|
|
18
|
+
</div>
|
|
19
|
+
)
|
|
20
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { retrieveOrder } from "@core/data/orders"
|
|
2
|
+
import OrderCompletedTemplate from "@modules/order/templates/order-completed-template"
|
|
3
|
+
import { Metadata } from "next"
|
|
4
|
+
import { notFound } from "next/navigation"
|
|
5
|
+
|
|
6
|
+
type Props = {
|
|
7
|
+
params: Promise<{ id: string }>
|
|
8
|
+
}
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
title: "Order Confirmed",
|
|
11
|
+
description: "You purchase was successful",
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default async function OrderConfirmedPage(props: Props) {
|
|
15
|
+
const params = await props.params
|
|
16
|
+
const order = await retrieveOrder(params.id).catch(() => null)
|
|
17
|
+
|
|
18
|
+
if (!order) {
|
|
19
|
+
return notFound()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return <OrderCompletedTemplate order={order} />
|
|
23
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { acceptTransferRequest } from "@core/data/orders"
|
|
2
|
+
import { Heading, Text } from "@medusajs/ui"
|
|
3
|
+
import TransferImage from "@modules/order/components/transfer-image"
|
|
4
|
+
|
|
5
|
+
export default async function TransferPage({
|
|
6
|
+
params,
|
|
7
|
+
}: {
|
|
8
|
+
params: { id: string; token: string }
|
|
9
|
+
}) {
|
|
10
|
+
const { id, token } = params
|
|
11
|
+
|
|
12
|
+
const { success, error } = await acceptTransferRequest(id, token)
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className="flex flex-col gap-y-4 items-start w-2/5 mx-auto mt-10 mb-20">
|
|
16
|
+
<TransferImage />
|
|
17
|
+
<div className="flex flex-col gap-y-6">
|
|
18
|
+
{success && (
|
|
19
|
+
<>
|
|
20
|
+
<Heading level="h1" className="text-xl text-zinc-900">
|
|
21
|
+
Order transfered!
|
|
22
|
+
</Heading>
|
|
23
|
+
<Text className="text-zinc-600">
|
|
24
|
+
Order {id} has been successfully transfered to the new owner.
|
|
25
|
+
</Text>
|
|
26
|
+
</>
|
|
27
|
+
)}
|
|
28
|
+
{!success && (
|
|
29
|
+
<>
|
|
30
|
+
<Text className="text-zinc-600">
|
|
31
|
+
There was an error accepting the transfer. Please try again.
|
|
32
|
+
</Text>
|
|
33
|
+
{error && (
|
|
34
|
+
<Text className="text-red-500">Error message: {error}</Text>
|
|
35
|
+
)}
|
|
36
|
+
</>
|
|
37
|
+
)}
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
)
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { declineTransferRequest } from "@core/data/orders"
|
|
2
|
+
import { Heading, Text } from "@medusajs/ui"
|
|
3
|
+
import TransferImage from "@modules/order/components/transfer-image"
|
|
4
|
+
|
|
5
|
+
export default async function TransferPage({
|
|
6
|
+
params,
|
|
7
|
+
}: {
|
|
8
|
+
params: { id: string; token: string }
|
|
9
|
+
}) {
|
|
10
|
+
const { id, token } = params
|
|
11
|
+
|
|
12
|
+
const { success, error } = await declineTransferRequest(id, token)
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className="flex flex-col gap-y-4 items-start w-2/5 mx-auto mt-10 mb-20">
|
|
16
|
+
<TransferImage />
|
|
17
|
+
<div className="flex flex-col gap-y-6">
|
|
18
|
+
{success && (
|
|
19
|
+
<>
|
|
20
|
+
<Heading level="h1" className="text-xl text-zinc-900">
|
|
21
|
+
Order transfer declined!
|
|
22
|
+
</Heading>
|
|
23
|
+
<Text className="text-zinc-600">
|
|
24
|
+
Transfer of order {id} has been successfully declined.
|
|
25
|
+
</Text>
|
|
26
|
+
</>
|
|
27
|
+
)}
|
|
28
|
+
{!success && (
|
|
29
|
+
<>
|
|
30
|
+
<Text className="text-zinc-600">
|
|
31
|
+
There was an error declining the transfer. Please try again.
|
|
32
|
+
</Text>
|
|
33
|
+
{error && (
|
|
34
|
+
<Text className="text-red-500">Error message: {error}</Text>
|
|
35
|
+
)}
|
|
36
|
+
</>
|
|
37
|
+
)}
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
)
|
|
41
|
+
}
|
package/templates/storefront/src/app/[countryCode]/(main)/order/[id]/transfer/[token]/page.tsx
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Heading, Text } from "@medusajs/ui"
|
|
2
|
+
import TransferActions from "@modules/order/components/transfer-actions"
|
|
3
|
+
import TransferImage from "@modules/order/components/transfer-image"
|
|
4
|
+
|
|
5
|
+
export default async function TransferPage({
|
|
6
|
+
params,
|
|
7
|
+
}: {
|
|
8
|
+
params: { id: string; token: string }
|
|
9
|
+
}) {
|
|
10
|
+
const { id, token } = params
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div className="flex flex-col gap-y-4 items-start w-2/5 mx-auto mt-10 mb-20">
|
|
14
|
+
<TransferImage />
|
|
15
|
+
<div className="flex flex-col gap-y-6">
|
|
16
|
+
<Heading level="h1" className="text-xl text-zinc-900">
|
|
17
|
+
Transfer request for order {id}
|
|
18
|
+
</Heading>
|
|
19
|
+
<Text className="text-zinc-600">
|
|
20
|
+
You've received a request to transfer ownership of your order ({id}).
|
|
21
|
+
If you agree to this request, you can approve the transfer by clicking
|
|
22
|
+
the button below.
|
|
23
|
+
</Text>
|
|
24
|
+
<div className="w-full h-px bg-zinc-200" />
|
|
25
|
+
<Text className="text-zinc-600">
|
|
26
|
+
If you accept, the new owner will take over all responsibilities and
|
|
27
|
+
permissions associated with this order.
|
|
28
|
+
</Text>
|
|
29
|
+
<Text className="text-zinc-600">
|
|
30
|
+
If you do not recognize this request or wish to retain ownership, no
|
|
31
|
+
further action is required.
|
|
32
|
+
</Text>
|
|
33
|
+
<div className="w-full h-px bg-zinc-200" />
|
|
34
|
+
<TransferActions id={id} token={token} />
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
)
|
|
38
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
import { Metadata } from "next"
|
|
3
|
+
import { notFound } from "next/navigation"
|
|
4
|
+
import { retrieveOrder } from "@core/data/orders"
|
|
5
|
+
import { sdk } from "@core/config"
|
|
6
|
+
import ExchangeRequestTemplate from "@modules/account/templates/exchange-request-template"
|
|
7
|
+
|
|
8
|
+
type Props = {
|
|
9
|
+
params: Promise<{ id: string; countryCode: string }>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export async function generateMetadata(props: Props): Promise<Metadata> {
|
|
13
|
+
const params = await props.params
|
|
14
|
+
return {
|
|
15
|
+
title: `Exchange Order #${params.id}`,
|
|
16
|
+
description: "Request an exchange for your order.",
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default async function ExchangePage(props: Props) {
|
|
21
|
+
const params = await props.params
|
|
22
|
+
|
|
23
|
+
const order = await retrieveOrder(params.id).catch(() => null)
|
|
24
|
+
|
|
25
|
+
if (!order) {
|
|
26
|
+
return notFound()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Fetch return reasons
|
|
30
|
+
const { return_reasons } = await sdk.client.fetch<any>(
|
|
31
|
+
"/store/return-reasons",
|
|
32
|
+
{
|
|
33
|
+
method: "GET",
|
|
34
|
+
query: { fields: "id,value,label" },
|
|
35
|
+
next: { tags: ["return_reasons"] },
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div className="bg-page-bg min-h-screen">
|
|
41
|
+
<ExchangeRequestTemplate
|
|
42
|
+
order={order as any}
|
|
43
|
+
returnReasons={return_reasons || []}
|
|
44
|
+
/>
|
|
45
|
+
</div>
|
|
46
|
+
)
|
|
47
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
|
|
2
|
+
import { Metadata } from "next"
|
|
3
|
+
import { notFound } from "next/navigation"
|
|
4
|
+
|
|
5
|
+
import { retrieveOrder } from "@core/data/orders"
|
|
6
|
+
import { listReturnReasons, listReturnShippingOptions } from "@core/data/returns"
|
|
7
|
+
import ReturnRequestTemplate from "@modules/account/templates/return-request-template"
|
|
8
|
+
import { hasReturnableItems } from "@core/util/returns"
|
|
9
|
+
|
|
10
|
+
export const metadata: Metadata = {
|
|
11
|
+
title: "Request Return",
|
|
12
|
+
description: "Request a return for your order",
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
type Props = {
|
|
16
|
+
params: Promise<{ id: string }>
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default async function GuestReturnRequestPage(props: Props) {
|
|
20
|
+
const params = await props.params;
|
|
21
|
+
|
|
22
|
+
// retrieveOrder already handles guest tokens
|
|
23
|
+
const order = await retrieveOrder(params.id).catch(() => null)
|
|
24
|
+
|
|
25
|
+
if (!order) {
|
|
26
|
+
notFound()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Check eligibility
|
|
30
|
+
if (!hasReturnableItems(order)) {
|
|
31
|
+
return (
|
|
32
|
+
<div className="max-w-4xl mx-auto py-16 px-4 text-center">
|
|
33
|
+
<h1 className="text-2xl font-bold mb-4">Return Not Available</h1>
|
|
34
|
+
<p className="text-gray-600 mb-8">This order matches no returnable items. Items might be past the return window or already returned.</p>
|
|
35
|
+
<a href={`/orders/${order.id}`} className="text-blue-600 hover:underline text-lg font-medium">Back to Order Details</a>
|
|
36
|
+
</div>
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Get cart ID for shipping options
|
|
41
|
+
const cartId = (order as any).cart_id
|
|
42
|
+
|
|
43
|
+
// Extract product IDs for context
|
|
44
|
+
const productIds = order.items?.map((item: any) => item.product_id).filter(Boolean) as string[]
|
|
45
|
+
|
|
46
|
+
// Fetch return shipping options and return reasons
|
|
47
|
+
const [shippingOptions, returnReasons] = await Promise.all([
|
|
48
|
+
listReturnShippingOptions(cartId || "", (order as any).region_id, productIds),
|
|
49
|
+
listReturnReasons(),
|
|
50
|
+
])
|
|
51
|
+
|
|
52
|
+
return (
|
|
53
|
+
<div className="bg-page-bg min-h-screen">
|
|
54
|
+
<ReturnRequestTemplate
|
|
55
|
+
order={order}
|
|
56
|
+
shippingOptions={shippingOptions}
|
|
57
|
+
returnReasons={returnReasons}
|
|
58
|
+
/>
|
|
59
|
+
</div>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { retrieveOrder } from "@core/data/orders"
|
|
2
|
+
import OrderDetailsTemplate from "@modules/order/templates/order-details-template"
|
|
3
|
+
import { Metadata } from "next"
|
|
4
|
+
import { notFound } from "next/navigation"
|
|
5
|
+
|
|
6
|
+
type Props = {
|
|
7
|
+
params: Promise<{ id: string }>
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export async function generateMetadata(props: Props): Promise<Metadata> {
|
|
11
|
+
const params = await props.params
|
|
12
|
+
const order = await retrieveOrder(params.id).catch(() => null)
|
|
13
|
+
|
|
14
|
+
if (!order) {
|
|
15
|
+
notFound()
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
title: `Order #${order.display_id}`,
|
|
20
|
+
description: `View your order`,
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export default async function OrderDetailPage(props: Props) {
|
|
25
|
+
const params = await props.params
|
|
26
|
+
const order = await retrieveOrder(params.id).catch(() => null)
|
|
27
|
+
|
|
28
|
+
if (!order) {
|
|
29
|
+
notFound()
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return <OrderDetailsTemplate order={order} />
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Metadata } from "next"
|
|
2
|
+
|
|
3
|
+
import { loadHomeData } from "@controllers/home/load-home-data"
|
|
4
|
+
import { HomePage } from "@controllers/home/home-page"
|
|
5
|
+
|
|
6
|
+
export const metadata: Metadata = {
|
|
7
|
+
title: "Premium Kids Fashion Store",
|
|
8
|
+
description:
|
|
9
|
+
"Explore Chocomelon's premium collection of kids' fashion. From playful styles to quality comfort, shop our curated range for ages 0 to 12. Quality materials, stunning designs.",
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default async function Home(props: {
|
|
13
|
+
params: Promise<{ countryCode: string }>
|
|
14
|
+
}) {
|
|
15
|
+
const params = await props.params
|
|
16
|
+
const { countryCode } = params
|
|
17
|
+
|
|
18
|
+
const data = await loadHomeData(countryCode)
|
|
19
|
+
if (!data) {
|
|
20
|
+
return null
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return <HomePage data={data} />
|
|
24
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Metadata } from "next"
|
|
2
|
+
import { Heading, Text } from "@medusajs/ui"
|
|
3
|
+
|
|
4
|
+
export const metadata: Metadata = {
|
|
5
|
+
title: "Privacy Policy | Chocomelon",
|
|
6
|
+
description: "Our commitment to protecting your privacy and personal information.",
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export default function PrivacyPolicyPage() {
|
|
10
|
+
return (
|
|
11
|
+
<div className="min-h-screen bg-[#FFFAFE] pb-16 sm:pb-24">
|
|
12
|
+
{/* Header Section */}
|
|
13
|
+
<div className="bg-[#04122C] text-white py-16 sm:py-24 mb-12 relative overflow-hidden">
|
|
14
|
+
<div className="absolute top-0 right-0 w-64 h-64 bg-[#8B5AB1] opacity-20 rounded-full -mr-32 -mt-32 blur-3xl"></div>
|
|
15
|
+
<div className="absolute bottom-0 left-0 w-64 h-64 bg-pink-500 opacity-10 rounded-full -ml-32 -mb-32 blur-3xl"></div>
|
|
16
|
+
|
|
17
|
+
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10 text-center">
|
|
18
|
+
<Heading level="h1" className="text-3xl sm:text-5xl font-extrabold mb-4 tracking-tight">
|
|
19
|
+
Privacy Policy
|
|
20
|
+
</Heading>
|
|
21
|
+
<Text className="text-gray-300 text-base sm:text-xl max-w-2xl mx-auto leading-relaxed font-light">
|
|
22
|
+
Your privacy is our top priority. Learn how Chocomelon protects and handles your personal information.
|
|
23
|
+
</Text>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
{/* Content Section */}
|
|
28
|
+
<div className="max-w-4xl mx-auto px-3 sm:px-6 lg:px-8">
|
|
29
|
+
<div className="bg-[#FFFAFE] rounded-3xl shadow-xl shadow-gray-200/50 border border-gray-100 p-5 sm:p-10 md:p-16 space-y-10 sm:space-y-12">
|
|
30
|
+
|
|
31
|
+
<section>
|
|
32
|
+
<div className="inline-flex items-center justify-center w-12 h-12 bg-blue-50 text-[#04122C] rounded-2xl mb-6 font-bold text-xl">
|
|
33
|
+
1
|
|
34
|
+
</div>
|
|
35
|
+
<Heading level="h2" className="text-2xl font-bold mb-4 text-[#04122C]">
|
|
36
|
+
Introduction
|
|
37
|
+
</Heading>
|
|
38
|
+
<Text className="leading-relaxed text-gray-600 text-lg">
|
|
39
|
+
Welcome to Chocomelon. We value your privacy and are committed to protecting your personal data. This Privacy Policy explains how we collect, use, and safeguard your information when you visit our website and make purchases.
|
|
40
|
+
</Text>
|
|
41
|
+
</section>
|
|
42
|
+
|
|
43
|
+
<section>
|
|
44
|
+
<div className="inline-flex items-center justify-center w-12 h-12 bg-purple-50 text-[#8B5AB1] rounded-2xl mb-6 font-bold text-xl">
|
|
45
|
+
2
|
|
46
|
+
</div>
|
|
47
|
+
<Heading level="h2" className="text-2xl font-bold mb-4 text-[#04122C]">
|
|
48
|
+
Information We Collect
|
|
49
|
+
</Heading>
|
|
50
|
+
<Text className="leading-relaxed text-gray-600 text-lg mb-6">
|
|
51
|
+
To provide the best shopping experience, we collect information that you provide directly to us:
|
|
52
|
+
</Text>
|
|
53
|
+
<ul className="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
|
54
|
+
{[
|
|
55
|
+
"Name and contact information",
|
|
56
|
+
"Secure billing and payment data",
|
|
57
|
+
"Order history and preferences",
|
|
58
|
+
"Customer support interactions"
|
|
59
|
+
].map((item, i) => (
|
|
60
|
+
<li key={i} className="flex items-center gap-3 p-4 bg-gray-50 rounded-xl text-gray-700">
|
|
61
|
+
<div className="w-2 h-2 rounded-full bg-[#8B5AB1]"></div>
|
|
62
|
+
{item}
|
|
63
|
+
</li>
|
|
64
|
+
))}
|
|
65
|
+
</ul>
|
|
66
|
+
</section>
|
|
67
|
+
|
|
68
|
+
<section>
|
|
69
|
+
<div className="inline-flex items-center justify-center w-12 h-12 bg-pink-50 text-pink-500 rounded-2xl mb-6 font-bold text-xl">
|
|
70
|
+
3
|
|
71
|
+
</div>
|
|
72
|
+
<Heading level="h2" className="text-2xl font-bold mb-4 text-[#04122C]">
|
|
73
|
+
How We Use Your Information
|
|
74
|
+
</Heading>
|
|
75
|
+
<Text className="leading-relaxed text-gray-600 text-lg mb-6">
|
|
76
|
+
Your data allows us to serve you better. We use it to:
|
|
77
|
+
</Text>
|
|
78
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
79
|
+
{[
|
|
80
|
+
{ title: "Order Fulfillment", desc: "Process and deliver your favorite products." },
|
|
81
|
+
{ title: "Personalization", desc: "Show you items you'll actually love." },
|
|
82
|
+
{ title: "Communication", desc: "Keep you updated on orders and deals." },
|
|
83
|
+
{ title: "Improvement", desc: "Enhance our website and services." }
|
|
84
|
+
].map((item, i) => (
|
|
85
|
+
<div key={i} className="group p-5 border border-gray-100 rounded-2xl hover:border-purple-200 hover:bg-purple-50/30 transition-all">
|
|
86
|
+
<h4 className="font-bold text-[#04122C] mb-1">{item.title}</h4>
|
|
87
|
+
<p className="text-sm text-gray-500">{item.desc}</p>
|
|
88
|
+
</div>
|
|
89
|
+
))}
|
|
90
|
+
</div>
|
|
91
|
+
</section>
|
|
92
|
+
|
|
93
|
+
<section>
|
|
94
|
+
<div className="inline-flex items-center justify-center w-12 h-12 bg-blue-50 text-[#04122C] rounded-2xl mb-6 font-bold text-xl">
|
|
95
|
+
4
|
|
96
|
+
</div>
|
|
97
|
+
<Heading level="h2" className="text-2xl font-bold mb-4 text-[#04122C]">
|
|
98
|
+
Data Sharing and Security
|
|
99
|
+
</Heading>
|
|
100
|
+
<Text className="leading-relaxed text-gray-600 text-lg mb-6">
|
|
101
|
+
We never sell your data. We only share it with trusted partners necessary for our operations:
|
|
102
|
+
</Text>
|
|
103
|
+
<div className="flex flex-wrap gap-2 mb-6">
|
|
104
|
+
{["Payment Processors", "Shipping Partners", "Cloud Storage"].map((tag, i) => (
|
|
105
|
+
<span key={i} className="px-4 py-2 bg-gray-100 text-gray-600 rounded-full text-sm font-medium">
|
|
106
|
+
{tag}
|
|
107
|
+
</span>
|
|
108
|
+
))}
|
|
109
|
+
</div>
|
|
110
|
+
<Text className="leading-relaxed text-gray-600 text-lg italic bg-blue-50/50 p-6 rounded-2xl border-l-4 border-[#04122C]">
|
|
111
|
+
"We implement industry-standard security measures to protect your data from unauthorized access or disclosure."
|
|
112
|
+
</Text>
|
|
113
|
+
</section>
|
|
114
|
+
|
|
115
|
+
<section className="grid grid-cols-1 md:grid-cols-2 gap-12">
|
|
116
|
+
<div>
|
|
117
|
+
<div className="inline-flex items-center justify-center w-12 h-12 bg-yellow-50 text-yellow-600 rounded-2xl mb-6 font-bold text-xl">
|
|
118
|
+
5
|
|
119
|
+
</div>
|
|
120
|
+
<Heading level="h2" className="text-2xl font-bold mb-4 text-[#04122C]">
|
|
121
|
+
Cookies
|
|
122
|
+
</Heading>
|
|
123
|
+
<Text className="leading-relaxed text-gray-600">
|
|
124
|
+
Our website uses cookies to enhance your browsing experience, remember your cart items, and analyze website traffic.
|
|
125
|
+
</Text>
|
|
126
|
+
</div>
|
|
127
|
+
<div>
|
|
128
|
+
<div className="inline-flex items-center justify-center w-12 h-12 bg-green-50 text-green-600 rounded-2xl mb-6 font-bold text-xl">
|
|
129
|
+
6
|
|
130
|
+
</div>
|
|
131
|
+
<Heading level="h2" className="text-2xl font-bold mb-4 text-[#04122C]">
|
|
132
|
+
Your Rights
|
|
133
|
+
</Heading>
|
|
134
|
+
<Text className="leading-relaxed text-gray-600">
|
|
135
|
+
You have the right to access, correct, or delete your personal information at any time.
|
|
136
|
+
</Text>
|
|
137
|
+
</div>
|
|
138
|
+
</section>
|
|
139
|
+
|
|
140
|
+
<section className="bg-blue-50/30 p-6 sm:p-8 rounded-3xl border border-blue-100/50">
|
|
141
|
+
<Heading level="h2" className="text-xl font-bold mb-3 text-[#04122C]">
|
|
142
|
+
Contact Us
|
|
143
|
+
</Heading>
|
|
144
|
+
<Text className="text-gray-600 mb-4">
|
|
145
|
+
If you have any privacy-related questions or concerns, please don't hesitate to reach out.
|
|
146
|
+
</Text>
|
|
147
|
+
<div className="flex flex-col sm:flex-row sm:items-center gap-1 sm:gap-2 text-[#8B5AB1] font-semibold">
|
|
148
|
+
<span className="text-gray-400 font-normal">Email:</span>
|
|
149
|
+
<a href="mailto:chocomelonllp@gmail.com" className="hover:underline break-all sm:break-normal">chocomelonllp@gmail.com</a>
|
|
150
|
+
</div>
|
|
151
|
+
</section>
|
|
152
|
+
|
|
153
|
+
<section className="pt-12 border-t border-gray-100 flex flex-col sm:flex-row justify-between items-center gap-4">
|
|
154
|
+
<p className="text-sm text-gray-400">
|
|
155
|
+
Last Updated: March 19, 2026
|
|
156
|
+
</p>
|
|
157
|
+
<div className="flex gap-3">
|
|
158
|
+
<div className="px-5 py-2 rounded-full bg-gradient-to-r from-[#04122C] to-blue-900 text-white text-[10px] font-bold shadow-lg shadow-blue-900/20 flex items-center gap-1.5 uppercase tracking-wider transition-transform hover:scale-105">
|
|
159
|
+
<div className="w-1.5 h-1.5 rounded-full bg-blue-400 animate-pulse"></div>
|
|
160
|
+
CP
|
|
161
|
+
</div>
|
|
162
|
+
<div className="px-5 py-2 rounded-full bg-gradient-to-r from-[#8B5AB1] to-purple-400 text-white text-[10px] font-bold shadow-lg shadow-purple-900/20 flex items-center gap-1.5 uppercase tracking-wider transition-transform hover:scale-105">
|
|
163
|
+
<div className="w-1.5 h-1.5 rounded-full bg-pink-300 animate-pulse"></div>
|
|
164
|
+
SEC
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
</section>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
)
|
|
172
|
+
}
|
|
173
|
+
|