@nextblock-cms/ecom 0.13.10 → 0.13.11

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 (124) hide show
  1. package/index.cjs.js +1 -1
  2. package/index.es.js +98 -97
  3. package/lib/CurrencyProvider.cjs.js +1 -1
  4. package/lib/CurrencyProvider.es.js +23 -23
  5. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  6. package/lib/components/AccountNavigationMenu.es.js +25 -25
  7. package/lib/components/AddToCartButton.cjs.js +1 -1
  8. package/lib/components/AddToCartButton.es.js +40 -40
  9. package/lib/components/Cart.cjs.js +1 -1
  10. package/lib/components/Cart.es.js +133 -133
  11. package/lib/components/CartDrawer.cjs.js +1 -1
  12. package/lib/components/CartDrawer.es.js +83 -83
  13. package/lib/components/CartIcon.cjs.js +1 -1
  14. package/lib/components/CartIcon.es.js +17 -17
  15. package/lib/components/Checkout.cjs.js +1 -1
  16. package/lib/components/Checkout.es.js +547 -547
  17. package/lib/components/CouponForm.cjs.js +1 -1
  18. package/lib/components/CouponForm.es.js +75 -75
  19. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  20. package/lib/components/CurrencySwitcher.es.js +16 -16
  21. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  22. package/lib/components/CustomerProfileForm.es.js +238 -238
  23. package/lib/components/FeaturedProduct.cjs.js +1 -1
  24. package/lib/components/FeaturedProduct.es.js +34 -34
  25. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  26. package/lib/components/FreemiusLicensePanel.es.js +44 -44
  27. package/lib/components/InvoiceDocument.cjs.js +1 -1
  28. package/lib/components/InvoiceDocument.es.js +141 -141
  29. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  30. package/lib/components/InvoiceViewerShell.es.js +49 -49
  31. package/lib/components/ProductCard.cjs.js +1 -1
  32. package/lib/components/ProductCard.es.js +76 -76
  33. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  34. package/lib/components/ProductDetailsLayout.es.js +308 -308
  35. package/lib/components/ProductGallery.cjs.js +1 -1
  36. package/lib/components/ProductGallery.es.js +22 -22
  37. package/lib/components/ProductGrid.cjs.js +1 -1
  38. package/lib/components/ProductGrid.es.js +9 -9
  39. package/lib/components/ShippingEstimator.cjs.js +1 -1
  40. package/lib/components/ShippingEstimator.es.js +76 -76
  41. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  42. package/lib/components/SimpleTiptapRenderer.d.ts +9 -0
  43. package/lib/components/SimpleTiptapRenderer.es.js +161 -146
  44. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  45. package/lib/components/SubscriptionSelector.es.js +77 -77
  46. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  47. package/lib/pages/cms/coupons/CouponEditorForm.es.js +108 -108
  48. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  49. package/lib/pages/cms/coupons/CouponsPage.es.js +102 -102
  50. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  51. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +21 -21
  52. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  53. package/lib/pages/cms/coupons/EditCouponPage.es.js +21 -21
  54. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  55. package/lib/pages/cms/coupons/ProductScopePicker.es.js +56 -56
  56. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  57. package/lib/pages/cms/orders/ExportReportsDialog.es.js +67 -67
  58. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  59. package/lib/pages/cms/orders/OrderDetailPage.es.js +55 -55
  60. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  61. package/lib/pages/cms/orders/OrderPrintButton.es.js +4 -4
  62. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  63. package/lib/pages/cms/orders/OrderStatusForm.es.js +28 -28
  64. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  65. package/lib/pages/cms/orders/OrdersPage.es.js +52 -52
  66. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  67. package/lib/pages/cms/payments/PaymentsClient.es.js +164 -164
  68. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  69. package/lib/pages/cms/payments/PaymentsPage.es.js +9 -9
  70. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  71. package/lib/pages/cms/products/ProductsPage.es.js +25 -25
  72. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  73. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +48 -48
  74. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  75. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +24 -24
  76. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  77. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +118 -118
  78. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  79. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +18 -18
  80. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  81. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +136 -136
  82. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  83. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +77 -77
  84. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  85. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +77 -77
  86. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  87. package/lib/pages/cms/products/components/DeleteProductButton.es.js +10 -10
  88. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  89. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +60 -60
  90. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  91. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +80 -80
  92. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  93. package/lib/pages/cms/products/components/ProductForm.es.js +493 -493
  94. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  95. package/lib/pages/cms/products/components/ProductMediaManager.es.js +50 -50
  96. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  97. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +145 -145
  98. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  99. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +60 -60
  100. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  101. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +8 -8
  102. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  103. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +8 -8
  104. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  105. package/lib/pages/cms/products/components/VariationsEditor.es.js +228 -228
  106. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  107. package/lib/pages/cms/products/inventory/InventoryPage.es.js +9 -9
  108. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  109. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +135 -135
  110. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  111. package/lib/pages/cms/products/new/NewProductPage.es.js +24 -24
  112. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  113. package/lib/pages/cms/shipping/ShippingPage.es.js +162 -162
  114. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  115. package/lib/pages/cms/shipping/components/RateForm.es.js +296 -296
  116. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  117. package/lib/pages/cms/shipping/components/ZoneForm.es.js +130 -130
  118. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  119. package/lib/pages/cms/taxes/TaxesPage.es.js +126 -126
  120. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  121. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +54 -54
  122. package/lib/product-context.cjs.js +1 -1
  123. package/lib/product-context.es.js +8 -8
  124. 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"),o=require("@nextblock-cms/ui"),h=require("lucide-react"),D=require("../../../../countries.cjs.js"),$=require("../../../../states.cjs.js"),U=require("../server-actions.cjs.js");function V(d=[]){return[...new Set(d.map(i=>i.country_code))]}function S(d=[]){return d.reduce((i,t)=>{if(!t.state_code)return i;const l=new Set(i[t.country_code]||[]);return l.add(t.state_code),i[t.country_code]=[...l],i},{})}function q(d,i){return d.flatMap(t=>{const l=i[t]||[];return l.length===0?[{country_code:t,state_code:null}]:l.map(a=>({country_code:t,state_code:a}))})}function P({mode:d="create",initialData:i}){const[t,l]=m.useState(!1),a=d==="edit",[b,x]=m.useState(i?.name||""),[N,g]=m.useState(i?.priority_order||0),[p,f]=m.useState(V(i?.locations)),[v,u]=m.useState(S(i?.locations)),[k,j]=m.useState(""),[C,Z]=m.useState(!1);m.useEffect(()=>{t&&(x(i?.name||""),g(i?.priority_order||0),f(V(i?.locations)),u(S(i?.locations)),j(""))},[i,t]);const y=m.useMemo(()=>{const s=k.trim().toLowerCase();return s?D.countries.filter(n=>n.name.toLowerCase().includes(s)||n.code.toLowerCase().includes(s)):D.countries},[k]),F=m.useMemo(()=>D.countries.filter(s=>p.includes(s.code)),[p]),w=s=>{f(n=>n.includes(s)?n.filter(r=>r!==s):[...n,s]),u(n=>{if(n[s]){const r={...n};return delete r[s],r}return n})},L=(s,n)=>{u(r=>{const c=new Set(r[s]||[]);return c.has(n)?c.delete(n):c.add(n),{...r,[s]:[...c]}})},_=async s=>{if(s.preventDefault(),!b||p.length===0)return;Z(!0);const n=q(p,v),r=a&&i?.id?await U.updateShippingZone(i.id,b,N,n):await U.createShippingZone(b,N,n);Z(!1),r.success?(l(!1),a||(x(""),g(0),f([]),u({}),j(""))):r.error&&alert(r.error)};return e.jsxDEV(o.Dialog,{open:t,onOpenChange:l,children:[e.jsxDEV(o.DialogTrigger,{asChild:!0,children:a?e.jsxDEV(o.Button,{variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-primary",children:e.jsxDEV(h.Edit2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:190,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:189,columnNumber:21},this):e.jsxDEV(o.Button,{className:"gap-2 shadow-sm",children:[e.jsxDEV(h.Plus,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:193,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:187,columnNumber:13},this),e.jsxDEV(o.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(o.DialogHeader,{children:[e.jsxDEV(o.DialogTitle,{children:a?"Edit Shipping Zone":"Create Shipping Zone"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:202,columnNumber:25},this),e.jsxDEV(o.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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:203,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/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(o.Label,{htmlFor:"name",className:"text-right",children:"Zone Name"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:212,columnNumber:29},this),e.jsxDEV(o.Input,{id:"name",value:b,onChange:s=>x(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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:213,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/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(o.Label,{htmlFor:"priority",className:"text-right",children:"Priority Order"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:224,columnNumber:29},this),e.jsxDEV(o.Input,{id:"priority",type:"number",value:N,onChange:s=>g(Number(s.target.value)),className:"col-span-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:225,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/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(o.Label,{className:"text-sm font-semibold",children:["Countries (",p.length,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/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(h.Search,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:241,columnNumber:41},this),e.jsxDEV(o.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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:242,columnNumber:41},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:240,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:236,columnNumber:33},this),e.jsxDEV(o.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:y.map(s=>{const n=p.includes(s.code);return e.jsxDEV("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${n?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-100 dark:hover:bg-slate-800/60"}`,children:[e.jsxDEV(o.Checkbox,{id:`country-${s.code}`,checked:n,onCheckedChange:()=>w(s.code)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:270,columnNumber:53},this)]},s.code,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:257,columnNumber:49},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:252,columnNumber:37},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:251,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/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(h.MapPin,{className:"h-4 w-4 text-slate-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:285,columnNumber:37},this),e.jsxDEV(o.Label,{className:"text-sm font-semibold",children:"States / Provinces"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:286,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:284,columnNumber:33},this),F.length===0?e.jsxDEV(o.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/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 n=$.getStatesForCountry(s.code),r=v[s.code]||[];return e.jsxDEV(o.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/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:n.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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:308,columnNumber:65},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/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:r.length>0?`${r.length} selected`:"Whole country"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:314,columnNumber:61},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:303,columnNumber:57},this),n.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:n.map(c=>{const E=r.includes(c.code);return e.jsxDEV("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${E?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-50 dark:hover:bg-slate-800/60"}`,children:[e.jsxDEV(o.Checkbox,{id:`${s.code}-${c.code}`,checked:E,onCheckedChange:()=>L(s.code,c.code)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/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/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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:327,columnNumber:73},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/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/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:302,columnNumber:53},this)},s.code,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:301,columnNumber:49},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:295,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:283,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:234,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:210,columnNumber:21},this),e.jsxDEV(o.DialogFooter,{className:"mt-auto border-t pt-4",children:[e.jsxDEV(o.Button,{type:"button",variant:"ghost",onClick:()=>l(!1),children:"Cancel"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:364,columnNumber:25},this),e.jsxDEV(o.Button,{type:"submit",disabled:C||!b||p.length===0,children:C?a?"Updating...":"Creating...":a?"Save Changes":"Create Zone"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:367,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:363,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:200,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/shipping/components/ZoneForm.tsx",lineNumber:199,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/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"),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;