@nextblock-cms/ecom 0.19.0 → 0.19.3

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 (161) hide show
  1. package/index.cjs.js +1 -1
  2. package/index.es.js +26 -25
  3. package/lib/CurrencyProvider.cjs.js +1 -1
  4. package/lib/CurrencyProvider.es.js +41 -45
  5. package/lib/PaymentReadinessProvider.cjs.js +1 -1
  6. package/lib/PaymentReadinessProvider.es.js +15 -19
  7. package/lib/cart-store.cjs.js +1 -1
  8. package/lib/cart-store.d.ts +4 -0
  9. package/lib/cart-store.es.js +77 -69
  10. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  11. package/lib/components/AccountNavigationMenu.es.js +44 -62
  12. package/lib/components/AddToCartButton.cjs.js +1 -1
  13. package/lib/components/AddToCartButton.es.js +50 -78
  14. package/lib/components/Cart.cjs.js +1 -1
  15. package/lib/components/Cart.d.ts +1 -1
  16. package/lib/components/Cart.es.js +158 -377
  17. package/lib/components/CartDrawer.cjs.js +1 -1
  18. package/lib/components/CartDrawer.es.js +143 -297
  19. package/lib/components/CartIcon.cjs.js +1 -1
  20. package/lib/components/CartIcon.es.js +21 -47
  21. package/lib/components/Checkout.cjs.js +1 -1
  22. package/lib/components/Checkout.d.ts +1 -1
  23. package/lib/components/Checkout.es.js +839 -1627
  24. package/lib/components/CouponForm.cjs.js +1 -1
  25. package/lib/components/CouponForm.es.js +104 -155
  26. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  27. package/lib/components/CurrencySwitcher.es.js +14 -33
  28. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  29. package/lib/components/CustomerProfileForm.d.ts +1 -1
  30. package/lib/components/CustomerProfileForm.es.js +264 -672
  31. package/lib/components/FeaturedProduct.cjs.js +1 -1
  32. package/lib/components/FeaturedProduct.es.js +54 -126
  33. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  34. package/lib/components/FreemiusLicensePanel.es.js +45 -125
  35. package/lib/components/InvoiceDocument.cjs.js +1 -1
  36. package/lib/components/InvoiceDocument.es.js +148 -487
  37. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  38. package/lib/components/InvoiceViewerShell.d.ts +4 -1
  39. package/lib/components/InvoiceViewerShell.es.js +59 -142
  40. package/lib/components/ProductCard.cjs.js +1 -1
  41. package/lib/components/ProductCard.d.ts +3 -1
  42. package/lib/components/ProductCard.es.js +128 -242
  43. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  44. package/lib/components/ProductDetailsLayout.es.js +315 -657
  45. package/lib/components/ProductGallery.cjs.js +1 -1
  46. package/lib/components/ProductGallery.d.ts +2 -0
  47. package/lib/components/ProductGallery.es.js +37 -66
  48. package/lib/components/ProductGrid.cjs.js +1 -1
  49. package/lib/components/ProductGrid.es.js +23 -32
  50. package/lib/components/ShippingEstimator.cjs.js +1 -1
  51. package/lib/components/ShippingEstimator.es.js +124 -231
  52. package/lib/components/ShortDescription.cjs.js +1 -0
  53. package/lib/components/ShortDescription.d.ts +19 -0
  54. package/lib/components/ShortDescription.es.js +18 -0
  55. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  56. package/lib/components/SimpleTiptapRenderer.es.js +111 -294
  57. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  58. package/lib/components/SubscriptionSelector.es.js +120 -181
  59. package/lib/components/media/MediaPickerDialog.d.ts +1 -1
  60. package/lib/components/media/MediaUploadForm.d.ts +1 -1
  61. package/lib/invoice.cjs.js +1 -1
  62. package/lib/invoice.d.ts +1 -1
  63. package/lib/invoice.es.js +6 -5
  64. package/lib/order-inventory.d.ts +1 -1
  65. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  66. package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
  67. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  68. package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
  69. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  70. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
  71. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  72. package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
  73. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  74. package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
  75. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  76. package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
  77. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  78. package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
  79. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  80. package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
  81. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  82. package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
  83. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  84. package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
  85. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  86. package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
  87. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  88. package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
  89. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  90. package/lib/pages/cms/products/ProductsPage.es.js +47 -87
  91. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  92. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
  93. package/lib/pages/cms/products/actions.d.ts +20 -20
  94. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  95. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
  96. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  97. package/lib/pages/cms/products/attributes/components/AttributeManager.d.ts +1 -1
  98. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
  99. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  100. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
  101. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  102. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
  103. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  104. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
  105. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  106. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
  107. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  108. package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
  109. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  110. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
  111. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  112. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
  113. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  114. package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
  115. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  116. package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
  117. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  118. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
  119. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  120. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
  121. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  122. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
  123. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  124. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
  125. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  126. package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
  127. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  128. package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
  129. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  130. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
  131. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  132. package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
  133. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  134. package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
  135. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  136. package/lib/pages/cms/shipping/components/RateForm.d.ts +1 -1
  137. package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
  138. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  139. package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
  140. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  141. package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
  142. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  143. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
  144. package/lib/product-actions.d.ts +31 -31
  145. package/lib/product-context.cjs.js +1 -1
  146. package/lib/product-context.es.js +10 -14
  147. package/lib/shared-inventory.d.ts +1 -1
  148. package/lib/states.cjs.js +1 -1
  149. package/lib/states.d.ts +2 -0
  150. package/lib/states.es.js +63 -29
  151. package/lib/trials.cjs.js +1 -1
  152. package/lib/trials.d.ts +10 -3
  153. package/lib/trials.es.js +28 -21
  154. package/lib/types.d.ts +2 -0
  155. package/lib/use-price-formatter.cjs.js +1 -0
  156. package/lib/use-price-formatter.d.ts +11 -0
  157. package/lib/use-price-formatter.es.js +13 -0
  158. package/lib/variation-utils.cjs.js +1 -1
  159. package/lib/variation-utils.d.ts +10 -0
  160. package/lib/variation-utils.es.js +139 -123
  161. package/package.json +4 -4
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),n=require("@nextblock-cms/db/server"),s=require("@nextblock-cms/ui"),t=require("lucide-react"),d=require("next/link"),g=require("../../../inventory-settings.cjs.js"),h=require("../../../states.cjs.js"),f=require("../payments/queries.cjs.js"),x=require("./actions.cjs.js"),N=require("./components/TaxRateForm.cjs.js");function k(a){return`${a.toFixed(4).replace(/\.?0+$/,"")}%`}function D(a){return a.state_code?`${a.country_code} - ${h.resolveSubdivisionName(a.country_code,a.state_code)}`:`${a.country_code} - Country-wide`}async function j({searchParams:a}){const u=n.createClient(),b=n.getServiceRoleSupabaseClient(),[r,p,c]=await Promise.all([g.getEcommerceInventorySettings(u),f.getEnabledPaymentProviders(),b.from("tax_rates").select("id, country_code, state_code, tax_name, tax_rate, created_at, updated_at").order("country_code").order("state_code").order("tax_name")]),m=c.data||[],o=c.error,l=p.stripe;return e.jsxDEV("div",{className:"mx-auto w-full max-w-6xl space-y-6 px-6 py-8",children:[a?.success?e.jsxDEV("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 px-4 py-3 text-sm text-emerald-700",children:a.success},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:58,columnNumber:9},this):null,e.jsxDEV("div",{className:"flex items-center justify-between gap-4",children:[e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV(s.Button,{asChild:!0,variant:"outline",size:"icon","aria-label":"Back to shipping",children:e.jsxDEV(d,{href:"/cms/shipping",children:e.jsxDEV(t.ArrowLeft,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:67,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:66,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:65,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("h1",{className:"text-2xl font-bold",children:"Tax Settings"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:71,columnNumber:13},this),e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Configure Stripe tax behavior globally and maintain manual country or state/province tax rates for physical goods."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:72,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:70,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:64,columnNumber:9},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(s.Badge,{variant:l?"default":"outline",className:"uppercase",children:["Stripe ",l?"Enabled":"Disabled"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:79,columnNumber:11},this),e.jsxDEV("div",{className:"rounded-full border bg-muted/30 p-3 text-muted-foreground",children:e.jsxDEV(t.Settings2,{className:"h-5 w-5"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:83,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:82,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:63,columnNumber:7},this),l?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(s.Card,{children:[e.jsxDEV(s.CardHeader,{children:[e.jsxDEV(s.CardTitle,{children:"Global Tax Controls"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:107,columnNumber:15},this),e.jsxDEV(s.CardDescription,{children:"Manual mode uses the tax rates below. Automatic mode uses Stripe Tax during Stripe Checkout instead of a free third-party tax API."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:108,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:106,columnNumber:13},this),e.jsxDEV(s.CardContent,{children:e.jsxDEV("form",{action:x.updateTaxSettingsAction,className:"space-y-6",children:[e.jsxDEV("div",{className:"rounded-lg border bg-muted/20 p-4",children:[e.jsxDEV("input",{type:"hidden",name:"enableTaxes",value:"false"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:116,columnNumber:19},this),e.jsxDEV("label",{htmlFor:"enable-taxes",className:"flex cursor-pointer items-start gap-3",children:[e.jsxDEV("input",{id:"enable-taxes",name:"enableTaxes",type:"checkbox",value:"true",defaultChecked:r.enableTaxes,className:"mt-1 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:118,columnNumber:21},this),e.jsxDEV("span",{className:"space-y-1",children:[e.jsxDEV("span",{className:"block font-medium",children:"Enable taxes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:127,columnNumber:23},this),e.jsxDEV("span",{className:"block text-sm text-muted-foreground",children:"When disabled, tax totals resolve to zero even if product or jurisdiction records exist."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:128,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:126,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:117,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:115,columnNumber:17},this),e.jsxDEV("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_auto] md:items-end",children:[e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{htmlFor:"tax-calculation-mode",className:"text-sm font-medium text-foreground",children:"Tax calculation mode"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:138,columnNumber:21},this),e.jsxDEV("select",{id:"tax-calculation-mode",name:"taxCalculationMode",defaultValue:r.taxCalculationMode,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",children:[e.jsxDEV("option",{value:"manual",children:"Manual tax rates"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:150,columnNumber:23},this),e.jsxDEV("option",{value:"automatic",children:"Automatic via Stripe Tax"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:151,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:144,columnNumber:21},this),e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Automatic mode depends on your Stripe Tax setup. Manual rates stay saved and can be used again if you switch back later."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:153,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:137,columnNumber:19},this),e.jsxDEV("div",{className:"flex justify-end",children:e.jsxDEV(s.Button,{type:"submit",children:"Save Tax Settings"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:159,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:158,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:136,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:114,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:113,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:105,columnNumber:11},this),e.jsxDEV(s.Card,{children:[e.jsxDEV(s.CardHeader,{children:e.jsxDEV("div",{className:"flex items-center justify-between gap-4",children:[e.jsxDEV("div",{children:[e.jsxDEV(s.CardTitle,{children:"Manual Tax Rates"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:170,columnNumber:19},this),e.jsxDEV(s.CardDescription,{children:"Add combined taxes as separate rows. For example, create both GST and PST for the same province if they should stack."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:171,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:169,columnNumber:17},this),e.jsxDEV(s.Badge,{variant:r.taxCalculationMode==="manual"?"default":"outline",children:r.taxCalculationMode==="manual"?"Active Mode":"Stored for Manual Mode"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:176,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:168,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:167,columnNumber:13},this),e.jsxDEV(s.CardContent,{className:"space-y-6",children:[o?e.jsxDEV("div",{className:"rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800",children:"Tax rates couldn't be loaded yet. This usually means the new tax migration hasn't been applied to the current database."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:183,columnNumber:17},this):null,o?null:e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"rounded-xl border bg-card p-4",children:[e.jsxDEV("div",{className:"mb-4 flex items-center gap-2",children:[e.jsxDEV(t.ShieldCheck,{className:"h-4 w-4 text-primary"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:193,columnNumber:23},this),e.jsxDEV("h2",{className:"font-semibold",children:"Create a Tax Rate"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:194,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:192,columnNumber:21},this),e.jsxDEV(N.TaxRateForm,{},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:196,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:191,columnNumber:19},this),e.jsxDEV("div",{className:"space-y-4",children:m.length===0?e.jsxDEV("div",{className:"rounded-xl border border-dashed bg-muted/10 px-4 py-8 text-center",children:[e.jsxDEV("p",{className:"font-medium",children:"No manual tax rates yet"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:202,columnNumber:25},this),e.jsxDEV("p",{className:"mt-1 text-sm text-muted-foreground",children:"Add country-wide or state/province-specific rows to start calculating manual taxes."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:203,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:201,columnNumber:23},this):m.map(i=>e.jsxDEV(s.Card,{className:"border-muted",children:[e.jsxDEV(s.CardHeader,{className:"pb-4",children:e.jsxDEV("div",{className:"flex items-start justify-between gap-4",children:[e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(s.CardTitle,{className:"text-base",children:i.tax_name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:214,columnNumber:33},this),e.jsxDEV(s.CardDescription,{children:D(i)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:215,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:213,columnNumber:31},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(s.Badge,{variant:"outline",children:k(Number(i.tax_rate))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:218,columnNumber:33},this),e.jsxDEV("form",{action:async()=>{"use server";await x.deleteTaxRateAction(i.id)},children:e.jsxDEV(s.Button,{type:"submit",variant:"ghost",size:"icon","aria-label":"Delete tax rate",children:e.jsxDEV(t.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:233,columnNumber:37},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:227,columnNumber:35},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:221,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:217,columnNumber:31},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:212,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:211,columnNumber:27},this),e.jsxDEV(s.CardContent,{children:e.jsxDEV(N.TaxRateForm,{initialData:i,submitLabel:"Update tax rate",compact:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:240,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:239,columnNumber:27},this)]},i.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:210,columnNumber:25},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:199,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:190,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:181,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:166,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:104,columnNumber:9},this):e.jsxDEV(s.Card,{className:"border-dashed",children:[e.jsxDEV(s.CardHeader,{children:[e.jsxDEV(s.CardTitle,{children:"Enable Stripe to configure physical-product taxes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:91,columnNumber:13},this),e.jsxDEV(s.CardDescription,{children:"Stripe tax settings apply whenever Stripe is enabled for physical products. Freemius still handles taxes on its own digital checkout flow."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:92,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:90,columnNumber:11},this),e.jsxDEV(s.CardContent,{children:e.jsxDEV(s.Button,{asChild:!0,variant:"outline",children:e.jsxDEV(d,{href:"/cms/payments",children:"Open Payment Settings"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:99,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:98,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:97,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:89,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/taxes/TaxesPage.tsx",lineNumber:56,columnNumber:5},this)}exports.TaxesPage=j;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("@nextblock-cms/db/server"),a=require("@nextblock-cms/ui"),n=require("lucide-react"),x=require("next/link"),b=require("../../../inventory-settings.cjs.js"),g=require("../../../states.cjs.js"),f=require("../payments/queries.cjs.js"),u=require("./actions.cjs.js"),m=require("./components/TaxRateForm.cjs.js");function y(s){return`${s.toFixed(4).replace(/\.?0+$/,"")}%`}function v(s){return s.state_code?`${s.country_code} - ${g.resolveSubdivisionName(s.country_code,s.state_code)}`:`${s.country_code} - Country-wide`}async function N({searchParams:s}){const h=o.createClient(),p=o.getServiceRoleSupabaseClient(),[r,j,d]=await Promise.all([b.getEcommerceInventorySettings(h),f.getEnabledPaymentProviders(),p.from("tax_rates").select("id, country_code, state_code, tax_name, tax_rate, created_at, updated_at").order("country_code").order("state_code").order("tax_name")]),l=d.data||[],c=d.error,i=j.stripe;return e.jsxs("div",{className:"mx-auto w-full max-w-6xl space-y-6 px-6 py-8",children:[s?.success?e.jsx("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 px-4 py-3 text-sm text-emerald-700",children:s.success}):null,e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(a.Button,{asChild:!0,variant:"outline",size:"icon","aria-label":"Back to shipping",children:e.jsx(x,{href:"/cms/shipping",children:e.jsx(n.ArrowLeft,{className:"h-4 w-4"})})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Tax Settings"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Configure Stripe tax behavior globally and maintain manual country or state/province tax rates for physical goods."})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(a.Badge,{variant:i?"default":"outline",className:"uppercase",children:["Stripe ",i?"Enabled":"Disabled"]}),e.jsx("div",{className:"rounded-full border bg-muted/30 p-3 text-muted-foreground",children:e.jsx(n.Settings2,{className:"h-5 w-5"})})]})]}),i?e.jsxs(e.Fragment,{children:[e.jsxs(a.Card,{children:[e.jsxs(a.CardHeader,{children:[e.jsx(a.CardTitle,{children:"Global Tax Controls"}),e.jsx(a.CardDescription,{children:"Manual mode uses the tax rates below. Automatic mode uses Stripe Tax during Stripe Checkout instead of a free third-party tax API."})]}),e.jsx(a.CardContent,{children:e.jsxs("form",{action:u.updateTaxSettingsAction,className:"space-y-6",children:[e.jsxs("div",{className:"rounded-lg border bg-muted/20 p-4",children:[e.jsx("input",{type:"hidden",name:"enableTaxes",value:"false"}),e.jsxs("label",{htmlFor:"enable-taxes",className:"flex cursor-pointer items-start gap-3",children:[e.jsx("input",{id:"enable-taxes",name:"enableTaxes",type:"checkbox",value:"true",defaultChecked:r.enableTaxes,className:"mt-1 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"}),e.jsxs("span",{className:"space-y-1",children:[e.jsx("span",{className:"block font-medium",children:"Enable taxes"}),e.jsx("span",{className:"block text-sm text-muted-foreground",children:"When disabled, tax totals resolve to zero even if product or jurisdiction records exist."})]})]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_auto] md:items-end",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{htmlFor:"tax-calculation-mode",className:"text-sm font-medium text-foreground",children:"Tax calculation mode"}),e.jsxs("select",{id:"tax-calculation-mode",name:"taxCalculationMode",defaultValue:r.taxCalculationMode,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",children:[e.jsx("option",{value:"manual",children:"Manual tax rates"}),e.jsx("option",{value:"automatic",children:"Automatic via Stripe Tax"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Automatic mode depends on your Stripe Tax setup. Manual rates stay saved and can be used again if you switch back later."})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(a.Button,{type:"submit",children:"Save Tax Settings"})})]})]})})]}),e.jsxs(a.Card,{children:[e.jsx(a.CardHeader,{children:e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx(a.CardTitle,{children:"Manual Tax Rates"}),e.jsx(a.CardDescription,{children:"Add combined taxes as separate rows. For example, create both GST and PST for the same province if they should stack."})]}),e.jsx(a.Badge,{variant:r.taxCalculationMode==="manual"?"default":"outline",children:r.taxCalculationMode==="manual"?"Active Mode":"Stored for Manual Mode"})]})}),e.jsxs(a.CardContent,{className:"space-y-6",children:[c?e.jsx("div",{className:"rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800",children:"Tax rates couldn't be loaded yet. This usually means the new tax migration hasn't been applied to the current database."}):null,c?null:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rounded-xl border bg-card p-4",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx(n.ShieldCheck,{className:"h-4 w-4 text-primary"}),e.jsx("h2",{className:"font-semibold",children:"Create a Tax Rate"})]}),e.jsx(m.TaxRateForm,{})]}),e.jsx("div",{className:"space-y-4",children:l.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed bg-muted/10 px-4 py-8 text-center",children:[e.jsx("p",{className:"font-medium",children:"No manual tax rates yet"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Add country-wide or state/province-specific rows to start calculating manual taxes."})]}):l.map(t=>e.jsxs(a.Card,{className:"border-muted",children:[e.jsx(a.CardHeader,{className:"pb-4",children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(a.CardTitle,{className:"text-base",children:t.tax_name}),e.jsx(a.CardDescription,{children:v(t)})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(a.Badge,{variant:"outline",children:y(Number(t.tax_rate))}),e.jsx("form",{action:async()=>{"use server";await u.deleteTaxRateAction(t.id)},children:e.jsx(a.Button,{type:"submit",variant:"ghost",size:"icon","aria-label":"Delete tax rate",children:e.jsx(n.Trash2,{className:"h-4 w-4"})})})]})]})}),e.jsx(a.CardContent,{children:e.jsx(m.TaxRateForm,{initialData:t,submitLabel:"Update tax rate",compact:!0})})]},t.id))})]})]})]})]}):e.jsxs(a.Card,{className:"border-dashed",children:[e.jsxs(a.CardHeader,{children:[e.jsx(a.CardTitle,{children:"Enable Stripe to configure physical-product taxes"}),e.jsx(a.CardDescription,{children:"Stripe tax settings apply whenever Stripe is enabled for physical products. Freemius still handles taxes on its own digital checkout flow."})]}),e.jsx(a.CardContent,{children:e.jsx(a.Button,{asChild:!0,variant:"outline",children:e.jsx(x,{href:"/cms/payments",children:"Open Payment Settings"})})})]})]})}exports.TaxesPage=N;