@nextblock-cms/ecom 0.8.6 → 0.8.7

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 (277) hide show
  1. package/index.cjs.js +1 -1
  2. package/index.es.js +136 -533
  3. package/lib/CurrencyProvider.cjs.js +1 -0
  4. package/lib/CurrencyProvider.es.js +99 -0
  5. package/lib/cart-store.cjs.js +1 -0
  6. package/{cart-store.es.js → lib/cart-store.es.js} +13 -13
  7. package/lib/components/AccountNavigationMenu.cjs.js +1 -0
  8. package/lib/components/AccountNavigationMenu.es.js +44 -0
  9. package/lib/components/AddToCartButton.cjs.js +1 -0
  10. package/{AddToCartButton-ffE0DhHu.js → lib/components/AddToCartButton.es.js} +14 -13
  11. package/lib/components/Cart.cjs.js +1 -0
  12. package/lib/components/Cart.es.js +148 -0
  13. package/lib/components/CartDrawer.cjs.js +1 -0
  14. package/{components → lib/components}/CartDrawer.es.js +15 -14
  15. package/{components → lib/components}/CartIcon.cjs.js +1 -1
  16. package/{components → lib/components}/CartIcon.es.js +1 -0
  17. package/lib/components/Checkout.cjs.js +1 -0
  18. package/{components → lib/components}/Checkout.es.js +330 -363
  19. package/lib/components/CouponForm.cjs.js +1 -0
  20. package/lib/components/CouponForm.es.js +136 -0
  21. package/lib/components/CurrencySwitcher.cjs.js +1 -0
  22. package/{components → lib/components}/CurrencySwitcher.es.js +5 -4
  23. package/lib/components/CustomerProfileForm.cjs.js +1 -0
  24. package/lib/components/CustomerProfileForm.es.js +355 -0
  25. package/lib/components/FeaturedProduct.cjs.js +1 -0
  26. package/{components → lib/components}/FeaturedProduct.es.js +9 -8
  27. package/lib/components/InvoiceDocument.cjs.js +1 -0
  28. package/lib/components/InvoiceDocument.es.js +196 -0
  29. package/lib/components/InvoiceViewerShell.cjs.js +29 -0
  30. package/lib/components/InvoiceViewerShell.es.js +100 -0
  31. package/lib/components/ProductCard.cjs.js +1 -0
  32. package/lib/components/ProductCard.es.js +119 -0
  33. package/lib/components/ProductDetailsLayout.cjs.js +1 -0
  34. package/lib/components/ProductDetailsLayout.es.js +361 -0
  35. package/lib/components/ProductGallery.cjs.js +1 -0
  36. package/lib/components/ProductGallery.es.js +41 -0
  37. package/lib/components/ProductGrid.cjs.js +1 -0
  38. package/lib/components/ProductGrid.es.js +19 -0
  39. package/lib/components/ShippingEstimator.cjs.js +1 -0
  40. package/lib/components/ShippingEstimator.es.js +125 -0
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -0
  42. package/lib/components/SubscriptionSelector.es.js +140 -0
  43. package/lib/countries.cjs.js +1 -0
  44. package/lib/countries.es.js +77 -0
  45. package/lib/coupon-server.cjs.js +1 -0
  46. package/{coupon-server-DUKVtyYs.js → lib/coupon-server.es.js} +68 -82
  47. package/lib/coupons.cjs.js +1 -0
  48. package/lib/coupons.es.js +17 -0
  49. package/lib/currency-store.cjs.js +1 -0
  50. package/lib/currency-store.es.js +27 -0
  51. package/lib/currency-sync.cjs.js +1 -0
  52. package/lib/currency-sync.es.js +180 -0
  53. package/lib/customer-addresses.cjs.js +1 -0
  54. package/lib/customer-addresses.es.js +116 -0
  55. package/lib/customer-orders.cjs.js +1 -0
  56. package/lib/customer-orders.es.js +45 -0
  57. package/lib/customer.cjs.js +1 -0
  58. package/{customer-C3xccjUg.js → lib/customer.es.js} +15 -14
  59. package/lib/export-helpers.cjs.js +1 -0
  60. package/lib/export-helpers.es.js +56 -0
  61. package/lib/factory.cjs.js +1 -0
  62. package/lib/factory.es.js +8 -0
  63. package/lib/freemius-coupons.cjs.js +1 -0
  64. package/lib/freemius-coupons.es.js +272 -0
  65. package/lib/freemius-order-sync.cjs.js +1 -0
  66. package/lib/freemius-order-sync.es.js +284 -0
  67. package/lib/inventory-settings.cjs.js +1 -0
  68. package/lib/inventory-settings.es.js +86 -0
  69. package/lib/invoice-server.cjs.js +33 -0
  70. package/lib/invoice-server.es.js +141 -0
  71. package/lib/invoice-ui.cjs.js +1 -0
  72. package/lib/invoice-ui.es.js +71 -0
  73. package/lib/invoice.cjs.js +1 -0
  74. package/lib/invoice.es.js +102 -0
  75. package/lib/order-inventory.cjs.js +61 -0
  76. package/lib/order-inventory.es.js +128 -0
  77. package/lib/order-tax-details.cjs.js +1 -0
  78. package/lib/order-tax-details.es.js +164 -0
  79. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -0
  80. package/lib/pages/cms/coupons/CouponEditorForm.es.js +189 -0
  81. package/lib/pages/cms/coupons/CouponsPage.cjs.js +5 -0
  82. package/lib/pages/cms/coupons/CouponsPage.es.js +171 -0
  83. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -0
  84. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +35 -0
  85. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -0
  86. package/lib/pages/cms/coupons/EditCouponPage.es.js +48 -0
  87. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -0
  88. package/lib/pages/cms/coupons/ProductScopePicker.es.js +120 -0
  89. package/lib/pages/cms/coupons/actions.cjs.js +1 -0
  90. package/lib/pages/cms/coupons/actions.es.js +128 -0
  91. package/lib/pages/cms/coupons/product-options.cjs.js +1 -0
  92. package/lib/pages/cms/coupons/product-options.es.js +27 -0
  93. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -0
  94. package/lib/pages/cms/orders/ExportReportsDialog.es.js +130 -0
  95. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -0
  96. package/lib/pages/cms/orders/OrderDetailPage.es.js +137 -0
  97. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -0
  98. package/lib/pages/cms/orders/OrderPrintButton.es.js +22 -0
  99. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -0
  100. package/lib/pages/cms/orders/OrderStatusForm.es.js +71 -0
  101. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -0
  102. package/lib/pages/cms/orders/OrdersPage.es.js +104 -0
  103. package/lib/pages/cms/orders/actions.cjs.js +7 -0
  104. package/lib/pages/cms/orders/actions.es.js +71 -0
  105. package/lib/pages/cms/orders/export-actions.cjs.js +1 -0
  106. package/lib/pages/cms/orders/export-actions.es.js +27 -0
  107. package/lib/pages/cms/orders/server-actions.cjs.js +1 -0
  108. package/lib/pages/cms/orders/server-actions.es.js +55 -0
  109. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -0
  110. package/lib/pages/cms/payments/PaymentsClient.es.js +188 -0
  111. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -0
  112. package/lib/pages/cms/payments/PaymentsPage.es.js +29 -0
  113. package/lib/pages/cms/payments/actions.cjs.js +1 -0
  114. package/lib/pages/cms/payments/actions.es.js +23 -0
  115. package/lib/pages/cms/payments/queries.cjs.js +1 -0
  116. package/lib/pages/cms/payments/queries.es.js +30 -0
  117. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -0
  118. package/lib/pages/cms/products/ProductsPage.es.js +46 -0
  119. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -0
  120. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +156 -0
  121. package/lib/pages/cms/products/actions.cjs.js +44 -0
  122. package/lib/pages/cms/products/actions.es.js +175 -0
  123. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -0
  124. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +48 -0
  125. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -0
  126. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +291 -0
  127. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -0
  128. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +36 -0
  129. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -0
  130. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +263 -0
  131. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -0
  132. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +114 -0
  133. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -0
  134. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +107 -0
  135. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -0
  136. package/lib/pages/cms/products/components/DeleteProductButton.es.js +48 -0
  137. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -0
  138. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +86 -0
  139. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -0
  140. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +160 -0
  141. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -0
  142. package/lib/pages/cms/products/components/ProductForm.es.js +702 -0
  143. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -0
  144. package/lib/pages/cms/products/components/ProductMediaManager.es.js +104 -0
  145. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -0
  146. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +228 -0
  147. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -0
  148. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +137 -0
  149. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -0
  150. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +36 -0
  151. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +1 -0
  152. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +40 -0
  153. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -0
  154. package/lib/pages/cms/products/components/VariationsEditor.es.js +408 -0
  155. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -0
  156. package/lib/pages/cms/products/inventory/InventoryPage.es.js +16 -0
  157. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -0
  158. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +214 -0
  159. package/lib/pages/cms/products/inventory/actions.cjs.js +3 -0
  160. package/lib/pages/cms/products/inventory/actions.es.js +95 -0
  161. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -0
  162. package/lib/pages/cms/products/new/NewProductPage.es.js +76 -0
  163. package/lib/pages/cms/products/product-price-sync.cjs.js +1 -0
  164. package/lib/pages/cms/products/product-price-sync.es.js +98 -0
  165. package/lib/pages/cms/products/server-actions.cjs.js +1 -0
  166. package/lib/pages/cms/products/server-actions.es.js +193 -0
  167. package/lib/pages/cms/shipping/ShippingPage.cjs.js +5 -0
  168. package/lib/pages/cms/shipping/ShippingPage.es.js +211 -0
  169. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -0
  170. package/lib/pages/cms/shipping/components/RateForm.es.js +441 -0
  171. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -0
  172. package/lib/pages/cms/shipping/components/ZoneForm.es.js +228 -0
  173. package/lib/pages/cms/shipping/server-actions.cjs.js +1 -0
  174. package/lib/pages/cms/shipping/server-actions.es.js +159 -0
  175. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -0
  176. package/lib/pages/cms/taxes/TaxesPage.es.js +172 -0
  177. package/lib/pages/cms/taxes/actions.cjs.js +1 -0
  178. package/lib/pages/cms/taxes/actions.es.js +57 -0
  179. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -0
  180. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +100 -0
  181. package/lib/product-actions.cjs.js +237 -0
  182. package/lib/product-actions.es.js +524 -0
  183. package/lib/product-context.cjs.js +1 -0
  184. package/lib/product-context.es.js +16 -0
  185. package/lib/product-schema.cjs.js +1 -0
  186. package/lib/product-schema.es.js +134 -0
  187. package/lib/providers/freemius.cjs.js +5 -0
  188. package/lib/providers/freemius.es.js +538 -0
  189. package/lib/providers/stripe.cjs.js +1 -0
  190. package/lib/providers/stripe.es.js +473 -0
  191. package/lib/server-actions/coupon-actions.cjs.js +1 -0
  192. package/lib/server-actions/coupon-actions.es.js +23 -0
  193. package/lib/server-actions/customer-actions.cjs.js +1 -0
  194. package/lib/server-actions/customer-actions.es.js +30 -0
  195. package/lib/server-actions/product-actions.cjs.js +1 -0
  196. package/{server-actions → lib/server-actions}/product-actions.es.js +5 -4
  197. package/lib/server-actions/shipping-actions.cjs.js +1 -0
  198. package/{shipping-actions-BnHjlo2q.js → lib/server-actions/shipping-actions.es.js} +9 -7
  199. package/lib/server-actions/tax-actions.cjs.js +1 -0
  200. package/lib/server-actions/tax-actions.es.js +40 -0
  201. package/lib/shared-inventory.cjs.js +15 -0
  202. package/lib/shared-inventory.es.js +171 -0
  203. package/lib/shipping/resolver.cjs.js +7 -0
  204. package/lib/shipping/resolver.es.js +62 -0
  205. package/lib/shipping-rate-currency.cjs.js +1 -0
  206. package/lib/shipping-rate-currency.es.js +72 -0
  207. package/lib/states.cjs.js +1 -0
  208. package/{states-DlHJezQ1.js → lib/states.es.js} +27 -100
  209. package/lib/stripe/checkout.cjs.js +1 -0
  210. package/lib/stripe/checkout.es.js +182 -0
  211. package/lib/stripe/client.cjs.js +1 -0
  212. package/lib/stripe/client.es.js +7 -0
  213. package/lib/stripe/order-sync.cjs.js +1 -0
  214. package/lib/stripe/order-sync.es.js +130 -0
  215. package/lib/stripe/webhooks.cjs.js +1 -0
  216. package/lib/stripe/webhooks.es.js +30 -0
  217. package/lib/tax-calculation.cjs.js +1 -0
  218. package/lib/tax-calculation.es.js +101 -0
  219. package/lib/trials.cjs.js +1 -0
  220. package/{trials-RDcRAZKx.js → lib/trials.es.js} +9 -9
  221. package/{use-cart.es.js → lib/use-cart.es.js} +1 -0
  222. package/lib/zod-config.cjs.js +1 -0
  223. package/lib/zod-config.es.js +6 -0
  224. package/package.json +4 -4
  225. package/server.cjs.js +1 -110
  226. package/server.es.js +178 -6052
  227. package/AddToCartButton-DsSEH9yp.cjs +0 -1
  228. package/CouponForm-BI_5SBHQ.js +0 -152
  229. package/CouponForm-D_uu2bLP.cjs +0 -1
  230. package/CurrencyProvider-Cg-Q6ucj.cjs +0 -1
  231. package/CurrencyProvider-OzlRN96V.js +0 -120
  232. package/CurrencyProvider.cjs.js +0 -1
  233. package/CurrencyProvider.es.js +0 -10
  234. package/ProductDetailsLayout-BxJH_BxR.cjs +0 -1
  235. package/ProductDetailsLayout-Dg8dRTYp.js +0 -530
  236. package/ProductGrid-BdL7iglO.cjs +0 -1
  237. package/ProductGrid-D3AWM8sr.js +0 -130
  238. package/actions-AHmBrS5e.cjs +0 -48
  239. package/actions-j5fuSZX-.js +0 -820
  240. package/cart-store.cjs.js +0 -1
  241. package/components/Cart.cjs.js +0 -1
  242. package/components/Cart.es.js +0 -259
  243. package/components/CartDrawer.cjs.js +0 -1
  244. package/components/Checkout.cjs.js +0 -1
  245. package/components/CurrencySwitcher.cjs.js +0 -1
  246. package/components/FeaturedProduct.cjs.js +0 -1
  247. package/components/ProductDetailsLayout.cjs.js +0 -1
  248. package/components/ProductDetailsLayout.es.js +0 -19
  249. package/components/ProductGrid.cjs.js +0 -1
  250. package/components/ProductGrid.es.js +0 -6
  251. package/coupon-server-C9ySm3I5.cjs +0 -1
  252. package/customer-C-UPvrYN.cjs +0 -1
  253. package/invoice-ui-CAnJPu6n.cjs +0 -29
  254. package/invoice-ui-DtpbTJE1.js +0 -2886
  255. package/product-actions-CONBF8i6.cjs +0 -251
  256. package/product-actions-DjlIWCMH.js +0 -691
  257. package/resolver-Fz_FKsfX.cjs +0 -7
  258. package/resolver-cfrCaHpE.js +0 -128
  259. package/server-actions/product-actions.cjs.js +0 -1
  260. package/shipping-actions-D6zt20gg.cjs +0 -1
  261. package/states-CWYRxV4B.cjs +0 -1
  262. package/tax-calculation-Dab89aHd.js +0 -181
  263. package/tax-calculation-MkDKOEkL.cjs +0 -1
  264. package/trials-DvZaOtNy.cjs +0 -1
  265. /package/{components → lib/components}/SimpleTiptapRenderer.cjs.js +0 -0
  266. /package/{components → lib/components}/SimpleTiptapRenderer.es.js +0 -0
  267. /package/{currency-constants.cjs.js → lib/currency-constants.cjs.js} +0 -0
  268. /package/{currency-constants.es.js → lib/currency-constants.es.js} +0 -0
  269. /package/{currency-rest-client-uolJxUkL.cjs → lib/currency-rest-client.cjs.js} +0 -0
  270. /package/{currency-rest-client-CwoqdgAP.js → lib/currency-rest-client.es.js} +0 -0
  271. /package/{currency.cjs.js → lib/currency.cjs.js} +0 -0
  272. /package/{currency.es.js → lib/currency.es.js} +0 -0
  273. /package/{types.cjs.js → lib/types.cjs.js} +0 -0
  274. /package/{types.es.js → lib/types.es.js} +0 -0
  275. /package/{use-cart.cjs.js → lib/use-cart.cjs.js} +0 -0
  276. /package/{variation-utils.cjs.js → lib/variation-utils.cjs.js} +0 -0
  277. /package/{variation-utils.es.js → lib/variation-utils.es.js} +0 -0
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),qe=require("@nextblock-cms/ui/badge"),he=require("@nextblock-cms/ui/button"),x=require("@nextblock-cms/ui/card"),Ve=require("@nextblock-cms/ui/checkbox"),F=require("@nextblock-cms/ui/input"),N=require("@nextblock-cms/ui/label"),We=require("@nextblock-cms/ui/separator"),xe=require("@nextblock-cms/ui/radio-group"),Ze=require("@freemius/checkout"),_e=require("../cart-store.cjs.js"),es=require("../use-cart.cjs.js"),o=require("react"),P=require("lucide-react"),f=require("@nextblock-cms/utils"),$e=require("../countries.cjs.js"),ss=require("../server-actions/shipping-actions.cjs.js"),ts=require("../server-actions/tax-actions.cjs.js"),ge=require("../types.cjs.js"),X=require("../states.cjs.js"),B=require("../customer.cjs.js"),rs=require("../CurrencyProvider.cjs.js"),Te=require("../trials.cjs.js"),cs=require("./CouponForm.cjs.js"),ns=process.env.NEXT_PUBLIC_IS_SANDBOX==="true",ne="nextblock-checkout-draft-v1";function ie(t,j){return{...B.emptyCustomerAddress(),company_name:t?.company_name||"",recipient_name:t?.recipient_name||j||"",line1:t?.line1||"",line2:t?.line2||"",city:t?.city||"",state:t?.state||"",postal_code:t?.postal_code||"",country_code:$e.normalizeCountryCode(t?.country_code)||"CA"}}function is(t){const j=B.normalizeCustomerAddress(t);return!(!j?.country_code||!j.postal_code||X.countryUsesStructuredStates(j.country_code)&&!j.state)}function fe(t,j,I){return t.reduce((n,g)=>{const{price:h,sale_price:q}=_e.getCartItemActivePrice(g,{currencyCode:j,currencies:I});return n+(q??h)*g.quantity},0)}function Fe({idPrefix:t,title:j,description:I,value:n,onChange:g}){const{t:h}=f.useTranslations(),q=h("company_name")==="company_name"?"Company name":h("company_name"),$=h("select_an_option")==="select_an_option"?"Select an option":h("select_an_option"),Y=h("state_province")==="state_province"?"State / Province":h("state_province"),K=X.getStatesForCountry(n.country_code),H=X.countryUsesStructuredStates(n.country_code);return e.jsxs(x.Card,{children:[e.jsxs(x.CardHeader,{children:[e.jsxs(x.CardTitle,{className:"flex items-center gap-2",children:[e.jsx(P.MapPin,{className:"w-5 h-5"}),j]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:I})]}),e.jsxs(x.CardContent,{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-company`,children:q}),e.jsx(F.Input,{id:`${t}-company`,value:n.company_name,onChange:a=>g({...n,company_name:a.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-name`,children:h("full_name")}),e.jsx(F.Input,{id:`${t}-name`,value:n.recipient_name,onChange:a=>g({...n,recipient_name:a.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-country`,children:h("country")}),e.jsx("select",{id:`${t}-country`,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",value:n.country_code,onChange:a=>{const U=a.target.value,le=X.getStatesForCountry(U);g({...n,country_code:U,state:le.some(V=>V.code===n.state)?n.state:""})},children:$e.countries.map(a=>e.jsx("option",{value:a.code,children:a.name},a.code))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-line1`,children:h("address_line_1")}),e.jsx(F.Input,{id:`${t}-line1`,value:n.line1,onChange:a=>g({...n,line1:a.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-line2`,children:h("address_line_2")}),e.jsx(F.Input,{id:`${t}-line2`,value:n.line2,onChange:a=>g({...n,line2:a.target.value})})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-city`,children:h("city")}),e.jsx(F.Input,{id:`${t}-city`,value:n.city,onChange:a=>g({...n,city:a.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-state`,children:h("state_province")}),H?e.jsxs("select",{id:`${t}-state`,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",value:n.state,onChange:a=>g({...n,state:a.target.value}),children:[e.jsx("option",{value:"",children:`${$}: ${Y}`}),K.map(a=>e.jsx("option",{value:a.code,children:a.name},a.code))]}):e.jsx(F.Input,{id:`${t}-state`,value:n.state,onChange:a=>g({...n,state:a.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:`${t}-postal`,children:h("postal_zip_code")}),e.jsx(F.Input,{id:`${t}-postal`,value:n.postal_code,onChange:a=>g({...n,postal_code:a.target.value})})]})]})]})]})}function Ie({title:t,description:j,badgeLabel:I,children:n}){return e.jsxs(x.Card,{children:[e.jsx(x.CardHeader,{children:e.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{children:[e.jsx(x.CardTitle,{children:t}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:j})]}),I?e.jsx(qe.Badge,{variant:"secondary",children:I}):null]})}),e.jsx(x.CardContent,{className:"space-y-4",children:n})]})}const ls=({initialCustomer:t})=>{const[j,I]=o.useState({}),[n,g]=o.useState(null),[h,q]=o.useState({}),[$,Y]=o.useState(t?.email||""),[K,H]=o.useState(""),[a,U]=o.useState(t?.phone||""),[le,V]=o.useState(!1),[Le,je]=o.useState(null),[ye,W]=o.useState(!1),[Me,Z]=o.useState(!1),[G,ee]=o.useState([]),[y,z]=o.useState(null),[k,se]=o.useState(null),[L,Ee]=o.useState(null),[A,be]=o.useState(()=>ie(t?.billingAddress,t?.fullName)),[O,Ne]=o.useState(()=>ie(t?.shippingAddress??t?.billingAddress,t?.fullName)),[E,ve]=o.useState(!t?.shippingAddress||B.addressesMatch(t?.billingAddress,t?.shippingAddress)),J=es.useCart(s=>s),{t:c,lang:ae}=f.useTranslations(),{activeCurrencyCode:l,currencies:M}=rs.useCurrency(),b=J?.items??[],v=o.useMemo(()=>b.filter(s=>!ge.isDigitalItem(s)),[b]),C=o.useMemo(()=>b.filter(s=>ge.isDigitalItem(s)),[b]),D=t?.isAuthenticated??!1,r=(s,i,m)=>{const u=c(s,m);if(u!==s)return u;if(!m)return i;let _=i;return Object.entries(m).forEach(([p,d])=>{_=_.replace(new RegExp(`\\{${p}\\}`,"g"),String(d))}),_},S=v.length>0,De=o.useMemo(()=>fe(b,l,M),[l,M,b]),oe=o.useMemo(()=>fe(v,l,M),[l,M,v]),de=o.useMemo(()=>fe(C,l,M),[l,M,C]),ue=L?.providerDiscounts.stripe??0,me=L?.providerDiscounts.freemius??0,te=Math.max(0,oe-ue),Re=Math.max(0,de-me),w=o.useMemo(()=>E?A:O,[A,O,E]),R=o.useMemo(()=>S?w:A,[A,S,w]),re=!S||is(w),ce=o.useMemo(()=>G.find(s=>s.id===y),[G,y]),Ce=o.useMemo(()=>te+(ce?.amount??0)+(k&&!k.isPendingExternalCalculation?k.amount:0),[te,ce,k]),Be=Ce+Re;if(o.useEffect(()=>{if(!(D||typeof window>"u"))try{const s=window.localStorage.getItem(ne);if(!s)return;const i=JSON.parse(s);i.email&&Y(i.email),i.phone&&U(i.phone),i.billingAddress&&be(ie(i.billingAddress)),i.shippingAddress&&Ne(ie(i.shippingAddress)),typeof i.useBillingForShipping=="boolean"&&ve(i.useBillingForShipping),(typeof i.selectedMethodId=="string"||i.selectedMethodId===null)&&z(i.selectedMethodId)}catch(s){console.error("[Checkout] Failed to restore checkout draft:",s)}},[D]),o.useEffect(()=>{if(!(typeof window>"u")){if(D){window.localStorage.removeItem(ne);return}window.localStorage.setItem(ne,JSON.stringify({email:$,phone:a,billingAddress:A,shippingAddress:O,useBillingForShipping:E,selectedMethodId:y}))}},[A,$,D,a,y,O,E]),o.useEffect(()=>{if(!S){ee([]),z(null),W(!1);return}if(!re){ee([]),z(null),W(!1);return}let s=!1;const m=setTimeout(async()=>{if(!w.country_code)return;W(!0);const u=await ss.getShippingEstimates(te,{country:w.country_code,state:w.state,postal_code:w.postal_code},ae,l);s||(u.success&&u.methods?(ee(u.methods),u.methods.length>0&&(!y||!u.methods.find(_=>_.id===y))&&z(u.methods[0].id)):(ee([]),z(null)),W(!1))},400);return()=>{s=!0,clearTimeout(m)}},[l,S,re,ae,y,w.country_code,w.postal_code,w.state,te]),o.useEffect(()=>{const i=setTimeout(async()=>{if(!S||!R.country_code){Z(!1),se(null);return}if(X.countryUsesStructuredStates(R.country_code)&&!R.state){Z(!1),se(null);return}Z(!0);const m=await ts.getTaxEstimate(v,{country_code:R.country_code,state:R.state},l,L?.code??null,b);m.success&&m.tax?se(m.tax):se(null),Z(!1)},300);return()=>clearTimeout(i)},[l,S,v,R.country_code,R.state,L?.code,b]),!J)return null;const Se=()=>{V(!1),je(null)},ke=le?e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",onClick:Se,children:e.jsxs("div",{className:"relative bg-background border rounded-xl shadow-2xl p-8 max-w-md mx-4",onClick:s=>s.stopPropagation(),children:[e.jsx("button",{onClick:Se,className:"absolute top-4 right-4 text-muted-foreground hover:text-foreground transition-colors",children:e.jsx(P.X,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"p-2 rounded-full bg-amber-100 dark:bg-amber-900/20",children:e.jsx(P.FlaskConical,{className:"h-6 w-6 text-amber-600 dark:text-amber-400"})}),e.jsx("h2",{className:"text-xl font-semibold",children:c("ecommerce.checkout_successful")})]}),e.jsx("p",{className:"text-muted-foreground mb-2",children:c("ecommerce.sandbox_notice")}),e.jsx("p",{className:"text-muted-foreground mb-2",children:Le==="stripe"?r("ecommerce.sandbox_checkout_stripe_description","This simulated step represents the Stripe checkout for physical products."):r("ecommerce.sandbox_checkout_freemius_description","This simulated step represents the Freemius checkout for digital products.")}),e.jsx("p",{className:"text-muted-foreground mb-6",children:c("ecommerce.license_notice")}),e.jsx("a",{href:"https://nextblock.ca",target:"_blank",rel:"noopener noreferrer",className:"block w-full text-center py-3 px-4 rounded-lg bg-primary text-primary-foreground font-semibold hover:opacity-90 transition-opacity",children:c("ecommerce.purchase_at")})]})}):null,ze=s=>{if(!D&&(!$||!/^\S+@\S+\.\S+$/.test($)))return H(c("ecommerce.invalid_email")),null;const i=B.normalizeCustomerAddress(A);if(!B.isCustomerAddressComplete(i))return alert(c("checkout_complete_billing_address")),null;const m=S?B.normalizeCustomerAddress(E?A:O):null;if(s==="stripe"){if(!B.isCustomerAddressComplete(m))return alert(c("checkout_complete_shipping_address")),null;if(!y)return alert(r("ecommerce.shipping_method_required","Please select a shipping method before continuing.")),null}return H(""),{normalizedBillingAddress:i,normalizedShippingAddress:m}},we=async(s,i,m)=>{q(_=>({..._,[s]:""}));const u=ze(s);if(u){if(ns){const _=new Set(i.map(d=>d.id)),p=b.filter(d=>!_.has(d.id));J.setItems(p),p.length===0&&J.removeCoupon(),je(s),V(!0),typeof window<"u"&&p.length===0&&window.localStorage.removeItem(ne);return}g(m);try{const _=await fetch("/api/checkout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:i,customerEmail:D?void 0:$,customerPhone:a||null,billingAddress:u.normalizedBillingAddress,shippingAddress:s==="stripe"?u.normalizedShippingAddress:null,shippingMethodId:s==="stripe"?y:null,locale:ae,currencyCode:l,couponCode:L?.code??J.appliedCoupon?.code??null,couponContextItems:b})}),p=await _.json();if(!_.ok){const d=p?.errorKey&&typeof p.errorKey=="string"?r(p.errorKey,p?.error||r("ecommerce.generic_error","Something went wrong."),p.errorParams):p?.error||c("ecommerce.generic_error");q(Q=>({...Q,[s]:d})),g(null);return}if(p.customProps&&p.customProps.provider==="freemius"){const d=p.customProps;let Q=null;const Je=()=>{window.location.href=`/checkout/success?session_id=${d.order_id}`},Pe=T=>(Q||(Q=fetch("/api/checkout/freemius/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderId:d.order_id,checkoutResponse:T})}).then(async Ae=>{if(!Ae.ok){const Ye=await Ae.json().catch(()=>null);console.error("Freemius checkout sync failed:",Ye)}})),Q),Qe={product_id:d.plugin_id,public_key:d.public_key,sandbox:d.sandbox},Xe={name:c("ecommerce.checkout_overlay_title"),plan_id:d.plan_id,...d.billing_cycle?{billing_cycle:d.billing_cycle}:{},...d.trial?{trial:d.trial}:{},...d.coupon?{coupon:d.coupon}:{},user_email:d.user_email,user_firstname:d.user_firstname,user_lastname:d.user_lastname,sandbox:d.sandbox,purchaseCompleted:function(T){Pe(T)},success:function(T){(async()=>{try{await Pe(T)}finally{Je()}})()}};try{new Ze.Checkout(Qe).open(Xe),g(null)}catch(T){alert(c("ecommerce.checkout_popup_blocked")+" "+(T.message||String(T))),p.url&&(window.location.href=p.url),g(null)}}else p.url?window.location.href=p.url:(q(d=>({...d,[s]:c("ecommerce.checkout_failed")+(p.error||r("ecommerce.unknown_error","Unknown error"))})),g(null))}catch(_){console.error(_),q(p=>({...p,[s]:c("ecommerce.generic_error")})),g(null)}}};if(b.length===0)return e.jsxs(e.Fragment,{children:[ke,e.jsxs("div",{className:"container mx-auto flex min-h-[50vh] flex-col items-center justify-center p-8 text-center",children:[e.jsx("h1",{className:"mb-4 text-2xl font-bold",children:c("ecommerce.cart_empty")}),e.jsx("p",{className:"mb-8 text-muted-foreground",children:c("ecommerce.cart_empty_description")}),e.jsx(he.Button,{asChild:!0,children:e.jsx("a",{href:"/shop",children:c("ecommerce.go_to_shop")})})]})]});const pe=S?re?ye?r("ecommerce.calculating_shipping","Calculating shipping..."):y?null:G.length>0?c("ecommerce.select_rate"):c("ecommerce.no_rates_for_region"):r("ecommerce.waiting_on_address_info","Complete your shipping address to view available shipping options."):null,Oe=n!==null||pe!==null,Ke=v.length===1?r("ecommerce.item_count_one","{count} item",{count:v.length}):r("ecommerce.item_count_other","{count} items",{count:v.length}),He=C.length===1?r("ecommerce.license_count_one","{count} license",{count:C.length}):r("ecommerce.license_count_other","{count} licenses",{count:C.length}),Ue=s=>ge.isDigitalItem(s)?r("ecommerce.digital_label","Digital"):r("ecommerce.physical_label","Physical"),Ge=s=>s==="monthly"?r("ecommerce.checkout_billing_cycle_monthly","Monthly subscription"):s==="annual"?r("ecommerce.checkout_billing_cycle_annual","Annual subscription"):s==="lifetime"?r("ecommerce.checkout_billing_cycle_lifetime","Lifetime subscription"):null;return e.jsxs("div",{className:"container mx-auto px-4 py-12 md:px-6",children:[ke,e.jsxs("div",{className:"mx-auto max-w-6xl",children:[e.jsx("h1",{className:"mb-8 text-3xl font-bold",children:c("ecommerce.checkout")}),e.jsxs("div",{className:"grid gap-8 lg:grid-cols-12 lg:items-start",children:[e.jsxs("div",{className:"lg:col-span-8 space-y-6",children:[e.jsxs(x.Card,{children:[e.jsx(x.CardHeader,{children:e.jsxs(x.CardTitle,{className:"flex items-center gap-2",children:[e.jsx(P.CreditCard,{className:"w-5 h-5"}),c("ecommerce.contact_information")]})}),e.jsxs(x.CardContent,{className:"space-y-4",children:[D?e.jsx("div",{className:"rounded-xl border bg-muted/20 p-4 text-sm text-muted-foreground",children:c("checkout_prefill_notice",{email:t?.email||""})}):e.jsxs("div",{className:"space-y-2",children:[e.jsxs(N.Label,{htmlFor:"checkout-email",children:[c("ecommerce.email_address")," ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(F.Input,{id:"checkout-email",type:"email",placeholder:c("ecommerce.email_placeholder"),value:$,onChange:s=>{Y(s.target.value),K&&H("")},required:!0}),K?e.jsx("p",{className:"text-xs text-destructive mt-1",children:K}):null]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(N.Label,{htmlFor:"checkout-phone",children:c("phone_number")}),e.jsx(F.Input,{id:"checkout-phone",placeholder:c("optional"),value:a,onChange:s=>U(s.target.value)})]})]})]}),e.jsx(Fe,{idPrefix:"billing",title:c("billing_address"),description:c("checkout_billing_address_help"),value:A,onChange:be}),S?e.jsxs("div",{className:"flex items-center space-x-3 rounded-xl border bg-muted/20 p-4",children:[e.jsx(Ve.Checkbox,{id:"use-billing-for-shipping",checked:E,onCheckedChange:s=>ve(!!s)}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.Label,{htmlFor:"use-billing-for-shipping",className:"cursor-pointer",children:c("use_billing_for_shipping")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:c("checkout_use_billing_for_shipping_help")})]})]}):null,S&&!E?e.jsx(Fe,{idPrefix:"shipping",title:c("shipping_address"),description:c("checkout_shipping_address_help"),value:O,onChange:Ne}):null,S?e.jsxs(x.Card,{children:[e.jsx(x.CardHeader,{children:e.jsxs(x.CardTitle,{className:"flex items-center gap-2",children:[e.jsx(P.ChevronRight,{className:"w-5 h-5 text-primary"}),c("ecommerce.shipping_method")]})}),e.jsx(x.CardContent,{children:ye?e.jsx("div",{className:"flex items-center justify-center py-6",children:e.jsx(P.Loader2,{className:"w-6 h-6 animate-spin text-muted-foreground"})}):G.length>0?e.jsx("div",{className:"space-y-3",children:G.map(s=>e.jsxs("div",{onClick:()=>z(s.id),className:`flex items-center justify-between p-4 rounded-lg border-2 cursor-pointer transition-all ${y===s.id?"border-primary bg-primary/5":"border-neutral-100 hover:border-neutral-200"}`,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-4 h-4 rounded-full border flex items-center justify-center ${y===s.id?"border-primary":"border-neutral-300"}`,children:y===s.id?e.jsx("div",{className:"w-2 h-2 rounded-full bg-primary"}):null}),e.jsx("span",{className:"font-medium",children:s.name})]}),e.jsx("span",{className:"font-bold",children:f.formatPrice(s.amount,l)})]},s.id))}):e.jsx("div",{className:"py-4 text-center text-muted-foreground bg-muted/30 rounded-lg italic",children:re?c("ecommerce.no_rates_for_region"):r("ecommerce.waiting_on_address_info","Complete your shipping address to view available shipping options.")})})]}):null]}),e.jsxs("div",{className:"lg:col-span-4 space-y-6",children:[e.jsxs(x.Card,{className:"top-6",children:[e.jsx(x.CardHeader,{children:e.jsx(x.CardTitle,{children:c("ecommerce.order_summary")})}),e.jsxs(x.CardContent,{className:"space-y-4",children:[e.jsx("div",{className:"space-y-3 max-h-[260px] overflow-y-auto pr-2",children:b.map(s=>{const i=_e.getCartItemActivePrice(s,{currencyCode:l,currencies:M}),m=Te.getTrialSummary(s);return e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex gap-3",children:[s.image_url?e.jsx("div",{className:"h-10 w-10 shrink-0 overflow-hidden rounded border bg-neutral-100",children:e.jsx("img",{src:s.image_url,alt:s.title,className:"h-full w-full object-cover"})}):null,e.jsxs("div",{className:"grid gap-0.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-xs line-clamp-1",children:s.title}),e.jsx(qe.Badge,{variant:"outline",className:"text-[9px] uppercase",children:Ue(s)})]}),s.variant_label?e.jsx("span",{className:"text-[10px] text-muted-foreground line-clamp-1",children:s.variant_label}):null,e.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[c("ecommerce.qty"),": ",s.quantity]}),m?e.jsxs("span",{className:"text-[10px] font-medium text-emerald-700",children:[m.label," - ",m.paymentRequirementLabel]}):null]})]}),e.jsxs("div",{className:"flex flex-col items-end gap-0.5 shrink-0",children:[e.jsx("span",{className:"font-medium text-xs",children:f.formatPrice((i.sale_price??i.price)*s.quantity,l)}),i.sale_price?e.jsx("span",{className:"text-[9px] text-muted-foreground line-through",children:f.formatPrice(i.price*s.quantity,l)}):null]})]},`${s.id}-${s.variant_id||"base"}`)})}),e.jsx(We.Separator,{}),e.jsx(cs.CouponForm,{items:b,currencyCode:l,onQuoteChange:Ee}),e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:c("ecommerce.subtotal")}),e.jsx("span",{children:f.formatPrice(De,l)})]}),v.length>0?e.jsxs("div",{className:"flex justify-between text-muted-foreground",children:[e.jsx("span",{children:r("ecommerce.physical_products","Physical products")}),e.jsx("span",{children:f.formatPrice(oe,l)})]}):null,C.length>0?e.jsxs("div",{className:"flex justify-between text-muted-foreground",children:[e.jsx("span",{children:r("ecommerce.digital_products","Digital products")}),e.jsx("span",{children:f.formatPrice(de,l)})]}):null,L?e.jsxs("div",{className:"flex justify-between text-emerald-600",children:[e.jsxs("span",{children:[r("ecommerce.discount","Discount")," (",L.code,")"]}),e.jsxs("span",{children:["-",f.formatPrice(L.discountTotal,l)]})]}):null,(v.length>0||C.length>0)&&e.jsxs("div",{className:"flex justify-between font-bold text-lg pt-2 border-t mt-2",children:[e.jsx("span",{children:r("ecommerce.estimated_total","Estimated total")}),e.jsx("span",{className:"text-primary",children:f.formatPrice(Be,l)})]})]})]})]}),v.length>0?e.jsxs(Ie,{title:r("ecommerce.stripe_checkout_title","Stripe Checkout"),description:r("ecommerce.stripe_checkout_description","Pay for physical products in one Stripe checkout session."),badgeLabel:Ke,children:[e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:r("ecommerce.physical_subtotal","Physical subtotal")}),e.jsx("span",{children:f.formatPrice(oe,l)})]}),ue>0?e.jsxs("div",{className:"flex justify-between text-emerald-600",children:[e.jsx("span",{children:r("ecommerce.discount","Discount")}),e.jsxs("span",{children:["-",f.formatPrice(ue,l)]})]}):null,e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:c("ecommerce.shipping")}),e.jsx("span",{children:ce?f.formatPrice(ce.amount,l):"-"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:r("ecommerce.tax","Tax")}),e.jsx("span",{children:Me?"...":k?.isPendingExternalCalculation?r("ecommerce.tax_calculated_on_stripe","Calculated on Stripe"):k?f.formatPrice(k.amount,l):"-"})]}),k&&k.lines.length>0?e.jsx("div",{className:"rounded-lg bg-muted/20 px-3 py-2 text-xs text-muted-foreground",children:k.lines.map(s=>e.jsxs("div",{className:"flex justify-between gap-3",children:[e.jsxs("span",{children:[s.name," (",s.rate.toFixed(4),"%)"]}),e.jsx("span",{children:f.formatPrice(s.amount,l)})]},s.id||`${s.name}-${s.rate}`))}):null,e.jsxs("div",{className:"flex justify-between font-semibold pt-2 border-t",children:[e.jsx("span",{children:r("ecommerce.total_on_stripe","Total on Stripe")}),e.jsx("span",{children:f.formatPrice(Ce,l)})]})]}),e.jsxs(he.Button,{className:"w-full",size:"lg",onClick:()=>we("stripe",v,"stripe"),disabled:Oe,children:[n==="stripe"?e.jsx(P.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):e.jsx(P.Package,{className:"mr-2 h-4 w-4"}),n==="stripe"?c("ecommerce.processing"):r("ecommerce.checkout_physical_products","Checkout Physical Products")]}),pe&&n===null?e.jsx("p",{className:"text-[11px] text-muted-foreground",children:pe}):null,h.stripe?e.jsx("div",{className:"rounded-lg border border-destructive/20 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:h.stripe}):null,e.jsx("p",{className:"text-[11px] text-muted-foreground",children:k?.isPendingExternalCalculation?r("checkout_stripe_tax_finalized_notice","Tax will be finalized by Stripe Tax on the payment step."):r("ecommerce.shipping_taxes_collected_on_stripe","Shipping and taxes are only collected during the Stripe step for physical products.")})]}):null,C.length>0?e.jsxs(Ie,{title:r("ecommerce.freemius_checkout_title","Freemius Checkout"),description:r("ecommerce.freemius_checkout_description","Digital products use the Freemius checkout flow."),badgeLabel:He,children:[e.jsx("div",{className:"space-y-3",children:C.map(s=>{const i=_e.getCartItemActivePrice(s,{currencyCode:l,currencies:M}),m=Te.getTrialSummary(s),u=`freemius:${s.id}`,_=m?j[u]||"paid":void 0;return e.jsxs("div",{className:"rounded-lg border p-3 space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:s.title}),s.billing_cycle?e.jsx("p",{className:"text-xs text-muted-foreground capitalize",children:Ge(s.billing_cycle)}):null,m?e.jsxs("p",{className:"text-xs font-medium text-emerald-700",children:[m.label," - ",m.paymentRequirementLabel]}):null]}),e.jsx("span",{className:"font-medium",children:f.formatPrice(i.sale_price??i.price,l)})]}),m&&!s.trial_requires_payment_method&&e.jsxs("div",{className:"bg-muted/30 p-3 rounded-md border text-sm mt-2 mb-3",children:[e.jsx("p",{className:"font-medium mb-3",children:r("ecommerce.freemius_trial_preference_title","How would you like to start your trial?")}),e.jsxs(xe.RadioGroup,{value:j[u]||"paid",onValueChange:p=>I(d=>({...d,[u]:p})),className:"gap-3",children:[e.jsxs("div",{className:"flex items-start space-x-3",children:[e.jsx(xe.RadioGroupItem,{value:"paid",id:`${u}-paid`,className:"mt-1"}),e.jsxs("div",{className:"grid gap-1.5",children:[e.jsx(N.Label,{htmlFor:`${u}-paid`,className:"font-medium leading-none cursor-pointer",children:r("ecommerce.freemius_trial_with_card","Enter Payment Details Now (Still get full trial length free)")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:r("ecommerce.freemius_trial_with_card_help","You will not be billed until the trial ends. Cancel anytime.")})]})]}),e.jsxs("div",{className:"flex items-start space-x-3",children:[e.jsx(xe.RadioGroupItem,{value:"free",id:`${u}-free`,className:"mt-1"}),e.jsx("div",{className:"grid gap-1.5",children:e.jsx(N.Label,{htmlFor:`${u}-free`,className:"font-medium leading-none cursor-pointer",children:r("ecommerce.freemius_trial_no_card","Start Free Trial (No card required)")})})]})]})]}),e.jsxs(he.Button,{className:"w-full h-auto min-h-[2.75rem] py-2",variant:C.length>1?"outline":"default",onClick:()=>we("freemius",[{...s,..._?{trial_preference:_}:{}}],u),disabled:n!==null,children:[n===u?e.jsx(P.Loader2,{className:"mr-2 h-4 w-4 shrink-0 animate-spin"}):e.jsx(P.Download,{className:"mr-2 h-4 w-4 shrink-0"}),e.jsx("span",{className:"whitespace-normal text-left",children:n===u?c("ecommerce.processing"):C.length>1?r("ecommerce.checkout_product","Checkout {title}",{title:s.title}):r("ecommerce.checkout_digital_product","Checkout Digital Product")})]})]},u)})}),e.jsxs("div",{className:"flex justify-between text-sm font-semibold border-t pt-3",children:[e.jsx("span",{children:r("ecommerce.digital_subtotal","Digital subtotal")}),e.jsx("span",{children:f.formatPrice(de,l)})]}),me>0?e.jsxs("div",{className:"flex justify-between text-sm font-semibold text-emerald-600",children:[e.jsx("span",{children:r("ecommerce.discount","Discount")}),e.jsxs("span",{children:["-",f.formatPrice(me,l)]})]}):null,h.freemius?e.jsx("div",{className:"rounded-lg border border-destructive/20 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:h.freemius}):null,e.jsx("p",{className:"text-[11px] text-muted-foreground",children:C.length>1?r("ecommerce.freemius_multi_checkout_notice","Freemius licenses are completed one at a time, so each digital product gets its own checkout action."):r("ecommerce.freemius_tax_notice","Taxes and compliance for digital products are handled inside the Freemius checkout.")})]}):null]})]})]})]})};exports.Checkout=ls;