@nextblock-cms/ecom 0.14.1 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/lib/CurrencyProvider.cjs.js +1 -1
  2. package/lib/CurrencyProvider.es.js +24 -24
  3. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  4. package/lib/components/AccountNavigationMenu.es.js +28 -28
  5. package/lib/components/AddToCartButton.cjs.js +1 -1
  6. package/lib/components/AddToCartButton.es.js +39 -39
  7. package/lib/components/Cart.cjs.js +1 -1
  8. package/lib/components/Cart.es.js +141 -141
  9. package/lib/components/CartDrawer.cjs.js +1 -1
  10. package/lib/components/CartDrawer.es.js +96 -96
  11. package/lib/components/CartIcon.cjs.js +1 -1
  12. package/lib/components/CartIcon.es.js +17 -17
  13. package/lib/components/Checkout.cjs.js +1 -1
  14. package/lib/components/Checkout.es.js +596 -596
  15. package/lib/components/CouponForm.cjs.js +1 -1
  16. package/lib/components/CouponForm.es.js +89 -89
  17. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  18. package/lib/components/CurrencySwitcher.es.js +16 -16
  19. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  20. package/lib/components/CustomerProfileForm.es.js +230 -230
  21. package/lib/components/FeaturedProduct.cjs.js +1 -1
  22. package/lib/components/FeaturedProduct.es.js +33 -33
  23. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  24. package/lib/components/FreemiusLicensePanel.es.js +43 -43
  25. package/lib/components/InvoiceDocument.cjs.js +1 -1
  26. package/lib/components/InvoiceDocument.es.js +161 -161
  27. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  28. package/lib/components/InvoiceViewerShell.es.js +53 -53
  29. package/lib/components/ProductCard.cjs.js +1 -1
  30. package/lib/components/ProductCard.es.js +72 -72
  31. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  32. package/lib/components/ProductDetailsLayout.es.js +263 -263
  33. package/lib/components/ProductGallery.cjs.js +1 -1
  34. package/lib/components/ProductGallery.es.js +24 -24
  35. package/lib/components/ProductGrid.cjs.js +1 -1
  36. package/lib/components/ProductGrid.es.js +11 -11
  37. package/lib/components/ShippingEstimator.cjs.js +1 -1
  38. package/lib/components/ShippingEstimator.es.js +74 -74
  39. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  40. package/lib/components/SimpleTiptapRenderer.es.js +61 -61
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  42. package/lib/components/SubscriptionSelector.es.js +82 -82
  43. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  44. package/lib/pages/cms/coupons/CouponEditorForm.es.js +104 -104
  45. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  46. package/lib/pages/cms/coupons/CouponsPage.es.js +100 -100
  47. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  48. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +19 -19
  49. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  50. package/lib/pages/cms/coupons/EditCouponPage.es.js +22 -22
  51. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  52. package/lib/pages/cms/coupons/ProductScopePicker.es.js +57 -57
  53. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  54. package/lib/pages/cms/orders/ExportReportsDialog.es.js +71 -71
  55. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  56. package/lib/pages/cms/orders/OrderDetailPage.es.js +57 -57
  57. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  58. package/lib/pages/cms/orders/OrderPrintButton.es.js +4 -4
  59. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  60. package/lib/pages/cms/orders/OrderStatusForm.es.js +30 -30
  61. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  62. package/lib/pages/cms/orders/OrdersPage.es.js +50 -50
  63. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  64. package/lib/pages/cms/payments/PaymentsClient.es.js +164 -164
  65. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  66. package/lib/pages/cms/payments/PaymentsPage.es.js +11 -11
  67. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  68. package/lib/pages/cms/products/ProductsPage.es.js +31 -31
  69. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  70. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +57 -57
  71. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  72. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +18 -18
  73. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  74. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +123 -123
  75. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  76. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +18 -18
  77. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  78. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +132 -132
  79. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  80. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +75 -75
  81. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  82. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +66 -66
  83. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  84. package/lib/pages/cms/products/components/DeleteProductButton.es.js +11 -11
  85. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  86. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +59 -59
  87. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  88. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +85 -85
  89. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  90. package/lib/pages/cms/products/components/ProductForm.es.js +451 -451
  91. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  92. package/lib/pages/cms/products/components/ProductMediaManager.es.js +49 -49
  93. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  94. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +147 -147
  95. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +60 -60
  97. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +2 -2
  99. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  100. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +12 -12
  101. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/VariationsEditor.es.js +228 -228
  103. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  104. package/lib/pages/cms/products/inventory/InventoryPage.es.js +7 -7
  105. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  106. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +125 -125
  107. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  108. package/lib/pages/cms/products/new/NewProductPage.es.js +30 -30
  109. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  110. package/lib/pages/cms/shipping/ShippingPage.es.js +168 -168
  111. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  112. package/lib/pages/cms/shipping/components/RateForm.es.js +291 -291
  113. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/ZoneForm.es.js +140 -140
  115. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  116. package/lib/pages/cms/taxes/TaxesPage.es.js +132 -132
  117. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +49 -49
  119. package/lib/product-context.cjs.js +1 -1
  120. package/lib/product-context.es.js +8 -8
  121. package/package.json +4 -4
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),m=require("react"),i=require("@nextblock-cms/ui"),x=require("lucide-react"),k=require("../../../../countries.cjs.js"),$=require("../../../../states.cjs.js"),V=require("../server-actions.cjs.js");function S(b=[]){return[...new Set(b.map(n=>n.country_code))]}function y(b=[]){return b.reduce((n,c)=>{if(!c.state_code)return n;const l=new Set(n[c.country_code]||[]);return l.add(c.state_code),n[c.country_code]=[...l],n},{})}function q(b,n){return b.flatMap(c=>{const l=n[c]||[];return l.length===0?[{country_code:c,state_code:null}]:l.map(a=>({country_code:c,state_code:a}))})}function P({mode:b="create",initialData:n}){const[c,l]=m.useState(!1),a=b==="edit",[p,h]=m.useState(n?.name||""),[N,g]=m.useState(n?.priority_order||0),[d,f]=m.useState(S(n?.locations)),[Z,u]=m.useState(y(n?.locations)),[D,v]=m.useState(""),[F,E]=m.useState(!1);m.useEffect(()=>{c&&(h(n?.name||""),g(n?.priority_order||0),f(S(n?.locations)),u(y(n?.locations)),v(""))},[n,c]);const w=m.useMemo(()=>{const s=D.trim().toLowerCase();return s?k.countries.filter(o=>o.name.toLowerCase().includes(s)||o.code.toLowerCase().includes(s)):k.countries},[D]),j=m.useMemo(()=>k.countries.filter(s=>d.includes(s.code)),[d]),C=s=>{f(o=>o.includes(s)?o.filter(t=>t!==s):[...o,s]),u(o=>{if(o[s]){const t={...o};return delete t[s],t}return o})},L=(s,o)=>{u(t=>{const r=new Set(t[s]||[]);return r.has(o)?r.delete(o):r.add(o),{...t,[s]:[...r]}})},_=async s=>{if(s.preventDefault(),!p||d.length===0)return;E(!0);const o=q(d,Z),t=a&&n?.id?await V.updateShippingZone(n.id,p,N,o):await V.createShippingZone(p,N,o);E(!1),t.success?(l(!1),a||(h(""),g(0),f([]),u({}),v(""))):t.error&&alert(t.error)};return e.jsxDEV(i.Dialog,{open:c,onOpenChange:l,children:[e.jsxDEV(i.DialogTrigger,{asChild:!0,children:a?e.jsxDEV(i.Button,{variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-primary",children:e.jsxDEV(x.Edit2,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:190,columnNumber:25},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:189,columnNumber:21},this):e.jsxDEV(i.Button,{className:"gap-2 shadow-sm",children:[e.jsxDEV(x.Plus,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:194,columnNumber:25},this),"New Zone"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:193,columnNumber:21},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:187,columnNumber:13},this),e.jsxDEV(i.DialogContent,{className:"max-w-4xl max-h-[90vh] flex flex-col overflow-hidden",children:e.jsxDEV("form",{onSubmit:_,className:"flex h-full flex-col overflow-hidden",children:[e.jsxDEV(i.DialogHeader,{children:[e.jsxDEV(i.DialogTitle,{children:a?"Edit Shipping Zone":"Create Shipping Zone"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:202,columnNumber:25},this),e.jsxDEV(i.DialogDescription,{children:"Select countries first, then optionally limit a zone to specific states or provinces. Leaving state selections empty keeps the whole country in the zone."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:203,columnNumber:25},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:201,columnNumber:21},this),e.jsxDEV("div",{className:"grid gap-6 overflow-y-auto py-6 pr-2",children:[e.jsxDEV("div",{className:"grid grid-cols-4 items-center gap-4",children:[e.jsxDEV(i.Label,{htmlFor:"name",className:"text-right",children:"Zone Name"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:212,columnNumber:29},this),e.jsxDEV(i.Input,{id:"name",value:p,onChange:s=>h(s.target.value),placeholder:"e.g. North America, Canada East, US West",className:"col-span-3",required:!0},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:213,columnNumber:29},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:211,columnNumber:25},this),e.jsxDEV("div",{className:"grid grid-cols-4 items-center gap-4",children:[e.jsxDEV(i.Label,{htmlFor:"priority",className:"text-right",children:"Priority Order"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:224,columnNumber:29},this),e.jsxDEV(i.Input,{id:"priority",type:"number",value:N,onChange:s=>g(Number(s.target.value)),className:"col-span-3"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:225,columnNumber:29},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:223,columnNumber:25},this),e.jsxDEV("div",{className:"grid gap-6 lg:grid-cols-[1.2fr_1fr]",children:[e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"flex items-end justify-between gap-3",children:[e.jsxDEV(i.Label,{className:"text-sm font-semibold",children:["Countries (",d.length,")"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:237,columnNumber:37},this),e.jsxDEV("div",{className:"relative w-full max-w-xs",children:[e.jsxDEV(x.Search,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:241,columnNumber:41},this),e.jsxDEV(i.Input,{placeholder:"Search countries...",className:"pl-9 h-9",value:D,onChange:s=>v(s.target.value)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:242,columnNumber:41},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:240,columnNumber:37},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:236,columnNumber:33},this),e.jsxDEV(i.Card,{className:"border-slate-200 bg-slate-50/30 p-4 dark:border-slate-800 dark:bg-slate-900/30",children:e.jsxDEV("div",{className:"grid max-h-[360px] grid-cols-1 gap-3 overflow-y-auto pr-1 sm:grid-cols-2",children:w.map(s=>{const o=d.includes(s.code);return e.jsxDEV("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${o?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-100 dark:hover:bg-slate-800/60"}`,children:[e.jsxDEV(i.Checkbox,{id:`country-${s.code}`,checked:o,onCheckedChange:()=>C(s.code)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:265,columnNumber:53},this),e.jsxDEV("label",{htmlFor:`country-${s.code}`,className:"flex-1 cursor-pointer text-xs py-1",children:[s.name," (",s.code,")"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:270,columnNumber:53},this)]},s.code,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:257,columnNumber:49},this)})},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:252,columnNumber:37},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:251,columnNumber:33},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:235,columnNumber:29},this),e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(x.MapPin,{className:"h-4 w-4 text-slate-500"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:285,columnNumber:37},this),e.jsxDEV(i.Label,{className:"text-sm font-semibold",children:"States / Provinces"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:286,columnNumber:37},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:284,columnNumber:33},this),j.length===0?e.jsxDEV(i.Card,{className:"border-dashed p-4 text-sm text-muted-foreground",children:"Select one or more countries to optionally narrow the zone to specific states or provinces."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:290,columnNumber:37},this):e.jsxDEV("div",{className:"space-y-4",children:j.map(s=>{const o=$.getStatesForCountry(s.code),t=Z[s.code]||[];return e.jsxDEV(i.Card,{className:"p-4",children:e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"font-medium",children:[s.name," (",s.code,")"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:305,columnNumber:65},this),e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:o.length>0?"Leave all unchecked to apply this zone to the whole country.":"This country uses a country-level zone in the current UI."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:308,columnNumber:65},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:304,columnNumber:61},this),e.jsxDEV("span",{className:"text-xs text-muted-foreground",children:t.length>0?`${t.length} selected`:"Whole country"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:314,columnNumber:61},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:303,columnNumber:57},this),o.length>0?e.jsxDEV("div",{className:"grid max-h-[220px] grid-cols-1 gap-2 overflow-y-auto pr-1 sm:grid-cols-2",children:o.map(r=>{const W=t.includes(r.code);return e.jsxDEV("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${W?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-50 dark:hover:bg-slate-800/60"}`,children:[e.jsxDEV(i.Checkbox,{id:`${s.code}-${r.code}`,checked:W,onCheckedChange:()=>L(s.code,r.code)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:335,columnNumber:77},this),e.jsxDEV("label",{htmlFor:`${s.code}-${r.code}`,className:"flex-1 cursor-pointer text-xs py-1",children:[r.name," (",r.code,")"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:342,columnNumber:77},this)]},`${s.code}-${r.code}`,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:327,columnNumber:73},this)})},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:322,columnNumber:61},this):null]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:302,columnNumber:53},this)},s.code,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:301,columnNumber:49},this)})},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:295,columnNumber:37},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:283,columnNumber:29},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:234,columnNumber:25},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:210,columnNumber:21},this),e.jsxDEV(i.DialogFooter,{className:"mt-auto border-t pt-4",children:[e.jsxDEV(i.Button,{type:"button",variant:"ghost",onClick:()=>l(!1),children:"Cancel"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:364,columnNumber:25},this),e.jsxDEV(i.Button,{type:"submit",disabled:F||!p||d.length===0,children:F?a?"Updating...":"Creating...":a?"Save Changes":"Create Zone"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:367,columnNumber:25},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:363,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:200,columnNumber:17},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:199,columnNumber:13},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:186,columnNumber:9},this)}exports.ZoneForm=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),m=require("react"),i=require("@nextblock-cms/ui"),b=require("lucide-react"),D=require("../../../../countries.cjs.js"),w=require("../../../../states.cjs.js"),E=require("../server-actions.cjs.js");function R(d=[]){return[...new Set(d.map(r=>r.country_code))]}function U(d=[]){return d.reduce((r,t)=>{if(!t.state_code)return r;const l=new Set(r[t.country_code]||[]);return l.add(t.state_code),r[t.country_code]=[...l],r},{})}function L(d,r){return d.flatMap(t=>{const l=r[t]||[];return l.length===0?[{country_code:t,state_code:null}]:l.map(a=>({country_code:t,state_code:a}))})}function _({mode:d="create",initialData:r}){const[t,l]=m.useState(!1),a=d==="edit",[N,h]=m.useState(r?.name||""),[x,g]=m.useState(r?.priority_order||0),[p,f]=m.useState(R(r?.locations)),[v,u]=m.useState(U(r?.locations)),[k,j]=m.useState(""),[C,Z]=m.useState(!1);m.useEffect(()=>{t&&(h(r?.name||""),g(r?.priority_order||0),f(R(r?.locations)),u(U(r?.locations)),j(""))},[r,t]);const H=m.useMemo(()=>{const s=k.trim().toLowerCase();return s?D.countries.filter(o=>o.name.toLowerCase().includes(s)||o.code.toLowerCase().includes(s)):D.countries},[k]),F=m.useMemo(()=>D.countries.filter(s=>p.includes(s.code)),[p]),V=s=>{f(o=>o.includes(s)?o.filter(n=>n!==s):[...o,s]),u(o=>{if(o[s]){const n={...o};return delete n[s],n}return o})},S=(s,o)=>{u(n=>{const c=new Set(n[s]||[]);return c.has(o)?c.delete(o):c.add(o),{...n,[s]:[...c]}})},y=async s=>{if(s.preventDefault(),!N||p.length===0)return;Z(!0);const o=L(p,v),n=a&&r?.id?await E.updateShippingZone(r.id,N,x,o):await E.createShippingZone(N,x,o);Z(!1),n.success?(l(!1),a||(h(""),g(0),f([]),u({}),j(""))):n.error&&alert(n.error)};return e.jsxDEV(i.Dialog,{open:t,onOpenChange:l,children:[e.jsxDEV(i.DialogTrigger,{asChild:!0,children:a?e.jsxDEV(i.Button,{variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-primary",children:e.jsxDEV(b.Edit2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:190,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:189,columnNumber:21},this):e.jsxDEV(i.Button,{className:"gap-2 shadow-sm",children:[e.jsxDEV(b.Plus,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:194,columnNumber:25},this),"New Zone"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:193,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:187,columnNumber:13},this),e.jsxDEV(i.DialogContent,{className:"max-w-4xl max-h-[90vh] flex flex-col overflow-hidden",children:e.jsxDEV("form",{onSubmit:y,className:"flex h-full flex-col overflow-hidden",children:[e.jsxDEV(i.DialogHeader,{children:[e.jsxDEV(i.DialogTitle,{children:a?"Edit Shipping Zone":"Create Shipping Zone"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:202,columnNumber:25},this),e.jsxDEV(i.DialogDescription,{children:"Select countries first, then optionally limit a zone to specific states or provinces. Leaving state selections empty keeps the whole country in the zone."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:203,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:201,columnNumber:21},this),e.jsxDEV("div",{className:"grid gap-6 overflow-y-auto py-6 pr-2",children:[e.jsxDEV("div",{className:"grid grid-cols-4 items-center gap-4",children:[e.jsxDEV(i.Label,{htmlFor:"name",className:"text-right",children:"Zone Name"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:212,columnNumber:29},this),e.jsxDEV(i.Input,{id:"name",value:N,onChange:s=>h(s.target.value),placeholder:"e.g. North America, Canada East, US West",className:"col-span-3",required:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:213,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:211,columnNumber:25},this),e.jsxDEV("div",{className:"grid grid-cols-4 items-center gap-4",children:[e.jsxDEV(i.Label,{htmlFor:"priority",className:"text-right",children:"Priority Order"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:224,columnNumber:29},this),e.jsxDEV(i.Input,{id:"priority",type:"number",value:x,onChange:s=>g(Number(s.target.value)),className:"col-span-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:225,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:223,columnNumber:25},this),e.jsxDEV("div",{className:"grid gap-6 lg:grid-cols-[1.2fr_1fr]",children:[e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"flex items-end justify-between gap-3",children:[e.jsxDEV(i.Label,{className:"text-sm font-semibold",children:["Countries (",p.length,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:237,columnNumber:37},this),e.jsxDEV("div",{className:"relative w-full max-w-xs",children:[e.jsxDEV(b.Search,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:241,columnNumber:41},this),e.jsxDEV(i.Input,{placeholder:"Search countries...",className:"pl-9 h-9",value:k,onChange:s=>j(s.target.value)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:242,columnNumber:41},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:240,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:236,columnNumber:33},this),e.jsxDEV(i.Card,{className:"border-slate-200 bg-slate-50/30 p-4 dark:border-slate-800 dark:bg-slate-900/30",children:e.jsxDEV("div",{className:"grid max-h-[360px] grid-cols-1 gap-3 overflow-y-auto pr-1 sm:grid-cols-2",children:H.map(s=>{const o=p.includes(s.code);return e.jsxDEV("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${o?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-100 dark:hover:bg-slate-800/60"}`,children:[e.jsxDEV(i.Checkbox,{id:`country-${s.code}`,checked:o,onCheckedChange:()=>V(s.code)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:265,columnNumber:53},this),e.jsxDEV("label",{htmlFor:`country-${s.code}`,className:"flex-1 cursor-pointer text-xs py-1",children:[s.name," (",s.code,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:270,columnNumber:53},this)]},s.code,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:257,columnNumber:49},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:252,columnNumber:37},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:251,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:235,columnNumber:29},this),e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(b.MapPin,{className:"h-4 w-4 text-slate-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:285,columnNumber:37},this),e.jsxDEV(i.Label,{className:"text-sm font-semibold",children:"States / Provinces"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:286,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:284,columnNumber:33},this),F.length===0?e.jsxDEV(i.Card,{className:"border-dashed p-4 text-sm text-muted-foreground",children:"Select one or more countries to optionally narrow the zone to specific states or provinces."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:290,columnNumber:37},this):e.jsxDEV("div",{className:"space-y-4",children:F.map(s=>{const o=w.getStatesForCountry(s.code),n=v[s.code]||[];return e.jsxDEV(i.Card,{className:"p-4",children:e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"font-medium",children:[s.name," (",s.code,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:305,columnNumber:65},this),e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:o.length>0?"Leave all unchecked to apply this zone to the whole country.":"This country uses a country-level zone in the current UI."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:308,columnNumber:65},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:304,columnNumber:61},this),e.jsxDEV("span",{className:"text-xs text-muted-foreground",children:n.length>0?`${n.length} selected`:"Whole country"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:314,columnNumber:61},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:303,columnNumber:57},this),o.length>0?e.jsxDEV("div",{className:"grid max-h-[220px] grid-cols-1 gap-2 overflow-y-auto pr-1 sm:grid-cols-2",children:o.map(c=>{const B=n.includes(c.code);return e.jsxDEV("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${B?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-50 dark:hover:bg-slate-800/60"}`,children:[e.jsxDEV(i.Checkbox,{id:`${s.code}-${c.code}`,checked:B,onCheckedChange:()=>S(s.code,c.code)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:335,columnNumber:77},this),e.jsxDEV("label",{htmlFor:`${s.code}-${c.code}`,className:"flex-1 cursor-pointer text-xs py-1",children:[c.name," (",c.code,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:342,columnNumber:77},this)]},`${s.code}-${c.code}`,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:327,columnNumber:73},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:322,columnNumber:61},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:302,columnNumber:53},this)},s.code,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:301,columnNumber:49},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:295,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:283,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:234,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:210,columnNumber:21},this),e.jsxDEV(i.DialogFooter,{className:"mt-auto border-t pt-4",children:[e.jsxDEV(i.Button,{type:"button",variant:"ghost",onClick:()=>l(!1),children:"Cancel"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:364,columnNumber:25},this),e.jsxDEV(i.Button,{type:"submit",disabled:C||!N||p.length===0,children:C?a?"Updating...":"Creating...":a?"Save Changes":"Create Zone"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:367,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:363,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:200,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:199,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:186,columnNumber:9},this)}exports.ZoneForm=_;