@rovela-ai/sdk 0.4.1 → 0.4.2
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/accept-invite.d.ts +65 -0
- package/dist/admin/api/accept-invite.d.ts.map +1 -0
- package/dist/admin/api/accept-invite.js +115 -0
- package/dist/admin/api/accept-invite.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 +266 -0
- package/dist/admin/api/categories.js.map +1 -0
- package/dist/admin/api/check.d.ts +38 -0
- package/dist/admin/api/check.d.ts.map +1 -0
- package/dist/admin/api/check.js +49 -0
- package/dist/admin/api/check.js.map +1 -0
- package/dist/admin/api/customers.d.ts +77 -0
- package/dist/admin/api/customers.d.ts.map +1 -0
- package/dist/admin/api/customers.js +219 -0
- package/dist/admin/api/customers.js.map +1 -0
- package/dist/admin/api/forgot-password.d.ts +39 -0
- package/dist/admin/api/forgot-password.d.ts.map +1 -0
- package/dist/admin/api/forgot-password.js +66 -0
- package/dist/admin/api/forgot-password.js.map +1 -0
- package/dist/admin/api/index.d.ts +109 -0
- package/dist/admin/api/index.d.ts.map +1 -0
- package/dist/admin/api/index.js +128 -0
- package/dist/admin/api/index.js.map +1 -0
- package/dist/admin/api/linked-customer.d.ts +32 -0
- package/dist/admin/api/linked-customer.d.ts.map +1 -0
- package/dist/admin/api/linked-customer.js +45 -0
- package/dist/admin/api/linked-customer.js.map +1 -0
- package/dist/admin/api/me.d.ts +72 -0
- package/dist/admin/api/me.d.ts.map +1 -0
- package/dist/admin/api/me.js +177 -0
- package/dist/admin/api/me.js.map +1 -0
- package/dist/admin/api/orders.d.ts +91 -0
- package/dist/admin/api/orders.d.ts.map +1 -0
- package/dist/admin/api/orders.js +390 -0
- package/dist/admin/api/orders.js.map +1 -0
- package/dist/admin/api/products-bulk.d.ts +38 -0
- package/dist/admin/api/products-bulk.d.ts.map +1 -0
- package/dist/admin/api/products-bulk.js +135 -0
- package/dist/admin/api/products-bulk.js.map +1 -0
- package/dist/admin/api/products-stats.d.ts +34 -0
- package/dist/admin/api/products-stats.d.ts.map +1 -0
- package/dist/admin/api/products-stats.js +43 -0
- package/dist/admin/api/products-stats.js.map +1 -0
- package/dist/admin/api/products.d.ts +104 -0
- package/dist/admin/api/products.d.ts.map +1 -0
- package/dist/admin/api/products.js +491 -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 +142 -0
- package/dist/admin/api/refund.js.map +1 -0
- package/dist/admin/api/reset-password.d.ts +49 -0
- package/dist/admin/api/reset-password.d.ts.map +1 -0
- package/dist/admin/api/reset-password.js +99 -0
- package/dist/admin/api/reset-password.js.map +1 -0
- package/dist/admin/api/return.d.ts +47 -0
- package/dist/admin/api/return.d.ts.map +1 -0
- package/dist/admin/api/return.js +186 -0
- package/dist/admin/api/return.js.map +1 -0
- package/dist/admin/api/settings.d.ts +49 -0
- package/dist/admin/api/settings.d.ts.map +1 -0
- package/dist/admin/api/settings.js +201 -0
- package/dist/admin/api/settings.js.map +1 -0
- package/dist/admin/api/setup-guide.d.ts +78 -0
- package/dist/admin/api/setup-guide.d.ts.map +1 -0
- package/dist/admin/api/setup-guide.js +235 -0
- package/dist/admin/api/setup-guide.js.map +1 -0
- package/dist/admin/api/setup.d.ts +60 -0
- package/dist/admin/api/setup.d.ts.map +1 -0
- package/dist/admin/api/setup.js +126 -0
- package/dist/admin/api/setup.js.map +1 -0
- package/dist/admin/api/shipping.d.ts +287 -0
- package/dist/admin/api/shipping.d.ts.map +1 -0
- package/dist/admin/api/shipping.js +746 -0
- package/dist/admin/api/shipping.js.map +1 -0
- package/dist/admin/api/stats.d.ts +43 -0
- package/dist/admin/api/stats.d.ts.map +1 -0
- package/dist/admin/api/stats.js +92 -0
- package/dist/admin/api/stats.js.map +1 -0
- package/dist/admin/api/stripe-status.d.ts +39 -0
- package/dist/admin/api/stripe-status.d.ts.map +1 -0
- package/dist/admin/api/stripe-status.js +99 -0
- package/dist/admin/api/stripe-status.js.map +1 -0
- package/dist/admin/api/tax-zones.d.ts +97 -0
- package/dist/admin/api/tax-zones.d.ts.map +1 -0
- package/dist/admin/api/tax-zones.js +265 -0
- package/dist/admin/api/tax-zones.js.map +1 -0
- package/dist/admin/api/users.d.ts +142 -0
- package/dist/admin/api/users.d.ts.map +1 -0
- package/dist/admin/api/users.js +355 -0
- package/dist/admin/api/users.js.map +1 -0
- package/dist/admin/components/AdminAcceptInviteForm.d.ts +3 -0
- package/dist/admin/components/AdminAcceptInviteForm.d.ts.map +1 -0
- package/dist/admin/components/AdminAcceptInviteForm.js +137 -0
- package/dist/admin/components/AdminAcceptInviteForm.js.map +1 -0
- package/dist/admin/components/AdminAccountPage.d.ts +10 -0
- package/dist/admin/components/AdminAccountPage.d.ts.map +1 -0
- package/dist/admin/components/AdminAccountPage.js +126 -0
- package/dist/admin/components/AdminAccountPage.js.map +1 -0
- package/dist/admin/components/AdminBarBanner.d.ts +2 -0
- package/dist/admin/components/AdminBarBanner.d.ts.map +1 -0
- package/dist/admin/components/AdminBarBanner.js +266 -0
- package/dist/admin/components/AdminBarBanner.js.map +1 -0
- package/dist/admin/components/AdminForgotPasswordForm.d.ts +8 -0
- package/dist/admin/components/AdminForgotPasswordForm.d.ts.map +1 -0
- package/dist/admin/components/AdminForgotPasswordForm.js +59 -0
- package/dist/admin/components/AdminForgotPasswordForm.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 +94 -0
- package/dist/admin/components/AdminGuard.js.map +1 -0
- package/dist/admin/components/AdminLayout.d.ts +40 -0
- package/dist/admin/components/AdminLayout.d.ts.map +1 -0
- package/dist/admin/components/AdminLayout.js +39 -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 +61 -0
- package/dist/admin/components/AdminLoginForm.js.map +1 -0
- package/dist/admin/components/AdminNav.d.ts +44 -0
- package/dist/admin/components/AdminNav.d.ts.map +1 -0
- package/dist/admin/components/AdminNav.js +175 -0
- package/dist/admin/components/AdminNav.js.map +1 -0
- package/dist/admin/components/AdminResetPasswordForm.d.ts +12 -0
- package/dist/admin/components/AdminResetPasswordForm.d.ts.map +1 -0
- package/dist/admin/components/AdminResetPasswordForm.js +134 -0
- package/dist/admin/components/AdminResetPasswordForm.js.map +1 -0
- package/dist/admin/components/AdminSelect.d.ts +47 -0
- package/dist/admin/components/AdminSelect.d.ts.map +1 -0
- package/dist/admin/components/AdminSelect.js +71 -0
- package/dist/admin/components/AdminSelect.js.map +1 -0
- package/dist/admin/components/AdminToast.d.ts +31 -0
- package/dist/admin/components/AdminToast.d.ts.map +1 -0
- package/dist/admin/components/AdminToast.js +83 -0
- package/dist/admin/components/AdminToast.js.map +1 -0
- package/dist/admin/components/AdminUserMenu.d.ts +14 -0
- package/dist/admin/components/AdminUserMenu.d.ts.map +1 -0
- package/dist/admin/components/AdminUserMenu.js +34 -0
- package/dist/admin/components/AdminUserMenu.js.map +1 -0
- package/dist/admin/components/CategoryForm.d.ts +30 -0
- package/dist/admin/components/CategoryForm.d.ts.map +1 -0
- package/dist/admin/components/CategoryForm.js +152 -0
- package/dist/admin/components/CategoryForm.js.map +1 -0
- package/dist/admin/components/CategorySelect.d.ts +32 -0
- package/dist/admin/components/CategorySelect.d.ts.map +1 -0
- package/dist/admin/components/CategorySelect.js +139 -0
- package/dist/admin/components/CategorySelect.js.map +1 -0
- package/dist/admin/components/CustomerDetails.d.ts +15 -0
- package/dist/admin/components/CustomerDetails.d.ts.map +1 -0
- package/dist/admin/components/CustomerDetails.js +177 -0
- package/dist/admin/components/CustomerDetails.js.map +1 -0
- package/dist/admin/components/CustomerTable.d.ts +13 -0
- package/dist/admin/components/CustomerTable.d.ts.map +1 -0
- package/dist/admin/components/CustomerTable.js +112 -0
- package/dist/admin/components/CustomerTable.js.map +1 -0
- package/dist/admin/components/DeleteConfirmDialog.d.ts +56 -0
- package/dist/admin/components/DeleteConfirmDialog.d.ts.map +1 -0
- package/dist/admin/components/DeleteConfirmDialog.js +46 -0
- package/dist/admin/components/DeleteConfirmDialog.js.map +1 -0
- package/dist/admin/components/ExampleContentBanner.d.ts +2 -0
- package/dist/admin/components/ExampleContentBanner.d.ts.map +1 -0
- package/dist/admin/components/ExampleContentBanner.js +153 -0
- package/dist/admin/components/ExampleContentBanner.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 +86 -0
- package/dist/admin/components/InventoryEditor.js.map +1 -0
- package/dist/admin/components/InviteUserDialog.d.ts +3 -0
- package/dist/admin/components/InviteUserDialog.d.ts.map +1 -0
- package/dist/admin/components/InviteUserDialog.js +126 -0
- package/dist/admin/components/InviteUserDialog.js.map +1 -0
- package/dist/admin/components/LogoUpload.d.ts +22 -0
- package/dist/admin/components/LogoUpload.d.ts.map +1 -0
- package/dist/admin/components/LogoUpload.js +210 -0
- package/dist/admin/components/LogoUpload.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 +33 -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 +210 -0
- package/dist/admin/components/OrderDetails.js.map +1 -0
- package/dist/admin/components/OrderStatusChart.d.ts +21 -0
- package/dist/admin/components/OrderStatusChart.d.ts.map +1 -0
- package/dist/admin/components/OrderStatusChart.js +61 -0
- package/dist/admin/components/OrderStatusChart.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 +117 -0
- package/dist/admin/components/OrderTable.js.map +1 -0
- package/dist/admin/components/PaymentSettings.d.ts +13 -0
- package/dist/admin/components/PaymentSettings.d.ts.map +1 -0
- package/dist/admin/components/PaymentSettings.js +117 -0
- package/dist/admin/components/PaymentSettings.js.map +1 -0
- package/dist/admin/components/PeriodSelector.d.ts +9 -0
- package/dist/admin/components/PeriodSelector.d.ts.map +1 -0
- package/dist/admin/components/PeriodSelector.js +19 -0
- package/dist/admin/components/PeriodSelector.js.map +1 -0
- package/dist/admin/components/PermissionsMatrix.d.ts +8 -0
- package/dist/admin/components/PermissionsMatrix.d.ts.map +1 -0
- package/dist/admin/components/PermissionsMatrix.js +70 -0
- package/dist/admin/components/PermissionsMatrix.js.map +1 -0
- package/dist/admin/components/PrimaryMetricsRow.d.ts +11 -0
- package/dist/admin/components/PrimaryMetricsRow.d.ts.map +1 -0
- package/dist/admin/components/PrimaryMetricsRow.js +73 -0
- package/dist/admin/components/PrimaryMetricsRow.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 +251 -0
- package/dist/admin/components/ProductForm.js.map +1 -0
- package/dist/admin/components/ProductTable.d.ts +14 -0
- package/dist/admin/components/ProductTable.d.ts.map +1 -0
- package/dist/admin/components/ProductTable.js +384 -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 +63 -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 +90 -0
- package/dist/admin/components/RefundDialog.js.map +1 -0
- package/dist/admin/components/RevenueChart.d.ts +23 -0
- package/dist/admin/components/RevenueChart.d.ts.map +1 -0
- package/dist/admin/components/RevenueChart.js +75 -0
- package/dist/admin/components/RevenueChart.js.map +1 -0
- package/dist/admin/components/SEOPreview.d.ts +33 -0
- package/dist/admin/components/SEOPreview.d.ts.map +1 -0
- package/dist/admin/components/SEOPreview.js +30 -0
- package/dist/admin/components/SEOPreview.js.map +1 -0
- package/dist/admin/components/SecondaryMetricsRow.d.ts +14 -0
- package/dist/admin/components/SecondaryMetricsRow.d.ts.map +1 -0
- package/dist/admin/components/SecondaryMetricsRow.js +45 -0
- package/dist/admin/components/SecondaryMetricsRow.js.map +1 -0
- package/dist/admin/components/SetupGuide.d.ts +4 -0
- package/dist/admin/components/SetupGuide.d.ts.map +1 -0
- package/dist/admin/components/SetupGuide.js +244 -0
- package/dist/admin/components/SetupGuide.js.map +1 -0
- package/dist/admin/components/ShippingSettings.d.ts +3 -0
- package/dist/admin/components/ShippingSettings.d.ts.map +1 -0
- package/dist/admin/components/ShippingSettings.js +553 -0
- package/dist/admin/components/ShippingSettings.js.map +1 -0
- package/dist/admin/components/StatsCards.d.ts +18 -0
- package/dist/admin/components/StatsCards.d.ts.map +1 -0
- package/dist/admin/components/StatsCards.js +71 -0
- package/dist/admin/components/StatsCards.js.map +1 -0
- package/dist/admin/components/StoreSettings.d.ts +19 -0
- package/dist/admin/components/StoreSettings.d.ts.map +1 -0
- package/dist/admin/components/StoreSettings.js +149 -0
- package/dist/admin/components/StoreSettings.js.map +1 -0
- package/dist/admin/components/TagInput.d.ts +29 -0
- package/dist/admin/components/TagInput.d.ts.map +1 -0
- package/dist/admin/components/TagInput.js +69 -0
- package/dist/admin/components/TagInput.js.map +1 -0
- package/dist/admin/components/TaxSettings.d.ts +12 -0
- package/dist/admin/components/TaxSettings.d.ts.map +1 -0
- package/dist/admin/components/TaxSettings.js +272 -0
- package/dist/admin/components/TaxSettings.js.map +1 -0
- package/dist/admin/components/UsersTable.d.ts +3 -0
- package/dist/admin/components/UsersTable.d.ts.map +1 -0
- package/dist/admin/components/UsersTable.js +388 -0
- package/dist/admin/components/UsersTable.js.map +1 -0
- package/dist/admin/components/VariantManager.d.ts +44 -0
- package/dist/admin/components/VariantManager.d.ts.map +1 -0
- package/dist/admin/components/VariantManager.js +324 -0
- package/dist/admin/components/VariantManager.js.map +1 -0
- package/dist/admin/components/index.d.ts +69 -0
- package/dist/admin/components/index.d.ts.map +1 -0
- package/dist/admin/components/index.js +86 -0
- package/dist/admin/components/index.js.map +1 -0
- package/dist/admin/config.d.ts +51 -0
- package/dist/admin/config.d.ts.map +1 -0
- package/dist/admin/config.js +224 -0
- package/dist/admin/config.js.map +1 -0
- package/dist/admin/hooks/fetchAdminApi.d.ts +65 -0
- package/dist/admin/hooks/fetchAdminApi.d.ts.map +1 -0
- package/dist/admin/hooks/fetchAdminApi.js +96 -0
- package/dist/admin/hooks/fetchAdminApi.js.map +1 -0
- package/dist/admin/hooks/index.d.ts +24 -0
- package/dist/admin/hooks/index.d.ts.map +1 -0
- package/dist/admin/hooks/index.js +19 -0
- package/dist/admin/hooks/index.js.map +1 -0
- package/dist/admin/hooks/useAdminAuth.d.ts +25 -0
- package/dist/admin/hooks/useAdminAuth.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminAuth.js +183 -0
- package/dist/admin/hooks/useAdminAuth.js.map +1 -0
- package/dist/admin/hooks/useAdminCategories.d.ts +9 -0
- package/dist/admin/hooks/useAdminCategories.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminCategories.js +112 -0
- package/dist/admin/hooks/useAdminCategories.js.map +1 -0
- package/dist/admin/hooks/useAdminCustomers.d.ts +3 -0
- package/dist/admin/hooks/useAdminCustomers.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminCustomers.js +110 -0
- package/dist/admin/hooks/useAdminCustomers.js.map +1 -0
- package/dist/admin/hooks/useAdminMe.d.ts +31 -0
- package/dist/admin/hooks/useAdminMe.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminMe.js +78 -0
- package/dist/admin/hooks/useAdminMe.js.map +1 -0
- package/dist/admin/hooks/useAdminOrders.d.ts +3 -0
- package/dist/admin/hooks/useAdminOrders.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminOrders.js +118 -0
- package/dist/admin/hooks/useAdminOrders.js.map +1 -0
- package/dist/admin/hooks/useAdminPermissions.d.ts +3 -0
- package/dist/admin/hooks/useAdminPermissions.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminPermissions.js +51 -0
- package/dist/admin/hooks/useAdminPermissions.js.map +1 -0
- package/dist/admin/hooks/useAdminProductMetrics.d.ts +3 -0
- package/dist/admin/hooks/useAdminProductMetrics.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminProductMetrics.js +32 -0
- package/dist/admin/hooks/useAdminProductMetrics.js.map +1 -0
- package/dist/admin/hooks/useAdminProducts.d.ts +3 -0
- package/dist/admin/hooks/useAdminProducts.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminProducts.js +132 -0
- package/dist/admin/hooks/useAdminProducts.js.map +1 -0
- package/dist/admin/hooks/useAdminSession.d.ts +23 -0
- package/dist/admin/hooks/useAdminSession.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminSession.js +117 -0
- package/dist/admin/hooks/useAdminSession.js.map +1 -0
- package/dist/admin/hooks/useAdminStats.d.ts +47 -0
- package/dist/admin/hooks/useAdminStats.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminStats.js +128 -0
- package/dist/admin/hooks/useAdminStats.js.map +1 -0
- package/dist/admin/hooks/useAdminUsers.d.ts +3 -0
- package/dist/admin/hooks/useAdminUsers.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminUsers.js +177 -0
- package/dist/admin/hooks/useAdminUsers.js.map +1 -0
- package/dist/admin/hooks/useLinkedCustomerStatus.d.ts +3 -0
- package/dist/admin/hooks/useLinkedCustomerStatus.d.ts.map +1 -0
- package/dist/admin/hooks/useLinkedCustomerStatus.js +48 -0
- package/dist/admin/hooks/useLinkedCustomerStatus.js.map +1 -0
- package/dist/admin/hooks/useSetupGuide.d.ts +45 -0
- package/dist/admin/hooks/useSetupGuide.d.ts.map +1 -0
- package/dist/admin/hooks/useSetupGuide.js +60 -0
- package/dist/admin/hooks/useSetupGuide.js.map +1 -0
- package/dist/admin/index.d.ts +66 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +144 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/permissions.d.ts +79 -0
- package/dist/admin/permissions.d.ts.map +1 -0
- package/dist/admin/permissions.js +182 -0
- package/dist/admin/permissions.js.map +1 -0
- package/dist/admin/server/admin-invite.d.ts +122 -0
- package/dist/admin/server/admin-invite.d.ts.map +1 -0
- package/dist/admin/server/admin-invite.js +235 -0
- package/dist/admin/server/admin-invite.js.map +1 -0
- package/dist/admin/server/admin-password-reset.d.ts +87 -0
- package/dist/admin/server/admin-password-reset.d.ts.map +1 -0
- package/dist/admin/server/admin-password-reset.js +220 -0
- package/dist/admin/server/admin-password-reset.js.map +1 -0
- package/dist/admin/server/admin-self-service.d.ts +86 -0
- package/dist/admin/server/admin-self-service.d.ts.map +1 -0
- package/dist/admin/server/admin-self-service.js +188 -0
- package/dist/admin/server/admin-self-service.js.map +1 -0
- package/dist/admin/server/admin-service.d.ts +131 -0
- package/dist/admin/server/admin-service.d.ts.map +1 -0
- package/dist/admin/server/admin-service.js +278 -0
- package/dist/admin/server/admin-service.js.map +1 -0
- package/dist/admin/server/admin-session.d.ts +173 -0
- package/dist/admin/server/admin-session.d.ts.map +1 -0
- package/dist/admin/server/admin-session.js +272 -0
- package/dist/admin/server/admin-session.js.map +1 -0
- package/dist/admin/server/index.d.ts +17 -0
- package/dist/admin/server/index.d.ts.map +1 -0
- package/dist/admin/server/index.js +39 -0
- package/dist/admin/server/index.js.map +1 -0
- package/dist/admin/server/user-management.d.ts +221 -0
- package/dist/admin/server/user-management.d.ts.map +1 -0
- package/dist/admin/server/user-management.js +838 -0
- package/dist/admin/server/user-management.js.map +1 -0
- package/dist/admin/types.d.ts +1161 -0
- package/dist/admin/types.d.ts.map +1 -0
- package/dist/admin/types.js +10 -0
- package/dist/admin/types.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 +65 -0
- package/dist/auth/api/forgot-password.js.map +1 -0
- package/dist/auth/api/index.d.ts +37 -0
- package/dist/auth/api/index.d.ts.map +1 -0
- package/dist/auth/api/index.js +44 -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 +99 -0
- package/dist/auth/api/register.js.map +1 -0
- package/dist/auth/api/request-refund.d.ts +38 -0
- package/dist/auth/api/request-refund.d.ts.map +1 -0
- package/dist/auth/api/request-refund.js +142 -0
- package/dist/auth/api/request-refund.js.map +1 -0
- package/dist/auth/api/request-return.d.ts +39 -0
- package/dist/auth/api/request-return.d.ts.map +1 -0
- package/dist/auth/api/request-return.js +109 -0
- package/dist/auth/api/request-return.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 +68 -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 +106 -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 +90 -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 +109 -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 +43 -0
- package/dist/auth/components/ForgotPasswordForm.js.map +1 -0
- package/dist/auth/components/Label.d.ts +19 -0
- package/dist/auth/components/Label.d.ts.map +1 -0
- package/dist/auth/components/Label.js +18 -0
- package/dist/auth/components/Label.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 +87 -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 +61 -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 +78 -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 +73 -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 +57 -0
- package/dist/auth/components/VerifyEmailNotice.js.map +1 -0
- package/dist/auth/components/index.d.ts +15 -0
- package/dist/auth/components/index.d.ts.map +1 -0
- package/dist/auth/components/index.js +14 -0
- package/dist/auth/components/index.js.map +1 -0
- package/dist/auth/config.d.ts +52 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +243 -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 +7 -0
- package/dist/auth/hooks/index.js.map +1 -0
- package/dist/auth/hooks/useAuth.d.ts +30 -0
- package/dist/auth/hooks/useAuth.d.ts.map +1 -0
- package/dist/auth/hooks/useAuth.js +251 -0
- package/dist/auth/hooks/useAuth.js.map +1 -0
- package/dist/auth/index.d.ts +55 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +67 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/server/customer-service.d.ts +140 -0
- package/dist/auth/server/customer-service.d.ts.map +1 -0
- package/dist/auth/server/customer-service.js +266 -0
- package/dist/auth/server/customer-service.js.map +1 -0
- package/dist/auth/server/customer-session.d.ts +79 -0
- package/dist/auth/server/customer-session.d.ts.map +1 -0
- package/dist/auth/server/customer-session.js +103 -0
- package/dist/auth/server/customer-session.js.map +1 -0
- package/dist/auth/server/index.d.ts +14 -0
- package/dist/auth/server/index.d.ts.map +1 -0
- package/dist/auth/server/index.js +17 -0
- package/dist/auth/server/index.js.map +1 -0
- package/dist/auth/server/password-reset-service.d.ts +87 -0
- package/dist/auth/server/password-reset-service.d.ts.map +1 -0
- package/dist/auth/server/password-reset-service.js +203 -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 +85 -0
- package/dist/auth/server/password.js.map +1 -0
- package/dist/auth/server/verification-service.d.ts +88 -0
- package/dist/auth/server/verification-service.d.ts.map +1 -0
- package/dist/auth/server/verification-service.js +231 -0
- package/dist/auth/server/verification-service.js.map +1 -0
- package/dist/auth/types.d.ts +311 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +7 -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 +96 -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 +122 -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 +117 -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 +68 -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 +60 -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 +85 -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 +12 -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 +115 -0
- package/dist/cart/index.js.map +1 -0
- package/dist/cart/store.d.ts +150 -0
- package/dist/cart/store.d.ts.map +1 -0
- package/dist/cart/store.js +315 -0
- package/dist/cart/store.js.map +1 -0
- package/dist/checkout/api/checkout.js +112 -0
- package/dist/checkout/api/checkout.js.map +1 -0
- package/dist/checkout/api/countries.d.ts +17 -0
- package/dist/checkout/api/countries.d.ts.map +1 -0
- package/dist/checkout/api/countries.js +38 -0
- package/dist/checkout/api/countries.js.map +1 -0
- package/dist/checkout/api/index.js +11 -0
- package/dist/checkout/api/index.js.map +1 -0
- package/dist/checkout/api/payment-status.d.ts +45 -0
- package/dist/checkout/api/payment-status.d.ts.map +1 -0
- package/dist/checkout/api/payment-status.js +104 -0
- package/dist/checkout/api/payment-status.js.map +1 -0
- package/dist/checkout/api/shipping.d.ts +34 -0
- package/dist/checkout/api/shipping.d.ts.map +1 -0
- package/dist/checkout/api/shipping.js +247 -0
- package/dist/checkout/api/shipping.js.map +1 -0
- package/dist/checkout/api/webhook.js +55 -0
- package/dist/checkout/api/webhook.js.map +1 -0
- package/dist/checkout/components/CheckoutButton.d.ts +55 -0
- package/dist/checkout/components/CheckoutButton.d.ts.map +1 -0
- package/dist/checkout/components/CheckoutButton.js +132 -0
- package/dist/checkout/components/CheckoutButton.js.map +1 -0
- package/dist/checkout/components/CheckoutFlow.d.ts +53 -0
- package/dist/checkout/components/CheckoutFlow.d.ts.map +1 -0
- package/dist/checkout/components/CheckoutFlow.js +286 -0
- package/dist/checkout/components/CheckoutFlow.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 +49 -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 +71 -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 +185 -0
- package/dist/checkout/components/ShippingForm.js.map +1 -0
- package/dist/checkout/components/ShippingOptions.d.ts +51 -0
- package/dist/checkout/components/ShippingOptions.d.ts.map +1 -0
- package/dist/checkout/components/ShippingOptions.js +93 -0
- package/dist/checkout/components/ShippingOptions.js.map +1 -0
- package/dist/checkout/components/index.d.ts +12 -0
- package/dist/checkout/components/index.d.ts.map +1 -0
- package/dist/checkout/components/index.js +12 -0
- package/dist/checkout/components/index.js.map +1 -0
- package/dist/checkout/constants.d.ts +244 -0
- package/dist/checkout/constants.d.ts.map +1 -0
- package/dist/checkout/constants.js +119 -0
- package/dist/checkout/constants.js.map +1 -0
- package/dist/checkout/hooks/index.d.ts +9 -0
- package/dist/checkout/hooks/index.d.ts.map +1 -0
- package/dist/checkout/hooks/index.js +8 -0
- package/dist/checkout/hooks/index.js.map +1 -0
- package/dist/checkout/hooks/useCheckout.d.ts +38 -0
- package/dist/checkout/hooks/useCheckout.d.ts.map +1 -0
- package/dist/checkout/hooks/useCheckout.js +134 -0
- package/dist/checkout/hooks/useCheckout.js.map +1 -0
- package/dist/checkout/hooks/usePaymentStatus.d.ts +42 -0
- package/dist/checkout/hooks/usePaymentStatus.d.ts.map +1 -0
- package/dist/checkout/hooks/usePaymentStatus.js +71 -0
- package/dist/checkout/hooks/usePaymentStatus.js.map +1 -0
- package/dist/checkout/index.js +135 -0
- package/dist/checkout/index.js.map +1 -0
- package/dist/checkout/server/coupons.d.ts +91 -0
- package/dist/checkout/server/coupons.d.ts.map +1 -0
- package/dist/checkout/server/coupons.js +192 -0
- package/dist/checkout/server/coupons.js.map +1 -0
- package/dist/checkout/server/index.js +10 -0
- package/dist/checkout/server/index.js.map +1 -0
- package/dist/checkout/stripe/client.d.ts +74 -0
- package/dist/checkout/stripe/client.d.ts.map +1 -0
- package/dist/checkout/stripe/client.js +175 -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 +7 -0
- package/dist/checkout/stripe/index.js.map +1 -0
- package/dist/checkout/types.d.ts +489 -0
- package/dist/checkout/types.d.ts.map +1 -0
- package/dist/checkout/types.js +8 -0
- package/dist/checkout/types.js.map +1 -0
- package/dist/core/StoreSettingsProvider.d.ts +107 -0
- package/dist/core/StoreSettingsProvider.d.ts.map +1 -0
- package/dist/core/StoreSettingsProvider.js +200 -0
- package/dist/core/StoreSettingsProvider.js.map +1 -0
- package/dist/core/api/index.d.ts +7 -0
- package/dist/core/api/index.d.ts.map +1 -0
- package/dist/core/api/index.js +7 -0
- package/dist/core/api/index.js.map +1 -0
- package/dist/core/api/settings.d.ts +42 -0
- package/dist/core/api/settings.d.ts.map +1 -0
- package/dist/core/api/settings.js +74 -0
- package/dist/core/api/settings.js.map +1 -0
- package/dist/core/config.d.ts +270 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +80 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/cookie-consent/CookieBanner.d.ts +2 -0
- package/dist/core/cookie-consent/CookieBanner.d.ts.map +1 -0
- package/dist/core/cookie-consent/CookieBanner.js +243 -0
- package/dist/core/cookie-consent/CookieBanner.js.map +1 -0
- package/dist/core/cookie-consent/CookieConsentProvider.d.ts +53 -0
- package/dist/core/cookie-consent/CookieConsentProvider.d.ts.map +1 -0
- package/dist/core/cookie-consent/CookieConsentProvider.js +162 -0
- package/dist/core/cookie-consent/CookieConsentProvider.js.map +1 -0
- package/dist/core/cookie-consent/CookiePreferencesLink.d.ts +15 -0
- package/dist/core/cookie-consent/CookiePreferencesLink.d.ts.map +1 -0
- package/dist/core/cookie-consent/CookiePreferencesLink.js +12 -0
- package/dist/core/cookie-consent/CookiePreferencesLink.js.map +1 -0
- package/dist/core/cookie-consent/index.d.ts +17 -0
- package/dist/core/cookie-consent/index.d.ts.map +1 -0
- package/dist/core/cookie-consent/index.js +16 -0
- package/dist/core/cookie-consent/index.js.map +1 -0
- package/dist/core/cookie-consent/types.d.ts +31 -0
- package/dist/core/cookie-consent/types.d.ts.map +1 -0
- package/dist/core/cookie-consent/types.js +10 -0
- package/dist/core/cookie-consent/types.js.map +1 -0
- package/dist/core/cookie-consent/useCookieConsent.d.ts +14 -0
- package/dist/core/cookie-consent/useCookieConsent.d.ts.map +1 -0
- package/dist/core/cookie-consent/useCookieConsent.js +25 -0
- package/dist/core/cookie-consent/useCookieConsent.js.map +1 -0
- package/dist/core/db/client.d.ts +39 -0
- package/dist/core/db/client.d.ts.map +1 -0
- package/dist/core/db/client.js +86 -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 +36 -0
- package/dist/core/db/index.js.map +1 -0
- package/dist/core/db/queries.d.ts +1427 -0
- package/dist/core/db/queries.d.ts.map +1 -0
- package/dist/core/db/queries.js +1932 -0
- package/dist/core/db/queries.js.map +1 -0
- package/dist/core/db/schema.d.ts +3462 -0
- package/dist/core/db/schema.d.ts.map +1 -0
- package/dist/core/db/schema.js +495 -0
- package/dist/core/db/schema.js.map +1 -0
- package/dist/core/index.d.ts +22 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +43 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/server/index.d.ts +18 -0
- package/dist/core/server/index.d.ts.map +1 -0
- package/dist/core/server/index.js +47 -0
- package/dist/core/server/index.js.map +1 -0
- package/dist/core/types.d.ts +246 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +8 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils.d.ts +147 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +309 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/emails/config.d.ts +69 -0
- package/dist/emails/config.d.ts.map +1 -0
- package/dist/emails/config.js +147 -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 +110 -0
- package/dist/emails/index.js.map +1 -0
- package/dist/emails/send/admin-auth.d.ts +94 -0
- package/dist/emails/send/admin-auth.d.ts.map +1 -0
- package/dist/emails/send/admin-auth.js +118 -0
- package/dist/emails/send/admin-auth.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 +130 -0
- package/dist/emails/send/auth.js.map +1 -0
- package/dist/emails/send/index.d.ts +12 -0
- package/dist/emails/send/index.d.ts.map +1 -0
- package/dist/emails/send/index.js +18 -0
- package/dist/emails/send/index.js.map +1 -0
- package/dist/emails/send/orders.d.ts +186 -0
- package/dist/emails/send/orders.d.ts.map +1 -0
- package/dist/emails/send/orders.js +258 -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 +116 -0
- package/dist/emails/sender.js.map +1 -0
- package/dist/emails/templates/admin-invite.d.ts +40 -0
- package/dist/emails/templates/admin-invite.d.ts.map +1 -0
- package/dist/emails/templates/admin-invite.js +62 -0
- package/dist/emails/templates/admin-invite.js.map +1 -0
- package/dist/emails/templates/base.d.ts +109 -0
- package/dist/emails/templates/base.d.ts.map +1 -0
- package/dist/emails/templates/base.js +334 -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 +52 -0
- package/dist/emails/templates/email-verification.js.map +1 -0
- package/dist/emails/templates/index.d.ts +16 -0
- package/dist/emails/templates/index.d.ts.map +1 -0
- package/dist/emails/templates/index.js +28 -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 +83 -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 +174 -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 +100 -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 +83 -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 +51 -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 +92 -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 +52 -0
- package/dist/emails/templates/welcome.js.map +1 -0
- package/dist/emails/types.d.ts +229 -0
- package/dist/emails/types.d.ts.map +1 -0
- package/dist/emails/types.js +7 -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 +218 -0
- package/dist/emails/utils.js.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/media/api/delete.d.ts +43 -0
- package/dist/media/api/delete.d.ts.map +1 -0
- package/dist/media/api/delete.js +124 -0
- package/dist/media/api/delete.js.map +1 -0
- package/dist/media/api/index.d.ts +17 -0
- package/dist/media/api/index.d.ts.map +1 -0
- package/dist/media/api/index.js +17 -0
- package/dist/media/api/index.js.map +1 -0
- package/dist/media/api/presign.d.ts +38 -0
- package/dist/media/api/presign.d.ts.map +1 -0
- package/dist/media/api/presign.js +130 -0
- package/dist/media/api/presign.js.map +1 -0
- package/dist/media/components/DropZone.d.ts +18 -0
- package/dist/media/components/DropZone.d.ts.map +1 -0
- package/dist/media/components/DropZone.js +107 -0
- package/dist/media/components/DropZone.js.map +1 -0
- package/dist/media/components/ImageGalleryUpload.d.ts +21 -0
- package/dist/media/components/ImageGalleryUpload.d.ts.map +1 -0
- package/dist/media/components/ImageGalleryUpload.js +193 -0
- package/dist/media/components/ImageGalleryUpload.js.map +1 -0
- package/dist/media/components/ImageUpload.d.ts +17 -0
- package/dist/media/components/ImageUpload.d.ts.map +1 -0
- package/dist/media/components/ImageUpload.js +89 -0
- package/dist/media/components/ImageUpload.js.map +1 -0
- package/dist/media/components/index.d.ts +10 -0
- package/dist/media/components/index.d.ts.map +1 -0
- package/dist/media/components/index.js +9 -0
- package/dist/media/components/index.js.map +1 -0
- package/dist/media/config.d.ts +83 -0
- package/dist/media/config.d.ts.map +1 -0
- package/dist/media/config.js +189 -0
- package/dist/media/config.js.map +1 -0
- package/dist/media/hooks/index.d.ts +8 -0
- package/dist/media/hooks/index.d.ts.map +1 -0
- package/dist/media/hooks/index.js +7 -0
- package/dist/media/hooks/index.js.map +1 -0
- package/dist/media/hooks/useUpload.d.ts +32 -0
- package/dist/media/hooks/useUpload.d.ts.map +1 -0
- package/dist/media/hooks/useUpload.js +260 -0
- package/dist/media/hooks/useUpload.js.map +1 -0
- package/dist/media/index.d.ts +57 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +68 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/server/delete.d.ts +59 -0
- package/dist/media/server/delete.d.ts.map +1 -0
- package/dist/media/server/delete.js +176 -0
- package/dist/media/server/delete.js.map +1 -0
- package/dist/media/server/index.d.ts +10 -0
- package/dist/media/server/index.d.ts.map +1 -0
- package/dist/media/server/index.js +13 -0
- package/dist/media/server/index.js.map +1 -0
- package/dist/media/server/presign.d.ts +57 -0
- package/dist/media/server/presign.d.ts.map +1 -0
- package/dist/media/server/presign.js +112 -0
- package/dist/media/server/presign.js.map +1 -0
- package/dist/media/server/r2-client.d.ts +30 -0
- package/dist/media/server/r2-client.d.ts.map +1 -0
- package/dist/media/server/r2-client.js +76 -0
- package/dist/media/server/r2-client.js.map +1 -0
- package/dist/media/types.d.ts +316 -0
- package/dist/media/types.d.ts.map +1 -0
- package/dist/media/types.js +95 -0
- package/dist/media/types.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 +46 -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 +24 -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 +67 -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 +99 -0
- package/dist/products/api/products.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 +72 -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 +137 -0
- package/dist/products/components/ProductDetails.js.map +1 -0
- package/dist/products/components/ProductGallery.d.ts +30 -0
- package/dist/products/components/ProductGallery.d.ts.map +1 -0
- package/dist/products/components/ProductGallery.js +91 -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 +81 -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 +97 -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 +59 -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 +20 -0
- package/dist/products/components/index.d.ts.map +1 -0
- package/dist/products/components/index.js +15 -0
- package/dist/products/components/index.js.map +1 -0
- package/dist/products/hooks/index.d.ts +10 -0
- package/dist/products/hooks/index.d.ts.map +1 -0
- package/dist/products/hooks/index.js +8 -0
- package/dist/products/hooks/index.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 +87 -0
- package/dist/products/hooks/useProduct.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 +131 -0
- package/dist/products/hooks/useProducts.js.map +1 -0
- package/dist/products/index.d.ts +69 -0
- package/dist/products/index.d.ts.map +1 -0
- package/dist/products/index.js +79 -0
- package/dist/products/index.js.map +1 -0
- package/dist/shipping/index.d.ts +8 -0
- package/dist/shipping/index.d.ts.map +1 -0
- package/dist/shipping/index.js +8 -0
- package/dist/shipping/index.js.map +1 -0
- package/dist/shipping/shippo.d.ts +77 -0
- package/dist/shipping/shippo.d.ts.map +1 -0
- package/dist/shipping/shippo.js +280 -0
- package/dist/shipping/shippo.js.map +1 -0
- package/dist/theme/colors.d.ts +134 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +214 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/theme/defaults.d.ts +133 -0
- package/dist/theme/defaults.d.ts.map +1 -0
- package/dist/theme/defaults.js +210 -0
- package/dist/theme/defaults.js.map +1 -0
- package/dist/theme/fonts.d.ts +28 -0
- package/dist/theme/fonts.d.ts.map +1 -0
- package/dist/theme/fonts.js +55 -0
- package/dist/theme/fonts.js.map +1 -0
- package/dist/theme/generator.d.ts +43 -0
- package/dist/theme/generator.d.ts.map +1 -0
- package/dist/theme/generator.js +272 -0
- package/dist/theme/generator.js.map +1 -0
- package/dist/theme/index.d.ts +23 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +30 -0
- package/dist/theme/index.js.map +1 -0
- package/package.json +2 -2
- /package/dist/admin/{admin-theme.css → styles/admin-theme.css} +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/core/config
|
|
3
|
+
*
|
|
4
|
+
* Configuration system for reading blueprint.json at runtime.
|
|
5
|
+
* The blueprint is generated by Rovela and placed at .rovela/blueprint.json
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Configuration Loading
|
|
11
|
+
// =============================================================================
|
|
12
|
+
let cachedBlueprint = null;
|
|
13
|
+
let cachedConfig = null;
|
|
14
|
+
/**
|
|
15
|
+
* Default blueprint path relative to project root
|
|
16
|
+
*/
|
|
17
|
+
const DEFAULT_BLUEPRINT_PATH = '.rovela/blueprint.json';
|
|
18
|
+
/**
|
|
19
|
+
* Get the blueprint file path, checking environment variable first
|
|
20
|
+
*/
|
|
21
|
+
function getBlueprintPath() {
|
|
22
|
+
return process.env.ROVELA_BLUEPRINT_PATH || path.join(process.cwd(), DEFAULT_BLUEPRINT_PATH);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Load and parse the blueprint.json file
|
|
26
|
+
* @throws Error if blueprint file is not found or invalid
|
|
27
|
+
*/
|
|
28
|
+
export function loadBlueprint() {
|
|
29
|
+
if (cachedBlueprint) {
|
|
30
|
+
return cachedBlueprint;
|
|
31
|
+
}
|
|
32
|
+
const blueprintPath = getBlueprintPath();
|
|
33
|
+
if (!fs.existsSync(blueprintPath)) {
|
|
34
|
+
throw new Error(`Blueprint not found at ${blueprintPath}. ` +
|
|
35
|
+
`Make sure .rovela/blueprint.json exists or set ROVELA_BLUEPRINT_PATH environment variable.`);
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const content = fs.readFileSync(blueprintPath, 'utf-8');
|
|
39
|
+
cachedBlueprint = JSON.parse(content);
|
|
40
|
+
return cachedBlueprint;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new Error(`Failed to parse blueprint at ${blueprintPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the full blueprint object
|
|
48
|
+
* Use this when you need access to all blueprint data (theme, brand, homepage, etc.)
|
|
49
|
+
*/
|
|
50
|
+
export function getBlueprint() {
|
|
51
|
+
return loadBlueprint();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get simplified store configuration
|
|
55
|
+
* Use this for basic store info (name, currency, locale)
|
|
56
|
+
*/
|
|
57
|
+
export function getStoreConfig() {
|
|
58
|
+
if (cachedConfig) {
|
|
59
|
+
return cachedConfig;
|
|
60
|
+
}
|
|
61
|
+
const blueprint = loadBlueprint();
|
|
62
|
+
cachedConfig = {
|
|
63
|
+
name: blueprint.store.name,
|
|
64
|
+
slug: blueprint.store.slug,
|
|
65
|
+
currency: blueprint.store.currency,
|
|
66
|
+
locale: blueprint.store.locale,
|
|
67
|
+
ownerEmail: process.env.STORE_OWNER_EMAIL || '',
|
|
68
|
+
};
|
|
69
|
+
return cachedConfig;
|
|
70
|
+
}
|
|
71
|
+
// =============================================================================
|
|
72
|
+
// Convenience Accessors
|
|
73
|
+
// =============================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Get theme configuration from blueprint
|
|
76
|
+
*/
|
|
77
|
+
export function getTheme() {
|
|
78
|
+
return loadBlueprint().theme;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAsQ5B,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,IAAI,eAAe,GAAqB,IAAI,CAAA;AAC5C,IAAI,YAAY,GAAuB,IAAI,CAAA;AAE3C;;GAEG;AACH,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAEvD;;GAEG;AACH,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAA;AAC9F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,0BAA0B,aAAa,IAAI;YACzC,4FAA4F,CAC/F,CAAA;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACvD,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAA;QAClD,OAAO,eAAe,CAAA;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,gCAAgC,aAAa,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC7G,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,EAAE,CAAA;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;IAEjC,YAAY,GAAG;QACb,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI;QAC1B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI;QAC1B,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ;QAClC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;QAC9B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;KAChD,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,aAAa,EAAE,CAAC,KAAK,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieBanner.d.ts","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieBanner.tsx"],"names":[],"mappings":"AAkCA,wBAAgB,YAAY,mDAwG3B"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* @rovela/sdk/core/cookie-consent/CookieBanner (R021)
|
|
5
|
+
*
|
|
6
|
+
* EDPB-compliant cookie consent banner for the storefront. Two layers:
|
|
7
|
+
*
|
|
8
|
+
* Layer 1 (first visit) — short intro + three equally-prominent
|
|
9
|
+
* buttons: Accept all · Reject all · Customize.
|
|
10
|
+
*
|
|
11
|
+
* Layer 2 (on Customize or via footer preferences link) — three
|
|
12
|
+
* category toggles (Essential=locked-on, Analytics, Marketing) +
|
|
13
|
+
* Save preferences.
|
|
14
|
+
*
|
|
15
|
+
* Compliance notes applied:
|
|
16
|
+
* - No pre-ticked boxes (EDPB §2.7)
|
|
17
|
+
* - Reject All same prominence as Accept All (EDPB §2.2)
|
|
18
|
+
* - No "continued browsing = consent" (EDPB §3.3)
|
|
19
|
+
* - Closing = refusal (×) — not silent acceptance
|
|
20
|
+
* - `aria-live` for screen readers, explicit focus trap in layer 2
|
|
21
|
+
*
|
|
22
|
+
* Styling uses the storefront's own CSS tokens (hsl(var(--accent)),
|
|
23
|
+
* hsl(var(--foreground))) so the banner blends with the merchant's
|
|
24
|
+
* theme. Inline styles on critical layout bits so Tailwind purge or
|
|
25
|
+
* accidental CSS-reset strips can't erase the compliance UX.
|
|
26
|
+
*/
|
|
27
|
+
import * as React from 'react';
|
|
28
|
+
import { useConsentContext } from './CookieConsentProvider';
|
|
29
|
+
// =============================================================================
|
|
30
|
+
// Component
|
|
31
|
+
// =============================================================================
|
|
32
|
+
export function CookieBanner() {
|
|
33
|
+
const { consent, hasDecided, bannerDisabled, preferencesOpen, update, closePreferences, } = useConsentContext();
|
|
34
|
+
// Local state for the customize layer's pending toggles (only
|
|
35
|
+
// committed to the provider when user clicks Save).
|
|
36
|
+
const [pendingAnalytics, setPendingAnalytics] = React.useState(false);
|
|
37
|
+
const [pendingMarketing, setPendingMarketing] = React.useState(false);
|
|
38
|
+
const [showLayer2, setShowLayer2] = React.useState(false);
|
|
39
|
+
// Reset pending toggles to current consent whenever the customize
|
|
40
|
+
// layer opens (from footer link or Layer 1's Customize button).
|
|
41
|
+
React.useEffect(() => {
|
|
42
|
+
if (preferencesOpen || showLayer2) {
|
|
43
|
+
setPendingAnalytics(consent.analytics);
|
|
44
|
+
setPendingMarketing(consent.marketing);
|
|
45
|
+
}
|
|
46
|
+
}, [preferencesOpen, showLayer2, consent.analytics, consent.marketing]);
|
|
47
|
+
// Render gates.
|
|
48
|
+
if (bannerDisabled)
|
|
49
|
+
return null;
|
|
50
|
+
const showLayer1 = !hasDecided && !showLayer2 && !preferencesOpen;
|
|
51
|
+
const showPreferences = showLayer2 || preferencesOpen;
|
|
52
|
+
if (!showLayer1 && !showPreferences)
|
|
53
|
+
return null;
|
|
54
|
+
const handleAcceptAll = () => {
|
|
55
|
+
update({ analytics: true, marketing: true });
|
|
56
|
+
setShowLayer2(false);
|
|
57
|
+
closePreferences();
|
|
58
|
+
};
|
|
59
|
+
const handleRejectAll = () => {
|
|
60
|
+
update({ analytics: false, marketing: false });
|
|
61
|
+
setShowLayer2(false);
|
|
62
|
+
closePreferences();
|
|
63
|
+
};
|
|
64
|
+
const handleSave = () => {
|
|
65
|
+
update({ analytics: pendingAnalytics, marketing: pendingMarketing });
|
|
66
|
+
setShowLayer2(false);
|
|
67
|
+
closePreferences();
|
|
68
|
+
};
|
|
69
|
+
const handleClose = () => {
|
|
70
|
+
// Closing = refusal (EDPB). Explicit user rejection.
|
|
71
|
+
handleRejectAll();
|
|
72
|
+
};
|
|
73
|
+
return (_jsxs("div", { role: "dialog", "aria-modal": "false", "aria-label": "Cookie consent", "aria-live": "polite", className: "rovela-cookie-banner", style: {
|
|
74
|
+
position: 'fixed',
|
|
75
|
+
zIndex: 2147483000,
|
|
76
|
+
// Anchor with iOS safe-area awareness — covers the home-indicator
|
|
77
|
+
// gesture area on iPhone X+ devices. `env()` falls back to `1rem`
|
|
78
|
+
// on browsers that don't support safe-area insets.
|
|
79
|
+
bottom: 'max(1rem, env(safe-area-inset-bottom, 1rem))',
|
|
80
|
+
left: 'max(1rem, env(safe-area-inset-left, 1rem))',
|
|
81
|
+
// `maxWidth` sizes the card; the absence of `right` + `margin: 0 auto`
|
|
82
|
+
// stops the browser from centering it via equal left/right insets.
|
|
83
|
+
// `maxHeight` + `overflowY: auto` is load-bearing — without it the
|
|
84
|
+
// banner can extend off-screen on landscape phones / foldables /
|
|
85
|
+
// short viewports (e.g. Layer 2 ~310px tall on iPhone SE landscape
|
|
86
|
+
// 568×320 → top of card off-screen, close button unreachable).
|
|
87
|
+
maxWidth: `min(${showPreferences ? '28rem' : '26rem'}, calc(100vw - 2rem))`,
|
|
88
|
+
maxHeight: 'calc(100vh - 2rem)',
|
|
89
|
+
overflowY: 'auto',
|
|
90
|
+
background: 'hsl(var(--card, 0 0% 100%))',
|
|
91
|
+
border: '1px solid hsl(var(--border, 220 13% 91%))',
|
|
92
|
+
borderRadius: '0.75rem',
|
|
93
|
+
boxShadow: '0 10px 25px -5px rgba(0,0,0,0.15), 0 8px 10px -6px rgba(0,0,0,0.08)',
|
|
94
|
+
padding: '1.25rem',
|
|
95
|
+
fontFamily: 'inherit',
|
|
96
|
+
color: 'hsl(var(--foreground, 224 71.4% 4.1%))',
|
|
97
|
+
}, children: [showLayer1 && _jsx(Layer1, { onAcceptAll: handleAcceptAll, onRejectAll: handleRejectAll, onCustomize: () => setShowLayer2(true), onClose: handleClose }), showPreferences && _jsx(Layer2, { analytics: pendingAnalytics, marketing: pendingMarketing, onAnalyticsChange: setPendingAnalytics, onMarketingChange: setPendingMarketing, onSave: handleSave, onAcceptAll: handleAcceptAll, onRejectAll: handleRejectAll, onClose: handleClose })] }));
|
|
98
|
+
}
|
|
99
|
+
// =============================================================================
|
|
100
|
+
// Layer 1 — initial banner
|
|
101
|
+
// =============================================================================
|
|
102
|
+
function Layer1({ onAcceptAll, onRejectAll, onCustomize, onClose, }) {
|
|
103
|
+
return (_jsxs("div", { style: { position: 'relative' }, children: [_jsx("button", { type: "button", onClick: onClose, "aria-label": "Close and reject non-essential cookies", style: closeButtonStyle, children: "\u00D7" }), _jsx("h2", { style: titleStyle, children: "Cookie preferences" }), _jsxs("p", { style: bodyStyle, children: ["We use cookies to make this store work and, with your consent, to understand how it's used and show you relevant content. You can choose which categories to allow.", ' ', _jsx("a", { href: "/privacy#cookies", style: linkStyle, target: "_blank", rel: "noopener noreferrer", children: "Learn more" })] }), _jsxs("div", { style: {
|
|
104
|
+
display: 'flex',
|
|
105
|
+
flexWrap: 'wrap',
|
|
106
|
+
gap: '0.5rem',
|
|
107
|
+
marginTop: '1rem',
|
|
108
|
+
}, children: [_jsx("button", { type: "button", onClick: onAcceptAll, style: primaryButtonStyle, children: "Accept all" }), _jsx("button", { type: "button", onClick: onRejectAll, style: secondaryButtonStyle, children: "Reject all" }), _jsx("button", { type: "button", onClick: onCustomize, style: tertiaryButtonStyle, children: "Customize" })] })] }));
|
|
109
|
+
}
|
|
110
|
+
// =============================================================================
|
|
111
|
+
// Layer 2 — category preferences
|
|
112
|
+
// =============================================================================
|
|
113
|
+
function Layer2({ analytics, marketing, onAnalyticsChange, onMarketingChange, onSave, onAcceptAll, onRejectAll, onClose, }) {
|
|
114
|
+
return (_jsxs("div", { style: { position: 'relative' }, children: [_jsx("button", { type: "button", onClick: onClose, "aria-label": "Close without saving", style: closeButtonStyle, children: "\u00D7" }), _jsx("h2", { style: titleStyle, children: "Cookie preferences" }), _jsx("p", { style: bodyStyle, children: "Choose which categories of cookies you allow." }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '0.75rem', marginTop: '0.75rem' }, children: [_jsx(CategoryRow, { title: "Essential", description: "Required for core features like cart and login. Always on.", checked: true, locked: true }), _jsx(CategoryRow, { title: "Analytics", description: "Help us understand how the store is used so we can improve it.", checked: analytics, onChange: onAnalyticsChange }), _jsx(CategoryRow, { title: "Marketing", description: "Used to measure ads and show you relevant content across sites.", checked: marketing, onChange: onMarketingChange })] }), _jsxs("div", { style: {
|
|
115
|
+
display: 'flex',
|
|
116
|
+
flexWrap: 'wrap',
|
|
117
|
+
gap: '0.5rem',
|
|
118
|
+
marginTop: '1rem',
|
|
119
|
+
justifyContent: 'space-between',
|
|
120
|
+
}, children: [_jsxs("div", { style: { display: 'flex', gap: '0.5rem', flexWrap: 'wrap' }, children: [_jsx("button", { type: "button", onClick: onAcceptAll, style: tertiaryButtonStyle, children: "Accept all" }), _jsx("button", { type: "button", onClick: onRejectAll, style: tertiaryButtonStyle, children: "Reject all" })] }), _jsx("button", { type: "button", onClick: onSave, style: { ...primaryButtonStyle, flex: '0 1 auto' }, children: "Save preferences" })] })] }));
|
|
121
|
+
}
|
|
122
|
+
function CategoryRow({ title, description, checked, onChange, locked, }) {
|
|
123
|
+
return (_jsxs("div", { style: {
|
|
124
|
+
display: 'flex',
|
|
125
|
+
alignItems: 'flex-start',
|
|
126
|
+
justifyContent: 'space-between',
|
|
127
|
+
gap: '0.75rem',
|
|
128
|
+
padding: '0.75rem',
|
|
129
|
+
border: '1px solid hsl(var(--border, 220 13% 91%))',
|
|
130
|
+
borderRadius: '0.5rem',
|
|
131
|
+
}, children: [_jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [_jsx("div", { style: { fontWeight: 600, fontSize: '0.875rem' }, children: title }), _jsx("p", { style: {
|
|
132
|
+
margin: '0.125rem 0 0',
|
|
133
|
+
fontSize: '0.8125rem',
|
|
134
|
+
lineHeight: 1.45,
|
|
135
|
+
color: 'hsl(var(--muted-foreground, 215 16% 47%))',
|
|
136
|
+
}, children: description })] }), _jsx("label", { style: {
|
|
137
|
+
// 44×44 hit area meets WCAG / Apple HIG / Material guidance.
|
|
138
|
+
// Negative margin cancels the parent CategoryRow's padding so
|
|
139
|
+
// the visual layout is unchanged — only the underlying tap
|
|
140
|
+
// area expands. flexShrink: 0 protects the checkbox from being
|
|
141
|
+
// squeezed when localized title/description text is long.
|
|
142
|
+
display: 'inline-flex',
|
|
143
|
+
alignItems: 'center',
|
|
144
|
+
justifyContent: 'center',
|
|
145
|
+
width: '2.75rem',
|
|
146
|
+
height: '2.75rem',
|
|
147
|
+
margin: '-0.75rem',
|
|
148
|
+
flexShrink: 0,
|
|
149
|
+
cursor: locked ? 'not-allowed' : 'pointer',
|
|
150
|
+
opacity: locked ? 0.6 : 1,
|
|
151
|
+
}, children: _jsx("input", { type: "checkbox", checked: checked, disabled: locked, onChange: (e) => onChange?.(e.target.checked), "aria-label": `Allow ${title.toLowerCase()} cookies`, style: {
|
|
152
|
+
width: '1.125rem',
|
|
153
|
+
height: '1.125rem',
|
|
154
|
+
accentColor: 'hsl(var(--accent, 142 71% 45%))',
|
|
155
|
+
cursor: locked ? 'not-allowed' : 'pointer',
|
|
156
|
+
} }) })] }));
|
|
157
|
+
}
|
|
158
|
+
// =============================================================================
|
|
159
|
+
// Inline styles — kept together so CSS-reset strips can't wreck them
|
|
160
|
+
// =============================================================================
|
|
161
|
+
const titleStyle = {
|
|
162
|
+
margin: 0,
|
|
163
|
+
// Right padding clears space for the close button (now positioned
|
|
164
|
+
// inside the card at top-right with a 44×44 hit area), so the title
|
|
165
|
+
// never bleeds underneath it.
|
|
166
|
+
paddingRight: '2.5rem',
|
|
167
|
+
fontSize: '1rem',
|
|
168
|
+
fontWeight: 600,
|
|
169
|
+
lineHeight: 1.3,
|
|
170
|
+
};
|
|
171
|
+
const bodyStyle = {
|
|
172
|
+
margin: '0.375rem 0 0',
|
|
173
|
+
fontSize: '0.875rem',
|
|
174
|
+
lineHeight: 1.5,
|
|
175
|
+
color: 'hsl(var(--muted-foreground, 215 16% 47%))',
|
|
176
|
+
};
|
|
177
|
+
const linkStyle = {
|
|
178
|
+
color: 'hsl(var(--accent, 142 71% 45%))',
|
|
179
|
+
textDecoration: 'underline',
|
|
180
|
+
textUnderlineOffset: '2px',
|
|
181
|
+
};
|
|
182
|
+
const primaryButtonStyle = {
|
|
183
|
+
flex: '1 1 auto',
|
|
184
|
+
padding: '0.5rem 1rem',
|
|
185
|
+
fontSize: '0.875rem',
|
|
186
|
+
fontWeight: 500,
|
|
187
|
+
color: 'hsl(var(--accent-foreground, 0 0% 100%))',
|
|
188
|
+
background: 'hsl(var(--accent, 142 71% 45%))',
|
|
189
|
+
border: 'none',
|
|
190
|
+
borderRadius: '0.5rem',
|
|
191
|
+
cursor: 'pointer',
|
|
192
|
+
};
|
|
193
|
+
const secondaryButtonStyle = {
|
|
194
|
+
flex: '1 1 auto',
|
|
195
|
+
padding: '0.5rem 1rem',
|
|
196
|
+
fontSize: '0.875rem',
|
|
197
|
+
fontWeight: 500,
|
|
198
|
+
color: 'hsl(var(--foreground, 224 71.4% 4.1%))',
|
|
199
|
+
background: 'hsl(var(--muted, 220 14% 96%))',
|
|
200
|
+
border: '1px solid hsl(var(--border, 220 13% 91%))',
|
|
201
|
+
borderRadius: '0.5rem',
|
|
202
|
+
cursor: 'pointer',
|
|
203
|
+
};
|
|
204
|
+
const tertiaryButtonStyle = {
|
|
205
|
+
// `flex: 1 1 auto` (was 0 1 auto) so wrapped buttons grow to fill their
|
|
206
|
+
// row at narrow widths instead of leaving an awkward half-empty line.
|
|
207
|
+
// At wide widths flex-wrap doesn't trigger so behavior is identical
|
|
208
|
+
// to before.
|
|
209
|
+
flex: '1 1 auto',
|
|
210
|
+
padding: '0.5rem 1rem',
|
|
211
|
+
fontSize: '0.875rem',
|
|
212
|
+
fontWeight: 500,
|
|
213
|
+
color: 'hsl(var(--foreground, 224 71.4% 4.1%))',
|
|
214
|
+
background: 'transparent',
|
|
215
|
+
border: '1px solid hsl(var(--border, 220 13% 91%))',
|
|
216
|
+
borderRadius: '0.5rem',
|
|
217
|
+
cursor: 'pointer',
|
|
218
|
+
};
|
|
219
|
+
const closeButtonStyle = {
|
|
220
|
+
position: 'absolute',
|
|
221
|
+
// Moved INSIDE the card (was top/right: -0.25rem outside the corner).
|
|
222
|
+
// The previous outside-position meant the close button was the first
|
|
223
|
+
// thing clipped when the card extended to the viewport edge — making
|
|
224
|
+
// the banner undismissable on short viewports.
|
|
225
|
+
top: '0.5rem',
|
|
226
|
+
right: '0.5rem',
|
|
227
|
+
// 44×44 hit area meets WCAG/Apple HIG/Material guidance. The visible
|
|
228
|
+
// × glyph is sized via fontSize; the surrounding tap area is the box.
|
|
229
|
+
width: '2.75rem',
|
|
230
|
+
height: '2.75rem',
|
|
231
|
+
display: 'flex',
|
|
232
|
+
alignItems: 'center',
|
|
233
|
+
justifyContent: 'center',
|
|
234
|
+
padding: 0,
|
|
235
|
+
fontSize: '1.5rem',
|
|
236
|
+
lineHeight: 1,
|
|
237
|
+
color: 'hsl(var(--muted-foreground, 215 16% 47%))',
|
|
238
|
+
background: 'transparent',
|
|
239
|
+
border: 'none',
|
|
240
|
+
borderRadius: '0.375rem',
|
|
241
|
+
cursor: 'pointer',
|
|
242
|
+
};
|
|
243
|
+
//# sourceMappingURL=CookieBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieBanner.js","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieBanner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/core/cookie-consent/CookieConsentProvider (R021)
|
|
3
|
+
*
|
|
4
|
+
* Stores + shares cookie-consent state across the storefront. Drives the
|
|
5
|
+
* `<CookieBanner>` component and the `useCookieConsent()` hook.
|
|
6
|
+
*
|
|
7
|
+
* Design notes:
|
|
8
|
+
* - Persistence is localStorage-only. EDPB "consent record" expectation
|
|
9
|
+
* is satisfied for SMB scale; server-side logging is an enterprise
|
|
10
|
+
* feature and out of scope.
|
|
11
|
+
* - Re-prompts after 12 months (industry-converged interpretation of
|
|
12
|
+
* the EDPB Task Force dark-pattern analysis) or when `VERSION` bumps.
|
|
13
|
+
* - When the store admin disables the banner entirely (master toggle
|
|
14
|
+
* off), the provider short-circuits and grants all categories so
|
|
15
|
+
* consumer scripts don't stall. This matches the merchant's stated
|
|
16
|
+
* intent — if they've disabled the banner, they've accepted the risk
|
|
17
|
+
* and want scripts to run unconditionally.
|
|
18
|
+
*/
|
|
19
|
+
import * as React from 'react';
|
|
20
|
+
import type { ConsentCategories, ConsentRecord } from './types';
|
|
21
|
+
interface CookieConsentContextValue {
|
|
22
|
+
/** The current consent record. `decidedAt === null` means the user
|
|
23
|
+
* has not yet chosen. */
|
|
24
|
+
consent: ConsentRecord;
|
|
25
|
+
/** True once the user has made an explicit choice in-window. Scripts
|
|
26
|
+
* should gate on `consent.analytics` / `consent.marketing` instead of
|
|
27
|
+
* this — this is mostly for the banner's own render logic. */
|
|
28
|
+
hasDecided: boolean;
|
|
29
|
+
/** True when the master toggle is off (admin disabled banner). Scripts
|
|
30
|
+
* treat this as implicit-grant; the banner never renders. */
|
|
31
|
+
bannerDisabled: boolean;
|
|
32
|
+
/** Set full consent (essentials always on). Used by banner's Accept /
|
|
33
|
+
* Reject / Save actions. */
|
|
34
|
+
update: (categories: Partial<ConsentCategories>) => void;
|
|
35
|
+
/** Open the preferences layer of the banner. Triggered by the footer
|
|
36
|
+
* "Cookie preferences" link. */
|
|
37
|
+
openPreferences: () => void;
|
|
38
|
+
/** Whether the preferences layer should currently be shown. The
|
|
39
|
+
* banner reads this; external code just calls `openPreferences`. */
|
|
40
|
+
preferencesOpen: boolean;
|
|
41
|
+
/** Banner uses this to close its own preferences layer after Save. */
|
|
42
|
+
closePreferences: () => void;
|
|
43
|
+
}
|
|
44
|
+
export interface CookieConsentProviderProps {
|
|
45
|
+
/** Master toggle from store_settings.cookie_banner_enabled. When
|
|
46
|
+
* `false`, the banner never renders and scripts get implicit grant. */
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
}
|
|
50
|
+
export declare function CookieConsentProvider({ enabled, children, }: CookieConsentProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
export declare function useConsentContext(): CookieConsentContextValue;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=CookieConsentProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieConsentProvider.d.ts","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieConsentProvider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAsB/D,UAAU,yBAAyB;IACjC;8BAC0B;IAC1B,OAAO,EAAE,aAAa,CAAA;IACtB;;mEAE+D;IAC/D,UAAU,EAAE,OAAO,CAAA;IACnB;kEAC8D;IAC9D,cAAc,EAAE,OAAO,CAAA;IACvB;iCAC6B;IAC7B,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;IACxD;qCACiC;IACjC,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B;yEACqE;IACrE,eAAe,EAAE,OAAO,CAAA;IACxB,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAC7B;AA6ED,MAAM,WAAW,0BAA0B;IACzC;4EACwE;IACxE,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,QAAQ,GACT,EAAE,0BAA0B,2CAgE5B;AAMD,wBAAgB,iBAAiB,IAAI,yBAAyB,CAQ7D"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* @rovela/sdk/core/cookie-consent/CookieConsentProvider (R021)
|
|
5
|
+
*
|
|
6
|
+
* Stores + shares cookie-consent state across the storefront. Drives the
|
|
7
|
+
* `<CookieBanner>` component and the `useCookieConsent()` hook.
|
|
8
|
+
*
|
|
9
|
+
* Design notes:
|
|
10
|
+
* - Persistence is localStorage-only. EDPB "consent record" expectation
|
|
11
|
+
* is satisfied for SMB scale; server-side logging is an enterprise
|
|
12
|
+
* feature and out of scope.
|
|
13
|
+
* - Re-prompts after 12 months (industry-converged interpretation of
|
|
14
|
+
* the EDPB Task Force dark-pattern analysis) or when `VERSION` bumps.
|
|
15
|
+
* - When the store admin disables the banner entirely (master toggle
|
|
16
|
+
* off), the provider short-circuits and grants all categories so
|
|
17
|
+
* consumer scripts don't stall. This matches the merchant's stated
|
|
18
|
+
* intent — if they've disabled the banner, they've accepted the risk
|
|
19
|
+
* and want scripts to run unconditionally.
|
|
20
|
+
*/
|
|
21
|
+
import * as React from 'react';
|
|
22
|
+
// =============================================================================
|
|
23
|
+
// Constants
|
|
24
|
+
// =============================================================================
|
|
25
|
+
/** localStorage key for the stored consent record. */
|
|
26
|
+
const STORAGE_KEY = 'rovela-cookie-consent';
|
|
27
|
+
/** Schema version — bump when adding a category or changing what an
|
|
28
|
+
* existing category covers; existing stored consent gets invalidated
|
|
29
|
+
* and the user is re-prompted. */
|
|
30
|
+
const VERSION = 1;
|
|
31
|
+
/** Re-prompt after this many days. 365 matches the DPA industry-
|
|
32
|
+
* converged window (12 months). */
|
|
33
|
+
const REPROMPT_AFTER_DAYS = 365;
|
|
34
|
+
const CookieConsentContext = React.createContext(null);
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Defaults
|
|
37
|
+
// =============================================================================
|
|
38
|
+
function defaultConsent() {
|
|
39
|
+
return {
|
|
40
|
+
essential: true,
|
|
41
|
+
analytics: false,
|
|
42
|
+
marketing: false,
|
|
43
|
+
decidedAt: null,
|
|
44
|
+
version: VERSION,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function fullGrant() {
|
|
48
|
+
return {
|
|
49
|
+
essential: true,
|
|
50
|
+
analytics: true,
|
|
51
|
+
marketing: true,
|
|
52
|
+
decidedAt: new Date().toISOString(),
|
|
53
|
+
version: VERSION,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// =============================================================================
|
|
57
|
+
// Persistence helpers
|
|
58
|
+
// =============================================================================
|
|
59
|
+
function readStoredConsent() {
|
|
60
|
+
if (typeof window === 'undefined')
|
|
61
|
+
return null;
|
|
62
|
+
try {
|
|
63
|
+
const raw = window.localStorage.getItem(STORAGE_KEY);
|
|
64
|
+
if (!raw)
|
|
65
|
+
return null;
|
|
66
|
+
const parsed = JSON.parse(raw);
|
|
67
|
+
// Version bump invalidates old consent.
|
|
68
|
+
if (parsed.version !== VERSION)
|
|
69
|
+
return null;
|
|
70
|
+
// Decision expired (>12 months) → re-prompt.
|
|
71
|
+
if (parsed.decidedAt) {
|
|
72
|
+
const ageDays = (Date.now() - new Date(parsed.decidedAt).getTime()) /
|
|
73
|
+
(1000 * 60 * 60 * 24);
|
|
74
|
+
if (ageDays > REPROMPT_AFTER_DAYS)
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
essential: true,
|
|
79
|
+
analytics: !!parsed.analytics,
|
|
80
|
+
marketing: !!parsed.marketing,
|
|
81
|
+
decidedAt: parsed.decidedAt ?? null,
|
|
82
|
+
version: VERSION,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function writeStoredConsent(record) {
|
|
90
|
+
if (typeof window === 'undefined')
|
|
91
|
+
return;
|
|
92
|
+
try {
|
|
93
|
+
window.localStorage.setItem(STORAGE_KEY, JSON.stringify(record));
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Private-mode localStorage throws. Ignore — in-memory state is fine
|
|
97
|
+
// for the session; user re-prompts next visit.
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export function CookieConsentProvider({ enabled, children, }) {
|
|
101
|
+
// SSR-safe initial state — provider always starts with "not decided";
|
|
102
|
+
// the post-mount effect reads localStorage and updates. Means we don't
|
|
103
|
+
// hydration-mismatch between server and client.
|
|
104
|
+
const [consent, setConsent] = React.useState(defaultConsent);
|
|
105
|
+
const [hydrated, setHydrated] = React.useState(false);
|
|
106
|
+
const [preferencesOpen, setPreferencesOpen] = React.useState(false);
|
|
107
|
+
// On mount, read the stored decision (if any within re-prompt window).
|
|
108
|
+
React.useEffect(() => {
|
|
109
|
+
if (!enabled) {
|
|
110
|
+
// Admin disabled the banner — grant everything so analytics/
|
|
111
|
+
// marketing scripts can run. This is the merchant's call.
|
|
112
|
+
setConsent(fullGrant());
|
|
113
|
+
setHydrated(true);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const stored = readStoredConsent();
|
|
117
|
+
if (stored)
|
|
118
|
+
setConsent(stored);
|
|
119
|
+
setHydrated(true);
|
|
120
|
+
}, [enabled]);
|
|
121
|
+
const update = React.useCallback((categories) => {
|
|
122
|
+
const next = {
|
|
123
|
+
essential: true,
|
|
124
|
+
analytics: categories.analytics ?? false,
|
|
125
|
+
marketing: categories.marketing ?? false,
|
|
126
|
+
decidedAt: new Date().toISOString(),
|
|
127
|
+
version: VERSION,
|
|
128
|
+
};
|
|
129
|
+
setConsent(next);
|
|
130
|
+
writeStoredConsent(next);
|
|
131
|
+
}, []);
|
|
132
|
+
const openPreferences = React.useCallback(() => {
|
|
133
|
+
setPreferencesOpen(true);
|
|
134
|
+
}, []);
|
|
135
|
+
const closePreferences = React.useCallback(() => {
|
|
136
|
+
setPreferencesOpen(false);
|
|
137
|
+
}, []);
|
|
138
|
+
const value = React.useMemo(() => ({
|
|
139
|
+
consent,
|
|
140
|
+
hasDecided: consent.decidedAt !== null,
|
|
141
|
+
bannerDisabled: !enabled,
|
|
142
|
+
update,
|
|
143
|
+
openPreferences,
|
|
144
|
+
preferencesOpen,
|
|
145
|
+
closePreferences,
|
|
146
|
+
}), [consent, enabled, update, openPreferences, preferencesOpen, closePreferences]);
|
|
147
|
+
// Don't flash children with stale SSR state → the first client render
|
|
148
|
+
// is default (not-decided) which is safe: no scripts gate on it yet.
|
|
149
|
+
void hydrated;
|
|
150
|
+
return (_jsx(CookieConsentContext.Provider, { value: value, children: children }));
|
|
151
|
+
}
|
|
152
|
+
// =============================================================================
|
|
153
|
+
// Internal hook
|
|
154
|
+
// =============================================================================
|
|
155
|
+
export function useConsentContext() {
|
|
156
|
+
const ctx = React.useContext(CookieConsentContext);
|
|
157
|
+
if (!ctx) {
|
|
158
|
+
throw new Error('useCookieConsent must be used within <CookieConsentProvider>');
|
|
159
|
+
}
|
|
160
|
+
return ctx;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=CookieConsentProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieConsentProvider.js","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookieConsentProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/core/cookie-consent/CookiePreferencesLink (R021)
|
|
3
|
+
*
|
|
4
|
+
* Persistent "Cookie preferences" link/button for the storefront footer.
|
|
5
|
+
* Clicking it re-opens the banner's customize layer so users can change
|
|
6
|
+
* their decision at any time — fulfills the GDPR Art. 7(3) "withdrawal
|
|
7
|
+
* as easy as consent" requirement.
|
|
8
|
+
*
|
|
9
|
+
* Accepts any standard button attributes so the merchant's storefront
|
|
10
|
+
* can style it to match the footer (or use the default unstyled look).
|
|
11
|
+
*/
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
export type CookiePreferencesLinkProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'type'>;
|
|
14
|
+
export declare function CookiePreferencesLink({ children, ...props }: CookiePreferencesLinkProps): import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
//# sourceMappingURL=CookiePreferencesLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookiePreferencesLink.d.ts","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookiePreferencesLink.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,SAAS,GAAG,MAAM,CACnB,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAA+B,EAC/B,GAAG,KAAK,EACT,EAAE,0BAA0B,kDAY5B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useConsentContext } from './CookieConsentProvider';
|
|
4
|
+
export function CookiePreferencesLink({ children = 'Cookie preferences', ...props }) {
|
|
5
|
+
const { openPreferences, bannerDisabled } = useConsentContext();
|
|
6
|
+
// If the merchant has disabled the banner entirely, there are no
|
|
7
|
+
// preferences to manage — don't render the link at all.
|
|
8
|
+
if (bannerDisabled)
|
|
9
|
+
return null;
|
|
10
|
+
return (_jsx("button", { type: "button", onClick: openPreferences, ...props, children: children }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=CookiePreferencesLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookiePreferencesLink.js","sourceRoot":"","sources":["../../../src/core/cookie-consent/CookiePreferencesLink.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAeZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAO3D,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,GAAG,oBAAoB,EAC/B,GAAG,KAAK,EACmB;IAC3B,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAA;IAE/D,iEAAiE;IACjE,wDAAwD;IACxD,IAAI,cAAc;QAAE,OAAO,IAAI,CAAA;IAE/B,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,eAAe,KAAM,KAAK,YACtD,QAAQ,GACF,CACV,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/core/cookie-consent
|
|
3
|
+
*
|
|
4
|
+
* EDPB-compliant cookie consent primitives for Rovela storefronts
|
|
5
|
+
* (R021). Public surface:
|
|
6
|
+
*
|
|
7
|
+
* - `<CookieConsentProvider>` — wraps the storefront in `app/layout`.
|
|
8
|
+
* - `<CookieBanner />` — the layered consent UI.
|
|
9
|
+
* - `<CookiePreferencesLink />` — footer link to re-open preferences.
|
|
10
|
+
* - `useCookieConsent()` — hook for gating scripts on category grant.
|
|
11
|
+
*/
|
|
12
|
+
export { CookieConsentProvider, type CookieConsentProviderProps, } from './CookieConsentProvider';
|
|
13
|
+
export { CookieBanner } from './CookieBanner';
|
|
14
|
+
export { CookiePreferencesLink, type CookiePreferencesLinkProps, } from './CookiePreferencesLink';
|
|
15
|
+
export { useCookieConsent, type UseCookieConsentReturn } from './useCookieConsent';
|
|
16
|
+
export type { ConsentCategories, ConsentRecord, CategoryKey } from './types';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/cookie-consent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAClF,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
|