@nextblock-cms/ecom 0.19.0 → 0.19.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/index.cjs.js +1 -1
- package/index.es.js +26 -25
- package/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +41 -45
- package/lib/PaymentReadinessProvider.cjs.js +1 -1
- package/lib/PaymentReadinessProvider.es.js +15 -19
- package/lib/cart-store.cjs.js +1 -1
- package/lib/cart-store.d.ts +4 -0
- package/lib/cart-store.es.js +77 -69
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +44 -62
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +50 -78
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +154 -381
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +143 -297
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +21 -47
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +814 -1614
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +104 -155
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +14 -33
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +264 -672
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +46 -125
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +45 -125
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +148 -487
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.d.ts +4 -1
- package/lib/components/InvoiceViewerShell.es.js +59 -142
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.d.ts +3 -1
- package/lib/components/ProductCard.es.js +128 -242
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +311 -652
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.d.ts +2 -0
- package/lib/components/ProductGallery.es.js +37 -66
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +23 -32
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +118 -231
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +111 -294
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +120 -181
- package/lib/invoice.cjs.js +1 -1
- package/lib/invoice.d.ts +1 -1
- package/lib/invoice.es.js +6 -5
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +47 -87
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +10 -14
- package/lib/trials.cjs.js +1 -1
- package/lib/trials.d.ts +10 -3
- package/lib/trials.es.js +28 -21
- package/lib/types.d.ts +2 -0
- package/lib/use-price-formatter.cjs.js +1 -0
- package/lib/use-price-formatter.d.ts +11 -0
- package/lib/use-price-formatter.es.js +13 -0
- package/lib/variation-utils.cjs.js +1 -1
- package/lib/variation-utils.d.ts +10 -0
- package/lib/variation-utils.es.js +139 -123
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),f=require("react"),D=require("next/navigation"),i=require("@nextblock-cms/ui"),x=require("lucide-react"),j=require("react-dom");function v({initialEnabledProviders:s,configStatus:r,credentials:t,saveAction:l,saveCredentialsAction:o}){const a=D.useRouter(),[d,b]=f.useTransition(),c=r.stripe.hasKeys,N=r.freemius.hasKeys,[u,y]=f.useState(()=>({stripe:s.stripe&&c,freemius:s.freemius&&N}));function C(){const n=new FormData;n.set("stripe_enabled",u.stripe?"true":"false"),n.set("freemius_enabled",u.freemius?"true":"false"),b(async()=>{await l(n),a.refresh()})}return e.jsxDEV("div",{className:"max-w-7xl space-y-4 p-4 sm:p-6",children:[e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV("h1",{className:"text-2xl font-bold tracking-tight",children:"Payment Settings"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:79,columnNumber:9},this),e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Enter your provider API keys, then enable the providers your store needs. Physical products use Stripe and digital products use Freemius."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:78,columnNumber:7},this),e.jsxDEV("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)]",children:[e.jsxDEV(P,{credentials:t,saveAction:o},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:87,columnNumber:9},this),e.jsxDEV(i.Card,{className:"flex h-full flex-col",children:[e.jsxDEV(i.CardHeader,{className:"pb-3",children:[e.jsxDEV(i.CardTitle,{children:"Payment Providers"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:94,columnNumber:13},this),e.jsxDEV(i.CardDescription,{children:"You can run both providers at the same time. Each product picks its provider from its product type."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:95,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:93,columnNumber:11},this),e.jsxDEV(i.CardContent,{className:"flex flex-1 flex-col gap-4",children:[e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV(h,{id:"stripe-enabled",label:"Stripe for Physical Products",description:"Use Stripe Checkout for physical merchandise and other shippable goods.",checked:u.stripe,disabled:!c,onCheckedChange:n=>y(p=>({...p,stripe:n})),ready:c,children:c?e.jsxDEV("div",{className:"mt-2 flex items-center gap-2 text-xs text-green-600",children:[e.jsxDEV(x.CheckCircle2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:125,columnNumber:21},this),e.jsxDEV("span",{children:"Ready for physical product checkout"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:126,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:124,columnNumber:19},this):e.jsxDEV(k,{provider:"Stripe",missingKeys:r.stripe.missing,docsUrl:"https://dashboard.stripe.com/apikeys",docsLabel:"Stripe API keys"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:117,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:102,columnNumber:15},this),e.jsxDEV(h,{id:"freemius-enabled",label:"Freemius for Digital Products",description:"Use Freemius for software licenses, SaaS plans, and other digital products.",checked:u.freemius,disabled:!N,onCheckedChange:n=>y(p=>({...p,freemius:n})),ready:N,children:N?e.jsxDEV("div",{className:"mt-2 flex items-center gap-2 text-xs text-green-600",children:[e.jsxDEV(x.CheckCircle2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:154,columnNumber:21},this),e.jsxDEV("span",{children:"Ready for digital product checkout"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:155,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:153,columnNumber:19},this):e.jsxDEV(k,{provider:"Freemius",missingKeys:r.freemius.missing,docsUrl:"https://dashboard.freemius.com/",docsLabel:"Freemius credentials"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:146,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:131,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:101,columnNumber:13},this),e.jsxDEV("div",{className:"mt-auto flex justify-end border-t pt-4",children:e.jsxDEV(i.Button,{type:"button",disabled:d,onClick:C,children:d?"Saving...":"Save Changes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:162,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:161,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:100,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:92,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:86,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:77,columnNumber:5},this)}function g(){const{pending:s}=j.useFormStatus();return e.jsxDEV(i.Button,{type:"submit",disabled:s,children:s?"Saving...":"Save Changes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:181,columnNumber:5},this)}function m({id:s,label:r,type:t="text",defaultValue:l,placeholder:o,hint:a}){return e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(i.Label,{htmlFor:s,className:"text-xs",children:r},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:204,columnNumber:7},this),e.jsxDEV(i.Input,{id:s,name:s,type:t,defaultValue:l,placeholder:o,autoComplete:t==="password"?"new-password":"off"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:207,columnNumber:7},this),a&&e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:a},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:215,columnNumber:16},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:203,columnNumber:5},this)}function P({credentials:s,saveAction:r}){const t="•••••••• (stored — leave blank to keep)";return e.jsxDEV(i.Card,{className:"flex h-full flex-col",children:[e.jsxDEV(i.CardHeader,{className:"pb-3",children:[e.jsxDEV(i.CardTitle,{children:"Provider API Keys"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:232,columnNumber:9},this),e.jsxDEV(i.CardDescription,{children:["Keys are encrypted at rest and used DB-first (these override any"," ",e.jsxDEV("code",{children:".env"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:235,columnNumber:11},this)," values). Leave a secret blank to keep the stored value."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:233,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:231,columnNumber:7},this),e.jsxDEV(i.CardContent,{className:"flex flex-1 flex-col",children:e.jsxDEV("form",{action:r,className:"flex flex-1 flex-col gap-4",children:[e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("h3",{className:"text-sm font-semibold",children:"Stripe (physical products)"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:242,columnNumber:13},this),e.jsxDEV("details",{className:"rounded-md border border-dashed px-3 py-2 text-xs text-muted-foreground",children:[e.jsxDEV("summary",{className:"cursor-pointer font-medium text-foreground",children:"Stripe webhook setup"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:246,columnNumber:15},this),e.jsxDEV("div",{className:"mt-2 space-y-1.5",children:[e.jsxDEV("p",{children:["In Stripe, add"," ",e.jsxDEV("code",{children:"https://your-domain/api/webhooks/stripe"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:252,columnNumber:19},this)," as a webhook endpoint and paste its ",e.jsxDEV("code",{children:"whsec_…"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:253,columnNumber:50},this)," signing secret below."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:250,columnNumber:17},this),e.jsxDEV("p",{children:["Locally, run"," ",e.jsxDEV("code",{children:"stripe listen --forward-to localhost:4200/api/webhooks/stripe"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:258,columnNumber:19},this)," ","or ",e.jsxDEV("code",{children:"npm run stripe"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:262,columnNumber:22},this),"."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:256,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:249,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:245,columnNumber:13},this),e.jsxDEV("div",{className:"grid gap-3 sm:grid-cols-3",children:[e.jsxDEV(m,{id:"stripe_publishableKey",label:"Publishable key",defaultValue:s.stripe.publishableKey,placeholder:"pk_live_…"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:267,columnNumber:15},this),e.jsxDEV(m,{id:"stripe_secretKey",label:"Secret key",type:"password",placeholder:s.stripe.hasSecretKey?t:"sk_live_…"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:273,columnNumber:15},this),e.jsxDEV(m,{id:"stripe_webhookSecret",label:"Webhook signing secret",type:"password",placeholder:s.stripe.hasWebhookSecret?t:"whsec_…"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:283,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:266,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:241,columnNumber:11},this),e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("h3",{className:"text-sm font-semibold",children:"Freemius (digital products)"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:297,columnNumber:13},this),e.jsxDEV("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[e.jsxDEV(m,{id:"freemius_developerId",label:"Developer ID",defaultValue:s.freemius.developerId},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:301,columnNumber:15},this),e.jsxDEV(m,{id:"freemius_productId",label:"Product ID",defaultValue:s.freemius.productId},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:306,columnNumber:15},this),e.jsxDEV(m,{id:"freemius_publicKey",label:"Public key",defaultValue:s.freemius.publicKey,placeholder:"pk_…"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:311,columnNumber:15},this),e.jsxDEV(m,{id:"freemius_secretKey",label:"Secret key",type:"password",placeholder:s.freemius.hasSecretKey?t:"sk_…"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:317,columnNumber:15},this),e.jsxDEV(m,{id:"freemius_apiKey",label:"API key",type:"password",placeholder:s.freemius.hasApiKey?t:"API key"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:325,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:300,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:296,columnNumber:11},this),s.envFallbackActive&&e.jsxDEV("p",{className:"text-xs text-amber-700",children:"Stripe keys are currently read from environment variables. Saving here moves them into the database and takes precedence."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:337,columnNumber:13},this),e.jsxDEV("div",{className:"mt-auto flex justify-end border-t pt-4",children:e.jsxDEV(g,{},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:344,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:343,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:240,columnNumber:9},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:239,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:230,columnNumber:5},this)}function h({id:s,label:r,description:t,checked:l,disabled:o,ready:a,onCheckedChange:d,children:b}){return e.jsxDEV("div",{className:"rounded-md border p-3",children:e.jsxDEV("div",{className:"flex items-start gap-3",children:[e.jsxDEV(i.Checkbox,{id:s,checked:l,disabled:o,onCheckedChange:c=>d(!!c),className:"mt-1"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:374,columnNumber:9},this),e.jsxDEV("div",{className:"grid gap-1.5 leading-none w-full",children:[e.jsxDEV("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsxDEV(i.Label,{htmlFor:s,className:"font-semibold text-base cursor-pointer",children:r},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:383,columnNumber:13},this),e.jsxDEV("span",{className:`text-xs font-medium ${l?"text-foreground":"text-muted-foreground"}`,children:l?"Enabled":"Disabled"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:389,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:382,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:397,columnNumber:11},this),!a&&e.jsxDEV("p",{className:"text-xs text-amber-700",children:"Add all required credentials before enabling this provider."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:399,columnNumber:13},this),b]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:381,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:373,columnNumber:7},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:372,columnNumber:5},this)}function k({provider:s,missingKeys:r,docsUrl:t,docsLabel:l}){return e.jsxDEV("div",{className:"mt-2 rounded-md border border-destructive/20 bg-destructive/5 p-3 text-xs text-foreground",children:[e.jsxDEV("div",{className:"mb-1.5 flex items-center gap-2 font-semibold text-destructive",children:[e.jsxDEV(x.AlertCircle,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:424,columnNumber:9},this),e.jsxDEV("span",{children:"Configuration Required"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:425,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:423,columnNumber:7},this),e.jsxDEV("p",{children:[s," needs ",e.jsxDEV("strong",{children:r.join(", ")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:428,columnNumber:26},this),". Add them in Provider API Keys, save, then enable the provider."," ",e.jsxDEV("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"font-medium underline hover:text-destructive/80",children:["Open ",l]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:430,columnNumber:9},this),"."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:427,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/payments/PaymentsClient.tsx",lineNumber:422,columnNumber:5},this)}exports.PaymentsClient=v;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("react"),N=require("next/navigation"),r=require("@nextblock-cms/ui"),f=require("lucide-react"),k=require("react-dom");function C({initialEnabledProviders:s,configStatus:i,credentials:t,saveAction:a,saveCredentialsAction:o}){const n=N.useRouter(),[m,x]=b.useTransition(),c=i.stripe.hasKeys,p=i.freemius.hasKeys,[u,j]=b.useState(()=>({stripe:s.stripe&&c,freemius:s.freemius&&p}));function g(){const l=new FormData;l.set("stripe_enabled",u.stripe?"true":"false"),l.set("freemius_enabled",u.freemius?"true":"false"),x(async()=>{await a(l),n.refresh()})}return e.jsxs("div",{className:"max-w-7xl space-y-4 p-4 sm:p-6",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Payment Settings"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Enter your provider API keys, then enable the providers your store needs. Physical products use Stripe and digital products use Freemius."})]}),e.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)]",children:[e.jsx(w,{credentials:t,saveAction:o}),e.jsxs(r.Card,{className:"flex h-full flex-col",children:[e.jsxs(r.CardHeader,{className:"pb-3",children:[e.jsx(r.CardTitle,{children:"Payment Providers"}),e.jsx(r.CardDescription,{children:"You can run both providers at the same time. Each product picks its provider from its product type."})]}),e.jsxs(r.CardContent,{className:"flex flex-1 flex-col gap-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(y,{id:"stripe-enabled",label:"Stripe for Physical Products",description:"Use Stripe Checkout for physical merchandise and other shippable goods.",checked:u.stripe,disabled:!c,onCheckedChange:l=>j(h=>({...h,stripe:l})),ready:c,children:c?e.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs text-green-600",children:[e.jsx(f.CheckCircle2,{className:"h-4 w-4"}),e.jsx("span",{children:"Ready for physical product checkout"})]}):e.jsx(v,{provider:"Stripe",missingKeys:i.stripe.missing,docsUrl:"https://dashboard.stripe.com/apikeys",docsLabel:"Stripe API keys"})}),e.jsx(y,{id:"freemius-enabled",label:"Freemius for Digital Products",description:"Use Freemius for software licenses, SaaS plans, and other digital products.",checked:u.freemius,disabled:!p,onCheckedChange:l=>j(h=>({...h,freemius:l})),ready:p,children:p?e.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs text-green-600",children:[e.jsx(f.CheckCircle2,{className:"h-4 w-4"}),e.jsx("span",{children:"Ready for digital product checkout"})]}):e.jsx(v,{provider:"Freemius",missingKeys:i.freemius.missing,docsUrl:"https://dashboard.freemius.com/",docsLabel:"Freemius credentials"})})]}),e.jsx("div",{className:"mt-auto flex justify-end border-t pt-4",children:e.jsx(r.Button,{type:"button",disabled:m,onClick:g,children:m?"Saving...":"Save Changes"})})]})]})]})]})}function S(){const{pending:s}=k.useFormStatus();return e.jsx(r.Button,{type:"submit",disabled:s,children:s?"Saving...":"Save Changes"})}function d({id:s,label:i,type:t="text",defaultValue:a,placeholder:o,hint:n}){return e.jsxs("div",{className:"space-y-1",children:[e.jsx(r.Label,{htmlFor:s,className:"text-xs",children:i}),e.jsx(r.Input,{id:s,name:s,type:t,defaultValue:a,placeholder:o,autoComplete:t==="password"?"new-password":"off"}),n&&e.jsx("p",{className:"text-xs text-muted-foreground",children:n})]})}function w({credentials:s,saveAction:i}){const t="•••••••• (stored — leave blank to keep)";return e.jsxs(r.Card,{className:"flex h-full flex-col",children:[e.jsxs(r.CardHeader,{className:"pb-3",children:[e.jsx(r.CardTitle,{children:"Provider API Keys"}),e.jsxs(r.CardDescription,{children:["Keys are encrypted at rest and used DB-first (these override any"," ",e.jsx("code",{children:".env"})," values). Leave a secret blank to keep the stored value."]})]}),e.jsx(r.CardContent,{className:"flex flex-1 flex-col",children:e.jsxs("form",{action:i,className:"flex flex-1 flex-col gap-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Stripe (physical products)"}),e.jsxs("details",{className:"rounded-md border border-dashed px-3 py-2 text-xs text-muted-foreground",children:[e.jsx("summary",{className:"cursor-pointer font-medium text-foreground",children:"Stripe webhook setup"}),e.jsxs("div",{className:"mt-2 space-y-1.5",children:[e.jsxs("p",{children:["In Stripe, add"," ",e.jsx("code",{children:"https://your-domain/api/webhooks/stripe"})," as a webhook endpoint and paste its ",e.jsx("code",{children:"whsec_…"})," signing secret below."]}),e.jsxs("p",{children:["Locally, run"," ",e.jsx("code",{children:"stripe listen --forward-to localhost:4200/api/webhooks/stripe"})," ","or ",e.jsx("code",{children:"npm run stripe"}),"."]})]})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-3",children:[e.jsx(d,{id:"stripe_publishableKey",label:"Publishable key",defaultValue:s.stripe.publishableKey,placeholder:"pk_live_…"}),e.jsx(d,{id:"stripe_secretKey",label:"Secret key",type:"password",placeholder:s.stripe.hasSecretKey?t:"sk_live_…"}),e.jsx(d,{id:"stripe_webhookSecret",label:"Webhook signing secret",type:"password",placeholder:s.stripe.hasWebhookSecret?t:"whsec_…"})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Freemius (digital products)"}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[e.jsx(d,{id:"freemius_developerId",label:"Developer ID",defaultValue:s.freemius.developerId}),e.jsx(d,{id:"freemius_productId",label:"Product ID",defaultValue:s.freemius.productId}),e.jsx(d,{id:"freemius_publicKey",label:"Public key",defaultValue:s.freemius.publicKey,placeholder:"pk_…"}),e.jsx(d,{id:"freemius_secretKey",label:"Secret key",type:"password",placeholder:s.freemius.hasSecretKey?t:"sk_…"}),e.jsx(d,{id:"freemius_apiKey",label:"API key",type:"password",placeholder:s.freemius.hasApiKey?t:"API key"})]})]}),s.envFallbackActive&&e.jsx("p",{className:"text-xs text-amber-700",children:"Stripe keys are currently read from environment variables. Saving here moves them into the database and takes precedence."}),e.jsx("div",{className:"mt-auto flex justify-end border-t pt-4",children:e.jsx(S,{})})]})})]})}function y({id:s,label:i,description:t,checked:a,disabled:o,ready:n,onCheckedChange:m,children:x}){return e.jsx("div",{className:"rounded-md border p-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(r.Checkbox,{id:s,checked:a,disabled:o,onCheckedChange:c=>m(!!c),className:"mt-1"}),e.jsxs("div",{className:"grid gap-1.5 leading-none w-full",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsx(r.Label,{htmlFor:s,className:"font-semibold text-base cursor-pointer",children:i}),e.jsx("span",{className:`text-xs font-medium ${a?"text-foreground":"text-muted-foreground"}`,children:a?"Enabled":"Disabled"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t}),!n&&e.jsx("p",{className:"text-xs text-amber-700",children:"Add all required credentials before enabling this provider."}),x]})]})})}function v({provider:s,missingKeys:i,docsUrl:t,docsLabel:a}){return e.jsxs("div",{className:"mt-2 rounded-md border border-destructive/20 bg-destructive/5 p-3 text-xs text-foreground",children:[e.jsxs("div",{className:"mb-1.5 flex items-center gap-2 font-semibold text-destructive",children:[e.jsx(f.AlertCircle,{className:"h-4 w-4"}),e.jsx("span",{children:"Configuration Required"})]}),e.jsxs("p",{children:[s," needs ",e.jsx("strong",{children:i.join(", ")}),". Add them in Provider API Keys, save, then enable the provider."," ",e.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"font-medium underline hover:text-destructive/80",children:["Open ",a]}),"."]})]})}exports.PaymentsClient=C;
|