@nextblock-cms/ecom 0.18.8 → 0.19.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.
- package/index.cjs.js +1 -1
- package/index.es.js +26 -25
- package/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +41 -45
- package/lib/PaymentReadinessProvider.cjs.js +1 -1
- package/lib/PaymentReadinessProvider.es.js +15 -19
- package/lib/cart-store.cjs.js +1 -1
- package/lib/cart-store.d.ts +4 -0
- package/lib/cart-store.es.js +77 -69
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +44 -62
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +50 -78
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +154 -381
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +143 -297
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +21 -47
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +814 -1614
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +104 -155
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +14 -33
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +264 -672
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +46 -125
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +45 -125
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +148 -487
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.d.ts +4 -1
- package/lib/components/InvoiceViewerShell.es.js +59 -142
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.d.ts +3 -1
- package/lib/components/ProductCard.es.js +128 -242
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +311 -652
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.d.ts +2 -0
- package/lib/components/ProductGallery.es.js +37 -66
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +23 -32
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +118 -231
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +111 -294
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +120 -181
- package/lib/freemius-trial-provision.cjs.js +1 -0
- package/lib/freemius-trial-provision.d.ts +85 -0
- package/lib/freemius-trial-provision.es.js +136 -0
- package/lib/invoice.cjs.js +1 -1
- package/lib/invoice.d.ts +1 -1
- package/lib/invoice.es.js +6 -5
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +47 -87
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +10 -14
- package/lib/trials.cjs.js +1 -1
- package/lib/trials.d.ts +10 -3
- package/lib/trials.es.js +28 -21
- package/lib/types.d.ts +2 -0
- package/lib/use-price-formatter.cjs.js +1 -0
- package/lib/use-price-formatter.d.ts +11 -0
- package/lib/use-price-formatter.es.js +13 -0
- package/lib/variation-utils.cjs.js +1 -1
- package/lib/variation-utils.d.ts +10 -0
- package/lib/variation-utils.es.js +139 -123
- package/package.json +4 -4
- package/server.cjs.js +1 -1
- package/server.d.ts +1 -0
- package/server.es.js +180 -172
|
@@ -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"),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=_;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("react"),r=require("@nextblock-cms/ui"),p=require("lucide-react"),S=require("../../../../countries.cjs.js"),B=require("../../../../states.cjs.js"),_=require("../server-actions.cjs.js");function $(h=[]){return[...new Set(h.map(o=>o.country_code))]}function q(h=[]){return h.reduce((o,a)=>{if(!a.state_code)return o;const i=new Set(o[a.country_code]||[]);return i.add(a.state_code),o[a.country_code]=[...i],o},{})}function E(h,o){return h.flatMap(a=>{const i=o[a]||[];return i.length===0?[{country_code:a,state_code:null}]:i.map(d=>({country_code:a,state_code:d}))})}function I({mode:h="create",initialData:o}){const[a,i]=c.useState(!1),d=h==="edit",[u,g]=c.useState(o?.name||""),[f,j]=c.useState(o?.priority_order||0),[m,v]=c.useState($(o?.locations)),[y,x]=c.useState(q(o?.locations)),[N,b]=c.useState(""),[w,C]=c.useState(!1);c.useEffect(()=>{a&&(g(o?.name||""),j(o?.priority_order||0),v($(o?.locations)),x(q(o?.locations)),b(""))},[o,a]);const Z=c.useMemo(()=>{const s=N.trim().toLowerCase();return s?S.countries.filter(t=>t.name.toLowerCase().includes(s)||t.code.toLowerCase().includes(s)):S.countries},[N]),k=c.useMemo(()=>S.countries.filter(s=>m.includes(s.code)),[m]),F=s=>{v(t=>t.includes(s)?t.filter(n=>n!==s):[...t,s]),x(t=>{if(t[s]){const n={...t};return delete n[s],n}return t})},P=(s,t)=>{x(n=>{const l=new Set(n[s]||[]);return l.has(t)?l.delete(t):l.add(t),{...n,[s]:[...l]}})},z=async s=>{if(s.preventDefault(),!u||m.length===0)return;C(!0);const t=E(m,y),n=d&&o?.id?await _.updateShippingZone(o.id,u,f,t):await _.createShippingZone(u,f,t);C(!1),n.success?(i(!1),d||(g(""),j(0),v([]),x({}),b(""))):n.error&&alert(n.error)};return e.jsxs(r.Dialog,{open:a,onOpenChange:i,children:[e.jsx(r.DialogTrigger,{asChild:!0,children:d?e.jsx(r.Button,{variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-primary",children:e.jsx(p.Edit2,{className:"h-4 w-4"})}):e.jsxs(r.Button,{className:"gap-2 shadow-sm",children:[e.jsx(p.Plus,{className:"h-4 w-4"}),"New Zone"]})}),e.jsx(r.DialogContent,{className:"max-w-4xl max-h-[90vh] flex flex-col overflow-hidden",children:e.jsxs("form",{onSubmit:z,className:"flex h-full flex-col overflow-hidden",children:[e.jsxs(r.DialogHeader,{children:[e.jsx(r.DialogTitle,{children:d?"Edit Shipping Zone":"Create Shipping Zone"}),e.jsx(r.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."})]}),e.jsxs("div",{className:"grid gap-6 overflow-y-auto py-6 pr-2",children:[e.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[e.jsx(r.Label,{htmlFor:"name",className:"text-right",children:"Zone Name"}),e.jsx(r.Input,{id:"name",value:u,onChange:s=>g(s.target.value),placeholder:"e.g. North America, Canada East, US West",className:"col-span-3",required:!0})]}),e.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[e.jsx(r.Label,{htmlFor:"priority",className:"text-right",children:"Priority Order"}),e.jsx(r.Input,{id:"priority",type:"number",value:f,onChange:s=>j(Number(s.target.value)),className:"col-span-3"})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[1.2fr_1fr]",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-end justify-between gap-3",children:[e.jsxs(r.Label,{className:"text-sm font-semibold",children:["Countries (",m.length,")"]}),e.jsxs("div",{className:"relative w-full max-w-xs",children:[e.jsx(p.Search,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"}),e.jsx(r.Input,{placeholder:"Search countries...",className:"pl-9 h-9",value:N,onChange:s=>b(s.target.value)})]})]}),e.jsx(r.Card,{className:"border-slate-200 bg-slate-50/30 p-4 dark:border-slate-800 dark:bg-slate-900/30",children:e.jsx("div",{className:"grid max-h-[360px] grid-cols-1 gap-3 overflow-y-auto pr-1 sm:grid-cols-2",children:Z.map(s=>{const t=m.includes(s.code);return e.jsxs("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${t?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-100 dark:hover:bg-slate-800/60"}`,children:[e.jsx(r.Checkbox,{id:`country-${s.code}`,checked:t,onCheckedChange:()=>F(s.code)}),e.jsxs("label",{htmlFor:`country-${s.code}`,className:"flex-1 cursor-pointer text-xs py-1",children:[s.name," (",s.code,")"]})]},s.code)})})})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(p.MapPin,{className:"h-4 w-4 text-slate-500"}),e.jsx(r.Label,{className:"text-sm font-semibold",children:"States / Provinces"})]}),k.length===0?e.jsx(r.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."}):e.jsx("div",{className:"space-y-4",children:k.map(s=>{const t=B.getStatesForCountry(s.code),n=y[s.code]||[];return e.jsx(r.Card,{className:"p-4",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"font-medium",children:[s.name," (",s.code,")"]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t.length>0?"Leave all unchecked to apply this zone to the whole country.":"This country uses a country-level zone in the current UI."})]}),e.jsx("span",{className:"text-xs text-muted-foreground",children:n.length>0?`${n.length} selected`:"Whole country"})]}),t.length>0?e.jsx("div",{className:"grid max-h-[220px] grid-cols-1 gap-2 overflow-y-auto pr-1 sm:grid-cols-2",children:t.map(l=>{const L=n.includes(l.code);return e.jsxs("div",{className:`flex items-center space-x-2 rounded-md border p-2 transition-colors ${L?"border-primary/30 bg-primary/5 text-primary":"border-transparent hover:bg-slate-50 dark:hover:bg-slate-800/60"}`,children:[e.jsx(r.Checkbox,{id:`${s.code}-${l.code}`,checked:L,onCheckedChange:()=>P(s.code,l.code)}),e.jsxs("label",{htmlFor:`${s.code}-${l.code}`,className:"flex-1 cursor-pointer text-xs py-1",children:[l.name," (",l.code,")"]})]},`${s.code}-${l.code}`)})}):null]})},s.code)})})]})]})]}),e.jsxs(r.DialogFooter,{className:"mt-auto border-t pt-4",children:[e.jsx(r.Button,{type:"button",variant:"ghost",onClick:()=>i(!1),children:"Cancel"}),e.jsx(r.Button,{type:"submit",disabled:w||!u||m.length===0,children:w?d?"Updating...":"Creating...":d?"Save Changes":"Create Zone"})]})]})})]})}exports.ZoneForm=I;
|