bitsnap-react 1.8.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +162 -0
- package/dist/CartProvider-HXLGQ4EX.mjs +2 -0
- package/dist/CartProvider-OHHYOMSG.js +2 -0
- package/dist/CartProvider-OHHYOMSG.js.map +1 -0
- package/dist/analytics.d.mts +45 -0
- package/dist/analytics.d.ts +45 -0
- package/dist/analytics.js +2 -0
- package/dist/analytics.js.map +1 -0
- package/dist/analytics.mjs +2 -0
- package/dist/catalog.d.mts +14 -1
- package/dist/catalog.d.ts +14 -1
- package/dist/catalog.js +1 -1
- package/dist/catalog.js.map +1 -1
- package/dist/catalog.mjs +1 -1
- package/dist/chunk-3Z6VNXBP.js +2 -0
- package/dist/chunk-3Z6VNXBP.js.map +1 -0
- package/dist/chunk-43IIYJ6J.mjs +2 -0
- package/dist/chunk-43IIYJ6J.mjs.map +1 -0
- package/dist/chunk-6D3OORMK.mjs +2 -0
- package/dist/chunk-6D3OORMK.mjs.map +1 -0
- package/dist/chunk-ADYVTMGH.mjs +2 -0
- package/dist/chunk-ADYVTMGH.mjs.map +1 -0
- package/dist/{chunk-WRCXZMKK.js → chunk-AJNULBC3.js} +2 -2
- package/dist/chunk-AJNULBC3.js.map +1 -0
- package/dist/chunk-B32ACCW2.js +2 -0
- package/dist/chunk-B32ACCW2.js.map +1 -0
- package/dist/chunk-DDY7IBMG.mjs +2 -0
- package/dist/chunk-DDY7IBMG.mjs.map +1 -0
- package/dist/chunk-DPKT6ITB.js +4 -0
- package/dist/chunk-DPKT6ITB.js.map +1 -0
- package/dist/{chunk-T2POA6RW.js → chunk-F46RJVWC.js} +2 -2
- package/dist/chunk-F46RJVWC.js.map +1 -0
- package/dist/chunk-F6GQLKA6.js +2 -0
- package/dist/chunk-F6GQLKA6.js.map +1 -0
- package/dist/chunk-JSDGZ4NY.js.map +1 -1
- package/dist/chunk-JXCHRSPW.mjs +4 -0
- package/dist/chunk-JXCHRSPW.mjs.map +1 -0
- package/dist/chunk-KOYBZORL.js.map +1 -1
- package/dist/chunk-RLEC25JI.mjs +2 -0
- package/dist/chunk-RLEC25JI.mjs.map +1 -0
- package/dist/chunk-RVILRUW3.js +2 -0
- package/dist/chunk-RVILRUW3.js.map +1 -0
- package/dist/chunk-T2OUOO4X.mjs +2 -0
- package/dist/chunk-T2OUOO4X.mjs.map +1 -0
- package/dist/chunk-VIII45AC.js +2 -0
- package/dist/chunk-VIII45AC.js.map +1 -0
- package/dist/chunk-XIHGWNTS.js +2 -0
- package/dist/chunk-XIHGWNTS.js.map +1 -0
- package/dist/chunk-YXFJG4MF.mjs +2 -0
- package/dist/chunk-YXFJG4MF.mjs.map +1 -0
- package/dist/chunk-ZPTHK4OX.mjs +2 -0
- package/dist/{chunk-OJT3YO2R.mjs.map → chunk-ZPTHK4OX.mjs.map} +1 -1
- package/dist/consent.d.mts +165 -0
- package/dist/consent.d.ts +165 -0
- package/dist/consent.js +75 -0
- package/dist/consent.js.map +1 -0
- package/dist/consent.mjs +75 -0
- package/dist/consent.mjs.map +1 -0
- package/dist/course.d.mts +13 -3
- package/dist/course.d.ts +13 -3
- package/dist/course.js +1 -1
- package/dist/course.js.map +1 -1
- package/dist/course.mjs +1 -1
- package/dist/course.mjs.map +1 -1
- package/dist/embed/analytics.js +1 -0
- package/dist/embed/consent.js +74 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +54 -7
- package/dist/index.d.ts +54 -7
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/instrument-CmxK7S4T.d.mts +929 -0
- package/dist/instrument-CmxK7S4T.d.ts +929 -0
- package/dist/internal.js.map +1 -1
- package/dist/methods-A5KGZBAM.js +2 -0
- package/dist/methods-A5KGZBAM.js.map +1 -0
- package/dist/methods-AOHKV7IN.mjs +2 -0
- package/dist/methods-AOHKV7IN.mjs.map +1 -0
- package/dist/models.js.map +1 -1
- package/dist/returns.d.mts +9 -1
- package/dist/returns.d.ts +9 -1
- package/dist/returns.js +1 -1
- package/dist/returns.js.map +1 -1
- package/dist/returns.mjs +1 -1
- package/dist/{types-PSBBDdQm.d.mts → types-BnVWLcoB.d.mts} +13 -0
- package/dist/{types-BTm_ZolC.d.ts → types-i-IuN4Im.d.ts} +13 -0
- package/package.json +46 -45
- package/dist/CartProvider-5KAG5QGA.mjs +0 -2
- package/dist/CartProvider-7GJXW2IP.js +0 -2
- package/dist/CartProvider-7GJXW2IP.js.map +0 -1
- package/dist/chunk-45AP7UZE.mjs +0 -2
- package/dist/chunk-45AP7UZE.mjs.map +0 -1
- package/dist/chunk-7XTDFTQU.js +0 -4
- package/dist/chunk-7XTDFTQU.js.map +0 -1
- package/dist/chunk-C6Z7LOHB.mjs +0 -2
- package/dist/chunk-C6Z7LOHB.mjs.map +0 -1
- package/dist/chunk-HB6KQT26.mjs +0 -4
- package/dist/chunk-HB6KQT26.mjs.map +0 -1
- package/dist/chunk-LWK4E5G5.js +0 -2
- package/dist/chunk-LWK4E5G5.js.map +0 -1
- package/dist/chunk-OJT3YO2R.mjs +0 -2
- package/dist/chunk-OUYRKNZJ.mjs +0 -2
- package/dist/chunk-OUYRKNZJ.mjs.map +0 -1
- package/dist/chunk-P2YB25KZ.js +0 -2
- package/dist/chunk-P2YB25KZ.js.map +0 -1
- package/dist/chunk-T2POA6RW.js.map +0 -1
- package/dist/chunk-VPKE2ZOR.mjs +0 -2
- package/dist/chunk-VPKE2ZOR.mjs.map +0 -1
- package/dist/chunk-WRCXZMKK.js.map +0 -1
- package/dist/chunk-WSM4OM72.mjs +0 -2
- package/dist/chunk-WSM4OM72.mjs.map +0 -1
- package/dist/chunk-XRNTUSBH.js +0 -2
- package/dist/chunk-XRNTUSBH.js.map +0 -1
- package/dist/chunk-Z2BKIX6F.js +0 -2
- package/dist/chunk-Z2BKIX6F.js.map +0 -1
- package/dist/methods-ITD6WFIY.mjs +0 -2
- package/dist/methods-JENIGNF7.js +0 -2
- package/dist/methods-JENIGNF7.js.map +0 -1
- /package/dist/{CartProvider-5KAG5QGA.mjs.map → CartProvider-HXLGQ4EX.mjs.map} +0 -0
- /package/dist/{methods-ITD6WFIY.mjs.map → analytics.mjs.map} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ur}from"./chunk-OJT3YO2R.mjs";import{a as ei,b as ai,c as ri,d as oi}from"./chunk-VPKE2ZOR.mjs";import{A as ti,D as le,E as wt,F as Nt,G as Tt,H as pe,a as Te,b as kt,c as Ct,d as bt,e as ze,f as St,g as Ee,h as Ae,i as ft,j as Oa,k as Ga,l as ja,m as Ma,n as qa,o as Pt,p as pr,q as dr,r as ce,s as vt,t as st,u as G,v as _e,w as Zo,x as Xo,y as Yo,z as Jo}from"./chunk-HB6KQT26.mjs";import{A as lr,a as ne,b as H,c as Fa,d as Ha,e as Va,f as Wa,i as Ka,k as Qa,l as $a,m as Za,n as Xa,o as Ya,p as Ja,q as tr,r as er,t as ar,u as rr,v as or,w as ir,x as nr,y as sr,z as cr}from"./chunk-45AP7UZE.mjs";import{a as Ie,b as De}from"./chunk-KOVKUJAW.mjs";import{a as za,b as Ea,c as Aa,d as Ra,e as Ia,f as Da,g as La,h as _a,i as Ua,j as Ba}from"./chunk-C6Z7LOHB.mjs";import{g as oe,h as Ta,j as Y,k as Ht,l as nt,o as ie,q as I,r as Dt,u as Re}from"./chunk-WSM4OM72.mjs";import{a as r,c as xt,d as Na,g as Le,i as se,j as Lt}from"./chunk-OUYRKNZJ.mjs";import"./chunk-U6FLIRIV.mjs";import br from"apple-pay-button";import{useQuery as mr}from"@tanstack/react-query";import{Fragment as fr,jsx as Vt}from"react/jsx-runtime";function gr({style:t,buttonType:e,colorType:a,items:i,onClick:s}){let{checkIfApplePayIsAvailable:d,getApplePayPaymentRequest:o,completeApplePayPayment:h,setCountry:f,setCouponCodeIfPossible:b,setDeliveryMethod:k,setEmail:S,setPostalCode:v,clearCart:C}=Nt(),{data:x}=mr({queryKey:["is-apple-pay-available"],queryFn:d});if(x!=!0)return null;let m=i.map(l=>({productID:l.id,quantity:l.quantity,metadata:l.metadata}));async function n(){st({event:"initiateCheckout",items:i.map(p=>({id:p.id,name:p.name,price:p.price,quantity:p.quantity,currency:"PLN"}))});let l=i.find(p=>p.isDeliverable===!0)!=null,c=new ApplePaySession(14,{countryCode:"PL",merchantCapabilities:["supports3DS"],supportedNetworks:["visa","masterCard"],currencyCode:"PLN",total:{amount:`${ce(i.reduce((p,g)=>p+g.price*g.quantity,0)/100,2)}`,label:"P\u0142atno\u015B\u0107 za koszyk",type:"pending"},lineItems:[...i.map(p=>({amount:`${ce(p.price*p.quantity/100,2)}`,label:p.name,type:"final"})),l?{amount:"16.99",type:"pending",label:"Dostawa"}:void 0].filter(p=>p!=null),...l?{shippingMethods:[],supportsCouponCode:!0,requiredBillingContactFields:["name","email","postalAddress","phone"],requiredShippingContactFields:["name","email","postalAddress","phone"]}:{}});await s?.();let u=await o({expectedItems:m});if(G(u)){console.error("Error creating ApplePaySession:",u.error);return}c.oncancel=p=>{console.log("ApplePaySession cancelled",p)},c.onvalidatemerchant=async p=>{try{let g=await Te.get(xt).applePayValidateMerchant({validationUrl:p.validationURL,projectId:wt()});console.log("merchantSession",g.merchantSession),g.merchantSession.length>0?(console.log("completing merchant session"),c.completeMerchantValidation(JSON.parse(g.merchantSession))):c.abort()}catch{c.abort}},c.onshippingmethodselected=async p=>{console.log("shipping method selected",p),await k(p.shippingMethod.identifier);let g=await o({expectedItems:m});if(console.log("apRequest",g),G(g))throw c.abort(),new Error("Failed to get Apple Pay payment request");c.completeShippingMethodSelection({newTotal:g.total,newLineItems:g.lineItems,newShippingMethods:g.shippingMethods})},c.onshippingcontactselected=async p=>{try{p.shippingContact.countryCode!=null&&await f(p.shippingContact.countryCode),p.shippingContact.postalCode!=null&&await v(p.shippingContact.postalCode),p.shippingContact.phoneNumber!=null&&await S(p.shippingContact.emailAddress);let g=await o({expectedItems:m});if(G(g))throw c.abort(),new Error("Failed to get Apple Pay payment request");console.log("apRequest",g),c.completeShippingContactSelection({newLineItems:g.lineItems,newTotal:g.total,newShippingMethods:g.shippingMethods})}catch(g){console.log("shipping contact selected error",g),c.abort()}},c.oncouponcodechanged=async p=>{try{console.log("coupon code changed",p);let g=await b(p.couponCode),P=await o({expectedItems:m});if(console.log("apRequest",P),G(P))throw c.abort(),new Error("Failed to get Apple Pay payment request");c.completeCouponCodeChange({errors:G(g)?[new ApplePayError("couponCodeInvalid")]:void 0,newTotal:P.total,newLineItems:P.lineItems,newShippingMethods:P.shippingMethods})}catch(g){console.log("coupon code changed error",g),c.abort()}},c.onpaymentauthorized=async p=>{try{let g=await h({token:p.payment.token,billingContact:p.payment.billingContact,shippingContact:p.payment.shippingContact});if(G(g)){console.log("apple pay error",g),c.completePayment({status:ApplePaySession.STATUS_FAILURE});return}g.redirectURL&&setTimeout(()=>{open(g.redirectURL,"_self")},2e3),c.completePayment({status:g.isSuccess?ApplePaySession.STATUS_SUCCESS:ApplePaySession.STATUS_FAILURE}),g.isSuccess&&C()}catch{c.completePayment({status:ApplePaySession.STATUS_FAILURE})}},c.begin()}return Vt(br,{style:t,buttonStyle:a,type:e,onClick:n})}function hr(t){return Vt(fr,{children:Vt(Tt,{children:Vt(gr,{...t})})})}var de=hr;import{useEffect as Bt}from"react";import K from"zod";import{useAutoAnimate as Jr}from"@formkit/auto-animate/react";import{createPortal as to}from"react-dom";import{createContext as Cr,useContext as Sr,useMemo as Pr}from"react";var vr=["root","overlay","panel","header","title","closeButton","productList","product","productImage","productName","productPrice","quantityControl","quantityInput","quantityButton","removeButton","summary","totalLabel","totalValue","deliveryText","countryLabel","countryTrigger","countryDropdown","countrySearch","countryOption","paymentButtons","checkoutButton","emptyState","error","skeleton"],wr={fontFamily:"--bitsnap-checkout-font-family",fontSize:"--bitsnap-checkout-font-size",background:"--bitsnap-checkout-background",surface:"--bitsnap-checkout-surface",foreground:"--bitsnap-checkout-foreground",mutedForeground:"--bitsnap-checkout-muted-foreground",border:"--bitsnap-checkout-border",buttonBackground:"--bitsnap-checkout-button-background",buttonForeground:"--bitsnap-checkout-button-foreground",buttonHoverBackground:"--bitsnap-checkout-button-hover-background",hoverSurface:"--bitsnap-checkout-hover-surface",focusRing:"--bitsnap-checkout-focus-ring",error:"--bitsnap-checkout-error",overlay:"--bitsnap-checkout-overlay",radius:"--bitsnap-checkout-radius"},yr={dark:{},light:{background:"#ffffff",surface:"#f9fafb",foreground:"#18181b",mutedForeground:"#71717a",border:"#e4e4e7",buttonBackground:"#18181b",buttonForeground:"#fafafa",buttonHoverBackground:"#000000",hoverSurface:"#e4e4e7",focusRing:"#71717a",error:"#dc2626",overlay:"rgb(0 0 0 / 0.35)"}},xr=[{token:"background",variable:"--background"},{token:"foreground",variable:"--foreground"},{token:"surface",variable:"--card"},{token:"surface",variable:"--popover"},{token:"foreground",variable:"--popover-foreground"},{token:"mutedForeground",variable:"--muted-foreground"},{token:"border",variable:"--border"},{token:"border",variable:"--input"},{token:"focusRing",variable:"--ring"},{token:"error",variable:"--destructive"},{token:"radius",variable:"--radius"}];function kr(t){return{"--popover":t.surface??"var(--color-neutral-800)","--popover-foreground":t.foreground??"var(--color-neutral-200)"}}function ue(t){let e=Ie(t,{defaultTheme:"dark",presets:yr,variables:wr,shadcnVariables:xr});return{theme:e.theme,isCustomized:e.isCustomized,tokens:e.tokens,elements:e.elements,boundaryClassName:e.theme,boundaryStyle:e.boundaryStyle,dropdownStyle:kr(e.tokens)}}function Ue(t,e){return De(t.elements,e)}import{jsx as Nr}from"react/jsx-runtime";var Be=Cr(ue());function Oe({appearance:t,children:e}){let a=Pr(()=>ue(t),[t]);return Nr(Be.Provider,{value:a,children:e})}function _t(){return Sr(Be)}function N(t){let e=_t();return Ue(e,t)??{}}import{useAutoAnimate as Zr}from"@formkit/auto-animate/react";import $t from"react";import{useEffect as Ir,useState as Dr}from"react";import*as z from"@radix-ui/react-select";import{CheckIcon as Tr,ChevronDownIcon as Ge,ChevronUpIcon as zr}from"lucide-react";import{jsx as q,jsxs as be}from"react/jsx-runtime";function je({...t}){return q(z.Root,{"data-slot":"select",...t})}function Me({...t}){return q(z.Value,{"data-slot":"select-value",...t})}var Er="border-input dark:bg-input/30 dark:hover:bg-input/50 bg-transparent";function qe({className:t,size:e="default",theme:a="default",children:i,...s}){return be(z.Trigger,{"data-slot":"select-trigger","data-size":e,className:r("data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-fit items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a==="bare"?"":Er,t),...s,children:[i,q(z.Icon,{asChild:!0,children:q(Ge,{className:"size-4 opacity-50"})})]})}function Fe({className:t,children:e,position:a="popper",align:i="center",...s}){return q(z.Portal,{children:be(z.Content,{"data-slot":"select-content",className:r("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,align:i,...s,children:[q(Ar,{}),q(z.Viewport,{className:r("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:e}),q(Rr,{})]})})}function He({className:t,children:e,...a}){return be(z.Item,{"data-slot":"select-item",className:r("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...a,children:[q("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:q(z.ItemIndicator,{children:q(Tr,{className:"size-4"})})}),q(z.ItemText,{children:e})]})}function Ar({className:t,...e}){return q(z.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:r("flex cursor-default items-center justify-center py-1",t),...e,children:q(zr,{className:"size-4"})})}function Rr({className:t,...e}){return q(z.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:r("flex cursor-default items-center justify-center py-1",t),...e,children:q(Ge,{className:"size-4"})})}import{jsx as ct,jsxs as Wt}from"react/jsx-runtime";function Lr({id:t,open:e,disabled:a=!1,onToggle:i,onChange:s,selectedValue:d,countries:o}){let[h,f]=Dr(""),{isCustomized:b,boundaryClassName:k,boundaryStyle:S,dropdownStyle:v}=_t(),C=N("countryTrigger"),x=N("countryDropdown"),m=N("countrySearch"),n=N("countryOption");Ir(()=>{d==null&&o.length>0&&s(o[0].code)},[]);let l=o.filter(u=>u.name.toLowerCase().startsWith(h.toLowerCase())),c=o.find(u=>u.code===d);return Wt(je,{value:d,onValueChange:u=>{s(u),f("")},open:e,onOpenChange:u=>{u!==e&&i(),u||f("")},disabled:a,children:[ct(qe,{"data-bitsnap-checkout-slot":"countryTrigger",theme:"bare",className:r(a?"bg-neutral-100 dark:bg-neutral-800 dark:border-neutral-700":"","w-full rounded-md",C.className),style:C.style,children:ct(Me,{children:c&&Wt("span",{className:"truncate flex items-center",children:[ct("img",{alt:d,src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${d}.svg`,className:"inline mr-2 h-4 rounded-sm"}),c.name]})})}),Wt(Fe,{"data-bitsnap-checkout":b?"dropdown":void 0,"data-bitsnap-checkout-slot":b?"countryDropdown":void 0,className:r(b?"bitsnap-react":"",k,"w-full max-h-80 max-w-[350px] z-[999999]",x.className),style:{...b?{...S,...v}:void 0,...x.style},position:"popper",children:[ct("div",{"data-bitsnap-checkout-slot":"countrySearch",className:r("sticky top-0 z-10 p-1 border-b",m.className),style:m.style,children:ct("input",{type:"search",name:"search",autoComplete:"off",className:"block w-full outline-none sm:text-body-regular bg-transparent rounded-md px-2 py-1.5",placeholder:"Znajd\u017A kraj",value:h,onChange:u=>f(u.target.value),onClick:u=>u.stopPropagation(),onKeyDown:u=>u.stopPropagation()})}),ct("div",{className:"max-h-64 overflow-y-auto",children:l.length===0?ct("div",{className:"cursor-default select-none relative py-2 pl-3 pr-9 text-sm",children:"No countries found"}):l.map(u=>Wt(He,{"data-bitsnap-checkout-slot":"countryOption",value:u.code,className:r("cursor-default select-none relative py-2 pl-3 pr-9 flex items-center transition",n.className),style:n.style,children:[ct("img",{alt:u.code,src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${u.code}.svg`,className:"inline mr-2 h-4 rounded-sm"}),ct("span",{className:"font-normal truncate",children:u.name})]},`${t}-${u.code}`))})]})]})}var Ve=Lr;import{useEffect as jr,useState as Qe}from"react";import{MinusIcon as Mr,PlusIcon as qr}from"lucide-react";import{Slot as ji}from"@radix-ui/react-slot";import{cva as _r}from"class-variance-authority";import{jsx as Br}from"react/jsx-runtime";var Ur=_r("flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"}},defaultVariants:{orientation:"horizontal"}});function We({className:t,orientation:e,...a}){return Br("div",{role:"group","data-slot":"button-group","data-orientation":e,className:r(Ur({orientation:e}),t),...a})}import{Fragment as Or,jsx as Kt,jsxs as Gr}from"react/jsx-runtime";function Ke({price:t,currency:e,pricing:a,quantity:i=1}){let s=a?.regularPrice??t,d=a?.effectivePrice??t,o=a?.discount?.status==="ACTIVE"&&d<s;return Kt("span",{children:o?Gr(Or,{children:[Kt("span",{className:"mr-2 text-neutral-500 line-through",children:vt(s*i,e)}),Kt("span",{className:"font-semibold text-red-700",children:vt(d*i,e)}),Kt("span",{className:"mt-1 block text-xs text-neutral-600",children:a?.referencePrice.historyAvailable&&a.referencePrice.amount!=null?`Najni\u017Csza cena z 30 dni: ${vt(a.referencePrice.amount,e)}`:"Brak danych o cenie z ostatnich 30 dni"})]}):vt(d*i,e)})}import{jsx as Z,jsxs as Qt}from"react/jsx-runtime";var Fr=({isNotAvailable:t,quantity:e,details:a,shouldUpdate:i})=>{let s=N("product"),d=N("productImage"),o=N("productName"),h=N("productPrice"),f=N("removeButton");return Qt("div",{"data-bitsnap-checkout-slot":"product","data-bitsnap-checkout-unavailable":t?"":void 0,className:r("flex items-center gap-3 mx-3",t?"outline outline-1 rounded-md m-1":"",s.className),style:s.style,children:[Z("img",{"data-bitsnap-checkout-slot":"productImage",className:r("aspect-auto max-w-[30%] max-w-32 max-h-32 py-2 overflow-hidden",d.className),style:d.style,src:a.image_url??"",alt:a.name}),Qt("div",{className:"flex flex-col w-full",children:[Z("p",{"data-bitsnap-checkout-slot":"productName",className:r("font-medium",o.className),style:o.style,children:a.name}),Z("p",{"data-bitsnap-checkout-slot":"productPrice",className:r("text-sm",h.className),style:h.style,suppressHydrationWarning:!0,children:Z(Ke,{price:a.price,currency:a.currency,pricing:a.pricing,quantity:e})}),Qt("div",{className:"flex justify-between",children:[Z(Hr,{className:"",quantity:e,shouldUpdate:i}),Z(I,{"data-bitsnap-checkout-slot":"removeButton",variant:"ghost",size:"sm",className:f.className,style:f.style,onClick:()=>i(0),children:"Usu\u0144"})]})]})]})},$e=Fr,Hr=({quantity:t,shouldUpdate:e,className:a})=>{let[i,s]=Qe(t.toString()),[d,o]=Qe(t),h=N("quantityControl"),f=N("quantityInput"),b=N("quantityButton");jr(()=>{e(d)},[d]);function k(C){if(s(C),C.length==0)return;let x=parseInt(C);if(isNaN(x)){o(1),s("");return}if(x==0||x<0){o(1),s("1");return}o(x),s(x.toString())}function S(){o(t+1),s((t+1).toString())}function v(){if(t>1){s((t-1).toString()),o(t-1);return}s(t.toString()),o(t)}return Z("div",{"data-bitsnap-checkout-slot":"quantityControl",className:r("flex",a,h.className),style:h.style,children:Qt(We,{"aria-label":"Ilo\u015B\u0107",children:[Z(I,{"data-bitsnap-checkout-slot":"quantityButton",className:b.className,style:b.style,onClick:v,children:Z(Mr,{})}),Z("input",{"data-bitsnap-checkout-slot":"quantityInput",className:r("w-8 bg-transparent text-center",f.className),style:f.style,value:i,onInput:C=>{k(C.currentTarget.value)},type:"text"}),Z(I,{"data-bitsnap-checkout-slot":"quantityButton",className:b.className,style:b.style,onClick:S,children:Z(qr,{})})]})})};import{jsx as Vr}from"react/jsx-runtime";function me({className:t,...e}){return Vr("div",{"data-slot":"skeleton",className:"bg-neutral-700 animate-pulse rounded-md "+t,...e})}import{useMutation as Ut,useQuery as Zt}from"@tanstack/react-query";import{createContext as Wr,useContext as Kr,useMemo as Qr}from"react";import{jsx as $r}from"react/jsx-runtime";var Ze=Wr({});function Xe({texts:t,locale:e,children:a}){let i=Qr(()=>({texts:t,locale:e}),[t,e]);return $r(Ze.Provider,{value:i,children:a})}function lt(t){let{texts:e,locale:a}=Kr(Ze);return Le(t,a??Lt(),e)}import{Fragment as Yr,jsx as L,jsxs as mt}from"react/jsx-runtime";var Xr=({className:t,locale:e})=>{let a=Nt(),i=e??Lt(),s=N("productList"),d=N("summary"),o=N("totalLabel"),h=N("totalValue"),f=N("deliveryText"),b=N("countryLabel"),k=N("paymentButtons"),S=N("checkoutButton"),v=N("emptyState"),C=N("error"),x=N("skeleton"),m=lt("unavailableProducts"),n=lt("emptyCart"),l=lt("total"),c=lt("delivery"),u=lt("chooseCountry"),p=lt("nextStep"),{mutateAsync:g}=Ut({mutationFn:a.removeProductFromCart}),{mutateAsync:P}=Ut({mutationFn:a.updateQuantity}),{mutateAsync:w}=Ut({mutationFn:a.setCountry}),{mutateAsync:A}=Ut({mutationFn:a.clearCart}),[R,W]=$t.useState(""),[ot,it]=$t.useState([]),[_,j]=$t.useState(!1),{mutateAsync:ae,isPending:Rt}=Ut({mutationFn:a.redirectToNextStep}),{data:It}=Zt({queryKey:["cart-available-countries"],queryFn:a.getAvailableCountries}),{data:U}=Zt({queryKey:["cart-one-click-payment"],queryFn:a.checkIfApplePayIsAvailable}),{data:B,isLoading:Q,refetch:Ce}=Zt({queryKey:["cart",i],queryFn:a.getProducts}),{data:Ft,refetch:xa}=Zt({queryKey:["cart-country"],queryFn:a.getCountry}),[ka]=Zr(),M=G(B)?void 0:B,re=G(It)?[]:It,Se=M?.reduce((y,O)=>O.details==null?y:y+(O.details.pricing?.effectivePrice??O.details.price)*O.quantity,0)??0,Pe=M?.[0]?.details?.currency??"PLN",Ca=M?.some(y=>y.details?.isDeliverable===!0)??!1,Ne=Ft!=null&&!G(Ft)&&Ft!=""?Ft:void 0;async function Sa(y,O){if(O!=null){if(O<=0){await g({id:y}),await Ce();return}await P({id:y,quantity:O}),await Ce();return}}async function Pa(){try{if(W(""),M!=null)try{st({event:"initiateCheckout",items:M?.map(O=>({id:O.productID,name:O.details?.name??"",price:O.details?.price??0,quantity:O.quantity,currency:O.details?.currency??"PLN"}))})}catch{}let y=await ae();if(G(y)){y.error=="item-ids-not-found"?(W(m),"data"in y&&Array.isArray(y.data)&&it(y.data)):W(`${y.error}`);return}await A(),window.location.href=y.url}catch(y){W(`${y}`)}}return mt("div",{className:`${t} flex flex-col`,ref:ka,children:[Q&&mt("div",{className:"relative flex w-full justify-center flex-col gap-4",children:[L(me,{"data-bitsnap-checkout-slot":"skeleton",className:r("w-full h-32",x.className),style:x.style}),L(me,{"data-bitsnap-checkout-slot":"skeleton",className:r("w-full h-32",x.className),style:x.style})]}),!Q&&(M==null||M.length==0)&&L("div",{className:"flex flex-col gap-4 p-4",children:L("p",{"data-bitsnap-checkout-slot":"emptyState",className:r(v.className),style:v.style,children:n})}),L("div",{"data-bitsnap-checkout-slot":"productList",className:r("max-h-[70vh] overflow-clip overflow-y-scroll",s.className),style:s.style,children:M!=null&&M.length>0&&L("ul",{className:"mt-5",children:M.map(y=>L($t.Fragment,{children:y.details!=null&&mt("li",{className:"mb-3",children:[L($e,{isNotAvailable:ot.includes(y.productID),quantity:y.quantity,details:y.details,shouldUpdate:O=>{Sa(y.id,O).then().catch()}}),L("hr",{className:"h-1"})]})},y.id))})}),L("div",{className:"grow"}),Se>0&&Pe!=null&&mt(Yr,{children:[L("div",{"data-bitsnap-checkout-slot":"summary",className:r("mx-3 flex flex-col",d.className),style:d.style,children:mt("div",{className:"flex flex-row justify-between text-lg",children:[L("p",{"data-bitsnap-checkout-slot":"totalLabel",className:r("text-xl",o.className),style:o.style,children:l}),mt("div",{className:"flex flex-col items-end",children:[L("p",{"data-bitsnap-checkout-slot":"totalValue",className:r("font-medium",h.className),style:h.style,children:vt(Se,Pe)}),Ca&&L("p",{"data-bitsnap-checkout-slot":"deliveryText",className:r("opacity-70 text-right text-base",f.className),style:f.style,children:c})]})]})}),re&&re?.length>1&&mt("div",{children:[L("h4",{"data-bitsnap-checkout-slot":"countryLabel",className:r("ml-3 text-sm",b.className),style:b.style,children:u}),L(Ve,{id:Math.random().toString(),open:_,onToggle:()=>{j(!_)},onChange:y=>{w(y).then(()=>{xa().then().catch()})},selectedValue:Ne??"",countries:re})]}),mt("div",{className:"mb-3 flex flex-col",children:[U&&M!=null&&M.length>0&&L("div",{"data-bitsnap-checkout-slot":"paymentButtons",className:r("w-full px-2",k.className),style:k.style,children:L(de,{colorType:"white",style:{width:"100%"},items:M?.map(y=>({name:y.details?.name??"",id:y.productID,price:y.details?.pricing?.effectivePrice??y.details?.price??0,quantity:y.quantity,isDeliverable:y.details?.isDeliverable??!1,metadata:y.metadata}))})}),M!=null&&M.length>0&&L("div",{"data-bitsnap-checkout-slot":"paymentButtons",className:r("w-full px-2",k.className),style:k.style,children:L(ge,{buttonSizeMode:"fill",buttonColor:"white",style:{width:"100%"},items:M?.map(y=>({name:y.details?.name??"",id:y.productID,price:y.details?.pricing?.effectivePrice??y.details?.price??0,quantity:y.quantity,isDeliverable:y.details?.isDeliverable??!1,metadata:y.metadata}))})}),L("button",{"data-bitsnap-checkout-slot":"checkoutButton",onClick:Pa,disabled:Q||Rt||Ne==null,className:r("px-3 py-2 my-2 mx-2 rounded-md disabled:opacity-40 disabled:cursor-not-allowed transition font-bold",S.className),style:S.style,children:Rt?L(H,{}):p}),R.length>0&&L("p",{"data-bitsnap-checkout-slot":"error",className:r("text-sm text-center",C.className),style:C.style,children:R})]})]})]})},Ye=Xr;import{Fragment as ro,jsx as J,jsxs as Xt}from"react/jsx-runtime";function eo({isVisible:t,shouldHide:e,locale:a}){let[i]=Jr(),{boundaryClassName:s,boundaryStyle:d}=_t(),o=N("root"),h=N("overlay"),f=N("panel"),b=N("header"),k=N("title"),S=N("closeButton"),v=lt("cart");return J("div",{ref:i,"data-bitsnap-checkout":"root","data-bitsnap-checkout-slot":"root",className:r("bitsnap-react",s,o.className),style:{zIndex:999999,...d,...o.style},children:t&&Xt(ro,{children:[J("div",{"data-bitsnap-checkout-slot":"overlay",className:r("fixed top-0 right-0 left-0 bottom-0 cursor-pointer z-10",h.className),style:h.style,onClick:e}),Xt("div",{"data-bitsnap-checkout-slot":"panel",className:r("fixed z-20 top-0 right-0 bottom-0 w-full md:w-[350px] xl:w-[420px] flex flex-col",f.className),style:f.style,children:[Xt("div",{"data-bitsnap-checkout-slot":"header",className:r("mx-3 mt-7 flex justify-between items-center",b.className),style:b.style,children:[J("h1",{"data-bitsnap-checkout-slot":"title",className:r("text-2xl font-medium",k.className),style:k.style,children:v}),J("button",{"data-bitsnap-checkout-slot":"closeButton",className:r("rounded-xl p-2 transition",S.className),style:S.style,onClick:e,children:Xt("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-x",children:[J("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),J("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),J(Ye,{className:"grow",locale:a})]})]})})}var ao=t=>typeof window>"u"?null:to(J(Oe,{appearance:t.appearance,children:J(Xe,{texts:t.texts,locale:t.locale,children:J(Tt,{locale:t.locale,children:J(eo,{...t})})})}),document.body),Je=ao;import{Fragment as ta,jsx as zt,jsxs as he}from"react/jsx-runtime";var oo=K.object({id:K.string(),isSubscription:K.boolean().default(!1),quantity:K.number(),metadata:K.record(K.string(),K.string().optional()).optional()});function io({projectID:t,locale:e,children:a,onVisibleChange:i,className:s,numberOfProductsInCartOptions:d,appearance:o,texts:h}){let{isCartVisible:f,showCart:b,hideCart:k,numberOfProductsInCart:S}=_e();function v(n){document.querySelectorAll("iframe").forEach(c=>{c.contentWindow?.postMessage(n,"*")})}Bt(()=>{i?.(f),f&&st({event:"viewCart"})},[f]),Bt(()=>{le(t)},[t]),Bt(()=>{se(e)},[e]),Bt(()=>{if(!("cart"in window)){let n=wt();if(n==null){console.warn("There is no project ID configured.");return}window.cart={buyProduct:async l=>{try{let c=K.object({productID:K.string(),email:K.string().optional(),name:K.string().optional(),country:K.string().optional(),marketingAgreement:K.boolean().optional(),locale:K.string().optional()}).parse(l),u=pe(n);try{let g=await u.getProducts();G(g)==!1&&st({event:"initiateCheckout",items:g.map(P=>({id:P.productID,name:P.details?.name??"",price:P.details?.price??0,quantity:P.quantity,currency:P.details?.currency??"PLN"}))})}catch{}let p=await u.justRedirectToPayment(c);console.log("result",p),G(p)==!1?window.location.href=p.url:alert("Nie uda\u0142o si\u0119 przekierowa\u0107 do p\u0142atno\u015Bci. Spr\xF3buj ponownie p\xF3\u017Aniej.")}catch(c){console.warn(c)}}}}},[]);async function C(n,l){let c=wt();if(c==null){console.warn("There is no project ID configured.");return}try{let u=oo.parse(l);if(u.isSubscription){await x(c,u);return}await pe(c).addProduct({productID:u.id,quantity:u.quantity,metadata:u.metadata}),v({id:n,type:"ADD_TO_CART",success:!0}),b()}catch(u){console.warn("cannot add item to cart",u)}}async function x(n,l){alert(`TODO, nie jest to jeszcze zrobione ${n} ${l.id} ${l.quantity}`)}function m(){"__cart_is_listening"in window||(window.__cart_is_listening=!0,window.addEventListener("message",n=>{if(typeof n.data.id<"u"&&typeof n.data.type<"u"){let{id:l,type:c}=n.data;switch(c){case"ADD_TO_CART".toString():C(l,n.data.payload).then().catch();break;default:break}}}))}return Bt(()=>{if(m(),typeof window<"u")try{let n=new URLSearchParams(window.location.search),l=n.get("ref")??n.get("utm-source");typeof localStorage<"u"&&l&&l.length>0&&localStorage.setItem("bitsnap-ref",l)}catch{return}},[]),he(ta,{children:[he("button",{onClick:()=>f?k():b(),style:{position:"relative"},className:["bitsnap-react",s??"rounded-full hover:bg-neutral-300 transition p-1"].join(" "),children:[a?zt(ta,{children:a}):he("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-shopping-cart",children:[zt("circle",{cx:"8",cy:"21",r:"1"}),zt("circle",{cx:"19",cy:"21",r:"1"}),zt("path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12"})]}),d?.isVisible!=!1&&S>0&&zt("div",{style:{position:"absolute",bottom:-5,right:-5,background:"black",color:"white",borderRadius:"50%",width:"22px",height:"22px",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"13px",fontWeight:600,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.25)",...d?.style},children:S})]}),zt(Je,{isVisible:f,locale:e,appearance:o,texts:h,shouldHide:()=>{k()}})]})}var no=io;import so from"@google-pay/button-react";import{useQuery as co,useMutation as lo}from"@tanstack/react-query";import{Fragment as ea,jsx as Ot,jsxs as bo}from"react/jsx-runtime";function po({items:t,style:e,buttonColor:a,buttonSizeMode:i,test:s}){let{getGooglePayConfiguration:d,completeGooglePayPayment:o,setCountry:h,setCouponCodeIfPossible:f,setDeliveryMethod:b,setEmail:k,setPostalCode:S,clearCart:v}=Nt(),{data:C}=co({queryKey:["get-google-pay-configuration",t.map(n=>n.id).join(",")],queryFn:()=>d({items:t.map(n=>({...n,id:void 0,productID:n.id}))})}),{mutateAsync:x,isPending:m}=lo({mutationFn:o});return C==null||C.isAvailable!=!0?(console.log("google pay configuration is not available",C),null):bo(ea,{children:[Ot(so,{buttonSizeMode:i,buttonColor:a,style:e,existingPaymentMethodRequired:!0,environment:s===!0?"TEST":"PRODUCTION",onPaymentDataChanged:async n=>{st({event:"initiateCheckout",items:t.map(c=>({id:c.id,name:c.name,price:c.price,quantity:c.quantity,currency:"PLN"}))}),console.log("payment data changed",n),n.shippingAddress?.postalCode!=null&&await S(n.shippingAddress?.postalCode),n.shippingAddress?.countryCode!=null&&await h(n.shippingAddress?.countryCode),n.shippingOptionData?.id!=null&&await b(n.shippingOptionData.id);let l=await d({items:[]});return console.log("PAYMENT DATA CHANGED CONFIG",l),l.isAvailable?{error:void 0,newShippingOptionParameters:l.config.shippingOptionParameters,newTransactionInfo:l.config.transactionInfo}:{error:void 0}},paymentRequest:C.config,onLoadPaymentData:async n=>{try{let l=await x({paymentData:n});if(G(l)){console.log("apple pay error",l);return}l.isSuccess&&v(),l.redirectURL&&open(l.redirectURL,"_self")}catch(l){console.warn("error completing google pay payment",l)}}}),m?Ot(H,{}):null]})}function uo(t){return Ot(ea,{children:Ot(Tt,{children:Ot(po,{...t})})})}var ge=uo;import{useReducer as Mo,useRef as qo,useEffect as qt}from"react";import{useQuery as Fo}from"@tanstack/react-query";import{Settings as Ho}from"lucide-react";import{Fragment as mo,jsx as fe,jsxs as go}from"react/jsx-runtime";var T={title:null,description:null,managingDescription:"Zarz\u0105dzaj rodzajami powiadomie\u0144 i sposobem dostarczania.",formTitle:"Podaj Email aby zapisa\u0107 si\u0119\xA0do powiadomie\u0144",formEmailLabel:"Email",formPhoneLabel:"Numer telefonu",formPhoneOptional:"(opcjonalnie)",formEmailPlaceholder:"np. mail@gmail...",formPhonePlaceholder:"np. 663...",formSubmitButton:"Zapisz si\u0119",formSuccessMessage:"Zapisa\u0142e\u015B si\u0119 do powiadomie\u0144.",agreementText:go(mo,{children:[fe("span",{style:{color:"red"},children:"*"}),"Wyra\u017Cam zgod\u0119 na przetwarzanie moich danych w celach marketingowych zgodnie z"," ",fe("a",{href:"/regulations/polityka-prywatnosci",target:"_blank",className:"cursor-alias font-bold hover:font-medium",children:"regulaminem"})," ",fe("span",{className:"text-xs font-light",children:"(zgod\u0119 mo\u017Cna w ka\u017Cdej chwili wycofa\u0107)"})]}),qrCodeTitle:"lub zainstaluj aplikacj\u0119 mobiln\u0105",qrCodeSubtitle:"Aplikacja mobilna",qrCodeScanText:"zeskanuj kod QR",groupsNoSelectionWarning:"Je\u015Bli \u017Cadna z grup nie jest zaznaczona, nie otrzymasz \u017Cadnych powiadomie\u0144.",groupsSelectAllButton:"Zaznacz wszystkie",groupsUpdateButton:"Aktualizuj",groupsUpdateSuccess:"Zaktualizowano pomy\u015Blnie.",groupsTitle:"Zarz\u0105dzaj grupami z kt\xF3rych chcesz otrzymywa\u0107 powiadomienia",manageDataTitle:"Ustawienia powiadomie\u0144",manageDataDescription:"W jaki spos\xF3b chcesz otrzymywa\u0107 powiadomienia?",manageDataUnsubscribeButton:"Odsubskrybuj",manageDataUpdatedMessage:"Zaktualizowano",manageDataUnsubscribeDescription:"Wypisz mnie z wszystkich powiadomie\u0144 i grup.",loginEmailLabel:"Email",loginEmailPlaceholder:"Wprowad\u017A sw\xF3j email",loginSendCodeButton:"Wy\u015Blij kod weryfikacyjny",loginSendingButton:"Wysy\u0142anie...",loginCodeLabel:"Wprowad\u017A kod weryfikacyjny",loginCodeSentMessage:"Wys\u0142ali\u015Bmy kod weryfikacyjny na adres",loginChangeEmailButton:"Popraw email",loginResendCodeButton:"Wy\u015Blij kod ponownie",loginInvalidEmailError:"Wprowad\u017A prawid\u0142owy adres email",loginSlugRequiredError:"Wymagany jest identyfikator projektu",loginInvalidCodeError:"Nieprawid\u0142owy kod weryfikacyjny",loginVerificationFailedError:"Weryfikacja nie powiod\u0142a si\u0119. Sprawd\u017A sw\xF3j kod.",loginSendEmailError:"Nie uda\u0142o si\u0119 wys\u0142a\u0107 kodu weryfikacyjnego",loginVerifyCodeError:"Nie uda\u0142o si\u0119 zweryfikowa\u0107 kodu",loginResendEmailError:"Nie uda\u0142o si\u0119 ponownie wys\u0142a\u0107 kodu weryfikacyjnego",loginTitle:"Wpisz email aby zarz\u0105dza\u0107 powiadomieniami",loginDescription:"Dostaniesz kod weryfikacyjny na email.",loginIHaveCode:"Mam ju\u017C kod"};import{LogOutIcon as ho}from"lucide-react";import{Fragment as aa,jsx as yt,jsxs as Yt}from"react/jsx-runtime";function ra({projectName:t,projectLogo:e,projectLogoDark:a,description:i,className:s,onLogout:d}){return Yt(aa,{children:[e!=null||t!=null&&Yt("h2",{className:r("flex max-w-44 items-center gap-3 text-lg font-medium text-black sm:max-w-none md:text-xl lg:text-2xl xl:text-3xl dark:text-neutral-100",s?.headerTitle),children:[e!=null&&Yt(aa,{children:[yt("img",{src:e,alt:"",className:r("h-12 w-auto dark:hidden",s?.headerLogo)}),yt("img",{src:a??e,alt:"",className:r("hidden h-12 w-auto dark:inline",s?.headerLogo)})]}),yt("span",{children:t})]}),Yt("div",{className:"flex items-center gap-2",children:[i&&yt("p",{className:r("mt-4 font-medium text-left",s?.headerDescription),children:i}),yt("div",{className:"grow"}),d&&yt(I,{variant:"ghost",size:"icon-sm",onClick:d,children:yt(ho,{className:"h-5 w-5"})})]})]})}import{useAutoAnimate as ca}from"@formkit/auto-animate/react";import{CheckCircleIcon as vo,TriangleAlertIcon as wo}from"lucide-react";import*as pt from"@radix-ui/react-popover";import{jsx as Jt}from"react/jsx-runtime";function oa({...t}){return Jt(pt.Root,{"data-slot":"popover",...t})}function ia({...t}){return Jt(pt.Trigger,{"data-slot":"popover-trigger",...t})}function na({className:t,align:e="center",sideOffset:a=4,...i}){return Jt(pt.Portal,{children:Jt(pt.Content,{"data-slot":"popover-content",align:e,sideOffset:a,className:r("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...i})})}import{ClockIcon as fo}from"lucide-react";import{jsx as dt,jsxs as gt}from"react/jsx-runtime";function sa({regularity:t}){let e="";switch(t){case"rarely":e="rzadko";break;case"often":e="cz\u0119sto";break;case"very_often":e="codzienne";break}return gt(oa,{children:[dt(ia,{onClick:a=>{a.stopPropagation()},children:gt("button",{type:"button",className:"flex w-[30%] cursor-help flex-col items-center justify-center text-xs md:w-[25%] xl:w-[20%]",children:[dt(fo,{size:12}),dt("span",{children:e})]})}),dt(na,{className:"w-80",children:gt("div",{className:"grid gap-4",children:[gt("div",{className:"space-y-2",children:[dt("h4",{className:"leading-none font-medium",children:"Co to oznacza?"}),gt("ul",{className:"list-inside list-disc text-sm",children:[gt("li",{children:[dt("span",{className:"font-semibold",children:"Rzadko"})," \u2013 powiadomienia b\u0119d\u0105 wysy\u0142ane maksymalnie kilka razy w miesi\u0105cu."]}),gt("li",{children:[dt("span",{className:"font-semibold",children:"Cz\u0119sto"})," \u2013 powiadomienia mog\u0119 by\u0107 wysy\u0142ane kilka razy w tygodniu."]}),gt("li",{children:[dt("span",{className:"font-semibold",children:"Codzienne"})," \u2013 powiadomienia b\u0119d\u0105 wysy\u0142ane nawet codziennie."]})]})]}),dt("div",{className:"grid gap-2"})]})})]})}import{Fragment as yo,jsx as V,jsxs as at}from"react/jsx-runtime";function te({groups:t=[],isManaging:e,onToggle:a,onCheckAll:i,onUpdate:s,isUpdating:d,wasChanged:o,isUserGroupsUpdated:h,className:f,texts:b}){let[k]=ca(),[S]=ca(),v=t.filter(m=>m.isOn===!1).length>0,C=t.filter(m=>m.isOn===!1).length>0;if(t.length<=1&&e!=!0)return null;let x=at("div",{ref:k,className:r("my-5 flex flex-col gap-3",f?.groupsList),children:[t.map(m=>at("div",{id:m.id,role:"button",className:r(m.isOn?"bg-neutral-50 hover:bg-transparent shadow-sm border-transparent dark:bg-neutral-800":"border-neutral-200 hover:bg-neutral-50 dark:hover:border-neutral-800 shadow-sm dark:border-neutral-800","active:bg-beige-300 flex w-full cursor-pointer items-center gap-3 rounded-xl border px-3 py-2 transition active:dark:bg-neutral-900",f?.groupItem),onClick:n=>{n.target instanceof HTMLButtonElement||a(m.id)},children:[V(Pt,{checked:m.isOn,className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-700",onCheckedChange:()=>{a(m.id)}}),at("div",{className:"flex flex-col items-start justify-start",children:[V("p",{className:"font-medium text-sm",children:m.name}),m.description&&V("p",{className:"text-xs font-light",children:m.description})]}),V("div",{className:"grow"}),m.howOften&&V(sa,{regularity:m.howOften})]},m.id)),at("div",{className:"flex gap-2",children:[e===!0&&at(yo,{children:[at("div",{ref:S,className:"flex flex-col items-start justify-start",children:[o&&at(I,{variant:"default",size:"sm",className:"relative",disabled:d,onClick:s,children:[b?.groupsUpdateButton??T.groupsUpdateButton,d&&V("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:V(H,{})})]}),h&&at("p",{className:"mt-3 flex items-center gap-2 text-sm text-green-500",children:[V(vo,{color:"var(--color-green-500",size:16})," ",b?.groupsUpdateSuccess??T.groupsUpdateSuccess]})]}),V("div",{className:"grow"})]}),C&&V("div",{className:"flex justify-start",children:V(I,{className:"cursor-pointer dark:bg-neutral-700",onClick:i,size:"sm",variant:"secondary",type:"button",children:b?.groupsSelectAllButton??T.groupsSelectAllButton})})]}),v&&at("div",{className:"flex text-left gap-2 text-xs text-yellow-500",children:[V(wo,{color:"orange",size:16}),b?.groupsNoSelectionWarning??T.groupsNoSelectionWarning]})]});return e==!0?at(kt,{className:"mt-5 text-left",children:[V(Ct,{children:V(bt,{children:b?.groupsTitle??T.groupsTitle})}),V(St,{children:x})]}):x}import{jsx as ht,jsxs as Gt}from"react/jsx-runtime";function la({showQRCode:t=!0,isManaging:e,className:a,texts:i}){let s=typeof window<"u",d=s?!!window.matchMedia?.("(prefers-color-scheme: dark)").matches:!1;function o(h){return h?window.location.href:""}return t?Gt(kt,{className:r("bg-beige-100 rounded-xl p-4 dark:bg-neutral-700",a?.qrCodeSection),children:[ht(Ct,{children:Gt(bt,{className:r("mb-3 text-base font-medium lg:text-lg",a?.qrCodeTitle),children:[i?.qrCodeSubtitle??T.qrCodeSubtitle," "+(i?.qrCodeTitle??T.qrCodeTitle)]})}),Gt(St,{className:"flex flex-col items-center gap-2",children:[Gt("div",{className:"mt-1.5 mb-3 flex items-center gap-x-2",children:[ht("a",{href:"https://apps.apple.com/us/app/bitsnap/id6741902807",target:"_blank",className:"max-w-28 flex-1 basis-1/2 lg:max-w-36",children:ht("img",{className:"h-auto w-full",src:xt+"/app-store-logo.png",alt:"Download on App Store"})}),ht("a",{href:"https://play.google.com/store/apps/details?id=com.bitsnap.Bitsnap&pli=1",target:"_blank",className:"max-w-28 flex-1 basis-1/2 lg:max-w-36",children:ht("img",{className:"h-auto w-full",src:xt+"/google-play-logo.png",alt:"Get in on Google Play"})})]}),s&&ht("div",{className:"flex items-center justify-center",children:Gt("div",{className:r("flex min-w-[40%] flex-col items-center gap-2 rounded-xl bg-white p-2 dark:bg-neutral-900",a?.qrCodeContainer),children:[ht("img",{className:"mt-3 w-[80%] p-1 pt-3",src:xt+`/api/qr-gen?url=${o(s)}&bgColor=${d?"171717":"F6F4F0"}&textColor=${d?"ffffff":"000000"}&margin=0`}),ht("p",{className:"text-xs md:text-sm",children:i?.qrCodeScanText??T.qrCodeScanText})]})})]})]}):null}import{useState as jt}from"react";import{isValidPhoneNumber as Po}from"react-phone-number-input";import{useAutoAnimate as xo}from"@formkit/auto-animate/react";import{Label as pa}from"@radix-ui/react-label";import{CheckCircleIcon as ko,CircleAlertIcon as Co,TriangleAlertIcon as So}from"lucide-react";import{useState as ve}from"react";import{jsx as X,jsxs as ut}from"react/jsx-runtime";function da({submit:t,isLoading:e,errMsg:a,emailLack:i,warnMsg:s,isSubmited:d,agreementLack:o,showPhoneInput:h=!1,agreementText:f,className:b,texts:k}){let[S,v]=ve(""),[C,x]=ve(""),[m,n]=ve(!1),[l]=xo();function c(u){u.preventDefault(),t(S,C,m)}return ut("form",{ref:l,onSubmit:c,className:r("flex flex-col gap-3 text-left",b?.formContainer),children:[ut("div",{className:"flex flex-col gap-1 text-left",children:[X(pa,{className:"text-sm",htmlFor:"bts-notifications-form-email",children:k?.formEmailLabel??T.formEmailLabel}),X(Dt,{value:S,onChange:u=>{v(u.currentTarget.value)},id:"bts-notifications-form-email",className:r(i===!0?"border-red-400":""),type:"email",placeholder:k?.formEmailPlaceholder??T.formEmailPlaceholder})]}),h&&ut("div",{className:"flex flex-col gap-1 text-left",children:[ut(pa,{className:"text-sm",htmlFor:"bts-notifications-form-phone",children:[k?.formPhoneLabel??T.formPhoneLabel," ",X("span",{className:"text-neutral-500 dark:text-neutral-500",children:k?.formPhoneOptional??T.formPhoneOptional})]}),X(Dt,{value:C,onChange:u=>{x(u.currentTarget.value)},id:"bts-notifications-form-phone",className:"",type:"tel",autoComplete:"tel",autoCorrect:"off",placeholder:k?.formPhonePlaceholder??T.formPhonePlaceholder})]}),ut("div",{className:"flex items-start gap-x-1.5",children:[X("input",{className:"cursor-pointer",id:"bts-notifications-form-marketing-consent",type:"checkbox",checked:m,onChange:()=>{n(!m)}}),X("label",{htmlFor:"bts-notifications-form-marketing-consent",className:r("cursor-pointer text-xs leading-4 transition-colors md:text-sm md:leading-4",o===!0?"text-yellow-700":""),children:f})]}),a.length>0&&ut("p",{className:"mb-3 flex items-center gap-1 text-sm text-red-400",children:[X(So,{color:"#ff6467",size:16})," ",a]}),s.length>0&&ut("p",{className:"mb-3 flex items-center gap-1 text-sm text-amber-400",children:[X(Co,{color:"var(--color-amber-400)",size:16})," ",s]}),d==!1&&X("div",{className:"flex justify-start",children:ut(I,{variant:"default",disabled:e,className:r(e?"cursor-not-allowed text-transparent":"","relative"),children:[k?.formSubmitButton??T.formSubmitButton,e&&X("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:X(H,{})})]})}),d&&ut("div",{className:"flex items-center gap-3 text-sm text-green-400",children:[X(ko,{size:16})," ",k?.formSuccessMessage??T.formSuccessMessage]})]})}import{jsx as we,jsxs as To}from"react/jsx-runtime";var No=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;function ua({groups:t,onToggle:e,onCheckAll:a,slug:i,showPhoneInput:s=!1,agreementText:d,className:o,texts:h,isUpdating:f,wasChanged:b,onSuccess:k}){let[S,v]=jt(""),[C,x]=jt(""),[m,n]=jt(!1),[l,c]=jt(!1),[u,p]=jt(!1),{mutateAsync:g,isPending:P}=nt(Y.notifications.createNotificationUser);function w(W){return W==null?!1:Po(W,"PL")}async function A(W,ot,it){if(v(""),x(""),p(!1),n(!1),c(!1),!it){c(!0),v("Zgoda w tym przypadku jest wymagana.");return}if(No.test(W)===!1){v("Email jest nieprawid\u0142owy."),p(!0);return}ot.length>0&&w(ot)===!1&&x("Numer telefonu mo\u017Ce by\u0107 nieprawid\u0142owy. Zapisali\u015Bmy go ale je\u015Bli jest nieprawid\u0142owy to wpisz jeszcze raz i kliknij przycisk.");try{let _=await g({slug:i,email:W,phone:ot,groups:t.filter(j=>j.isOn==!0).map(j=>j.id),mobileNotificationEnabled:!0,emailNotificationEnabled:!0,smsNotificationEnabled:!0});if(_.result.case==="success"){n(!0),setTimeout(()=>{k?.(!1,_.userId,_.accessToken)},1e3);return}else{n(!0);let j=_.result.value;if(j!=null){if(j==32){k?.(!0,void 0,void 0);return}console.log(`Code error: ${oe[j]}`),v("Wyst\u0105pi\u0142 b\u0142\u0105d: "+oe[j]);return}return}}catch(_){v("Wyst\u0105pi\u0142 b\u0142\u0105d podczas zapisywania. Spr\xF3buj ponownie."),console.log(`Error: ${_}`)}}let R=h?.formTitle??T.formTitle;return To("div",{className:r("bg-beige-100 rounded-xl p-4 dark:bg-neutral-700",o?.formSection),children:[R.length>0&&we("h3",{className:r("mb-3 text-base font-medium lg:text-lg",o?.formTitle),children:R}),we(te,{groups:t,isManaging:!1,onToggle:e??(()=>{}),onCheckAll:a??(()=>{}),isUpdating:f??!1,wasChanged:b??!1,isUserGroupsUpdated:!1,className:o,texts:h}),we(da,{errMsg:S,emailLack:u,warnMsg:C,submit:A,isLoading:P,isSubmited:m,agreementLack:l,showPhoneInput:s,agreementText:d??h?.agreementText??T.agreementText,className:o,texts:h})]})}import{useEffect as Io,useState as Mt}from"react";import{Label as ye}from"@radix-ui/react-label";import{MessageCircleWarningIcon as Do}from"lucide-react";import{useDebouncedCallback as Lo}from"use-debounce";import{TriangleAlertIcon as zo,XIcon as Eo}from"lucide-react";import{createPortal as Ao}from"react-dom";import{useEffect as ba,useState as Ro}from"react";import{jsx as tt,jsxs as Et}from"react/jsx-runtime";function ma({open:t,onOpenChange:e,onConfirm:a,isDeleting:i=!1}){let[s,d]=Ro(!1);if(ba(()=>(d(!0),()=>d(!1)),[]),ba(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t]),!s||!t)return null;let o=f=>{f.target===f.currentTarget&&e(!1)},h=()=>{a()};return Ao(tt("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/50 p-4",onClick:o,children:Et("div",{className:r("relative w-full max-w-md rounded-2xl bg-white p-6 shadow-lg","dark:bg-neutral-800","animate-in fade-in-0 zoom-in-95 duration-200"),onClick:f=>f.stopPropagation(),children:[Et("button",{onClick:()=>e(!1),className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none dark:ring-offset-neutral-950 dark:focus:ring-neutral-300",disabled:i,children:[tt(Eo,{className:"h-4 w-4"}),tt("span",{className:"sr-only",children:"Zamknij"})]}),Et("div",{className:"flex flex-col gap-4",children:[Et("div",{className:"flex items-start gap-3",children:[tt("div",{className:"flex-shrink-0",children:tt(zo,{className:"h-6 w-6 text-amber-500","aria-hidden":"true"})}),tt("div",{className:"flex-1",children:tt("h2",{className:"text-lg font-semibold text-black dark:text-neutral-100",children:"Czy na pewno chcesz si\u0119 wypisa\u0107?"})})]}),tt("p",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:"Klikni\u0119cie tego przycisku spowoduje wypisanie z wszelkich powiadomie\u0144 i grup, kt\xF3re zapisa\u0142e\u015B."}),Et("div",{className:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",children:[tt(I,{type:"button",variant:"ghost",onClick:()=>e(!1),disabled:i,className:"sm:min-w-[100px]",children:"Anuluj"}),Et(I,{type:"button",variant:"destructive",onClick:h,disabled:i,className:r(i&&"cursor-not-allowed text-transparent","relative sm:min-w-[100px]"),children:["Usu\u0144",i&&tt("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:tt("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"})})]})]})]})]})}),document.body)}import{useAutoAnimate as ga}from"@formkit/auto-animate/react";import{Fragment as _o,jsx as D,jsxs as et}from"react/jsx-runtime";function ha({accessToken:t,slug:e,userID:a,className:i,texts:s}){let[d]=ga(),[o]=ga(),{mutateAsync:h,isPending:f}=nt(Y.notifications.deleteNotificationUser),{mutateAsync:b,isPending:k}=nt(Y.notifications.updateNotificationUser),{data:S,isFetching:v}=Ht(Y.notifications.getNotificationUserSettings,{userId:a,slug:e,accessToken:t}),[C,x]=Mt(!1),[m,n]=Mt(!1),[l,c]=Mt(!1),[u,p]=Mt(!1),[g,P]=Mt(!1),w=S?.result.case==="success"?S?.result?.value:void 0;function A(){P(!0)}async function R(){await h({accessToken:t,slug:e,userId:a}),P(!1)}async function W(){await b({accessToken:t,slug:e,notificationUserId:a,mobileNotificationEnabled:u,emailNotificationEnabled:C,smsNotificationEnabled:m}),c(!0),setTimeout(()=>{c(!1)},3e3)}let ot=Lo(_=>{W()},300);Io(()=>{let _=S?.result.case==="success"?S?.result?.value:void 0;x(_?.emailNotificationEnabled??!1),n(_?.smsNotificationEnabled??!1),p(_?.mobileNotificationEnabled??!1)},[S]);function it(_,j){_==="email"&&x(j),_==="phone"&&n(j),_==="push"&&p(j),ot(!0)}return et("div",{className:r("bg-beige-100 rounded-xl p-4 dark:bg-neutral-700",i?.manageDataSection),children:[D("div",{className:"flex justify-start",children:D("h3",{className:r("mb-3 text-base font-medium lg:text-lg",i?.manageDataTitle),children:s?.manageDataTitle??T.manageDataTitle})}),v?D(Re,{className:"h-64 w-full"}):et(kt,{ref:o,className:r(k&&"relative"),children:[D(Ct,{children:D(bt,{children:D("p",{className:"text-sm text-left",children:s?.manageDataDescription??T.manageDataDescription})})}),et(St,{ref:d,children:[D("div",{className:r(k&&"opacity-50 pointer-events-none","flex flex-col gap-2"),children:et("div",{className:"flex flex-col items-start gap-5 gap-x-2",children:[w?.emailNotificationAvailable&&et("div",{className:"flex items-center gap-3",children:[D(Pt,{id:"email-enabled",className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-600",checked:C,onCheckedChange:()=>{it("email",!C)}}),D(ye,{htmlFor:"email-enabled",className:"text-sm",children:"Email"})]}),w?.smsNotificationAvailable&&et("div",{className:"flex items-center gap-3",children:[D(Pt,{id:"sms-enabled",className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-600",checked:m,onCheckedChange:()=>{it("phone",!m)}}),D(ye,{htmlFor:"sms-enabled",className:"text-sm",children:"SMS"})]}),w?.mobileNotificationAvailable&&et(_o,{children:[et("div",{className:"flex items-center gap-3",children:[D(Pt,{id:"push-enabled",className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-600",checked:u,onCheckedChange:()=>{it("push",!u)}}),D(ye,{htmlFor:"push-enabled",className:"text-sm",children:"Powiadomienia na telefon"})]}),w?.hasUserInstalledApp===!1&&et("div",{className:"flex items-center gap-3",children:[D(Do,{color:"var(--color-amber-500)",size:26}),D("p",{className:"text-xs text-amber-500",children:"Wygl\u0105da na to, \u017Ce nie masz zainstalowanej aplikacji mobilnej. Zainstaluj i wyra\u017A zgod\u0119 na otrzymywanie powiadomie\u0144 na telefon."})]})]})]})}),et("div",{className:"mt-5 flex flex-col gap-2 text-left",children:[D("hr",{}),l&&D("p",{className:"text-xs text-green-500",children:s?.manageDataUpdatedMessage??T.manageDataUpdatedMessage}),D("div",{className:"flex items-center gap-x-2",children:et(I,{size:"sm",variant:"link",className:r("pl-0 ml-0",f&&"cursor-not-allowed"),onClick:A,children:[s?.manageDataUnsubscribeButton??T.manageDataUnsubscribeButton,f&&D("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:D(H,{})})]})})]})]}),k&&D("div",{className:"bg-black/30 absolute inset-0 rounded-xl",children:D("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:D(H,{})})})]}),D(ma,{open:g,onOpenChange:P,onConfirm:R,isDeleting:f})]})}import{useState as ee}from"react";import{ArrowLeft as Go}from"lucide-react";import{useAutoAnimate as wa}from"@formkit/auto-animate/react";import*as $ from"@radix-ui/react-dialog";import{XIcon as Uo}from"lucide-react";import{jsx as At,jsxs as xe}from"react/jsx-runtime";function fa({...t}){return At($.Root,{"data-slot":"dialog",...t})}function Bo({...t}){return At($.Portal,{"data-slot":"dialog-portal",...t})}function Oo({className:t,...e}){return At($.Overlay,{"data-slot":"dialog-overlay",className:r("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...e})}function va({className:t,children:e,showCloseButton:a=!0,...i}){return xe(Bo,{"data-slot":"dialog-portal",children:[At(Oo,{}),xe($.Content,{"data-slot":"dialog-content",className:r("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...i,children:[e,a&&xe($.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[At(Uo,{}),At("span",{className:"sr-only",children:"Close"})]})]})]})}import{Fragment as jo,jsx as E,jsxs as rt}from"react/jsx-runtime";function ya({slug:t,onSuccess:e,onError:a,className:i,isOpen:s,onClose:d,texts:o}){let[h]=wa(),[f]=wa(),[b,k]=ee(""),[S,v]=ee(""),[C,x]=ee(!1),[m,n]=ee(null),{mutateAsync:l,isPending:c}=nt(Y.notifications.verifyUserEmail),u=async w=>{if(w.preventDefault(),n(null),!b||!b.includes("@")){n(o.loginInvalidEmailError??"");return}try{await l({email:b,slug:t}),x(!0)}catch(A){let R=A instanceof Error?A:new Error(o.loginSendEmailError);n(R.message),a?.(R)}},p=async w=>{if(v(w),n(null),w.length===6)try{let A=await l({email:void 0,code:w,slug:t});A.ok&&A.accessToken?e?.(A.userId,A.accessToken):(n(o.loginVerificationFailedError??""),a?.(new Error(o.loginVerificationFailedError)))}catch(A){let R=A instanceof Error?A:new Error(o.loginVerifyCodeError);if(R.message.includes("Invalid code")){n(o.loginInvalidCodeError??R.message),v("");return}n(R.message),a?.(R),v("")}},g=async()=>{if(v(""),n(null),!b||!t){n(o.loginSlugRequiredError??"");return}try{await l({email:b,slug:t})}catch(w){let A=w instanceof Error?w:new Error(o.loginResendEmailError);n(A.message),a?.(A)}},P=()=>{x(!1),v(""),n(null)};return E(fa,{open:s,onOpenChange:d,children:E(va,{className:"sm:max-w-[425px] min-h-[250px]",children:rt("div",{className:"flex flex-col min-h-[250px] h-full",children:[rt("div",{ref:f,className:"flex items-start gap-2 mb-2",children:[C&&E(I,{variant:"ghost",size:"icon-sm",onClick:()=>{x(!1)},children:E(Go,{className:"h-5 w-5"})}),E("div",{children:E(bt,{children:C?o.loginCodeLabel??"":o.loginTitle??""})})]}),E(ze,{className:"mb-4",children:C?rt(jo,{children:[o.loginCodeSentMessage??""," ",b]}):o.loginDescription??""}),E("div",{className:"flex-1 flex flex-col",children:C?rt("form",{onSubmit:w=>w.preventDefault(),className:"flex flex-col flex-1",children:[rt("div",{className:"space-y-2",children:[E(ne,{children:o.loginCodeLabel??""}),E(Ee,{maxLength:6,value:S,onChange:p,disabled:c,children:rt(Ae,{children:[E(ft,{index:0}),E(ft,{index:1}),E(ft,{index:2}),E(ft,{index:3}),E(ft,{index:4}),E(ft,{index:5})]})}),c&&E(H,{})]}),m&&E("div",{className:"text-sm text-destructive mt-2 mb-1",role:"alert",children:m}),E("div",{className:"grow"}),rt("div",{className:"flex flex-col items-start gap-2 pt-2",children:[b.length>0&&E(I,{variant:"link",size:"sm",onClick:g,disabled:c,className:"flex-1 ml-0 pl-0",children:o.loginResendCodeButton??""}),E(I,{variant:"link",size:"sm",onClick:P,disabled:c,className:"flex-1 ml-0 pl-0",children:o.loginChangeEmailButton??""})]})]}):rt("form",{onSubmit:u,className:"flex flex-col flex-1",children:[rt("div",{className:"space-y-2",children:[E(ne,{htmlFor:"email",children:o.loginEmailLabel??""}),E(Dt,{id:"email",type:"email",placeholder:o.loginEmailPlaceholder??"",value:b,onChange:w=>k(w.target.value),required:!0,disabled:c,"aria-invalid":m?"true":"false"})]}),m&&E("div",{className:"text-sm text-destructive mt-2 mb-1",role:"alert",children:m}),E("div",{className:"grow"}),rt("div",{className:"flex flex-col items-start gap-0 pt-2",children:[E(I,{type:"submit",size:"sm",disabled:c,children:c?o.loginSendingButton??"":o.loginSendCodeButton??""}),E(I,{type:"button",variant:"link",className:"ml-0 pl-0",size:"sm",onClick:()=>{x(!0)},children:o.loginIHaveCode??""})]})]})})]})})})}import{useAutoAnimate as Vo}from"@formkit/auto-animate/react";import{jsx as F,jsxs as ke}from"react/jsx-runtime";function Wo(t,e){switch(e.type){case"SET_IS_LOGGED_IN":return{...t,isLoggedIn:e.value};case"SET_USER_ID":return{...t,userID:e.value};case"SET_LOADING":return{...t,isLoading:e.value};case"SET_PUBLIC_GROUPS":return{...t,groupsProvided:e.value,groups:e.value!=null&&e.value.length>0?t.groups.filter(a=>e.value?.find(i=>i.id===a.id)!=null):t.groups};case"SET_GROUPS":{let a=t.isLoggedIn==!1||t.groupsProvided!=null,i=e.value.map(s=>t.isLoggedIn==!0?s:{...s,isOn:t.groupsProvided?.find(d=>d.id===s.id)?.isOn??a});return{...t,groups:i}}case"TOGGLE_GROUP":{let a=t.groups.map(i=>i.id===e.groupID?{...i,isOn:!i.isOn}:i);return{...t,wasChanged:!0,groups:a}}case"CHECK_ALL_GROUPS":{let a=t.groups.map(i=>({...i,isOn:!0}));return{...t,groups:a,wasChanged:!0}}case"SET_WAS_CHANGED":return{...t,wasChanged:e.value};case"SET_IS_USER_GROUPS_UPDATED":return{...t,isUserGroupsUpdated:e.value};case"RESET_UPDATE_STATE":return{...t,wasChanged:!1,isUserGroupsUpdated:!0};case"SHOW_SETTINGS":return{...t,showSettings:!0};case"HIDE_SETTINGS":return{...t,showSettings:!1};default:return t}}function Ko({slug:t,userID:e,productID:a,projectName:i,projectLogo:s,projectLogoDark:d,groups:o,isManaging:h=!1,texts:f,showQRCode:b=!1,showPhoneInput:k=!1,hiddenGroupIds:S=[],className:v}){let[C]=Vo(),x=t??wt()??(typeof window<"u"?window.location.hostname:""),{mutateAsync:m,isPending:n}=nt(Y.notifications.updateUserGroups),{data:l,refetch:c}=Fo({queryKey:["notifications_accessToken"],queryFn:()=>{if(typeof window<"u")return{accessToken:localStorage.getItem("notifications_accessToken")??void 0,userID:localStorage.getItem("notifications_userID")??void 0}}}),{data:u,isPending:p,refetch:g}=Ht(Y.notifications.getUserGroups,{slug:x,accessToken:l?.accessToken}),[P,w]=Mo(Wo,{isLoading:p,isUserGroupsUpdated:!1,wasChanged:!1,groupsProvided:o,groups:[],showSettings:l!=null&&h==!0,isLoggedIn:l!=null,userID:void 0});qt(()=>{w({type:"SET_LOADING",value:n||p})},[n,p]),qt(()=>{w({type:"SET_IS_LOGGED_IN",value:l?.accessToken!=null}),w({type:"SET_USER_ID",value:l?.userID}),l?.accessToken!=null&&h==!0&&w({type:"SHOW_SETTINGS"})},[l,h]),qt(()=>{if(u==null)return;let U=u.groups.map(B=>{let Q="rarely";switch(B.howOften){case 0:Q="rarely";break;case 1:Q="often";break;case 2:Q="veryOften";break}return{id:B.id,name:B.name,description:B.description,howOften:Q,isOn:B.isOn??void 0}});w({type:"SET_GROUPS",value:U})},[u,p,o]);let A=qo(null);qt(()=>{let U=o?.map(B=>(B.id.startsWith("group_")||(B.id=`group_${B.id}`),B));w({type:"SET_PUBLIC_GROUPS",value:U})},[o]);let R={...T,...f};async function W(){await m({accessToken:l?.accessToken,slug:x,userId:e,groupIds:P.groups.filter(U=>U.isOn===!0).map(U=>U.id)}),w({type:"RESET_UPDATE_STATE"}),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{w({type:"SET_IS_USER_GROUPS_UPDATED",value:!1})},2e3)}function ot(U){w({type:"TOGGLE_GROUP",groupID:U})}function it(){w({type:"CHECK_ALL_GROUPS"})}function _(){w({type:"SHOW_SETTINGS"})}function j(){w({type:"HIDE_SETTINGS"})}function ae(){localStorage.removeItem("notifications_accessToken"),localStorage.removeItem("notifications_userID"),c(),w({type:"SET_USER_ID",value:void 0}),w({type:"SET_IS_LOGGED_IN",value:!1}),w({type:"HIDE_SETTINGS"})}async function Rt(U,B){typeof window<"u"&&(localStorage.setItem("notifications_accessToken",B),U!=null&&localStorage.setItem("notifications_userID",U)),w({type:"SET_USER_ID",value:U});try{await c(),g().then().catch().finally(()=>{h==!0&&w({type:"SHOW_SETTINGS"})})}catch(Q){console.log(`Error: ${Q}`)}}qt(()=>()=>{A.current&&clearTimeout(A.current)},[]);let It=h==!0&&P.userID!=null&&l?.accessToken!=null;return ke("main",{className:r("bitsnap-react relative",v?.container),children:[R.title!=null&&F("h1",{className:"text-2xl font-semibold text-black md:text-3xl lg:text-4xl xl:text-5xl dark:text-neutral-100",children:R.title}),!P.showSettings&&h&&F(I,{onClick:_,variant:"outline",size:"icon",className:"absolute bottom-6 right-6 z-50 h-12 w-12 rounded-full shadow-lg hover:shadow-xl md:bottom-8 md:right-8","aria-label":"Settings",children:F(Ho,{className:"h-5 w-5"})}),F("div",{className:r("md:pt8 relative z-0 mt-6 overflow-hidden rounded-2xl bg-white px-3 pt-6 pb-3 md:px-5 md:pb-5 dark:bg-neutral-800",v?.header),children:P.showSettings?F("div",{className:"space-y-6",children:P.isLoggedIn&&ke("div",{className:r("grid grid-cols-1 gap-3 lg:gap-6",It?"md:grid-cols-2":""),children:[ke("div",{className:v?.groupsContainer,children:[F(ra,{projectName:i,projectLogo:s,projectLogoDark:d,description:R.managingDescription,className:v,onLogout:ae}),p&&F("div",{className:"flex justify-center items-center py-8",children:F(H,{})}),F(te,{groups:P.groups,hiddenGroupIds:S,isManaging:h,onToggle:ot,onCheckAll:it,onUpdate:W,isUpdating:n,wasChanged:P.wasChanged,isUserGroupsUpdated:P.isUserGroupsUpdated,className:v,texts:R})]}),It&&F(ha,{accessToken:l.accessToken??"",slug:x,userID:P.userID??"",className:v,texts:R}),b!=!1&&F(la,{showQRCode:b,isManaging:!0,className:v,texts:R})]})}):F("div",{className:r("grid grid-cols-1 gap-3 lg:gap-6"),children:F(ua,{slug:x,onToggle:U=>{w({type:"TOGGLE_GROUP",groupID:U})},onCheckAll:()=>{w({type:"CHECK_ALL_GROUPS"})},onSuccess:(U,B,Q)=>{Q!=null&&Rt(B,Q),U&&w({type:"SHOW_SETTINGS"})},groups:P.groups,showPhoneInput:k,agreementText:R.agreementText,className:v,texts:R,wasChanged:P.wasChanged,isUpdating:n})})}),F(ya,{isOpen:P.showSettings&&!P.isLoggedIn,slug:x,onSuccess:Rt,texts:R,onClose:j})]})}function Qo({slug:t,userID:e,productID:a,projectName:i,projectLogo:s,projectLogoDark:d,groups:o,isManaging:h,texts:f,showQRCode:b,showPhoneInput:k,hiddenGroupIds:S,className:v}){return F(ie,{children:F(Ko,{slug:t,userID:e,productID:a,projectName:i,projectLogo:s,projectLogoDark:d,groups:o,isManaging:h,texts:f,showQRCode:b,showPhoneInput:k,hiddenGroupIds:S,className:v})})}var $o=Qo;export{de as ApplePayButton,Zo as Bitsnap,no as BitsnapCheckout,ur as BitsnapReturns,$a as BitsnapReturnsProvider,vr as CHECKOUT_SLOT_NAMES,Ta as Environment,ge as GooglePayButton,$o as NotificationsComponent,ei as PRODUCT_LIST_SLOT_NAMES,dr as Panel,qa as PanelLogin,Ua as PanelProvider,oi as ProductList,pr as PublicOrderPage,Fa as RETURNS_SLOT_NAMES,Ha as ReturnsAppearanceProvider,rr as ReturnsCodeStep,nr as ReturnsConfirmation,ar as ReturnsEmailStep,lr as ReturnsMyReturnDetail,cr as ReturnsMyReturnsList,ir as ReturnsOrderDetail,or as ReturnsOrderList,Qa as ReturnsProvider,sr as ReturnsResult,Ma as buildAccessTokenRedirect,Yo as createCheckout,Xo as createPaymentURL,ai as formatProductPrice,_a as getAllowedReturnOrigins,Lt as getLocale,Ea as getPanelConfig,Jo as getReferenceIfPossible,Oa as getReturnURLFromSearch,ti as injectReferenceToRequestIfNeeded,Ga as persistReturnURL,ja as readPersistedReturnURL,La as setAllowedReturnOrigins,Na as setCustomHost,Da as setHost,se as setLocale,Ia as setLoginURL,za as setPanelConfig,Aa as setPanelProjectID,le as setProjectID,Ra as setTheme,Ja as useCreateReturn,er as useMyReturn,tr as useMyReturns,Ba as usePanelConfig,ri as useProducts,Xa as useReturnOrders,Za as useReturnSession,Ya as useReturnableOrder,Va as useReturnsAppearance,Wa as useReturnsSlot,Ka as useReturnsText};
|
|
1
|
+
import{A as gi,D as ye,E as lt,F as Rt,G as Dt,H as xe,a as Oe,b as zt,c as Et,d as ft,e as je,f as It,g as Me,h as qe,i as xt,j as Ja,k as tr,l as er,m as ar,n as rr,o as At,p as Pr,q as Nr,r as we,s as kt,t as ct,u as F,v as Ke,w as di,x as ui,y as bi,z as mi}from"./chunk-JXCHRSPW.mjs";import{a as Tr}from"./chunk-ZPTHK4OX.mjs";import{A as Sr,a as fe,b as K,c as or,d as ir,e as nr,f as sr,i as cr,k as lr,l as pr,m as dr,n as ur,o as br,p as mr,q as gr,r as hr,t as fr,u as vr,v as wr,w as yr,x as xr,y as kr,z as Cr}from"./chunk-DDY7IBMG.mjs";import{a as hi,b as fi,c as vi,d as wi}from"./chunk-6D3OORMK.mjs";import{a as He,b as Ve}from"./chunk-KOVKUJAW.mjs";import{a as Fa,b as Ha,c as Va,d as Wa,e as Ka,f as Qa,g as $a,h as Za,i as Xa,j as Ya}from"./chunk-YXFJG4MF.mjs";import{g as ge,h as qa,j as et,k as te,l as st,o as he,q as D,r as jt,u as Fe}from"./chunk-T2OUOO4X.mjs";import{d as r,f as Tt,g as Ma,j as We,l as ve,m as Mt}from"./chunk-43IIYJ6J.mjs";import{l as Pt,m as Nt,n as ht,q as Ge}from"./chunk-RLEC25JI.mjs";import"./chunk-ADYVTMGH.mjs";import"./chunk-U6FLIRIV.mjs";import Qe from"apple-pay-button";function _t(){try{return lt()}catch{return}}import{useQuery as zr}from"@tanstack/react-query";import{jsx as ee}from"react/jsx-runtime";var Er=Qe.default??Qe;function Ir({style:t,buttonType:e,colorType:a,items:o,onClick:c}){let{checkIfApplePayIsAvailable:d,getApplePayPaymentRequest:i,completeApplePayPayment:w,setCountry:h,setCouponCodeIfPossible:u,setDeliveryMethod:v,setEmail:k,setPostalCode:S,clearCart:y}=Rt(),b=Nt(),{data:g}=zr({queryKey:["is-apple-pay-available"],queryFn:d});if(g!=!0)return null;let C=o.map(p=>({productID:p.id,quantity:p.quantity,metadata:p.metadata}));async function x(){let p=!1,s=n=>{p||(p=!0,b.track("apple_pay_result",{outcome:n}))};b.track("apple_pay_clicked",{}),b.track("payment_method_selected",{gateway:"apple_pay",method:"apple_pay"}),ct({event:"initiateCheckout",items:o.map(n=>({id:n.id,name:n.name,price:n.price,quantity:n.quantity,currency:"PLN"}))});let P=o.find(n=>n.isDeliverable===!0)!=null,f=new ApplePaySession(14,{countryCode:"PL",merchantCapabilities:["supports3DS"],supportedNetworks:["visa","masterCard"],currencyCode:"PLN",total:{amount:`${we(o.reduce((n,l)=>n+l.price*l.quantity,0)/100,2)}`,label:"P\u0142atno\u015B\u0107 za koszyk",type:"pending"},lineItems:[...o.map(n=>({amount:`${we(n.price*n.quantity/100,2)}`,label:n.name,type:"final"})),P?{amount:"16.99",type:"pending",label:"Dostawa"}:void 0].filter(n=>n!=null),...P?{shippingMethods:[],supportsCouponCode:!0,requiredBillingContactFields:["name","email","postalAddress","phone"],requiredShippingContactFields:["name","email","postalAddress","phone"]}:{}});await c?.();let O=await i({expectedItems:C});if(F(O)){console.error("Error creating ApplePaySession:",O.error),s("fail");return}f.oncancel=n=>{console.log("ApplePaySession cancelled",n),s("cancel")},f.onvalidatemerchant=async n=>{try{let l=await Oe.get(Tt).applePayValidateMerchant({validationUrl:n.validationURL,projectId:lt()});console.log("merchantSession",l.merchantSession),l.merchantSession.length>0?(console.log("completing merchant session"),f.completeMerchantValidation(JSON.parse(l.merchantSession))):f.abort()}catch{f.abort}},f.onshippingmethodselected=async n=>{console.log("shipping method selected",n),b.track("delivery_method_selected",{method:n.shippingMethod.identifier}),await v(n.shippingMethod.identifier);let l=await i({expectedItems:C});if(console.log("apRequest",l),F(l))throw f.abort(),new Error("Failed to get Apple Pay payment request");f.completeShippingMethodSelection({newTotal:l.total,newLineItems:l.lineItems,newShippingMethods:l.shippingMethods})},f.onshippingcontactselected=async n=>{try{n.shippingContact.countryCode!=null&&await h(n.shippingContact.countryCode),n.shippingContact.postalCode!=null&&await S(n.shippingContact.postalCode),n.shippingContact.phoneNumber!=null&&await k(n.shippingContact.emailAddress);let l=await i({expectedItems:C});if(F(l))throw f.abort(),new Error("Failed to get Apple Pay payment request");console.log("apRequest",l),f.completeShippingContactSelection({newLineItems:l.lineItems,newTotal:l.total,newShippingMethods:l.shippingMethods})}catch(l){console.log("shipping contact selected error",l),f.abort()}},f.oncouponcodechanged=async n=>{try{console.log("coupon code changed",n);let l=await u(n.couponCode),N=await i({expectedItems:C});if(console.log("apRequest",N),F(N))throw f.abort(),new Error("Failed to get Apple Pay payment request");f.completeCouponCodeChange({errors:F(l)?[new ApplePayError("couponCodeInvalid")]:void 0,newTotal:N.total,newLineItems:N.lineItems,newShippingMethods:N.shippingMethods})}catch(l){console.log("coupon code changed error",l),f.abort()}},f.onpaymentauthorized=async n=>{b.track("payment_submitted",{gateway:"apple_pay",method:"apple_pay"});try{let l=await w({token:n.payment.token,billingContact:n.payment.billingContact,shippingContact:n.payment.shippingContact});if(F(l)){console.log("apple pay error",l),s("fail"),f.completePayment({status:ApplePaySession.STATUS_FAILURE});return}l.redirectURL&&setTimeout(()=>{open(l.redirectURL,"_self")},2e3),s(l.isSuccess?"success":"fail"),f.completePayment({status:l.isSuccess?ApplePaySession.STATUS_SUCCESS:ApplePaySession.STATUS_FAILURE}),l.isSuccess&&y()}catch{s("fail"),f.completePayment({status:ApplePaySession.STATUS_FAILURE})}},f.begin()}return ee(Er,{style:t,buttonStyle:a,type:e,onClick:x})}function Ar(t){let e=ht(_t(),t.analytics,"cart");return ee(Pt,{value:e,children:ee(Dt,{children:ee(Ir,{...t})})})}var ke=Ar;import{useEffect as Ht}from"react";import Z from"zod";import{useAutoAnimate as mo}from"@formkit/auto-animate/react";import{createPortal as go}from"react-dom";import{createContext as Br,useContext as Or,useMemo as Gr}from"react";var Rr=["root","overlay","panel","header","title","closeButton","productList","product","productImage","productName","productPrice","quantityControl","quantityInput","quantityButton","removeButton","summary","totalLabel","totalValue","deliveryText","countryLabel","countryTrigger","countryDropdown","countrySearch","countryOption","paymentButtons","checkoutButton","emptyState","error","skeleton"],Dr={fontFamily:"--bitsnap-checkout-font-family",fontSize:"--bitsnap-checkout-font-size",background:"--bitsnap-checkout-background",surface:"--bitsnap-checkout-surface",foreground:"--bitsnap-checkout-foreground",mutedForeground:"--bitsnap-checkout-muted-foreground",border:"--bitsnap-checkout-border",buttonBackground:"--bitsnap-checkout-button-background",buttonForeground:"--bitsnap-checkout-button-foreground",buttonHoverBackground:"--bitsnap-checkout-button-hover-background",hoverSurface:"--bitsnap-checkout-hover-surface",focusRing:"--bitsnap-checkout-focus-ring",error:"--bitsnap-checkout-error",overlay:"--bitsnap-checkout-overlay",radius:"--bitsnap-checkout-radius"},_r={dark:{},light:{background:"#ffffff",surface:"#f9fafb",foreground:"#18181b",mutedForeground:"#71717a",border:"#e4e4e7",buttonBackground:"#18181b",buttonForeground:"#fafafa",buttonHoverBackground:"#000000",hoverSurface:"#e4e4e7",focusRing:"#71717a",error:"#dc2626",overlay:"rgb(0 0 0 / 0.35)"}},Lr=[{token:"background",variable:"--background"},{token:"foreground",variable:"--foreground"},{token:"surface",variable:"--card"},{token:"surface",variable:"--popover"},{token:"foreground",variable:"--popover-foreground"},{token:"mutedForeground",variable:"--muted-foreground"},{token:"border",variable:"--border"},{token:"border",variable:"--input"},{token:"focusRing",variable:"--ring"},{token:"error",variable:"--destructive"},{token:"radius",variable:"--radius"}];function Ur(t){return{"--popover":t.surface??"var(--color-neutral-800)","--popover-foreground":t.foreground??"var(--color-neutral-200)"}}function Ce(t){let e=He(t,{defaultTheme:"dark",presets:_r,variables:Dr,shadcnVariables:Lr});return{theme:e.theme,isCustomized:e.isCustomized,tokens:e.tokens,elements:e.elements,boundaryClassName:e.theme,boundaryStyle:e.boundaryStyle,dropdownStyle:Ur(e.tokens)}}function $e(t,e){return Ve(t.elements,e)}import{jsx as jr}from"react/jsx-runtime";var Ze=Br(Ce());function Xe({appearance:t,children:e}){let a=Gr(()=>Ce(t),[t]);return jr(Ze.Provider,{value:a,children:e})}function qt(){return Or(Ze)}function T(t){let e=qt();return $e(e,t)??{}}import{useAutoAnimate as po}from"@formkit/auto-animate/react";import ut from"react";import{useEffect as Wr,useState as Kr}from"react";import*as I from"@radix-ui/react-select";import{CheckIcon as Mr,ChevronDownIcon as Ye,ChevronUpIcon as qr}from"lucide-react";import{jsx as V,jsxs as Se}from"react/jsx-runtime";function Je({...t}){return V(I.Root,{"data-slot":"select",...t})}function ta({...t}){return V(I.Value,{"data-slot":"select-value",...t})}var Fr="border-input dark:bg-input/30 dark:hover:bg-input/50 bg-transparent";function ea({className:t,size:e="default",theme:a="default",children:o,...c}){return Se(I.Trigger,{"data-slot":"select-trigger","data-size":e,className:r("data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-fit items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a==="bare"?"":Fr,t),...c,children:[o,V(I.Icon,{asChild:!0,children:V(Ye,{className:"size-4 opacity-50"})})]})}function aa({className:t,children:e,position:a="popper",align:o="center",...c}){return V(I.Portal,{children:Se(I.Content,{"data-slot":"select-content",className:r("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,align:o,...c,children:[V(Hr,{}),V(I.Viewport,{className:r("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:e}),V(Vr,{})]})})}function ra({className:t,children:e,...a}){return Se(I.Item,{"data-slot":"select-item",className:r("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...a,children:[V("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:V(I.ItemIndicator,{children:V(Mr,{className:"size-4"})})}),V(I.ItemText,{children:e})]})}function Hr({className:t,...e}){return V(I.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:r("flex cursor-default items-center justify-center py-1",t),...e,children:V(qr,{className:"size-4"})})}function Vr({className:t,...e}){return V(I.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:r("flex cursor-default items-center justify-center py-1",t),...e,children:V(Ye,{className:"size-4"})})}import{jsx as pt,jsxs as ae}from"react/jsx-runtime";function Qr({id:t,open:e,disabled:a=!1,onToggle:o,onChange:c,selectedValue:d,countries:i}){let[w,h]=Kr(""),{isCustomized:u,boundaryClassName:v,boundaryStyle:k,dropdownStyle:S}=qt(),y=T("countryTrigger"),b=T("countryDropdown"),g=T("countrySearch"),C=T("countryOption");Wr(()=>{d==null&&i.length>0&&c(i[0].code)},[]);let x=i.filter(s=>s.name.toLowerCase().startsWith(w.toLowerCase())),p=i.find(s=>s.code===d);return ae(Je,{value:d,onValueChange:s=>{c(s),h("")},open:e,onOpenChange:s=>{s!==e&&o(),s||h("")},disabled:a,children:[pt(ea,{"data-bitsnap-checkout-slot":"countryTrigger",theme:"bare",className:r(a?"bg-neutral-100 dark:bg-neutral-800 dark:border-neutral-700":"","w-full rounded-md",y.className),style:y.style,children:pt(ta,{children:p&&ae("span",{className:"truncate flex items-center",children:[pt("img",{alt:d,src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${d}.svg`,className:"inline mr-2 h-4 rounded-sm"}),p.name]})})}),ae(aa,{"data-bitsnap-checkout":u?"dropdown":void 0,"data-bitsnap-checkout-slot":u?"countryDropdown":void 0,className:r(u?"bitsnap-react":"",v,"w-full max-h-80 max-w-[350px] z-[999999]",b.className),style:{...u?{...k,...S}:void 0,...b.style},position:"popper",children:[pt("div",{"data-bitsnap-checkout-slot":"countrySearch",className:r("sticky top-0 z-10 p-1 border-b",g.className),style:g.style,children:pt("input",{type:"search",name:"search",autoComplete:"off",className:"block w-full outline-none sm:text-body-regular bg-transparent rounded-md px-2 py-1.5",placeholder:"Znajd\u017A kraj",value:w,onChange:s=>h(s.target.value),onClick:s=>s.stopPropagation(),onKeyDown:s=>s.stopPropagation()})}),pt("div",{className:"max-h-64 overflow-y-auto",children:x.length===0?pt("div",{className:"cursor-default select-none relative py-2 pl-3 pr-9 text-sm",children:"No countries found"}):x.map(s=>ae(ra,{"data-bitsnap-checkout-slot":"countryOption",value:s.code,className:r("cursor-default select-none relative py-2 pl-3 pr-9 flex items-center transition",C.className),style:C.style,children:[pt("img",{alt:s.code,src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${s.code}.svg`,className:"inline mr-2 h-4 rounded-sm"}),pt("span",{className:"font-normal truncate",children:s.name})]},`${t}-${s.code}`))})]})]})}var oa=Qr;import{useEffect as to,useState as sa}from"react";import{MinusIcon as eo,PlusIcon as ao}from"lucide-react";import{Slot as nn}from"@radix-ui/react-slot";import{cva as $r}from"class-variance-authority";import{jsx as Xr}from"react/jsx-runtime";var Zr=$r("flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"}},defaultVariants:{orientation:"horizontal"}});function ia({className:t,orientation:e,...a}){return Xr("div",{role:"group","data-slot":"button-group","data-orientation":e,className:r(Zr({orientation:e}),t),...a})}import{Fragment as Yr,jsx as re,jsxs as Jr}from"react/jsx-runtime";function na({price:t,currency:e,pricing:a,quantity:o=1}){let c=a?.regularPrice??t,d=a?.effectivePrice??t,i=a?.discount?.status==="ACTIVE"&&d<c;return re("span",{children:i?Jr(Yr,{children:[re("span",{className:"mr-2 text-neutral-500 line-through",children:kt(c*o,e)}),re("span",{className:"font-semibold text-red-700",children:kt(d*o,e)}),re("span",{className:"mt-1 block text-xs text-neutral-600",children:a?.referencePrice.historyAvailable&&a.referencePrice.amount!=null?`Najni\u017Csza cena z 30 dni: ${kt(a.referencePrice.amount,e)}`:"Brak danych o cenie z ostatnich 30 dni"})]}):kt(d*o,e)})}import{jsx as Y,jsxs as oe}from"react/jsx-runtime";var ro=({isNotAvailable:t,quantity:e,details:a,shouldUpdate:o})=>{let c=T("product"),d=T("productImage"),i=T("productName"),w=T("productPrice"),h=T("removeButton");return oe("div",{"data-bitsnap-checkout-slot":"product","data-bitsnap-checkout-unavailable":t?"":void 0,className:r("flex items-center gap-3 mx-3",t?"outline outline-1 rounded-md m-1":"",c.className),style:c.style,children:[Y("img",{"data-bitsnap-checkout-slot":"productImage",className:r("aspect-auto max-w-[30%] max-w-32 max-h-32 py-2 overflow-hidden",d.className),style:d.style,src:a.image_url??"",alt:a.name}),oe("div",{className:"flex flex-col w-full",children:[Y("p",{"data-bitsnap-checkout-slot":"productName",className:r("font-medium",i.className),style:i.style,children:a.name}),Y("p",{"data-bitsnap-checkout-slot":"productPrice",className:r("text-sm",w.className),style:w.style,suppressHydrationWarning:!0,children:Y(na,{price:a.price,currency:a.currency,pricing:a.pricing,quantity:e})}),oe("div",{className:"flex justify-between",children:[Y(oo,{className:"",quantity:e,shouldUpdate:o}),Y(D,{"data-bitsnap-checkout-slot":"removeButton",variant:"ghost",size:"sm",className:h.className,style:h.style,onClick:()=>o(0),children:"Usu\u0144"})]})]})]})},ca=ro,oo=({quantity:t,shouldUpdate:e,className:a})=>{let[o,c]=sa(t.toString()),[d,i]=sa(t),w=T("quantityControl"),h=T("quantityInput"),u=T("quantityButton");to(()=>{e(d)},[d]);function v(y){if(c(y),y.length==0)return;let b=parseInt(y);if(isNaN(b)){i(1),c("");return}if(b==0||b<0){i(1),c("1");return}i(b),c(b.toString())}function k(){i(t+1),c((t+1).toString())}function S(){if(t>1){c((t-1).toString()),i(t-1);return}c(t.toString()),i(t)}return Y("div",{"data-bitsnap-checkout-slot":"quantityControl",className:r("flex",a,w.className),style:w.style,children:oe(ia,{"aria-label":"Ilo\u015B\u0107",children:[Y(D,{"data-bitsnap-checkout-slot":"quantityButton",className:u.className,style:u.style,onClick:S,children:Y(eo,{})}),Y("input",{"data-bitsnap-checkout-slot":"quantityInput",className:r("w-8 bg-transparent text-center",h.className),style:h.style,value:o,onInput:y=>{v(y.currentTarget.value)},type:"text"}),Y(D,{"data-bitsnap-checkout-slot":"quantityButton",className:u.className,style:u.style,onClick:k,children:Y(ao,{})})]})})};import{jsx as io}from"react/jsx-runtime";function Pe({className:t,...e}){return io("div",{"data-slot":"skeleton",className:"bg-neutral-700 animate-pulse rounded-md "+t,...e})}import{useMutation as Ft,useQuery as ie}from"@tanstack/react-query";import{createContext as no,useContext as so,useMemo as co}from"react";import{jsx as lo}from"react/jsx-runtime";var la=no({});function pa({texts:t,locale:e,children:a}){let o=co(()=>({texts:t,locale:e}),[t,e]);return lo(la.Provider,{value:o,children:a})}function dt(t){let{texts:e,locale:a}=so(la);return We(t,a??Mt(),e)}import{Fragment as bo,jsx as U,jsxs as vt}from"react/jsx-runtime";var uo=({className:t,locale:e})=>{let a=Rt(),o=Nt(),c=e??Mt(),d=T("productList"),i=T("summary"),w=T("totalLabel"),h=T("totalValue"),u=T("deliveryText"),v=T("countryLabel"),k=T("paymentButtons"),S=T("checkoutButton"),y=T("emptyState"),b=T("error"),g=T("skeleton"),C=dt("unavailableProducts"),x=dt("emptyCart"),p=dt("total"),s=dt("delivery"),P=dt("chooseCountry"),f=dt("nextStep"),{mutateAsync:O}=Ft({mutationFn:a.removeProductFromCart}),{mutateAsync:n}=Ft({mutationFn:a.updateQuantity}),{mutateAsync:l}=Ft({mutationFn:a.setCountry}),{mutateAsync:N}=Ft({mutationFn:a.clearCart}),[z,H]=ut.useState(""),[M,G]=ut.useState([]),[q,de]=ut.useState(!1),{mutateAsync:ue,isPending:Zt}=Ft({mutationFn:a.redirectToNextStep}),{data:Xt}=ie({queryKey:["cart-available-countries"],queryFn:a.getAvailableCountries}),{data:Yt}=ie({queryKey:["cart-one-click-payment"],queryFn:a.checkIfApplePayIsAvailable}),{data:Bt,isLoading:L,refetch:j}=ie({queryKey:["cart",c],queryFn:a.getProducts}),{data:$,refetch:Da}=ie({queryKey:["cart-country"],queryFn:a.getCountry}),[_a]=po(),B=F(Bt)?void 0:Bt,be=F(Xt)?[]:Xt,Ot=B?.reduce((m,R)=>R.details==null?m:m+(R.details.pricing?.effectivePrice??R.details.price)*R.quantity,0)??0,Gt=B?.[0]?.details?.currency??"PLN",La=B?.some(m=>m.details?.isDeliverable===!0)??!1,_e=$!=null&&!F($)&&$!=""?$:void 0,Le=ut.useRef(!1);ut.useEffect(()=>{Le.current||L||(Le.current=!0,o.track("cart_opened",{item_count:B?.reduce((m,R)=>m+R.quantity,0)??0,value_minor:Ot,currency:Gt}))},[L,o,B,Ot,Gt]);let me=ut.useRef(new Map);ut.useEffect(()=>{me.current.clear()},[B]);function Ua(m,R){let tt=B?.find(ja=>ja.id===m);if(tt?.details==null)return;let Jt=R-(me.current.get(m)??tt.quantity);if(me.current.set(m,R),Jt===0)return;let Ga=tt.details.pricing?.effectivePrice??tt.details.price,Be=tt.catalogProductID??tt.productID;o.track(Jt>0?"add_to_cart":"remove_from_cart",{qty:Math.abs(Jt),value_minor:Math.round(Ga*Math.abs(Jt)),currency:tt.details.currency},{product_id:Be,variant_id:Be!==tt.productID?tt.productID:null})}let Ue=ut.useRef(!1);async function Ba(m,R){if(R!=null){if(Ua(m,Math.max(0,R)),R<=0){await O({id:m}),await j();return}await n({id:m,quantity:R}),await j();return}}async function Oa(){try{if(H(""),B!=null){!Ue.current&&B.length>0&&(Ue.current=!0,o.track("checkout_started",{item_count:B.reduce((R,tt)=>R+tt.quantity,0),checkout_type:"cart",value_minor:Ot,currency:Gt}));try{ct({event:"initiateCheckout",items:B?.map(R=>({id:R.productID,name:R.details?.name??"",price:R.details?.price??0,quantity:R.quantity,currency:R.details?.currency??"PLN"}))})}catch{}}let m=await ue();if(F(m)){m.error=="item-ids-not-found"?(H(C),"data"in m&&Array.isArray(m.data)&&G(m.data)):H(`${m.error}`);return}await N(),window.location.href=m.url}catch(m){H(`${m}`)}}return vt("div",{className:`${t} flex flex-col`,ref:_a,children:[L&&vt("div",{className:"relative flex w-full justify-center flex-col gap-4",children:[U(Pe,{"data-bitsnap-checkout-slot":"skeleton",className:r("w-full h-32",g.className),style:g.style}),U(Pe,{"data-bitsnap-checkout-slot":"skeleton",className:r("w-full h-32",g.className),style:g.style})]}),!L&&(B==null||B.length==0)&&U("div",{className:"flex flex-col gap-4 p-4",children:U("p",{"data-bitsnap-checkout-slot":"emptyState",className:r(y.className),style:y.style,children:x})}),U("div",{"data-bitsnap-checkout-slot":"productList",className:r("max-h-[70vh] overflow-clip overflow-y-scroll",d.className),style:d.style,children:B!=null&&B.length>0&&U("ul",{className:"mt-5",children:B.map(m=>U(ut.Fragment,{children:m.details!=null&&vt("li",{className:"mb-3",children:[U(ca,{isNotAvailable:M.includes(m.productID),quantity:m.quantity,details:m.details,shouldUpdate:R=>{Ba(m.id,R).then().catch()}}),U("hr",{className:"h-1"})]})},m.id))})}),U("div",{className:"grow"}),Ot>0&&Gt!=null&&vt(bo,{children:[U("div",{"data-bitsnap-checkout-slot":"summary",className:r("mx-3 flex flex-col",i.className),style:i.style,children:vt("div",{className:"flex flex-row justify-between text-lg",children:[U("p",{"data-bitsnap-checkout-slot":"totalLabel",className:r("text-xl",w.className),style:w.style,children:p}),vt("div",{className:"flex flex-col items-end",children:[U("p",{"data-bitsnap-checkout-slot":"totalValue",className:r("font-medium",h.className),style:h.style,children:kt(Ot,Gt)}),La&&U("p",{"data-bitsnap-checkout-slot":"deliveryText",className:r("opacity-70 text-right text-base",u.className),style:u.style,children:s})]})]})}),be&&be?.length>1&&vt("div",{children:[U("h4",{"data-bitsnap-checkout-slot":"countryLabel",className:r("ml-3 text-sm",v.className),style:v.style,children:P}),U(oa,{id:Math.random().toString(),open:q,onToggle:()=>{de(!q)},onChange:m=>{l(m).then(()=>{Da().then().catch()})},selectedValue:_e??"",countries:be})]}),vt("div",{className:"mb-3 flex flex-col",children:[Yt&&B!=null&&B.length>0&&U("div",{"data-bitsnap-checkout-slot":"paymentButtons",className:r("w-full px-2",k.className),style:k.style,children:U(ke,{colorType:"white",style:{width:"100%"},items:B?.map(m=>({name:m.details?.name??"",id:m.productID,price:m.details?.pricing?.effectivePrice??m.details?.price??0,quantity:m.quantity,isDeliverable:m.details?.isDeliverable??!1,metadata:m.metadata}))})}),B!=null&&B.length>0&&U("div",{"data-bitsnap-checkout-slot":"paymentButtons",className:r("w-full px-2",k.className),style:k.style,children:U(Ne,{buttonSizeMode:"fill",buttonColor:"white",style:{width:"100%"},items:B?.map(m=>({name:m.details?.name??"",id:m.productID,price:m.details?.pricing?.effectivePrice??m.details?.price??0,quantity:m.quantity,isDeliverable:m.details?.isDeliverable??!1,metadata:m.metadata}))})}),U("button",{"data-bitsnap-checkout-slot":"checkoutButton",onClick:Oa,disabled:L||Zt||_e==null,className:r("px-3 py-2 my-2 mx-2 rounded-md disabled:opacity-40 disabled:cursor-not-allowed transition font-bold",S.className),style:S.style,children:Zt?U(K,{}):f}),z.length>0&&U("p",{"data-bitsnap-checkout-slot":"error",className:r("text-sm text-center",b.className),style:b.style,children:z})]})]})]})},da=uo;import{Fragment as vo,jsx as at,jsxs as ne}from"react/jsx-runtime";function ho({isVisible:t,shouldHide:e,locale:a}){let[o]=mo(),{boundaryClassName:c,boundaryStyle:d}=qt(),i=T("root"),w=T("overlay"),h=T("panel"),u=T("header"),v=T("title"),k=T("closeButton"),S=dt("cart");return at("div",{ref:o,"data-bitsnap-checkout":"root","data-bitsnap-checkout-slot":"root",className:r("bitsnap-react",c,i.className),style:{zIndex:999999,...d,...i.style},children:t&&ne(vo,{children:[at("div",{"data-bitsnap-checkout-slot":"overlay",className:r("fixed top-0 right-0 left-0 bottom-0 cursor-pointer z-10",w.className),style:w.style,onClick:e}),ne("div",{"data-bitsnap-checkout-slot":"panel",className:r("fixed z-20 top-0 right-0 bottom-0 w-full md:w-[350px] xl:w-[420px] flex flex-col",h.className),style:h.style,children:[ne("div",{"data-bitsnap-checkout-slot":"header",className:r("mx-3 mt-7 flex justify-between items-center",u.className),style:u.style,children:[at("h1",{"data-bitsnap-checkout-slot":"title",className:r("text-2xl font-medium",v.className),style:v.style,children:S}),at("button",{"data-bitsnap-checkout-slot":"closeButton",className:r("rounded-xl p-2 transition",k.className),style:k.style,onClick:e,children:ne("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-x",children:[at("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),at("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),at(da,{className:"grow",locale:a})]})]})})}var fo=t=>typeof window>"u"?null:go(at(Xe,{appearance:t.appearance,children:at(pa,{texts:t.texts,locale:t.locale,children:at(Dt,{locale:t.locale,children:at(ho,{...t})})})}),document.body),ua=fo;import{Fragment as ba,jsx as Ct,jsxs as Te}from"react/jsx-runtime";var wo=Z.object({id:Z.string(),isSubscription:Z.boolean().default(!1),quantity:Z.number(),metadata:Z.record(Z.string(),Z.string().optional()).optional()});function yo({projectID:t,locale:e,children:a,onVisibleChange:o,className:c,numberOfProductsInCartOptions:d,appearance:i,texts:w,analytics:h}){let u=ht(t,h,"cart");Ge(u);let{isCartVisible:v,showCart:k,hideCart:S,numberOfProductsInCart:y}=Ke();function b(p){document.querySelectorAll("iframe").forEach(P=>{P.contentWindow?.postMessage(p,"*")})}Ht(()=>{o?.(v),v&&ct({event:"viewCart"})},[v]),Ht(()=>{ye(t)},[t]),Ht(()=>{ve(e)},[e]),Ht(()=>{if(!("cart"in window)){let p=lt();if(p==null){console.warn("There is no project ID configured.");return}window.cart={buyProduct:async s=>{try{let P=Z.object({productID:Z.string(),email:Z.string().optional(),name:Z.string().optional(),country:Z.string().optional(),marketingAgreement:Z.boolean().optional(),locale:Z.string().optional()}).parse(s),f=xe(p);try{let n=await f.getProducts();F(n)==!1&&ct({event:"initiateCheckout",items:n.map(l=>({id:l.productID,name:l.details?.name??"",price:l.details?.price??0,quantity:l.quantity,currency:l.details?.currency??"PLN"}))})}catch{}let O=await f.justRedirectToPayment(P);console.log("result",O),F(O)==!1?window.location.href=O.url:alert("Nie uda\u0142o si\u0119 przekierowa\u0107 do p\u0142atno\u015Bci. Spr\xF3buj ponownie p\xF3\u017Aniej.")}catch(P){console.warn(P)}}}}},[]);async function g(p,s){let P=lt();if(P==null){console.warn("There is no project ID configured.");return}try{let f=wo.parse(s);if(f.isSubscription){await C(P,f);return}await xe(P).addProduct({productID:f.id,quantity:f.quantity,metadata:f.metadata}),b({id:p,type:"ADD_TO_CART",success:!0}),k()}catch(f){console.warn("cannot add item to cart",f)}}async function C(p,s){alert(`TODO, nie jest to jeszcze zrobione ${p} ${s.id} ${s.quantity}`)}function x(){"__cart_is_listening"in window||(window.__cart_is_listening=!0,window.addEventListener("message",p=>{if(typeof p.data.id<"u"&&typeof p.data.type<"u"){let{id:s,type:P}=p.data;switch(P){case"ADD_TO_CART".toString():g(s,p.data.payload).then().catch();break;default:break}}}))}return Ht(()=>{if(x(),typeof window<"u")try{let p=new URLSearchParams(window.location.search),s=p.get("ref")??p.get("utm-source");typeof localStorage<"u"&&s&&s.length>0&&localStorage.setItem("bitsnap-ref",s)}catch{return}},[]),Te(ba,{children:[Te("button",{onClick:()=>v?S():k(),style:{position:"relative"},className:["bitsnap-react",c??"rounded-full hover:bg-neutral-300 transition p-1"].join(" "),children:[a?Ct(ba,{children:a}):Te("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-shopping-cart",children:[Ct("circle",{cx:"8",cy:"21",r:"1"}),Ct("circle",{cx:"19",cy:"21",r:"1"}),Ct("path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12"})]}),d?.isVisible!=!1&&y>0&&Ct("div",{style:{position:"absolute",bottom:-5,right:-5,background:"black",color:"white",borderRadius:"50%",width:"22px",height:"22px",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"13px",fontWeight:600,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.25)",...d?.style},children:y})]}),Ct(Pt,{value:u,children:Ct(ua,{isVisible:v,locale:e,appearance:i,texts:w,shouldHide:()=>{S()}})})]})}var xo=yo;import ko from"@google-pay/button-react";import{useQuery as Co,useMutation as So}from"@tanstack/react-query";import{Fragment as To,jsx as Vt,jsxs as zo}from"react/jsx-runtime";function Po({items:t,style:e,buttonColor:a,buttonSizeMode:o,test:c}){let{getGooglePayConfiguration:d,completeGooglePayPayment:i,setCountry:w,setCouponCodeIfPossible:h,setDeliveryMethod:u,setEmail:v,setPostalCode:k,clearCart:S}=Rt(),y=Nt(),{data:b}=Co({queryKey:["get-google-pay-configuration",t.map(x=>x.id).join(",")],queryFn:()=>d({items:t.map(x=>({...x,id:void 0,productID:x.id}))})}),{mutateAsync:g,isPending:C}=So({mutationFn:i});return b==null||b.isAvailable!=!0?(console.log("google pay configuration is not available",b),null):zo(To,{children:[Vt(ko,{buttonSizeMode:o,buttonColor:a,style:e,existingPaymentMethodRequired:!0,onClick:()=>y.track("payment_method_selected",{gateway:"google_pay",method:"google_pay"}),environment:c===!0?"TEST":"PRODUCTION",onPaymentDataChanged:async x=>{ct({event:"initiateCheckout",items:t.map(s=>({id:s.id,name:s.name,price:s.price,quantity:s.quantity,currency:"PLN"}))}),console.log("payment data changed",x),x.shippingAddress?.postalCode!=null&&await k(x.shippingAddress?.postalCode),x.shippingAddress?.countryCode!=null&&await w(x.shippingAddress?.countryCode),x.shippingOptionData?.id!=null&&await u(x.shippingOptionData.id);let p=await d({items:[]});return console.log("PAYMENT DATA CHANGED CONFIG",p),p.isAvailable?{error:void 0,newShippingOptionParameters:p.config.shippingOptionParameters,newTransactionInfo:p.config.transactionInfo}:{error:void 0}},paymentRequest:b.config,onLoadPaymentData:async x=>{y.track("payment_submitted",{gateway:"google_pay",method:"google_pay"});try{let p=await g({paymentData:x});if(F(p)){console.log("apple pay error",p);return}p.isSuccess&&S(),p.redirectURL&&open(p.redirectURL,"_self")}catch(p){console.warn("error completing google pay payment",p)}}}),C?Vt(K,{}):null]})}function No(t){let e=ht(_t(),t.analytics,"cart");return Vt(Pt,{value:e,children:Vt(Dt,{children:Vt(Po,{...t})})})}var Ne=No;import{useReducer as ai,useRef as ri,useEffect as $t}from"react";import{useQuery as oi}from"@tanstack/react-query";import{Settings as ii}from"lucide-react";import{Fragment as Eo,jsx as ze,jsxs as Io}from"react/jsx-runtime";var E={title:null,description:null,managingDescription:"Zarz\u0105dzaj rodzajami powiadomie\u0144 i sposobem dostarczania.",formTitle:"Podaj Email aby zapisa\u0107 si\u0119\xA0do powiadomie\u0144",formEmailLabel:"Email",formPhoneLabel:"Numer telefonu",formPhoneOptional:"(opcjonalnie)",formEmailPlaceholder:"np. mail@gmail...",formPhonePlaceholder:"np. 663...",formSubmitButton:"Zapisz si\u0119",formSuccessMessage:"Zapisa\u0142e\u015B si\u0119 do powiadomie\u0144.",agreementText:Io(Eo,{children:[ze("span",{style:{color:"red"},children:"*"}),"Wyra\u017Cam zgod\u0119 na przetwarzanie moich danych w celach marketingowych zgodnie z"," ",ze("a",{href:"/regulations/polityka-prywatnosci",target:"_blank",className:"cursor-alias font-bold hover:font-medium",children:"regulaminem"})," ",ze("span",{className:"text-xs font-light",children:"(zgod\u0119 mo\u017Cna w ka\u017Cdej chwili wycofa\u0107)"})]}),qrCodeTitle:"lub zainstaluj aplikacj\u0119 mobiln\u0105",qrCodeSubtitle:"Aplikacja mobilna",qrCodeScanText:"zeskanuj kod QR",groupsNoSelectionWarning:"Je\u015Bli \u017Cadna z grup nie jest zaznaczona, nie otrzymasz \u017Cadnych powiadomie\u0144.",groupsSelectAllButton:"Zaznacz wszystkie",groupsUpdateButton:"Aktualizuj",groupsUpdateSuccess:"Zaktualizowano pomy\u015Blnie.",groupsTitle:"Zarz\u0105dzaj grupami z kt\xF3rych chcesz otrzymywa\u0107 powiadomienia",manageDataTitle:"Ustawienia powiadomie\u0144",manageDataDescription:"W jaki spos\xF3b chcesz otrzymywa\u0107 powiadomienia?",manageDataUnsubscribeButton:"Odsubskrybuj",manageDataUpdatedMessage:"Zaktualizowano",manageDataUnsubscribeDescription:"Wypisz mnie z wszystkich powiadomie\u0144 i grup.",loginEmailLabel:"Email",loginEmailPlaceholder:"Wprowad\u017A sw\xF3j email",loginSendCodeButton:"Wy\u015Blij kod weryfikacyjny",loginSendingButton:"Wysy\u0142anie...",loginCodeLabel:"Wprowad\u017A kod weryfikacyjny",loginCodeSentMessage:"Wys\u0142ali\u015Bmy kod weryfikacyjny na adres",loginChangeEmailButton:"Popraw email",loginResendCodeButton:"Wy\u015Blij kod ponownie",loginInvalidEmailError:"Wprowad\u017A prawid\u0142owy adres email",loginSlugRequiredError:"Wymagany jest identyfikator projektu",loginInvalidCodeError:"Nieprawid\u0142owy kod weryfikacyjny",loginVerificationFailedError:"Weryfikacja nie powiod\u0142a si\u0119. Sprawd\u017A sw\xF3j kod.",loginSendEmailError:"Nie uda\u0142o si\u0119 wys\u0142a\u0107 kodu weryfikacyjnego",loginVerifyCodeError:"Nie uda\u0142o si\u0119 zweryfikowa\u0107 kodu",loginResendEmailError:"Nie uda\u0142o si\u0119 ponownie wys\u0142a\u0107 kodu weryfikacyjnego",loginTitle:"Wpisz email aby zarz\u0105dza\u0107 powiadomieniami",loginDescription:"Dostaniesz kod weryfikacyjny na email.",loginIHaveCode:"Mam ju\u017C kod"};import{LogOutIcon as Ao}from"lucide-react";import{Fragment as ma,jsx as St,jsxs as se}from"react/jsx-runtime";function ga({projectName:t,projectLogo:e,projectLogoDark:a,description:o,className:c,onLogout:d}){return se(ma,{children:[e!=null||t!=null&&se("h2",{className:r("flex max-w-44 items-center gap-3 text-lg font-medium text-black sm:max-w-none md:text-xl lg:text-2xl xl:text-3xl dark:text-neutral-100",c?.headerTitle),children:[e!=null&&se(ma,{children:[St("img",{src:e,alt:"",className:r("h-12 w-auto dark:hidden",c?.headerLogo)}),St("img",{src:a??e,alt:"",className:r("hidden h-12 w-auto dark:inline",c?.headerLogo)})]}),St("span",{children:t})]}),se("div",{className:"flex items-center gap-2",children:[o&&St("p",{className:r("mt-4 font-medium text-left",c?.headerDescription),children:o}),St("div",{className:"grow"}),d&&St(D,{variant:"ghost",size:"icon-sm",onClick:d,children:St(Ao,{className:"h-5 w-5"})})]})]})}import{useAutoAnimate as ya}from"@formkit/auto-animate/react";import{CheckCircleIcon as Do,TriangleAlertIcon as _o}from"lucide-react";import*as bt from"@radix-ui/react-popover";import{jsx as ce}from"react/jsx-runtime";function ha({...t}){return ce(bt.Root,{"data-slot":"popover",...t})}function fa({...t}){return ce(bt.Trigger,{"data-slot":"popover-trigger",...t})}function va({className:t,align:e="center",sideOffset:a=4,...o}){return ce(bt.Portal,{children:ce(bt.Content,{"data-slot":"popover-content",align:e,sideOffset:a,className:r("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...o})})}import{ClockIcon as Ro}from"lucide-react";import{jsx as mt,jsxs as wt}from"react/jsx-runtime";function wa({regularity:t}){let e="";switch(t){case"rarely":e="rzadko";break;case"often":e="cz\u0119sto";break;case"very_often":e="codzienne";break}return wt(ha,{children:[mt(fa,{onClick:a=>{a.stopPropagation()},children:wt("button",{type:"button",className:"flex w-[30%] cursor-help flex-col items-center justify-center text-xs md:w-[25%] xl:w-[20%]",children:[mt(Ro,{size:12}),mt("span",{children:e})]})}),mt(va,{className:"w-80",children:wt("div",{className:"grid gap-4",children:[wt("div",{className:"space-y-2",children:[mt("h4",{className:"leading-none font-medium",children:"Co to oznacza?"}),wt("ul",{className:"list-inside list-disc text-sm",children:[wt("li",{children:[mt("span",{className:"font-semibold",children:"Rzadko"})," \u2013 powiadomienia b\u0119d\u0105 wysy\u0142ane maksymalnie kilka razy w miesi\u0105cu."]}),wt("li",{children:[mt("span",{className:"font-semibold",children:"Cz\u0119sto"})," \u2013 powiadomienia mog\u0119 by\u0107 wysy\u0142ane kilka razy w tygodniu."]}),wt("li",{children:[mt("span",{className:"font-semibold",children:"Codzienne"})," \u2013 powiadomienia b\u0119d\u0105 wysy\u0142ane nawet codziennie."]})]})]}),mt("div",{className:"grid gap-2"})]})})]})}import{Fragment as Lo,jsx as Q,jsxs as it}from"react/jsx-runtime";function le({groups:t=[],isManaging:e,onToggle:a,onCheckAll:o,onUpdate:c,isUpdating:d,wasChanged:i,isUserGroupsUpdated:w,className:h,texts:u}){let[v]=ya(),[k]=ya(),S=t.filter(g=>g.isOn===!1).length>0,y=t.filter(g=>g.isOn===!1).length>0;if(t.length<=1&&e!=!0)return null;let b=it("div",{ref:v,className:r("my-5 flex flex-col gap-3",h?.groupsList),children:[t.map(g=>it("div",{id:g.id,role:"button",className:r(g.isOn?"bg-neutral-50 hover:bg-transparent shadow-sm border-transparent dark:bg-neutral-800":"border-neutral-200 hover:bg-neutral-50 dark:hover:border-neutral-800 shadow-sm dark:border-neutral-800","active:bg-beige-300 flex w-full cursor-pointer items-center gap-3 rounded-xl border px-3 py-2 transition active:dark:bg-neutral-900",h?.groupItem),onClick:C=>{C.target instanceof HTMLButtonElement||a(g.id)},children:[Q(At,{checked:g.isOn,className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-700",onCheckedChange:()=>{a(g.id)}}),it("div",{className:"flex flex-col items-start justify-start",children:[Q("p",{className:"font-medium text-sm",children:g.name}),g.description&&Q("p",{className:"text-xs font-light",children:g.description})]}),Q("div",{className:"grow"}),g.howOften&&Q(wa,{regularity:g.howOften})]},g.id)),it("div",{className:"flex gap-2",children:[e===!0&&it(Lo,{children:[it("div",{ref:k,className:"flex flex-col items-start justify-start",children:[i&&it(D,{variant:"default",size:"sm",className:"relative",disabled:d,onClick:c,children:[u?.groupsUpdateButton??E.groupsUpdateButton,d&&Q("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:Q(K,{})})]}),w&&it("p",{className:"mt-3 flex items-center gap-2 text-sm text-green-500",children:[Q(Do,{color:"var(--color-green-500",size:16})," ",u?.groupsUpdateSuccess??E.groupsUpdateSuccess]})]}),Q("div",{className:"grow"})]}),y&&Q("div",{className:"flex justify-start",children:Q(D,{className:"cursor-pointer dark:bg-neutral-700",onClick:o,size:"sm",variant:"secondary",type:"button",children:u?.groupsSelectAllButton??E.groupsSelectAllButton})})]}),S&&it("div",{className:"flex text-left gap-2 text-xs text-yellow-500",children:[Q(_o,{color:"orange",size:16}),u?.groupsNoSelectionWarning??E.groupsNoSelectionWarning]})]});return e==!0?it(zt,{className:"mt-5 text-left",children:[Q(Et,{children:Q(ft,{children:u?.groupsTitle??E.groupsTitle})}),Q(It,{children:b})]}):b}import{jsx as yt,jsxs as Wt}from"react/jsx-runtime";function xa({showQRCode:t=!0,isManaging:e,className:a,texts:o}){let c=typeof window<"u",d=c?!!window.matchMedia?.("(prefers-color-scheme: dark)").matches:!1;function i(w){return w?window.location.href:""}return t?Wt(zt,{className:r("bg-beige-100 rounded-xl p-4 dark:bg-neutral-700",a?.qrCodeSection),children:[yt(Et,{children:Wt(ft,{className:r("mb-3 text-base font-medium lg:text-lg",a?.qrCodeTitle),children:[o?.qrCodeSubtitle??E.qrCodeSubtitle," "+(o?.qrCodeTitle??E.qrCodeTitle)]})}),Wt(It,{className:"flex flex-col items-center gap-2",children:[Wt("div",{className:"mt-1.5 mb-3 flex items-center gap-x-2",children:[yt("a",{href:"https://apps.apple.com/us/app/bitsnap/id6741902807",target:"_blank",className:"max-w-28 flex-1 basis-1/2 lg:max-w-36",children:yt("img",{className:"h-auto w-full",src:Tt+"/app-store-logo.png",alt:"Download on App Store"})}),yt("a",{href:"https://play.google.com/store/apps/details?id=com.bitsnap.Bitsnap&pli=1",target:"_blank",className:"max-w-28 flex-1 basis-1/2 lg:max-w-36",children:yt("img",{className:"h-auto w-full",src:Tt+"/google-play-logo.png",alt:"Get in on Google Play"})})]}),c&&yt("div",{className:"flex items-center justify-center",children:Wt("div",{className:r("flex min-w-[40%] flex-col items-center gap-2 rounded-xl bg-white p-2 dark:bg-neutral-900",a?.qrCodeContainer),children:[yt("img",{className:"mt-3 w-[80%] p-1 pt-3",src:Tt+`/api/qr-gen?url=${i(c)}&bgColor=${d?"171717":"F6F4F0"}&textColor=${d?"ffffff":"000000"}&margin=0`}),yt("p",{className:"text-xs md:text-sm",children:o?.qrCodeScanText??E.qrCodeScanText})]})})]})]}):null}import{useState as Kt}from"react";import{isValidPhoneNumber as jo}from"react-phone-number-input";import{useAutoAnimate as Uo}from"@formkit/auto-animate/react";import{Label as ka}from"@radix-ui/react-label";import{CheckCircleIcon as Bo,CircleAlertIcon as Oo,TriangleAlertIcon as Go}from"lucide-react";import{useState as Ee}from"react";import{jsx as J,jsxs as gt}from"react/jsx-runtime";function Ca({submit:t,isLoading:e,errMsg:a,emailLack:o,warnMsg:c,isSubmited:d,agreementLack:i,showPhoneInput:w=!1,agreementText:h,className:u,texts:v}){let[k,S]=Ee(""),[y,b]=Ee(""),[g,C]=Ee(!1),[x]=Uo();function p(s){s.preventDefault(),t(k,y,g)}return gt("form",{ref:x,onSubmit:p,className:r("flex flex-col gap-3 text-left",u?.formContainer),children:[gt("div",{className:"flex flex-col gap-1 text-left",children:[J(ka,{className:"text-sm",htmlFor:"bts-notifications-form-email",children:v?.formEmailLabel??E.formEmailLabel}),J(jt,{value:k,onChange:s=>{S(s.currentTarget.value)},id:"bts-notifications-form-email",className:r(o===!0?"border-red-400":""),type:"email",placeholder:v?.formEmailPlaceholder??E.formEmailPlaceholder})]}),w&>("div",{className:"flex flex-col gap-1 text-left",children:[gt(ka,{className:"text-sm",htmlFor:"bts-notifications-form-phone",children:[v?.formPhoneLabel??E.formPhoneLabel," ",J("span",{className:"text-neutral-500 dark:text-neutral-500",children:v?.formPhoneOptional??E.formPhoneOptional})]}),J(jt,{value:y,onChange:s=>{b(s.currentTarget.value)},id:"bts-notifications-form-phone",className:"",type:"tel",autoComplete:"tel",autoCorrect:"off",placeholder:v?.formPhonePlaceholder??E.formPhonePlaceholder})]}),gt("div",{className:"flex items-start gap-x-1.5",children:[J("input",{className:"cursor-pointer",id:"bts-notifications-form-marketing-consent",type:"checkbox",checked:g,onChange:()=>{C(!g)}}),J("label",{htmlFor:"bts-notifications-form-marketing-consent",className:r("cursor-pointer text-xs leading-4 transition-colors md:text-sm md:leading-4",i===!0?"text-yellow-700":""),children:h})]}),a.length>0&>("p",{className:"mb-3 flex items-center gap-1 text-sm text-red-400",children:[J(Go,{color:"#ff6467",size:16})," ",a]}),c.length>0&>("p",{className:"mb-3 flex items-center gap-1 text-sm text-amber-400",children:[J(Oo,{color:"var(--color-amber-400)",size:16})," ",c]}),d==!1&&J("div",{className:"flex justify-start",children:gt(D,{variant:"default",disabled:e,className:r(e?"cursor-not-allowed text-transparent":"","relative"),children:[v?.formSubmitButton??E.formSubmitButton,e&&J("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:J(K,{})})]})}),d&>("div",{className:"flex items-center gap-3 text-sm text-green-400",children:[J(Bo,{size:16})," ",v?.formSuccessMessage??E.formSuccessMessage]})]})}import{jsx as Ie,jsxs as qo}from"react/jsx-runtime";var Mo=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;function Sa({groups:t,onToggle:e,onCheckAll:a,slug:o,showPhoneInput:c=!1,agreementText:d,className:i,texts:w,isUpdating:h,wasChanged:u,onSuccess:v}){let[k,S]=Kt(""),[y,b]=Kt(""),[g,C]=Kt(!1),[x,p]=Kt(!1),[s,P]=Kt(!1),{mutateAsync:f,isPending:O}=st(et.notifications.createNotificationUser);function n(z){return z==null?!1:jo(z,"PL")}async function l(z,H,M){if(S(""),b(""),P(!1),C(!1),p(!1),!M){p(!0),S("Zgoda w tym przypadku jest wymagana.");return}if(Mo.test(z)===!1){S("Email jest nieprawid\u0142owy."),P(!0);return}H.length>0&&n(H)===!1&&b("Numer telefonu mo\u017Ce by\u0107 nieprawid\u0142owy. Zapisali\u015Bmy go ale je\u015Bli jest nieprawid\u0142owy to wpisz jeszcze raz i kliknij przycisk.");try{let G=await f({slug:o,email:z,phone:H,groups:t.filter(q=>q.isOn==!0).map(q=>q.id),mobileNotificationEnabled:!0,emailNotificationEnabled:!0,smsNotificationEnabled:!0});if(G.result.case==="success"){C(!0),setTimeout(()=>{v?.(!1,G.userId,G.accessToken)},1e3);return}else{C(!0);let q=G.result.value;if(q!=null){if(q==32){v?.(!0,void 0,void 0);return}console.log(`Code error: ${ge[q]}`),S("Wyst\u0105pi\u0142 b\u0142\u0105d: "+ge[q]);return}return}}catch(G){S("Wyst\u0105pi\u0142 b\u0142\u0105d podczas zapisywania. Spr\xF3buj ponownie."),console.log(`Error: ${G}`)}}let N=w?.formTitle??E.formTitle;return qo("div",{className:r("bg-beige-100 rounded-xl p-4 dark:bg-neutral-700",i?.formSection),children:[N.length>0&&Ie("h3",{className:r("mb-3 text-base font-medium lg:text-lg",i?.formTitle),children:N}),Ie(le,{groups:t,isManaging:!1,onToggle:e??(()=>{}),onCheckAll:a??(()=>{}),isUpdating:h??!1,wasChanged:u??!1,isUserGroupsUpdated:!1,className:i,texts:w}),Ie(Ca,{errMsg:k,emailLack:s,warnMsg:y,submit:l,isLoading:O,isSubmited:g,agreementLack:x,showPhoneInput:c,agreementText:d??w?.agreementText??E.agreementText,className:i,texts:w})]})}import{useEffect as Ko,useState as Qt}from"react";import{Label as Ae}from"@radix-ui/react-label";import{MessageCircleWarningIcon as Qo}from"lucide-react";import{useDebouncedCallback as $o}from"use-debounce";import{TriangleAlertIcon as Fo,XIcon as Ho}from"lucide-react";import{createPortal as Vo}from"react-dom";import{useEffect as Pa,useState as Wo}from"react";import{jsx as rt,jsxs as Lt}from"react/jsx-runtime";function Na({open:t,onOpenChange:e,onConfirm:a,isDeleting:o=!1}){let[c,d]=Wo(!1);if(Pa(()=>(d(!0),()=>d(!1)),[]),Pa(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t]),!c||!t)return null;let i=h=>{h.target===h.currentTarget&&e(!1)},w=()=>{a()};return Vo(rt("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/50 p-4",onClick:i,children:Lt("div",{className:r("relative w-full max-w-md rounded-2xl bg-white p-6 shadow-lg","dark:bg-neutral-800","animate-in fade-in-0 zoom-in-95 duration-200"),onClick:h=>h.stopPropagation(),children:[Lt("button",{onClick:()=>e(!1),className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none dark:ring-offset-neutral-950 dark:focus:ring-neutral-300",disabled:o,children:[rt(Ho,{className:"h-4 w-4"}),rt("span",{className:"sr-only",children:"Zamknij"})]}),Lt("div",{className:"flex flex-col gap-4",children:[Lt("div",{className:"flex items-start gap-3",children:[rt("div",{className:"flex-shrink-0",children:rt(Fo,{className:"h-6 w-6 text-amber-500","aria-hidden":"true"})}),rt("div",{className:"flex-1",children:rt("h2",{className:"text-lg font-semibold text-black dark:text-neutral-100",children:"Czy na pewno chcesz si\u0119 wypisa\u0107?"})})]}),rt("p",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:"Klikni\u0119cie tego przycisku spowoduje wypisanie z wszelkich powiadomie\u0144 i grup, kt\xF3re zapisa\u0142e\u015B."}),Lt("div",{className:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",children:[rt(D,{type:"button",variant:"ghost",onClick:()=>e(!1),disabled:o,className:"sm:min-w-[100px]",children:"Anuluj"}),Lt(D,{type:"button",variant:"destructive",onClick:w,disabled:o,className:r(o&&"cursor-not-allowed text-transparent","relative sm:min-w-[100px]"),children:["Usu\u0144",o&&rt("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:rt("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"})})]})]})]})]})}),document.body)}import{useAutoAnimate as Ta}from"@formkit/auto-animate/react";import{Fragment as Zo,jsx as _,jsxs as ot}from"react/jsx-runtime";function za({accessToken:t,slug:e,userID:a,className:o,texts:c}){let[d]=Ta(),[i]=Ta(),{mutateAsync:w,isPending:h}=st(et.notifications.deleteNotificationUser),{mutateAsync:u,isPending:v}=st(et.notifications.updateNotificationUser),{data:k,isFetching:S}=te(et.notifications.getNotificationUserSettings,{userId:a,slug:e,accessToken:t}),[y,b]=Qt(!1),[g,C]=Qt(!1),[x,p]=Qt(!1),[s,P]=Qt(!1),[f,O]=Qt(!1),n=k?.result.case==="success"?k?.result?.value:void 0;function l(){O(!0)}async function N(){await w({accessToken:t,slug:e,userId:a}),O(!1)}async function z(){await u({accessToken:t,slug:e,notificationUserId:a,mobileNotificationEnabled:s,emailNotificationEnabled:y,smsNotificationEnabled:g}),p(!0),setTimeout(()=>{p(!1)},3e3)}let H=$o(G=>{z()},300);Ko(()=>{let G=k?.result.case==="success"?k?.result?.value:void 0;b(G?.emailNotificationEnabled??!1),C(G?.smsNotificationEnabled??!1),P(G?.mobileNotificationEnabled??!1)},[k]);function M(G,q){G==="email"&&b(q),G==="phone"&&C(q),G==="push"&&P(q),H(!0)}return ot("div",{className:r("bg-beige-100 rounded-xl p-4 dark:bg-neutral-700",o?.manageDataSection),children:[_("div",{className:"flex justify-start",children:_("h3",{className:r("mb-3 text-base font-medium lg:text-lg",o?.manageDataTitle),children:c?.manageDataTitle??E.manageDataTitle})}),S?_(Fe,{className:"h-64 w-full"}):ot(zt,{ref:i,className:r(v&&"relative"),children:[_(Et,{children:_(ft,{children:_("p",{className:"text-sm text-left",children:c?.manageDataDescription??E.manageDataDescription})})}),ot(It,{ref:d,children:[_("div",{className:r(v&&"opacity-50 pointer-events-none","flex flex-col gap-2"),children:ot("div",{className:"flex flex-col items-start gap-5 gap-x-2",children:[n?.emailNotificationAvailable&&ot("div",{className:"flex items-center gap-3",children:[_(At,{id:"email-enabled",className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-600",checked:y,onCheckedChange:()=>{M("email",!y)}}),_(Ae,{htmlFor:"email-enabled",className:"text-sm",children:"Email"})]}),n?.smsNotificationAvailable&&ot("div",{className:"flex items-center gap-3",children:[_(At,{id:"sms-enabled",className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-600",checked:g,onCheckedChange:()=>{M("phone",!g)}}),_(Ae,{htmlFor:"sms-enabled",className:"text-sm",children:"SMS"})]}),n?.mobileNotificationAvailable&&ot(Zo,{children:[ot("div",{className:"flex items-center gap-3",children:[_(At,{id:"push-enabled",className:"data-[state=checked]:bg-blue-500 dark:data-[state=unchecked]:bg-neutral-600",checked:s,onCheckedChange:()=>{M("push",!s)}}),_(Ae,{htmlFor:"push-enabled",className:"text-sm",children:"Powiadomienia na telefon"})]}),n?.hasUserInstalledApp===!1&&ot("div",{className:"flex items-center gap-3",children:[_(Qo,{color:"var(--color-amber-500)",size:26}),_("p",{className:"text-xs text-amber-500",children:"Wygl\u0105da na to, \u017Ce nie masz zainstalowanej aplikacji mobilnej. Zainstaluj i wyra\u017A zgod\u0119 na otrzymywanie powiadomie\u0144 na telefon."})]})]})]})}),ot("div",{className:"mt-5 flex flex-col gap-2 text-left",children:[_("hr",{}),x&&_("p",{className:"text-xs text-green-500",children:c?.manageDataUpdatedMessage??E.manageDataUpdatedMessage}),_("div",{className:"flex items-center gap-x-2",children:ot(D,{size:"sm",variant:"link",className:r("pl-0 ml-0",h&&"cursor-not-allowed"),onClick:l,children:[c?.manageDataUnsubscribeButton??E.manageDataUnsubscribeButton,h&&_("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:_(K,{})})]})})]})]}),v&&_("div",{className:"bg-black/30 absolute inset-0 rounded-xl",children:_("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:_(K,{})})})]}),_(Na,{open:f,onOpenChange:O,onConfirm:N,isDeleting:h})]})}import{useState as pe}from"react";import{ArrowLeft as ti}from"lucide-react";import{useAutoAnimate as Aa}from"@formkit/auto-animate/react";import*as X from"@radix-ui/react-dialog";import{XIcon as Xo}from"lucide-react";import{jsx as Ut,jsxs as Re}from"react/jsx-runtime";function Ea({...t}){return Ut(X.Root,{"data-slot":"dialog",...t})}function Yo({...t}){return Ut(X.Portal,{"data-slot":"dialog-portal",...t})}function Jo({className:t,...e}){return Ut(X.Overlay,{"data-slot":"dialog-overlay",className:r("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...e})}function Ia({className:t,children:e,showCloseButton:a=!0,...o}){return Re(Yo,{"data-slot":"dialog-portal",children:[Ut(Jo,{}),Re(X.Content,{"data-slot":"dialog-content",className:r("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...o,children:[e,a&&Re(X.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[Ut(Xo,{}),Ut("span",{className:"sr-only",children:"Close"})]})]})]})}import{Fragment as ei,jsx as A,jsxs as nt}from"react/jsx-runtime";function Ra({slug:t,onSuccess:e,onError:a,className:o,isOpen:c,onClose:d,texts:i}){let[w]=Aa(),[h]=Aa(),[u,v]=pe(""),[k,S]=pe(""),[y,b]=pe(!1),[g,C]=pe(null),{mutateAsync:x,isPending:p}=st(et.notifications.verifyUserEmail),s=async n=>{if(n.preventDefault(),C(null),!u||!u.includes("@")){C(i.loginInvalidEmailError??"");return}try{await x({email:u,slug:t}),b(!0)}catch(l){let N=l instanceof Error?l:new Error(i.loginSendEmailError);C(N.message),a?.(N)}},P=async n=>{if(S(n),C(null),n.length===6)try{let l=await x({email:void 0,code:n,slug:t});l.ok&&l.accessToken?e?.(l.userId,l.accessToken):(C(i.loginVerificationFailedError??""),a?.(new Error(i.loginVerificationFailedError)))}catch(l){let N=l instanceof Error?l:new Error(i.loginVerifyCodeError);if(N.message.includes("Invalid code")){C(i.loginInvalidCodeError??N.message),S("");return}C(N.message),a?.(N),S("")}},f=async()=>{if(S(""),C(null),!u||!t){C(i.loginSlugRequiredError??"");return}try{await x({email:u,slug:t})}catch(n){let l=n instanceof Error?n:new Error(i.loginResendEmailError);C(l.message),a?.(l)}},O=()=>{b(!1),S(""),C(null)};return A(Ea,{open:c,onOpenChange:d,children:A(Ia,{className:"sm:max-w-[425px] min-h-[250px]",children:nt("div",{className:"flex flex-col min-h-[250px] h-full",children:[nt("div",{ref:h,className:"flex items-start gap-2 mb-2",children:[y&&A(D,{variant:"ghost",size:"icon-sm",onClick:()=>{b(!1)},children:A(ti,{className:"h-5 w-5"})}),A("div",{children:A(ft,{children:y?i.loginCodeLabel??"":i.loginTitle??""})})]}),A(je,{className:"mb-4",children:y?nt(ei,{children:[i.loginCodeSentMessage??""," ",u]}):i.loginDescription??""}),A("div",{className:"flex-1 flex flex-col",children:y?nt("form",{onSubmit:n=>n.preventDefault(),className:"flex flex-col flex-1",children:[nt("div",{className:"space-y-2",children:[A(fe,{children:i.loginCodeLabel??""}),A(Me,{maxLength:6,value:k,onChange:P,disabled:p,children:nt(qe,{children:[A(xt,{index:0}),A(xt,{index:1}),A(xt,{index:2}),A(xt,{index:3}),A(xt,{index:4}),A(xt,{index:5})]})}),p&&A(K,{})]}),g&&A("div",{className:"text-sm text-destructive mt-2 mb-1",role:"alert",children:g}),A("div",{className:"grow"}),nt("div",{className:"flex flex-col items-start gap-2 pt-2",children:[u.length>0&&A(D,{variant:"link",size:"sm",onClick:f,disabled:p,className:"flex-1 ml-0 pl-0",children:i.loginResendCodeButton??""}),A(D,{variant:"link",size:"sm",onClick:O,disabled:p,className:"flex-1 ml-0 pl-0",children:i.loginChangeEmailButton??""})]})]}):nt("form",{onSubmit:s,className:"flex flex-col flex-1",children:[nt("div",{className:"space-y-2",children:[A(fe,{htmlFor:"email",children:i.loginEmailLabel??""}),A(jt,{id:"email",type:"email",placeholder:i.loginEmailPlaceholder??"",value:u,onChange:n=>v(n.target.value),required:!0,disabled:p,"aria-invalid":g?"true":"false"})]}),g&&A("div",{className:"text-sm text-destructive mt-2 mb-1",role:"alert",children:g}),A("div",{className:"grow"}),nt("div",{className:"flex flex-col items-start gap-0 pt-2",children:[A(D,{type:"submit",size:"sm",disabled:p,children:p?i.loginSendingButton??"":i.loginSendCodeButton??""}),A(D,{type:"button",variant:"link",className:"ml-0 pl-0",size:"sm",onClick:()=>{b(!0)},children:i.loginIHaveCode??""})]})]})})]})})})}import{useAutoAnimate as ni}from"@formkit/auto-animate/react";import{jsx as W,jsxs as De}from"react/jsx-runtime";function si(t,e){switch(e.type){case"SET_IS_LOGGED_IN":return{...t,isLoggedIn:e.value};case"SET_USER_ID":return{...t,userID:e.value};case"SET_LOADING":return{...t,isLoading:e.value};case"SET_PUBLIC_GROUPS":return{...t,groupsProvided:e.value,groups:e.value!=null&&e.value.length>0?t.groups.filter(a=>e.value?.find(o=>o.id===a.id)!=null):t.groups};case"SET_GROUPS":{let a=t.isLoggedIn==!1||t.groupsProvided!=null,o=e.value.map(c=>t.isLoggedIn==!0?c:{...c,isOn:t.groupsProvided?.find(d=>d.id===c.id)?.isOn??a});return{...t,groups:o}}case"TOGGLE_GROUP":{let a=t.groups.map(o=>o.id===e.groupID?{...o,isOn:!o.isOn}:o);return{...t,wasChanged:!0,groups:a}}case"CHECK_ALL_GROUPS":{let a=t.groups.map(o=>({...o,isOn:!0}));return{...t,groups:a,wasChanged:!0}}case"SET_WAS_CHANGED":return{...t,wasChanged:e.value};case"SET_IS_USER_GROUPS_UPDATED":return{...t,isUserGroupsUpdated:e.value};case"RESET_UPDATE_STATE":return{...t,wasChanged:!1,isUserGroupsUpdated:!0};case"SHOW_SETTINGS":return{...t,showSettings:!0};case"HIDE_SETTINGS":return{...t,showSettings:!1};default:return t}}function ci({slug:t,userID:e,productID:a,projectID:o,analytics:c,projectName:d,projectLogo:i,projectLogoDark:w,groups:h,isManaging:u=!1,texts:v,showQRCode:k=!1,showPhoneInput:S=!1,hiddenGroupIds:y=[],className:b}){let[g]=ni(),C=ht(o??_t(),c),x=t??lt()??(typeof window<"u"?window.location.hostname:""),{mutateAsync:p,isPending:s}=st(et.notifications.updateUserGroups),{data:P,refetch:f}=oi({queryKey:["notifications_accessToken"],queryFn:()=>{if(typeof window<"u")return{accessToken:localStorage.getItem("notifications_accessToken")??void 0,userID:localStorage.getItem("notifications_userID")??void 0}}}),{data:O,isPending:n,refetch:l}=te(et.notifications.getUserGroups,{slug:x,accessToken:P?.accessToken}),[N,z]=ai(si,{isLoading:n,isUserGroupsUpdated:!1,wasChanged:!1,groupsProvided:h,groups:[],showSettings:P!=null&&u==!0,isLoggedIn:P!=null,userID:void 0});$t(()=>{z({type:"SET_LOADING",value:s||n})},[s,n]),$t(()=>{z({type:"SET_IS_LOGGED_IN",value:P?.accessToken!=null}),z({type:"SET_USER_ID",value:P?.userID}),P?.accessToken!=null&&u==!0&&z({type:"SHOW_SETTINGS"})},[P,u]),$t(()=>{if(O==null)return;let L=O.groups.map(j=>{let $="rarely";switch(j.howOften){case 0:$="rarely";break;case 1:$="often";break;case 2:$="veryOften";break}return{id:j.id,name:j.name,description:j.description,howOften:$,isOn:j.isOn??void 0}});z({type:"SET_GROUPS",value:L})},[O,n,h]);let H=ri(null);$t(()=>{let L=h?.map(j=>(j.id.startsWith("group_")||(j.id=`group_${j.id}`),j));z({type:"SET_PUBLIC_GROUPS",value:L})},[h]);let M={...E,...v};async function G(){await p({accessToken:P?.accessToken,slug:x,userId:e,groupIds:N.groups.filter(L=>L.isOn===!0).map(L=>L.id)}),z({type:"RESET_UPDATE_STATE"}),H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{z({type:"SET_IS_USER_GROUPS_UPDATED",value:!1})},2e3)}function q(L){z({type:"TOGGLE_GROUP",groupID:L})}function de(){z({type:"CHECK_ALL_GROUPS"})}function ue(){z({type:"SHOW_SETTINGS"})}function Zt(){z({type:"HIDE_SETTINGS"})}function Xt(){localStorage.removeItem("notifications_accessToken"),localStorage.removeItem("notifications_userID"),f(),z({type:"SET_USER_ID",value:void 0}),z({type:"SET_IS_LOGGED_IN",value:!1}),z({type:"HIDE_SETTINGS"})}async function Yt(L,j){typeof window<"u"&&(localStorage.setItem("notifications_accessToken",j),L!=null&&localStorage.setItem("notifications_userID",L)),z({type:"SET_USER_ID",value:L});try{await f(),l().then().catch().finally(()=>{u==!0&&z({type:"SHOW_SETTINGS"})})}catch($){console.log(`Error: ${$}`)}}$t(()=>()=>{H.current&&clearTimeout(H.current)},[]);let Bt=u==!0&&N.userID!=null&&P?.accessToken!=null;return De("main",{className:r("bitsnap-react relative",b?.container),children:[M.title!=null&&W("h1",{className:"text-2xl font-semibold text-black md:text-3xl lg:text-4xl xl:text-5xl dark:text-neutral-100",children:M.title}),!N.showSettings&&u&&W(D,{onClick:ue,variant:"outline",size:"icon",className:"absolute bottom-6 right-6 z-50 h-12 w-12 rounded-full shadow-lg hover:shadow-xl md:bottom-8 md:right-8","aria-label":"Settings",children:W(ii,{className:"h-5 w-5"})}),W("div",{className:r("md:pt8 relative z-0 mt-6 overflow-hidden rounded-2xl bg-white px-3 pt-6 pb-3 md:px-5 md:pb-5 dark:bg-neutral-800",b?.header),children:N.showSettings?W("div",{className:"space-y-6",children:N.isLoggedIn&&De("div",{className:r("grid grid-cols-1 gap-3 lg:gap-6",Bt?"md:grid-cols-2":""),children:[De("div",{className:b?.groupsContainer,children:[W(ga,{projectName:d,projectLogo:i,projectLogoDark:w,description:M.managingDescription,className:b,onLogout:Xt}),n&&W("div",{className:"flex justify-center items-center py-8",children:W(K,{})}),W(le,{groups:N.groups,hiddenGroupIds:y,isManaging:u,onToggle:q,onCheckAll:de,onUpdate:G,isUpdating:s,wasChanged:N.wasChanged,isUserGroupsUpdated:N.isUserGroupsUpdated,className:b,texts:M})]}),Bt&&W(za,{accessToken:P.accessToken??"",slug:x,userID:N.userID??"",className:b,texts:M}),k!=!1&&W(xa,{showQRCode:k,isManaging:!0,className:b,texts:M})]})}):W("div",{className:r("grid grid-cols-1 gap-3 lg:gap-6"),children:W(Sa,{slug:x,onToggle:L=>{z({type:"TOGGLE_GROUP",groupID:L})},onCheckAll:()=>{z({type:"CHECK_ALL_GROUPS"})},onSuccess:(L,j,$)=>{C.track("availability_signup",{},{product_id:a??null}),$!=null&&Yt(j,$),L&&z({type:"SHOW_SETTINGS"})},groups:N.groups,showPhoneInput:S,agreementText:M.agreementText,className:b,texts:M,wasChanged:N.wasChanged,isUpdating:s})})}),W(Ra,{isOpen:N.showSettings&&!N.isLoggedIn,slug:x,onSuccess:Yt,texts:M,onClose:Zt})]})}function li({slug:t,userID:e,productID:a,projectID:o,analytics:c,projectName:d,projectLogo:i,projectLogoDark:w,groups:h,isManaging:u,texts:v,showQRCode:k,showPhoneInput:S,hiddenGroupIds:y,className:b}){return W(he,{children:W(ci,{slug:t,userID:e,productID:a,projectID:o,analytics:c,projectName:d,projectLogo:i,projectLogoDark:w,groups:h,isManaging:u,texts:v,showQRCode:k,showPhoneInput:S,hiddenGroupIds:y,className:b})})}var pi=li;export{ke as ApplePayButton,di as Bitsnap,xo as BitsnapCheckout,Tr as BitsnapReturns,pr as BitsnapReturnsProvider,Rr as CHECKOUT_SLOT_NAMES,qa as Environment,Ne as GooglePayButton,pi as NotificationsComponent,hi as PRODUCT_LIST_SLOT_NAMES,Nr as Panel,rr as PanelLogin,Xa as PanelProvider,wi as ProductList,Pr as PublicOrderPage,or as RETURNS_SLOT_NAMES,ir as ReturnsAppearanceProvider,vr as ReturnsCodeStep,xr as ReturnsConfirmation,fr as ReturnsEmailStep,Sr as ReturnsMyReturnDetail,Cr as ReturnsMyReturnsList,yr as ReturnsOrderDetail,wr as ReturnsOrderList,lr as ReturnsProvider,kr as ReturnsResult,ar as buildAccessTokenRedirect,bi as createCheckout,ui as createPaymentURL,fi as formatProductPrice,Za as getAllowedReturnOrigins,Mt as getLocale,Ha as getPanelConfig,mi as getReferenceIfPossible,Ja as getReturnURLFromSearch,gi as injectReferenceToRequestIfNeeded,tr as persistReturnURL,er as readPersistedReturnURL,$a as setAllowedReturnOrigins,Ma as setCustomHost,Qa as setHost,ve as setLocale,Ka as setLoginURL,Fa as setPanelConfig,Va as setPanelProjectID,ye as setProjectID,Wa as setTheme,mr as useCreateReturn,hr as useMyReturn,gr as useMyReturns,Ya as usePanelConfig,vi as useProducts,ur as useReturnOrders,dr as useReturnSession,br as useReturnableOrder,nr as useReturnsAppearance,sr as useReturnsSlot,cr as useReturnsText};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|