@rovela-ai/sdk 0.1.2 → 0.1.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/admin/api/auth.d.ts +32 -0
- package/dist/admin/api/auth.d.ts.map +1 -0
- package/dist/admin/api/auth.js +43 -0
- package/dist/admin/api/auth.js.map +1 -0
- package/dist/admin/api/categories.d.ts +68 -0
- package/dist/admin/api/categories.d.ts.map +1 -0
- package/dist/admin/api/categories.js +247 -0
- package/dist/admin/api/categories.js.map +1 -0
- package/dist/admin/api/customers.d.ts +41 -0
- package/dist/admin/api/customers.d.ts.map +1 -0
- package/dist/admin/api/customers.js +113 -0
- package/dist/admin/api/customers.js.map +1 -0
- package/dist/admin/api/index.d.ts +56 -0
- package/dist/admin/api/index.d.ts.map +1 -0
- package/dist/admin/api/index.js +87 -0
- package/dist/admin/api/index.js.map +1 -0
- package/dist/admin/api/orders.d.ts +59 -0
- package/dist/admin/api/orders.d.ts.map +1 -0
- package/dist/admin/api/orders.js +209 -0
- package/dist/admin/api/orders.js.map +1 -0
- package/dist/admin/api/products.d.ts +103 -0
- package/dist/admin/api/products.d.ts.map +1 -0
- package/dist/admin/api/products.js +329 -0
- package/dist/admin/api/products.js.map +1 -0
- package/dist/admin/api/refund.d.ts +29 -0
- package/dist/admin/api/refund.d.ts.map +1 -0
- package/dist/admin/api/refund.js +136 -0
- package/dist/admin/api/refund.js.map +1 -0
- package/dist/admin/api/stats.d.ts +40 -0
- package/dist/admin/api/stats.d.ts.map +1 -0
- package/dist/admin/api/stats.js +74 -0
- package/dist/admin/api/stats.js.map +1 -0
- package/dist/admin/components/AdminGuard.d.ts +40 -0
- package/dist/admin/components/AdminGuard.d.ts.map +1 -0
- package/dist/admin/components/AdminGuard.js +97 -0
- package/dist/admin/components/AdminGuard.js.map +1 -0
- package/dist/admin/components/AdminHeader.d.ts +18 -0
- package/dist/admin/components/AdminHeader.d.ts.map +1 -0
- package/dist/admin/components/AdminHeader.js +33 -0
- package/dist/admin/components/AdminHeader.js.map +1 -0
- package/dist/admin/components/AdminLayout.d.ts +50 -0
- package/dist/admin/components/AdminLayout.d.ts.map +1 -0
- package/dist/admin/components/AdminLayout.js +46 -0
- package/dist/admin/components/AdminLayout.js.map +1 -0
- package/dist/admin/components/AdminLoginForm.d.ts +18 -0
- package/dist/admin/components/AdminLoginForm.d.ts.map +1 -0
- package/dist/admin/components/AdminLoginForm.js +58 -0
- package/dist/admin/components/AdminLoginForm.js.map +1 -0
- package/dist/admin/components/AdminNav.d.ts +34 -0
- package/dist/admin/components/AdminNav.d.ts.map +1 -0
- package/dist/admin/components/AdminNav.js +61 -0
- package/dist/admin/components/AdminNav.js.map +1 -0
- package/dist/admin/components/InventoryEditor.d.ts +15 -0
- package/dist/admin/components/InventoryEditor.d.ts.map +1 -0
- package/dist/admin/components/InventoryEditor.js +83 -0
- package/dist/admin/components/InventoryEditor.js.map +1 -0
- package/dist/admin/components/LowStockAlert.d.ts +11 -0
- package/dist/admin/components/LowStockAlert.d.ts.map +1 -0
- package/dist/admin/components/LowStockAlert.js +35 -0
- package/dist/admin/components/LowStockAlert.js.map +1 -0
- package/dist/admin/components/OrderDetails.d.ts +14 -0
- package/dist/admin/components/OrderDetails.d.ts.map +1 -0
- package/dist/admin/components/OrderDetails.js +94 -0
- package/dist/admin/components/OrderDetails.js.map +1 -0
- package/dist/admin/components/OrderTable.d.ts +13 -0
- package/dist/admin/components/OrderTable.d.ts.map +1 -0
- package/dist/admin/components/OrderTable.js +89 -0
- package/dist/admin/components/OrderTable.js.map +1 -0
- package/dist/admin/components/ProductForm.d.ts +18 -0
- package/dist/admin/components/ProductForm.d.ts.map +1 -0
- package/dist/admin/components/ProductForm.js +127 -0
- package/dist/admin/components/ProductForm.js.map +1 -0
- package/dist/admin/components/ProductTable.d.ts +13 -0
- package/dist/admin/components/ProductTable.d.ts.map +1 -0
- package/dist/admin/components/ProductTable.js +81 -0
- package/dist/admin/components/ProductTable.js.map +1 -0
- package/dist/admin/components/RecentOrders.d.ts +11 -0
- package/dist/admin/components/RecentOrders.d.ts.map +1 -0
- package/dist/admin/components/RecentOrders.js +58 -0
- package/dist/admin/components/RecentOrders.js.map +1 -0
- package/dist/admin/components/RefundDialog.d.ts +17 -0
- package/dist/admin/components/RefundDialog.d.ts.map +1 -0
- package/dist/admin/components/RefundDialog.js +86 -0
- package/dist/admin/components/RefundDialog.js.map +1 -0
- package/dist/admin/components/StatsCards.d.ts +23 -0
- package/dist/admin/components/StatsCards.d.ts.map +1 -0
- package/dist/admin/components/StatsCards.js +82 -0
- package/dist/admin/components/StatsCards.js.map +1 -0
- package/dist/admin/components/StoreSettings.d.ts +14 -0
- package/dist/admin/components/StoreSettings.d.ts.map +1 -0
- package/dist/admin/components/StoreSettings.js +88 -0
- package/dist/admin/components/StoreSettings.js.map +1 -0
- package/dist/admin/components/index.d.ts +21 -0
- package/dist/admin/components/index.d.ts.map +1 -0
- package/dist/admin/components/index.js +57 -0
- package/dist/admin/components/index.js.map +1 -0
- package/dist/admin/config.d.ts +74 -0
- package/dist/admin/config.d.ts.map +1 -0
- package/dist/admin/config.js +229 -0
- package/dist/admin/config.js.map +1 -0
- package/dist/admin/hooks/index.d.ts +10 -0
- package/dist/admin/hooks/index.d.ts.map +1 -0
- package/dist/admin/hooks/index.js +17 -0
- package/dist/admin/hooks/index.js.map +1 -0
- package/dist/admin/hooks/useAdminOrders.d.ts +41 -0
- package/dist/admin/hooks/useAdminOrders.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminOrders.js +191 -0
- package/dist/admin/hooks/useAdminOrders.js.map +1 -0
- package/dist/admin/hooks/useAdminProducts.d.ts +39 -0
- package/dist/admin/hooks/useAdminProducts.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminProducts.js +235 -0
- package/dist/admin/hooks/useAdminProducts.js.map +1 -0
- package/dist/admin/hooks/useAdminStats.d.ts +50 -0
- package/dist/admin/hooks/useAdminStats.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminStats.js +111 -0
- package/dist/admin/hooks/useAdminStats.js.map +1 -0
- package/dist/admin/index.d.ts +63 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +148 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/server/admin-service.d.ts +130 -0
- package/dist/admin/server/admin-service.d.ts.map +1 -0
- package/dist/admin/server/admin-service.js +298 -0
- package/dist/admin/server/admin-service.js.map +1 -0
- package/dist/admin/server/index.d.ts +8 -0
- package/dist/admin/server/index.d.ts.map +1 -0
- package/dist/admin/server/index.js +25 -0
- package/dist/admin/server/index.js.map +1 -0
- package/dist/admin/types.d.ts +549 -0
- package/dist/admin/types.d.ts.map +1 -0
- package/dist/admin/types.js +11 -0
- package/dist/admin/types.js.map +1 -0
- package/dist/auth/api/auth.d.ts +54 -0
- package/dist/auth/api/auth.d.ts.map +1 -0
- package/dist/auth/api/auth.js +67 -0
- package/dist/auth/api/auth.js.map +1 -0
- package/dist/auth/api/forgot-password.d.ts +41 -0
- package/dist/auth/api/forgot-password.d.ts.map +1 -0
- package/dist/auth/api/forgot-password.js +68 -0
- package/dist/auth/api/forgot-password.js.map +1 -0
- package/dist/auth/api/index.d.ts +34 -0
- package/dist/auth/api/index.d.ts.map +1 -0
- package/dist/auth/api/index.js +52 -0
- package/dist/auth/api/index.js.map +1 -0
- package/dist/auth/api/register.d.ts +41 -0
- package/dist/auth/api/register.d.ts.map +1 -0
- package/dist/auth/api/register.js +93 -0
- package/dist/auth/api/register.js.map +1 -0
- package/dist/auth/api/resend-verification.d.ts +41 -0
- package/dist/auth/api/resend-verification.d.ts.map +1 -0
- package/dist/auth/api/resend-verification.js +71 -0
- package/dist/auth/api/resend-verification.js.map +1 -0
- package/dist/auth/api/reset-password.d.ts +67 -0
- package/dist/auth/api/reset-password.d.ts.map +1 -0
- package/dist/auth/api/reset-password.js +110 -0
- package/dist/auth/api/reset-password.js.map +1 -0
- package/dist/auth/api/verify-email.d.ts +47 -0
- package/dist/auth/api/verify-email.d.ts.map +1 -0
- package/dist/auth/api/verify-email.js +94 -0
- package/dist/auth/api/verify-email.js.map +1 -0
- package/dist/auth/components/AuthGuard.d.ts +52 -0
- package/dist/auth/components/AuthGuard.d.ts.map +1 -0
- package/dist/auth/components/AuthGuard.js +113 -0
- package/dist/auth/components/AuthGuard.js.map +1 -0
- package/dist/auth/components/ForgotPasswordForm.d.ts +15 -0
- package/dist/auth/components/ForgotPasswordForm.d.ts.map +1 -0
- package/dist/auth/components/ForgotPasswordForm.js +44 -0
- package/dist/auth/components/ForgotPasswordForm.js.map +1 -0
- package/dist/auth/components/ResetPasswordForm.d.ts +18 -0
- package/dist/auth/components/ResetPasswordForm.d.ts.map +1 -0
- package/dist/auth/components/ResetPasswordForm.js +88 -0
- package/dist/auth/components/ResetPasswordForm.js.map +1 -0
- package/dist/auth/components/SignInForm.d.ts +21 -0
- package/dist/auth/components/SignInForm.d.ts.map +1 -0
- package/dist/auth/components/SignInForm.js +63 -0
- package/dist/auth/components/SignInForm.js.map +1 -0
- package/dist/auth/components/SignUpForm.d.ts +18 -0
- package/dist/auth/components/SignUpForm.d.ts.map +1 -0
- package/dist/auth/components/SignUpForm.js +79 -0
- package/dist/auth/components/SignUpForm.js.map +1 -0
- package/dist/auth/components/UserMenu.d.ts +18 -0
- package/dist/auth/components/UserMenu.d.ts.map +1 -0
- package/dist/auth/components/UserMenu.js +75 -0
- package/dist/auth/components/UserMenu.js.map +1 -0
- package/dist/auth/components/VerifyEmailNotice.d.ts +20 -0
- package/dist/auth/components/VerifyEmailNotice.d.ts.map +1 -0
- package/dist/auth/components/VerifyEmailNotice.js +59 -0
- package/dist/auth/components/VerifyEmailNotice.js.map +1 -0
- package/dist/auth/components/index.d.ts +13 -0
- package/dist/auth/components/index.d.ts.map +1 -0
- package/dist/auth/components/index.js +24 -0
- package/dist/auth/components/index.js.map +1 -0
- package/dist/auth/config.d.ts +42 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +174 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/hooks/index.d.ts +7 -0
- package/dist/auth/hooks/index.d.ts.map +1 -0
- package/dist/auth/hooks/index.js +11 -0
- package/dist/auth/hooks/index.js.map +1 -0
- package/dist/auth/index.d.ts +54 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +88 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/server/customer-service.d.ts +138 -0
- package/dist/auth/server/customer-service.d.ts.map +1 -0
- package/dist/auth/server/customer-service.js +309 -0
- package/dist/auth/server/customer-service.js.map +1 -0
- package/dist/auth/server/email-sender.d.ts +64 -0
- package/dist/auth/server/email-sender.d.ts.map +1 -0
- package/dist/auth/server/email-sender.js +112 -0
- package/dist/auth/server/email-sender.js.map +1 -0
- package/dist/auth/server/index.d.ts +13 -0
- package/dist/auth/server/index.d.ts.map +1 -0
- package/dist/auth/server/index.js +48 -0
- package/dist/auth/server/index.js.map +1 -0
- package/dist/auth/server/password-reset-service.d.ts +86 -0
- package/dist/auth/server/password-reset-service.d.ts.map +1 -0
- package/dist/auth/server/password-reset-service.js +236 -0
- package/dist/auth/server/password-reset-service.js.map +1 -0
- package/dist/auth/server/password.d.ts +58 -0
- package/dist/auth/server/password.d.ts.map +1 -0
- package/dist/auth/server/password.js +94 -0
- package/dist/auth/server/password.js.map +1 -0
- package/dist/auth/server/verification-service.d.ts +87 -0
- package/dist/auth/server/verification-service.d.ts.map +1 -0
- package/dist/auth/server/verification-service.js +268 -0
- package/dist/auth/server/verification-service.js.map +1 -0
- package/dist/auth/types.d.ts +305 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cart/CartProvider.d.ts +65 -0
- package/dist/cart/CartProvider.d.ts.map +1 -0
- package/dist/cart/CartProvider.js +101 -0
- package/dist/cart/CartProvider.js.map +1 -0
- package/dist/cart/components/AddToCartButton.d.ts +77 -0
- package/dist/cart/components/AddToCartButton.d.ts.map +1 -0
- package/dist/cart/components/AddToCartButton.js +124 -0
- package/dist/cart/components/AddToCartButton.js.map +1 -0
- package/dist/cart/components/CartDrawer.d.ts +71 -0
- package/dist/cart/components/CartDrawer.d.ts.map +1 -0
- package/dist/cart/components/CartDrawer.js +108 -0
- package/dist/cart/components/CartDrawer.js.map +1 -0
- package/dist/cart/components/CartIcon.d.ts +36 -0
- package/dist/cart/components/CartIcon.d.ts.map +1 -0
- package/dist/cart/components/CartIcon.js +70 -0
- package/dist/cart/components/CartIcon.js.map +1 -0
- package/dist/cart/components/CartItem.d.ts +52 -0
- package/dist/cart/components/CartItem.d.ts.map +1 -0
- package/dist/cart/components/CartItem.js +55 -0
- package/dist/cart/components/CartItem.js.map +1 -0
- package/dist/cart/components/CartSummary.d.ts +43 -0
- package/dist/cart/components/CartSummary.d.ts.map +1 -0
- package/dist/cart/components/CartSummary.js +58 -0
- package/dist/cart/components/CartSummary.js.map +1 -0
- package/dist/cart/components/QuantitySelector.d.ts +39 -0
- package/dist/cart/components/QuantitySelector.d.ts.map +1 -0
- package/dist/cart/components/QuantitySelector.js +87 -0
- package/dist/cart/components/QuantitySelector.js.map +1 -0
- package/dist/cart/components/index.d.ts +18 -0
- package/dist/cart/components/index.d.ts.map +1 -0
- package/dist/cart/components/index.js +21 -0
- package/dist/cart/components/index.js.map +1 -0
- package/dist/cart/index.d.ts +109 -0
- package/dist/cart/index.d.ts.map +1 -0
- package/dist/cart/index.js +129 -0
- package/dist/cart/index.js.map +1 -0
- package/dist/cart/store.d.ts +101 -0
- package/dist/cart/store.d.ts.map +1 -0
- package/dist/cart/store.js +207 -0
- package/dist/cart/store.js.map +1 -0
- package/dist/checkout/api/checkout.d.ts +31 -0
- package/dist/checkout/api/checkout.d.ts.map +1 -0
- package/dist/checkout/api/checkout.js +103 -0
- package/dist/checkout/api/checkout.js.map +1 -0
- package/dist/checkout/api/index.d.ts +8 -0
- package/dist/checkout/api/index.d.ts.map +1 -0
- package/dist/checkout/api/index.js +13 -0
- package/dist/checkout/api/index.js.map +1 -0
- package/dist/checkout/api/webhook.d.ts +30 -0
- package/dist/checkout/api/webhook.d.ts.map +1 -0
- package/dist/checkout/api/webhook.js +58 -0
- package/dist/checkout/api/webhook.js.map +1 -0
- package/dist/checkout/components/CheckoutButton.d.ts +44 -0
- package/dist/checkout/components/CheckoutButton.d.ts.map +1 -0
- package/dist/checkout/components/CheckoutButton.js +97 -0
- package/dist/checkout/components/CheckoutButton.js.map +1 -0
- package/dist/checkout/components/CheckoutSuccess.d.ts +29 -0
- package/dist/checkout/components/CheckoutSuccess.d.ts.map +1 -0
- package/dist/checkout/components/CheckoutSuccess.js +60 -0
- package/dist/checkout/components/CheckoutSuccess.js.map +1 -0
- package/dist/checkout/components/OrderSummary.d.ts +37 -0
- package/dist/checkout/components/OrderSummary.d.ts.map +1 -0
- package/dist/checkout/components/OrderSummary.js +70 -0
- package/dist/checkout/components/OrderSummary.js.map +1 -0
- package/dist/checkout/components/ShippingForm.d.ts +30 -0
- package/dist/checkout/components/ShippingForm.d.ts.map +1 -0
- package/dist/checkout/components/ShippingForm.js +125 -0
- package/dist/checkout/components/ShippingForm.js.map +1 -0
- package/dist/checkout/components/index.d.ts +10 -0
- package/dist/checkout/components/index.d.ts.map +1 -0
- package/dist/checkout/components/index.js +17 -0
- package/dist/checkout/components/index.js.map +1 -0
- package/dist/checkout/hooks/index.d.ts +7 -0
- package/dist/checkout/hooks/index.d.ts.map +1 -0
- package/dist/checkout/hooks/index.js +12 -0
- package/dist/checkout/hooks/index.js.map +1 -0
- package/dist/checkout/hooks/useCheckout.d.ts +61 -0
- package/dist/checkout/hooks/useCheckout.d.ts.map +1 -0
- package/dist/checkout/hooks/useCheckout.js +174 -0
- package/dist/checkout/hooks/useCheckout.js.map +1 -0
- package/dist/checkout/index.d.ts +111 -0
- package/dist/checkout/index.d.ts.map +1 -0
- package/dist/checkout/index.js +148 -0
- package/dist/checkout/index.js.map +1 -0
- package/dist/checkout/server/create-checkout-session.d.ts +69 -0
- package/dist/checkout/server/create-checkout-session.d.ts.map +1 -0
- package/dist/checkout/server/create-checkout-session.js +190 -0
- package/dist/checkout/server/create-checkout-session.js.map +1 -0
- package/dist/checkout/server/handle-webhook.d.ts +35 -0
- package/dist/checkout/server/handle-webhook.d.ts.map +1 -0
- package/dist/checkout/server/handle-webhook.js +279 -0
- package/dist/checkout/server/handle-webhook.js.map +1 -0
- package/dist/checkout/server/index.d.ts +10 -0
- package/dist/checkout/server/index.d.ts.map +1 -0
- package/dist/checkout/server/index.js +19 -0
- package/dist/checkout/server/index.js.map +1 -0
- package/dist/checkout/server/order-service.d.ts +43 -0
- package/dist/checkout/server/order-service.d.ts.map +1 -0
- package/dist/checkout/server/order-service.js +196 -0
- package/dist/checkout/server/order-service.js.map +1 -0
- package/dist/checkout/stripe/client.d.ts +72 -0
- package/dist/checkout/stripe/client.d.ts.map +1 -0
- package/dist/checkout/stripe/client.js +189 -0
- package/dist/checkout/stripe/client.js.map +1 -0
- package/dist/checkout/stripe/index.d.ts +7 -0
- package/dist/checkout/stripe/index.d.ts.map +1 -0
- package/dist/checkout/stripe/index.js +21 -0
- package/dist/checkout/stripe/index.js.map +1 -0
- package/dist/checkout/types.d.ts +263 -0
- package/dist/checkout/types.d.ts.map +1 -0
- package/dist/checkout/types.js +9 -0
- package/dist/checkout/types.js.map +1 -0
- package/dist/core/config.d.ts +296 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +162 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/db/client.d.ts +69 -0
- package/dist/core/db/client.d.ts.map +1 -0
- package/dist/core/db/client.js +202 -0
- package/dist/core/db/client.js.map +1 -0
- package/dist/core/db/index.d.ts +11 -0
- package/dist/core/db/index.d.ts.map +1 -0
- package/dist/core/db/index.js +109 -0
- package/dist/core/db/index.js.map +1 -0
- package/dist/core/db/queries.d.ts +627 -0
- package/dist/core/db/queries.d.ts.map +1 -0
- package/dist/core/db/queries.js +730 -0
- package/dist/core/db/queries.js.map +1 -0
- package/dist/core/db/schema.d.ts +1628 -0
- package/dist/core/db/schema.d.ts.map +1 -0
- package/dist/core/db/schema.js +262 -0
- package/dist/core/db/schema.js.map +1 -0
- package/dist/core/index.d.ts +20 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +71 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/server/index.d.ts +17 -0
- package/dist/core/server/index.d.ts.map +1 -0
- package/dist/core/server/index.js +96 -0
- package/dist/core/server/index.js.map +1 -0
- package/dist/core/types.d.ts +230 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +9 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils.d.ts +153 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +356 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/emails/config.d.ts +42 -0
- package/dist/emails/config.d.ts.map +1 -0
- package/dist/emails/config.js +89 -0
- package/dist/emails/config.js.map +1 -0
- package/dist/emails/index.d.ts +85 -0
- package/dist/emails/index.d.ts.map +1 -0
- package/dist/emails/index.js +170 -0
- package/dist/emails/index.js.map +1 -0
- package/dist/emails/send/auth.d.ts +91 -0
- package/dist/emails/send/auth.d.ts.map +1 -0
- package/dist/emails/send/auth.js +132 -0
- package/dist/emails/send/auth.js.map +1 -0
- package/dist/emails/send/index.d.ts +10 -0
- package/dist/emails/send/index.d.ts.map +1 -0
- package/dist/emails/send/index.js +33 -0
- package/dist/emails/send/index.js.map +1 -0
- package/dist/emails/send/orders.d.ts +180 -0
- package/dist/emails/send/orders.d.ts.map +1 -0
- package/dist/emails/send/orders.js +259 -0
- package/dist/emails/send/orders.js.map +1 -0
- package/dist/emails/sender.d.ts +72 -0
- package/dist/emails/sender.d.ts.map +1 -0
- package/dist/emails/sender.js +118 -0
- package/dist/emails/sender.js.map +1 -0
- package/dist/emails/templates/base.d.ts +105 -0
- package/dist/emails/templates/base.d.ts.map +1 -0
- package/dist/emails/templates/base.js +291 -0
- package/dist/emails/templates/base.js.map +1 -0
- package/dist/emails/templates/email-verification.d.ts +28 -0
- package/dist/emails/templates/email-verification.d.ts.map +1 -0
- package/dist/emails/templates/email-verification.js +56 -0
- package/dist/emails/templates/email-verification.js.map +1 -0
- package/dist/emails/templates/index.d.ts +15 -0
- package/dist/emails/templates/index.d.ts.map +1 -0
- package/dist/emails/templates/index.js +58 -0
- package/dist/emails/templates/index.js.map +1 -0
- package/dist/emails/templates/order-cancelled.d.ts +30 -0
- package/dist/emails/templates/order-cancelled.d.ts.map +1 -0
- package/dist/emails/templates/order-cancelled.js +87 -0
- package/dist/emails/templates/order-cancelled.js.map +1 -0
- package/dist/emails/templates/order-confirmation.d.ts +36 -0
- package/dist/emails/templates/order-confirmation.d.ts.map +1 -0
- package/dist/emails/templates/order-confirmation.js +161 -0
- package/dist/emails/templates/order-confirmation.js.map +1 -0
- package/dist/emails/templates/order-delivered.d.ts +31 -0
- package/dist/emails/templates/order-delivered.d.ts.map +1 -0
- package/dist/emails/templates/order-delivered.js +95 -0
- package/dist/emails/templates/order-delivered.js.map +1 -0
- package/dist/emails/templates/order-shipped.d.ts +32 -0
- package/dist/emails/templates/order-shipped.d.ts.map +1 -0
- package/dist/emails/templates/order-shipped.js +87 -0
- package/dist/emails/templates/order-shipped.js.map +1 -0
- package/dist/emails/templates/password-reset.d.ts +27 -0
- package/dist/emails/templates/password-reset.d.ts.map +1 -0
- package/dist/emails/templates/password-reset.js +55 -0
- package/dist/emails/templates/password-reset.js.map +1 -0
- package/dist/emails/templates/refund-processed.d.ts +32 -0
- package/dist/emails/templates/refund-processed.d.ts.map +1 -0
- package/dist/emails/templates/refund-processed.js +96 -0
- package/dist/emails/templates/refund-processed.js.map +1 -0
- package/dist/emails/templates/welcome.d.ts +27 -0
- package/dist/emails/templates/welcome.d.ts.map +1 -0
- package/dist/emails/templates/welcome.js +56 -0
- package/dist/emails/templates/welcome.js.map +1 -0
- package/dist/emails/types.d.ts +202 -0
- package/dist/emails/types.d.ts.map +1 -0
- package/dist/emails/types.js +8 -0
- package/dist/emails/types.js.map +1 -0
- package/dist/emails/utils.d.ts +94 -0
- package/dist/emails/utils.d.ts.map +1 -0
- package/dist/emails/utils.js +229 -0
- package/dist/emails/utils.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +225 -0
- package/dist/index.js.map +1 -0
- package/dist/products/api/categories.d.ts +29 -0
- package/dist/products/api/categories.d.ts.map +1 -0
- package/dist/products/api/categories.js +49 -0
- package/dist/products/api/categories.js.map +1 -0
- package/dist/products/api/index.d.ts +24 -0
- package/dist/products/api/index.d.ts.map +1 -0
- package/dist/products/api/index.js +30 -0
- package/dist/products/api/index.js.map +1 -0
- package/dist/products/api/product.d.ts +36 -0
- package/dist/products/api/product.d.ts.map +1 -0
- package/dist/products/api/product.js +70 -0
- package/dist/products/api/product.js.map +1 -0
- package/dist/products/api/products.d.ts +41 -0
- package/dist/products/api/products.d.ts.map +1 -0
- package/dist/products/api/products.js +102 -0
- package/dist/products/api/products.js.map +1 -0
- package/dist/products/components/CategoryNav.d.ts +51 -0
- package/dist/products/components/CategoryNav.d.ts.map +1 -0
- package/dist/products/components/CategoryNav.js +115 -0
- package/dist/products/components/CategoryNav.js.map +1 -0
- package/dist/products/components/ProductBreadcrumb.d.ts +52 -0
- package/dist/products/components/ProductBreadcrumb.d.ts.map +1 -0
- package/dist/products/components/ProductBreadcrumb.js +78 -0
- package/dist/products/components/ProductBreadcrumb.js.map +1 -0
- package/dist/products/components/ProductCard.d.ts +54 -0
- package/dist/products/components/ProductCard.d.ts.map +1 -0
- package/dist/products/components/ProductCard.js +65 -0
- package/dist/products/components/ProductCard.js.map +1 -0
- package/dist/products/components/ProductDetails.d.ts +63 -0
- package/dist/products/components/ProductDetails.d.ts.map +1 -0
- package/dist/products/components/ProductDetails.js +105 -0
- package/dist/products/components/ProductDetails.js.map +1 -0
- package/dist/products/components/ProductFilters.d.ts +70 -0
- package/dist/products/components/ProductFilters.d.ts.map +1 -0
- package/dist/products/components/ProductFilters.js +127 -0
- package/dist/products/components/ProductFilters.js.map +1 -0
- package/dist/products/components/ProductGallery.d.ts +37 -0
- package/dist/products/components/ProductGallery.d.ts.map +1 -0
- package/dist/products/components/ProductGallery.js +80 -0
- package/dist/products/components/ProductGallery.js.map +1 -0
- package/dist/products/components/ProductGrid.d.ts +50 -0
- package/dist/products/components/ProductGrid.d.ts.map +1 -0
- package/dist/products/components/ProductGrid.js +83 -0
- package/dist/products/components/ProductGrid.js.map +1 -0
- package/dist/products/components/ProductSearch.d.ts +43 -0
- package/dist/products/components/ProductSearch.d.ts.map +1 -0
- package/dist/products/components/ProductSearch.js +99 -0
- package/dist/products/components/ProductSearch.js.map +1 -0
- package/dist/products/components/ProductSort.d.ts +43 -0
- package/dist/products/components/ProductSort.d.ts.map +1 -0
- package/dist/products/components/ProductSort.js +61 -0
- package/dist/products/components/ProductSort.js.map +1 -0
- package/dist/products/components/VariantSelector.d.ts +43 -0
- package/dist/products/components/VariantSelector.d.ts.map +1 -0
- package/dist/products/components/VariantSelector.js +147 -0
- package/dist/products/components/VariantSelector.js.map +1 -0
- package/dist/products/components/index.d.ts +26 -0
- package/dist/products/components/index.d.ts.map +1 -0
- package/dist/products/components/index.js +32 -0
- package/dist/products/components/index.js.map +1 -0
- package/dist/products/hooks/index.d.ts +14 -0
- package/dist/products/hooks/index.d.ts.map +1 -0
- package/dist/products/hooks/index.js +17 -0
- package/dist/products/hooks/index.js.map +1 -0
- package/dist/products/hooks/useCategories.d.ts +56 -0
- package/dist/products/hooks/useCategories.d.ts.map +1 -0
- package/dist/products/hooks/useCategories.js +126 -0
- package/dist/products/hooks/useCategories.js.map +1 -0
- package/dist/products/hooks/useProduct.d.ts +44 -0
- package/dist/products/hooks/useProduct.d.ts.map +1 -0
- package/dist/products/hooks/useProduct.js +86 -0
- package/dist/products/hooks/useProduct.js.map +1 -0
- package/dist/products/hooks/useProductAttributes.d.ts +59 -0
- package/dist/products/hooks/useProductAttributes.d.ts.map +1 -0
- package/dist/products/hooks/useProductAttributes.js +148 -0
- package/dist/products/hooks/useProductAttributes.js.map +1 -0
- package/dist/products/hooks/useProducts.d.ts +67 -0
- package/dist/products/hooks/useProducts.d.ts.map +1 -0
- package/dist/products/hooks/useProducts.js +132 -0
- package/dist/products/hooks/useProducts.js.map +1 -0
- package/dist/products/index.d.ts +94 -0
- package/dist/products/index.d.ts.map +1 -0
- package/dist/products/index.js +123 -0
- package/dist/products/index.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +70 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +77 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/colors.d.ts +148 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +219 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/theme/defaults.d.ts +212 -0
- package/dist/theme/defaults.d.ts.map +1 -0
- package/dist/theme/defaults.js +278 -0
- package/dist/theme/defaults.js.map +1 -0
- package/dist/theme/fonts.d.ts +59 -0
- package/dist/theme/fonts.d.ts.map +1 -0
- package/dist/theme/fonts.js +202 -0
- package/dist/theme/fonts.js.map +1 -0
- package/dist/theme/generator.d.ts +50 -0
- package/dist/theme/generator.d.ts.map +1 -0
- package/dist/theme/generator.js +322 -0
- package/dist/theme/generator.js.map +1 -0
- package/dist/theme/hooks.d.ts +110 -0
- package/dist/theme/hooks.d.ts.map +1 -0
- package/dist/theme/hooks.js +106 -0
- package/dist/theme/hooks.js.map +1 -0
- package/dist/theme/index.d.ts +37 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +85 -0
- package/dist/theme/index.js.map +1 -0
- package/package.json +7 -2
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @rovela/sdk/checkout/api/webhook
|
|
4
|
+
*
|
|
5
|
+
* API route handler for Stripe webhooks.
|
|
6
|
+
*
|
|
7
|
+
* Usage in Next.js App Router:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // app/api/webhooks/stripe/route.ts
|
|
10
|
+
* export { POST } from '@rovela/sdk/checkout/api'
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.POST = POST;
|
|
15
|
+
const server_1 = require("next/server");
|
|
16
|
+
const handle_webhook_1 = require("../server/handle-webhook");
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Handler
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* POST /api/webhooks/stripe
|
|
22
|
+
*
|
|
23
|
+
* Handles incoming Stripe webhook events.
|
|
24
|
+
* Verifies the signature and processes the event.
|
|
25
|
+
*
|
|
26
|
+
* Required Headers:
|
|
27
|
+
* - stripe-signature: Webhook signature from Stripe
|
|
28
|
+
*
|
|
29
|
+
* Response:
|
|
30
|
+
* - received: Whether the event was received
|
|
31
|
+
* - event: The event type (if processed)
|
|
32
|
+
* - orderId: The order ID (if created)
|
|
33
|
+
* - error: Error message (if failed)
|
|
34
|
+
*/
|
|
35
|
+
async function POST(request) {
|
|
36
|
+
// Get raw body for signature verification
|
|
37
|
+
const payload = await request.text();
|
|
38
|
+
// Get signature header
|
|
39
|
+
const signature = request.headers.get('stripe-signature');
|
|
40
|
+
if (!signature) {
|
|
41
|
+
console.error('[Webhook] Missing stripe-signature header');
|
|
42
|
+
return server_1.NextResponse.json({ received: false, error: 'Missing stripe-signature header' }, { status: 400 });
|
|
43
|
+
}
|
|
44
|
+
// Process the webhook
|
|
45
|
+
const result = await (0, handle_webhook_1.handleStripeWebhook)(payload, signature);
|
|
46
|
+
// Return appropriate status based on result
|
|
47
|
+
if (!result.received) {
|
|
48
|
+
return server_1.NextResponse.json(result, { status: 400 });
|
|
49
|
+
}
|
|
50
|
+
if (result.error) {
|
|
51
|
+
// Event received but processing failed - return 200 to prevent retries
|
|
52
|
+
// for non-recoverable errors (Stripe will retry on 5xx)
|
|
53
|
+
console.warn('[Webhook] Processing error:', result.error);
|
|
54
|
+
return server_1.NextResponse.json(result, { status: 200 });
|
|
55
|
+
}
|
|
56
|
+
return server_1.NextResponse.json(result, { status: 200 });
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/checkout/api/webhook.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAyBH,oBAiCC;AAxDD,wCAAuD;AACvD,6DAA8D;AAG9D,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,IAAI,CACxB,OAAoB;IAEpB,0CAA0C;IAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;IAEpC,uBAAuB;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC1D,OAAO,qBAAY,CAAC,IAAI,CACtB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAC7D,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;IAED,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAmB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAE5D,4CAA4C;IAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,qBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,uEAAuE;QACvE,wDAAwD;QACxD,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACzD,OAAO,qBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,qBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/checkout/components/CheckoutButton
|
|
3
|
+
*
|
|
4
|
+
* Button that initiates Stripe Checkout.
|
|
5
|
+
*/
|
|
6
|
+
import type { CheckoutButtonProps } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Button that initiates Stripe Checkout with cart items.
|
|
9
|
+
*
|
|
10
|
+
* @example Basic usage
|
|
11
|
+
* ```tsx
|
|
12
|
+
* import { CheckoutButton } from '@rovela/sdk/checkout'
|
|
13
|
+
*
|
|
14
|
+
* function Cart() {
|
|
15
|
+
* return (
|
|
16
|
+
* <div>
|
|
17
|
+
* <CartItems />
|
|
18
|
+
* <CheckoutButton />
|
|
19
|
+
* </div>
|
|
20
|
+
* )
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example With custom content
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <CheckoutButton size="lg" fullWidth>
|
|
27
|
+
* Proceed to Payment
|
|
28
|
+
* </CheckoutButton>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example With callbacks
|
|
32
|
+
* ```tsx
|
|
33
|
+
* <CheckoutButton
|
|
34
|
+
* onBeforeCheckout={async () => {
|
|
35
|
+
* await saveCart()
|
|
36
|
+
* }}
|
|
37
|
+
* onError={(error) => {
|
|
38
|
+
* showToast(error.message)
|
|
39
|
+
* }}
|
|
40
|
+
* />
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function CheckoutButton({ children, disabled, className, onBeforeCheckout, onError, size, fullWidth, }: CheckoutButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
//# sourceMappingURL=CheckoutButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckoutButton.d.ts","sourceRoot":"","sources":["../../../src/checkout/components/CheckoutButton.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAMnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAqB,EACrB,QAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,IAAW,EACX,SAAiB,GAClB,EAAE,mBAAmB,2CA8DrB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @rovela/sdk/checkout/components/CheckoutButton
|
|
4
|
+
*
|
|
5
|
+
* Button that initiates Stripe Checkout.
|
|
6
|
+
*/
|
|
7
|
+
'use client';
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CheckoutButton = CheckoutButton;
|
|
10
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
11
|
+
const useCheckout_1 = require("../hooks/useCheckout");
|
|
12
|
+
const utils_1 = require("../../core/utils");
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Component
|
|
15
|
+
// =============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Button that initiates Stripe Checkout with cart items.
|
|
18
|
+
*
|
|
19
|
+
* @example Basic usage
|
|
20
|
+
* ```tsx
|
|
21
|
+
* import { CheckoutButton } from '@rovela/sdk/checkout'
|
|
22
|
+
*
|
|
23
|
+
* function Cart() {
|
|
24
|
+
* return (
|
|
25
|
+
* <div>
|
|
26
|
+
* <CartItems />
|
|
27
|
+
* <CheckoutButton />
|
|
28
|
+
* </div>
|
|
29
|
+
* )
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @example With custom content
|
|
34
|
+
* ```tsx
|
|
35
|
+
* <CheckoutButton size="lg" fullWidth>
|
|
36
|
+
* Proceed to Payment
|
|
37
|
+
* </CheckoutButton>
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example With callbacks
|
|
41
|
+
* ```tsx
|
|
42
|
+
* <CheckoutButton
|
|
43
|
+
* onBeforeCheckout={async () => {
|
|
44
|
+
* await saveCart()
|
|
45
|
+
* }}
|
|
46
|
+
* onError={(error) => {
|
|
47
|
+
* showToast(error.message)
|
|
48
|
+
* }}
|
|
49
|
+
* />
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
function CheckoutButton({ children = 'Checkout', disabled = false, className, onBeforeCheckout, onError, size = 'md', fullWidth = false, }) {
|
|
53
|
+
const { checkout, isLoading, error } = (0, useCheckout_1.useCheckout)({
|
|
54
|
+
onError: (err) => {
|
|
55
|
+
if (onError) {
|
|
56
|
+
onError(new Error(err.error));
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
const handleClick = async () => {
|
|
61
|
+
try {
|
|
62
|
+
if (onBeforeCheckout) {
|
|
63
|
+
await onBeforeCheckout();
|
|
64
|
+
}
|
|
65
|
+
await checkout();
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
if (onError && err instanceof Error) {
|
|
69
|
+
onError(err);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
// Size classes
|
|
74
|
+
const sizeClasses = {
|
|
75
|
+
sm: 'px-4 py-2 text-sm',
|
|
76
|
+
md: 'px-6 py-3 text-base',
|
|
77
|
+
lg: 'px-8 py-4 text-lg',
|
|
78
|
+
};
|
|
79
|
+
return ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleClick, disabled: disabled || isLoading, className: (0, utils_1.cn)(
|
|
80
|
+
// Base styles
|
|
81
|
+
'inline-flex items-center justify-center', 'rounded-md font-medium transition-colors', 'focus:outline-none focus:ring-2 focus:ring-offset-2',
|
|
82
|
+
// Colors
|
|
83
|
+
'bg-primary text-primary-foreground', 'hover:bg-primary/90', 'focus:ring-primary',
|
|
84
|
+
// Disabled
|
|
85
|
+
'disabled:opacity-50 disabled:cursor-not-allowed',
|
|
86
|
+
// Size
|
|
87
|
+
sizeClasses[size],
|
|
88
|
+
// Width
|
|
89
|
+
fullWidth && 'w-full', className), children: isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(LoadingSpinner, { className: "mr-2" }), "Redirecting..."] })) : (children) }));
|
|
90
|
+
}
|
|
91
|
+
// =============================================================================
|
|
92
|
+
// Helper Components
|
|
93
|
+
// =============================================================================
|
|
94
|
+
function LoadingSpinner({ className }) {
|
|
95
|
+
return ((0, jsx_runtime_1.jsxs)("svg", { className: (0, utils_1.cn)('h-4 w-4 animate-spin', className), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [(0, jsx_runtime_1.jsx)("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), (0, jsx_runtime_1.jsx)("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }));
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=CheckoutButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckoutButton.js","sourceRoot":"","sources":["../../../src/checkout/components/CheckoutButton.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,YAAY,CAAA;;AA8CZ,wCAsEC;;AAlHD,sDAAkD;AAClD,4CAAqC;AAGrC,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAgB,cAAc,CAAC,EAC7B,QAAQ,GAAG,UAAU,EACrB,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,GACG;IACpB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAA,yBAAW,EAAC;QACjD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACH,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,gBAAgB,EAAE,CAAA;YAC1B,CAAC;YACD,MAAM,QAAQ,EAAE,CAAA;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,eAAe;IACf,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,qBAAqB;QACzB,EAAE,EAAE,mBAAmB;KACxB,CAAA;IAED,OAAO,CACL,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAC/B,SAAS,EAAE,IAAA,UAAE;QACX,cAAc;QACd,yCAAyC,EACzC,0CAA0C,EAC1C,qDAAqD;QACrD,SAAS;QACT,oCAAoC,EACpC,qBAAqB,EACrB,oBAAoB;QACpB,WAAW;QACX,iDAAiD;QACjD,OAAO;QACP,WAAW,CAAC,IAAI,CAAC;QACjB,QAAQ;QACR,SAAS,IAAI,QAAQ,EACrB,SAAS,CACV,YAEA,SAAS,CAAC,CAAC,CAAC,CACX,6DACE,uBAAC,cAAc,IAAC,SAAS,EAAC,MAAM,GAAG,sBAElC,CACJ,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,GACM,CACV,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,SAAS,cAAc,CAAC,EAAE,SAAS,EAA0B;IAC3D,OAAO,CACL,iCACE,SAAS,EAAE,IAAA,UAAE,EAAC,sBAAsB,EAAE,SAAS,CAAC,EAChD,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,aAEnB,mCACE,SAAS,EAAC,YAAY,EACtB,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,IAAI,EACN,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,GACf,EACF,iCACE,SAAS,EAAC,YAAY,EACtB,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,iHAAiH,GACnH,IACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/checkout/components/CheckoutSuccess
|
|
3
|
+
*
|
|
4
|
+
* Success page component after successful checkout.
|
|
5
|
+
*/
|
|
6
|
+
import type { CheckoutSuccessProps } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Success page content after checkout completion.
|
|
9
|
+
*
|
|
10
|
+
* @example Basic usage
|
|
11
|
+
* ```tsx
|
|
12
|
+
* // app/checkout/success/page.tsx
|
|
13
|
+
* import { CheckoutSuccess } from '@rovela/sdk/checkout'
|
|
14
|
+
*
|
|
15
|
+
* export default function SuccessPage() {
|
|
16
|
+
* return <CheckoutSuccess />
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example With custom links
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <CheckoutSuccess
|
|
23
|
+
* continueShoppingHref="/products"
|
|
24
|
+
* viewOrderHref="/account/orders/{orderId}"
|
|
25
|
+
* />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function CheckoutSuccess({ orderId, email, className, continueShoppingHref, viewOrderHref, onMount, }: CheckoutSuccessProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=CheckoutSuccess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckoutSuccess.d.ts","sourceRoot":"","sources":["../../../src/checkout/components/CheckoutSuccess.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAMpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,SAAS,EACT,oBAA0B,EAC1B,aAAa,EACb,OAAO,GACR,EAAE,oBAAoB,2CAsFtB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @rovela/sdk/checkout/components/CheckoutSuccess
|
|
4
|
+
*
|
|
5
|
+
* Success page component after successful checkout.
|
|
6
|
+
*/
|
|
7
|
+
'use client';
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CheckoutSuccess = CheckoutSuccess;
|
|
10
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
const useCheckout_1 = require("../hooks/useCheckout");
|
|
13
|
+
const utils_1 = require("../../core/utils");
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Component
|
|
16
|
+
// =============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Success page content after checkout completion.
|
|
19
|
+
*
|
|
20
|
+
* @example Basic usage
|
|
21
|
+
* ```tsx
|
|
22
|
+
* // app/checkout/success/page.tsx
|
|
23
|
+
* import { CheckoutSuccess } from '@rovela/sdk/checkout'
|
|
24
|
+
*
|
|
25
|
+
* export default function SuccessPage() {
|
|
26
|
+
* return <CheckoutSuccess />
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example With custom links
|
|
31
|
+
* ```tsx
|
|
32
|
+
* <CheckoutSuccess
|
|
33
|
+
* continueShoppingHref="/products"
|
|
34
|
+
* viewOrderHref="/account/orders/{orderId}"
|
|
35
|
+
* />
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
function CheckoutSuccess({ orderId, email, className, continueShoppingHref = '/', viewOrderHref, onMount, }) {
|
|
39
|
+
const { sessionId } = (0, useCheckout_1.useCheckoutSuccess)();
|
|
40
|
+
// Call onMount callback (e.g., to clear cart)
|
|
41
|
+
(0, react_1.useEffect)(() => {
|
|
42
|
+
if (onMount) {
|
|
43
|
+
onMount();
|
|
44
|
+
}
|
|
45
|
+
}, [onMount]);
|
|
46
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('text-center py-12 px-4', className), children: [(0, jsx_runtime_1.jsx)("div", { className: "mx-auto w-16 h-16 rounded-full bg-green-100 flex items-center justify-center mb-6", children: (0, jsx_runtime_1.jsx)(CheckIcon, { className: "w-8 h-8 text-green-600" }) }), (0, jsx_runtime_1.jsx)("h1", { className: "text-2xl font-bold mb-2", children: "Thank you for your order!" }), (0, jsx_runtime_1.jsx)("p", { className: "text-muted-foreground mb-6 max-w-md mx-auto", children: email ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["We've sent a confirmation email to", ' ', (0, jsx_runtime_1.jsx)("span", { className: "font-medium text-foreground", children: email }), "."] })) : ('A confirmation email has been sent to your email address.') }), (orderId || sessionId) && ((0, jsx_runtime_1.jsxs)("div", { className: "bg-muted rounded-lg p-4 mb-8 max-w-sm mx-auto", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm text-muted-foreground mb-1", children: orderId ? 'Order ID' : 'Confirmation ID' }), (0, jsx_runtime_1.jsx)("p", { className: "font-mono font-medium", children: orderId || sessionId })] })), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col sm:flex-row gap-4 justify-center", children: [viewOrderHref && orderId && ((0, jsx_runtime_1.jsx)("a", { href: viewOrderHref.replace('{orderId}', orderId), className: (0, utils_1.cn)('inline-flex items-center justify-center', 'px-6 py-3 rounded-md font-medium', 'bg-primary text-primary-foreground', 'hover:bg-primary/90 transition-colors'), children: "View Order" })), (0, jsx_runtime_1.jsx)("a", { href: continueShoppingHref, className: (0, utils_1.cn)('inline-flex items-center justify-center', 'px-6 py-3 rounded-md font-medium', 'border border-input bg-background', 'hover:bg-accent hover:text-accent-foreground', 'transition-colors'), children: "Continue Shopping" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-12 text-sm text-muted-foreground space-y-2", children: [(0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)(ShippingIcon, { className: "inline-block w-4 h-4 mr-1" }), "You'll receive a shipping confirmation when your order ships."] }), (0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)(QuestionIcon, { className: "inline-block w-4 h-4 mr-1" }), "Questions? Contact us at support@example.com"] })] })] }));
|
|
47
|
+
}
|
|
48
|
+
// =============================================================================
|
|
49
|
+
// Icons
|
|
50
|
+
// =============================================================================
|
|
51
|
+
function CheckIcon({ className }) {
|
|
52
|
+
return ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: (0, jsx_runtime_1.jsx)("polyline", { points: "20 6 9 17 4 12" }) }));
|
|
53
|
+
}
|
|
54
|
+
function ShippingIcon({ className }) {
|
|
55
|
+
return ((0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [(0, jsx_runtime_1.jsx)("rect", { x: "1", y: "3", width: "15", height: "13" }), (0, jsx_runtime_1.jsx)("polygon", { points: "16 8 20 8 23 11 23 16 16 16 16 8" }), (0, jsx_runtime_1.jsx)("circle", { cx: "5.5", cy: "18.5", r: "2.5" }), (0, jsx_runtime_1.jsx)("circle", { cx: "18.5", cy: "18.5", r: "2.5" })] }));
|
|
56
|
+
}
|
|
57
|
+
function QuestionIcon({ className }) {
|
|
58
|
+
return ((0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "10" }), (0, jsx_runtime_1.jsx)("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }), (0, jsx_runtime_1.jsx)("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] }));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=CheckoutSuccess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckoutSuccess.js","sourceRoot":"","sources":["../../../src/checkout/components/CheckoutSuccess.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/checkout/components/OrderSummary
|
|
3
|
+
*
|
|
4
|
+
* Displays order items and totals.
|
|
5
|
+
*/
|
|
6
|
+
import type { OrderSummaryProps } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Displays order summary with items and totals.
|
|
9
|
+
* Automatically reads from cart if no items provided.
|
|
10
|
+
*
|
|
11
|
+
* @example Basic usage (reads from cart)
|
|
12
|
+
* ```tsx
|
|
13
|
+
* import { OrderSummary } from '@rovela/sdk/checkout'
|
|
14
|
+
*
|
|
15
|
+
* function CheckoutPage() {
|
|
16
|
+
* return (
|
|
17
|
+
* <div className="flex">
|
|
18
|
+
* <CheckoutForm />
|
|
19
|
+
* <OrderSummary />
|
|
20
|
+
* </div>
|
|
21
|
+
* )
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example With custom data
|
|
26
|
+
* ```tsx
|
|
27
|
+
* <OrderSummary
|
|
28
|
+
* items={orderItems}
|
|
29
|
+
* subtotal={4999}
|
|
30
|
+
* shipping={500}
|
|
31
|
+
* tax={450}
|
|
32
|
+
* total={5949}
|
|
33
|
+
* />
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function OrderSummary({ items: propItems, subtotal: propSubtotal, shipping, tax, total: propTotal, currency, locale, className, showItems, showEditLink, editHref, }: OrderSummaryProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
//# sourceMappingURL=OrderSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderSummary.d.ts","sourceRoot":"","sources":["../../../src/checkout/components/OrderSummary.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,UAAU,CAAA;AAMnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,QAAY,EACZ,GAAO,EACP,KAAK,EAAE,SAAS,EAChB,QAAgB,EAChB,MAAgB,EAChB,SAAS,EACT,SAAgB,EAChB,YAAoB,EACpB,QAAkB,GACnB,EAAE,iBAAiB,2CAqFnB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @rovela/sdk/checkout/components/OrderSummary
|
|
4
|
+
*
|
|
5
|
+
* Displays order items and totals.
|
|
6
|
+
*/
|
|
7
|
+
'use client';
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.OrderSummary = OrderSummary;
|
|
10
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
11
|
+
const store_1 = require("../../cart/store");
|
|
12
|
+
const utils_1 = require("../../core/utils");
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Component
|
|
15
|
+
// =============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Displays order summary with items and totals.
|
|
18
|
+
* Automatically reads from cart if no items provided.
|
|
19
|
+
*
|
|
20
|
+
* @example Basic usage (reads from cart)
|
|
21
|
+
* ```tsx
|
|
22
|
+
* import { OrderSummary } from '@rovela/sdk/checkout'
|
|
23
|
+
*
|
|
24
|
+
* function CheckoutPage() {
|
|
25
|
+
* return (
|
|
26
|
+
* <div className="flex">
|
|
27
|
+
* <CheckoutForm />
|
|
28
|
+
* <OrderSummary />
|
|
29
|
+
* </div>
|
|
30
|
+
* )
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example With custom data
|
|
35
|
+
* ```tsx
|
|
36
|
+
* <OrderSummary
|
|
37
|
+
* items={orderItems}
|
|
38
|
+
* subtotal={4999}
|
|
39
|
+
* shipping={500}
|
|
40
|
+
* tax={450}
|
|
41
|
+
* total={5949}
|
|
42
|
+
* />
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
function OrderSummary({ items: propItems, subtotal: propSubtotal, shipping = 0, tax = 0, total: propTotal, currency = 'USD', locale = 'en-US', className, showItems = true, showEditLink = false, editHref = '/cart', }) {
|
|
46
|
+
// Get items from cart if not provided
|
|
47
|
+
const { items: cartItems, subtotal: cartSubtotal } = (0, store_1.useCart)();
|
|
48
|
+
// Convert cart items to checkout line items
|
|
49
|
+
const items = propItems ||
|
|
50
|
+
cartItems.map((item) => ({
|
|
51
|
+
productId: item.productId,
|
|
52
|
+
variantId: item.variantId,
|
|
53
|
+
name: item.name,
|
|
54
|
+
price: Math.round(item.price * 100), // Convert to cents
|
|
55
|
+
quantity: item.quantity,
|
|
56
|
+
image: item.image,
|
|
57
|
+
attributes: item.attributes,
|
|
58
|
+
}));
|
|
59
|
+
// Calculate totals (cart subtotal is in dollars, convert to cents)
|
|
60
|
+
const subtotal = propSubtotal ?? Math.round(cartSubtotal * 100);
|
|
61
|
+
const total = propTotal ?? subtotal + shipping + tax;
|
|
62
|
+
// Format price helper
|
|
63
|
+
const format = (cents) => (0, utils_1.formatPrice)(cents / 100, { currency, locale });
|
|
64
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('rounded-lg border bg-card p-6', className), children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-lg font-semibold", children: "Order Summary" }), showEditLink && ((0, jsx_runtime_1.jsx)("a", { href: editHref, className: "text-sm text-primary hover:underline", children: "Edit Cart" }))] }), showItems && items.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "space-y-4 mb-6", children: items.map((item, index) => ((0, jsx_runtime_1.jsx)(OrderItem, { item: item, format: format }, item.productId ? `${item.productId}-${item.variantId || ''}` : index))) })), (0, jsx_runtime_1.jsx)("div", { className: "border-t my-4" }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-sm", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground", children: "Subtotal" }), (0, jsx_runtime_1.jsx)("span", { children: format(subtotal) })] }), shipping > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-sm", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground", children: "Shipping" }), (0, jsx_runtime_1.jsx)("span", { children: format(shipping) })] })), tax > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-sm", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-muted-foreground", children: "Tax" }), (0, jsx_runtime_1.jsx)("span", { children: format(tax) })] })), (0, jsx_runtime_1.jsx)("div", { className: "border-t my-2" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between font-semibold text-lg", children: [(0, jsx_runtime_1.jsx)("span", { children: "Total" }), (0, jsx_runtime_1.jsx)("span", { children: format(total) })] })] })] }));
|
|
65
|
+
}
|
|
66
|
+
function OrderItem({ item, format }) {
|
|
67
|
+
const itemTotal = item.price * item.quantity;
|
|
68
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex gap-4", children: [item.image && ((0, jsx_runtime_1.jsx)("div", { className: "h-16 w-16 flex-shrink-0 overflow-hidden rounded-md border", children: (0, jsx_runtime_1.jsx)("img", { src: item.image, alt: item.name, className: "h-full w-full object-cover" }) })), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-1 flex-col", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium", children: item.name }), item.description && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground mt-0.5", children: item.description }))] }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm font-medium", children: format(itemTotal) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 mt-1 text-xs text-muted-foreground", children: [(0, jsx_runtime_1.jsxs)("span", { children: ["Qty: ", item.quantity] }), item.quantity > 1 && ((0, jsx_runtime_1.jsxs)("span", { children: ["@ ", format(item.price), " each"] }))] })] })] }));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=OrderSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderSummary.js","sourceRoot":"","sources":["../../../src/checkout/components/OrderSummary.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/checkout/components/ShippingForm
|
|
3
|
+
*
|
|
4
|
+
* Shipping address form for checkout.
|
|
5
|
+
*/
|
|
6
|
+
import type { ShippingFormProps } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Shipping address form with validation.
|
|
9
|
+
*
|
|
10
|
+
* Note: This is provided as a reference implementation for custom checkout flows.
|
|
11
|
+
* When using Stripe Checkout (hosted), Stripe handles address collection.
|
|
12
|
+
*
|
|
13
|
+
* @example Basic usage
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { ShippingForm } from '@rovela/sdk/checkout'
|
|
16
|
+
*
|
|
17
|
+
* function CustomCheckout() {
|
|
18
|
+
* const [address, setAddress] = useState(null)
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <ShippingForm
|
|
22
|
+
* onSubmit={setAddress}
|
|
23
|
+
* onCancel={() => router.back()}
|
|
24
|
+
* />
|
|
25
|
+
* )
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function ShippingForm({ defaultValues, onSubmit, onCancel, isSubmitting, className, showBillingAddress, onBillingAddressChange, }: ShippingFormProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
//# sourceMappingURL=ShippingForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShippingForm.d.ts","sourceRoot":"","sources":["../../../src/checkout/components/ShippingForm.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAMjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,YAAoB,EACpB,SAAS,EACT,kBAA0B,EAC1B,sBAAsB,GACvB,EAAE,iBAAiB,2CA2JnB"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @rovela/sdk/checkout/components/ShippingForm
|
|
4
|
+
*
|
|
5
|
+
* Shipping address form for checkout.
|
|
6
|
+
*/
|
|
7
|
+
'use client';
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ShippingForm = ShippingForm;
|
|
10
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
const utils_1 = require("../../core/utils");
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Component
|
|
15
|
+
// =============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Shipping address form with validation.
|
|
18
|
+
*
|
|
19
|
+
* Note: This is provided as a reference implementation for custom checkout flows.
|
|
20
|
+
* When using Stripe Checkout (hosted), Stripe handles address collection.
|
|
21
|
+
*
|
|
22
|
+
* @example Basic usage
|
|
23
|
+
* ```tsx
|
|
24
|
+
* import { ShippingForm } from '@rovela/sdk/checkout'
|
|
25
|
+
*
|
|
26
|
+
* function CustomCheckout() {
|
|
27
|
+
* const [address, setAddress] = useState(null)
|
|
28
|
+
*
|
|
29
|
+
* return (
|
|
30
|
+
* <ShippingForm
|
|
31
|
+
* onSubmit={setAddress}
|
|
32
|
+
* onCancel={() => router.back()}
|
|
33
|
+
* />
|
|
34
|
+
* )
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
function ShippingForm({ defaultValues, onSubmit, onCancel, isSubmitting = false, className, showBillingAddress = false, onBillingAddressChange, }) {
|
|
39
|
+
// Form state
|
|
40
|
+
const [formData, setFormData] = (0, react_1.useState)({
|
|
41
|
+
firstName: defaultValues?.firstName || '',
|
|
42
|
+
lastName: defaultValues?.lastName || '',
|
|
43
|
+
line1: defaultValues?.line1 || '',
|
|
44
|
+
line2: defaultValues?.line2 || '',
|
|
45
|
+
city: defaultValues?.city || '',
|
|
46
|
+
state: defaultValues?.state || '',
|
|
47
|
+
postalCode: defaultValues?.postalCode || '',
|
|
48
|
+
country: defaultValues?.country || 'US',
|
|
49
|
+
});
|
|
50
|
+
const [billingDifferent, setBillingDifferent] = (0, react_1.useState)(false);
|
|
51
|
+
const [billingData, setBillingData] = (0, react_1.useState)({});
|
|
52
|
+
const [errors, setErrors] = (0, react_1.useState)({});
|
|
53
|
+
// Handle field change
|
|
54
|
+
const handleChange = (0, react_1.useCallback)((field, value, isBilling = false) => {
|
|
55
|
+
if (isBilling) {
|
|
56
|
+
setBillingData((prev) => ({ ...prev, [field]: value }));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
setFormData((prev) => ({ ...prev, [field]: value }));
|
|
60
|
+
}
|
|
61
|
+
// Clear error on change
|
|
62
|
+
setErrors((prev) => {
|
|
63
|
+
const newErrors = { ...prev };
|
|
64
|
+
delete newErrors[isBilling ? `billing_${field}` : field];
|
|
65
|
+
return newErrors;
|
|
66
|
+
});
|
|
67
|
+
}, []);
|
|
68
|
+
// Validate form
|
|
69
|
+
const validate = (0, react_1.useCallback)(() => {
|
|
70
|
+
const newErrors = {};
|
|
71
|
+
// Required fields for shipping
|
|
72
|
+
if (!formData.firstName?.trim())
|
|
73
|
+
newErrors.firstName = 'First name is required';
|
|
74
|
+
if (!formData.lastName?.trim())
|
|
75
|
+
newErrors.lastName = 'Last name is required';
|
|
76
|
+
if (!formData.line1?.trim())
|
|
77
|
+
newErrors.line1 = 'Address is required';
|
|
78
|
+
if (!formData.city?.trim())
|
|
79
|
+
newErrors.city = 'City is required';
|
|
80
|
+
if (!formData.state?.trim())
|
|
81
|
+
newErrors.state = 'State is required';
|
|
82
|
+
if (!formData.postalCode?.trim())
|
|
83
|
+
newErrors.postalCode = 'Postal code is required';
|
|
84
|
+
if (!formData.country?.trim())
|
|
85
|
+
newErrors.country = 'Country is required';
|
|
86
|
+
// Required fields for billing if different
|
|
87
|
+
if (billingDifferent) {
|
|
88
|
+
if (!billingData.firstName?.trim())
|
|
89
|
+
newErrors.billing_firstName = 'First name is required';
|
|
90
|
+
if (!billingData.lastName?.trim())
|
|
91
|
+
newErrors.billing_lastName = 'Last name is required';
|
|
92
|
+
if (!billingData.line1?.trim())
|
|
93
|
+
newErrors.billing_line1 = 'Address is required';
|
|
94
|
+
if (!billingData.city?.trim())
|
|
95
|
+
newErrors.billing_city = 'City is required';
|
|
96
|
+
if (!billingData.state?.trim())
|
|
97
|
+
newErrors.billing_state = 'State is required';
|
|
98
|
+
if (!billingData.postalCode?.trim())
|
|
99
|
+
newErrors.billing_postalCode = 'Postal code is required';
|
|
100
|
+
if (!billingData.country?.trim())
|
|
101
|
+
newErrors.billing_country = 'Country is required';
|
|
102
|
+
}
|
|
103
|
+
setErrors(newErrors);
|
|
104
|
+
return Object.keys(newErrors).length === 0;
|
|
105
|
+
}, [formData, billingData, billingDifferent]);
|
|
106
|
+
// Handle form submission
|
|
107
|
+
const handleSubmit = (0, react_1.useCallback)((e) => {
|
|
108
|
+
e.preventDefault();
|
|
109
|
+
if (!validate())
|
|
110
|
+
return;
|
|
111
|
+
const shippingAddress = formData;
|
|
112
|
+
onSubmit(shippingAddress);
|
|
113
|
+
if (showBillingAddress && onBillingAddressChange) {
|
|
114
|
+
onBillingAddressChange(billingDifferent ? billingData : null);
|
|
115
|
+
}
|
|
116
|
+
}, [formData, billingData, billingDifferent, validate, onSubmit, onBillingAddressChange, showBillingAddress]);
|
|
117
|
+
return ((0, jsx_runtime_1.jsxs)("form", { onSubmit: handleSubmit, className: (0, utils_1.cn)('space-y-6', className), children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-lg font-semibold mb-4", children: "Shipping Address" }), (0, jsx_runtime_1.jsx)(AddressFields, { data: formData, errors: errors, onChange: (field, value) => handleChange(field, value, false), prefix: "" })] }), showBillingAddress && ((0, jsx_runtime_1.jsxs)("div", { className: "space-y-4", children: [(0, jsx_runtime_1.jsxs)("label", { className: "flex items-center gap-2 cursor-pointer", children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: billingDifferent, onChange: (e) => setBillingDifferent(e.target.checked), className: "rounded border-input" }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm", children: "Billing address is different from shipping" })] }), billingDifferent && ((0, jsx_runtime_1.jsxs)("div", { className: "pt-4 border-t", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-lg font-semibold mb-4", children: "Billing Address" }), (0, jsx_runtime_1.jsx)(AddressFields, { data: billingData, errors: errors, onChange: (field, value) => handleChange(field, value, true), prefix: "billing_" })] }))] })), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-4", children: [onCancel && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onCancel, disabled: isSubmitting, className: (0, utils_1.cn)('flex-1 px-4 py-2 rounded-md font-medium', 'border border-input bg-background', 'hover:bg-accent hover:text-accent-foreground', 'transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: "Cancel" })), (0, jsx_runtime_1.jsx)("button", { type: "submit", disabled: isSubmitting, className: (0, utils_1.cn)('flex-1 px-4 py-2 rounded-md font-medium', 'bg-primary text-primary-foreground', 'hover:bg-primary/90', 'transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: isSubmitting ? 'Saving...' : 'Continue' })] })] }));
|
|
118
|
+
}
|
|
119
|
+
function AddressFields({ data, errors, onChange, prefix }) {
|
|
120
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "space-y-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [(0, jsx_runtime_1.jsx)(FormField, { label: "First Name", value: data.firstName || '', error: errors[`${prefix}firstName`], onChange: (v) => onChange('firstName', v), required: true }), (0, jsx_runtime_1.jsx)(FormField, { label: "Last Name", value: data.lastName || '', error: errors[`${prefix}lastName`], onChange: (v) => onChange('lastName', v), required: true })] }), (0, jsx_runtime_1.jsx)(FormField, { label: "Address", value: data.line1 || '', error: errors[`${prefix}line1`], onChange: (v) => onChange('line1', v), placeholder: "Street address", required: true }), (0, jsx_runtime_1.jsx)(FormField, { label: "Apartment, suite, etc. (optional)", value: data.line2 || '', onChange: (v) => onChange('line2', v), placeholder: "Apt, Suite, Unit, Building" }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-6 gap-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "col-span-2", children: (0, jsx_runtime_1.jsx)(FormField, { label: "City", value: data.city || '', error: errors[`${prefix}city`], onChange: (v) => onChange('city', v), required: true }) }), (0, jsx_runtime_1.jsx)("div", { className: "col-span-2", children: (0, jsx_runtime_1.jsx)(FormField, { label: "State", value: data.state || '', error: errors[`${prefix}state`], onChange: (v) => onChange('state', v), required: true }) }), (0, jsx_runtime_1.jsx)("div", { className: "col-span-2", children: (0, jsx_runtime_1.jsx)(FormField, { label: "ZIP Code", value: data.postalCode || '', error: errors[`${prefix}postalCode`], onChange: (v) => onChange('postalCode', v), required: true }) })] }), (0, jsx_runtime_1.jsx)(FormField, { label: "Country", value: data.country || '', error: errors[`${prefix}country`], onChange: (v) => onChange('country', v), required: true })] }));
|
|
121
|
+
}
|
|
122
|
+
function FormField({ label, value, error, onChange, placeholder, required, }) {
|
|
123
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("label", { className: "block text-sm font-medium mb-1", children: [label, required && (0, jsx_runtime_1.jsx)("span", { className: "text-destructive ml-1", children: "*" })] }), (0, jsx_runtime_1.jsx)("input", { type: "text", value: value, onChange: (e) => onChange(e.target.value), placeholder: placeholder, className: (0, utils_1.cn)('w-full px-3 py-2 rounded-md border', 'bg-background text-foreground', 'focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary', error ? 'border-destructive' : 'border-input') }), error && (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-destructive mt-1", children: error })] }));
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=ShippingForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShippingForm.js","sourceRoot":"","sources":["../../../src/checkout/components/ShippingForm.tsx"],"names":[],"mappings":"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"}
|