@nextblock-cms/ecom 0.20.1 → 0.21.0

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 (317) hide show
  1. package/_virtual/_rolldown/runtime.cjs.js +1 -0
  2. package/index.cjs.js +1 -1
  3. package/index.es.js +38 -146
  4. package/lib/CurrencyProvider.cjs.js +1 -1
  5. package/lib/CurrencyProvider.d.ts +1 -1
  6. package/lib/CurrencyProvider.es.js +85 -95
  7. package/lib/PaymentReadinessProvider.cjs.js +1 -1
  8. package/lib/PaymentReadinessProvider.d.ts +1 -1
  9. package/lib/PaymentReadinessProvider.es.js +24 -27
  10. package/lib/cart-store.cjs.js +1 -1
  11. package/lib/cart-store.es.js +109 -121
  12. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  13. package/lib/components/AccountNavigationMenu.d.ts +1 -1
  14. package/lib/components/AccountNavigationMenu.es.js +36 -50
  15. package/lib/components/AddToCartButton.cjs.js +1 -1
  16. package/lib/components/AddToCartButton.d.ts +1 -1
  17. package/lib/components/AddToCartButton.es.js +94 -89
  18. package/lib/components/Cart.cjs.js +1 -1
  19. package/lib/components/Cart.d.ts +1 -1
  20. package/lib/components/Cart.es.js +261 -180
  21. package/lib/components/CartDrawer.cjs.js +1 -1
  22. package/lib/components/CartDrawer.d.ts +1 -1
  23. package/lib/components/CartDrawer.es.js +218 -148
  24. package/lib/components/CartIcon.cjs.js +1 -1
  25. package/lib/components/CartIcon.d.ts +1 -1
  26. package/lib/components/CartIcon.es.js +33 -35
  27. package/lib/components/Checkout.cjs.js +1 -1
  28. package/lib/components/Checkout.d.ts +1 -1
  29. package/lib/components/Checkout.es.js +1092 -1108
  30. package/lib/components/CouponForm.cjs.js +1 -1
  31. package/lib/components/CouponForm.d.ts +1 -1
  32. package/lib/components/CouponForm.es.js +136 -148
  33. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  34. package/lib/components/CurrencySwitcher.d.ts +1 -1
  35. package/lib/components/CurrencySwitcher.es.js +22 -18
  36. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  37. package/lib/components/CustomerProfileForm.es.js +454 -313
  38. package/lib/components/FeaturedProduct.cjs.js +1 -1
  39. package/lib/components/FeaturedProduct.d.ts +1 -1
  40. package/lib/components/FeaturedProduct.es.js +98 -83
  41. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  42. package/lib/components/FreemiusLicensePanel.d.ts +1 -1
  43. package/lib/components/FreemiusLicensePanel.es.js +70 -65
  44. package/lib/components/InvoiceDocument.cjs.js +1 -1
  45. package/lib/components/InvoiceDocument.es.js +256 -192
  46. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  47. package/lib/components/InvoiceViewerShell.d.ts +1 -1
  48. package/lib/components/InvoiceViewerShell.es.js +75 -106
  49. package/lib/components/ProductCard.cjs.js +1 -1
  50. package/lib/components/ProductCard.d.ts +1 -1
  51. package/lib/components/ProductCard.es.js +186 -171
  52. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  53. package/lib/components/ProductDetailsLayout.es.js +405 -404
  54. package/lib/components/ProductGallery.cjs.js +1 -1
  55. package/lib/components/ProductGallery.d.ts +1 -1
  56. package/lib/components/ProductGallery.es.js +51 -54
  57. package/lib/components/ProductGrid.cjs.js +1 -1
  58. package/lib/components/ProductGrid.d.ts +1 -1
  59. package/lib/components/ProductGrid.es.js +23 -25
  60. package/lib/components/ShippingEstimator.cjs.js +1 -1
  61. package/lib/components/ShippingEstimator.d.ts +1 -1
  62. package/lib/components/ShippingEstimator.es.js +158 -153
  63. package/lib/components/ShortDescription.cjs.js +1 -1
  64. package/lib/components/ShortDescription.es.js +17 -17
  65. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  66. package/lib/components/SimpleTiptapRenderer.es.js +238 -211
  67. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  68. package/lib/components/SubscriptionSelector.es.js +159 -154
  69. package/lib/countries.cjs.js +1 -1
  70. package/lib/countries.es.js +232 -75
  71. package/lib/coupon-server.cjs.js +1 -1
  72. package/lib/coupon-server.es.js +180 -224
  73. package/lib/coupons.cjs.js +1 -1
  74. package/lib/coupons.es.js +12 -14
  75. package/lib/currency-constants.cjs.js +1 -1
  76. package/lib/currency-constants.es.js +4 -4
  77. package/lib/currency-rest-client.cjs.js +1 -1
  78. package/lib/currency-rest-client.es.js +15 -22
  79. package/lib/currency-store.cjs.js +1 -1
  80. package/lib/currency-store.es.js +20 -27
  81. package/lib/currency-sync.cjs.js +1 -1
  82. package/lib/currency-sync.es.js +124 -170
  83. package/lib/currency.cjs.js +1 -1
  84. package/lib/currency.es.js +242 -310
  85. package/lib/customer-addresses.cjs.js +1 -1
  86. package/lib/customer-addresses.es.js +80 -109
  87. package/lib/customer-orders.cjs.js +1 -1
  88. package/lib/customer-orders.es.js +31 -43
  89. package/lib/customer.cjs.js +1 -1
  90. package/lib/customer.es.js +43 -52
  91. package/lib/export-helpers.cjs.js +1 -1
  92. package/lib/export-helpers.es.js +53 -52
  93. package/lib/factory.cjs.js +1 -1
  94. package/lib/factory.es.js +10 -7
  95. package/lib/freemius-coupons.cjs.js +1 -1
  96. package/lib/freemius-coupons.es.js +245 -262
  97. package/lib/freemius-license-claim.cjs.js +1 -1
  98. package/lib/freemius-license-claim.es.js +87 -71
  99. package/lib/freemius-license.cjs.js +1 -1
  100. package/lib/freemius-license.es.js +32 -39
  101. package/lib/freemius-order-sync.cjs.js +1 -1
  102. package/lib/freemius-order-sync.es.js +226 -290
  103. package/lib/freemius-trial-provision.cjs.js +1 -1
  104. package/lib/freemius-trial-provision.es.js +136 -130
  105. package/lib/inventory-settings.cjs.js +1 -1
  106. package/lib/inventory-settings.es.js +69 -77
  107. package/lib/invoice-server.cjs.js +3 -3
  108. package/lib/invoice-server.es.js +94 -141
  109. package/lib/invoice-ui.cjs.js +1 -1
  110. package/lib/invoice-ui.es.js +50 -66
  111. package/lib/invoice.cjs.js +1 -1
  112. package/lib/invoice.es.js +85 -94
  113. package/lib/order-inventory.cjs.js +25 -25
  114. package/lib/order-inventory.es.js +67 -79
  115. package/lib/order-tax-details.cjs.js +1 -1
  116. package/lib/order-tax-details.es.js +142 -153
  117. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  118. package/lib/pages/cms/coupons/CouponEditorForm.d.ts +1 -1
  119. package/lib/pages/cms/coupons/CouponEditorForm.es.js +227 -185
  120. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  121. package/lib/pages/cms/coupons/CouponsPage.d.ts +1 -1
  122. package/lib/pages/cms/coupons/CouponsPage.es.js +235 -166
  123. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  124. package/lib/pages/cms/coupons/CreateCouponDialog.d.ts +1 -1
  125. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +35 -34
  126. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  127. package/lib/pages/cms/coupons/EditCouponPage.d.ts +1 -1
  128. package/lib/pages/cms/coupons/EditCouponPage.es.js +47 -47
  129. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  130. package/lib/pages/cms/coupons/ProductScopePicker.d.ts +1 -1
  131. package/lib/pages/cms/coupons/ProductScopePicker.es.js +128 -117
  132. package/lib/pages/cms/coupons/actions.cjs.js +1 -1
  133. package/lib/pages/cms/coupons/actions.es.js +112 -115
  134. package/lib/pages/cms/coupons/index.cjs.js +1 -0
  135. package/lib/pages/cms/coupons/index.es.js +3 -0
  136. package/lib/pages/cms/coupons/product-options.cjs.js +1 -1
  137. package/lib/pages/cms/coupons/product-options.es.js +21 -23
  138. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  139. package/lib/pages/cms/orders/ExportReportsDialog.es.js +135 -129
  140. package/lib/pages/cms/orders/MarkPaidButton.d.ts +1 -1
  141. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  142. package/lib/pages/cms/orders/OrderDetailPage.d.ts +1 -1
  143. package/lib/pages/cms/orders/OrderDetailPage.es.js +186 -134
  144. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  145. package/lib/pages/cms/orders/OrderPrintButton.d.ts +1 -1
  146. package/lib/pages/cms/orders/OrderPrintButton.es.js +15 -21
  147. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  148. package/lib/pages/cms/orders/OrderStatusForm.d.ts +1 -1
  149. package/lib/pages/cms/orders/OrderStatusForm.es.js +85 -69
  150. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  151. package/lib/pages/cms/orders/OrdersPage.d.ts +1 -1
  152. package/lib/pages/cms/orders/OrdersPage.es.js +170 -102
  153. package/lib/pages/cms/orders/actions.cjs.js +3 -3
  154. package/lib/pages/cms/orders/actions.es.js +53 -69
  155. package/lib/pages/cms/orders/export-actions.cjs.js +1 -1
  156. package/lib/pages/cms/orders/export-actions.es.js +23 -26
  157. package/lib/pages/cms/orders/index.cjs.js +1 -0
  158. package/lib/pages/cms/orders/index.es.js +6 -0
  159. package/lib/pages/cms/orders/server-actions.cjs.js +1 -1
  160. package/lib/pages/cms/orders/server-actions.es.js +60 -51
  161. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  162. package/lib/pages/cms/payments/PaymentsClient.d.ts +1 -1
  163. package/lib/pages/cms/payments/PaymentsClient.es.js +316 -346
  164. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  165. package/lib/pages/cms/payments/PaymentsPage.d.ts +1 -1
  166. package/lib/pages/cms/payments/PaymentsPage.es.js +29 -32
  167. package/lib/pages/cms/payments/actions.cjs.js +1 -1
  168. package/lib/pages/cms/payments/actions.es.js +38 -48
  169. package/lib/pages/cms/payments/index.cjs.js +1 -0
  170. package/lib/pages/cms/payments/index.es.js +3 -0
  171. package/lib/pages/cms/payments/queries.cjs.js +1 -1
  172. package/lib/pages/cms/payments/queries.es.js +38 -48
  173. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  174. package/lib/pages/cms/products/ProductsPage.d.ts +1 -1
  175. package/lib/pages/cms/products/ProductsPage.es.js +63 -66
  176. package/lib/pages/cms/products/[id]/edit/EditProductPage.d.ts +1 -1
  177. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  178. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +138 -155
  179. package/lib/pages/cms/products/actions.cjs.js +4 -4
  180. package/lib/pages/cms/products/actions.es.js +121 -162
  181. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  182. package/lib/pages/cms/products/attributes/AttributeManagementPage.d.ts +1 -1
  183. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +55 -47
  184. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  185. package/lib/pages/cms/products/attributes/components/AttributeManager.d.ts +1 -1
  186. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +285 -290
  187. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  188. package/lib/pages/cms/products/categories/CategoryManagementPage.d.ts +1 -1
  189. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +43 -35
  190. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  191. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +315 -262
  192. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  193. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +115 -113
  194. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  195. package/lib/pages/cms/products/components/CurrencyPriceFields.d.ts +1 -1
  196. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +136 -145
  197. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  198. package/lib/pages/cms/products/components/DeleteProductButton.d.ts +1 -1
  199. package/lib/pages/cms/products/components/DeleteProductButton.es.js +35 -47
  200. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  201. package/lib/pages/cms/products/components/FreemiusPricingDashboard.d.ts +1 -1
  202. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +106 -84
  203. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  204. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +156 -159
  205. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  206. package/lib/pages/cms/products/components/ProductForm.es.js +872 -693
  207. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  208. package/lib/pages/cms/products/components/ProductMediaManager.es.js +106 -103
  209. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  210. package/lib/pages/cms/products/components/ProductsBulkTable.d.ts +1 -1
  211. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +303 -294
  212. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  213. package/lib/pages/cms/products/components/SaleScheduleFields.d.ts +1 -1
  214. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +111 -134
  215. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  216. package/lib/pages/cms/products/components/SyncFreemiusButton.d.ts +1 -1
  217. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +29 -35
  218. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  219. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.d.ts +1 -1
  220. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +36 -48
  221. package/lib/pages/cms/products/components/SyncProductForm.d.ts +1 -1
  222. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  223. package/lib/pages/cms/products/components/VariationsEditor.d.ts +1 -1
  224. package/lib/pages/cms/products/components/VariationsEditor.es.js +396 -405
  225. package/lib/pages/cms/products/index.cjs.js +1 -0
  226. package/lib/pages/cms/products/index.es.js +8 -0
  227. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  228. package/lib/pages/cms/products/inventory/InventoryPage.d.ts +1 -1
  229. package/lib/pages/cms/products/inventory/InventoryPage.es.js +21 -15
  230. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  231. package/lib/pages/cms/products/inventory/InventoryTableClient.d.ts +1 -1
  232. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +230 -209
  233. package/lib/pages/cms/products/inventory/actions.cjs.js +3 -3
  234. package/lib/pages/cms/products/inventory/actions.es.js +83 -91
  235. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  236. package/lib/pages/cms/products/new/NewProductPage.d.ts +1 -1
  237. package/lib/pages/cms/products/new/NewProductPage.es.js +58 -74
  238. package/lib/pages/cms/products/product-price-sync.cjs.js +1 -1
  239. package/lib/pages/cms/products/product-price-sync.es.js +74 -89
  240. package/lib/pages/cms/products/server-actions.cjs.js +1 -1
  241. package/lib/pages/cms/products/server-actions.es.js +250 -233
  242. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  243. package/lib/pages/cms/shipping/ShippingPage.es.js +287 -209
  244. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  245. package/lib/pages/cms/shipping/components/RateForm.d.ts +1 -1
  246. package/lib/pages/cms/shipping/components/RateForm.es.js +439 -436
  247. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  248. package/lib/pages/cms/shipping/components/ZoneForm.es.js +245 -224
  249. package/lib/pages/cms/shipping/index.cjs.js +1 -0
  250. package/lib/pages/cms/shipping/index.es.js +3 -0
  251. package/lib/pages/cms/shipping/server-actions.cjs.js +1 -1
  252. package/lib/pages/cms/shipping/server-actions.es.js +131 -149
  253. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  254. package/lib/pages/cms/taxes/TaxesPage.d.ts +1 -1
  255. package/lib/pages/cms/taxes/TaxesPage.es.js +211 -169
  256. package/lib/pages/cms/taxes/actions.cjs.js +1 -1
  257. package/lib/pages/cms/taxes/actions.es.js +41 -53
  258. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  259. package/lib/pages/cms/taxes/components/TaxRateForm.d.ts +1 -1
  260. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +112 -99
  261. package/lib/pages/cms/taxes/index.cjs.js +1 -0
  262. package/lib/pages/cms/taxes/index.es.js +3 -0
  263. package/lib/payment-config.cjs.js +1 -1
  264. package/lib/payment-config.es.js +110 -126
  265. package/lib/product-actions.cjs.js +4 -4
  266. package/lib/product-actions.es.js +289 -544
  267. package/lib/product-context.cjs.js +1 -1
  268. package/lib/product-context.es.js +13 -15
  269. package/lib/product-schema.cjs.js +1 -1
  270. package/lib/product-schema.es.js +99 -134
  271. package/lib/providers/freemius.cjs.js +1 -5
  272. package/lib/providers/freemius.es.js +446 -530
  273. package/lib/providers/stripe.cjs.js +1 -1
  274. package/lib/providers/stripe.es.js +417 -477
  275. package/lib/server-actions/coupon-actions.cjs.js +1 -1
  276. package/lib/server-actions/coupon-actions.es.js +22 -22
  277. package/lib/server-actions/customer-actions.cjs.js +1 -1
  278. package/lib/server-actions/customer-actions.es.js +26 -28
  279. package/lib/server-actions/product-actions.cjs.js +1 -1
  280. package/lib/server-actions/product-actions.es.js +9 -15
  281. package/lib/server-actions/shipping-actions.cjs.js +1 -1
  282. package/lib/server-actions/shipping-actions.es.js +27 -24
  283. package/lib/server-actions/tax-actions.cjs.js +1 -1
  284. package/lib/server-actions/tax-actions.es.js +33 -39
  285. package/lib/shared-inventory.cjs.js +2 -2
  286. package/lib/shared-inventory.es.js +111 -160
  287. package/lib/shipping/resolver.cjs.js +2 -2
  288. package/lib/shipping/resolver.es.js +44 -61
  289. package/lib/shipping-rate-currency.cjs.js +1 -1
  290. package/lib/shipping-rate-currency.es.js +52 -67
  291. package/lib/states.cjs.js +1 -1
  292. package/lib/states.es.js +333 -154
  293. package/lib/stripe/checkout.cjs.js +1 -1
  294. package/lib/stripe/checkout.es.js +125 -181
  295. package/lib/stripe/client.cjs.js +1 -1
  296. package/lib/stripe/client.es.js +14 -19
  297. package/lib/stripe/order-sync.cjs.js +1 -1
  298. package/lib/stripe/order-sync.es.js +106 -126
  299. package/lib/stripe/webhooks.cjs.js +1 -1
  300. package/lib/stripe/webhooks.es.js +37 -31
  301. package/lib/tax-calculation.cjs.js +1 -1
  302. package/lib/tax-calculation.es.js +84 -98
  303. package/lib/trials.cjs.js +1 -1
  304. package/lib/trials.es.js +24 -30
  305. package/lib/types.cjs.js +1 -1
  306. package/lib/types.es.js +21 -27
  307. package/lib/use-cart.cjs.js +1 -1
  308. package/lib/use-cart.es.js +38 -40
  309. package/lib/use-price-formatter.cjs.js +1 -1
  310. package/lib/use-price-formatter.es.js +10 -11
  311. package/lib/variation-utils.cjs.js +1 -1
  312. package/lib/variation-utils.es.js +199 -261
  313. package/lib/zod-config.cjs.js +1 -1
  314. package/lib/zod-config.es.js +5 -6
  315. package/package.json +16 -16
  316. package/server.cjs.js +1 -1
  317. package/server.es.js +56 -211
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),g=require("./AddToCartButton.cjs.js"),v=require("./ShortDescription.cjs.js"),n=require("@nextblock-cms/utils"),b=require("../use-price-formatter.cjs.js"),m=require("next/link"),j=require("../CurrencyProvider.cjs.js"),x=require("../currency.cjs.js"),_=require("../trials.cjs.js"),y=({product:e,className:u,imagePosition:h="left"})=>{const t=b.usePriceFormatter(),{t:i}=n.useTranslations(),{activeCurrencyCode:s,currencies:o}=j.useCurrency(),l=x.resolvePriceRangeForCurrency({entries:e.variants?.length?e.variants:e.product_variants?.length?e.product_variants:[],currencyCode:s,currencies:o}),d=!!(e.has_variants&&l),a=x.resolveEffectivePriceForCurrency({prices:e.prices,salePrices:e.sale_prices,fallbackPrice:e.price,fallbackSalePrice:e.sale_price,saleStartAt:e.sale_start_at,saleEndAt:e.sale_end_at,scheduledPrice:e.scheduled_price,scheduledPrices:e.scheduled_prices,scheduledPriceAt:e.scheduled_price_at,currencyCode:s,currencies:o}),f=d&&l?l.min===l.max?t(l.min,s):`${t(l.min,s)} - ${t(l.max,s)}`:t(a.sale_price??a.price,s),c=_.getTrialSummary(e,i);return r.jsx("div",{className:n.cn("overflow-hidden rounded-xl border bg-card shadow-sm",u),children:r.jsxs("div",{className:n.cn("flex flex-col gap-8 md:flex-row",h==="right"&&"md:flex-row-reverse"),children:[r.jsx("div",{className:"relative aspect-square w-full md:w-1/2",children:e.image_url?r.jsx("img",{src:e.image_url,alt:e.title,width:800,height:800,loading:"lazy",decoding:"async",className:"h-full w-full object-cover"}):r.jsx("div",{className:"flex h-full w-full items-center justify-center bg-secondary text-muted-foreground",children:i("ecommerce.no_image")})}),r.jsxs("div",{className:"flex flex-1 flex-col justify-center p-6 md:p-12",children:[r.jsx(m,{href:`/product/${e.slug}`,children:r.jsx("h2",{className:"mb-4 text-3xl font-bold tracking-tight hover:underline md:text-4xl",children:e.title})}),r.jsxs("div",{className:"mb-6 flex items-baseline gap-3",children:[r.jsx("span",{className:"text-3xl font-bold text-primary",children:f}),!d&&a.sale_price&&r.jsx("span",{className:"text-lg text-muted-foreground line-through",children:t(a.price,s)})]}),c&&r.jsxs("div",{className:"mb-6 inline-flex w-fit flex-col rounded-md border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm text-emerald-900",children:[r.jsx("span",{className:"font-semibold",children:c.label}),r.jsx("span",{className:"text-emerald-700",children:c.paymentRequirementLabel})]}),r.jsx(v.ShortDescription,{value:e.short_description,className:"mb-8 text-lg text-muted-foreground"}),r.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row",children:[r.jsx(g.AddToCartButton,{product:e,className:"h-12 w-full px-8 text-lg sm:w-auto"}),r.jsx(m,{href:`/product/${e.slug}`,className:"inline-flex h-12 items-center justify-center rounded-md border border-input bg-background px-8 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground",children:i("ecommerce.view_details")})]})]})]})})};exports.FeaturedProduct=y;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../currency.cjs.js"),n=require("../CurrencyProvider.cjs.js"),r=require("../use-price-formatter.cjs.js"),i=require("../trials.cjs.js"),a=require("./AddToCartButton.cjs.js"),o=require("./ShortDescription.cjs.js");let s=require("next/link");s=e.__toESM(s,1);let c=require("@nextblock-cms/utils"),l=require("react/jsx-runtime");var u=({product:e,className:u,imagePosition:d=`left`})=>{let f=r.usePriceFormatter(),{t:p}=(0,c.useTranslations)(),{activeCurrencyCode:m,currencies:h}=n.useCurrency(),g=t.resolvePriceRangeForCurrency({entries:e.variants?.length?e.variants:e.product_variants?.length?e.product_variants:[],currencyCode:m,currencies:h}),_=!!(e.has_variants&&g),v=t.resolveEffectivePriceForCurrency({prices:e.prices,salePrices:e.sale_prices,fallbackPrice:e.price,fallbackSalePrice:e.sale_price,saleStartAt:e.sale_start_at,saleEndAt:e.sale_end_at,scheduledPrice:e.scheduled_price,scheduledPrices:e.scheduled_prices,scheduledPriceAt:e.scheduled_price_at,currencyCode:m,currencies:h}),y=_&&g?g.min===g.max?f(g.min,m):`${f(g.min,m)} - ${f(g.max,m)}`:f(v.sale_price??v.price,m),b=i.getTrialSummary(e,p);return(0,l.jsx)(`div`,{className:(0,c.cn)(`overflow-hidden rounded-xl border bg-card shadow-sm`,u),children:(0,l.jsxs)(`div`,{className:(0,c.cn)(`flex flex-col gap-8 md:flex-row`,d===`right`&&`md:flex-row-reverse`),children:[(0,l.jsx)(`div`,{className:`relative aspect-square w-full md:w-1/2`,children:e.image_url?(0,l.jsx)(`img`,{src:e.image_url,alt:e.title,width:800,height:800,loading:`lazy`,decoding:`async`,className:`h-full w-full object-cover`}):(0,l.jsx)(`div`,{className:`flex h-full w-full items-center justify-center bg-secondary text-muted-foreground`,children:p(`ecommerce.no_image`)})}),(0,l.jsxs)(`div`,{className:`flex flex-1 flex-col justify-center p-6 md:p-12`,children:[(0,l.jsx)(s.default,{href:`/product/${e.slug}`,children:(0,l.jsx)(`h2`,{className:`mb-4 text-3xl font-bold tracking-tight hover:underline md:text-4xl`,children:e.title})}),(0,l.jsxs)(`div`,{className:`mb-6 flex items-baseline gap-3`,children:[(0,l.jsx)(`span`,{className:`text-3xl font-bold text-primary`,children:y}),!_&&v.sale_price&&(0,l.jsx)(`span`,{className:`text-lg text-muted-foreground line-through`,children:f(v.price,m)})]}),b&&(0,l.jsxs)(`div`,{className:`mb-6 inline-flex w-fit flex-col rounded-md border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm text-emerald-900`,children:[(0,l.jsx)(`span`,{className:`font-semibold`,children:b.label}),(0,l.jsx)(`span`,{className:`text-emerald-700`,children:b.paymentRequirementLabel})]}),(0,l.jsx)(o.ShortDescription,{value:e.short_description,className:`mb-8 text-lg text-muted-foreground`}),(0,l.jsxs)(`div`,{className:`flex flex-col gap-4 sm:flex-row`,children:[(0,l.jsx)(a.AddToCartButton,{product:e,className:`h-12 w-full px-8 text-lg sm:w-auto`}),(0,l.jsx)(s.default,{href:`/product/${e.slug}`,className:`inline-flex h-12 items-center justify-center rounded-md border border-input bg-background px-8 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground`,children:p(`ecommerce.view_details`)})]})]})]})})};exports.FeaturedProduct=u;
@@ -4,5 +4,5 @@ interface FeaturedProductProps {
4
4
  className?: string;
5
5
  imagePosition?: 'left' | 'right';
6
6
  }
7
- export declare const FeaturedProduct: ({ product, className, imagePosition }: FeaturedProductProps) => import("react").JSX.Element;
7
+ export declare const FeaturedProduct: ({ product, className, imagePosition }: FeaturedProductProps) => import('react').JSX.Element;
8
8
  export {};
@@ -1,84 +1,99 @@
1
- 'use client';
2
- import { jsx as r, jsxs as s } from "react/jsx-runtime";
3
- import { AddToCartButton as g } from "./AddToCartButton.es.js";
4
- import { ShortDescription as v } from "./ShortDescription.es.js";
5
- import { useTranslations as b, cn as d } from "@nextblock-cms/utils";
6
- import { usePriceFormatter as p } from "../use-price-formatter.es.js";
7
- import f from "next/link";
8
- import { useCurrency as _ } from "../CurrencyProvider.es.js";
9
- import { resolvePriceRangeForCurrency as y, resolveEffectivePriceForCurrency as N } from "../currency.es.js";
10
- import { getTrialSummary as w } from "../trials.es.js";
11
- const L = ({ product: e, className: h, imagePosition: x = "left" }) => {
12
- const i = p(), { t: n } = b(), { activeCurrencyCode: l, currencies: m } = _(), a = y({
13
- entries: e.variants?.length ? e.variants : e.product_variants?.length ? e.product_variants : [],
14
- currencyCode: l,
15
- currencies: m
16
- }), o = !!(e.has_variants && a), t = N({
17
- prices: e.prices,
18
- salePrices: e.sale_prices,
19
- fallbackPrice: e.price,
20
- fallbackSalePrice: e.sale_price,
21
- saleStartAt: e.sale_start_at,
22
- saleEndAt: e.sale_end_at,
23
- scheduledPrice: e.scheduled_price,
24
- scheduledPrices: e.scheduled_prices,
25
- scheduledPriceAt: e.scheduled_price_at,
26
- currencyCode: l,
27
- currencies: m
28
- }), u = o && a ? a.min === a.max ? i(a.min, l) : `${i(a.min, l)} - ${i(
29
- a.max,
30
- l
31
- )}` : i(t.sale_price ?? t.price, l), c = w(e, n);
32
- return /* @__PURE__ */ r("div", { className: d("overflow-hidden rounded-xl border bg-card shadow-sm", h), children: /* @__PURE__ */ s("div", { className: d("flex flex-col gap-8 md:flex-row", x === "right" && "md:flex-row-reverse"), children: [
33
- /* @__PURE__ */ r("div", { className: "relative aspect-square w-full md:w-1/2", children: e.image_url ? /* @__PURE__ */ r(
34
- "img",
35
- {
36
- src: e.image_url,
37
- alt: e.title,
38
- width: 800,
39
- height: 800,
40
- loading: "lazy",
41
- decoding: "async",
42
- className: "h-full w-full object-cover"
43
- }
44
- ) : /* @__PURE__ */ r("div", { className: "flex h-full w-full items-center justify-center bg-secondary text-muted-foreground", children: n("ecommerce.no_image") }) }),
45
- /* @__PURE__ */ s("div", { className: "flex flex-1 flex-col justify-center p-6 md:p-12", children: [
46
- /* @__PURE__ */ r(f, { href: `/product/${e.slug}`, children: /* @__PURE__ */ r("h2", { className: "mb-4 text-3xl font-bold tracking-tight hover:underline md:text-4xl", children: e.title }) }),
47
- /* @__PURE__ */ s("div", { className: "mb-6 flex items-baseline gap-3", children: [
48
- /* @__PURE__ */ r("span", { className: "text-3xl font-bold text-primary", children: u }),
49
- !o && t.sale_price && /* @__PURE__ */ r("span", { className: "text-lg text-muted-foreground line-through", children: i(t.price, l) })
50
- ] }),
51
- c && /* @__PURE__ */ s("div", { className: "mb-6 inline-flex w-fit flex-col rounded-md border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm text-emerald-900", children: [
52
- /* @__PURE__ */ r("span", { className: "font-semibold", children: c.label }),
53
- /* @__PURE__ */ r("span", { className: "text-emerald-700", children: c.paymentRequirementLabel })
54
- ] }),
55
- /* @__PURE__ */ r(
56
- v,
57
- {
58
- value: e.short_description,
59
- className: "mb-8 text-lg text-muted-foreground"
60
- }
61
- ),
62
- /* @__PURE__ */ s("div", { className: "flex flex-col gap-4 sm:flex-row", children: [
63
- /* @__PURE__ */ r(
64
- g,
65
- {
66
- product: e,
67
- className: "h-12 w-full px-8 text-lg sm:w-auto"
68
- }
69
- ),
70
- /* @__PURE__ */ r(
71
- f,
72
- {
73
- href: `/product/${e.slug}`,
74
- className: "inline-flex h-12 items-center justify-center rounded-md border border-input bg-background px-8 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground",
75
- children: n("ecommerce.view_details")
76
- }
77
- )
78
- ] })
79
- ] })
80
- ] }) });
81
- };
82
- export {
83
- L as FeaturedProduct
1
+ "use client";
2
+ import { resolveEffectivePriceForCurrency as e, resolvePriceRangeForCurrency as t } from "../currency.es.js";
3
+ import { useCurrency as n } from "../CurrencyProvider.es.js";
4
+ import { usePriceFormatter as r } from "../use-price-formatter.es.js";
5
+ import { getTrialSummary as i } from "../trials.es.js";
6
+ import { AddToCartButton as a } from "./AddToCartButton.es.js";
7
+ import { ShortDescription as o } from "./ShortDescription.es.js";
8
+ import s from "next/link";
9
+ import { cn as c, useTranslations as l } from "@nextblock-cms/utils";
10
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
11
+ //#region libs/ecommerce/src/lib/components/FeaturedProduct.tsx
12
+ var f = ({ product: f, className: p, imagePosition: m = "left" }) => {
13
+ let h = r(), { t: g } = l(), { activeCurrencyCode: _, currencies: v } = n(), y = t({
14
+ entries: f.variants?.length ? f.variants : f.product_variants?.length ? f.product_variants : [],
15
+ currencyCode: _,
16
+ currencies: v
17
+ }), b = !!(f.has_variants && y), x = e({
18
+ prices: f.prices,
19
+ salePrices: f.sale_prices,
20
+ fallbackPrice: f.price,
21
+ fallbackSalePrice: f.sale_price,
22
+ saleStartAt: f.sale_start_at,
23
+ saleEndAt: f.sale_end_at,
24
+ scheduledPrice: f.scheduled_price,
25
+ scheduledPrices: f.scheduled_prices,
26
+ scheduledPriceAt: f.scheduled_price_at,
27
+ currencyCode: _,
28
+ currencies: v
29
+ }), S = b && y ? y.min === y.max ? h(y.min, _) : `${h(y.min, _)} - ${h(y.max, _)}` : h(x.sale_price ?? x.price, _), C = i(f, g);
30
+ return /* @__PURE__ */ u("div", {
31
+ className: c("overflow-hidden rounded-xl border bg-card shadow-sm", p),
32
+ children: /* @__PURE__ */ d("div", {
33
+ className: c("flex flex-col gap-8 md:flex-row", m === "right" && "md:flex-row-reverse"),
34
+ children: [/* @__PURE__ */ u("div", {
35
+ className: "relative aspect-square w-full md:w-1/2",
36
+ children: f.image_url ? /* @__PURE__ */ u("img", {
37
+ src: f.image_url,
38
+ alt: f.title,
39
+ width: 800,
40
+ height: 800,
41
+ loading: "lazy",
42
+ decoding: "async",
43
+ className: "h-full w-full object-cover"
44
+ }) : /* @__PURE__ */ u("div", {
45
+ className: "flex h-full w-full items-center justify-center bg-secondary text-muted-foreground",
46
+ children: g("ecommerce.no_image")
47
+ })
48
+ }), /* @__PURE__ */ d("div", {
49
+ className: "flex flex-1 flex-col justify-center p-6 md:p-12",
50
+ children: [
51
+ /* @__PURE__ */ u(s, {
52
+ href: `/product/${f.slug}`,
53
+ children: /* @__PURE__ */ u("h2", {
54
+ className: "mb-4 text-3xl font-bold tracking-tight hover:underline md:text-4xl",
55
+ children: f.title
56
+ })
57
+ }),
58
+ /* @__PURE__ */ d("div", {
59
+ className: "mb-6 flex items-baseline gap-3",
60
+ children: [/* @__PURE__ */ u("span", {
61
+ className: "text-3xl font-bold text-primary",
62
+ children: S
63
+ }), !b && x.sale_price && /* @__PURE__ */ u("span", {
64
+ className: "text-lg text-muted-foreground line-through",
65
+ children: h(x.price, _)
66
+ })]
67
+ }),
68
+ C && /* @__PURE__ */ d("div", {
69
+ className: "mb-6 inline-flex w-fit flex-col rounded-md border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm text-emerald-900",
70
+ children: [/* @__PURE__ */ u("span", {
71
+ className: "font-semibold",
72
+ children: C.label
73
+ }), /* @__PURE__ */ u("span", {
74
+ className: "text-emerald-700",
75
+ children: C.paymentRequirementLabel
76
+ })]
77
+ }),
78
+ /* @__PURE__ */ u(o, {
79
+ value: f.short_description,
80
+ className: "mb-8 text-lg text-muted-foreground"
81
+ }),
82
+ /* @__PURE__ */ d("div", {
83
+ className: "flex flex-col gap-4 sm:flex-row",
84
+ children: [/* @__PURE__ */ u(a, {
85
+ product: f,
86
+ className: "h-12 w-full px-8 text-lg sm:w-auto"
87
+ }), /* @__PURE__ */ u(s, {
88
+ href: `/product/${f.slug}`,
89
+ className: "inline-flex h-12 items-center justify-center rounded-md border border-input bg-background px-8 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground",
90
+ children: g("ecommerce.view_details")
91
+ })]
92
+ })
93
+ ]
94
+ })]
95
+ })
96
+ });
84
97
  };
98
+ //#endregion
99
+ export { f as FeaturedProduct };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),r=require("lucide-react"),x=require("@nextblock-cms/ui/button"),p=require("@nextblock-cms/utils"),a=require("../invoice-ui.cjs.js"),f=require("../invoice.cjs.js");function y({license:s}){const{t,lang:o}=p.useTranslations(),[l,n]=u.useState(!1);if(!s)return null;const m=a.getInvoiceLocale(o),c=s.expiration??s.trialEndsAt,i=c?f.formatInvoiceDate(c,m):null,d=async()=>{if(!(!s.licenseKey||typeof navigator>"u"||!navigator.clipboard))try{await navigator.clipboard.writeText(s.licenseKey),n(!0),window.setTimeout(()=>n(!1),2e3)}catch{}};return e.jsxs("div",{className:"mb-6 rounded-2xl border border-primary/30 bg-primary/5 p-5 print:hidden",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(r.KeyRound,{className:"h-5 w-5 text-primary"}),e.jsx("h2",{className:"text-lg font-semibold",children:a.translateOrFallback(t,"ecommerce.license_panel_title","Your license")})]}),s.licenseKey?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:a.translateOrFallback(t,"ecommerce.license_panel_help","Activate this key in your NextBlock install under Settings → Packages.")}),e.jsxs("div",{className:"mt-3 flex flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsx("code",{translate:"no",className:"flex-1 select-all overflow-x-auto rounded-lg border bg-background px-3 py-2 font-mono text-sm",children:s.licenseKey}),e.jsxs(x.Button,{type:"button",variant:"default",onClick:d,className:"shrink-0",children:[l?e.jsx(r.Check,{className:"mr-2 h-4 w-4"}):e.jsx(r.Copy,{className:"mr-2 h-4 w-4"}),l?a.translateOrFallback(t,"ecommerce.license_copied","Copied"):a.translateOrFallback(t,"ecommerce.license_copy","Copy key")]})]})]}):e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:a.translateOrFallback(t,"ecommerce.license_panel_email_fallback","Your license key was sent to your email. It will also appear here once your purchase is confirmed.")}),e.jsxs("dl",{className:"mt-4 grid gap-x-6 gap-y-1 text-xs text-muted-foreground sm:grid-cols-2",children:[e.jsxs("div",{className:"flex justify-between gap-3 sm:block",children:[e.jsx("dt",{className:"font-medium",children:a.translateOrFallback(t,"ecommerce.license_number","License #")}),e.jsx("dd",{className:"font-mono",children:s.licenseId})]}),i?e.jsxs("div",{className:"flex justify-between gap-3 sm:block",children:[e.jsx("dt",{className:"font-medium",children:s.isCancelled?a.translateOrFallback(t,"ecommerce.license_expires","Expires"):s.trialEndsAt?a.translateOrFallback(t,"ecommerce.license_trial_ends","Trial ends"):a.translateOrFallback(t,"ecommerce.license_renews","Renews / expires")}),e.jsx("dd",{children:i})]}):null]})]})}exports.FreemiusLicensePanel=y;
1
+ "use client";const e=require("../invoice-ui.cjs.js"),t=require("../invoice.cjs.js");let n=require("@nextblock-cms/ui/button"),r=require("react"),i=require("lucide-react"),a=require("@nextblock-cms/utils"),o=require("react/jsx-runtime");function s({license:s}){let{t:c,lang:l}=(0,a.useTranslations)(),[u,d]=(0,r.useState)(!1);if(!s)return null;let f=e.getInvoiceLocale(l),p=s.expiration??s.trialEndsAt,m=p?t.formatInvoiceDate(p,f):null;return(0,o.jsxs)(`div`,{className:`mb-6 rounded-2xl border border-primary/30 bg-primary/5 p-5 print:hidden`,children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(i.KeyRound,{className:`h-5 w-5 text-primary`}),(0,o.jsx)(`h2`,{className:`text-lg font-semibold`,children:e.translateOrFallback(c,`ecommerce.license_panel_title`,`Your license`)})]}),s.licenseKey?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e.translateOrFallback(c,`ecommerce.license_panel_help`,`Activate this key in your NextBlock install under Settings → Packages.`)}),(0,o.jsxs)(`div`,{className:`mt-3 flex flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,o.jsx)(`code`,{translate:`no`,className:`flex-1 select-all overflow-x-auto rounded-lg border bg-background px-3 py-2 font-mono text-sm`,children:s.licenseKey}),(0,o.jsxs)(n.Button,{type:`button`,variant:`default`,onClick:async()=>{if(s.licenseKey&&typeof navigator<`u`&&navigator.clipboard)try{await navigator.clipboard.writeText(s.licenseKey),d(!0),window.setTimeout(()=>d(!1),2e3)}catch{}},className:`shrink-0`,children:[u?(0,o.jsx)(i.Check,{className:`mr-2 h-4 w-4`}):(0,o.jsx)(i.Copy,{className:`mr-2 h-4 w-4`}),u?e.translateOrFallback(c,`ecommerce.license_copied`,`Copied`):e.translateOrFallback(c,`ecommerce.license_copy`,`Copy key`)]})]})]}):(0,o.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e.translateOrFallback(c,`ecommerce.license_panel_email_fallback`,`Your license key was sent to your email. It will also appear here once your purchase is confirmed.`)}),(0,o.jsxs)(`dl`,{className:`mt-4 grid gap-x-6 gap-y-1 text-xs text-muted-foreground sm:grid-cols-2`,children:[(0,o.jsxs)(`div`,{className:`flex justify-between gap-3 sm:block`,children:[(0,o.jsx)(`dt`,{className:`font-medium`,children:e.translateOrFallback(c,`ecommerce.license_number`,`License #`)}),(0,o.jsx)(`dd`,{className:`font-mono`,children:s.licenseId})]}),m?(0,o.jsxs)(`div`,{className:`flex justify-between gap-3 sm:block`,children:[(0,o.jsx)(`dt`,{className:`font-medium`,children:s.isCancelled?e.translateOrFallback(c,`ecommerce.license_expires`,`Expires`):s.trialEndsAt?e.translateOrFallback(c,`ecommerce.license_trial_ends`,`Trial ends`):e.translateOrFallback(c,`ecommerce.license_renews`,`Renews / expires`)}),(0,o.jsx)(`dd`,{children:m})]}):null]})]})}exports.FreemiusLicensePanel=s;
@@ -2,5 +2,5 @@ import { FreemiusOrderLicense } from '../freemius-license-types';
2
2
  interface FreemiusLicensePanelProps {
3
3
  license?: FreemiusOrderLicense | null;
4
4
  }
5
- export declare function FreemiusLicensePanel({ license }: FreemiusLicensePanelProps): import("react").JSX.Element | null;
5
+ export declare function FreemiusLicensePanel({ license }: FreemiusLicensePanelProps): import('react').JSX.Element | null;
6
6
  export {};
@@ -1,66 +1,71 @@
1
- 'use client';
2
- import { jsxs as l, jsx as e, Fragment as p } from "react/jsx-runtime";
3
- import { useState as u } from "react";
4
- import { KeyRound as f, Check as x, Copy as h } from "lucide-react";
5
- import { Button as y } from "@nextblock-cms/ui/button";
6
- import { useTranslations as g } from "@nextblock-cms/utils";
7
- import { translateOrFallback as a, getInvoiceLocale as b } from "../invoice-ui.es.js";
8
- import { formatInvoiceDate as N } from "../invoice.es.js";
9
- function E({ license: r }) {
10
- const { t, lang: i } = g(), [n, o] = u(!1);
11
- if (!r)
12
- return null;
13
- const m = b(i), s = r.expiration ?? r.trialEndsAt, c = s ? N(s, m) : null, d = async () => {
14
- if (!(!r.licenseKey || typeof navigator > "u" || !navigator.clipboard))
15
- try {
16
- await navigator.clipboard.writeText(r.licenseKey), o(!0), window.setTimeout(() => o(!1), 2e3);
17
- } catch {
18
- }
19
- };
20
- return /* @__PURE__ */ l("div", { className: "mb-6 rounded-2xl border border-primary/30 bg-primary/5 p-5 print:hidden", children: [
21
- /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
22
- /* @__PURE__ */ e(f, { className: "h-5 w-5 text-primary" }),
23
- /* @__PURE__ */ e("h2", { className: "text-lg font-semibold", children: a(t, "ecommerce.license_panel_title", "Your license") })
24
- ] }),
25
- r.licenseKey ? /* @__PURE__ */ l(p, { children: [
26
- /* @__PURE__ */ e("p", { className: "mt-1 text-sm text-muted-foreground", children: a(
27
- t,
28
- "ecommerce.license_panel_help",
29
- "Activate this key in your NextBlock install under Settings → Packages."
30
- ) }),
31
- /* @__PURE__ */ l("div", { className: "mt-3 flex flex-col gap-2 sm:flex-row sm:items-center", children: [
32
- /* @__PURE__ */ e("code", { translate: "no", className: "flex-1 select-all overflow-x-auto rounded-lg border bg-background px-3 py-2 font-mono text-sm", children: r.licenseKey }),
33
- /* @__PURE__ */ l(
34
- y,
35
- {
36
- type: "button",
37
- variant: "default",
38
- onClick: d,
39
- className: "shrink-0",
40
- children: [
41
- n ? /* @__PURE__ */ e(x, { className: "mr-2 h-4 w-4" }) : /* @__PURE__ */ e(h, { className: "mr-2 h-4 w-4" }),
42
- n ? a(t, "ecommerce.license_copied", "Copied") : a(t, "ecommerce.license_copy", "Copy key")
43
- ]
44
- }
45
- )
46
- ] })
47
- ] }) : /* @__PURE__ */ e("p", { className: "mt-1 text-sm text-muted-foreground", children: a(
48
- t,
49
- "ecommerce.license_panel_email_fallback",
50
- "Your license key was sent to your email. It will also appear here once your purchase is confirmed."
51
- ) }),
52
- /* @__PURE__ */ l("dl", { className: "mt-4 grid gap-x-6 gap-y-1 text-xs text-muted-foreground sm:grid-cols-2", children: [
53
- /* @__PURE__ */ l("div", { className: "flex justify-between gap-3 sm:block", children: [
54
- /* @__PURE__ */ e("dt", { className: "font-medium", children: a(t, "ecommerce.license_number", "License #") }),
55
- /* @__PURE__ */ e("dd", { className: "font-mono", children: r.licenseId })
56
- ] }),
57
- c ? /* @__PURE__ */ l("div", { className: "flex justify-between gap-3 sm:block", children: [
58
- /* @__PURE__ */ e("dt", { className: "font-medium", children: r.isCancelled ? a(t, "ecommerce.license_expires", "Expires") : r.trialEndsAt ? a(t, "ecommerce.license_trial_ends", "Trial ends") : a(t, "ecommerce.license_renews", "Renews / expires") }),
59
- /* @__PURE__ */ e("dd", { children: c })
60
- ] }) : null
61
- ] })
62
- ] });
1
+ "use client";
2
+ import { getInvoiceLocale as e, translateOrFallback as t } from "../invoice-ui.es.js";
3
+ import { formatInvoiceDate as n } from "../invoice.es.js";
4
+ import { Button as r } from "@nextblock-cms/ui/button";
5
+ import { useState as i } from "react";
6
+ import { Check as a, Copy as o, KeyRound as s } from "lucide-react";
7
+ import { useTranslations as c } from "@nextblock-cms/utils";
8
+ import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
9
+ //#region libs/ecommerce/src/lib/components/FreemiusLicensePanel.tsx
10
+ function f({ license: f }) {
11
+ let { t: p, lang: m } = c(), [h, g] = i(!1);
12
+ if (!f) return null;
13
+ let _ = e(m), v = f.expiration ?? f.trialEndsAt, y = v ? n(v, _) : null;
14
+ return /* @__PURE__ */ d("div", {
15
+ className: "mb-6 rounded-2xl border border-primary/30 bg-primary/5 p-5 print:hidden",
16
+ children: [
17
+ /* @__PURE__ */ d("div", {
18
+ className: "flex items-center gap-2",
19
+ children: [/* @__PURE__ */ u(s, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ u("h2", {
20
+ className: "text-lg font-semibold",
21
+ children: t(p, "ecommerce.license_panel_title", "Your license")
22
+ })]
23
+ }),
24
+ f.licenseKey ? /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("p", {
25
+ className: "mt-1 text-sm text-muted-foreground",
26
+ children: t(p, "ecommerce.license_panel_help", "Activate this key in your NextBlock install under Settings → Packages.")
27
+ }), /* @__PURE__ */ d("div", {
28
+ className: "mt-3 flex flex-col gap-2 sm:flex-row sm:items-center",
29
+ children: [/* @__PURE__ */ u("code", {
30
+ translate: "no",
31
+ className: "flex-1 select-all overflow-x-auto rounded-lg border bg-background px-3 py-2 font-mono text-sm",
32
+ children: f.licenseKey
33
+ }), /* @__PURE__ */ d(r, {
34
+ type: "button",
35
+ variant: "default",
36
+ onClick: async () => {
37
+ if (f.licenseKey && typeof navigator < "u" && navigator.clipboard) try {
38
+ await navigator.clipboard.writeText(f.licenseKey), g(!0), window.setTimeout(() => g(!1), 2e3);
39
+ } catch {}
40
+ },
41
+ className: "shrink-0",
42
+ children: [u(h ? a : o, { className: "mr-2 h-4 w-4" }), h ? t(p, "ecommerce.license_copied", "Copied") : t(p, "ecommerce.license_copy", "Copy key")]
43
+ })]
44
+ })] }) : /* @__PURE__ */ u("p", {
45
+ className: "mt-1 text-sm text-muted-foreground",
46
+ children: t(p, "ecommerce.license_panel_email_fallback", "Your license key was sent to your email. It will also appear here once your purchase is confirmed.")
47
+ }),
48
+ /* @__PURE__ */ d("dl", {
49
+ className: "mt-4 grid gap-x-6 gap-y-1 text-xs text-muted-foreground sm:grid-cols-2",
50
+ children: [/* @__PURE__ */ d("div", {
51
+ className: "flex justify-between gap-3 sm:block",
52
+ children: [/* @__PURE__ */ u("dt", {
53
+ className: "font-medium",
54
+ children: t(p, "ecommerce.license_number", "License #")
55
+ }), /* @__PURE__ */ u("dd", {
56
+ className: "font-mono",
57
+ children: f.licenseId
58
+ })]
59
+ }), y ? /* @__PURE__ */ d("div", {
60
+ className: "flex justify-between gap-3 sm:block",
61
+ children: [/* @__PURE__ */ u("dt", {
62
+ className: "font-medium",
63
+ children: f.isCancelled ? t(p, "ecommerce.license_expires", "Expires") : f.trialEndsAt ? t(p, "ecommerce.license_trial_ends", "Trial ends") : t(p, "ecommerce.license_renews", "Renews / expires")
64
+ }), /* @__PURE__ */ u("dd", { children: y })]
65
+ }) : null]
66
+ })
67
+ ]
68
+ });
63
69
  }
64
- export {
65
- E as FreemiusLicensePanel
66
- };
70
+ //#endregion
71
+ export { f as FreemiusLicensePanel };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),j=require("next/image"),n=require("../invoice.cjs.js"),l=require("../order-tax-details.cjs.js");function y({data:t,labels:r,locale:i="en-US",className:c=""}){const m=n.getInvoiceAddressLines(t.settings.address),u=n.getInvoiceAddressLines(t.order.customer_details?.billing),h=n.getInvoiceAddressLines(t.order.customer_details?.shipping);return e.jsxs("section",{className:`rounded-2xl border bg-white text-slate-900 shadow-sm print:rounded-none print:border-0 print:text-[10px] print:shadow-none ${c}`,children:[e.jsx("div",{className:"border-b px-6 py-6 print:px-0",children:e.jsxs("div",{className:"grid gap-6 md:grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] md:items-start print:grid-cols-[minmax(0,1fr)_72px_280px] print:items-start print:gap-4",children:[e.jsxs("div",{className:"order-2 max-w-md space-y-4 print:order-none print:max-w-none print:space-y-2 md:order-none",children:[e.jsxs("div",{className:"space-y-1 text-sm print:text-[10px]",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.2em] text-slate-500",children:r.from}),t.settings.businessName?e.jsx("p",{className:"text-base font-semibold",children:t.settings.businessName}):null,m.map((s,p)=>e.jsx("p",{children:s},`seller-${p}-${s}`)),t.settings.email?e.jsx("p",{children:t.settings.email}):null,t.settings.phone?e.jsx("p",{children:t.settings.phone}):null]}),t.settings.taxRegistrations.length>0?e.jsxs("div",{className:"rounded-xl border bg-slate-50 px-4 py-3 text-sm print:px-3 print:py-2 print:text-[10px]",children:[e.jsx("p",{className:"mb-2 font-semibold",children:r.taxRegistrations}),e.jsx("div",{className:"space-y-1",children:t.settings.taxRegistrations.map((s,p)=>e.jsxs("p",{children:[e.jsx("span",{className:"font-medium",children:s.label}),s.label&&s.value?": ":"",s.value]},`${s.label}-${s.value}-${p}`))})]}):null]}),e.jsx("div",{className:"order-1 flex justify-center md:order-none md:pt-2 print:order-none print:pt-1",children:t.logo?.url?e.jsx(j,{src:t.logo.url,alt:t.logo.name||t.settings.businessName||"Logo",className:"mx-auto h-24 w-auto object-contain print:h-14",width:t.logo.width||320,height:t.logo.height||120}):null}),e.jsx("div",{className:"order-3 flex justify-start md:order-none md:justify-end print:order-none",children:e.jsxs("div",{className:"w-full max-w-[380px] rounded-2xl bg-slate-950 px-5 py-5 text-white print:max-w-none print:border print:border-slate-300 print:bg-white print:px-3 print:py-3 print:text-[10px] print:text-slate-950",children:[e.jsx("p",{className:"text-xs uppercase tracking-[0.2em] text-white/70 print:text-slate-500",children:r.invoice}),e.jsxs("div",{className:"mt-4 space-y-3 text-sm print:mt-3 print:space-y-2 print:text-[10px]",children:[e.jsx(d,{label:r.invoiceNumber,value:t.order.invoice_number||"--"}),e.jsx(d,{label:r.orderNumber,value:t.order.id}),e.jsx(d,{label:r.paidOn,value:n.formatInvoiceDate(t.order.paid_at||t.order.created_at,i)||"--"}),e.jsx(d,{label:r.status,value:t.order.status})]})]})})]})}),e.jsxs("div",{className:"grid gap-4 border-b px-6 py-6 md:grid-cols-2 print:grid-cols-2 print:gap-3 print:px-0 print:py-3",children:[e.jsx(a,{title:r.billTo,lines:u}),e.jsx(a,{title:r.shipTo,lines:h})]}),e.jsxs("div",{className:"px-6 py-6 print:px-0 print:py-3",children:[e.jsx("div",{className:"overflow-x-auto rounded-2xl border print:overflow-visible",children:e.jsxs("table",{className:"w-full border-collapse text-sm tabular-nums print:table-fixed print:text-[9px]",children:[e.jsx("thead",{className:"bg-slate-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-3 text-left font-semibold print:w-[22%] print:px-2 print:py-1.5",children:r.item}),e.jsx("th",{className:"px-4 py-3 text-left font-semibold print:w-[38%] print:px-2 print:py-1.5",children:r.details}),e.jsx("th",{className:"px-4 py-3 text-right font-semibold print:w-[10%] print:px-2 print:py-1.5",children:r.quantity}),e.jsx("th",{className:"px-4 py-3 text-right font-semibold print:w-[15%] print:px-2 print:py-1.5",children:r.price}),e.jsx("th",{className:"px-4 py-3 text-right font-semibold print:w-[15%] print:px-2 print:py-1.5",children:r.amount})]})}),e.jsx("tbody",{children:t.order.items.map(s=>e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"px-4 py-4 font-medium print:px-2 print:py-1.5",children:s.title}),e.jsx("td",{className:"px-4 py-4 text-slate-600 print:px-2 print:py-1.5",children:s.description||"--"}),e.jsx("td",{className:"px-4 py-4 text-right print:px-2 print:py-1.5",children:s.quantity}),e.jsx("td",{className:"px-4 py-4 text-right print:px-2 print:py-1.5",children:n.formatInvoiceCurrency(s.unit_amount,t.order.currency,i)}),e.jsx("td",{className:"px-4 py-4 text-right font-medium print:px-2 print:py-1.5",children:n.formatInvoiceCurrency(s.total_amount,t.order.currency,i)})]},s.id))})]})}),e.jsxs("div",{className:"mt-6 grid gap-6 md:grid-cols-[minmax(0,1fr)_320px] print:mt-4 print:grid-cols-[minmax(0,1fr)_220px] print:items-start print:gap-4",children:[e.jsx("div",{children:t.order.tax_details?.lines?.length?e.jsxs("div",{className:"rounded-xl border bg-slate-50 px-5 py-4 print:break-inside-avoid print:px-3 print:py-2.5 print:text-[10px]",children:[e.jsx("p",{className:"mb-3 font-semibold",children:r.taxBreakdown}),e.jsx("div",{className:"space-y-3 text-sm print:space-y-2 print:text-[10px]",children:t.order.tax_details.lines.map((s,p)=>{const o=l.getOrderTaxRatePercentage(s.rate);return e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"font-medium",children:[l.getOrderTaxRateLabel(s.rate),typeof o=="number"?` - ${o.toFixed(4)}%`:""]}),l.getOrderTaxRateJurisdiction(s.rate)?e.jsx("p",{className:"text-xs text-slate-500 print:text-[9px]",children:l.getOrderTaxRateJurisdiction(s.rate)}):null]}),e.jsx("span",{children:n.formatInvoiceCurrency(s.amount,t.order.currency,i)})]},`${s.rate.display_name}-${s.description||"tax"}-${p}`)})})]}):null}),e.jsxs("div",{className:"rounded-xl border bg-slate-950 px-5 py-5 text-sm text-white print:break-inside-avoid print:border-slate-300 print:bg-white print:px-3 print:py-3 print:text-[10px] print:text-slate-950",children:[e.jsxs("div",{className:"space-y-3 print:space-y-2",children:[e.jsx(x,{label:r.subtotal,value:n.formatInvoiceCurrency(t.order.subtotal,t.order.currency,i)}),t.order.discount_total>0?e.jsx(x,{label:t.order.coupon_code?`${r.discount} (${t.order.coupon_code})`:r.discount,value:`-${n.formatInvoiceCurrency(t.order.discount_total,t.order.currency,i)}`}):null,e.jsx(x,{label:r.shipping,value:n.formatInvoiceCurrency(t.order.shipping_total,t.order.currency,i)}),e.jsx(x,{label:r.tax,value:n.formatInvoiceCurrency(t.order.tax_total,t.order.currency,i)})]}),e.jsx("div",{className:"mt-4 border-t border-white/15 pt-4 print:mt-3 print:border-slate-300 print:pt-3",children:e.jsx(x,{label:r.total,value:n.formatInvoiceCurrency(t.order.total,t.order.currency,i),strong:!0})})]})]})]})]})}function a({title:t,lines:r}){return e.jsxs("div",{className:"rounded-xl border bg-slate-50 px-5 py-4 print:break-inside-avoid print:px-3 print:py-2.5 print:text-[10px]",children:[e.jsx("p",{className:"mb-3 text-xs font-semibold uppercase tracking-[0.2em] text-slate-500",children:t}),r.length?e.jsx("div",{className:"space-y-1 text-sm print:text-[10px]",children:r.map((i,c)=>e.jsx("p",{children:i},`${t}-${c}-${i}`))}):e.jsx("p",{className:"text-sm text-slate-500",children:"--"})]})}function d({label:t,value:r}){return e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("span",{className:"text-white/70 print:text-[9px] print:text-slate-500",children:t}),e.jsx("span",{className:"text-right font-medium",children:r})]})}function x({label:t,value:r,strong:i=!1}){return e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("span",{className:i?"text-base font-semibold print:text-sm":"text-white/75 print:text-[9px] print:text-slate-500",children:t}),e.jsx("span",{className:i?"text-lg font-semibold print:text-base":"font-medium",children:r})]})}exports.InvoiceDocument=y;
1
+ const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../invoice.cjs.js"),n=require("../order-tax-details.cjs.js");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime"),a=require("next/image");a=e.__toESM(a,1);function o({data:e,labels:r,locale:o=`en-US`,className:u=``}){let d=t.getInvoiceAddressLines(e.settings.address),f=t.getInvoiceAddressLines(e.order.customer_details?.billing),p=t.getInvoiceAddressLines(e.order.customer_details?.shipping);return(0,i.jsxs)(`section`,{className:`rounded-2xl border bg-white text-slate-900 shadow-sm print:rounded-none print:border-0 print:text-[10px] print:shadow-none ${u}`,children:[(0,i.jsx)(`div`,{className:`border-b px-6 py-6 print:px-0`,children:(0,i.jsxs)(`div`,{className:`grid gap-6 md:grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] md:items-start print:grid-cols-[minmax(0,1fr)_72px_280px] print:items-start print:gap-4`,children:[(0,i.jsxs)(`div`,{className:`order-2 max-w-md space-y-4 print:order-none print:max-w-none print:space-y-2 md:order-none`,children:[(0,i.jsxs)(`div`,{className:`space-y-1 text-sm print:text-[10px]`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.2em] text-slate-500`,children:r.from}),e.settings.businessName?(0,i.jsx)(`p`,{className:`text-base font-semibold`,children:e.settings.businessName}):null,d.map((e,t)=>(0,i.jsx)(`p`,{children:e},`seller-${t}-${e}`)),e.settings.email?(0,i.jsx)(`p`,{children:e.settings.email}):null,e.settings.phone?(0,i.jsx)(`p`,{children:e.settings.phone}):null]}),e.settings.taxRegistrations.length>0?(0,i.jsxs)(`div`,{className:`rounded-xl border bg-slate-50 px-4 py-3 text-sm print:px-3 print:py-2 print:text-[10px]`,children:[(0,i.jsx)(`p`,{className:`mb-2 font-semibold`,children:r.taxRegistrations}),(0,i.jsx)(`div`,{className:`space-y-1`,children:e.settings.taxRegistrations.map((e,t)=>(0,i.jsxs)(`p`,{children:[(0,i.jsx)(`span`,{className:`font-medium`,children:e.label}),e.label&&e.value?`: `:``,e.value]},`${e.label}-${e.value}-${t}`))})]}):null]}),(0,i.jsx)(`div`,{className:`order-1 flex justify-center md:order-none md:pt-2 print:order-none print:pt-1`,children:e.logo?.url?(0,i.jsx)(a.default,{src:e.logo.url,alt:e.logo.name||e.settings.businessName||`Logo`,className:`mx-auto h-24 w-auto object-contain print:h-14`,width:e.logo.width||320,height:e.logo.height||120}):null}),(0,i.jsx)(`div`,{className:`order-3 flex justify-start md:order-none md:justify-end print:order-none`,children:(0,i.jsxs)(`div`,{className:`w-full max-w-[380px] rounded-2xl bg-slate-950 px-5 py-5 text-white print:max-w-none print:border print:border-slate-300 print:bg-white print:px-3 print:py-3 print:text-[10px] print:text-slate-950`,children:[(0,i.jsx)(`p`,{className:`text-xs uppercase tracking-[0.2em] text-white/70 print:text-slate-500`,children:r.invoice}),(0,i.jsxs)(`div`,{className:`mt-4 space-y-3 text-sm print:mt-3 print:space-y-2 print:text-[10px]`,children:[(0,i.jsx)(c,{label:r.invoiceNumber,value:e.order.invoice_number||`--`}),(0,i.jsx)(c,{label:r.orderNumber,value:e.order.id}),(0,i.jsx)(c,{label:r.paidOn,value:t.formatInvoiceDate(e.order.paid_at||e.order.created_at,o)||`--`}),(0,i.jsx)(c,{label:r.status,value:e.order.status})]})]})})]})}),(0,i.jsxs)(`div`,{className:`grid gap-4 border-b px-6 py-6 md:grid-cols-2 print:grid-cols-2 print:gap-3 print:px-0 print:py-3`,children:[(0,i.jsx)(s,{title:r.billTo,lines:f}),(0,i.jsx)(s,{title:r.shipTo,lines:p})]}),(0,i.jsxs)(`div`,{className:`px-6 py-6 print:px-0 print:py-3`,children:[(0,i.jsx)(`div`,{className:`overflow-x-auto rounded-2xl border print:overflow-visible`,children:(0,i.jsxs)(`table`,{className:`w-full border-collapse text-sm tabular-nums print:table-fixed print:text-[9px]`,children:[(0,i.jsx)(`thead`,{className:`bg-slate-50`,children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{className:`px-4 py-3 text-left font-semibold print:w-[22%] print:px-2 print:py-1.5`,children:r.item}),(0,i.jsx)(`th`,{className:`px-4 py-3 text-left font-semibold print:w-[38%] print:px-2 print:py-1.5`,children:r.details}),(0,i.jsx)(`th`,{className:`px-4 py-3 text-right font-semibold print:w-[10%] print:px-2 print:py-1.5`,children:r.quantity}),(0,i.jsx)(`th`,{className:`px-4 py-3 text-right font-semibold print:w-[15%] print:px-2 print:py-1.5`,children:r.price}),(0,i.jsx)(`th`,{className:`px-4 py-3 text-right font-semibold print:w-[15%] print:px-2 print:py-1.5`,children:r.amount})]})}),(0,i.jsx)(`tbody`,{children:e.order.items.map(n=>(0,i.jsxs)(`tr`,{className:`border-t`,children:[(0,i.jsx)(`td`,{className:`px-4 py-4 font-medium print:px-2 print:py-1.5`,children:n.title}),(0,i.jsx)(`td`,{className:`px-4 py-4 text-slate-600 print:px-2 print:py-1.5`,children:n.description||`--`}),(0,i.jsx)(`td`,{className:`px-4 py-4 text-right print:px-2 print:py-1.5`,children:n.quantity}),(0,i.jsx)(`td`,{className:`px-4 py-4 text-right print:px-2 print:py-1.5`,children:t.formatInvoiceCurrency(n.unit_amount,e.order.currency,o)}),(0,i.jsx)(`td`,{className:`px-4 py-4 text-right font-medium print:px-2 print:py-1.5`,children:t.formatInvoiceCurrency(n.total_amount,e.order.currency,o)})]},n.id))})]})}),(0,i.jsxs)(`div`,{className:`mt-6 grid gap-6 md:grid-cols-[minmax(0,1fr)_320px] print:mt-4 print:grid-cols-[minmax(0,1fr)_220px] print:items-start print:gap-4`,children:[(0,i.jsx)(`div`,{children:e.order.tax_details?.lines?.length?(0,i.jsxs)(`div`,{className:`rounded-xl border bg-slate-50 px-5 py-4 print:break-inside-avoid print:px-3 print:py-2.5 print:text-[10px]`,children:[(0,i.jsx)(`p`,{className:`mb-3 font-semibold`,children:r.taxBreakdown}),(0,i.jsx)(`div`,{className:`space-y-3 text-sm print:space-y-2 print:text-[10px]`,children:e.order.tax_details.lines.map((r,a)=>{let s=n.getOrderTaxRatePercentage(r.rate);return(0,i.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`p`,{className:`font-medium`,children:[n.getOrderTaxRateLabel(r.rate),typeof s==`number`?` - ${s.toFixed(4)}%`:``]}),n.getOrderTaxRateJurisdiction(r.rate)?(0,i.jsx)(`p`,{className:`text-xs text-slate-500 print:text-[9px]`,children:n.getOrderTaxRateJurisdiction(r.rate)}):null]}),(0,i.jsx)(`span`,{children:t.formatInvoiceCurrency(r.amount,e.order.currency,o)})]},`${r.rate.display_name}-${r.description||`tax`}-${a}`)})})]}):null}),(0,i.jsxs)(`div`,{className:`rounded-xl border bg-slate-950 px-5 py-5 text-sm text-white print:break-inside-avoid print:border-slate-300 print:bg-white print:px-3 print:py-3 print:text-[10px] print:text-slate-950`,children:[(0,i.jsxs)(`div`,{className:`space-y-3 print:space-y-2`,children:[(0,i.jsx)(l,{label:r.subtotal,value:t.formatInvoiceCurrency(e.order.subtotal,e.order.currency,o)}),e.order.discount_total>0?(0,i.jsx)(l,{label:e.order.coupon_code?`${r.discount} (${e.order.coupon_code})`:r.discount,value:`-${t.formatInvoiceCurrency(e.order.discount_total,e.order.currency,o)}`}):null,(0,i.jsx)(l,{label:r.shipping,value:t.formatInvoiceCurrency(e.order.shipping_total,e.order.currency,o)}),(0,i.jsx)(l,{label:r.tax,value:t.formatInvoiceCurrency(e.order.tax_total,e.order.currency,o)})]}),(0,i.jsx)(`div`,{className:`mt-4 border-t border-white/15 pt-4 print:mt-3 print:border-slate-300 print:pt-3`,children:(0,i.jsx)(l,{label:r.total,value:t.formatInvoiceCurrency(e.order.total,e.order.currency,o),strong:!0})})]})]})]})]})}function s({title:e,lines:t}){return(0,i.jsxs)(`div`,{className:`rounded-xl border bg-slate-50 px-5 py-4 print:break-inside-avoid print:px-3 print:py-2.5 print:text-[10px]`,children:[(0,i.jsx)(`p`,{className:`mb-3 text-xs font-semibold uppercase tracking-[0.2em] text-slate-500`,children:e}),t.length?(0,i.jsx)(`div`,{className:`space-y-1 text-sm print:text-[10px]`,children:t.map((t,n)=>(0,i.jsx)(`p`,{children:t},`${e}-${n}-${t}`))}):(0,i.jsx)(`p`,{className:`text-sm text-slate-500`,children:`--`})]})}function c({label:e,value:t}){return(0,i.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,i.jsx)(`span`,{className:`text-white/70 print:text-[9px] print:text-slate-500`,children:e}),(0,i.jsx)(`span`,{className:`text-right font-medium`,children:t})]})}function l({label:e,value:t,strong:n=!1}){return(0,i.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,i.jsx)(`span`,{className:n?`text-base font-semibold print:text-sm`:`text-white/75 print:text-[9px] print:text-slate-500`,children:e}),(0,i.jsx)(`span`,{className:n?`text-lg font-semibold print:text-base`:`font-medium`,children:t})]})}exports.InvoiceDocument=o;