@nextblock-cms/ecom 0.18.8 → 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.
Files changed (150) hide show
  1. package/index.cjs.js +1 -1
  2. package/index.es.js +26 -25
  3. package/lib/CurrencyProvider.cjs.js +1 -1
  4. package/lib/CurrencyProvider.es.js +41 -45
  5. package/lib/PaymentReadinessProvider.cjs.js +1 -1
  6. package/lib/PaymentReadinessProvider.es.js +15 -19
  7. package/lib/cart-store.cjs.js +1 -1
  8. package/lib/cart-store.d.ts +4 -0
  9. package/lib/cart-store.es.js +77 -69
  10. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  11. package/lib/components/AccountNavigationMenu.es.js +44 -62
  12. package/lib/components/AddToCartButton.cjs.js +1 -1
  13. package/lib/components/AddToCartButton.es.js +50 -78
  14. package/lib/components/Cart.cjs.js +1 -1
  15. package/lib/components/Cart.es.js +154 -381
  16. package/lib/components/CartDrawer.cjs.js +1 -1
  17. package/lib/components/CartDrawer.es.js +143 -297
  18. package/lib/components/CartIcon.cjs.js +1 -1
  19. package/lib/components/CartIcon.es.js +21 -47
  20. package/lib/components/Checkout.cjs.js +1 -1
  21. package/lib/components/Checkout.es.js +814 -1614
  22. package/lib/components/CouponForm.cjs.js +1 -1
  23. package/lib/components/CouponForm.es.js +104 -155
  24. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  25. package/lib/components/CurrencySwitcher.es.js +14 -33
  26. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  27. package/lib/components/CustomerProfileForm.es.js +264 -672
  28. package/lib/components/FeaturedProduct.cjs.js +1 -1
  29. package/lib/components/FeaturedProduct.es.js +46 -125
  30. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  31. package/lib/components/FreemiusLicensePanel.es.js +45 -125
  32. package/lib/components/InvoiceDocument.cjs.js +1 -1
  33. package/lib/components/InvoiceDocument.es.js +148 -487
  34. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  35. package/lib/components/InvoiceViewerShell.d.ts +4 -1
  36. package/lib/components/InvoiceViewerShell.es.js +59 -142
  37. package/lib/components/ProductCard.cjs.js +1 -1
  38. package/lib/components/ProductCard.d.ts +3 -1
  39. package/lib/components/ProductCard.es.js +128 -242
  40. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  41. package/lib/components/ProductDetailsLayout.es.js +311 -652
  42. package/lib/components/ProductGallery.cjs.js +1 -1
  43. package/lib/components/ProductGallery.d.ts +2 -0
  44. package/lib/components/ProductGallery.es.js +37 -66
  45. package/lib/components/ProductGrid.cjs.js +1 -1
  46. package/lib/components/ProductGrid.es.js +23 -32
  47. package/lib/components/ShippingEstimator.cjs.js +1 -1
  48. package/lib/components/ShippingEstimator.es.js +118 -231
  49. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  50. package/lib/components/SimpleTiptapRenderer.es.js +111 -294
  51. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  52. package/lib/components/SubscriptionSelector.es.js +120 -181
  53. package/lib/freemius-trial-provision.cjs.js +1 -0
  54. package/lib/freemius-trial-provision.d.ts +85 -0
  55. package/lib/freemius-trial-provision.es.js +136 -0
  56. package/lib/invoice.cjs.js +1 -1
  57. package/lib/invoice.d.ts +1 -1
  58. package/lib/invoice.es.js +6 -5
  59. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  60. package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
  61. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  62. package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
  63. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  64. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
  65. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  66. package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
  67. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  68. package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
  69. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  70. package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
  71. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  72. package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
  73. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  74. package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
  75. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  76. package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
  77. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  78. package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
  79. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  80. package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
  81. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  82. package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
  83. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  84. package/lib/pages/cms/products/ProductsPage.es.js +47 -87
  85. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  86. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
  87. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  88. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
  89. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  90. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
  91. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  92. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
  93. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  94. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
  95. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
  97. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
  99. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  100. package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
  101. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
  103. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  104. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
  105. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  106. package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
  107. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  108. package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
  109. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  110. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
  111. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  112. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
  113. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  114. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
  115. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  116. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
  117. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  118. package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
  119. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  120. package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
  121. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  122. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
  123. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  124. package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
  125. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  126. package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
  127. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  128. package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
  129. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  130. package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
  131. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  132. package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
  133. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  134. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
  135. package/lib/product-context.cjs.js +1 -1
  136. package/lib/product-context.es.js +10 -14
  137. package/lib/trials.cjs.js +1 -1
  138. package/lib/trials.d.ts +10 -3
  139. package/lib/trials.es.js +28 -21
  140. package/lib/types.d.ts +2 -0
  141. package/lib/use-price-formatter.cjs.js +1 -0
  142. package/lib/use-price-formatter.d.ts +11 -0
  143. package/lib/use-price-formatter.es.js +13 -0
  144. package/lib/variation-utils.cjs.js +1 -1
  145. package/lib/variation-utils.d.ts +10 -0
  146. package/lib/variation-utils.es.js +139 -123
  147. package/package.json +4 -4
  148. package/server.cjs.js +1 -1
  149. package/server.d.ts +1 -0
  150. package/server.es.js +180 -172
@@ -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;