@rovela-ai/sdk 0.3.34 → 0.4.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/dist/admin/{styles/admin-theme.css → admin-theme.css} +1 -46
- package/dist/checkout/index.d.ts +1 -1
- package/dist/checkout/index.d.ts.map +1 -1
- package/dist/checkout/server/create-checkout-session.d.ts +10 -1
- package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
- package/dist/checkout/server/create-checkout-session.js +28 -17
- package/dist/checkout/server/create-checkout-session.js.map +1 -1
- package/dist/checkout/server/handle-webhook.d.ts.map +1 -1
- package/dist/checkout/server/handle-webhook.js +24 -26
- package/dist/checkout/server/handle-webhook.js.map +1 -1
- package/dist/checkout/server/order-service.d.ts +8 -3
- package/dist/checkout/server/order-service.d.ts.map +1 -1
- package/dist/checkout/server/order-service.js +60 -14
- package/dist/checkout/server/order-service.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -2
- package/dist/admin/api/accept-invite.d.ts +0 -65
- package/dist/admin/api/accept-invite.d.ts.map +0 -1
- package/dist/admin/api/accept-invite.js +0 -115
- package/dist/admin/api/accept-invite.js.map +0 -1
- package/dist/admin/api/auth.d.ts +0 -32
- package/dist/admin/api/auth.d.ts.map +0 -1
- package/dist/admin/api/auth.js +0 -37
- package/dist/admin/api/auth.js.map +0 -1
- package/dist/admin/api/categories.d.ts +0 -68
- package/dist/admin/api/categories.d.ts.map +0 -1
- package/dist/admin/api/categories.js +0 -266
- package/dist/admin/api/categories.js.map +0 -1
- package/dist/admin/api/check.d.ts +0 -38
- package/dist/admin/api/check.d.ts.map +0 -1
- package/dist/admin/api/check.js +0 -49
- package/dist/admin/api/check.js.map +0 -1
- package/dist/admin/api/customers.d.ts +0 -77
- package/dist/admin/api/customers.d.ts.map +0 -1
- package/dist/admin/api/customers.js +0 -219
- package/dist/admin/api/customers.js.map +0 -1
- package/dist/admin/api/forgot-password.d.ts +0 -39
- package/dist/admin/api/forgot-password.d.ts.map +0 -1
- package/dist/admin/api/forgot-password.js +0 -66
- package/dist/admin/api/forgot-password.js.map +0 -1
- package/dist/admin/api/index.d.ts +0 -107
- package/dist/admin/api/index.d.ts.map +0 -1
- package/dist/admin/api/index.js +0 -127
- package/dist/admin/api/index.js.map +0 -1
- package/dist/admin/api/linked-customer.d.ts +0 -32
- package/dist/admin/api/linked-customer.d.ts.map +0 -1
- package/dist/admin/api/linked-customer.js +0 -45
- package/dist/admin/api/linked-customer.js.map +0 -1
- package/dist/admin/api/me.d.ts +0 -72
- package/dist/admin/api/me.d.ts.map +0 -1
- package/dist/admin/api/me.js +0 -177
- package/dist/admin/api/me.js.map +0 -1
- package/dist/admin/api/orders.d.ts +0 -91
- package/dist/admin/api/orders.d.ts.map +0 -1
- package/dist/admin/api/orders.js +0 -390
- package/dist/admin/api/orders.js.map +0 -1
- package/dist/admin/api/products-bulk.d.ts +0 -38
- package/dist/admin/api/products-bulk.d.ts.map +0 -1
- package/dist/admin/api/products-bulk.js +0 -135
- package/dist/admin/api/products-bulk.js.map +0 -1
- package/dist/admin/api/products-stats.d.ts +0 -34
- package/dist/admin/api/products-stats.d.ts.map +0 -1
- package/dist/admin/api/products-stats.js +0 -43
- package/dist/admin/api/products-stats.js.map +0 -1
- package/dist/admin/api/products.d.ts +0 -104
- package/dist/admin/api/products.d.ts.map +0 -1
- package/dist/admin/api/products.js +0 -491
- package/dist/admin/api/products.js.map +0 -1
- package/dist/admin/api/refund.d.ts +0 -29
- package/dist/admin/api/refund.d.ts.map +0 -1
- package/dist/admin/api/refund.js +0 -142
- package/dist/admin/api/refund.js.map +0 -1
- package/dist/admin/api/reset-password.d.ts +0 -49
- package/dist/admin/api/reset-password.d.ts.map +0 -1
- package/dist/admin/api/reset-password.js +0 -99
- package/dist/admin/api/reset-password.js.map +0 -1
- package/dist/admin/api/return.d.ts +0 -47
- package/dist/admin/api/return.d.ts.map +0 -1
- package/dist/admin/api/return.js +0 -186
- package/dist/admin/api/return.js.map +0 -1
- package/dist/admin/api/settings.d.ts +0 -49
- package/dist/admin/api/settings.d.ts.map +0 -1
- package/dist/admin/api/settings.js +0 -201
- package/dist/admin/api/settings.js.map +0 -1
- package/dist/admin/api/setup-guide.d.ts +0 -78
- package/dist/admin/api/setup-guide.d.ts.map +0 -1
- package/dist/admin/api/setup-guide.js +0 -235
- package/dist/admin/api/setup-guide.js.map +0 -1
- package/dist/admin/api/setup.d.ts +0 -60
- package/dist/admin/api/setup.d.ts.map +0 -1
- package/dist/admin/api/setup.js +0 -126
- package/dist/admin/api/setup.js.map +0 -1
- package/dist/admin/api/shipping.d.ts +0 -287
- package/dist/admin/api/shipping.d.ts.map +0 -1
- package/dist/admin/api/shipping.js +0 -746
- package/dist/admin/api/shipping.js.map +0 -1
- package/dist/admin/api/stats.d.ts +0 -43
- package/dist/admin/api/stats.d.ts.map +0 -1
- package/dist/admin/api/stats.js +0 -92
- package/dist/admin/api/stats.js.map +0 -1
- package/dist/admin/api/stripe-status.d.ts +0 -39
- package/dist/admin/api/stripe-status.d.ts.map +0 -1
- package/dist/admin/api/stripe-status.js +0 -99
- package/dist/admin/api/stripe-status.js.map +0 -1
- package/dist/admin/api/tax-zones.d.ts +0 -97
- package/dist/admin/api/tax-zones.d.ts.map +0 -1
- package/dist/admin/api/tax-zones.js +0 -265
- package/dist/admin/api/tax-zones.js.map +0 -1
- package/dist/admin/api/users.d.ts +0 -142
- package/dist/admin/api/users.d.ts.map +0 -1
- package/dist/admin/api/users.js +0 -356
- package/dist/admin/api/users.js.map +0 -1
- package/dist/admin/components/AdminAcceptInviteForm.d.ts +0 -3
- package/dist/admin/components/AdminAcceptInviteForm.d.ts.map +0 -1
- package/dist/admin/components/AdminAcceptInviteForm.js +0 -137
- package/dist/admin/components/AdminAcceptInviteForm.js.map +0 -1
- package/dist/admin/components/AdminAccountPage.d.ts +0 -10
- package/dist/admin/components/AdminAccountPage.d.ts.map +0 -1
- package/dist/admin/components/AdminAccountPage.js +0 -126
- package/dist/admin/components/AdminAccountPage.js.map +0 -1
- package/dist/admin/components/AdminBarBanner.d.ts +0 -2
- package/dist/admin/components/AdminBarBanner.d.ts.map +0 -1
- package/dist/admin/components/AdminBarBanner.js +0 -266
- package/dist/admin/components/AdminBarBanner.js.map +0 -1
- package/dist/admin/components/AdminForgotPasswordForm.d.ts +0 -8
- package/dist/admin/components/AdminForgotPasswordForm.d.ts.map +0 -1
- package/dist/admin/components/AdminForgotPasswordForm.js +0 -59
- package/dist/admin/components/AdminForgotPasswordForm.js.map +0 -1
- package/dist/admin/components/AdminGuard.d.ts +0 -40
- package/dist/admin/components/AdminGuard.d.ts.map +0 -1
- package/dist/admin/components/AdminGuard.js +0 -94
- package/dist/admin/components/AdminGuard.js.map +0 -1
- package/dist/admin/components/AdminLayout.d.ts +0 -40
- package/dist/admin/components/AdminLayout.d.ts.map +0 -1
- package/dist/admin/components/AdminLayout.js +0 -39
- package/dist/admin/components/AdminLayout.js.map +0 -1
- package/dist/admin/components/AdminLoginForm.d.ts +0 -18
- package/dist/admin/components/AdminLoginForm.d.ts.map +0 -1
- package/dist/admin/components/AdminLoginForm.js +0 -61
- package/dist/admin/components/AdminLoginForm.js.map +0 -1
- package/dist/admin/components/AdminNav.d.ts +0 -44
- package/dist/admin/components/AdminNav.d.ts.map +0 -1
- package/dist/admin/components/AdminNav.js +0 -175
- package/dist/admin/components/AdminNav.js.map +0 -1
- package/dist/admin/components/AdminResetPasswordForm.d.ts +0 -12
- package/dist/admin/components/AdminResetPasswordForm.d.ts.map +0 -1
- package/dist/admin/components/AdminResetPasswordForm.js +0 -134
- package/dist/admin/components/AdminResetPasswordForm.js.map +0 -1
- package/dist/admin/components/AdminSelect.d.ts +0 -47
- package/dist/admin/components/AdminSelect.d.ts.map +0 -1
- package/dist/admin/components/AdminSelect.js +0 -71
- package/dist/admin/components/AdminSelect.js.map +0 -1
- package/dist/admin/components/AdminSetupForm.d.ts +0 -28
- package/dist/admin/components/AdminSetupForm.d.ts.map +0 -1
- package/dist/admin/components/AdminSetupForm.js +0 -85
- package/dist/admin/components/AdminSetupForm.js.map +0 -1
- package/dist/admin/components/AdminToast.d.ts +0 -31
- package/dist/admin/components/AdminToast.d.ts.map +0 -1
- package/dist/admin/components/AdminToast.js +0 -83
- package/dist/admin/components/AdminToast.js.map +0 -1
- package/dist/admin/components/AdminUserMenu.d.ts +0 -14
- package/dist/admin/components/AdminUserMenu.d.ts.map +0 -1
- package/dist/admin/components/AdminUserMenu.js +0 -34
- package/dist/admin/components/AdminUserMenu.js.map +0 -1
- package/dist/admin/components/CategoryForm.d.ts +0 -30
- package/dist/admin/components/CategoryForm.d.ts.map +0 -1
- package/dist/admin/components/CategoryForm.js +0 -152
- package/dist/admin/components/CategoryForm.js.map +0 -1
- package/dist/admin/components/CategorySelect.d.ts +0 -32
- package/dist/admin/components/CategorySelect.d.ts.map +0 -1
- package/dist/admin/components/CategorySelect.js +0 -139
- package/dist/admin/components/CategorySelect.js.map +0 -1
- package/dist/admin/components/CustomerDetails.d.ts +0 -15
- package/dist/admin/components/CustomerDetails.d.ts.map +0 -1
- package/dist/admin/components/CustomerDetails.js +0 -177
- package/dist/admin/components/CustomerDetails.js.map +0 -1
- package/dist/admin/components/CustomerTable.d.ts +0 -13
- package/dist/admin/components/CustomerTable.d.ts.map +0 -1
- package/dist/admin/components/CustomerTable.js +0 -112
- package/dist/admin/components/CustomerTable.js.map +0 -1
- package/dist/admin/components/DeleteConfirmDialog.d.ts +0 -57
- package/dist/admin/components/DeleteConfirmDialog.d.ts.map +0 -1
- package/dist/admin/components/DeleteConfirmDialog.js +0 -46
- package/dist/admin/components/DeleteConfirmDialog.js.map +0 -1
- package/dist/admin/components/ExampleContentBanner.d.ts +0 -2
- package/dist/admin/components/ExampleContentBanner.d.ts.map +0 -1
- package/dist/admin/components/ExampleContentBanner.js +0 -153
- package/dist/admin/components/ExampleContentBanner.js.map +0 -1
- package/dist/admin/components/InventoryEditor.d.ts +0 -15
- package/dist/admin/components/InventoryEditor.d.ts.map +0 -1
- package/dist/admin/components/InventoryEditor.js +0 -86
- package/dist/admin/components/InventoryEditor.js.map +0 -1
- package/dist/admin/components/InviteUserDialog.d.ts +0 -3
- package/dist/admin/components/InviteUserDialog.d.ts.map +0 -1
- package/dist/admin/components/InviteUserDialog.js +0 -127
- package/dist/admin/components/InviteUserDialog.js.map +0 -1
- package/dist/admin/components/LogoUpload.d.ts +0 -22
- package/dist/admin/components/LogoUpload.d.ts.map +0 -1
- package/dist/admin/components/LogoUpload.js +0 -210
- package/dist/admin/components/LogoUpload.js.map +0 -1
- package/dist/admin/components/LowStockAlert.d.ts +0 -11
- package/dist/admin/components/LowStockAlert.d.ts.map +0 -1
- package/dist/admin/components/LowStockAlert.js +0 -33
- package/dist/admin/components/LowStockAlert.js.map +0 -1
- package/dist/admin/components/OrderDetails.d.ts +0 -14
- package/dist/admin/components/OrderDetails.d.ts.map +0 -1
- package/dist/admin/components/OrderDetails.js +0 -210
- package/dist/admin/components/OrderDetails.js.map +0 -1
- package/dist/admin/components/OrderStatusChart.d.ts +0 -21
- package/dist/admin/components/OrderStatusChart.d.ts.map +0 -1
- package/dist/admin/components/OrderStatusChart.js +0 -61
- package/dist/admin/components/OrderStatusChart.js.map +0 -1
- package/dist/admin/components/OrderTable.d.ts +0 -13
- package/dist/admin/components/OrderTable.d.ts.map +0 -1
- package/dist/admin/components/OrderTable.js +0 -117
- package/dist/admin/components/OrderTable.js.map +0 -1
- package/dist/admin/components/PaymentSettings.d.ts +0 -13
- package/dist/admin/components/PaymentSettings.d.ts.map +0 -1
- package/dist/admin/components/PaymentSettings.js +0 -120
- package/dist/admin/components/PaymentSettings.js.map +0 -1
- package/dist/admin/components/PeriodSelector.d.ts +0 -9
- package/dist/admin/components/PeriodSelector.d.ts.map +0 -1
- package/dist/admin/components/PeriodSelector.js +0 -19
- package/dist/admin/components/PeriodSelector.js.map +0 -1
- package/dist/admin/components/PermissionsMatrix.d.ts +0 -8
- package/dist/admin/components/PermissionsMatrix.d.ts.map +0 -1
- package/dist/admin/components/PermissionsMatrix.js +0 -70
- package/dist/admin/components/PermissionsMatrix.js.map +0 -1
- package/dist/admin/components/PrimaryMetricsRow.d.ts +0 -11
- package/dist/admin/components/PrimaryMetricsRow.d.ts.map +0 -1
- package/dist/admin/components/PrimaryMetricsRow.js +0 -73
- package/dist/admin/components/PrimaryMetricsRow.js.map +0 -1
- package/dist/admin/components/ProductForm.d.ts +0 -18
- package/dist/admin/components/ProductForm.d.ts.map +0 -1
- package/dist/admin/components/ProductForm.js +0 -261
- package/dist/admin/components/ProductForm.js.map +0 -1
- package/dist/admin/components/ProductTable.d.ts +0 -14
- package/dist/admin/components/ProductTable.d.ts.map +0 -1
- package/dist/admin/components/ProductTable.js +0 -384
- package/dist/admin/components/ProductTable.js.map +0 -1
- package/dist/admin/components/RecentOrders.d.ts +0 -11
- package/dist/admin/components/RecentOrders.d.ts.map +0 -1
- package/dist/admin/components/RecentOrders.js +0 -63
- package/dist/admin/components/RecentOrders.js.map +0 -1
- package/dist/admin/components/RefundDialog.d.ts +0 -17
- package/dist/admin/components/RefundDialog.d.ts.map +0 -1
- package/dist/admin/components/RefundDialog.js +0 -90
- package/dist/admin/components/RefundDialog.js.map +0 -1
- package/dist/admin/components/RevenueChart.d.ts +0 -23
- package/dist/admin/components/RevenueChart.d.ts.map +0 -1
- package/dist/admin/components/RevenueChart.js +0 -75
- package/dist/admin/components/RevenueChart.js.map +0 -1
- package/dist/admin/components/SEOPreview.d.ts +0 -33
- package/dist/admin/components/SEOPreview.d.ts.map +0 -1
- package/dist/admin/components/SEOPreview.js +0 -30
- package/dist/admin/components/SEOPreview.js.map +0 -1
- package/dist/admin/components/SecondaryMetricsRow.d.ts +0 -14
- package/dist/admin/components/SecondaryMetricsRow.d.ts.map +0 -1
- package/dist/admin/components/SecondaryMetricsRow.js +0 -45
- package/dist/admin/components/SecondaryMetricsRow.js.map +0 -1
- package/dist/admin/components/SetupGuide.d.ts +0 -4
- package/dist/admin/components/SetupGuide.d.ts.map +0 -1
- package/dist/admin/components/SetupGuide.js +0 -244
- package/dist/admin/components/SetupGuide.js.map +0 -1
- package/dist/admin/components/ShippingSettings.d.ts +0 -3
- package/dist/admin/components/ShippingSettings.d.ts.map +0 -1
- package/dist/admin/components/ShippingSettings.js +0 -553
- package/dist/admin/components/ShippingSettings.js.map +0 -1
- package/dist/admin/components/StatsCards.d.ts +0 -18
- package/dist/admin/components/StatsCards.d.ts.map +0 -1
- package/dist/admin/components/StatsCards.js +0 -71
- package/dist/admin/components/StatsCards.js.map +0 -1
- package/dist/admin/components/StoreSettings.d.ts +0 -19
- package/dist/admin/components/StoreSettings.d.ts.map +0 -1
- package/dist/admin/components/StoreSettings.js +0 -149
- package/dist/admin/components/StoreSettings.js.map +0 -1
- package/dist/admin/components/TagInput.d.ts +0 -29
- package/dist/admin/components/TagInput.d.ts.map +0 -1
- package/dist/admin/components/TagInput.js +0 -69
- package/dist/admin/components/TagInput.js.map +0 -1
- package/dist/admin/components/TaxSettings.d.ts +0 -12
- package/dist/admin/components/TaxSettings.d.ts.map +0 -1
- package/dist/admin/components/TaxSettings.js +0 -272
- package/dist/admin/components/TaxSettings.js.map +0 -1
- package/dist/admin/components/UsersTable.d.ts +0 -3
- package/dist/admin/components/UsersTable.d.ts.map +0 -1
- package/dist/admin/components/UsersTable.js +0 -393
- package/dist/admin/components/UsersTable.js.map +0 -1
- package/dist/admin/components/VariantManager.d.ts +0 -44
- package/dist/admin/components/VariantManager.d.ts.map +0 -1
- package/dist/admin/components/VariantManager.js +0 -325
- package/dist/admin/components/VariantManager.js.map +0 -1
- package/dist/admin/components/index.d.ts +0 -71
- package/dist/admin/components/index.d.ts.map +0 -1
- package/dist/admin/components/index.js +0 -87
- package/dist/admin/components/index.js.map +0 -1
- package/dist/admin/config.d.ts +0 -71
- package/dist/admin/config.d.ts.map +0 -1
- package/dist/admin/config.js +0 -253
- package/dist/admin/config.js.map +0 -1
- package/dist/admin/hooks/fetchAdminApi.d.ts +0 -65
- package/dist/admin/hooks/fetchAdminApi.d.ts.map +0 -1
- package/dist/admin/hooks/fetchAdminApi.js +0 -96
- package/dist/admin/hooks/fetchAdminApi.js.map +0 -1
- package/dist/admin/hooks/index.d.ts +0 -24
- package/dist/admin/hooks/index.d.ts.map +0 -1
- package/dist/admin/hooks/index.js +0 -19
- package/dist/admin/hooks/index.js.map +0 -1
- package/dist/admin/hooks/useAdminAuth.d.ts +0 -25
- package/dist/admin/hooks/useAdminAuth.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminAuth.js +0 -183
- package/dist/admin/hooks/useAdminAuth.js.map +0 -1
- package/dist/admin/hooks/useAdminCategories.d.ts +0 -9
- package/dist/admin/hooks/useAdminCategories.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminCategories.js +0 -112
- package/dist/admin/hooks/useAdminCategories.js.map +0 -1
- package/dist/admin/hooks/useAdminCustomers.d.ts +0 -3
- package/dist/admin/hooks/useAdminCustomers.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminCustomers.js +0 -110
- package/dist/admin/hooks/useAdminCustomers.js.map +0 -1
- package/dist/admin/hooks/useAdminMe.d.ts +0 -31
- package/dist/admin/hooks/useAdminMe.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminMe.js +0 -78
- package/dist/admin/hooks/useAdminMe.js.map +0 -1
- package/dist/admin/hooks/useAdminOrders.d.ts +0 -3
- package/dist/admin/hooks/useAdminOrders.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminOrders.js +0 -118
- package/dist/admin/hooks/useAdminOrders.js.map +0 -1
- package/dist/admin/hooks/useAdminPermissions.d.ts +0 -3
- package/dist/admin/hooks/useAdminPermissions.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminPermissions.js +0 -51
- package/dist/admin/hooks/useAdminPermissions.js.map +0 -1
- package/dist/admin/hooks/useAdminProductMetrics.d.ts +0 -3
- package/dist/admin/hooks/useAdminProductMetrics.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminProductMetrics.js +0 -32
- package/dist/admin/hooks/useAdminProductMetrics.js.map +0 -1
- package/dist/admin/hooks/useAdminProducts.d.ts +0 -3
- package/dist/admin/hooks/useAdminProducts.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminProducts.js +0 -132
- package/dist/admin/hooks/useAdminProducts.js.map +0 -1
- package/dist/admin/hooks/useAdminSession.d.ts +0 -23
- package/dist/admin/hooks/useAdminSession.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminSession.js +0 -117
- package/dist/admin/hooks/useAdminSession.js.map +0 -1
- package/dist/admin/hooks/useAdminStats.d.ts +0 -47
- package/dist/admin/hooks/useAdminStats.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminStats.js +0 -128
- package/dist/admin/hooks/useAdminStats.js.map +0 -1
- package/dist/admin/hooks/useAdminUsers.d.ts +0 -3
- package/dist/admin/hooks/useAdminUsers.d.ts.map +0 -1
- package/dist/admin/hooks/useAdminUsers.js +0 -177
- package/dist/admin/hooks/useAdminUsers.js.map +0 -1
- package/dist/admin/hooks/useLinkedCustomerStatus.d.ts +0 -3
- package/dist/admin/hooks/useLinkedCustomerStatus.d.ts.map +0 -1
- package/dist/admin/hooks/useLinkedCustomerStatus.js +0 -48
- package/dist/admin/hooks/useLinkedCustomerStatus.js.map +0 -1
- package/dist/admin/hooks/useSetupGuide.d.ts +0 -45
- package/dist/admin/hooks/useSetupGuide.d.ts.map +0 -1
- package/dist/admin/hooks/useSetupGuide.js +0 -60
- package/dist/admin/hooks/useSetupGuide.js.map +0 -1
- package/dist/admin/index.d.ts +0 -66
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -144
- package/dist/admin/index.js.map +0 -1
- package/dist/admin/permissions.d.ts +0 -92
- package/dist/admin/permissions.d.ts.map +0 -1
- package/dist/admin/permissions.js +0 -201
- package/dist/admin/permissions.js.map +0 -1
- package/dist/admin/server/admin-invite.d.ts +0 -122
- package/dist/admin/server/admin-invite.d.ts.map +0 -1
- package/dist/admin/server/admin-invite.js +0 -235
- package/dist/admin/server/admin-invite.js.map +0 -1
- package/dist/admin/server/admin-password-reset.d.ts +0 -87
- package/dist/admin/server/admin-password-reset.d.ts.map +0 -1
- package/dist/admin/server/admin-password-reset.js +0 -220
- package/dist/admin/server/admin-password-reset.js.map +0 -1
- package/dist/admin/server/admin-self-service.d.ts +0 -86
- package/dist/admin/server/admin-self-service.d.ts.map +0 -1
- package/dist/admin/server/admin-self-service.js +0 -188
- package/dist/admin/server/admin-self-service.js.map +0 -1
- package/dist/admin/server/admin-service.d.ts +0 -130
- package/dist/admin/server/admin-service.d.ts.map +0 -1
- package/dist/admin/server/admin-service.js +0 -278
- package/dist/admin/server/admin-service.js.map +0 -1
- package/dist/admin/server/admin-session.d.ts +0 -173
- package/dist/admin/server/admin-session.d.ts.map +0 -1
- package/dist/admin/server/admin-session.js +0 -272
- package/dist/admin/server/admin-session.js.map +0 -1
- package/dist/admin/server/index.d.ts +0 -17
- package/dist/admin/server/index.d.ts.map +0 -1
- package/dist/admin/server/index.js +0 -39
- package/dist/admin/server/index.js.map +0 -1
- package/dist/admin/server/user-management.d.ts +0 -223
- package/dist/admin/server/user-management.d.ts.map +0 -1
- package/dist/admin/server/user-management.js +0 -846
- package/dist/admin/server/user-management.js.map +0 -1
- package/dist/admin/types.d.ts +0 -1172
- package/dist/admin/types.d.ts.map +0 -1
- package/dist/admin/types.js +0 -10
- package/dist/admin/types.js.map +0 -1
- package/dist/auth/api/auth.d.ts +0 -54
- package/dist/auth/api/auth.d.ts.map +0 -1
- package/dist/auth/api/auth.js +0 -59
- package/dist/auth/api/auth.js.map +0 -1
- package/dist/auth/api/forgot-password.d.ts +0 -41
- package/dist/auth/api/forgot-password.d.ts.map +0 -1
- package/dist/auth/api/forgot-password.js +0 -65
- package/dist/auth/api/forgot-password.js.map +0 -1
- package/dist/auth/api/index.d.ts +0 -36
- package/dist/auth/api/index.d.ts.map +0 -1
- package/dist/auth/api/index.js +0 -44
- package/dist/auth/api/index.js.map +0 -1
- package/dist/auth/api/register.d.ts +0 -41
- package/dist/auth/api/register.d.ts.map +0 -1
- package/dist/auth/api/register.js +0 -94
- package/dist/auth/api/register.js.map +0 -1
- package/dist/auth/api/request-refund.d.ts +0 -38
- package/dist/auth/api/request-refund.d.ts.map +0 -1
- package/dist/auth/api/request-refund.js +0 -142
- package/dist/auth/api/request-refund.js.map +0 -1
- package/dist/auth/api/request-return.d.ts +0 -39
- package/dist/auth/api/request-return.d.ts.map +0 -1
- package/dist/auth/api/request-return.js +0 -109
- package/dist/auth/api/request-return.js.map +0 -1
- package/dist/auth/api/resend-verification.d.ts +0 -41
- package/dist/auth/api/resend-verification.d.ts.map +0 -1
- package/dist/auth/api/resend-verification.js +0 -68
- package/dist/auth/api/resend-verification.js.map +0 -1
- package/dist/auth/api/reset-password.d.ts +0 -67
- package/dist/auth/api/reset-password.d.ts.map +0 -1
- package/dist/auth/api/reset-password.js +0 -106
- package/dist/auth/api/reset-password.js.map +0 -1
- package/dist/auth/api/verify-email.d.ts +0 -47
- package/dist/auth/api/verify-email.d.ts.map +0 -1
- package/dist/auth/api/verify-email.js +0 -90
- package/dist/auth/api/verify-email.js.map +0 -1
- package/dist/auth/components/AuthGuard.d.ts +0 -52
- package/dist/auth/components/AuthGuard.d.ts.map +0 -1
- package/dist/auth/components/AuthGuard.js +0 -109
- package/dist/auth/components/AuthGuard.js.map +0 -1
- package/dist/auth/components/ForgotPasswordForm.d.ts +0 -15
- package/dist/auth/components/ForgotPasswordForm.d.ts.map +0 -1
- package/dist/auth/components/ForgotPasswordForm.js +0 -43
- package/dist/auth/components/ForgotPasswordForm.js.map +0 -1
- package/dist/auth/components/Label.d.ts +0 -19
- package/dist/auth/components/Label.d.ts.map +0 -1
- package/dist/auth/components/Label.js +0 -18
- package/dist/auth/components/Label.js.map +0 -1
- package/dist/auth/components/ResetPasswordForm.d.ts +0 -18
- package/dist/auth/components/ResetPasswordForm.d.ts.map +0 -1
- package/dist/auth/components/ResetPasswordForm.js +0 -87
- package/dist/auth/components/ResetPasswordForm.js.map +0 -1
- package/dist/auth/components/SignInForm.d.ts +0 -21
- package/dist/auth/components/SignInForm.d.ts.map +0 -1
- package/dist/auth/components/SignInForm.js +0 -61
- package/dist/auth/components/SignInForm.js.map +0 -1
- package/dist/auth/components/SignUpForm.d.ts +0 -18
- package/dist/auth/components/SignUpForm.d.ts.map +0 -1
- package/dist/auth/components/SignUpForm.js +0 -78
- package/dist/auth/components/SignUpForm.js.map +0 -1
- package/dist/auth/components/UserMenu.d.ts +0 -18
- package/dist/auth/components/UserMenu.d.ts.map +0 -1
- package/dist/auth/components/UserMenu.js +0 -73
- package/dist/auth/components/UserMenu.js.map +0 -1
- package/dist/auth/components/VerifyEmailNotice.d.ts +0 -20
- package/dist/auth/components/VerifyEmailNotice.d.ts.map +0 -1
- package/dist/auth/components/VerifyEmailNotice.js +0 -57
- package/dist/auth/components/VerifyEmailNotice.js.map +0 -1
- package/dist/auth/components/index.d.ts +0 -15
- package/dist/auth/components/index.d.ts.map +0 -1
- package/dist/auth/components/index.js +0 -14
- package/dist/auth/components/index.js.map +0 -1
- package/dist/auth/config.d.ts +0 -59
- package/dist/auth/config.d.ts.map +0 -1
- package/dist/auth/config.js +0 -255
- package/dist/auth/config.js.map +0 -1
- package/dist/auth/hooks/index.d.ts +0 -7
- package/dist/auth/hooks/index.d.ts.map +0 -1
- package/dist/auth/hooks/index.js +0 -7
- package/dist/auth/hooks/index.js.map +0 -1
- package/dist/auth/hooks/useAuth.d.ts +0 -30
- package/dist/auth/hooks/useAuth.d.ts.map +0 -1
- package/dist/auth/hooks/useAuth.js +0 -261
- package/dist/auth/hooks/useAuth.js.map +0 -1
- package/dist/auth/index.d.ts +0 -55
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -67
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/server/customer-service.d.ts +0 -140
- package/dist/auth/server/customer-service.d.ts.map +0 -1
- package/dist/auth/server/customer-service.js +0 -266
- package/dist/auth/server/customer-service.js.map +0 -1
- package/dist/auth/server/customer-session.d.ts +0 -81
- package/dist/auth/server/customer-session.d.ts.map +0 -1
- package/dist/auth/server/customer-session.js +0 -115
- package/dist/auth/server/customer-session.js.map +0 -1
- package/dist/auth/server/email-sender.d.ts +0 -64
- package/dist/auth/server/email-sender.d.ts.map +0 -1
- package/dist/auth/server/email-sender.js +0 -106
- package/dist/auth/server/email-sender.js.map +0 -1
- package/dist/auth/server/index.d.ts +0 -15
- package/dist/auth/server/index.d.ts.map +0 -1
- package/dist/auth/server/index.js +0 -19
- package/dist/auth/server/index.js.map +0 -1
- package/dist/auth/server/password-reset-service.d.ts +0 -87
- package/dist/auth/server/password-reset-service.d.ts.map +0 -1
- package/dist/auth/server/password-reset-service.js +0 -198
- package/dist/auth/server/password-reset-service.js.map +0 -1
- package/dist/auth/server/password.d.ts +0 -58
- package/dist/auth/server/password.d.ts.map +0 -1
- package/dist/auth/server/password.js +0 -85
- package/dist/auth/server/password.js.map +0 -1
- package/dist/auth/server/verification-service.d.ts +0 -88
- package/dist/auth/server/verification-service.d.ts.map +0 -1
- package/dist/auth/server/verification-service.js +0 -224
- package/dist/auth/server/verification-service.js.map +0 -1
- package/dist/auth/types.d.ts +0 -311
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -7
- package/dist/auth/types.js.map +0 -1
- package/dist/cart/CartProvider.d.ts +0 -65
- package/dist/cart/CartProvider.d.ts.map +0 -1
- package/dist/cart/CartProvider.js +0 -100
- package/dist/cart/CartProvider.js.map +0 -1
- package/dist/cart/components/AddToCartButton.d.ts +0 -77
- package/dist/cart/components/AddToCartButton.d.ts.map +0 -1
- package/dist/cart/components/AddToCartButton.js +0 -122
- package/dist/cart/components/AddToCartButton.js.map +0 -1
- package/dist/cart/components/CartDrawer.d.ts +0 -71
- package/dist/cart/components/CartDrawer.d.ts.map +0 -1
- package/dist/cart/components/CartDrawer.js +0 -117
- package/dist/cart/components/CartDrawer.js.map +0 -1
- package/dist/cart/components/CartIcon.d.ts +0 -36
- package/dist/cart/components/CartIcon.d.ts.map +0 -1
- package/dist/cart/components/CartIcon.js +0 -68
- package/dist/cart/components/CartIcon.js.map +0 -1
- package/dist/cart/components/CartItem.d.ts +0 -52
- package/dist/cart/components/CartItem.d.ts.map +0 -1
- package/dist/cart/components/CartItem.js +0 -55
- package/dist/cart/components/CartItem.js.map +0 -1
- package/dist/cart/components/CartSummary.d.ts +0 -43
- package/dist/cart/components/CartSummary.d.ts.map +0 -1
- package/dist/cart/components/CartSummary.js +0 -60
- package/dist/cart/components/CartSummary.js.map +0 -1
- package/dist/cart/components/QuantitySelector.d.ts +0 -39
- package/dist/cart/components/QuantitySelector.d.ts.map +0 -1
- package/dist/cart/components/QuantitySelector.js +0 -85
- package/dist/cart/components/QuantitySelector.js.map +0 -1
- package/dist/cart/components/index.d.ts +0 -18
- package/dist/cart/components/index.d.ts.map +0 -1
- package/dist/cart/components/index.js +0 -12
- package/dist/cart/components/index.js.map +0 -1
- package/dist/cart/index.d.ts +0 -109
- package/dist/cart/index.d.ts.map +0 -1
- package/dist/cart/index.js +0 -115
- package/dist/cart/index.js.map +0 -1
- package/dist/cart/store.d.ts +0 -150
- package/dist/cart/store.d.ts.map +0 -1
- package/dist/cart/store.js +0 -315
- package/dist/cart/store.js.map +0 -1
- package/dist/checkout/api/checkout.js +0 -112
- package/dist/checkout/api/checkout.js.map +0 -1
- package/dist/checkout/api/countries.d.ts +0 -17
- package/dist/checkout/api/countries.d.ts.map +0 -1
- package/dist/checkout/api/countries.js +0 -38
- package/dist/checkout/api/countries.js.map +0 -1
- package/dist/checkout/api/index.js +0 -11
- package/dist/checkout/api/index.js.map +0 -1
- package/dist/checkout/api/payment-status.d.ts +0 -45
- package/dist/checkout/api/payment-status.d.ts.map +0 -1
- package/dist/checkout/api/payment-status.js +0 -104
- package/dist/checkout/api/payment-status.js.map +0 -1
- package/dist/checkout/api/shipping.d.ts +0 -34
- package/dist/checkout/api/shipping.d.ts.map +0 -1
- package/dist/checkout/api/shipping.js +0 -247
- package/dist/checkout/api/shipping.js.map +0 -1
- package/dist/checkout/api/webhook.js +0 -55
- package/dist/checkout/api/webhook.js.map +0 -1
- package/dist/checkout/components/CheckoutButton.d.ts +0 -55
- package/dist/checkout/components/CheckoutButton.d.ts.map +0 -1
- package/dist/checkout/components/CheckoutButton.js +0 -132
- package/dist/checkout/components/CheckoutButton.js.map +0 -1
- package/dist/checkout/components/CheckoutFlow.d.ts +0 -53
- package/dist/checkout/components/CheckoutFlow.d.ts.map +0 -1
- package/dist/checkout/components/CheckoutFlow.js +0 -286
- package/dist/checkout/components/CheckoutFlow.js.map +0 -1
- package/dist/checkout/components/CheckoutSuccess.d.ts +0 -29
- package/dist/checkout/components/CheckoutSuccess.d.ts.map +0 -1
- package/dist/checkout/components/CheckoutSuccess.js +0 -49
- package/dist/checkout/components/CheckoutSuccess.js.map +0 -1
- package/dist/checkout/components/OrderSummary.d.ts +0 -37
- package/dist/checkout/components/OrderSummary.d.ts.map +0 -1
- package/dist/checkout/components/OrderSummary.js +0 -71
- package/dist/checkout/components/OrderSummary.js.map +0 -1
- package/dist/checkout/components/ShippingForm.d.ts +0 -30
- package/dist/checkout/components/ShippingForm.d.ts.map +0 -1
- package/dist/checkout/components/ShippingForm.js +0 -184
- package/dist/checkout/components/ShippingForm.js.map +0 -1
- package/dist/checkout/components/ShippingOptions.d.ts +0 -51
- package/dist/checkout/components/ShippingOptions.d.ts.map +0 -1
- package/dist/checkout/components/ShippingOptions.js +0 -93
- package/dist/checkout/components/ShippingOptions.js.map +0 -1
- package/dist/checkout/components/index.d.ts +0 -12
- package/dist/checkout/components/index.d.ts.map +0 -1
- package/dist/checkout/components/index.js +0 -12
- package/dist/checkout/components/index.js.map +0 -1
- package/dist/checkout/constants.d.ts +0 -244
- package/dist/checkout/constants.d.ts.map +0 -1
- package/dist/checkout/constants.js +0 -119
- package/dist/checkout/constants.js.map +0 -1
- package/dist/checkout/hooks/index.d.ts +0 -9
- package/dist/checkout/hooks/index.d.ts.map +0 -1
- package/dist/checkout/hooks/index.js +0 -8
- package/dist/checkout/hooks/index.js.map +0 -1
- package/dist/checkout/hooks/useCheckout.d.ts +0 -61
- package/dist/checkout/hooks/useCheckout.d.ts.map +0 -1
- package/dist/checkout/hooks/useCheckout.js +0 -172
- package/dist/checkout/hooks/useCheckout.js.map +0 -1
- package/dist/checkout/hooks/usePaymentStatus.d.ts +0 -42
- package/dist/checkout/hooks/usePaymentStatus.d.ts.map +0 -1
- package/dist/checkout/hooks/usePaymentStatus.js +0 -71
- package/dist/checkout/hooks/usePaymentStatus.js.map +0 -1
- package/dist/checkout/index.js +0 -135
- package/dist/checkout/index.js.map +0 -1
- package/dist/checkout/server/coupons.d.ts +0 -91
- package/dist/checkout/server/coupons.d.ts.map +0 -1
- package/dist/checkout/server/coupons.js +0 -192
- package/dist/checkout/server/coupons.js.map +0 -1
- package/dist/checkout/server/index.js +0 -10
- package/dist/checkout/server/index.js.map +0 -1
- package/dist/checkout/stripe/client.d.ts +0 -74
- package/dist/checkout/stripe/client.d.ts.map +0 -1
- package/dist/checkout/stripe/client.js +0 -175
- package/dist/checkout/stripe/client.js.map +0 -1
- package/dist/checkout/stripe/index.d.ts +0 -7
- package/dist/checkout/stripe/index.d.ts.map +0 -1
- package/dist/checkout/stripe/index.js +0 -7
- package/dist/checkout/stripe/index.js.map +0 -1
- package/dist/checkout/types.d.ts +0 -489
- package/dist/checkout/types.d.ts.map +0 -1
- package/dist/checkout/types.js +0 -8
- package/dist/checkout/types.js.map +0 -1
- package/dist/core/StoreSettingsProvider.d.ts +0 -107
- package/dist/core/StoreSettingsProvider.d.ts.map +0 -1
- package/dist/core/StoreSettingsProvider.js +0 -200
- package/dist/core/StoreSettingsProvider.js.map +0 -1
- package/dist/core/api/index.d.ts +0 -7
- package/dist/core/api/index.d.ts.map +0 -1
- package/dist/core/api/index.js +0 -7
- package/dist/core/api/index.js.map +0 -1
- package/dist/core/api/settings.d.ts +0 -42
- package/dist/core/api/settings.d.ts.map +0 -1
- package/dist/core/api/settings.js +0 -74
- package/dist/core/api/settings.js.map +0 -1
- package/dist/core/config.d.ts +0 -296
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -117
- package/dist/core/config.js.map +0 -1
- package/dist/core/cookie-consent/CookieBanner.d.ts +0 -2
- package/dist/core/cookie-consent/CookieBanner.d.ts.map +0 -1
- package/dist/core/cookie-consent/CookieBanner.js +0 -243
- package/dist/core/cookie-consent/CookieBanner.js.map +0 -1
- package/dist/core/cookie-consent/CookieConsentProvider.d.ts +0 -53
- package/dist/core/cookie-consent/CookieConsentProvider.d.ts.map +0 -1
- package/dist/core/cookie-consent/CookieConsentProvider.js +0 -162
- package/dist/core/cookie-consent/CookieConsentProvider.js.map +0 -1
- package/dist/core/cookie-consent/CookiePreferencesLink.d.ts +0 -15
- package/dist/core/cookie-consent/CookiePreferencesLink.d.ts.map +0 -1
- package/dist/core/cookie-consent/CookiePreferencesLink.js +0 -12
- package/dist/core/cookie-consent/CookiePreferencesLink.js.map +0 -1
- package/dist/core/cookie-consent/index.d.ts +0 -17
- package/dist/core/cookie-consent/index.d.ts.map +0 -1
- package/dist/core/cookie-consent/index.js +0 -16
- package/dist/core/cookie-consent/index.js.map +0 -1
- package/dist/core/cookie-consent/types.d.ts +0 -31
- package/dist/core/cookie-consent/types.d.ts.map +0 -1
- package/dist/core/cookie-consent/types.js +0 -10
- package/dist/core/cookie-consent/types.js.map +0 -1
- package/dist/core/cookie-consent/useCookieConsent.d.ts +0 -14
- package/dist/core/cookie-consent/useCookieConsent.d.ts.map +0 -1
- package/dist/core/cookie-consent/useCookieConsent.js +0 -25
- package/dist/core/cookie-consent/useCookieConsent.js.map +0 -1
- package/dist/core/db/client.d.ts +0 -39
- package/dist/core/db/client.d.ts.map +0 -1
- package/dist/core/db/client.js +0 -86
- package/dist/core/db/client.js.map +0 -1
- package/dist/core/db/index.d.ts +0 -11
- package/dist/core/db/index.d.ts.map +0 -1
- package/dist/core/db/index.js +0 -36
- package/dist/core/db/index.js.map +0 -1
- package/dist/core/db/queries.d.ts +0 -1427
- package/dist/core/db/queries.d.ts.map +0 -1
- package/dist/core/db/queries.js +0 -1932
- package/dist/core/db/queries.js.map +0 -1
- package/dist/core/db/schema.d.ts +0 -3462
- package/dist/core/db/schema.d.ts.map +0 -1
- package/dist/core/db/schema.js +0 -494
- package/dist/core/db/schema.js.map +0 -1
- package/dist/core/index.d.ts +0 -22
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -43
- package/dist/core/index.js.map +0 -1
- package/dist/core/server/index.d.ts +0 -18
- package/dist/core/server/index.d.ts.map +0 -1
- package/dist/core/server/index.js +0 -47
- package/dist/core/server/index.js.map +0 -1
- package/dist/core/types.d.ts +0 -283
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -8
- package/dist/core/types.js.map +0 -1
- package/dist/core/utils.d.ts +0 -167
- package/dist/core/utils.d.ts.map +0 -1
- package/dist/core/utils.js +0 -351
- package/dist/core/utils.js.map +0 -1
- package/dist/emails/config.d.ts +0 -69
- package/dist/emails/config.d.ts.map +0 -1
- package/dist/emails/config.js +0 -147
- package/dist/emails/config.js.map +0 -1
- package/dist/emails/index.d.ts +0 -85
- package/dist/emails/index.d.ts.map +0 -1
- package/dist/emails/index.js +0 -110
- package/dist/emails/index.js.map +0 -1
- package/dist/emails/send/admin-auth.d.ts +0 -94
- package/dist/emails/send/admin-auth.d.ts.map +0 -1
- package/dist/emails/send/admin-auth.js +0 -118
- package/dist/emails/send/admin-auth.js.map +0 -1
- package/dist/emails/send/auth.d.ts +0 -91
- package/dist/emails/send/auth.d.ts.map +0 -1
- package/dist/emails/send/auth.js +0 -130
- package/dist/emails/send/auth.js.map +0 -1
- package/dist/emails/send/index.d.ts +0 -12
- package/dist/emails/send/index.d.ts.map +0 -1
- package/dist/emails/send/index.js +0 -18
- package/dist/emails/send/index.js.map +0 -1
- package/dist/emails/send/orders.d.ts +0 -186
- package/dist/emails/send/orders.d.ts.map +0 -1
- package/dist/emails/send/orders.js +0 -258
- package/dist/emails/send/orders.js.map +0 -1
- package/dist/emails/sender.d.ts +0 -72
- package/dist/emails/sender.d.ts.map +0 -1
- package/dist/emails/sender.js +0 -116
- package/dist/emails/sender.js.map +0 -1
- package/dist/emails/templates/admin-invite.d.ts +0 -40
- package/dist/emails/templates/admin-invite.d.ts.map +0 -1
- package/dist/emails/templates/admin-invite.js +0 -62
- package/dist/emails/templates/admin-invite.js.map +0 -1
- package/dist/emails/templates/base.d.ts +0 -109
- package/dist/emails/templates/base.d.ts.map +0 -1
- package/dist/emails/templates/base.js +0 -334
- package/dist/emails/templates/base.js.map +0 -1
- package/dist/emails/templates/email-verification.d.ts +0 -28
- package/dist/emails/templates/email-verification.d.ts.map +0 -1
- package/dist/emails/templates/email-verification.js +0 -52
- package/dist/emails/templates/email-verification.js.map +0 -1
- package/dist/emails/templates/index.d.ts +0 -16
- package/dist/emails/templates/index.d.ts.map +0 -1
- package/dist/emails/templates/index.js +0 -28
- package/dist/emails/templates/index.js.map +0 -1
- package/dist/emails/templates/order-cancelled.d.ts +0 -30
- package/dist/emails/templates/order-cancelled.d.ts.map +0 -1
- package/dist/emails/templates/order-cancelled.js +0 -83
- package/dist/emails/templates/order-cancelled.js.map +0 -1
- package/dist/emails/templates/order-confirmation.d.ts +0 -36
- package/dist/emails/templates/order-confirmation.d.ts.map +0 -1
- package/dist/emails/templates/order-confirmation.js +0 -174
- package/dist/emails/templates/order-confirmation.js.map +0 -1
- package/dist/emails/templates/order-delivered.d.ts +0 -31
- package/dist/emails/templates/order-delivered.d.ts.map +0 -1
- package/dist/emails/templates/order-delivered.js +0 -100
- package/dist/emails/templates/order-delivered.js.map +0 -1
- package/dist/emails/templates/order-shipped.d.ts +0 -32
- package/dist/emails/templates/order-shipped.d.ts.map +0 -1
- package/dist/emails/templates/order-shipped.js +0 -83
- package/dist/emails/templates/order-shipped.js.map +0 -1
- package/dist/emails/templates/password-reset.d.ts +0 -27
- package/dist/emails/templates/password-reset.d.ts.map +0 -1
- package/dist/emails/templates/password-reset.js +0 -51
- package/dist/emails/templates/password-reset.js.map +0 -1
- package/dist/emails/templates/refund-processed.d.ts +0 -32
- package/dist/emails/templates/refund-processed.d.ts.map +0 -1
- package/dist/emails/templates/refund-processed.js +0 -92
- package/dist/emails/templates/refund-processed.js.map +0 -1
- package/dist/emails/templates/welcome.d.ts +0 -27
- package/dist/emails/templates/welcome.d.ts.map +0 -1
- package/dist/emails/templates/welcome.js +0 -52
- package/dist/emails/templates/welcome.js.map +0 -1
- package/dist/emails/types.d.ts +0 -229
- package/dist/emails/types.d.ts.map +0 -1
- package/dist/emails/types.js +0 -7
- package/dist/emails/types.js.map +0 -1
- package/dist/emails/utils.d.ts +0 -94
- package/dist/emails/utils.d.ts.map +0 -1
- package/dist/emails/utils.js +0 -218
- package/dist/emails/utils.js.map +0 -1
- package/dist/index.js +0 -73
- package/dist/index.js.map +0 -1
- package/dist/media/api/delete.d.ts +0 -43
- package/dist/media/api/delete.d.ts.map +0 -1
- package/dist/media/api/delete.js +0 -124
- package/dist/media/api/delete.js.map +0 -1
- package/dist/media/api/index.d.ts +0 -17
- package/dist/media/api/index.d.ts.map +0 -1
- package/dist/media/api/index.js +0 -17
- package/dist/media/api/index.js.map +0 -1
- package/dist/media/api/presign.d.ts +0 -38
- package/dist/media/api/presign.d.ts.map +0 -1
- package/dist/media/api/presign.js +0 -130
- package/dist/media/api/presign.js.map +0 -1
- package/dist/media/components/DropZone.d.ts +0 -18
- package/dist/media/components/DropZone.d.ts.map +0 -1
- package/dist/media/components/DropZone.js +0 -107
- package/dist/media/components/DropZone.js.map +0 -1
- package/dist/media/components/ImageGalleryUpload.d.ts +0 -21
- package/dist/media/components/ImageGalleryUpload.d.ts.map +0 -1
- package/dist/media/components/ImageGalleryUpload.js +0 -195
- package/dist/media/components/ImageGalleryUpload.js.map +0 -1
- package/dist/media/components/ImageUpload.d.ts +0 -17
- package/dist/media/components/ImageUpload.d.ts.map +0 -1
- package/dist/media/components/ImageUpload.js +0 -89
- package/dist/media/components/ImageUpload.js.map +0 -1
- package/dist/media/components/index.d.ts +0 -10
- package/dist/media/components/index.d.ts.map +0 -1
- package/dist/media/components/index.js +0 -9
- package/dist/media/components/index.js.map +0 -1
- package/dist/media/config.d.ts +0 -83
- package/dist/media/config.d.ts.map +0 -1
- package/dist/media/config.js +0 -189
- package/dist/media/config.js.map +0 -1
- package/dist/media/hooks/index.d.ts +0 -8
- package/dist/media/hooks/index.d.ts.map +0 -1
- package/dist/media/hooks/index.js +0 -7
- package/dist/media/hooks/index.js.map +0 -1
- package/dist/media/hooks/useUpload.d.ts +0 -32
- package/dist/media/hooks/useUpload.d.ts.map +0 -1
- package/dist/media/hooks/useUpload.js +0 -260
- package/dist/media/hooks/useUpload.js.map +0 -1
- package/dist/media/index.d.ts +0 -57
- package/dist/media/index.d.ts.map +0 -1
- package/dist/media/index.js +0 -68
- package/dist/media/index.js.map +0 -1
- package/dist/media/server/delete.d.ts +0 -59
- package/dist/media/server/delete.d.ts.map +0 -1
- package/dist/media/server/delete.js +0 -176
- package/dist/media/server/delete.js.map +0 -1
- package/dist/media/server/index.d.ts +0 -10
- package/dist/media/server/index.d.ts.map +0 -1
- package/dist/media/server/index.js +0 -13
- package/dist/media/server/index.js.map +0 -1
- package/dist/media/server/presign.d.ts +0 -57
- package/dist/media/server/presign.d.ts.map +0 -1
- package/dist/media/server/presign.js +0 -112
- package/dist/media/server/presign.js.map +0 -1
- package/dist/media/server/r2-client.d.ts +0 -30
- package/dist/media/server/r2-client.d.ts.map +0 -1
- package/dist/media/server/r2-client.js +0 -76
- package/dist/media/server/r2-client.js.map +0 -1
- package/dist/media/types.d.ts +0 -317
- package/dist/media/types.d.ts.map +0 -1
- package/dist/media/types.js +0 -95
- package/dist/media/types.js.map +0 -1
- package/dist/products/api/categories.d.ts +0 -29
- package/dist/products/api/categories.d.ts.map +0 -1
- package/dist/products/api/categories.js +0 -46
- package/dist/products/api/categories.js.map +0 -1
- package/dist/products/api/index.d.ts +0 -24
- package/dist/products/api/index.d.ts.map +0 -1
- package/dist/products/api/index.js +0 -24
- package/dist/products/api/index.js.map +0 -1
- package/dist/products/api/product.d.ts +0 -36
- package/dist/products/api/product.d.ts.map +0 -1
- package/dist/products/api/product.js +0 -67
- package/dist/products/api/product.js.map +0 -1
- package/dist/products/api/products.d.ts +0 -41
- package/dist/products/api/products.d.ts.map +0 -1
- package/dist/products/api/products.js +0 -99
- package/dist/products/api/products.js.map +0 -1
- package/dist/products/components/CategoryNav.d.ts +0 -51
- package/dist/products/components/CategoryNav.d.ts.map +0 -1
- package/dist/products/components/CategoryNav.js +0 -110
- package/dist/products/components/CategoryNav.js.map +0 -1
- package/dist/products/components/ProductBreadcrumb.d.ts +0 -52
- package/dist/products/components/ProductBreadcrumb.d.ts.map +0 -1
- package/dist/products/components/ProductBreadcrumb.js +0 -73
- package/dist/products/components/ProductBreadcrumb.js.map +0 -1
- package/dist/products/components/ProductCard.d.ts +0 -54
- package/dist/products/components/ProductCard.d.ts.map +0 -1
- package/dist/products/components/ProductCard.js +0 -72
- package/dist/products/components/ProductCard.js.map +0 -1
- package/dist/products/components/ProductDetails.d.ts +0 -63
- package/dist/products/components/ProductDetails.d.ts.map +0 -1
- package/dist/products/components/ProductDetails.js +0 -137
- package/dist/products/components/ProductDetails.js.map +0 -1
- package/dist/products/components/ProductFilters.d.ts +0 -70
- package/dist/products/components/ProductFilters.d.ts.map +0 -1
- package/dist/products/components/ProductFilters.js +0 -125
- package/dist/products/components/ProductFilters.js.map +0 -1
- package/dist/products/components/ProductGallery.d.ts +0 -42
- package/dist/products/components/ProductGallery.d.ts.map +0 -1
- package/dist/products/components/ProductGallery.js +0 -103
- package/dist/products/components/ProductGallery.js.map +0 -1
- package/dist/products/components/ProductGrid.d.ts +0 -50
- package/dist/products/components/ProductGrid.d.ts.map +0 -1
- package/dist/products/components/ProductGrid.js +0 -81
- package/dist/products/components/ProductGrid.js.map +0 -1
- package/dist/products/components/ProductSearch.d.ts +0 -43
- package/dist/products/components/ProductSearch.d.ts.map +0 -1
- package/dist/products/components/ProductSearch.js +0 -97
- package/dist/products/components/ProductSearch.js.map +0 -1
- package/dist/products/components/ProductSort.d.ts +0 -43
- package/dist/products/components/ProductSort.d.ts.map +0 -1
- package/dist/products/components/ProductSort.js +0 -59
- package/dist/products/components/ProductSort.js.map +0 -1
- package/dist/products/components/VariantSelector.d.ts +0 -43
- package/dist/products/components/VariantSelector.d.ts.map +0 -1
- package/dist/products/components/VariantSelector.js +0 -147
- package/dist/products/components/VariantSelector.js.map +0 -1
- package/dist/products/components/index.d.ts +0 -26
- package/dist/products/components/index.d.ts.map +0 -1
- package/dist/products/components/index.js +0 -19
- package/dist/products/components/index.js.map +0 -1
- package/dist/products/hooks/index.d.ts +0 -14
- package/dist/products/hooks/index.d.ts.map +0 -1
- package/dist/products/hooks/index.js +0 -10
- package/dist/products/hooks/index.js.map +0 -1
- package/dist/products/hooks/useCategories.d.ts +0 -56
- package/dist/products/hooks/useCategories.d.ts.map +0 -1
- package/dist/products/hooks/useCategories.js +0 -126
- package/dist/products/hooks/useCategories.js.map +0 -1
- package/dist/products/hooks/useProduct.d.ts +0 -44
- package/dist/products/hooks/useProduct.d.ts.map +0 -1
- package/dist/products/hooks/useProduct.js +0 -87
- package/dist/products/hooks/useProduct.js.map +0 -1
- package/dist/products/hooks/useProductAttributes.d.ts +0 -59
- package/dist/products/hooks/useProductAttributes.d.ts.map +0 -1
- package/dist/products/hooks/useProductAttributes.js +0 -146
- package/dist/products/hooks/useProductAttributes.js.map +0 -1
- package/dist/products/hooks/useProducts.d.ts +0 -67
- package/dist/products/hooks/useProducts.d.ts.map +0 -1
- package/dist/products/hooks/useProducts.js +0 -131
- package/dist/products/hooks/useProducts.js.map +0 -1
- package/dist/products/index.d.ts +0 -94
- package/dist/products/index.d.ts.map +0 -1
- package/dist/products/index.js +0 -106
- package/dist/products/index.js.map +0 -1
- package/dist/shipping/index.d.ts +0 -8
- package/dist/shipping/index.d.ts.map +0 -1
- package/dist/shipping/index.js +0 -8
- package/dist/shipping/index.js.map +0 -1
- package/dist/shipping/shippo.d.ts +0 -85
- package/dist/shipping/shippo.d.ts.map +0 -1
- package/dist/shipping/shippo.js +0 -298
- package/dist/shipping/shippo.js.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -70
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -75
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/colors.d.ts +0 -148
- package/dist/theme/colors.d.ts.map +0 -1
- package/dist/theme/colors.js +0 -214
- package/dist/theme/colors.js.map +0 -1
- package/dist/theme/defaults.d.ts +0 -212
- package/dist/theme/defaults.d.ts.map +0 -1
- package/dist/theme/defaults.js +0 -275
- package/dist/theme/defaults.js.map +0 -1
- package/dist/theme/fonts.d.ts +0 -59
- package/dist/theme/fonts.d.ts.map +0 -1
- package/dist/theme/fonts.js +0 -196
- package/dist/theme/fonts.js.map +0 -1
- package/dist/theme/generator.d.ts +0 -50
- package/dist/theme/generator.d.ts.map +0 -1
- package/dist/theme/generator.js +0 -316
- package/dist/theme/generator.js.map +0 -1
- package/dist/theme/hooks.d.ts +0 -110
- package/dist/theme/hooks.d.ts.map +0 -1
- package/dist/theme/hooks.js +0 -101
- package/dist/theme/hooks.js.map +0 -1
- package/dist/theme/index.d.ts +0 -37
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -49
- package/dist/theme/index.js.map +0 -1
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import Image from 'next/image';
|
|
4
|
-
import Link from 'next/link';
|
|
5
|
-
import { ImageIcon } from 'lucide-react';
|
|
6
|
-
import { cn, formatPrice } from '../../core/utils';
|
|
7
|
-
import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
|
|
8
|
-
// =============================================================================
|
|
9
|
-
// Component
|
|
10
|
-
// =============================================================================
|
|
11
|
-
/**
|
|
12
|
-
* ProductCard component for displaying products in a grid.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```tsx
|
|
16
|
-
* import { ProductCard } from '@rovela/sdk/products'
|
|
17
|
-
*
|
|
18
|
-
* function ProductGrid({ products }) {
|
|
19
|
-
* return (
|
|
20
|
-
* <div className="grid grid-cols-3 gap-4">
|
|
21
|
-
* {products.map(product => (
|
|
22
|
-
* <ProductCard
|
|
23
|
-
* key={product.id}
|
|
24
|
-
* product={product}
|
|
25
|
-
* showQuickAdd
|
|
26
|
-
* onQuickAdd={handleQuickAdd}
|
|
27
|
-
* />
|
|
28
|
-
* ))}
|
|
29
|
-
* </div>
|
|
30
|
-
* )
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export function ProductCard({ product, showQuickAdd = false, onQuickAdd, imageAspect = 'square', className, currency, locale, quickAddContent, href, showDiscount = true, }) {
|
|
35
|
-
// Get currency from context if not provided via props
|
|
36
|
-
const storeSettings = useStoreSettingsOptional();
|
|
37
|
-
const resolvedCurrency = currency ?? storeSettings?.currency ?? 'USD';
|
|
38
|
-
const resolvedLocale = locale ?? storeSettings?.locale ?? 'en-US';
|
|
39
|
-
const aspectClasses = {
|
|
40
|
-
square: 'aspect-square',
|
|
41
|
-
portrait: 'aspect-[3/4]',
|
|
42
|
-
landscape: 'aspect-[4/3]',
|
|
43
|
-
};
|
|
44
|
-
const productHref = href || `/products/${product.slug}`;
|
|
45
|
-
const mainImage = product.images?.[0];
|
|
46
|
-
// Calculate discount percentage
|
|
47
|
-
const price = typeof product.price === 'string'
|
|
48
|
-
? parseFloat(product.price)
|
|
49
|
-
: product.price;
|
|
50
|
-
const comparePrice = product.comparePrice
|
|
51
|
-
? typeof product.comparePrice === 'string'
|
|
52
|
-
? parseFloat(product.comparePrice)
|
|
53
|
-
: product.comparePrice
|
|
54
|
-
: null;
|
|
55
|
-
const discountPercent = comparePrice && comparePrice > price
|
|
56
|
-
? Math.round(((comparePrice - price) / comparePrice) * 100)
|
|
57
|
-
: null;
|
|
58
|
-
const handleQuickAdd = (e) => {
|
|
59
|
-
e.preventDefault();
|
|
60
|
-
e.stopPropagation();
|
|
61
|
-
onQuickAdd?.(product);
|
|
62
|
-
};
|
|
63
|
-
return (_jsxs("article", { className: cn('group relative flex flex-col overflow-hidden rounded-lg border bg-card text-card-foreground transition-shadow hover:shadow-md', className), children: [_jsx(Link, { href: productHref, className: "relative block overflow-hidden", children: _jsxs("div", { className: cn('relative w-full bg-muted', aspectClasses[imageAspect]), children: [mainImage ? (
|
|
64
|
-
// object-contain so the merchant's full photo is visible in the
|
|
65
|
-
// grid — preserves aspect ratio (a portrait product reads as
|
|
66
|
-
// portrait, not as a cropped center). Container at line 127
|
|
67
|
-
// already has bg-muted, so letterbox reads as intentional. Hover
|
|
68
|
-
// scale-105 still works identically. Tradeoff vs grid uniformity
|
|
69
|
-
// accepted — merchant intent over visual lockstep.
|
|
70
|
-
_jsx(Image, { src: mainImage, alt: product.name, fill: true, sizes: "(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw", className: "object-contain transition-transform duration-300 group-hover:scale-105" })) : (_jsx("div", { className: "absolute inset-0 flex items-center justify-center text-muted-foreground", children: _jsx(ImageIcon, { className: "h-12 w-12", strokeWidth: 1 }) })), showDiscount && discountPercent && (_jsxs("span", { className: "absolute left-2 top-2 rounded-full bg-destructive px-2 py-0.5 text-xs font-medium text-destructive-foreground", children: ["-", discountPercent, "%"] })), showQuickAdd && (_jsx("div", { className: "absolute inset-x-0 bottom-0 translate-y-full bg-gradient-to-t from-black/60 to-transparent p-4 opacity-0 transition-all duration-200 group-hover:translate-y-0 group-hover:opacity-100", children: _jsx("button", { onClick: handleQuickAdd, className: "w-full rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90", children: quickAddContent || 'Quick Add' }) }))] }) }), _jsxs("div", { className: "flex flex-1 flex-col p-4", children: [_jsx(Link, { href: productHref, className: "flex-1", children: _jsx("h3", { className: "line-clamp-2 font-medium text-foreground transition-colors hover:text-primary", children: product.name }) }), _jsxs("div", { className: "mt-2 flex items-baseline gap-2", children: [_jsx("span", { className: "text-lg font-semibold text-foreground", children: formatPrice(price, { currency: resolvedCurrency, locale: resolvedLocale }) }), comparePrice && comparePrice > price && (_jsx("span", { className: "text-sm text-muted-foreground line-through", children: formatPrice(comparePrice, { currency: resolvedCurrency, locale: resolvedLocale }) }))] }), product.hasVariants && (_jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Multiple options available" }))] })] }));
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=ProductCard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductCard.js","sourceRoot":"","sources":["../../../src/products/components/ProductCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @rovela/sdk/products/components/ProductDetails
|
|
3
|
-
*
|
|
4
|
-
* Full product details component for product pages.
|
|
5
|
-
*/
|
|
6
|
-
import { type ReactNode } from 'react';
|
|
7
|
-
import type { Product, ProductVariant } from '../../core/types';
|
|
8
|
-
export interface ProductDetailsProps {
|
|
9
|
-
/** Product data */
|
|
10
|
-
product: Product;
|
|
11
|
-
/** Product variants */
|
|
12
|
-
variants?: ProductVariant[];
|
|
13
|
-
/** Custom className */
|
|
14
|
-
className?: string;
|
|
15
|
-
/** Currency for price formatting */
|
|
16
|
-
currency?: string;
|
|
17
|
-
/** Locale for price formatting */
|
|
18
|
-
locale?: string;
|
|
19
|
-
/** Add to cart handler */
|
|
20
|
-
onAddToCart?: (product: Product, variant: ProductVariant | null, quantity: number) => void;
|
|
21
|
-
/** Buy now handler */
|
|
22
|
-
onBuyNow?: (product: Product, variant: ProductVariant | null, quantity: number) => void;
|
|
23
|
-
/** Custom add to cart button content */
|
|
24
|
-
addToCartContent?: ReactNode;
|
|
25
|
-
/** Custom buy now button content */
|
|
26
|
-
buyNowContent?: ReactNode;
|
|
27
|
-
/** Show buy now button */
|
|
28
|
-
showBuyNow?: boolean;
|
|
29
|
-
/** Show quantity selector */
|
|
30
|
-
showQuantity?: boolean;
|
|
31
|
-
/** Maximum quantity allowed */
|
|
32
|
-
maxQuantity?: number;
|
|
33
|
-
/** Show stock status */
|
|
34
|
-
showStock?: boolean;
|
|
35
|
-
/** Show variant selector labels */
|
|
36
|
-
variantLabels?: Record<string, string>;
|
|
37
|
-
/** Gallery position */
|
|
38
|
-
galleryPosition?: 'left' | 'top';
|
|
39
|
-
/** Children rendered after description */
|
|
40
|
-
children?: ReactNode;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* ProductDetails component for product pages.
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* ```tsx
|
|
47
|
-
* import { ProductDetails } from '@rovela/sdk/products'
|
|
48
|
-
*
|
|
49
|
-
* function ProductPage({ product, variants }) {
|
|
50
|
-
* return (
|
|
51
|
-
* <ProductDetails
|
|
52
|
-
* product={product}
|
|
53
|
-
* variants={variants}
|
|
54
|
-
* onAddToCart={handleAddToCart}
|
|
55
|
-
* showBuyNow
|
|
56
|
-
* showStock
|
|
57
|
-
* />
|
|
58
|
-
* )
|
|
59
|
-
* }
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
|
-
export declare function ProductDetails({ product, variants, className, currency, locale, onAddToCart, onBuyNow, addToCartContent, buyNowContent, showBuyNow, showQuantity, maxQuantity, showStock, variantLabels, galleryPosition, children, }: ProductDetailsProps): import("react/jsx-runtime").JSX.Element;
|
|
63
|
-
//# sourceMappingURL=ProductDetails.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductDetails.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductDetails.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIpE,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAQ/D,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0BAA0B;IAC1B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1F,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvF,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,oCAAoC;IACpC,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAa,EACb,SAAS,EACT,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAkB,EAClB,YAAmB,EACnB,WAAgB,EAChB,SAAiB,EACjB,aAAa,EACb,eAAwB,EACxB,QAAQ,GACT,EAAE,mBAAmB,2CA4QrB"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
/**
|
|
4
|
-
* @rovela/sdk/products/components/ProductDetails
|
|
5
|
-
*
|
|
6
|
-
* Full product details component for product pages.
|
|
7
|
-
*/
|
|
8
|
-
import { useState, useMemo } from 'react';
|
|
9
|
-
import { Minus, Plus } from 'lucide-react';
|
|
10
|
-
import { cn, formatPrice } from '../../core/utils';
|
|
11
|
-
import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
|
|
12
|
-
import { VariantSelector } from './VariantSelector';
|
|
13
|
-
import { ProductGallery } from './ProductGallery';
|
|
14
|
-
// =============================================================================
|
|
15
|
-
// Component
|
|
16
|
-
// =============================================================================
|
|
17
|
-
/**
|
|
18
|
-
* ProductDetails component for product pages.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```tsx
|
|
22
|
-
* import { ProductDetails } from '@rovela/sdk/products'
|
|
23
|
-
*
|
|
24
|
-
* function ProductPage({ product, variants }) {
|
|
25
|
-
* return (
|
|
26
|
-
* <ProductDetails
|
|
27
|
-
* product={product}
|
|
28
|
-
* variants={variants}
|
|
29
|
-
* onAddToCart={handleAddToCart}
|
|
30
|
-
* showBuyNow
|
|
31
|
-
* showStock
|
|
32
|
-
* />
|
|
33
|
-
* )
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export function ProductDetails({ product, variants = [], className, currency, locale, onAddToCart, onBuyNow, addToCartContent, buyNowContent, showBuyNow = false, showQuantity = true, maxQuantity = 99, showStock = false, variantLabels, galleryPosition = 'left', children, }) {
|
|
38
|
-
const [selectedVariant, setSelectedVariant] = useState(null);
|
|
39
|
-
const [quantity, setQuantity] = useState(1);
|
|
40
|
-
// Get currency from context if not provided via props
|
|
41
|
-
const storeSettings = useStoreSettingsOptional();
|
|
42
|
-
const resolvedCurrency = currency ?? storeSettings?.currency ?? 'USD';
|
|
43
|
-
const resolvedLocale = locale ?? storeSettings?.locale ?? 'en-US';
|
|
44
|
-
// Calculate current price
|
|
45
|
-
const currentPrice = useMemo(() => {
|
|
46
|
-
if (selectedVariant?.price) {
|
|
47
|
-
return typeof selectedVariant.price === 'string'
|
|
48
|
-
? parseFloat(selectedVariant.price)
|
|
49
|
-
: selectedVariant.price;
|
|
50
|
-
}
|
|
51
|
-
return typeof product.price === 'string'
|
|
52
|
-
? parseFloat(product.price)
|
|
53
|
-
: product.price;
|
|
54
|
-
}, [product.price, selectedVariant]);
|
|
55
|
-
const comparePrice = product.comparePrice
|
|
56
|
-
? typeof product.comparePrice === 'string'
|
|
57
|
-
? parseFloat(product.comparePrice)
|
|
58
|
-
: product.comparePrice
|
|
59
|
-
: null;
|
|
60
|
-
// Calculate discount
|
|
61
|
-
const discountPercent = comparePrice && comparePrice > currentPrice
|
|
62
|
-
? Math.round(((comparePrice - currentPrice) / comparePrice) * 100)
|
|
63
|
-
: null;
|
|
64
|
-
// Calculate stock
|
|
65
|
-
const currentStock = useMemo(() => {
|
|
66
|
-
if (selectedVariant) {
|
|
67
|
-
return selectedVariant.inventory;
|
|
68
|
-
}
|
|
69
|
-
// Sum all variant inventory or return -1 if no variants (unlimited)
|
|
70
|
-
if (variants.length > 0) {
|
|
71
|
-
return variants.reduce((sum, v) => sum + v.inventory, 0);
|
|
72
|
-
}
|
|
73
|
-
return -1; // No variants, no inventory tracking
|
|
74
|
-
}, [selectedVariant, variants]);
|
|
75
|
-
const isOutOfStock = currentStock === 0;
|
|
76
|
-
const isLowStock = currentStock > 0 && currentStock <= 5;
|
|
77
|
-
// Compute gallery: variant image + variant video first (if either is set),
|
|
78
|
-
// then product images, then product videos. Filter out duplicates so a
|
|
79
|
-
// variant image that also lives in `product.images` only appears once.
|
|
80
|
-
const galleryMedia = useMemo(() => {
|
|
81
|
-
const variantUrls = [
|
|
82
|
-
selectedVariant?.image,
|
|
83
|
-
selectedVariant?.video,
|
|
84
|
-
].filter((u) => !!u);
|
|
85
|
-
const productImages = product.images ?? [];
|
|
86
|
-
const productVideos = product.videos ?? [];
|
|
87
|
-
if (variantUrls.length === 0) {
|
|
88
|
-
return [...productImages, ...productVideos];
|
|
89
|
-
}
|
|
90
|
-
const variantSet = new Set(variantUrls);
|
|
91
|
-
return [
|
|
92
|
-
...variantUrls,
|
|
93
|
-
...productImages.filter((u) => !variantSet.has(u)),
|
|
94
|
-
...productVideos.filter((u) => !variantSet.has(u)),
|
|
95
|
-
];
|
|
96
|
-
}, [product.images, product.videos, selectedVariant]);
|
|
97
|
-
// Generate a key to reset gallery when variant changes
|
|
98
|
-
const galleryKey = useMemo(() => {
|
|
99
|
-
return selectedVariant?.id || 'no-variant';
|
|
100
|
-
}, [selectedVariant]);
|
|
101
|
-
// Check if variant selection is required
|
|
102
|
-
const requiresVariant = product.hasVariants && variants.length > 0;
|
|
103
|
-
const canAddToCart = !requiresVariant || selectedVariant !== null;
|
|
104
|
-
// Handlers
|
|
105
|
-
const handleAddToCart = () => {
|
|
106
|
-
if (canAddToCart) {
|
|
107
|
-
onAddToCart?.(product, selectedVariant, quantity);
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const handleBuyNow = () => {
|
|
111
|
-
if (canAddToCart) {
|
|
112
|
-
onBuyNow?.(product, selectedVariant, quantity);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
const handleQuantityChange = (newQuantity) => {
|
|
116
|
-
const max = currentStock > 0 ? Math.min(currentStock, maxQuantity) : maxQuantity;
|
|
117
|
-
setQuantity(Math.max(1, Math.min(newQuantity, max)));
|
|
118
|
-
};
|
|
119
|
-
const containerClasses = cn('grid gap-8', galleryPosition === 'left'
|
|
120
|
-
? 'lg:grid-cols-2'
|
|
121
|
-
: 'grid-cols-1', className);
|
|
122
|
-
return (_jsxs("div", { className: containerClasses, children: [_jsx("div", { className: galleryPosition === 'top' ? 'order-first' : '', children: _jsx(ProductGallery, { media: galleryMedia, alt: product.name }, galleryKey) }), _jsxs("div", { className: "flex flex-col", children: [_jsx("h1", { className: "text-2xl font-bold tracking-tight text-foreground sm:text-3xl", children: product.name }), _jsxs("div", { className: "mt-3 flex items-baseline gap-3", children: [_jsx("span", { className: "text-2xl font-semibold text-foreground", children: formatPrice(currentPrice, { currency: resolvedCurrency, locale: resolvedLocale }) }), comparePrice && comparePrice > currentPrice && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-lg text-muted-foreground line-through", children: formatPrice(comparePrice, { currency: resolvedCurrency, locale: resolvedLocale }) }), discountPercent && (_jsxs("span", { className: "rounded-full bg-destructive px-2 py-0.5 text-sm font-medium text-destructive-foreground", children: ["Save ", discountPercent, "%"] }))] }))] }), showStock && currentStock >= 0 && (_jsx("div", { className: "mt-3", children: isOutOfStock ? (_jsx("span", { className: "text-sm font-medium text-destructive", children: "Out of Stock" })) : isLowStock ? (_jsxs("span", { className: "text-sm font-medium text-warning", children: ["Only ", currentStock, " left in stock"] })) : (_jsxs("span", { className: "text-sm text-muted-foreground", children: ["In Stock (", currentStock, " available)"] })) })), _jsxs("div", { className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: "Description" }), _jsx("p", { className: "text-base text-muted-foreground", children: product.description })] }), children, requiresVariant && (_jsx("div", { className: "mt-6", children: _jsx(VariantSelector, { variants: variants, selected: selectedVariant, onSelect: setSelectedVariant, labels: variantLabels, disableOutOfStock: true }) })), showQuantity && (_jsxs("div", { className: "mt-6", children: [_jsx("label", { className: "mb-2 block text-sm font-medium text-foreground", children: "Quantity" }), _jsxs("div", { className: "flex w-32 items-center rounded-md border border-border", children: [_jsx("button", { type: "button", onClick: () => handleQuantityChange(quantity - 1), disabled: quantity <= 1, className: "flex h-10 w-10 items-center justify-center text-muted-foreground transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", children: _jsx(Minus, { className: "h-4 w-4" }) }), _jsx("input", { type: "number", value: quantity, onChange: (e) => {
|
|
123
|
-
const val = e.target.value;
|
|
124
|
-
if (val === '')
|
|
125
|
-
return; // Allow empty during typing
|
|
126
|
-
handleQuantityChange(parseInt(val) || 1);
|
|
127
|
-
}, className: "h-10 w-full border-0 bg-transparent text-center text-sm focus:outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none", min: 1, max: currentStock > 0 ? Math.min(currentStock, maxQuantity) : maxQuantity }), _jsx("button", { type: "button", onClick: () => handleQuantityChange(quantity + 1), disabled: currentStock > 0 ? quantity >= currentStock : quantity >= maxQuantity, className: "flex h-10 w-10 items-center justify-center text-muted-foreground transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", children: _jsx(Plus, { className: "h-4 w-4" }) })] })] })), _jsxs("div", { className: "mt-8 flex flex-col gap-3 sm:flex-row", children: [_jsx("button", { type: "button", onClick: handleAddToCart, disabled: !canAddToCart || isOutOfStock, className: cn('flex-1 rounded-md px-6 py-3 text-base font-medium transition-colors', canAddToCart && !isOutOfStock
|
|
128
|
-
? 'bg-primary text-primary-foreground hover:bg-primary/90'
|
|
129
|
-
: 'cursor-not-allowed bg-muted text-muted-foreground'), children: isOutOfStock
|
|
130
|
-
? 'Out of Stock'
|
|
131
|
-
: !canAddToCart
|
|
132
|
-
? 'Select Options'
|
|
133
|
-
: addToCartContent || 'Add to Cart' }), showBuyNow && (_jsx("button", { type: "button", onClick: handleBuyNow, disabled: !canAddToCart || isOutOfStock, className: cn('flex-1 rounded-md border px-6 py-3 text-base font-medium transition-colors', canAddToCart && !isOutOfStock
|
|
134
|
-
? 'border-primary text-primary hover:bg-primary hover:text-primary-foreground'
|
|
135
|
-
: 'cursor-not-allowed border-muted text-muted-foreground'), children: buyNowContent || 'Buy Now' }))] }), requiresVariant && !selectedVariant && (_jsx("p", { className: "mt-3 text-sm text-muted-foreground", children: "Please select all options to add to cart" }))] })] }));
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=ProductDetails.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductDetails.js","sourceRoot":"","sources":["../../../src/products/components/ProductDetails.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import type { ProductAttribute, PriceRange } from '../hooks/useProductAttributes';
|
|
2
|
-
import type { Category } from '../../core/types';
|
|
3
|
-
export interface ProductFilterValues {
|
|
4
|
-
categories: string[];
|
|
5
|
-
attributes: Record<string, string[]>;
|
|
6
|
-
priceRange: {
|
|
7
|
-
min?: number;
|
|
8
|
-
max?: number;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
export interface ProductFilterPanelProps {
|
|
12
|
-
/** Available attributes for filtering */
|
|
13
|
-
attributes?: ProductAttribute[];
|
|
14
|
-
/** Price range for price filter */
|
|
15
|
-
priceRange?: PriceRange | null;
|
|
16
|
-
/** Categories for category filter */
|
|
17
|
-
categories?: Category[];
|
|
18
|
-
/** Current filter values */
|
|
19
|
-
values: ProductFilterValues;
|
|
20
|
-
/** Callback when filters change */
|
|
21
|
-
onChange: (values: ProductFilterValues) => void;
|
|
22
|
-
/** Custom className */
|
|
23
|
-
className?: string;
|
|
24
|
-
/** Currency for price display */
|
|
25
|
-
currency?: string;
|
|
26
|
-
/** Locale for price formatting */
|
|
27
|
-
locale?: string;
|
|
28
|
-
/** Show category filter */
|
|
29
|
-
showCategories?: boolean;
|
|
30
|
-
/** Show price filter */
|
|
31
|
-
showPriceFilter?: boolean;
|
|
32
|
-
/** Collapsible sections */
|
|
33
|
-
collapsible?: boolean;
|
|
34
|
-
/** Initially expanded sections */
|
|
35
|
-
defaultExpanded?: string[];
|
|
36
|
-
/** Show clear all button */
|
|
37
|
-
showClearAll?: boolean;
|
|
38
|
-
/** Layout direction */
|
|
39
|
-
layout?: 'vertical' | 'horizontal';
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* ProductFilterPanel component for filtering product listings.
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```tsx
|
|
46
|
-
* import { ProductFilters, useProductAttributes } from '@rovela/sdk/products'
|
|
47
|
-
*
|
|
48
|
-
* function Sidebar() {
|
|
49
|
-
* const { attributes, priceRange } = useProductAttributes()
|
|
50
|
-
* const [filters, setFilters] = useState({
|
|
51
|
-
* categories: [],
|
|
52
|
-
* attributes: {},
|
|
53
|
-
* priceRange: {},
|
|
54
|
-
* })
|
|
55
|
-
*
|
|
56
|
-
* return (
|
|
57
|
-
* <ProductFilters
|
|
58
|
-
* attributes={attributes}
|
|
59
|
-
* priceRange={priceRange}
|
|
60
|
-
* values={filters}
|
|
61
|
-
* onChange={setFilters}
|
|
62
|
-
* collapsible
|
|
63
|
-
* showClearAll
|
|
64
|
-
* />
|
|
65
|
-
* )
|
|
66
|
-
* }
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
export declare function ProductFilterPanel({ attributes, priceRange, categories, values, onChange, className, currency, locale, showCategories, showPriceFilter, collapsible, defaultExpanded, showClearAll, layout, }: ProductFilterPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
70
|
-
//# sourceMappingURL=ProductFilters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductFilters.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductFilters.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAMhD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACpC,UAAU,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,yCAAyC;IACzC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,mCAAmC;IACnC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,qCAAqC;IACrC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IACvB,4BAA4B;IAC5B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/C,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uBAAuB;IACvB,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;CACnC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAe,EACf,UAAU,EACV,UAAe,EACf,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAgB,EAChB,MAAgB,EAChB,cAAqB,EACrB,eAAsB,EACtB,WAAkB,EAClB,eAAyC,EACzC,YAAmB,EACnB,MAAmB,GACpB,EAAE,uBAAuB,2CAqNzB"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
/**
|
|
4
|
-
* @rovela/sdk/products/components/ProductFilters
|
|
5
|
-
*
|
|
6
|
-
* Comprehensive filter panel for product listings.
|
|
7
|
-
*/
|
|
8
|
-
import { useState, useCallback, useMemo } from 'react';
|
|
9
|
-
import { ChevronDown } from 'lucide-react';
|
|
10
|
-
import { cn, formatPrice } from '../../core/utils';
|
|
11
|
-
// =============================================================================
|
|
12
|
-
// Component
|
|
13
|
-
// =============================================================================
|
|
14
|
-
/**
|
|
15
|
-
* ProductFilterPanel component for filtering product listings.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```tsx
|
|
19
|
-
* import { ProductFilters, useProductAttributes } from '@rovela/sdk/products'
|
|
20
|
-
*
|
|
21
|
-
* function Sidebar() {
|
|
22
|
-
* const { attributes, priceRange } = useProductAttributes()
|
|
23
|
-
* const [filters, setFilters] = useState({
|
|
24
|
-
* categories: [],
|
|
25
|
-
* attributes: {},
|
|
26
|
-
* priceRange: {},
|
|
27
|
-
* })
|
|
28
|
-
*
|
|
29
|
-
* return (
|
|
30
|
-
* <ProductFilters
|
|
31
|
-
* attributes={attributes}
|
|
32
|
-
* priceRange={priceRange}
|
|
33
|
-
* values={filters}
|
|
34
|
-
* onChange={setFilters}
|
|
35
|
-
* collapsible
|
|
36
|
-
* showClearAll
|
|
37
|
-
* />
|
|
38
|
-
* )
|
|
39
|
-
* }
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export function ProductFilterPanel({ attributes = [], priceRange, categories = [], values, onChange, className, currency = 'USD', locale = 'en-US', showCategories = true, showPriceFilter = true, collapsible = true, defaultExpanded = ['price', 'categories'], showClearAll = true, layout = 'vertical', }) {
|
|
43
|
-
const [expandedSections, setExpandedSections] = useState(new Set(defaultExpanded));
|
|
44
|
-
// Check if any filters are active
|
|
45
|
-
const hasActiveFilters = useMemo(() => {
|
|
46
|
-
return (values.categories.length > 0 ||
|
|
47
|
-
Object.values(values.attributes).some((v) => v.length > 0) ||
|
|
48
|
-
values.priceRange.min !== undefined ||
|
|
49
|
-
values.priceRange.max !== undefined);
|
|
50
|
-
}, [values]);
|
|
51
|
-
// Toggle section expansion
|
|
52
|
-
const toggleSection = useCallback((section) => {
|
|
53
|
-
setExpandedSections((prev) => {
|
|
54
|
-
const next = new Set(prev);
|
|
55
|
-
if (next.has(section)) {
|
|
56
|
-
next.delete(section);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
next.add(section);
|
|
60
|
-
}
|
|
61
|
-
return next;
|
|
62
|
-
});
|
|
63
|
-
}, []);
|
|
64
|
-
// Handle category toggle
|
|
65
|
-
const handleCategoryToggle = useCallback((categoryId) => {
|
|
66
|
-
const newCategories = values.categories.includes(categoryId)
|
|
67
|
-
? values.categories.filter((id) => id !== categoryId)
|
|
68
|
-
: [...values.categories, categoryId];
|
|
69
|
-
onChange({ ...values, categories: newCategories });
|
|
70
|
-
}, [values, onChange]);
|
|
71
|
-
// Handle attribute toggle
|
|
72
|
-
const handleAttributeToggle = useCallback((attributeName, attributeValue) => {
|
|
73
|
-
const currentValues = values.attributes[attributeName] || [];
|
|
74
|
-
const newValues = currentValues.includes(attributeValue)
|
|
75
|
-
? currentValues.filter((v) => v !== attributeValue)
|
|
76
|
-
: [...currentValues, attributeValue];
|
|
77
|
-
onChange({
|
|
78
|
-
...values,
|
|
79
|
-
attributes: {
|
|
80
|
-
...values.attributes,
|
|
81
|
-
[attributeName]: newValues,
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
}, [values, onChange]);
|
|
85
|
-
// Handle price range change
|
|
86
|
-
const handlePriceChange = useCallback((type, value) => {
|
|
87
|
-
onChange({
|
|
88
|
-
...values,
|
|
89
|
-
priceRange: {
|
|
90
|
-
...values.priceRange,
|
|
91
|
-
[type]: value,
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
}, [values, onChange]);
|
|
95
|
-
// Clear all filters
|
|
96
|
-
const handleClearAll = useCallback(() => {
|
|
97
|
-
onChange({
|
|
98
|
-
categories: [],
|
|
99
|
-
attributes: {},
|
|
100
|
-
priceRange: {},
|
|
101
|
-
});
|
|
102
|
-
}, [onChange]);
|
|
103
|
-
const containerClasses = cn(layout === 'vertical' ? 'space-y-4' : 'flex flex-wrap gap-4', className);
|
|
104
|
-
return (_jsxs("div", { className: containerClasses, children: [showClearAll && hasActiveFilters && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Filters" }), _jsx("button", { onClick: handleClearAll, className: "text-sm text-primary hover:underline", children: "Clear all" })] })), showCategories && categories.length > 0 && (_jsx(FilterSection, { title: "Category", sectionId: "categories", isExpanded: expandedSections.has('categories'), onToggle: collapsible ? () => toggleSection('categories') : undefined, layout: layout, children: _jsx("div", { className: "space-y-2", children: categories.map((category) => (_jsxs("label", { className: "flex cursor-pointer items-center gap-2", children: [_jsx("input", { type: "checkbox", checked: values.categories.includes(category.id), onChange: () => handleCategoryToggle(category.id), className: "h-4 w-4 rounded border-border text-primary focus:ring-primary" }), _jsx("span", { className: "text-sm text-foreground", children: category.name })] }, category.id))) }) })), showPriceFilter && priceRange && (_jsx(FilterSection, { title: "Price", sectionId: "price", isExpanded: expandedSections.has('price'), onToggle: collapsible ? () => toggleSection('price') : undefined, layout: layout, children: _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "sr-only", children: "Min price" }), _jsx("input", { type: "number", placeholder: formatPrice(priceRange.min, { currency, locale }), value: values.priceRange.min ?? '', onChange: (e) => handlePriceChange('min', e.target.value ? parseFloat(e.target.value) : undefined), min: 0, className: "w-full rounded-md border border-border bg-background px-3 py-1.5 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), _jsx("span", { className: "text-muted-foreground", children: "to" }), _jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "sr-only", children: "Max price" }), _jsx("input", { type: "number", placeholder: formatPrice(priceRange.max, { currency, locale }), value: values.priceRange.max ?? '', onChange: (e) => handlePriceChange('max', e.target.value ? parseFloat(e.target.value) : undefined), min: 0, className: "w-full rounded-md border border-border bg-background px-3 py-1.5 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Range: ", formatPrice(priceRange.min, { currency, locale }), " -", ' ', formatPrice(priceRange.max, { currency, locale })] })] }) })), attributes.map((attribute) => (_jsx(FilterSection, { title: formatAttributeName(attribute.name), sectionId: attribute.name, isExpanded: expandedSections.has(attribute.name), onToggle: collapsible ? () => toggleSection(attribute.name) : undefined, layout: layout, children: _jsx("div", { className: "space-y-2", children: attribute.values.map((value) => (_jsxs("label", { className: "flex cursor-pointer items-center gap-2", children: [_jsx("input", { type: "checkbox", checked: (values.attributes[attribute.name] || []).includes(value), onChange: () => handleAttributeToggle(attribute.name, value), className: "h-4 w-4 rounded border-border text-primary focus:ring-primary" }), _jsx("span", { className: "text-sm text-foreground", children: value })] }, value))) }) }, attribute.name)))] }));
|
|
105
|
-
}
|
|
106
|
-
function FilterSection({ title, sectionId, isExpanded, onToggle, children, layout = 'vertical', }) {
|
|
107
|
-
const isCollapsible = !!onToggle;
|
|
108
|
-
if (layout === 'horizontal') {
|
|
109
|
-
return (_jsxs("div", { className: "rounded-md border border-border p-3", children: [_jsx("span", { className: "mb-2 block text-sm font-medium text-foreground", children: title }), children] }));
|
|
110
|
-
}
|
|
111
|
-
return (_jsxs("div", { className: "border-b border-border pb-4", children: [isCollapsible ? (_jsxs("button", { onClick: onToggle, className: "flex w-full items-center justify-between py-2 text-sm font-medium text-foreground", "aria-expanded": isExpanded, "aria-controls": `filter-section-${sectionId}`, children: [_jsx("span", { children: title }), _jsx(ChevronDown, { className: cn('h-4 w-4 text-muted-foreground transition-transform', isExpanded && 'rotate-180') })] })) : (_jsx("span", { className: "block py-2 text-sm font-medium text-foreground", children: title })), (!isCollapsible || isExpanded) && (_jsx("div", { id: `filter-section-${sectionId}`, children: children }))] }));
|
|
112
|
-
}
|
|
113
|
-
// =============================================================================
|
|
114
|
-
// Helpers
|
|
115
|
-
// =============================================================================
|
|
116
|
-
function formatAttributeName(name) {
|
|
117
|
-
return name
|
|
118
|
-
.replace(/_/g, ' ')
|
|
119
|
-
.replace(/([A-Z])/g, ' $1')
|
|
120
|
-
.trim()
|
|
121
|
-
.split(' ')
|
|
122
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
123
|
-
.join(' ');
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=ProductFilters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductFilters.js","sourceRoot":"","sources":["../../../src/products/components/ProductFilters.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export interface ProductGalleryProps {
|
|
2
|
-
/**
|
|
3
|
-
* Image URLs (back-compat: prop used to be the only source). Either this,
|
|
4
|
-
* `videos`, or `media` (combined) is required.
|
|
5
|
-
*/
|
|
6
|
-
images?: string[];
|
|
7
|
-
/** Video URLs (MP4 / WebM / MOV). Order is preserved. */
|
|
8
|
-
videos?: string[];
|
|
9
|
-
/**
|
|
10
|
-
* Pre-mixed media URLs in display order. If provided, takes precedence over
|
|
11
|
-
* `images` + `videos` (which are still appended for back-compat callers
|
|
12
|
-
* that pass both).
|
|
13
|
-
*/
|
|
14
|
-
media?: string[];
|
|
15
|
-
/** Alt text for images / aria label for videos */
|
|
16
|
-
alt: string;
|
|
17
|
-
/** Custom className */
|
|
18
|
-
className?: string;
|
|
19
|
-
/** Thumbnail position */
|
|
20
|
-
thumbnailPosition?: 'bottom' | 'left';
|
|
21
|
-
/** Main media aspect ratio */
|
|
22
|
-
aspectRatio?: 'square' | 'portrait' | 'landscape';
|
|
23
|
-
/** Enable zoom on click (image only — videos always show controls instead) */
|
|
24
|
-
enableZoom?: boolean;
|
|
25
|
-
/** Show navigation arrows */
|
|
26
|
-
showArrows?: boolean;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* ProductGallery component — images and videos in a unified strip.
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```tsx
|
|
33
|
-
* <ProductGallery
|
|
34
|
-
* images={product.images}
|
|
35
|
-
* videos={product.videos}
|
|
36
|
-
* alt={product.name}
|
|
37
|
-
* thumbnailPosition="left"
|
|
38
|
-
* />
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export declare function ProductGallery({ images, videos, media, alt, className, thumbnailPosition, aspectRatio, enableZoom, showArrows, }: ProductGalleryProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
-
//# sourceMappingURL=ProductGallery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductGallery.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductGallery.tsx"],"names":[],"mappings":"AAyBA,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACrC,8BAA8B;IAC9B,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;IACjD,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,EACH,SAAS,EACT,iBAA4B,EAC5B,WAAsB,EACtB,UAAkB,EAClB,UAAiB,GAClB,EAAE,mBAAmB,2CAmPrB"}
|