@nextblock-cms/ecom 0.15.8 → 0.15.10

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@nextblock-cms/db/server"),i=require("next/cache"),o=require("../../../payment-config.cjs.js");async function d(){const e=await n.createClient(),{data:{user:t}}=await e.auth.getUser();if(!t)throw new Error("Unauthorized");const{data:r}=await e.from("profiles").select("role").eq("id",t.id).single();if(!r||r.role!=="ADMIN")throw new Error("Forbidden")}async function c(e){await d(),await o.savePaymentCredentials({stripe:{publishableKey:String(e.get("stripe_publishableKey")??""),secretKey:String(e.get("stripe_secretKey")??""),webhookSecret:String(e.get("stripe_webhookSecret")??"")},freemius:{developerId:String(e.get("freemius_developerId")??""),publicKey:String(e.get("freemius_publicKey")??""),productId:String(e.get("freemius_productId")??""),secretKey:String(e.get("freemius_secretKey")??""),apiKey:String(e.get("freemius_apiKey")??"")}}),i.revalidatePath("/cms/payments")}async function u(e){const t=await n.createClient(),{data:{user:r}}=await t.auth.getUser();if(!r)throw new Error("Unauthorized");const{data:s}=await t.from("profiles").select("role").eq("id",r.id).single();if(!s||s.role!=="ADMIN")throw new Error("Forbidden");const{error:a}=await t.from("site_settings").upsert({key:"enabled_payment_providers",value:e});if(a)throw console.error("Error updating payment providers:",a),new Error("Failed to update settings");return i.revalidatePath("/cms/payments"),i.revalidatePath("/cms/taxes"),i.revalidatePath("/","layout"),{success:!0}}exports.savePaymentProviderCredentials=c;exports.updatePaymentSettings=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@nextblock-cms/db/server"),r=require("next/cache"),o=require("../../../payment-config.cjs.js");async function d(){const e=await n.createClient(),{data:{user:t}}=await e.auth.getUser();if(!t)throw new Error("Unauthorized");const{data:i}=await e.from("profiles").select("role").eq("id",t.id).single();if(!i||i.role!=="ADMIN")throw new Error("Forbidden")}async function c(e){await d(),await o.savePaymentCredentials({stripe:{publishableKey:String(e.get("stripe_publishableKey")??""),secretKey:String(e.get("stripe_secretKey")??""),webhookSecret:String(e.get("stripe_webhookSecret")??"")},freemius:{developerId:String(e.get("freemius_developerId")??""),publicKey:String(e.get("freemius_publicKey")??""),productId:String(e.get("freemius_productId")??""),secretKey:String(e.get("freemius_secretKey")??""),apiKey:String(e.get("freemius_apiKey")??"")}}),r.revalidatePath("/cms/payments"),r.revalidatePath("/cms/dashboard"),r.revalidatePath("/","layout")}async function l(e){const t=await n.createClient(),{data:{user:i}}=await t.auth.getUser();if(!i)throw new Error("Unauthorized");const{data:a}=await t.from("profiles").select("role").eq("id",i.id).single();if(!a||a.role!=="ADMIN")throw new Error("Forbidden");const{error:s}=await t.from("site_settings").upsert({key:"enabled_payment_providers",value:e});if(s)throw console.error("Error updating payment providers:",s),new Error("Failed to update settings");return r.revalidatePath("/cms/payments"),r.revalidatePath("/cms/taxes"),r.revalidatePath("/","layout"),{success:!0}}exports.savePaymentProviderCredentials=c;exports.updatePaymentSettings=l;
@@ -1,19 +1,19 @@
1
1
  'use server';
