(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{3166:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});let i=(0,n(71847).A)("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]])},3998:(e,t,n)=>{"use strict";n.d(t,{$:()=>l});var i=n(95155);n(12115);var a=n(32467),o=n(83101),r=n(64269);let s=(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",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 l(e){let{className:t,variant:n,size:o,asChild:l=!1,...c}=e,d=l?a.DX:"button";return(0,i.jsx)(d,{"data-slot":"button",className:(0,r.cn)(s({variant:n,size:o,className:t})),...c})}},11647:(e,t,n)=>{"use strict";n.d(t,{E:()=>l});var i=n(95155);n(12115);var a=n(32467),o=n(83101),r=n(64269);let s=(0,o.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-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 transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:n,asChild:o=!1,...l}=e,c=o?a.DX:"span";return(0,i.jsx)(c,{"data-slot":"badge",className:(0,r.cn)(s({variant:n}),t),...l})}},12165:(e,t,n)=>{"use strict";n.d(t,{PWAStatus:()=>l});var i=n(95155),a=n(12115),o=n(11647),r=n(3166),s=n(33738);function l(){let[e,t]=(0,a.useState)(!0),[n,l]=(0,a.useState)(!1);return((0,a.useEffect)(()=>{l(window.matchMedia("(display-mode: standalone)").matches);let e=()=>t(!0),n=()=>t(!1);return t(navigator.onLine),window.addEventListener("online",e),window.addEventListener("offline",n),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",n)}},[]),n)?(0,i.jsx)(o.E,{variant:e?"default":"destructive",className:"flex items-center gap-1 text-xs",children:e?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.A,{className:"w-3 h-3"}),"آنلاین"]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.A,{className:"w-3 h-3"}),"آفلاین"]})}):null}},13673:()=>{},14734:(e,t,n)=>{"use strict";n.d(t,{F:()=>s});var i=n(12115),a=n(45520),o=n(36489),r=n(95704);function s(){let{data:e}=(0,o.useSession)(),[t,n]=(0,i.useState)(null),[s,l]=(0,i.useState)(!1),[c,d]=(0,i.useState)(null),u=(0,i.useRef)(null);return(0,i.useEffect)(()=>{(async()=>{try{var e;let t=await fetch("/api/settings/socket-status"),n=await t.json();d(null==(e=n.socketEnabled)||e),console.log("\uD83D\uDD0C Socket enabled status:",n.socketEnabled)}catch(e){console.error("Error checking socket status:",e),d(!0)}})()},[]),(0,i.useEffect)(()=>{if(!(null==e?void 0:e.user)||null===c)return;if(!1===c)return void console.log("\uD83D\uDD0C Socket.IO disabled by admin - SSE will be used instead");let i=window.location.hostname.includes("app.github.dev")||window.location.hostname.includes("github.dev"),o=window.location.origin;console.log("\uD83D\uDD0C Socket URL Detection:"),console.log("  - isCodespace:",i),console.log("  - NODE_ENV:","production"),console.log("  - NEXT_PUBLIC_SITE_URL:",r.env.NEXT_PUBLIC_SITE_URL),console.log("  - window.location.origin:",window.location.origin),console.log("  - window.location.hostname:",window.location.hostname),console.log("  - Final socketUrl:",o);let s=(0,a.io)(o,{path:"/api/socket/io",addTrailingSlash:!1,transports:["polling","websocket"],timeout:1e4,reconnection:!0,reconnectionAttempts:3,reconnectionDelay:5e3,reconnectionDelayMax:1e4,randomizationFactor:0,forceNew:!0});return s.on("connect",()=>{console.log("✅ Socket connected:",s.id),l(!0),e.user.id&&s.emit("joinUserRoom",e.user.id)}),s.on("disconnect",e=>{console.log("❌ Socket disconnected:",e),l(!1),"io server disconnect"===e&&(u.current=setTimeout(()=>{s.connect()},5e3))}),s.on("connect_error",e=>{console.error("\uD83D\uDD25 Socket connection error:",e.message),l(!1)}),s.io.on("reconnect_failed",()=>{console.log("❌ Socket reconnection failed after all attempts. Stopping socket."),l(!1)}),n(s),()=>{u.current&&clearTimeout(u.current),null==t||t.disconnect()}},[null==e?void 0:e.user,c]),{socket:t,isConnected:s,joinUserRoom:()=>{t&&(null==e?void 0:e.user.id)&&t.emit("joinUserRoom",e.user.id)},leaveUserRoom:()=>{t&&(null==e?void 0:e.user.id)&&t.emit("leaveUserRoom",e.user.id)},joinCafeRoom:e=>{t&&t.emit("joinCafeRoom",e)},leaveCafeRoom:e=>{t&&t.emit("leaveCafeRoom",e)},joinEventRoom:e=>{t&&t.emit("joinEventRoom",e)},leaveEventRoom:e=>{t&&t.emit("leaveEventRoom",e)}}}},16485:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});let i=(0,n(71847).A)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]])},20063:(e,t,n)=>{"use strict";var i=n(47260);n.o(i,"redirect")&&n.d(t,{redirect:function(){return i.redirect}}),n.o(i,"useParams")&&n.d(t,{useParams:function(){return i.useParams}}),n.o(i,"usePathname")&&n.d(t,{usePathname:function(){return i.usePathname}}),n.o(i,"useRouter")&&n.d(t,{useRouter:function(){return i.useRouter}}),n.o(i,"useSearchParams")&&n.d(t,{useSearchParams:function(){return i.useSearchParams}})},20508:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});let i=(0,n(71847).A)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]])},21873:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});let i=(0,n(71847).A)("map-pin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]])},23082:(e,t,n)=>{"use strict";n.d(t,{SessionProvider:()=>o});var i=n(95155),a=n(36489);function o(e){let{children:t,session:n}=e;return(0,i.jsx)(a.SessionProvider,{session:n,children:t})}},23825:()=>{},25112:(e,t,n)=>{"use strict";n.d(t,{h:()=>o});var i=n(12115),a=n(36489);function o(){var e;let{data:t}=(0,a.useSession)(),[n,o]=(0,i.useState)(!1),[r,s]=(0,i.useState)(null),[l,c]=(0,i.useState)(null),d=(0,i.useRef)(null);return(0,i.useEffect)(()=>{var e;if(!(null==t||null==(e=t.user)?void 0:e.id))return;console.log("\uD83D\uDCE1 Setting up SSE connection for user:",t.user.id);let n=new EventSource("/api/notifications/sse");return d.current=n,n.onopen=()=>{console.log("✅ SSE connection established"),o(!0),c(null)},n.onmessage=e=>{try{let t=JSON.parse(e.data);console.log("\uD83D\uDD14 SSE notification received:",t),s(t),"notification"===t.type&&window.dispatchEvent(new CustomEvent("newNotification",{detail:t}))}catch(e){console.error("❌ Error parsing SSE message:",e)}},n.onerror=e=>{console.error("❌ SSE connection error:",e),o(!1),c("اتصال real-time قطع شد")},()=>{console.log("\uD83E\uDDF9 Cleaning up SSE connection"),n.close(),o(!1)}},[null==t||null==(e=t.user)?void 0:e.id]),{isConnected:n,lastNotification:r,connectionError:l}}},29501:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,96168,23)),Promise.resolve().then(n.t.bind(n,33944,23)),Promise.resolve().then(n.bind(n,18720)),Promise.resolve().then(n.t.bind(n,13673,23)),Promise.resolve().then(n.t.bind(n,23825,23)),Promise.resolve().then(n.bind(n,63103)),Promise.resolve().then(n.bind(n,36758)),Promise.resolve().then(n.bind(n,23082)),Promise.resolve().then(n.bind(n,76162)),Promise.resolve().then(n.bind(n,12165))},33738:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});let i=(0,n(71847).A)("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},33944:e=>{e.exports={style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"},className:"__className_9a8899",variable:"__variable_9a8899"}},36758:(e,t,n)=>{"use strict";n.d(t,{GlobalNotificationManager:()=>d});var i=n(95155),a=n(36489),o=n(12115),r=n(14734),s=n(25112),l=n(18720);function c(e){let{userId:t}=e,{socket:n,isConnected:i}=(0,r.F)(),{isConnected:a}=(0,s.h)(),{playNotificationSound:c}=function(){let e=(0,o.useRef)(null),t=(0,o.useRef)(!1),n=(0,o.useCallback)(()=>{if(!t.current)try{e.current=new(window.AudioContext||window.webkitAudioContext),t.current=!0,console.log("\uD83D\uDD0A Audio context initialized")}catch(e){console.error("Failed to initialize audio context:",e)}},[]);return(0,o.useEffect)(()=>{let e=()=>{n(),document.removeEventListener("click",e),document.removeEventListener("touchstart",e),document.removeEventListener("keydown",e)};return document.addEventListener("click",e),document.addEventListener("touchstart",e),document.addEventListener("keydown",e),()=>{document.removeEventListener("click",e),document.removeEventListener("touchstart",e),document.removeEventListener("keydown",e)}},[n]),{playNotificationSound:(0,o.useCallback)(()=>{e.current||n();let t=e.current;if(!t)return void console.warn("\uD83D\uDD07 Audio context not available");try{"suspended"===t.state&&t.resume();let e=t.currentTime,n=t.createOscillator(),i=t.createOscillator(),a=t.createOscillator(),o=t.createOscillator(),r=t.createGain(),s=t.createGain(),l=t.createGain(),c=t.createGain(),d=t.createGain();n.frequency.value=880,i.frequency.value=1318.5,a.frequency.value=1760,o.frequency.value=2637,n.type="triangle",i.type="sine",a.type="sine",o.type="sine",n.connect(r),i.connect(s),a.connect(l),o.connect(c),r.connect(d),s.connect(d),l.connect(d),c.connect(d),d.connect(t.destination),r.gain.setValueAtTime(0,e),r.gain.linearRampToValueAtTime(.6,e+.01),s.gain.setValueAtTime(0,e),s.gain.linearRampToValueAtTime(.5,e+.01),l.gain.setValueAtTime(0,e),l.gain.linearRampToValueAtTime(.4,e+.01),c.gain.setValueAtTime(0,e),c.gain.linearRampToValueAtTime(.25,e+.01),r.gain.exponentialRampToValueAtTime(.001,e+.8),s.gain.exponentialRampToValueAtTime(.001,e+.7),l.gain.exponentialRampToValueAtTime(.001,e+.6),c.gain.exponentialRampToValueAtTime(.001,e+.4),d.gain.setValueAtTime(.8,e),setTimeout(()=>{if("closed"===t.state)return;let e=t.currentTime,n=t.createOscillator(),i=t.createOscillator(),a=t.createOscillator(),o=t.createGain(),r=t.createGain(),s=t.createGain(),l=t.createGain();n.frequency.value=1318.5,i.frequency.value=1760,a.frequency.value=2637,n.type="sine",i.type="sine",a.type="sine",n.connect(o),i.connect(r),a.connect(s),o.connect(l),r.connect(l),s.connect(l),l.connect(t.destination),o.gain.setValueAtTime(0,e),o.gain.linearRampToValueAtTime(.5,e+.01),o.gain.exponentialRampToValueAtTime(.001,e+.4),r.gain.setValueAtTime(0,e),r.gain.linearRampToValueAtTime(.4,e+.01),r.gain.exponentialRampToValueAtTime(.001,e+.35),s.gain.setValueAtTime(0,e),s.gain.linearRampToValueAtTime(.25,e+.01),s.gain.exponentialRampToValueAtTime(.001,e+.25),l.gain.setValueAtTime(.7,e),n.start(e),i.start(e),a.start(e),n.stop(e+.4),i.stop(e+.35),a.stop(e+.25)},150),n.start(e),i.start(e),a.start(e),o.start(e),n.stop(e+.8),i.stop(e+.7),a.stop(e+.6),o.stop(e+.4),console.log("\uD83D\uDD14 Notification sound played")}catch(e){console.error("Failed to play notification sound:",e)}},[n])}}(),d=(0,o.useCallback)((e,t,n)=>{let i=(null==t?void 0:t.toLowerCase())||"",a=(null==n?void 0:n.toLowerCase())||"";return i.includes("لغو")||i.includes("کنسل")||i.includes("حذف")||a.includes("لغو شد")||a.includes("کنسل شد")||a.includes("لغو کرد")?"❌":i.includes("ثبت")||i.includes("تایید")||i.includes("موفق")||a.includes("ثبت شد")||a.includes("تایید شد")||i.includes("رزرو جدید")?"✅":({BOOKING:"\uD83D\uDCC5",EVENT:"\uD83C\uDFAE",SYSTEM:"\uD83D\uDD14",FRIEND_REQUEST:"\uD83D\uDC65",PAYMENT:"\uD83D\uDCB3",REVIEW:"⭐"})[e]||"\uD83D\uDD14"},[]),u=(0,o.useCallback)(e=>{c(),(0,l.o)(e.title,{description:e.message,icon:d(e.type,e.title,e.message),duration:"SYSTEM"===e.type?3e3:5e3,position:"top-left"})},[c,d]);return(0,o.useEffect)(()=>{console.log("\uD83D\uDD14 EnhancedNotificationManager status:",{userId:t,socketConnected:i,sseConnected:a,hasSocket:!!n})},[t,i,a,n]),(0,o.useEffect)(()=>{if(!n||!i)return void console.log("⏳ Socket.IO not ready yet, waiting...",{hasSocket:!!n,isConnected:i});console.log("✅ Socket.IO connected, setting up notification listeners for user:",t),n.emit("joinUserRoom",t);let e=async e=>{u(e),console.log("\uD83D\uDCF1 Socket.IO notification received and displayed")},a=e=>{c(),(0,l.o)("درخواست دوستی از ".concat(e.fromUserName),{description:"می‌توانید از طریق پروفایل پاسخ دهید",icon:"\uD83D\uDC65",duration:8e3,position:"top-left"})},o=e=>{c(),(0,l.o)("".concat(e.userName," درخواست دوستی شما را پذیرفت"),{description:"حالا می‌توانید با هم در رویدادها شرکت کنید",icon:"✅",duration:5e3,position:"top-left"})};return n.on("notification",e),n.on("friendRequestReceived",a),n.on("friendRequestAccepted",o),()=>{n.off("notification",e),n.off("friendRequestReceived",a),n.off("friendRequestAccepted",o),n.emit("leaveUserRoom",t)}},[n,i,t,c,u]),(0,o.useEffect)(()=>{let e=e=>{let t=e.detail;t&&"notification"===t.type&&(u({...t,type:t.notificationType||t.type}),console.log("\uD83D\uDCE1 SSE notification received and displayed"))};return window.addEventListener("newNotification",e),()=>{window.removeEventListener("newNotification",e)}},[u]),null}function d(){var e;let{data:t}=(0,a.useSession)();return(null==t||null==(e=t.user)?void 0:e.id)?(0,i.jsx)(c,{userId:t.user.id}):null}},39867:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});let i=(0,n(71847).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]])},63103:(e,t,n)=>{"use strict";n.d(t,{MobileNavigation:()=>v});var i=n(95155),a=n(20063),o=n(12115),r=n(52619),s=n.n(r),l=n(20508),c=n(16485),d=n(21873),u=n(36489);let m=e=>{let{href:t,icon:n,label:a,isActive:o,activeColorClass:r,activeBgClass:l}=e;return(0,i.jsxs)(s(),{href:t,className:"relative flex flex-col items-center justify-center py-2 px-1 rounded-2xl transition-all duration-300 ease-[cubic-bezier(0.4,0,0.2,1)] ".concat(o?"".concat(r," ").concat(l):"text-gray-500 hover:text-gray-600 hover:bg-gray-100"),children:[(0,i.jsxs)("div",{className:"relative transition-transform duration-300 ".concat(o?"scale-110 -translate-y-0.5":""),children:[(0,i.jsx)(n,{className:"w-6 h-6 transition-all duration-300",strokeWidth:o?2.5:2}),o&&(0,i.jsx)("div",{className:"absolute inset-0 bg-current opacity-20 blur-md rounded-full -z-10"})]}),(0,i.jsx)("span",{className:"text-[10px] mt-1 transition-all duration-300 ".concat(o?"font-bold scale-105":"font-medium"),children:a})]})};function v(){let e=(0,a.usePathname)(),{data:t}=(0,u.useSession)(),n=null==e?void 0:e.includes("/auth/"),r=(null==e?void 0:e.includes("/dashboard"))||(null==e?void 0:e.includes("/admin-dashboard"))||(null==e?void 0:e.includes("/business-dashboard")),s=(0,o.useMemo)(()=>{let t="/events"===e,n="/cafes"===e;return!r&&!t&&!n},[e,r]);return((0,o.useEffect)(()=>{if(n)return;let e=document.body;return e.classList.add("mobile-bottom-nav-padding"),()=>{e.classList.remove("mobile-bottom-nav-padding")}},[n]),n)?null:(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)("div",{className:"md:hidden fixed bottom-0 left-0 right-0 bg-white/50 backdrop-blur-xl border-t border-gray-200/60 shadow-[0_-8px_30px_rgba(0,0,0,0.04)] z-50 pb-safe overflow-hidden",children:[s&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"absolute inset-0 pointer-events-none animate-nav-shimmer",style:{background:"linear-gradient(75deg, transparent 0%, transparent 35%, rgba(255,255,255,0.7) 45%, rgba(255,255,255,0.95) 50%, rgba(255,255,255,0.7) 55%, transparent 65%, transparent 100%)",width:"150%",height:"200%",top:"-50%"}}),(0,i.jsx)("div",{className:"absolute top-0 left-0 right-0 h-[2px] pointer-events-none overflow-hidden",children:(0,i.jsx)("div",{className:"absolute inset-0 animate-nav-shimmer",style:{background:"linear-gradient(90deg, transparent 0%, transparent 40%, rgba(255,255,255,0.9) 48%, rgba(255,255,255,1) 50%, rgba(255,255,255,0.9) 52%, transparent 60%, transparent 100%)",width:"150%",boxShadow:"0 0 8px 2px rgba(255,255,255,0.6)"}})})]}),(0,i.jsxs)("div",{className:"grid grid-cols-3 gap-2 py-1 px-6 relative z-10",children:[(0,i.jsx)(m,{href:(()=>{var e;if(!(null==t?void 0:t.user))return"/auth/customer/signin";switch(null==(e=t.user)?void 0:e.role){case"ADMIN":case"SUPER_ADMIN":return"/admin-dashboard";case"CAFE_OWNER":return"/business-dashboard";default:return"/dashboard"}})(),icon:l.A,label:"حساب",isActive:!!r,activeColorClass:"text-violet-600",activeBgClass:"bg-violet-50"}),(0,i.jsx)(m,{href:"/events",icon:c.A,label:"رویدادها",isActive:"/events"===e,activeColorClass:"text-orange-500",activeBgClass:"bg-orange-50"}),(0,i.jsx)(m,{href:"/cafes",icon:d.A,label:"کافه‌ها",isActive:"/cafes"===e,activeColorClass:"text-emerald-600",activeBgClass:"bg-emerald-50"})]})]})})}},64269:(e,t,n)=>{"use strict";n.d(t,{cn:()=>o});var i=n(2821),a=n(75889);function o(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,a.QP)((0,i.$)(t))}},65229:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});let i=(0,n(71847).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},76162:(e,t,n)=>{"use strict";n.d(t,{InstallPrompt:()=>l});var i=n(95155),a=n(12115),o=n(3998),r=n(39867),s=n(65229);function l(){let[e,t]=(0,a.useState)(null),[n,l]=(0,a.useState)(!1),[c,d]=(0,a.useState)(!1),[u,m]=(0,a.useState)(!1),[v,g]=(0,a.useState)(!1);(0,a.useEffect)(()=>{d(/iPad|iPhone|iPod/.test(navigator.userAgent)),g(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<768);let e=window.matchMedia("(display-mode: standalone)").matches;m(e);let i="true"===localStorage.getItem("installPromptDismissed")?36e5:3e4,a=a=>{a.preventDefault(),t(a),setTimeout(()=>{e||n||l(!0)},i)};return window.addEventListener("beforeinstallprompt",a),()=>{window.removeEventListener("beforeinstallprompt",a)}},[n]);let p=async()=>{if(!e)return;e.prompt();let{outcome:n}=await e.userChoice;"accepted"===n&&(l(!1),localStorage.removeItem("installPromptDismissed")),t(null)},f=()=>{l(!1),localStorage.setItem("installPromptDismissed","true")};return((0,a.useEffect)(()=>{"true"===localStorage.getItem("installPromptDismissed")&&l(!1)},[]),!u&&v&&(e||c)&&n)?(0,i.jsx)("div",{className:"fixed bottom-4 left-4 right-4 z-50 animate-slide-up",children:(0,i.jsxs)("div",{className:"bg-white dark:bg-gray-800 border rounded-lg shadow-lg p-4 mx-auto max-w-sm",children:[(0,i.jsxs)("div",{className:"flex items-start justify-between mb-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)("div",{className:"w-10 h-10 bg-purple-600 rounded-lg flex items-center justify-center",children:(0,i.jsx)(r.A,{className:"w-5 h-5 text-white"})}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h3",{className:"font-semibold text-sm",children:"نصب Playmo"}),(0,i.jsx)("p",{className:"text-xs text-gray-600 dark:text-gray-400",children:"دسترسی سریع‌تر از صفحه اصلی"})]})]}),(0,i.jsx)(o.$,{variant:"ghost",size:"sm",onClick:f,className:"h-6 w-6 p-0",children:(0,i.jsx)(s.A,{className:"w-4 h-4"})})]}),c?(0,i.jsxs)("div",{className:"text-xs text-gray-600 dark:text-gray-400 mb-3",children:["برای نصب: روی"," ",(0,i.jsx)("span",{className:"inline-flex items-center mx-1",children:(0,i.jsx)("svg",{className:"w-4 h-4",fill:"currentColor",viewBox:"0 0 24 24",children:(0,i.jsx)("path",{d:"M7 14l5-5 5 5z"})})}),'کلیک کرده و "Add to Home Screen" را انتخاب کنید']}):(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(o.$,{onClick:p,size:"sm",className:"flex-1 text-xs",children:"نصب کن"}),(0,i.jsx)(o.$,{onClick:f,variant:"outline",size:"sm",className:"flex-1 text-xs",children:"بعداً"})]})]})}):null}},96168:e=>{e.exports={style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"},className:"__className_188709",variable:"__variable_188709"}}},e=>{e.O(0,[7997,2978,454,5636,4909,7055,6489,8720,5279,4623,7358],()=>e(e.s=29501)),_N_E=e.O()}]);