"I kw.","II kw.","III kw.","IV kw."],wide:["I kwartaĹ‚","II kwartaĹ‚","III kwartaĹ‚","IV kwartaĹ‚"]},DZ={narrow:["S","L","M","K","M","C","L","S","W","P","L","G"],abbreviated:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paĹş","lis","gru"],wide:["styczeĹ„","luty","marzec","kwiecieĹ„","maj","czerwiec","lipiec","sierpieĹ„","wrzesieĹ„","paĹşdziernik","listopad","grudzieĹ„"]},MZ={narrow:["s","l","m","k","m","c","l","s","w","p","l","g"],abbreviated:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paĹş","lis","gru"],wide:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","wrzeĹ›nia","paĹşdziernika","listopada","grudnia"]},$Z={narrow:["N","P","W","Ĺš","C","P","S"],short:["nie","pon","wto","Ĺ›ro","czw","piÄ…","sob"],abbreviated:["niedz.","pon.","wt.","Ĺ›r.","czw.","pt.","sob."],wide:["niedziela","poniedziaĹ‚ek","wtorek","Ĺ›roda","czwartek","piÄ…tek","sobota"]},LZ={narrow:["n","p","w","Ĺ›","c","p","s"],short:["nie","pon","wto","Ĺ›ro","czw","piÄ…","sob"],abbreviated:["niedz.","pon.","wt.","Ĺ›r.","czw.","pt.","sob."],wide:["niedziela","poniedziaĹ‚ek","wtorek","Ĺ›roda","czwartek","piÄ…tek","sobota"]},zZ={narrow:{am:"a",pm:"p",midnight:"pĂłĹ‚n.",noon:"poĹ‚",morning:"rano",afternoon:"popoĹ‚.",evening:"wiecz.",night:"noc"},abbreviated:{am:"AM",pm:"PM",midnight:"pĂłĹ‚noc",noon:"poĹ‚udnie",morning:"rano",afternoon:"popoĹ‚udnie",evening:"wieczĂłr",night:"noc"},wide:{am:"AM",pm:"PM",midnight:"pĂłĹ‚noc",noon:"poĹ‚udnie",morning:"rano",afternoon:"popoĹ‚udnie",evening:"wieczĂłr",night:"noc"}},UZ={narrow:{am:"a",pm:"p",midnight:"o pĂłĹ‚n.",noon:"w poĹ‚.",morning:"rano",afternoon:"po poĹ‚.",evening:"wiecz.",night:"w nocy"},abbreviated:{am:"AM",pm:"PM",midnight:"o pĂłĹ‚nocy",noon:"w poĹ‚udnie",morning:"rano",afternoon:"po poĹ‚udniu",evening:"wieczorem",night:"w nocy"},wide:{am:"AM",pm:"PM",midnight:"o pĂłĹ‚nocy",noon:"w poĹ‚udnie",morning:"rano",afternoon:"po poĹ‚udniu",evening:"wieczorem",night:"w nocy"}},BZ=(e,t)=>String(e),FZ={ordinalNumber:BZ,era:En({values:IZ,defaultWidth:"wide"}),quarter:En({values:RZ,defaultWidth:"wide",argumentCallback:e=>e-1}),month:En({values:DZ,defaultWidth:"wide",formattingValues:MZ,defaultFormattingWidth:"wide"}),day:En({values:$Z,defaultWidth:"wide",formattingValues:LZ,defaultFormattingWidth:"wide"}),dayPeriod:En({values:zZ,defaultWidth:"wide",formattingValues:UZ,defaultFormattingWidth:"wide"})},WZ=/^(\d+)?/i,qZ=/\d+/i,HZ={narrow:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,abbreviated:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,wide:/^(przed\s*nasz(Ä…|a)\s*er(Ä…|a)|naszej\s*ery)/i},KZ={any:[/^p/i,/^n/i]},VZ={narrow:/^[1234]/i,abbreviated:/^(I|II|III|IV)\s*kw\.?/i,wide:/^(I|II|III|IV)\s*kwarta(Ĺ‚|l)/i},GZ={narrow:[/1/i,/2/i,/3/i,/4/i],any:[/^I kw/i,/^II kw/i,/^III kw/i,/^IV kw/i]},YZ={narrow:/^[slmkcwpg]/i,abbreviated:/^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(Ĺş|z)|lis|gru)/i,wide:/^(stycznia|stycze(Ĺ„|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(Ĺ„|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(Ĺ„|n)|wrze(Ĺ›|s)nia|wrzesie(Ĺ„|n)|pa(Ĺş|z)dziernika|pa(Ĺş|z)dziernik|listopada|listopad|grudnia|grudzie(Ĺ„|n))/i},XZ={narrow:[/^s/i,/^l/i,/^m/i,/^k/i,/^m/i,/^c/i,/^l/i,/^s/i,/^w/i,/^p/i,/^l/i,/^g/i],any:[/^st/i,/^lu/i,/^mar/i,/^k/i,/^maj/i,/^c/i,/^lip/i,/^si/i,/^w/i,/^p/i,/^lis/i,/^g/i]},JZ={narrow:/^[npwĹ›cs]/i,short:/^(nie|pon|wto|(Ĺ›|s)ro|czw|pi(Ä…|a)|sob)/i,abbreviated:/^(niedz|pon|wt|(Ĺ›|s)r|czw|pt|sob)\.?/i,wide:/^(niedziela|poniedzia(Ĺ‚|l)ek|wtorek|(Ĺ›|s)roda|czwartek|pi(Ä…|a)tek|sobota)/i},QZ={narrow:[/^n/i,/^p/i,/^w/i,/^Ĺ›/i,/^c/i,/^p/i,/^s/i],abbreviated:[/^n/i,/^po/i,/^w/i,/^(Ĺ›|s)r/i,/^c/i,/^pt/i,/^so/i],any:[/^n/i,/^po/i,/^w/i,/^(Ĺ›|s)r/i,/^c/i,/^pi/i,/^so/i]},ZZ={narrow:/^(^a$|^p$|pĂł(Ĺ‚|l)n\.?|o\s*pĂł(Ĺ‚|l)n\.?|po(Ĺ‚|l)\.?|w\s*po(Ĺ‚|l)\.?|po\s*po(Ĺ‚|l)\.?|rano|wiecz\.?|noc|w\s*nocy)/i,any:/^(am|pm|pĂł(Ĺ‚|l)noc|o\s*pĂł(Ĺ‚|l)nocy|po(Ĺ‚|l)udnie|w\s*po(Ĺ‚|l)udnie|popo(Ĺ‚|l)udnie|po\s*po(Ĺ‚|l)udniu|rano|wieczĂłr|wieczorem|noc|w\s*nocy)/i},eee={narrow:{am:/^a$/i,pm:/^p$/i,midnight:/pĂł(Ĺ‚|l)n/i,noon:/po(Ĺ‚|l)/i,morning:/rano/i,afternoon:/po\s*po(Ĺ‚|l)/i,evening:/wiecz/i,night:/noc/i},any:{am:/^am/i,pm:/^pm/i,midnight:/pĂł(Ĺ‚|l)n/i,noon:/po(Ĺ‚|l)/i,morning:/rano/i,afternoon:/po\s*po(Ĺ‚|l)/i,evening:/wiecz/i,night:/noc/i}},tee={ordinalNumber:AI({matchPattern:WZ,parsePattern:qZ,valueCallback:e=>parseInt(e,10)}),era:On({matchPatterns:HZ,defaultMatchWidth:"wide",parsePatterns:KZ,defaultParseWidth:"any"}),quarter:On({matchPatterns:VZ,defaultMatchWidth:"wide",parsePatterns:GZ,defaultParseWidth:"any",valueCallback:e=>e+1}),month:On({matchPatterns:YZ,defaultMatchWidth:"wide",parsePatterns:XZ,defaultParseWidth:"any"}),day:On({matchPatterns:JZ,defaultMatchWidth:"wide",parsePatterns:QZ,defaultParseWidth:"any"}),dayPeriod:On({matchPatterns:ZZ,defaultMatchWidth:"any",parsePatterns:eee,defaultParseWidth:"any"})},dw={code:"pl",formatDistance:_Z,formatLong:EZ,formatRelative:NZ,localize:FZ,match:tee,options:{weekStartsOn:1,firstWeekContainsDate:4}},We=(e,t="zĹ‚")=>`${new Intl.NumberFormat("pl-PL",{minimumFractionDigits:2,maximumFractionDigits:2}).format(e)} ${t}`,Ji=e=>`${Number.isFinite(e)?e.toFixed(1):"0.0"}%`,II=(e,t)=>t>0?(e-t)/t*100:0,RI=(e=new Date)=>e.toISOString(),Al=e=>Rl(new Date(e),"dd MMM yyyy, HH:mm",{locale:dw}),ree=(e=new Date)=>Rl(e,"yyyy-MM"),hd=(e,t)=>e.startsWith(t),yf=()=>crypto.randomUUID(),nO=()=>{var e;return((e=tr().user)==null?void 0:e.id)??"local-user"},Qi={async listProducts(){if(_r&&Be){const{data:e,error:t}=await Be.from("products").select("*").order("created_at",{ascending:!1});if(t)throw t;return e??[]}return tr().products},async saveProduct(e,t){var i;if(_r&&Be){const a={...e,user_id:(i=(await Be.auth.getUser()).data.user)==null?void 0:i.id},s=t?Be.from("products").update(a).eq("id",t).select().single():Be.from("products").insert(a).select().single(),{data:u,error:c}=await s;if(c)throw c;return u}const r=tr(),n=t?{...r.products.find(a=>a.id===t),...e}:{...e,id:yf(),user_id:nO(),created_at:RI()};return r.products=t?r.products.map(a=>a.id===t?n:a):[n,...r.products],ja(r),n},async deleteProduct(e){if(_r&&Be){const{error:r}=await Be.from("products").delete().eq("id",e);if(r)throw r;return}const t=tr();t.products=t.products.filter(r=>r.id!==e),ja(t)},async restock(e,t,r,n,i){var u;if(_r&&Be){const c=(u=(await Be.auth.getUser()).data.user)==null?void 0:u.id,{data:d,error:h}=await Be.from("stock_purchases").insert({user_id:c,product_id:e,qty:t,unit_price:r,supplier:n,purchased_at:i}).select().single();if(h)throw h;const p=(await Qi.listProducts()).find(m=>m.id===e);return p&&await Be.from("products").update({stock_qty:p.stock_qty+t}).eq("id",e),d}const a=tr(),s={id:yf(),user_id:nO(),product_id:e,qty:t,unit_price:r,purchased_at:i,supplier:n};return a.stockPurchases=[s,...a.stockPurchases],a.products=a.products.map(c=>c.id===e?{...c,stock_qty:c.stock_qty+t}:c),ja(a),s}},iO=(e,t)=>{const r=t.filter(a=>a.sale_id===e.id),n=r.reduce((a,s)=>a+s.qty*s.unit_sell_price,0),i=r.reduce((a,s)=>a+s.qty*s.unit_purchase_price,0);return{sale:e,itemCount:r.length,revenue:n,cost:i,margin:n-i}},wf={async listSales(){if(_r&&Be){const t=Be,[{data:r,error:n},{data:i,error:a}]=await Promise.all([t.from("sales").select("*").order("sold_at",{ascending:!1}),t.from("sale_items").select("*")]);if(n)throw n;if(a)throw a;return(r??[]).map(s=>iO(s,i??[]))}const e=tr();return e.sales.map(t=>iO(t,e.saleItems)).sort((t,r)=>r.sale.sold_at.localeCompare(t.sale.sold_at))},async createSale(e,t=""){var a,s;if(e.length===0)throw new Error("Dodaj przynajmniej jeden produkt.");if(_r&&Be){const u=Be,c=(a=(await u.auth.getUser()).data.user)==null?void 0:a.id,{data:d,error:h}=await u.from("sales").insert({user_id:c,note:t}).select().single();if(h)throw h;const p=e.map(g=>({sale_id:d.id,product_id:g.product.id,qty:g.qty,unit_sell_price:g.unit_sell_price,unit_purchase_price:g.product.purchase_price})),{error:m}=await u.from("sale_items").insert(p);if(m)throw m;return await Promise.all(e.map(g=>u.from("products").update({stock_qty:g.product.stock_qty-g.qty}).eq("id",g.product.id))),d}const r=tr(),n={id:yf(),user_id:((s=r.user)==null?void 0:s.id)??"local-user",sold_at:RI(),note:t},i=e.map(u=>({id:yf(),sale_id:n.id,product_id:u.product.id,qty:u.qty,unit_sell_price:u.unit_sell_price,unit_purchase_price:u.product.purchase_price}));return r.sales=[n,...r.sales],r.saleItems=[...i,...r.saleItems],r.products=r.products.map(u=>{const c=e.find(d=>d.product.id===u.id);return c?{...u,stock_qty:u.stock_qty-c.qty}:u}),ja(r),n}},DI={async dashboard(e=Rl(new Date,"yyyy-MM"),t=5){const[r,n]=await Promise.all([Qi.listProducts(),wf.listSales()]),a=tr().saleItems,s=n.filter(p=>hd(p.sale.sold_at,e)),u=s.reduce((p,m)=>p+m.revenue,0),c=s.reduce((p,m)=>p+m.cost,0),h=iQ({start:aQ(new Date(`${e}-01`)),end:rQ(new Date(`${e}-01`))}).map(p=>{const m=Rl(p,"yyyy-MM-dd"),g=s.filter(b=>b.sale.sold_at.startsWith(m));return{day:Rl(p,"dd MMM",{locale:dw}),revenue:g.reduce((b,w)=>b+w.revenue,0),cost:g.reduce((b,w)=>b+w.cost,0)}});return{revenue:u,cost:c,profit:u-c,transactionCount:s.length,daily:h,topProducts:aO(r,a,e),lowStock:r.filter(p=>p.stock_qty<=t)}},async reports(e){const t=tr(),[r,n]=await Promise.all([Qi.listProducts(),wf.listSales()]),i=n.filter(d=>hd(d.sale.sold_at,e)),a=t.stockPurchases.filter(d=>hd(d.purchased_at,e)).map(d=>{var h;return{...d,productName:((h=r.find(p=>p.id===d.product_id))==null?void 0:h.name)??"Produkt",totalCost:d.qty*d.unit_price}}),s=i.reduce((d,h)=>d+h.revenue,0),u=i.reduce((d,h)=>d+h.cost,0),c=t.saleItems.filter(d=>i.some(h=>h.sale.id===d.sale_id)).reduce((d,h)=>d+h.qty,0);return{sales:i,purchases:a,weekly:nee(i),topMarginProducts:aO(r,t.saleItems,e).slice(0,10).map(d=>({name:d.name,margin:d.marginPercent,revenue:d.revenue})),totals:{revenue:s,cost:u,profit:s-u,marginPercent:s>0?(s-u)/s*100:0,transactionCount:i.length,unitsSold:c}}}},aO=(e,t,r)=>{const n=tr();return e.map(i=>{const a=t.filter(d=>{const h=n.sales.find(p=>p.id===d.sale_id);return d.product_id===i.id&&h&&hd(h.sold_at,r)}),s=a.reduce((d,h)=>d+h.qty*h.unit_sell_price,0),u=a.reduce((d,h)=>d+h.qty*h.unit_purchase_price,0),c=a.reduce((d,h)=>d+h.qty,0);return{productId:i.id,name:i.name,qty:c,revenue:s,marginPercent:s>0?(s-u)/s*100:0}}).filter(i=>i.revenue>0).sort((i,a)=>a.revenue-i.revenue)},nee=e=>{const t=new Map;return e.forEach(r=>{const n=`Tydz. ${jI(iZ(r.sale.sold_at),{locale:dw})}`,i=t.get(n)??{revenue:0,cost:0};t.set(n,{revenue:i.revenue+r.revenue,cost:i.cost+r.cost})}),Array.from(t.entries()).map(([r,n])=>({week:r,...n}))},iee=()=>{const{settings:e,notify:t}=Wr(),[r,n]=x.useState(null);if(x.useEffect(()=>{DI.dashboard(void 0,e.lowStockThreshold).then(n).catch(()=>t("error","BĹ‚Ä…d poĹ‚Ä…czenia â€” sprĂłbuj ponownie"))},[t,e.lowStockThreshold]),!r)return O.jsx(aee,{});const i=[{label:"PrzychĂłd",value:We(r.revenue,e.currency),icon:hz,tone:"text-emerald-600 bg-emerald-50"},{label:"Koszt towaru",value:We(r.cost,e.currency),icon:Uz,tone:"text-rose-600 bg-rose-50"},{label:"Zysk brutto",value:We(r.profit,e.currency),icon:Jz,tone:"text-primary-600 bg-primary-50"},{label:"Liczba transakcji",value:String(r.transactionCount),icon:QO,tone:"text-blue-600 bg-blue-50"}];return O.jsxs("div",{className:"space-y-6",children:[O.jsx("section",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-4",children:i.map(a=>O.jsxs("div",{className:"panel p-5",children:[O.jsxs("div",{className:"flex items-center justify-between",children:[O.jsx("p",{className:"text-sm font-semibold text-slate-500",children:a.label}),O.jsx("div",{className:`flex h-10 w-10 items-center justify-center rounded-lg ${a.tone}`,children:O.jsx(a.icon,{className:"h-5 w-5"})})]}),O.jsx("p",{className:"mt-4 text-2xl font-extrabold tracking-normal text-slate-950",children:a.value})]},a.label))}),O.jsxs("section",{className:"grid gap-6 xl:grid-cols-[1.4fr_0.8fr]",children:[O.jsxs("div",{className:"panel p-5",children:[O.jsx("h2",{className:"text-base font-bold text-slate-950",children:"PrzychĂłd vs koszt w bieĹĽÄ…cym miesiÄ…cu"}),O.jsx("div",{className:"mt-5 h-80 min-w-0",children:O.jsx(kC,{width:"100%",height:"100%",minWidth:0,children:O.jsxs(VJ,{data:r.daily,children:[O.jsx(rw,{stroke:"#e5e7eb",strokeDasharray:"4 4"}),O.jsx(ow,{dataKey:"day",tick:{fontSize:12},tickLine:!1,axisLine:!1}),O.jsx(sw,{tick:{fontSize:12},tickLine:!1,axisLine:!1}),O.jsx(fN,{formatter:a=>We(Number(a),e.currency)}),O.jsx(fy,{type:"monotone",dataKey:"revenue",name:"PrzychĂłd",stroke:"#10b981",strokeWidth:3,dot:!1}),O.jsx(fy,{type:"monotone",dataKey:"cost",name:"Koszt",stroke:"#ef4444",strokeWidth:3,dot:!1})]})})})]}),O.jsxs("div",{className:"space-y-6",children:[O.jsxs("div",{className:"panel p-5",children:[O.jsx("h2",{className:"text-base font-bold text-slate-950",children:"Najlepsze produkty"}),O.jsxs("div",{className:"mt-4 space-y-3",children:[r.topProducts.slice(0,5).map(a=>O.jsxs("div",{className:"flex items-center justify-between rounded-md border border-slate-100 p-3",children:[O.jsxs("div",{children:[O.jsx("p",{className:"text-sm font-bold text-slate-800",children:a.name}),O.jsxs("p",{className:"text-xs text-slate-500",children:[a.qty," szt. sprzedane"]})]}),O.jsxs("div",{className:"text-right",children:[O.jsx("p",{className:"text-sm font-bold",children:We(a.revenue,e.currency)}),O.jsx("span",{className:"badge bg-emerald-50 text-emerald-700",children:Ji(a.marginPercent)})]})]},a.productId)),r.topProducts.length===0&&O.jsx("p",{className:"py-8 text-center text-sm text-slate-500",children:"Brak sprzedaĹĽy w tym miesiÄ…cu."})]})]}),O.jsxs("div",{className:"panel p-5",children:[O.jsxs("h2",{className:"flex items-center gap-2 text-base font-bold text-slate-950",children:[O.jsx(Zz,{className:"h-5 w-5 text-orange-500"}),"Niski stan magazynowy"]}),O.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[r.lowStock.map(a=>O.jsxs("span",{className:"badge bg-orange-50 text-orange-700",children:[a.name,": ",a.stock_qty]},a.id)),r.lowStock.length===0&&O.jsx("p",{className:"text-sm text-slate-500",children:"Wszystko wyglÄ…da dobrze."})]})]})]})]})]})},aee=()=>O.jsxs("div",{className:"space-y-6",children:[O.jsx("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-4",children:Array.from({length:4}).map((e,t)=>O.jsx(ug,{className:"h-32"},t))}),O.jsx(ug,{className:"h-96"})]}),MI=({icon:e,title:t,action:r})=>O.jsxs("div",{className:"panel flex min-h-56 flex-col items-center justify-center gap-4 p-8 text-center",children:[O.jsx("div",{className:"flex h-14 w-14 items-center justify-center rounded-full bg-primary-50 text-primary-600",children:O.jsx(e,{className:"h-7 w-7"})}),O.jsx("p",{className:"max-w-sm text-sm font-semibold text-slate-700",children:t}),r]}),oee={name:"",sku:"",category:"",purchase_price:0,sell_price:0,stock_qty:0,unit:"szt"},see=()=>{const{settings:e,notify:t}=Wr(),[r,n]=x.useState([]),[i,a]=x.useState(""),[s,u]=x.useState("all"),[c,d]=x.useState(null),[h,p]=x.useState(null),m=x.useCallback(()=>Qi.listProducts().then(n).catch(()=>t("error","BĹ‚Ä…d poĹ‚Ä…czenia â€” sprĂłbuj ponownie")),[t]);x.useEffect(()=>{m()},[m]);const g=x.useMemo(()=>Array.from(new Set(r.map(w=>w.category).filter(Boolean))),[r]),b=r.filter(w=>{const S=`${w.name} ${w.sku??""}`.toLowerCase().includes(i.toLowerCase()),k=s==="all"||w.category===s;return S&&k});return O.jsxs("div",{className:"space-y-5",children:[O.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[O.jsxs("div",{className:"flex flex-1 flex-col gap-3 sm:flex-row",children:[O.jsxs("label",{className:"relative flex-1",children:[O.jsx(tA,{className:"absolute left-3 top-2.5 h-4 w-4 text-slate-400"}),O.jsx("input",{className:"field pl-9",placeholder:"Szukaj po nazwie lub SKU",value:i,onChange:w=>a(w.target.value)})]}),O.jsxs("select",{className:"field sm:w-56",value:s,onChange:w=>u(w.target.value),children:[O.jsx("option",{value:"all",children:"Wszystkie kategorie"}),g.map(w=>O.jsx("option",{value:w??"",children:w},w??""))]})]}),O.jsxs("button",{className:"btn-primary",onClick:()=>d("new"),children:[O.jsx(ZO,{className:"h-4 w-4"}),"Dodaj produkt"]})]}),b.length===0?O.jsx(MI,{icon:XO,title:"Brak produktĂłw â€” dodaj pierwszy",action:O.jsx("button",{className:"btn-primary",onClick:()=>d("new"),children:"Dodaj produkt"})}):O.jsx("div",{className:"panel overflow-hidden",children:O.jsx("div",{className:"overflow-x-auto",children:O.jsxs("table",{className:"w-full min-w-[920px] text-left text-sm",children:[O.jsx("thead",{className:"border-b border-slate-200 bg-slate-50 text-xs uppercase text-slate-500",children:O.jsx("tr",{children:["Name","SKU","Category","Purchase Price","Sell Price","Margin %","Stock Qty",""].map(w=>O.jsx("th",{className:"px-4 py-3 font-bold",children:w},w))})}),O.jsx("tbody",{className:"divide-y divide-slate-100",children:b.map(w=>{const S=II(w.sell_price,w.purchase_price);return O.jsxs("tr",{className:"hover:bg-slate-50",children:[O.jsx("td",{className:"px-4 py-3 font-bold text-slate-800",children:w.name}),O.jsx("td",{className:"px-4 py-3 text-slate-600",children:w.sku}),O.jsx("td",{className:"px-4 py-3 text-slate-600",children:w.category}),O.jsx("td",{className:"px-4 py-3",children:We(w.purchase_price,e.currency)}),O.jsx("td",{className:"px-4 py-3",children:We(w.sell_price,e.currency)}),O.jsx("td",{className:"px-4 py-3",children:O.jsx("span",{className:`badge ${S>=0?"bg-emerald-50 text-emerald-700":"bg-rose-50 text-rose-700"}`,children:Ji(S)})}),O.jsx("td",{className:"px-4 py-3",children:O.jsxs("span",{className:`badge ${w.stock_qty<=e.lowStockThreshold?"bg-orange-50 text-orange-700":"bg-slate-100 text-slate-700"}`,children:[w.stock_qty," ",w.unit]})}),O.jsx("td",{className:"px-4 py-3",children:O.jsxs("div",{className:"flex justify-end gap-2",children:[O.jsx("button",{className:"icon-button","aria-label":"Dostawa",onClick:()=>p(w),children:O.jsx(Rz,{className:"h-4 w-4"})}),O.jsx("button",{className:"icon-button","aria-label":"Edytuj",onClick:()=>d(w),children:O.jsx(Mz,{className:"h-4 w-4"})}),O.jsx("button",{className:"icon-button","aria-label":"UsuĹ„",onClick:()=>Qi.deleteProduct(w.id).then(m).then(()=>t("success","Produkt usuniÄ™ty.")),children:O.jsx(rA,{className:"h-4 w-4"})})]})})]},w.id)})})]})})}),c&&O.jsx(lee,{product:c==="new"?null:c,onClose:()=>d(null),onSaved:m}),h&&O.jsx(uee,{product:h,onClose:()=>p(null),onSaved:m})]})},lee=({product:e,onClose:t,onSaved:r})=>{const{notify:n,settings:i}=Wr(),[a,s]=x.useState(e??oee),u=II(a.sell_price,a.purchase_price),c=(h,p)=>s(m=>({...m,[h]:p})),d=async h=>{if(h.preventDefault(),!a.name.trim())return n("error","Nazwa produktu jest wymagana.");await Qi.saveProduct(a,e==null?void 0:e.id),n("success",e?"Produkt zapisany.":"Produkt dodany."),r(),t()};return O.jsx("div",{className:"fixed inset-0 z-50 bg-slate-900/20",children:O.jsxs("form",{className:"ml-auto flex h-full w-full max-w-xl flex-col bg-white shadow-soft",onSubmit:d,children:[O.jsxs("div",{className:"flex items-center justify-between border-b border-slate-200 p-5",children:[O.jsx("h2",{className:"text-lg font-bold",children:e?"Edytuj produkt":"Dodaj produkt"}),O.jsx("button",{type:"button",className:"icon-button",onClick:t,children:O.jsx(Cy,{className:"h-4 w-4"})})]}),O.jsxs("div",{className:"flex-1 space-y-4 overflow-y-auto p-5",children:[O.jsx(nn,{label:"Name*",value:a.name,onChange:h=>c("name",h),required:!0}),O.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[O.jsx(nn,{label:"SKU",value:a.sku??"",onChange:h=>c("sku",h)}),O.jsx(nn,{label:"Category",value:a.category??"",onChange:h=>c("category",h)}),O.jsx(nn,{label:"Purchase Price*",type:"number",value:a.purchase_price,onChange:h=>c("purchase_price",Number(h)),required:!0}),O.jsx(nn,{label:"Sell Price*",type:"number",value:a.sell_price,onChange:h=>c("sell_price",Number(h)),required:!0}),O.jsx(nn,{label:"Unit",value:a.unit??"szt",onChange:h=>c("unit",h)}),O.jsx(nn,{label:"Initial Stock Qty",type:"number",value:a.stock_qty,onChange:h=>c("stock_qty",Number(h))})]}),O.jsxs("div",{className:`rounded-lg p-4 ${u>=0?"bg-emerald-50 text-emerald-800":"bg-rose-50 text-rose-800"}`,children:[O.jsxs("p",{className:"text-sm font-bold",children:["MarĹĽa: ",Ji(u)]}),a.sell_price<a.purchase_price&&O.jsx("p",{className:"mt-1 text-sm",children:"Cena sprzedaĹĽy jest niĹĽsza niĹĽ cena zakupu."}),O.jsxs("p",{className:"mt-1 text-xs",children:["PodglÄ…d: ",We(a.sell_price-a.purchase_price,i.currency)," na jednostce."]})]})]}),O.jsx("div",{className:"border-t border-slate-200 p-5",children:O.jsx("button",{className:"btn-primary w-full",children:"Zapisz"})})]})})},uee=({product:e,onClose:t,onSaved:r})=>{const{notify:n}=Wr(),[i,a]=x.useState(1),[s,u]=x.useState(e.purchase_price),[c,d]=x.useState(""),[h,p]=x.useState(new Date().toISOString().slice(0,10)),m=async g=>{g.preventDefault(),await Qi.restock(e.id,i,s,c,new Date(h).toISOString()),n("success","Stan magazynowy zaktualizowany."),r(),t()};return O.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-slate-900/20 p-4",children:O.jsxs("form",{className:"panel w-full max-w-md p-5 shadow-soft",onSubmit:m,children:[O.jsxs("div",{className:"flex items-center justify-between",children:[O.jsx("h2",{className:"text-lg font-bold",children:"Dodaj dostawÄ™"}),O.jsx("button",{type:"button",className:"icon-button",onClick:t,children:O.jsx(Cy,{className:"h-4 w-4"})})]}),O.jsx("p",{className:"mt-1 text-sm text-slate-500",children:e.name}),O.jsxs("div",{className:"mt-5 space-y-4",children:[O.jsx(nn,{label:"Qty added",type:"number",value:i,onChange:g=>a(Number(g)),required:!0}),O.jsx(nn,{label:"Unit price paid",type:"number",value:s,onChange:g=>u(Number(g)),required:!0}),O.jsx(nn,{label:"Supplier",value:c,onChange:d}),O.jsx(nn,{label:"Date",type:"date",value:h,onChange:p})]}),O.jsx("button",{className:"btn-primary mt-5 w-full",children:"Zapisz dostawÄ™"})]})})},nn=({label:e,value:t,onChange:r,type:n="text",required:i=!1})=>O.jsxs("label",{className:"block",children:[O.jsx("span",{className:"text-sm font-semibold text-slate-700",children:e}),O.jsx("input",{className:"field mt-1",type:n,value:t,min:n==="number"?0:void 0,step:n==="number"?"0.01":void 0,onChange:a=>r(a.target.value),required:i})]}),ng=(e,t)