2
- import { createClient as o } from "@nextblock-cms/db/server";
3
- import { revalidatePath as i } from "next/cache";
4
- import { savePaymentCredentials as a } from "../../../payment-config.es.js";
2
+ import { createClient as a } from "@nextblock-cms/db/server";
3
+ import { revalidatePath as t } from "next/cache";
4
+ import { savePaymentCredentials as n } from "../../../payment-config.es.js";
5
5
  async function d() {
6
- const e = await o(), {
6
+ const e = await a(), {
7
7
  data: { user: r }
8
8
  } = await e.auth.getUser();
9
9
  if (!r)
10
10
  throw new Error("Unauthorized");
11
- const { data: t } = await e.from("profiles").select("role").eq("id", r.id).single();
12
- if (!t || t.role !== "ADMIN")
11
+ const { data: i } = await e.from("profiles").select("role").eq("id", r.id).single();
12
+ if (!i || i.role !== "ADMIN")
13
13
  throw new Error("Forbidden");
14
14
  }
15
15
  async function l(e) {
16
- await d(), await a({
16
+ await d(), await n({
17
17
  stripe: {
18
18
  publishableKey: String(e.get("stripe_publishableKey") ?? ""),
19
19
  secretKey: String(e.get("stripe_secretKey") ?? ""),
@@ -26,24 +26,24 @@ async function l(e) {
26
26
  secretKey: String(e.get("freemius_secretKey") ?? ""),
27
27
  apiKey: String(e.get("freemius_apiKey") ?? "")
28
28
  }
29
- }), i("/cms/payments");
29
+ }), t("/cms/payments"), t("/cms/dashboard"), t("/", "layout");
30
30
  }
31
31
  async function g(e) {
32
- const r = await o(), {
33
- data: { user: t }
32
+ const r = await a(), {
33
+ data: { user: i }
34
34
  } = await r.auth.getUser();
35
- if (!t)
35
+ if (!i)
36
36
  throw new Error("Unauthorized");
37
- const { data: s } = await r.from("profiles").select("role").eq("id", t.id).single();
37
+ const { data: s } = await r.from("profiles").select("role").eq("id", i.id).single();
38
38
  if (!s || s.role !== "ADMIN")
39
39
  throw new Error("Forbidden");
40
- const { error: n } = await r.from("site_settings").upsert({
40
+ const { error: o } = await r.from("site_settings").upsert({
41
41
  key: "enabled_payment_providers",
42
42
  value: e
43
43
  });
44
- if (n)
45
- throw console.error("Error updating payment providers:", n), new Error("Failed to update settings");
46
- return i("/cms/payments"), i("/cms/taxes"), i("/", "layout"), { success: !0 };
44
+ if (o)
45
+ throw console.error("Error updating payment providers:", o), new Error("Failed to update settings");
46
+ return t("/cms/payments"), t("/cms/taxes"), t("/", "layout"), { success: !0 };
47
47
  }
48
48
  export {
49
49
  l as savePaymentProviderCredentials,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@nextblock-cms/db/server"),r=require("../../../types.cjs.js"),s=require("../../../payment-config.cjs.js");async function o(){return s.getPaymentConfigStatus()}async function n(){const e=a.createClient(),{data:t,error:i}=await e.from("site_settings").select("value").eq("key","enabled_payment_providers").maybeSingle();return i||!t?{...r.DEFAULT_ENABLED_PAYMENT_PROVIDERS}:r.normalizeEnabledPaymentProviders(t.value)}async function u(){const e=await n();return e.stripe?"stripe":e.freemius?"freemius":"stripe"}exports.getEnabledPaymentProviders=n;exports.getPaymentSettings=u;exports.getStoreConfigStatus=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),m=require("@nextblock-cms/db/server"),i=require("../../../types.cjs.js"),P=require("../../../payment-config.cjs.js");async function u(){return P.getPaymentConfigStatus()}async function a(){const e=m.createClient(),{data:t,error:n}=await e.from("site_settings").select("value").eq("key","enabled_payment_providers").maybeSingle();return n||!t?{...i.DEFAULT_ENABLED_PAYMENT_PROVIDERS}:i.normalizeEnabledPaymentProviders(t.value)}async function l(){const e=await a();return e.stripe?"stripe":e.freemius?"freemius":"stripe"}const f={stripe:"Stripe",freemius:"Freemius"};function o(e,t,n){const r=t[e],{hasKeys:s,missing:g}=n[e];return{provider:e,label:f[e],enabled:r,hasKeys:s,ready:r&&s,missing:s&&!r?["Not enabled in CMS → Payments"]:g}}const c=y.cache(async()=>{const[e,t]=await Promise.all([a(),u()]);return{stripe:o("stripe",e,t),freemius:o("freemius",e,t)}});async function d(e){return(await c())[e]}async function S(e){return d(i.derivePaymentProviderFromProductType(e))}exports.getEnabledPaymentProviders=a;exports.getPaymentSettings=l;exports.getProviderReadiness=d;exports.getReadinessForProductType=S;exports.getStoreConfigStatus=u;exports.getStoreReadiness=c;
@@ -1,4 +1,4 @@
1
- import { EnabledPaymentProviders } from '../../../types';
1
+ import { EcommercePaymentProvider, EnabledPaymentProviders, ProductType } from '../../../types';
2
2
  export interface PaymentProviderConfigStatus {
3
3
  hasKeys: boolean;
4
4
  missing: string[];
@@ -10,3 +10,34 @@ export interface StorePaymentConfigStatus {
10
10
  export declare function getStoreConfigStatus(): Promise<StorePaymentConfigStatus>;
11
11
  export declare function getEnabledPaymentProviders(): Promise<EnabledPaymentProviders>;
12
12
  export declare function getPaymentSettings(): Promise<'stripe' | 'freemius'>;
13
+ export interface ProviderReadiness {
14
+ provider: EcommercePaymentProvider;
15
+ /** Human label for UI copy. */
16
+ label: string;
17
+ /** The admin flipped this provider on in CMS -> Payments. */
18
+ enabled: boolean;
19
+ /** Every credential the provider needs resolves (DB-first, env fallback). */
20
+ hasKeys: boolean;
21
+ /** The only field callers should branch on. */
22
+ ready: boolean;
23
+ /** Human labels of what is missing ('Secret key', ...). Never key material. */
24
+ missing: string[];
25
+ }
26
+ export interface StoreReadiness {
27
+ stripe: ProviderReadiness;
28
+ freemius: ProviderReadiness;
29
+ }
30
+ /**
31
+ * Readiness for both providers.
32
+ *
33
+ * Wrapped in React `cache()` so the several consumers that can appear on one page — the
34
+ * product-details renderer, the buy-CTA boundary, the JSON-LD builder — share a single
35
+ * lookup per request. `getStoreConfigStatus()` is additionally memoised for 60s across
36
+ * requests inside payment-config.ts; the per-request cache is what dedupes the
37
+ * enabled-providers read, which uses the cookie-scoped client and is not.
38
+ */
39
+ export declare const getStoreReadiness: () => Promise<StoreReadiness>;
40
+ /** Readiness for the one provider a given product/checkout depends on. */
41
+ export declare function getProviderReadiness(provider: EcommercePaymentProvider): Promise<ProviderReadiness>;
42
+ /** Readiness derived from a product row's `product_type`. */
43
+ export declare function getReadinessForProductType(productType: ProductType): Promise<ProviderReadiness>;
@@ -1,19 +1,56 @@
1
- import { createClient as n } from "@nextblock-cms/db/server";
2
- import { DEFAULT_ENABLED_PAYMENT_PROVIDERS as i, normalizeEnabledPaymentProviders as a } from "../../../types.es.js";
3
- import { getPaymentConfigStatus as s } from "../../../payment-config.es.js";
4
- async function c() {
5
- return s();
1
+ import { cache as u } from "react";
2
+ import { createClient as c } from "@nextblock-cms/db/server";
3
+ import { DEFAULT_ENABLED_PAYMENT_PROVIDERS as m, normalizeEnabledPaymentProviders as d, derivePaymentProviderFromProductType as f } from "../../../types.es.js";
4
+ import { getPaymentConfigStatus as y } from "../../../payment-config.es.js";
5
+ async function l() {
6
+ return y();
6
7
  }
7
- async function o() {
8
- const e = n(), { data: t, error: r } = await e.from("site_settings").select("value").eq("key", "enabled_payment_providers").maybeSingle();
9
- return r || !t ? { ...i } : a(t.value);
8
+ async function a() {
9
+ const e = c(), { data: t, error: n } = await e.from("site_settings").select("value").eq("key", "enabled_payment_providers").maybeSingle();
10
+ return n || !t ? { ...m } : d(t.value);
10
11
  }
11
- async function l() {
12
- const e = await o();
12
+ async function v() {
13
+ const e = await a();
13
14
  return e.stripe ? "stripe" : e.freemius ? "freemius" : "stripe";
14
15
  }
16
+ const P = {
17
+ stripe: "Stripe",
18
+ freemius: "Freemius"
19
+ };
20
+ function i(e, t, n) {
21
+ const r = t[e], { hasKeys: s, missing: o } = n[e];
22
+ return {
23
+ provider: e,
24
+ label: P[e],
25
+ enabled: r,
26
+ hasKeys: s,
27
+ ready: r && s,
28
+ // A provider with keys that was simply never switched on needs different copy
29
+ // from one with no credentials at all, so surface that as its own "missing" item.
30
+ missing: s && !r ? ["Not enabled in CMS → Payments"] : o
31
+ };
32
+ }
33
+ const g = u(async () => {
34
+ const [e, t] = await Promise.all([
35
+ a(),
36
+ l()
37
+ ]);
38
+ return {
39
+ stripe: i("stripe", e, t),
40
+ freemius: i("freemius", e, t)
41
+ };
42
+ });
43
+ async function p(e) {
44
+ return (await g())[e];
45
+ }
46
+ async function _(e) {
47
+ return p(f(e));
48
+ }
15
49
  export {
16
- o as getEnabledPaymentProviders,
17
- l as getPaymentSettings,
18
- c as getStoreConfigStatus
50
+ a as getEnabledPaymentProviders,
51
+ v as getPaymentSettings,
52
+ p as getProviderReadiness,
53
+ _ as getReadinessForProductType,
54
+ l as getStoreConfigStatus,
55
+ g as getStoreReadiness
19
56
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),l=require("react"),qe=require("@hookform/resolvers/zod"),O=require("lucide-react"),t=require("@nextblock-cms/ui"),Ae=require("../../../../product-schema.cjs.js"),Te=require("react-hook-form"),Oe=require("./ProductMediaManager.cjs.js"),ze=require("./SyncFreemiusPricingButton.cjs.js"),Le=require("./VariationsEditor.cjs.js"),je=require("./CurrencyPriceFields.cjs.js"),ve=require("./SaleScheduleFields.cjs.js"),Ke=require("./ProductCategorySelector.cjs.js"),K=require("../product-price-sync.cjs.js"),$e=require("../../../../types.cjs.js"),De=require("../../../../currency.cjs.js"),z=require("@nextblock-cms/utils");function L({title:s,description:o,action:g,children:b,hideHeader:P}){return e.jsxDEV("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[!P&&e.jsxDEV("div",{className:"flex items-start justify-between gap-4 flex-wrap border-b border-muted/50 pb-2 mb-1",children:[e.jsxDEV("div",{className:"space-y-0.5",children:[e.jsxDEV("h2",{className:"text-sm font-bold tracking-tight",children:s},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:121,columnNumber:13},this),o?e.jsxDEV("p",{className:"text-[11px] text-muted-foreground leading-none",children:o},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:123,columnNumber:15},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:120,columnNumber:11},this),g]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:119,columnNumber:9},this),e.jsxDEV("div",{className:P?"":"pt-1",children:b},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:129,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:117,columnNumber:5},this)}function Je(s,o,g){const b=o?Number.parseInt(o,10):void 0;return s?.language_id||(Number.isFinite(b)?b:void 0)||g.find(P=>P.is_default)?.id||g[0]?.id||1}function _e(s,o,g,b,P){const y=(b.find(k=>k.is_default)??b[0])?.code||"USD",E=s?.prices&&Object.keys(s.prices).length>0?s.prices:{[y]:typeof s?.price=="number"?s.price/100:0},B=s?.sale_prices&&Object.keys(s.sale_prices).length>0?s.sale_prices:typeof s?.sale_price=="number"?{[y]:s.sale_price/100}:{},H=s?.product_type||"",V=s?.payment_provider||(s?.product_type?$e.derivePaymentProviderFromProductType(s.product_type):"stripe");return{...K.sanitizeProductFormValuesForStoreManagedCurrencies({product_type:H||"physical",payment_provider:V,title:s?.title||"",slug:s?.slug||"",sku:s?.sku||"",upc:s?.upc||"",is_taxable:s?.is_taxable??!0,price:typeof s?.price=="number"?s.price/100:0,prices:E,sale_price:typeof s?.sale_price=="number"?s.sale_price/100:null,sale_prices:B,stock:s?.stock||0,meta_title:s?.meta_title||"",meta_description:s?.meta_description||"",custom_canonical:s?.custom_canonical||"",short_description:s?.short_description||"",description_json:s?.description_json||{type:"doc",content:[{type:"paragraph"}]},freemius_product_id:s?.freemius_product_id||"",freemius_plan_id:s?.freemius_plan_id||"",trial_period_days:s?.trial_period_days??0,trial_requires_payment_method:s?.trial_requires_payment_method??!1,status:s?.status||"draft",language_id:Je(s,o,g),translation_group_id:s?.translation_group_id||P||void 0,product_media:s?.product_media?.map(k=>({media_id:k.media_id}))||[],category_ids:s?.category_ids||[],variation_attributes:s?.variation_attributes||[],variants:s?.variants?.map(k=>({...k,prices:k.prices||{},sale_prices:k.sale_prices||{}}))||[]},b),product_type:H,payment_provider:V}}function Pe(s){return s?s.map(o=>({id:o.id||o.media_id,media_id:o.media_id,file_path:o.media?.file_path||o.media?.object_key||"",alt:o.media?.alt_text||"",sort_order:o.sort_order??0})).sort((o,g)=>o.sort_order-g.sort_order):[]}function Xe(s){return s.map(o=>({media_id:o.media_id}))}function Ye(s){return s.map(o=>({media_id:o.media_id,file_path:o.file_path,alt:o.alt}))}const Qe=s=>s.toString().toLowerCase().trim().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"");function We({initialData:s,isEdit:o=!1,mediaPickerNode:g,availableLanguagesProp:b,globalAttributesProp:P,currenciesProp:$,translationGroupId:y,targetLanguageId:E,freemiusDashboardNode:B,enabledProviders:H,configStatus:V,createAction:J,updateAction:k,availableCategoriesProp:Ce=[],hasOpenDraft:Fe=!1}){const[S,w]=l.useState(!1),[X,Y]=l.useState(()=>!!s?.variants?.length),a=l.useMemo(()=>$.filter(r=>r.is_active!==!1).sort((r,i)=>r.is_default!==i.is_default?r.is_default?-1:1:r.code.localeCompare(i.code)),[$]),m=l.useMemo(()=>a.find(r=>r.is_default)??a[0],[a]),M=l.useMemo(()=>K.getStoreManagedPriceCurrencyCodes(a),[a]),te=Te.useForm({resolver:qe.zodResolver(Ae.productSchema),defaultValues:_e(s,E,b,a,y)}),{register:n,handleSubmit:Q,setValue:c,reset:ce,watch:d,setError:I,formState:{errors:x,dirtyFields:ie}}=te,le=l.useRef(!0),W=l.useRef(null),[ye,q]=l.useState(!1),[me,A]=l.useState(null),[ne,Ve]=l.useState(null),Z=d(),de=te.formState.isDirty;l.useEffect(()=>{if(!o)return;if(le.current){le.current=!1,W.current=JSON.stringify(Z);return}if(!de)return;const r=JSON.stringify(Z);if(r===W.current)return;const i=setTimeout(()=>{S||(W.current=r,Q(ke)())},400);return()=>clearTimeout(i)},[Z,o,de,S,Q]);const ae=d("title"),U=d("product_type"),N=U==="digital"?"freemius":U==="physical"?"stripe":void 0,j=U==="physical",ue=U==="digital",G=N?H[N]:!1,ee=N?V[N].hasKeys:!1,Re=!!d("freemius_product_id"),pe=Number(d("trial_period_days")||0),Ne=!!d("trial_requires_payment_method"),Ee=d("variants")||[],C=d("price"),R=d("sale_price"),v=d("prices")||{},F=d("sale_prices")||{},D=(Ee?.length||0)>0,Ue=d("language_id"),Be=b.find(r=>r.id===Ue)?.code||b.find(r=>r.is_default)?.code||b[0]?.code,T=l.useMemo(()=>K.resolveEditorCurrencyPriceMaps({currencies:a,prices:v,salePrices:F,fallbackPrice:C,fallbackSalePrice:R}),[C,R,a,v,F]),He=l.useMemo(()=>s?.variants?.map(r=>({...r,prices:r.prices||{},sale_prices:r.sale_prices||{}})),[s?.variants]);l.useEffect(()=>{if(ie.title&&!o){const r=Qe(ae);c("slug",r,{shouldValidate:!0})}},[ae,ie.title,c,o]);const[se,be]=l.useState(()=>Pe(s?.product_media)),[re,xe]=l.useState(new Set);l.useEffect(()=>{ce(_e(s,E,b,a,y)),be(Pe(s?.product_media)),xe(new Set),Y(!!s?.variants?.length)},[b,a,s,ce,E,y]);const Se=r=>{const i=new Set(r.map(p=>p.id)),u=se.filter(p=>!i.has(p.id)),f=new Set(re);u.forEach(p=>{p.media_id&&f.add(p.media_id)}),xe(f),be(r),c("product_media",Xe(r),{shouldDirty:!0}),c("explicitly_removed_media_ids",Array.from(f),{shouldDirty:!0})};l.useEffect(()=>{c("explicitly_removed_media_ids",Array.from(re))},[re,c]),l.useEffect(()=>{D&&Y(!0)},[D]),l.useEffect(()=>{n("is_taxable"),n("price"),n("sale_price"),n("payment_provider"),n("trial_requires_payment_method")},[n]),l.useEffect(()=>{if(!ue){c("trial_period_days",0,{shouldDirty:!1,shouldValidate:!0}),c("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0});return}pe<=0&&c("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0})},[ue,c,pe]),l.useEffect(()=>{N&&c("payment_provider",N,{shouldDirty:!1,shouldValidate:!0})},[N,c]),l.useEffect(()=>{m&&v[m.code]===void 0&&c("prices",{...v,[m.code]:C||0},{shouldDirty:!1})},[C,m,v,c]);const fe=l.useCallback((r,i)=>{const u={...v,[r]:i};c("prices",u,{shouldDirty:!0,shouldValidate:!0}),r===m?.code&&c("price",i,{shouldDirty:!0,shouldValidate:!0})},[m?.code,v,c]),he=l.useCallback((r,i)=>{const u={...F,[r]:i};c("sale_prices",u,{shouldDirty:!0,shouldValidate:!0}),r===m?.code&&c("sale_price",i,{shouldDirty:!0,shouldValidate:!0})},[m?.code,F,c]),ge=l.useCallback(()=>{if(!m)return;const r=new Set(M),i=v[m.code]??C??0,u=F[m.code]??R??null,f=a.reduce((_,h)=>{if(h.code!==m.code&&r.has(h.code))return _;const oe=De.convertMinorUnitAmount({amount:z.majorUnitAmountToMinor(i,m.code),fromCurrencyCode:m.code,toCurrencyCode:h.code,currencies:a,applyRounding:!0});return _[h.code]=z.minorUnitAmountToMajor(oe,h.code),_},{}),p=a.reduce((_,h)=>{if(h.code!==m.code&&r.has(h.code))return _;if(typeof u!="number")return(h.code===m.code||!r.has(h.code))&&(_[h.code]=null),_;const oe=De.convertMinorUnitAmount({amount:z.majorUnitAmountToMinor(u,m.code),fromCurrencyCode:m.code,toCurrencyCode:h.code,currencies:a,applyRounding:!0});return _[h.code]=z.minorUnitAmountToMajor(oe,h.code),_},{});c("prices",f,{shouldDirty:!0,shouldValidate:!0}),c("sale_prices",p,{shouldDirty:!0,shouldValidate:!0}),c("price",f[m.code]??i,{shouldDirty:!0,shouldValidate:!0}),c("sale_price",p[m.code]??null,{shouldDirty:!0,shouldValidate:!0})},[a,m,v,F,c,M,C,R]),we=l.useCallback(({variationAttributes:r,variants:i})=>{c("variation_attributes",r,{shouldDirty:!0}),c("variants",i,{shouldDirty:!0,shouldValidate:!0})},[c]),ke=async r=>{w(!0),q(!0),A(null);try{if(!N){const p="Select whether this product is physical or digital before saving.";I("product_type",{type:"manual",message:p}),o?A(p):alert(p),w(!1),q(!1);return}if(r.status==="active"&&(!G||!ee)){const p=`${N==="stripe"?"Stripe":"Freemius"} must be enabled and fully configured before this product can be published.`;I("product_type",{type:"manual",message:p}),o?A(p):alert(p),w(!1),q(!1);return}const i=j?0:Math.max(0,Number(r.trial_period_days||0)),u={...r,product_type:r.product_type,payment_provider:N,freemius_product_id:j?"":r.freemius_product_id,freemius_plan_id:j?"":r.freemius_plan_id,trial_period_days:i,trial_requires_payment_method:!j&&i>0?r.trial_requires_payment_method:!1,upc:j?r.upc:null,is_taxable:j?r.is_taxable:!1,variation_attributes:j?r.variation_attributes:[],variants:j?r.variants:[]},f=K.sanitizeProductFormValuesForStoreManagedCurrencies(u,a);if(o&&k)await k(f),Ve(new Date);else if(J)await J(f);else throw new Error("Product form action is not configured.")}catch(i){if(console.error(i),i.message==="NEXT_REDIRECT")return;let u=i.message||"An error occurred while saving.";if(i.code==="23505"){const f=i.message?.toLowerCase()||"";f.includes("products_slug_key")||f.includes("slug")?(u="This slug is already in use. Please choose another one.",I("slug",{type:"manual",message:u})):(f.includes("products_sku_key")||f.includes("sku"))&&(u="This SKU is already in use.",I("sku",{type:"manual",message:u}))}o?A(u):alert(u)}finally{w(!1),q(!1)}},Me=D?"bg-muted/60 text-muted-foreground opacity-70":"",Ie=Ye(se);return e.jsxDEV("form",{onSubmit:Q(ke),className:"space-y-2.5 pb-4",children:[e.jsxDEV("input",{type:"hidden",...n("translation_group_id")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:811,columnNumber:7},this),e.jsxDEV("input",{type:"hidden",...n("payment_provider")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:812,columnNumber:7},this),e.jsxDEV("div",{className:"space-y-2.5 w-full",children:[e.jsxDEV("div",{className:"rounded-lg border bg-card p-2.5 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxDEV("div",{className:"flex items-center gap-6",children:[e.jsxDEV("div",{className:"flex h-9 items-center gap-2",children:[e.jsxDEV("span",{className:"text-sm font-bold whitespace-nowrap leading-none pt-0.5",children:"Product Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:818,columnNumber:15},this),x.product_type&&e.jsxDEV(O.AlertCircle,{className:"h-4 w-4 text-destructive"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:820,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:817,columnNumber:13},this),e.jsxDEV("div",{className:"flex h-9 items-center",children:e.jsxDEV(t.Select,{onValueChange:r=>c("product_type",r,{shouldDirty:!0,shouldValidate:!0}),value:U||void 0,children:[e.jsxDEV(t.SelectTrigger,{className:"w-[160px] h-9 text-xs",children:e.jsxDEV(t.SelectValue,{placeholder:"Select Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:835,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:834,columnNumber:17},this),e.jsxDEV(t.SelectContent,{children:[e.jsxDEV(t.SelectItem,{value:"physical",children:"Physical Product"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:838,columnNumber:19},this),e.jsxDEV(t.SelectItem,{value:"digital",children:"Digital Product"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:839,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:837,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:825,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:824,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:816,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-6",children:[e.jsxDEV("div",{className:"flex h-9 items-center gap-3",children:[e.jsxDEV("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider leading-none",children:"Payment Provider"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:847,columnNumber:15},this),e.jsxDEV(t.Badge,{variant:"outline",className:"text-xs py-1 font-bold bg-muted/30 leading-none",children:N?N==="stripe"?"Stripe":"Freemius":"—"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:848,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:846,columnNumber:13},this),N&&e.jsxDEV("div",{className:"flex h-9 items-center gap-2",children:G&&ee?e.jsxDEV("span",{className:"flex items-center gap-1.5 text-emerald-600 text-[10px] font-bold bg-emerald-50 px-2 py-1 rounded-full border border-emerald-100 uppercase leading-none",children:[e.jsxDEV(O.CheckCircle2,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:861,columnNumber:21},this),"Ready"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:860,columnNumber:19},this):e.jsxDEV("span",{className:"flex items-center gap-1.5 text-amber-600 text-[10px] font-bold bg-amber-50 px-2 py-1 rounded-full border border-amber-100 uppercase leading-none",children:[e.jsxDEV(O.AlertCircle,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:866,columnNumber:21},this),G?"Keys Missing":"Disabled"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:865,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:858,columnNumber:15},this),!ee&&N&&V[N].missing.length>0&&e.jsxDEV("div",{className:"hidden xl:flex h-9 items-center gap-1 text-[10px] text-muted-foreground bg-muted/50 px-2 py-1 rounded border border-dashed leading-none",children:[e.jsxDEV(O.Info,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:875,columnNumber:17},this),"Missing: ",V[N].missing.join(", ")]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:874,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:845,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:815,columnNumber:9},this),e.jsxDEV(L,{title:"Product Information",hideHeader:!0,children:[o&&e.jsxDEV("div",{className:"flex items-center justify-between text-xs text-muted-foreground pb-2 border-b border-border/40 mb-2.5",children:[e.jsxDEV("span",{className:"font-semibold text-[11px] uppercase tracking-wider text-muted-foreground/80",children:"Product Settings"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:888,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 min-h-[16px]",children:ye?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"relative flex h-2 w-2",children:[e.jsxDEV("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:893,columnNumber:23},this),e.jsxDEV("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-amber-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:894,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:892,columnNumber:21},this),e.jsxDEV("span",{className:"text-amber-600 dark:text-amber-400 font-medium",children:"Autosaving settings..."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:896,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:891,columnNumber:19},this):me?e.jsxDEV("span",{className:"text-red-500 font-medium",children:["Error saving settings: ",me]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:899,columnNumber:19},this):ne?e.jsxDEV("span",{className:"text-emerald-600 dark:text-emerald-400 font-medium",children:["Settings autosaved at ",ne.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:901,columnNumber:19},this):e.jsxDEV("span",{className:"text-muted-foreground/60",children:"Settings autosave in draft mode"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:905,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:889,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:887,columnNumber:13},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-2.5",children:[e.jsxDEV("div",{className:"col-span-2 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Title"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:912,columnNumber:15},this),e.jsxDEV(t.Input,{id:"title",placeholder:"Product title",...n("title"),className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:913,columnNumber:15},this),x.title&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:x.title.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:914,columnNumber:32},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:911,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-2 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"slug",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Slug"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:917,columnNumber:15},this),e.jsxDEV(t.Input,{id:"slug",placeholder:"product-slug",...n("slug"),className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:918,columnNumber:15},this),x.slug&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:x.slug.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:919,columnNumber:31},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:916,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-1 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"sku",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"SKU"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:922,columnNumber:15},this),e.jsxDEV(t.Input,{id:"sku",placeholder:"SKU",...n("sku"),className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:923,columnNumber:15},this),x.sku&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:x.sku.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:924,columnNumber:30},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:921,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-1 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"upc_ean",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"UPC / EAN"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:927,columnNumber:15},this),e.jsxDEV(t.Input,{id:"upc_ean",placeholder:"000000000",...n("upc"),className:"h-8 text-sm font-mono",readOnly:D},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:928,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:926,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:910,columnNumber:11},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-12 gap-2.5 mt-2",children:[e.jsxDEV("div",{className:`${o?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsxDEV(t.Label,{htmlFor:"meta_title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Title"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:933,columnNumber:15},this),e.jsxDEV(t.Input,{id:"meta_title",...n("meta_title"),placeholder:"SEO page title (50-60 chars)",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:934,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:932,columnNumber:13},this),e.jsxDEV("div",{className:"lg:col-span-4 col-span-2 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"meta_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Description"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:937,columnNumber:15},this),e.jsxDEV(t.Input,{id:"meta_description",...n("meta_description"),placeholder:"SEO description (150-160 chars)",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:938,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:936,columnNumber:13},this),e.jsxDEV("div",{className:`${o?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsxDEV(t.Label,{htmlFor:"custom_canonical",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Canonical URL (optional)"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:941,columnNumber:15},this),e.jsxDEV(t.Input,{id:"custom_canonical",...n("custom_canonical"),placeholder:"Blank = self-referencing. Absolute https://… URL or /relative path to override.",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:942,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:940,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:931,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:882,columnNumber:9},this),e.jsxDEV(L,{title:"Product Categories",description:"Assign this product to one or more categories.",children:e.jsxDEV(Ke.ProductCategorySelector,{categories:Ce,selectedIds:d("category_ids")||[],onChange:r=>c("category_ids",r,{shouldDirty:!0,shouldValidate:!0})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:954,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:950,columnNumber:9},this),e.jsxDEV("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[j&&e.jsxDEV("div",{className:"flex items-center justify-between gap-4 flex-wrap border-b border-muted/50 pb-2",children:[e.jsxDEV("div",{className:"flex items-center gap-4",children:e.jsxDEV("div",{className:"space-y-0.5",children:[e.jsxDEV("h2",{className:"text-sm font-bold tracking-tight",children:"Pricing & Inventory"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:966,columnNumber:19},this),e.jsxDEV("p",{className:"text-[11px] text-muted-foreground leading-none",children:"Manage simple or variant pricing."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:967,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:965,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:964,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("div",{className:"flex items-center gap-2 bg-muted/40 rounded-md px-2.5 py-1.5",children:[e.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Stock"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:972,columnNumber:21},this),e.jsxDEV(t.Input,{id:"stock",type:"number",min:"0",...n("stock",{valueAsNumber:!0}),placeholder:"0",readOnly:D,className:`${Me} h-8 w-20 text-sm text-center font-mono bg-background`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:973,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:971,columnNumber:19},this),D?e.jsxDEV(t.Badge,{variant:"secondary",className:"text-[11px] py-0 px-2 h-5",children:"Variant pricing"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:984,columnNumber:19},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:970,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:963,columnNumber:13},this),j?e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{className:"w-full",children:[e.jsxDEV(je.CurrencyPriceFields,{idPrefix:"product",currencies:a,prices:T.prices,salePrices:T.salePrices,managedCurrencyCodes:M,onPriceChange:fe,onSalePriceChange:he,onAutoFill:ge,readOnly:D,helperText:D?"Parent prices stay as a fallback, but active variants define the live shopper price.":void 0,trailing:e.jsxDEV(ve.SaleScheduleFields,{idPrefix:"product",startAt:d("sale_start_at"),endAt:d("sale_end_at"),onChange:(r,i)=>c(r,i,{shouldDirty:!0,shouldValidate:!0}),error:x.sale_end_at?.message,bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1008,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:992,columnNumber:17},this),x.price&&e.jsxDEV("p",{className:"text-destructive text-sm mt-1",children:x.price.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1021,columnNumber:19},this),x.sale_price&&e.jsxDEV("p",{className:"text-destructive text-sm mt-1",children:x.sale_price.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1024,columnNumber:19},this),x.stock&&e.jsxDEV("p",{className:"text-destructive text-[10px] font-medium leading-none mt-1",children:x.stock.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1027,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:991,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center justify-between gap-3 rounded border border-dashed p-2.5 bg-muted/5",children:[e.jsxDEV("span",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:D?"Variations Active":"Variations"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1032,columnNumber:17},this),e.jsxDEV(t.Button,{type:"button",variant:X?"outline":"default",onClick:()=>Y(r=>!r),size:"sm",className:"h-7 text-xs px-3",children:X?"Hide":"Manage"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1033,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1031,columnNumber:15},this),X&&e.jsxDEV("div",{className:"border-t pt-3",children:e.jsxDEV(Le.VariationsEditor,{globalAttributes:P,currentLanguageCode:Be,baseSku:d("sku")||"",basePrice:C||0,basePrices:v,baseSalePrice:typeof R=="number"?R:null,baseSalePrices:F,currencies:a,availableVariantImages:Ie,initialVariationAttributes:s?.variation_attributes,initialVariants:He,onChange:we},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1046,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1045,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:990,columnNumber:13},this):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"flex items-end gap-4 w-full",children:[e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(t.Label,{htmlFor:"freemius_product_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Product ID"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1070,columnNumber:19},this),e.jsxDEV(t.Input,{id:"freemius_product_id",...n("freemius_product_id"),className:"h-9"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1071,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1069,columnNumber:17},this),e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(t.Label,{htmlFor:"freemius_plan_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Plan ID"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1074,columnNumber:19},this),e.jsxDEV(t.Input,{id:"freemius_plan_id",...n("freemius_plan_id"),className:"h-9"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1075,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1073,columnNumber:17},this),Re?e.jsxDEV(ze.SyncFreemiusPricingButton,{productId:d("freemius_product_id"),hasOpenDraft:Fe},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1078,columnNumber:19},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1068,columnNumber:15},this),e.jsxDEV("div",{className:"bg-muted/10 border rounded-md overflow-hidden",children:[e.jsxDEV("div",{className:"flex flex-wrap items-center gap-6 bg-muted/20 border-b p-2.5 px-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Free Trial"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1088,columnNumber:21},this),e.jsxDEV(t.Badge,{variant:"outline",className:"font-mono text-xs shadow-sm bg-background",children:[String(d("trial_period_days")||0)," Days"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1089,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1087,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Card Required"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1092,columnNumber:21},this),e.jsxDEV(t.Badge,{variant:Ne?"default":"secondary",className:"text-xs shadow-sm",children:Ne?"Yes":"No"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1093,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1091,columnNumber:19},this),e.jsxDEV("span",{className:"text-[10px] text-muted-foreground ml-auto",children:"Managed in Freemius dashboard"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1097,columnNumber:19},this),e.jsxDEV("input",{type:"hidden",...n("trial_period_days",{valueAsNumber:!0})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1101,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1086,columnNumber:17},this),e.jsxDEV("div",{className:"w-full p-4 pt-3 space-y-2",children:[e.jsxDEV(je.CurrencyPriceFields,{idPrefix:"product",currencies:a,prices:T.prices,salePrices:T.salePrices,managedCurrencyCodes:M,onPriceChange:fe,onSalePriceChange:he,onAutoFill:ge,readOnly:!0,trailing:e.jsxDEV(ve.SaleScheduleFields,{idPrefix:"product",startAt:d("sale_start_at"),endAt:d("sale_end_at"),onChange:(r,i)=>c(r,i,{shouldDirty:!0,shouldValidate:!0}),error:x.sale_end_at?.message,bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1116,columnNumber:23},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1105,columnNumber:19},this),e.jsxDEV("p",{className:"text-[10px] leading-snug text-muted-foreground",children:"Scheduling a sale on a Freemius product generates a time-bounded Freemius coupon so the discount is enforced at Freemius checkout."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1128,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1104,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1085,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1067,columnNumber:15},this),B&&e.jsxDEV("div",{className:"pt-2 border-t",children:B},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1136,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1066,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:961,columnNumber:9},this),e.jsxDEV(L,{title:"Product Description",hideHeader:!0,children:e.jsxDEV("div",{className:"space-y-2",children:e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"short_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Short Description"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1147,columnNumber:15},this),e.jsxDEV(t.Input,{id:"short_description",...n("short_description"),placeholder:"Brief summary for product cards...",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1148,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1146,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1145,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1144,columnNumber:9},this),e.jsxDEV(L,{title:"Media Gallery",description:"Drag to reorder. First image is the hero.",children:[e.jsxDEV(Oe.ProductMediaManager,{initialMedia:se,onUpdate:Se,mediaPickerNode:g},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1154,columnNumber:11},this),e.jsxDEV("input",{type:"hidden",...n("product_media")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1159,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1153,columnNumber:9},this),!o&&e.jsxDEV("div",{className:"rounded-lg border bg-card p-3 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"New products start as a draft. Publish it from the top bar once it's ready."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1164,columnNumber:13},this),e.jsxDEV(t.Button,{disabled:S,type:"submit",size:"sm",className:"h-8 text-sm px-5",children:S?"Saving...":"Save Changes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1167,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1163,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:814,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:809,columnNumber:5},this)}exports.ProductForm=We;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),l=require("react"),qe=require("@hookform/resolvers/zod"),I=require("lucide-react"),t=require("@nextblock-cms/ui"),Ae=require("../../../../product-schema.cjs.js"),Te=require("react-hook-form"),Oe=require("./ProductMediaManager.cjs.js"),ze=require("./SyncFreemiusPricingButton.cjs.js"),Le=require("./VariationsEditor.cjs.js"),je=require("./CurrencyPriceFields.cjs.js"),ve=require("./SaleScheduleFields.cjs.js"),Ke=require("./ProductCategorySelector.cjs.js"),T=require("../product-price-sync.cjs.js"),$e=require("../../../../types.cjs.js"),De=require("../../../../currency.cjs.js"),q=require("@nextblock-cms/utils");function A({title:s,description:o,action:g,children:p,hideHeader:P}){return e.jsxDEV("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[!P&&e.jsxDEV("div",{className:"flex items-start justify-between gap-4 flex-wrap border-b border-muted/50 pb-2 mb-1",children:[e.jsxDEV("div",{className:"space-y-0.5",children:[e.jsxDEV("h2",{className:"text-sm font-bold tracking-tight",children:s},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:121,columnNumber:13},this),o?e.jsxDEV("p",{className:"text-[11px] text-muted-foreground leading-none",children:o},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:123,columnNumber:15},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:120,columnNumber:11},this),g]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:119,columnNumber:9},this),e.jsxDEV("div",{className:P?"":"pt-1",children:p},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:129,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:117,columnNumber:5},this)}function Je(s,o,g){const p=o?Number.parseInt(o,10):void 0;return s?.language_id||(Number.isFinite(p)?p:void 0)||g.find(P=>P.is_default)?.id||g[0]?.id||1}function _e(s,o,g,p,P){const y=(p.find(k=>k.is_default)??p[0])?.code||"USD",E=s?.prices&&Object.keys(s.prices).length>0?s.prices:{[y]:typeof s?.price=="number"?s.price/100:0},B=s?.sale_prices&&Object.keys(s.sale_prices).length>0?s.sale_prices:typeof s?.sale_price=="number"?{[y]:s.sale_price/100}:{},H=s?.product_type||"",V=s?.payment_provider||(s?.product_type?$e.derivePaymentProviderFromProductType(s.product_type):"stripe");return{...T.sanitizeProductFormValuesForStoreManagedCurrencies({product_type:H||"physical",payment_provider:V,title:s?.title||"",slug:s?.slug||"",sku:s?.sku||"",upc:s?.upc||"",is_taxable:s?.is_taxable??!0,price:typeof s?.price=="number"?s.price/100:0,prices:E,sale_price:typeof s?.sale_price=="number"?s.sale_price/100:null,sale_prices:B,stock:s?.stock||0,meta_title:s?.meta_title||"",meta_description:s?.meta_description||"",custom_canonical:s?.custom_canonical||"",short_description:s?.short_description||"",description_json:s?.description_json||{type:"doc",content:[{type:"paragraph"}]},freemius_product_id:s?.freemius_product_id||"",freemius_plan_id:s?.freemius_plan_id||"",trial_period_days:s?.trial_period_days??0,trial_requires_payment_method:s?.trial_requires_payment_method??!1,status:s?.status||"draft",language_id:Je(s,o,g),translation_group_id:s?.translation_group_id||P||void 0,product_media:s?.product_media?.map(k=>({media_id:k.media_id}))||[],category_ids:s?.category_ids||[],variation_attributes:s?.variation_attributes||[],variants:s?.variants?.map(k=>({...k,prices:k.prices||{},sale_prices:k.sale_prices||{}}))||[]},p),product_type:H,payment_provider:V}}function Pe(s){return s?s.map(o=>({id:o.id||o.media_id,media_id:o.media_id,file_path:o.media?.file_path||o.media?.object_key||"",alt:o.media?.alt_text||"",sort_order:o.sort_order??0})).sort((o,g)=>o.sort_order-g.sort_order):[]}function Xe(s){return s.map(o=>({media_id:o.media_id}))}function Ye(s){return s.map(o=>({media_id:o.media_id,file_path:o.file_path,alt:o.alt}))}const Qe=s=>s.toString().toLowerCase().trim().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"");function We({initialData:s,isEdit:o=!1,mediaPickerNode:g,availableLanguagesProp:p,globalAttributesProp:P,currenciesProp:O,translationGroupId:y,targetLanguageId:E,freemiusDashboardNode:B,enabledProviders:H,configStatus:V,createAction:z,updateAction:k,availableCategoriesProp:Ce=[],hasOpenDraft:Fe=!1}){const[S,L]=l.useState(!1),[K,$]=l.useState(()=>!!s?.variants?.length),a=l.useMemo(()=>O.filter(r=>r.is_active!==!1).sort((r,i)=>r.is_default!==i.is_default?r.is_default?-1:1:r.code.localeCompare(i.code)),[O]),m=l.useMemo(()=>a.find(r=>r.is_default)??a[0],[a]),w=l.useMemo(()=>T.getStoreManagedPriceCurrencyCodes(a),[a]),re=Te.useForm({resolver:qe.zodResolver(Ae.productSchema),defaultValues:_e(s,E,p,a,y)}),{register:n,handleSubmit:J,setValue:c,reset:oe,watch:d,setError:X,formState:{errors:N,dirtyFields:te}}=re,ce=l.useRef(!0),Y=l.useRef(null),[ye,Q]=l.useState(!1),[ie,W]=l.useState(null),[le,Ve]=l.useState(null),Z=d(),me=re.formState.isDirty;l.useEffect(()=>{if(!o)return;if(ce.current){ce.current=!1,Y.current=JSON.stringify(Z);return}if(!me)return;const r=JSON.stringify(Z);if(r===Y.current)return;const i=setTimeout(()=>{S||(Y.current=r,J(ke)())},400);return()=>clearTimeout(i)},[Z,o,me,S,J]);const ne=d("title"),U=d("product_type"),b=U==="digital"?"freemius":U==="physical"?"stripe":void 0,j=U==="physical",de=U==="digital",ae=b?H[b]:!1,ue=b?V[b].hasKeys:!1,Re=!!d("freemius_product_id"),pe=Number(d("trial_period_days")||0),Ne=!!d("trial_requires_payment_method"),Ee=d("variants")||[],C=d("price"),R=d("sale_price"),v=d("prices")||{},F=d("sale_prices")||{},D=(Ee?.length||0)>0,Ue=d("language_id"),Be=p.find(r=>r.id===Ue)?.code||p.find(r=>r.is_default)?.code||p[0]?.code,M=l.useMemo(()=>T.resolveEditorCurrencyPriceMaps({currencies:a,prices:v,salePrices:F,fallbackPrice:C,fallbackSalePrice:R}),[C,R,a,v,F]),He=l.useMemo(()=>s?.variants?.map(r=>({...r,prices:r.prices||{},sale_prices:r.sale_prices||{}})),[s?.variants]);l.useEffect(()=>{if(te.title&&!o){const r=Qe(ne);c("slug",r,{shouldValidate:!0})}},[ne,te.title,c,o]);const[G,be]=l.useState(()=>Pe(s?.product_media)),[ee,xe]=l.useState(new Set);l.useEffect(()=>{oe(_e(s,E,p,a,y)),be(Pe(s?.product_media)),xe(new Set),$(!!s?.variants?.length)},[p,a,s,oe,E,y]);const Se=r=>{const i=new Set(r.map(h=>h.id)),u=G.filter(h=>!i.has(h.id)),x=new Set(ee);u.forEach(h=>{h.media_id&&x.add(h.media_id)}),xe(x),be(r),c("product_media",Xe(r),{shouldDirty:!0}),c("explicitly_removed_media_ids",Array.from(x),{shouldDirty:!0})};l.useEffect(()=>{c("explicitly_removed_media_ids",Array.from(ee))},[ee,c]),l.useEffect(()=>{D&&$(!0)},[D]),l.useEffect(()=>{n("is_taxable"),n("price"),n("sale_price"),n("payment_provider"),n("trial_requires_payment_method")},[n]),l.useEffect(()=>{if(!de){c("trial_period_days",0,{shouldDirty:!1,shouldValidate:!0}),c("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0});return}pe<=0&&c("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0})},[de,c,pe]),l.useEffect(()=>{b&&c("payment_provider",b,{shouldDirty:!1,shouldValidate:!0})},[b,c]),l.useEffect(()=>{m&&v[m.code]===void 0&&c("prices",{...v,[m.code]:C||0},{shouldDirty:!1})},[C,m,v,c]);const fe=l.useCallback((r,i)=>{const u={...v,[r]:i};c("prices",u,{shouldDirty:!0,shouldValidate:!0}),r===m?.code&&c("price",i,{shouldDirty:!0,shouldValidate:!0})},[m?.code,v,c]),he=l.useCallback((r,i)=>{const u={...F,[r]:i};c("sale_prices",u,{shouldDirty:!0,shouldValidate:!0}),r===m?.code&&c("sale_price",i,{shouldDirty:!0,shouldValidate:!0})},[m?.code,F,c]),ge=l.useCallback(()=>{if(!m)return;const r=new Set(w),i=v[m.code]??C??0,u=F[m.code]??R??null,x=a.reduce((_,f)=>{if(f.code!==m.code&&r.has(f.code))return _;const se=De.convertMinorUnitAmount({amount:q.majorUnitAmountToMinor(i,m.code),fromCurrencyCode:m.code,toCurrencyCode:f.code,currencies:a,applyRounding:!0});return _[f.code]=q.minorUnitAmountToMajor(se,f.code),_},{}),h=a.reduce((_,f)=>{if(f.code!==m.code&&r.has(f.code))return _;if(typeof u!="number")return(f.code===m.code||!r.has(f.code))&&(_[f.code]=null),_;const se=De.convertMinorUnitAmount({amount:q.majorUnitAmountToMinor(u,m.code),fromCurrencyCode:m.code,toCurrencyCode:f.code,currencies:a,applyRounding:!0});return _[f.code]=q.minorUnitAmountToMajor(se,f.code),_},{});c("prices",x,{shouldDirty:!0,shouldValidate:!0}),c("sale_prices",h,{shouldDirty:!0,shouldValidate:!0}),c("price",x[m.code]??i,{shouldDirty:!0,shouldValidate:!0}),c("sale_price",h[m.code]??null,{shouldDirty:!0,shouldValidate:!0})},[a,m,v,F,c,w,C,R]),we=l.useCallback(({variationAttributes:r,variants:i})=>{c("variation_attributes",r,{shouldDirty:!0}),c("variants",i,{shouldDirty:!0,shouldValidate:!0})},[c]),ke=async r=>{L(!0),Q(!0),W(null);try{if(!b){const h="Select whether this product is physical or digital before saving.";X("product_type",{type:"manual",message:h}),o?W(h):alert(h),L(!1),Q(!1);return}const i=j?0:Math.max(0,Number(r.trial_period_days||0)),u={...r,product_type:r.product_type,payment_provider:b,freemius_product_id:j?"":r.freemius_product_id,freemius_plan_id:j?"":r.freemius_plan_id,trial_period_days:i,trial_requires_payment_method:!j&&i>0?r.trial_requires_payment_method:!1,upc:j?r.upc:null,is_taxable:j?r.is_taxable:!1,variation_attributes:j?r.variation_attributes:[],variants:j?r.variants:[]},x=T.sanitizeProductFormValuesForStoreManagedCurrencies(u,a);if(o&&k)await k(x),Ve(new Date);else if(z)await z(x);else throw new Error("Product form action is not configured.")}catch(i){if(console.error(i),i.message==="NEXT_REDIRECT")return;let u=i.message||"An error occurred while saving.";if(i.code==="23505"){const x=i.message?.toLowerCase()||"";x.includes("products_slug_key")||x.includes("slug")?(u="This slug is already in use. Please choose another one.",X("slug",{type:"manual",message:u})):(x.includes("products_sku_key")||x.includes("sku"))&&(u="This SKU is already in use.",X("sku",{type:"manual",message:u}))}o?W(u):alert(u)}finally{L(!1),Q(!1)}},Me=D?"bg-muted/60 text-muted-foreground opacity-70":"",Ie=Ye(G);return e.jsxDEV("form",{onSubmit:J(ke),className:"space-y-2.5 pb-4",children:[e.jsxDEV("input",{type:"hidden",...n("translation_group_id")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:800,columnNumber:7},this),e.jsxDEV("input",{type:"hidden",...n("payment_provider")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:801,columnNumber:7},this),e.jsxDEV("div",{className:"space-y-2.5 w-full",children:[e.jsxDEV("div",{className:"rounded-lg border bg-card p-2.5 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxDEV("div",{className:"flex items-center gap-6",children:[e.jsxDEV("div",{className:"flex h-9 items-center gap-2",children:[e.jsxDEV("span",{className:"text-sm font-bold whitespace-nowrap leading-none pt-0.5",children:"Product Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:807,columnNumber:15},this),N.product_type&&e.jsxDEV(I.AlertCircle,{className:"h-4 w-4 text-destructive"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:809,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:806,columnNumber:13},this),e.jsxDEV("div",{className:"flex h-9 items-center",children:e.jsxDEV(t.Select,{onValueChange:r=>c("product_type",r,{shouldDirty:!0,shouldValidate:!0}),value:U||void 0,children:[e.jsxDEV(t.SelectTrigger,{className:"w-[160px] h-9 text-xs",children:e.jsxDEV(t.SelectValue,{placeholder:"Select Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:824,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:823,columnNumber:17},this),e.jsxDEV(t.SelectContent,{children:[e.jsxDEV(t.SelectItem,{value:"physical",children:"Physical Product"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:827,columnNumber:19},this),e.jsxDEV(t.SelectItem,{value:"digital",children:"Digital Product"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:828,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:826,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:814,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:813,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:805,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-6",children:[e.jsxDEV("div",{className:"flex h-9 items-center gap-3",children:[e.jsxDEV("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider leading-none",children:"Payment Provider"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:836,columnNumber:15},this),e.jsxDEV(t.Badge,{variant:"outline",className:"text-xs py-1 font-bold bg-muted/30 leading-none",children:b?b==="stripe"?"Stripe":"Freemius":"—"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:837,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:835,columnNumber:13},this),b&&e.jsxDEV("div",{className:"flex h-9 items-center gap-2",children:ae&&ue?e.jsxDEV("span",{className:"flex items-center gap-1.5 text-emerald-600 text-[10px] font-bold bg-emerald-50 px-2 py-1 rounded-full border border-emerald-100 uppercase leading-none",children:[e.jsxDEV(I.CheckCircle2,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:850,columnNumber:21},this),"Ready"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:849,columnNumber:19},this):e.jsxDEV("span",{className:"flex items-center gap-1.5 text-amber-600 text-[10px] font-bold bg-amber-50 px-2 py-1 rounded-full border border-amber-100 uppercase leading-none",children:[e.jsxDEV(I.AlertCircle,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:855,columnNumber:21},this),ae?"Keys Missing":"Disabled"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:854,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:847,columnNumber:15},this),!ue&&b&&V[b].missing.length>0&&e.jsxDEV("a",{href:"/cms/payments",className:"hidden xl:flex h-9 items-center gap-1 text-[10px] text-muted-foreground bg-muted/50 px-2 py-1 rounded border border-dashed leading-none hover:text-foreground hover:border-solid",children:[e.jsxDEV(I.Info,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:867,columnNumber:17},this),"Missing: ",V[b].missing.join(", ")," — set up payments"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:863,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:834,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:804,columnNumber:9},this),e.jsxDEV(A,{title:"Product Information",hideHeader:!0,children:[o&&e.jsxDEV("div",{className:"flex items-center justify-between text-xs text-muted-foreground pb-2 border-b border-border/40 mb-2.5",children:[e.jsxDEV("span",{className:"font-semibold text-[11px] uppercase tracking-wider text-muted-foreground/80",children:"Product Settings"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:880,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 min-h-[16px]",children:ye?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"relative flex h-2 w-2",children:[e.jsxDEV("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:885,columnNumber:23},this),e.jsxDEV("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-amber-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:886,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:884,columnNumber:21},this),e.jsxDEV("span",{className:"text-amber-600 dark:text-amber-400 font-medium",children:"Autosaving settings..."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:888,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:883,columnNumber:19},this):ie?e.jsxDEV("span",{className:"text-red-500 font-medium",children:["Error saving settings: ",ie]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:891,columnNumber:19},this):le?e.jsxDEV("span",{className:"text-emerald-600 dark:text-emerald-400 font-medium",children:["Settings autosaved at ",le.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:893,columnNumber:19},this):e.jsxDEV("span",{className:"text-muted-foreground/60",children:"Settings autosave in draft mode"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:897,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:881,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:879,columnNumber:13},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-2.5",children:[e.jsxDEV("div",{className:"col-span-2 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Title"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:904,columnNumber:15},this),e.jsxDEV(t.Input,{id:"title",placeholder:"Product title",...n("title"),className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:905,columnNumber:15},this),N.title&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:N.title.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:906,columnNumber:32},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:903,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-2 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"slug",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Slug"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:909,columnNumber:15},this),e.jsxDEV(t.Input,{id:"slug",placeholder:"product-slug",...n("slug"),className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:910,columnNumber:15},this),N.slug&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:N.slug.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:911,columnNumber:31},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:908,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-1 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"sku",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"SKU"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:914,columnNumber:15},this),e.jsxDEV(t.Input,{id:"sku",placeholder:"SKU",...n("sku"),className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:915,columnNumber:15},this),N.sku&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:N.sku.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:916,columnNumber:30},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:913,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-1 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"upc_ean",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"UPC / EAN"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:919,columnNumber:15},this),e.jsxDEV(t.Input,{id:"upc_ean",placeholder:"000000000",...n("upc"),className:"h-8 text-sm font-mono",readOnly:D},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:920,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:918,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:902,columnNumber:11},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-12 gap-2.5 mt-2",children:[e.jsxDEV("div",{className:`${o?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsxDEV(t.Label,{htmlFor:"meta_title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Title"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:925,columnNumber:15},this),e.jsxDEV(t.Input,{id:"meta_title",...n("meta_title"),placeholder:"SEO page title (50-60 chars)",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:926,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:924,columnNumber:13},this),e.jsxDEV("div",{className:"lg:col-span-4 col-span-2 space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"meta_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Description"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:929,columnNumber:15},this),e.jsxDEV(t.Input,{id:"meta_description",...n("meta_description"),placeholder:"SEO description (150-160 chars)",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:930,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:928,columnNumber:13},this),e.jsxDEV("div",{className:`${o?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsxDEV(t.Label,{htmlFor:"custom_canonical",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Canonical URL (optional)"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:933,columnNumber:15},this),e.jsxDEV(t.Input,{id:"custom_canonical",...n("custom_canonical"),placeholder:"Blank = self-referencing. Absolute https://… URL or /relative path to override.",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:934,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:932,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:923,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:874,columnNumber:9},this),e.jsxDEV(A,{title:"Product Categories",description:"Assign this product to one or more categories.",children:e.jsxDEV(Ke.ProductCategorySelector,{categories:Ce,selectedIds:d("category_ids")||[],onChange:r=>c("category_ids",r,{shouldDirty:!0,shouldValidate:!0})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:946,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:942,columnNumber:9},this),e.jsxDEV("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[j&&e.jsxDEV("div",{className:"flex items-center justify-between gap-4 flex-wrap border-b border-muted/50 pb-2",children:[e.jsxDEV("div",{className:"flex items-center gap-4",children:e.jsxDEV("div",{className:"space-y-0.5",children:[e.jsxDEV("h2",{className:"text-sm font-bold tracking-tight",children:"Pricing & Inventory"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:958,columnNumber:19},this),e.jsxDEV("p",{className:"text-[11px] text-muted-foreground leading-none",children:"Manage simple or variant pricing."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:959,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:957,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:956,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("div",{className:"flex items-center gap-2 bg-muted/40 rounded-md px-2.5 py-1.5",children:[e.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Stock"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:964,columnNumber:21},this),e.jsxDEV(t.Input,{id:"stock",type:"number",min:"0",...n("stock",{valueAsNumber:!0}),placeholder:"0",readOnly:D,className:`${Me} h-8 w-20 text-sm text-center font-mono bg-background`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:965,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:963,columnNumber:19},this),D?e.jsxDEV(t.Badge,{variant:"secondary",className:"text-[11px] py-0 px-2 h-5",children:"Variant pricing"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:976,columnNumber:19},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:962,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:955,columnNumber:13},this),j?e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{className:"w-full",children:[e.jsxDEV(je.CurrencyPriceFields,{idPrefix:"product",currencies:a,prices:M.prices,salePrices:M.salePrices,managedCurrencyCodes:w,onPriceChange:fe,onSalePriceChange:he,onAutoFill:ge,readOnly:D,helperText:D?"Parent prices stay as a fallback, but active variants define the live shopper price.":void 0,trailing:e.jsxDEV(ve.SaleScheduleFields,{idPrefix:"product",startAt:d("sale_start_at"),endAt:d("sale_end_at"),onChange:(r,i)=>c(r,i,{shouldDirty:!0,shouldValidate:!0}),error:N.sale_end_at?.message,bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1e3,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:984,columnNumber:17},this),N.price&&e.jsxDEV("p",{className:"text-destructive text-sm mt-1",children:N.price.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1013,columnNumber:19},this),N.sale_price&&e.jsxDEV("p",{className:"text-destructive text-sm mt-1",children:N.sale_price.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1016,columnNumber:19},this),N.stock&&e.jsxDEV("p",{className:"text-destructive text-[10px] font-medium leading-none mt-1",children:N.stock.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1019,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:983,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center justify-between gap-3 rounded border border-dashed p-2.5 bg-muted/5",children:[e.jsxDEV("span",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:D?"Variations Active":"Variations"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1024,columnNumber:17},this),e.jsxDEV(t.Button,{type:"button",variant:K?"outline":"default",onClick:()=>$(r=>!r),size:"sm",className:"h-7 text-xs px-3",children:K?"Hide":"Manage"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1025,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1023,columnNumber:15},this),K&&e.jsxDEV("div",{className:"border-t pt-3",children:e.jsxDEV(Le.VariationsEditor,{globalAttributes:P,currentLanguageCode:Be,baseSku:d("sku")||"",basePrice:C||0,basePrices:v,baseSalePrice:typeof R=="number"?R:null,baseSalePrices:F,currencies:a,availableVariantImages:Ie,initialVariationAttributes:s?.variation_attributes,initialVariants:He,onChange:we},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1038,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1037,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:982,columnNumber:13},this):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"flex items-end gap-4 w-full",children:[e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(t.Label,{htmlFor:"freemius_product_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Product ID"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1062,columnNumber:19},this),e.jsxDEV(t.Input,{id:"freemius_product_id",...n("freemius_product_id"),className:"h-9"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1063,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1061,columnNumber:17},this),e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(t.Label,{htmlFor:"freemius_plan_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Plan ID"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1066,columnNumber:19},this),e.jsxDEV(t.Input,{id:"freemius_plan_id",...n("freemius_plan_id"),className:"h-9"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1067,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1065,columnNumber:17},this),Re?e.jsxDEV(ze.SyncFreemiusPricingButton,{productId:d("freemius_product_id"),hasOpenDraft:Fe},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1070,columnNumber:19},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1060,columnNumber:15},this),e.jsxDEV("div",{className:"bg-muted/10 border rounded-md overflow-hidden",children:[e.jsxDEV("div",{className:"flex flex-wrap items-center gap-6 bg-muted/20 border-b p-2.5 px-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Free Trial"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1080,columnNumber:21},this),e.jsxDEV(t.Badge,{variant:"outline",className:"font-mono text-xs shadow-sm bg-background",children:[String(d("trial_period_days")||0)," Days"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1081,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1079,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Card Required"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1084,columnNumber:21},this),e.jsxDEV(t.Badge,{variant:Ne?"default":"secondary",className:"text-xs shadow-sm",children:Ne?"Yes":"No"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1085,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1083,columnNumber:19},this),e.jsxDEV("span",{className:"text-[10px] text-muted-foreground ml-auto",children:"Managed in Freemius dashboard"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1089,columnNumber:19},this),e.jsxDEV("input",{type:"hidden",...n("trial_period_days",{valueAsNumber:!0})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1093,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1078,columnNumber:17},this),e.jsxDEV("div",{className:"w-full p-4 pt-3 space-y-2",children:[e.jsxDEV(je.CurrencyPriceFields,{idPrefix:"product",currencies:a,prices:M.prices,salePrices:M.salePrices,managedCurrencyCodes:w,onPriceChange:fe,onSalePriceChange:he,onAutoFill:ge,readOnly:!0,trailing:e.jsxDEV(ve.SaleScheduleFields,{idPrefix:"product",startAt:d("sale_start_at"),endAt:d("sale_end_at"),onChange:(r,i)=>c(r,i,{shouldDirty:!0,shouldValidate:!0}),error:N.sale_end_at?.message,bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1108,columnNumber:23},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1097,columnNumber:19},this),e.jsxDEV("p",{className:"text-[10px] leading-snug text-muted-foreground",children:"Scheduling a sale on a Freemius product generates a time-bounded Freemius coupon so the discount is enforced at Freemius checkout."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1120,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1096,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1077,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1059,columnNumber:15},this),B&&e.jsxDEV("div",{className:"pt-2 border-t",children:B},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1128,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1058,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:953,columnNumber:9},this),e.jsxDEV(A,{title:"Product Description",hideHeader:!0,children:e.jsxDEV("div",{className:"space-y-2",children:e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(t.Label,{htmlFor:"short_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Short Description"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1139,columnNumber:15},this),e.jsxDEV(t.Input,{id:"short_description",...n("short_description"),placeholder:"Brief summary for product cards...",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1140,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1138,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1137,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1136,columnNumber:9},this),e.jsxDEV(A,{title:"Media Gallery",description:"Drag to reorder. First image is the hero.",children:[e.jsxDEV(Oe.ProductMediaManager,{initialMedia:G,onUpdate:Se,mediaPickerNode:g},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1146,columnNumber:11},this),e.jsxDEV("input",{type:"hidden",...n("product_media")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1151,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1145,columnNumber:9},this),!o&&e.jsxDEV("div",{className:"rounded-lg border bg-card p-3 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"New products start as a draft. Publish it from the top bar once it's ready."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1156,columnNumber:13},this),e.jsxDEV(t.Button,{disabled:S,type:"submit",size:"sm",className:"h-8 text-sm px-5",children:S?"Saving...":"Save Changes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1159,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1155,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:803,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:798,columnNumber:5},this)}exports.ProductForm=We;