1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[324],{9633:(e,t,r)=>{Promise.resolve().then(r.bind(r,92743)),Promise.resolve().then(r.bind(r,56417)),Promise.resolve().then(r.t.bind(r,76990,23))},10283:(e,t,r)=>{"use strict";function n(){if(void 0===globalThis.window)return[];let e=localStorage.getItem("cart");if(!e)return[];try{let t=JSON.parse(e),r=t.filter(e=>e&&e.product&&e.product.id&&e.price&&e.quantity);return r.length!==t.length&&a(r),r}catch(e){return console.error("Error parsing cart data:",e),localStorage.removeItem("cart"),[]}}function a(e){void 0!==globalThis.window&&localStorage.setItem("cart",JSON.stringify(e))}function o(e){let t=n(),r=t.findIndex(t=>t.product.id===e.product.id&&t.price.id===e.price.id);return -1===r?t.push(e):t[r].quantity+=e.quantity,a(t),t}function s(e,t){let r=n(),o=r.findIndex(t=>t.id===e);return -1!==o&&(r[o].quantity=t,a(r)),r}function i(e){let t=n().filter(t=>t.id!==e);return a(t),t}function u(){void 0!==globalThis.window&&localStorage.removeItem("cart")}function c(e){return Array.isArray(e)||(e=[e]),e.reduce((e,t)=>{if(t.price.unit_amount&&t.price.currency){let r=t.price.currency,n=t.price.unit_amount*t.quantity/100;e[r]=(e[r]||0)+n}return e},{})}r.d(t,{tk:()=>b,dl:()=>d,_$:()=>x});class l{getLocalCart(){return n()}saveLocalCart(e){return a(e)}addItemToLocalCart(e){return o(e)}updateItemQuantity(e,t){return s(e,t)}removeItemFromLocalCart(e){return i(e)}clearLocalCart(){return u()}calculateCartTotal(e){return c(e)}}let d=new l;var g=r(32991),h=r(62566),m=r(88657);let f=(0,g.v)()((0,h.lt)((0,h.eh)((0,h.Zr)((e,t)=>({items:[],isLoading:!1,isCheckingOut:!1,isCartOpen:!1,checkoutUrl:void 0,get cartCount(){return t().items.reduce((e,t)=>e+t.quantity,0)},get totalAmount(){return c(t().items)},addItem:(t,r,n)=>{e({items:o({id:(0,m.A)(),quantity:t,product:r,price:n}),isCartOpen:!0})},removeItem:t=>{e({isLoading:!0}),e({items:i(t),isLoading:!1})},updateItem:(t,r)=>{e({items:s(t,r)})},clearCart:()=>{u(),e({items:[],checkoutUrl:void 0})},toggleCart:()=>{e(e=>({isCartOpen:!e.isCartOpen}))},setIsLoading:t=>{e({isLoading:t})},setIsCheckingOut:t=>{e({isCheckingOut:t})},setCheckoutUrl:t=>{e({checkoutUrl:t}),t?localStorage.setItem("checkoutUrl",t):localStorage.removeItem("checkoutUrl")},loadCartFromStorage:()=>{e({items:n(),checkoutUrl:localStorage.getItem("checkoutUrl")||void 0})}}),{name:"cart-storage",partialize:e=>({items:e.items,checkoutUrl:e.checkoutUrl})})),{name:"cart-store"}));var v=r(73425),p=r(39893);function b(e){let{children:t}=e,r=f(e=>e.loadCartFromStorage);return(0,p.useEffect)(()=>{r()},[r]),(0,v.jsx)(v.Fragment,{children:t})}var k=r(44521),y=r(48695);function x(){let e=f(),t=function(){let e=(0,k.n6)();return(0,y.n)(e.payments.checkout.create.mutationOptions({onMutate:async e=>{console.log("Creating checkout session for",e.items.length,"items")},onSuccess:e=>{(null==e?void 0:e.id)&&e.url&&console.log("Checkout session created successfully")},onError:e=>{console.error("Checkout mutation failed:",e)},retry:(e,t)=>{var r;return(null==(r=t.data)||!r.httpStatus||!(t.data.httpStatus>=400)||!(t.data.httpStatus<500))&&e<2}}))}(),r={...t,mutate:r=>(e.setIsCheckingOut(!0),t.mutate(r,{onSuccess:t=>{(null==t?void 0:t.url)&&e.setCheckoutUrl(t.url)},onError:e=>{console.error("Checkout error:",e)},onSettled:()=>{e.setIsCheckingOut(!1)}})),mutateAsync:async r=>{e.setIsCheckingOut(!0);try{let n=await t.mutateAsync(r);return(null==n?void 0:n.url)&&e.setCheckoutUrl(n.url),n}catch(e){throw console.error("Checkout error:",e),e}finally{e.setIsCheckingOut(!1)}}},n=async()=>{if(0===e.items.length)return{success:!1,error:"Your cart is empty"};try{let t=await r.mutateAsync({items:e.items}),n=null==t?void 0:t.url;if(n)return{success:!0,url:n};return{success:!1,error:"Couldn't create checkout session"}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}};return{...e,checkout:n,addItem:(t,r,n)=>{e.addItem(t,r,n)},removeItem:t=>{e.removeItem(t)}}}},12148:(e,t,r)=>{"use strict";r.d(t,{cn:()=>o});var n=r(95452),a=r(91212);function o(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.QP)((0,n.$)(t))}},44521:(e,t,r)=>{"use strict";r.d(t,{n6:()=>a,xh:()=>n});let{TRPCProvider:n,useTRPC:a,useTRPCClient:o}=(0,r(397).dW)()},56417:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});let n=e=>{let{src:t}=e;return t.startsWith("http")||t.startsWith("//")?t:"/assets/".concat(t.replace(/^\/+/,""))}},64675:(e,t,r)=>{"use strict";r.d(t,{$:()=>u});var n=r(73425);r(39893);var a=r(76142),o=r(73086),s=r(12148);let i=(0,o.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",rock:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 rounded-none",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function u(e){let{className:t,variant:r,size:o,asChild:u=!1,...c}=e,l=u?a.DX:"button";return(0,n.jsx)(l,{"data-slot":"button",className:(0,s.cn)(i({variant:r,size:o,className:t})),...c})}},92743:(e,t,r)=>{"use strict";r.d(t,{default:()=>i});var n=r(73425),a=r(39893),o=r(95149);let s=(0,r(59371).default)(()=>Promise.all([r.e(1615),r.e(6684),r.e(511),r.e(4164)]).then(r.bind(r,34164)),{loadableGenerated:{webpack:()=>[34164]},ssr:!1});function i(e){let{product:t,price:r}=e,[i,u]=(0,a.useState)(1);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s,{value:i,onChange:u}),(0,n.jsx)(o.default,{product:t,price:r,quantity:i,className:"w-full text-lg"})]})}}
1,93021:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=r(39893);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=o(e,n)),t&&(a.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95149:(e,t,r)=>{"use strict";r.d(t,{default:()=>d});var n=r(73425),a=r(64675),o=r(10283),s=r(12148),i=r(90273),u=r(65307),c=r(91458),l=r(39893);function d(e){let{product:t,price:r,quantity:d=1,onAddToCart:g,className:h,...m}=e,[f,v]=(0,l.useState)(!1),[p,b]=(0,l.useState)(!1),{addItem:k}=(0,o._$)(),y=async()=>{if(!f&&!p&&r){v(!0);try{k(d,t,r),b(!0),null==g||g(),setTimeout(()=>{b(!1)},2e3)}catch(e){console.error("Error adding item to cart:",e)}finally{v(!1)}}},x=f||p||!r;return(0,n.jsx)(a.$,{variant:"rock",onClick:y,disabled:x,className:(0,s.cn)("relative",h),...m,children:f?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Adding..."]}):p?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.A,{className:"mr-2 h-4 w-4"}),"Added to Cart"]}):r?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.A,{className:"mr-2 h-4 w-4"}),"Add to Cart"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Loading..."]})})}}},e=>{e.O(0,[6990,2084,9892,313,4042,4863,7092,1941,7358],()=>e(e.s=9633)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.