feat(ux/sms/engine): complete Persian UX writing overhaul, Wolog SMS integration and respin support

This commit is contained in:
s.esmaeili
2026-10-10 01:22:48 +03:30
parent c29d0e31b1
commit 0aafd098f8
223 changed files with 14421 additions and 1846 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{d as t,b as s,h as a,e as r,v as o,u as n,S as l,E as x,a as d}from"./vendor-vue-kYoPQr5S.js";const m={class:"min-h-screen flex flex-col items-center justify-center px-6 py-12 text-center"},c={class:"mt-8 inline-flex items-center gap-2 text-amber-400/80 text-xs font-medium"},b=t({__name:"HomeView",setup(i){return(p,e)=>(d(),s("div",m,[e[1]||(e[1]=a('<div class="w-20 h-20 rounded-3xl bg-gradient-to-br from-amber-500 to-orange-600 flex items-center justify-center text-4xl shadow-lg shadow-amber-500/20 mb-6"> 🎡 </div><h1 class="text-2xl font-extrabold text-white mb-3">گردونه شانس</h1><p class="text-slate-400 text-sm max-w-sm leading-7 mb-2"> برای شرکت در قرعه‌کشی، لینک اختصاصی کمپین خود را از برگزارکننده دریافت کنید. </p><p class="text-slate-500 text-xs max-w-xs"> آدرس معمولاً به شکل <code dir="ltr" class="text-amber-400/90 bg-slate-800 px-1.5 py-0.5 rounded">/نام-کمپین</code> است. </p>',4)),r("div",c,[o(n(l),{class:"w-4 h-4"}),e[0]||(e[0]=x(" منتظر لینک کمپین باشید ",-1))])]))}});export{b as default};
import{d as t,b as s,h as a,e as r,v as o,u as n,S as l,E as x,a as d}from"./vendor-vue-DYkhP7t5.js";const m={class:"min-h-screen flex flex-col items-center justify-center px-6 py-12 text-center"},c={class:"mt-8 inline-flex items-center gap-2 text-amber-400/80 text-xs font-medium"},b=t({__name:"HomeView",setup(i){return(p,e)=>(d(),s("div",m,[e[1]||(e[1]=a('<div class="w-20 h-20 rounded-3xl bg-gradient-to-br from-amber-500 to-orange-600 flex items-center justify-center text-4xl shadow-lg shadow-amber-500/20 mb-6"> 🎡 </div><h1 class="text-2xl font-extrabold text-white mb-3">گردونه شانس</h1><p class="text-slate-400 text-sm max-w-sm leading-7 mb-2"> برای شرکت در قرعه‌کشی، لینک اختصاصی کمپین خود را از برگزارکننده دریافت کنید. </p><p class="text-slate-500 text-xs max-w-xs"> آدرس معمولاً به شکل <code dir="ltr" class="text-amber-400/90 bg-slate-800 px-1.5 py-0.5 rounded">/نام-کمپین</code> است. </p>',4)),r("div",c,[o(n(l),{class:"w-4 h-4"}),e[0]||(e[0]=x(" منتظر لینک کمپین باشید ",-1))])]))}});export{b as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{d as o,b as n,e,u as l,y as r,a}from"./vendor-vue-kYoPQr5S.js";const x={class:"min-h-screen flex flex-col items-center justify-center px-6 py-12 text-center"},i=o({__name:"NotFoundView",setup(u){const s=r();return(d,t)=>(a(),n("div",x,[t[1]||(t[1]=e("div",{class:"text-6xl font-black text-slate-700 mb-4"},"۴۰۴",-1)),t[2]||(t[2]=e("h1",{class:"text-xl font-bold text-white mb-2"},"صفحه پیدا نشد",-1)),t[3]||(t[3]=e("p",{class:"text-slate-400 text-sm mb-8"},"آدرس وارد شده معتبر نیست.",-1)),e("button",{type:"button",class:"px-6 py-3 rounded-xl bg-slate-800 border border-slate-700 text-slate-200 text-sm font-semibold",onClick:t[0]||(t[0]=m=>l(s).push("/"))}," بازگشت به صفحه اصلی ")]))}});export{i as default};
import{d as o,b as n,e,u as l,y as r,a}from"./vendor-vue-DYkhP7t5.js";const x={class:"min-h-screen flex flex-col items-center justify-center px-6 py-12 text-center"},i=o({__name:"NotFoundView",setup(u){const s=r();return(d,t)=>(a(),n("div",x,[t[1]||(t[1]=e("div",{class:"text-6xl font-black text-slate-700 mb-4"},"۴۰۴",-1)),t[2]||(t[2]=e("h1",{class:"text-xl font-bold text-white mb-2"},"صفحه پیدا نشد",-1)),t[3]||(t[3]=e("p",{class:"text-slate-400 text-sm mb-8"},"آدرس وارد شده معتبر نیست.",-1)),e("button",{type:"button",class:"px-6 py-3 rounded-xl bg-slate-800 border border-slate-700 text-slate-200 text-sm font-semibold",onClick:t[0]||(t[0]=m=>l(s).push("/"))}," بازگشت به صفحه اصلی ")]))}});export{i as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-46
View File
@@ -1,46 +0,0 @@
import{C as s}from"./index-2C3lthXe.js";const i=["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"];function g(e){return e==null?"":String(e).replace(/[0-9]/g,t=>i[+t]).replace(/[٠-٩]/g,t=>i[t.charCodeAt(0)-1632])}/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const p=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/var o={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const k=({size:e,strokeWidth:t=2,absoluteStrokeWidth:c,color:a,iconNode:h,name:d,class:w,...l},{slots:n})=>s("svg",{...o,width:e||o.width,height:e||o.height,stroke:a||o.stroke,"stroke-width":c?Number(t)*24/Number(e):t,class:["lucide",`lucide-${p(d??"icon")}`],...l},[...h.map(u=>s(...u)),...n.default?[n.default()]:[]]);/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const r=(e,t)=>(c,{slots:a})=>s(k,{...c,iconNode:t,name:e},a);/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const C=r("ArrowRightIcon",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const m=r("AwardIcon",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const I=r("CheckIcon",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const f=r("CopyIcon",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/**
* @license lucide-vue-next v0.378.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const A=r("LoaderCircleIcon",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);export{C as A,I as C,A as L,m as a,f as b,r as c,g as t};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{u as b,t as v}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as B,a as l,b as o,e,n as d,u as i,F as c,f as h,t as C,g as S,c as z}from"./vendor-vue-kYoPQr5S.js";const F={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},L={class:"absolute inset-0 rounded-full p-3.5 border-4 border-pink-300 shadow-[0_10px_0_#f9a8d4,0_16px_28px_rgba(244,114,182,0.35)]",style:{background:"linear-gradient(180deg, #ffe4e6 0%, #fbcfe8 100%)"}},P={class:"w-full h-full rounded-full border-4 border-white relative overflow-hidden bg-rose-50"},D=["d","fill"],N=["transform"],R={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"11","font-weight":"900",class:"wheel-slice-text font-sans",style:{"paint-order":"stroke fill",stroke:"rgba(0,0,0,0.2)","stroke-width":"2px"}},V=["href"],W=["cx","cy"],q=["cx","cy","fill"],E={class:"absolute -top-4 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_5px_0_#db2777]"},M=B({__name:"CandyLandWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(f,{emit:u}){const x=f,m=u,{wheelStyle:p,pointerStyle:g,getSlicePath:w,getTextRotation:y,makePegs:_}=b(x,()=>m("spin-finished"),{radius:138,pegRadius:142}),n=["#fb7185","#fbbf24","#34d399","#60a5fa","#c084fc","#f472b6"],k=z(()=>_(24,142).map((a,s)=>({...a,color:n[s%n.length]})));return(a,s)=>(l(),o("div",F,[e("div",L,[e("div",P,[(l(),o("svg",{class:"w-full h-full",style:d(i(p)),viewBox:"0 0 300 300"},[(l(!0),o(c,null,h(f.segments,(t,r)=>(l(),o("g",{key:t.id},[e("path",{d:i(w)(r),fill:t.color||n[r%n.length],stroke:"#ffffff","stroke-width":"3"},null,8,D),e("g",{transform:i(y)(r)},[e("text",R,C(i(v)(t.title)),1),t.image?(l(),o("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):S("",!0)],8,N)]))),128)),(l(!0),o(c,null,h(k.value,(t,r)=>(l(),o("g",{key:r},[e("circle",{cx:t.x,cy:t.y,r:"4.2",fill:"#fff",stroke:"#f9a8d4","stroke-width":"1.2"},null,8,W),e("circle",{cx:t.x,cy:t.y,r:"2.6",fill:t.color},null,8,q)]))),128)),s[0]||(s[0]=e("circle",{cx:"150",cy:"150",r:"32",fill:"#fb7185",stroke:"#fff","stroke-width":"4"},null,-1)),s[1]||(s[1]=e("circle",{cx:"150",cy:"150",r:"20",fill:"#fef08a",stroke:"#f9a8d4","stroke-width":"2"},null,-1)),s[2]||(s[2]=e("text",{x:"150",y:"157","text-anchor":"middle","font-size":"16"},"🍬",-1))],4))])]),e("div",E,[e("div",{style:d(i(g)),class:"w-10 h-[48px] origin-[50%_14px] will-change-transform"},[...s[3]||(s[3]=[e("svg",{width:"40",height:"48",viewBox:"0 0 40 48",fill:"none"},[e("path",{d:"M20 48L6 16C4 11 8 4 14 4H26C32 4 36 11 34 16L20 48Z",fill:"#fb7185",stroke:"#fff","stroke-width":"2.5"}),e("circle",{cx:"20",cy:"14",r:"5.5",fill:"#fef08a",stroke:"#fff","stroke-width":"2"})],-1)])],4)])]))}});export{M as default};
import{u as b,t as v}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as B,a as l,b as o,e,n as d,u as i,F as c,f as h,t as C,g as S,c as z}from"./vendor-vue-DYkhP7t5.js";const F={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},L={class:"absolute inset-0 rounded-full p-3.5 border-4 border-pink-300 shadow-[0_10px_0_#f9a8d4,0_16px_28px_rgba(244,114,182,0.35)]",style:{background:"linear-gradient(180deg, #ffe4e6 0%, #fbcfe8 100%)"}},P={class:"w-full h-full rounded-full border-4 border-white relative overflow-hidden bg-rose-50"},D=["d","fill"],N=["transform"],R={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"11","font-weight":"900",class:"wheel-slice-text font-sans",style:{"paint-order":"stroke fill",stroke:"rgba(0,0,0,0.2)","stroke-width":"2px"}},V=["href"],W=["cx","cy"],q=["cx","cy","fill"],E={class:"absolute -top-4 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_5px_0_#db2777]"},M=B({__name:"CandyLandWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(f,{emit:u}){const x=f,m=u,{wheelStyle:p,pointerStyle:g,getSlicePath:w,getTextRotation:y,makePegs:_}=b(x,()=>m("spin-finished"),{radius:138,pegRadius:142}),n=["#fb7185","#fbbf24","#34d399","#60a5fa","#c084fc","#f472b6"],k=z(()=>_(24,142).map((a,s)=>({...a,color:n[s%n.length]})));return(a,s)=>(l(),o("div",F,[e("div",L,[e("div",P,[(l(),o("svg",{class:"w-full h-full",style:d(i(p)),viewBox:"0 0 300 300"},[(l(!0),o(c,null,h(f.segments,(t,r)=>(l(),o("g",{key:t.id},[e("path",{d:i(w)(r),fill:t.color||n[r%n.length],stroke:"#ffffff","stroke-width":"3"},null,8,D),e("g",{transform:i(y)(r)},[e("text",R,C(i(v)(t.title)),1),t.image?(l(),o("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):S("",!0)],8,N)]))),128)),(l(!0),o(c,null,h(k.value,(t,r)=>(l(),o("g",{key:r},[e("circle",{cx:t.x,cy:t.y,r:"4.2",fill:"#fff",stroke:"#f9a8d4","stroke-width":"1.2"},null,8,W),e("circle",{cx:t.x,cy:t.y,r:"2.6",fill:t.color},null,8,q)]))),128)),s[0]||(s[0]=e("circle",{cx:"150",cy:"150",r:"32",fill:"#fb7185",stroke:"#fff","stroke-width":"4"},null,-1)),s[1]||(s[1]=e("circle",{cx:"150",cy:"150",r:"20",fill:"#fef08a",stroke:"#f9a8d4","stroke-width":"2"},null,-1)),s[2]||(s[2]=e("text",{x:"150",y:"157","text-anchor":"middle","font-size":"16"},"🍬",-1))],4))])]),e("div",E,[e("div",{style:d(i(g)),class:"w-10 h-[48px] origin-[50%_14px] will-change-transform"},[...s[3]||(s[3]=[e("svg",{width:"40",height:"48",viewBox:"0 0 40 48",fill:"none"},[e("path",{d:"M20 48L6 16C4 11 8 4 14 4H26C32 4 36 11 34 16L20 48Z",fill:"#fb7185",stroke:"#fff","stroke-width":"2.5"}),e("circle",{cx:"20",cy:"14",r:"5.5",fill:"#fef08a",stroke:"#fff","stroke-width":"2"})],-1)])],4)])]))}});export{M as default};
@@ -1 +1 @@
import{u as w,t as k}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as b,a as s,b as o,e as t,n as d,u as l,F as f,f as c,t as v,g as C,h as S}from"./vendor-vue-kYoPQr5S.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},$={class:"absolute inset-0 rounded-full p-2.5 shadow-[0_0_30px_rgba(56,189,248,0.45)]",style:{background:"linear-gradient(145deg, #e0f2fe, #38bdf8, #0284c7)"}},F={class:"w-full h-full rounded-full border-2 border-sky-100 relative overflow-hidden bg-[#082f49]/40 backdrop-blur-sm"},z=["d","fill"],L=["transform"],N={x:"150",y:"45","text-anchor":"middle",fill:"#f0f9ff","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans"},V=["href"],D=["points"],G={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_10px_#7dd3fc]"},W=b({__name:"CrystalIceWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(a,{emit:h}){const p=a,u=h,{wheelStyle:m,pointerStyle:x,getSlicePath:y,getTextRotation:_,pegs:g}=w(p,()=>u("spin-finished"),{radius:138,pegRadius:143}),n=["#0ea5e9","#38bdf8","#7dd3fc","#0284c7","#e0f2fe","#0369a1"];return(I,r)=>(s(),o("div",B,[t("div",$,[t("div",F,[(s(),o("svg",{class:"w-full h-full",style:d(l(m)),viewBox:"0 0 300 300"},[(s(!0),o(f,null,c(a.segments,(e,i)=>(s(),o("g",{key:e.id},[t("path",{d:l(y)(i),fill:e.color||n[i%n.length],stroke:"#e0f2fe","stroke-width":"1.2",opacity:"0.92"},null,8,z),t("g",{transform:l(_)(i)},[t("text",N,v(l(k)(e.title)),1),e.image?(s(),o("image",{key:0,href:e.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):C("",!0)],8,L)]))),128)),(s(!0),o(f,null,c(l(g),(e,i)=>(s(),o("g",{key:i},[t("polygon",{points:`${e.x},${e.y-4.5} ${e.x+2.4},${e.y+2.2} ${e.x-2.4},${e.y+2.2}`,fill:"#e0f2fe",stroke:"#7dd3fc","stroke-width":"0.6",opacity:"0.95"},null,8,D)]))),128)),r[0]||(r[0]=S('<circle cx="150" cy="150" r="30" fill="url(#iceCore)" stroke="#e0f2fe" stroke-width="2"></circle><circle cx="150" cy="150" r="16" fill="#0369a1" stroke="#bae6fd" stroke-width="1.5"></circle><text x="150" y="156" text-anchor="middle" font-size="14">❄️</text><defs><radialGradient id="iceCore" cx="40%" cy="35%" r="65%"><stop offset="0%" stop-color="#e0f2fe"></stop><stop offset="55%" stop-color="#38bdf8"></stop><stop offset="100%" stop-color="#0369a1"></stop></radialGradient></defs>',4))],4))])]),t("div",G,[t("div",{style:d(l(x)),class:"w-8 h-[42px] origin-[50%_10px] will-change-transform"},[...r[1]||(r[1]=[t("svg",{width:"32",height:"42",viewBox:"0 0 32 42",fill:"none"},[t("path",{d:"M16 42L4 12C2 7 6 2 11 2H21C26 2 30 7 28 12L16 42Z",fill:"#38bdf8",stroke:"#e0f2fe","stroke-width":"1.5"}),t("circle",{cx:"16",cy:"10",r:"4",fill:"#e0f2fe",stroke:"#0284c7","stroke-width":"1"})],-1)])],4)])]))}});export{W as default};
import{u as w,t as k}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as b,a as s,b as o,e as t,n as d,u as l,F as f,f as c,t as v,g as C,h as S}from"./vendor-vue-DYkhP7t5.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},$={class:"absolute inset-0 rounded-full p-2.5 shadow-[0_0_30px_rgba(56,189,248,0.45)]",style:{background:"linear-gradient(145deg, #e0f2fe, #38bdf8, #0284c7)"}},F={class:"w-full h-full rounded-full border-2 border-sky-100 relative overflow-hidden bg-[#082f49]/40 backdrop-blur-sm"},z=["d","fill"],L=["transform"],N={x:"150",y:"45","text-anchor":"middle",fill:"#f0f9ff","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans"},V=["href"],D=["points"],G={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_10px_#7dd3fc]"},W=b({__name:"CrystalIceWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(a,{emit:h}){const p=a,u=h,{wheelStyle:m,pointerStyle:x,getSlicePath:y,getTextRotation:_,pegs:g}=w(p,()=>u("spin-finished"),{radius:138,pegRadius:143}),n=["#0ea5e9","#38bdf8","#7dd3fc","#0284c7","#e0f2fe","#0369a1"];return(I,r)=>(s(),o("div",B,[t("div",$,[t("div",F,[(s(),o("svg",{class:"w-full h-full",style:d(l(m)),viewBox:"0 0 300 300"},[(s(!0),o(f,null,c(a.segments,(e,i)=>(s(),o("g",{key:e.id},[t("path",{d:l(y)(i),fill:e.color||n[i%n.length],stroke:"#e0f2fe","stroke-width":"1.2",opacity:"0.92"},null,8,z),t("g",{transform:l(_)(i)},[t("text",N,v(l(k)(e.title)),1),e.image?(s(),o("image",{key:0,href:e.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):C("",!0)],8,L)]))),128)),(s(!0),o(f,null,c(l(g),(e,i)=>(s(),o("g",{key:i},[t("polygon",{points:`${e.x},${e.y-4.5} ${e.x+2.4},${e.y+2.2} ${e.x-2.4},${e.y+2.2}`,fill:"#e0f2fe",stroke:"#7dd3fc","stroke-width":"0.6",opacity:"0.95"},null,8,D)]))),128)),r[0]||(r[0]=S('<circle cx="150" cy="150" r="30" fill="url(#iceCore)" stroke="#e0f2fe" stroke-width="2"></circle><circle cx="150" cy="150" r="16" fill="#0369a1" stroke="#bae6fd" stroke-width="1.5"></circle><text x="150" y="156" text-anchor="middle" font-size="14">❄️</text><defs><radialGradient id="iceCore" cx="40%" cy="35%" r="65%"><stop offset="0%" stop-color="#e0f2fe"></stop><stop offset="55%" stop-color="#38bdf8"></stop><stop offset="100%" stop-color="#0369a1"></stop></radialGradient></defs>',4))],4))])]),t("div",G,[t("div",{style:d(l(x)),class:"w-8 h-[42px] origin-[50%_10px] will-change-transform"},[...r[1]||(r[1]=[t("svg",{width:"32",height:"42",viewBox:"0 0 32 42",fill:"none"},[t("path",{d:"M16 42L4 12C2 7 6 2 11 2H21C26 2 30 7 28 12L16 42Z",fill:"#38bdf8",stroke:"#e0f2fe","stroke-width":"1.5"}),t("circle",{cx:"16",cy:"10",r:"4",fill:"#e0f2fe",stroke:"#0284c7","stroke-width":"1"})],-1)])],4)])]))}});export{W as default};
@@ -1 +1 @@
import{u as w,t as b}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as k,a as s,b as o,e,n as d,u as l,F as f,f as c,t as v,g as F,h as S}from"./vendor-vue-kYoPQr5S.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},C={class:"absolute inset-0 rounded-full p-2.5 shadow-[0_0_35px_rgba(249,115,22,0.55)]",style:{background:"linear-gradient(145deg, #fbbf24, #f97316, #dc2626, #7f1d1d)"}},z={class:"w-full h-full rounded-full border-2 border-orange-300 relative overflow-hidden bg-[#1a0505]"},G=["d","fill"],L=["transform"],N={x:"150",y:"45","text-anchor":"middle",fill:"#fff7ed","font-size":"11","font-weight":"800",class:"wheel-slice-text font-sans"},T=["href"],V=["cx","cy","transform"],$={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_12px_#f97316]"},W=k({__name:"FireFlameWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(a,{emit:p}){const h=a,m=p,{wheelStyle:u,pointerStyle:x,getSlicePath:g,getTextRotation:_,pegs:y}=w(h,()=>m("spin-finished"),{radius:138,pegRadius:143}),n=["#7f1d1d","#b91c1c","#ea580c","#c2410c","#9a3412","#450a0a"];return(D,i)=>(s(),o("div",B,[e("div",C,[e("div",z,[(s(),o("svg",{class:"w-full h-full",style:d(l(u)),viewBox:"0 0 300 300"},[(s(!0),o(f,null,c(a.segments,(t,r)=>(s(),o("g",{key:t.id},[e("path",{d:l(g)(r),fill:t.color||n[r%n.length],stroke:"#fdba74","stroke-width":"1.2"},null,8,G),e("g",{transform:l(_)(r)},[e("text",N,v(l(b)(t.title)),1),t.image?(s(),o("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,T)):F("",!0)],8,L)]))),128)),(s(!0),o(f,null,c(l(y),(t,r)=>(s(),o("g",{key:r},[e("ellipse",{cx:t.x,cy:t.y,rx:"2.2",ry:"4.2",fill:"url(#flameTip)",transform:`rotate(${r*15} ${t.x} ${t.y})`},null,8,V)]))),128)),i[0]||(i[0]=S('<circle cx="150" cy="150" r="30" fill="url(#emberCore)" stroke="#fdba74" stroke-width="2"></circle><circle cx="150" cy="150" r="16" fill="#7f1d1d" stroke="#f97316" stroke-width="1.5"></circle><text x="150" y="156" text-anchor="middle" font-size="14">🔥</text><defs><radialGradient id="flameTip" cx="50%" cy="20%" r="80%"><stop offset="0%" stop-color="#fef08a"></stop><stop offset="55%" stop-color="#f97316"></stop><stop offset="100%" stop-color="#b91c1c"></stop></radialGradient><radialGradient id="emberCore" cx="40%" cy="35%" r="65%"><stop offset="0%" stop-color="#fdba74"></stop><stop offset="100%" stop-color="#7f1d1d"></stop></radialGradient></defs>',4))],4))])]),e("div",$,[e("div",{style:d(l(x)),class:"w-9 h-[44px] origin-[50%_12px] will-change-transform"},[...i[1]||(i[1]=[e("svg",{width:"36",height:"44",viewBox:"0 0 36 44",fill:"none"},[e("path",{d:"M18 44L5 14C3 9 7 3 12 3H24C29 3 33 9 31 14L18 44Z",fill:"#f97316",stroke:"#fef08a","stroke-width":"1.5"}),e("circle",{cx:"18",cy:"12",r:"4.5",fill:"#dc2626",stroke:"#fef08a","stroke-width":"1.2"})],-1)])],4)])]))}});export{W as default};
import{u as w,t as b}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as k,a as s,b as o,e,n as d,u as l,F as f,f as c,t as v,g as F,h as S}from"./vendor-vue-DYkhP7t5.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},C={class:"absolute inset-0 rounded-full p-2.5 shadow-[0_0_35px_rgba(249,115,22,0.55)]",style:{background:"linear-gradient(145deg, #fbbf24, #f97316, #dc2626, #7f1d1d)"}},z={class:"w-full h-full rounded-full border-2 border-orange-300 relative overflow-hidden bg-[#1a0505]"},G=["d","fill"],L=["transform"],N={x:"150",y:"45","text-anchor":"middle",fill:"#fff7ed","font-size":"11","font-weight":"800",class:"wheel-slice-text font-sans"},T=["href"],V=["cx","cy","transform"],$={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_12px_#f97316]"},W=k({__name:"FireFlameWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(a,{emit:p}){const h=a,m=p,{wheelStyle:u,pointerStyle:x,getSlicePath:g,getTextRotation:_,pegs:y}=w(h,()=>m("spin-finished"),{radius:138,pegRadius:143}),n=["#7f1d1d","#b91c1c","#ea580c","#c2410c","#9a3412","#450a0a"];return(D,i)=>(s(),o("div",B,[e("div",C,[e("div",z,[(s(),o("svg",{class:"w-full h-full",style:d(l(u)),viewBox:"0 0 300 300"},[(s(!0),o(f,null,c(a.segments,(t,r)=>(s(),o("g",{key:t.id},[e("path",{d:l(g)(r),fill:t.color||n[r%n.length],stroke:"#fdba74","stroke-width":"1.2"},null,8,G),e("g",{transform:l(_)(r)},[e("text",N,v(l(b)(t.title)),1),t.image?(s(),o("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,T)):F("",!0)],8,L)]))),128)),(s(!0),o(f,null,c(l(y),(t,r)=>(s(),o("g",{key:r},[e("ellipse",{cx:t.x,cy:t.y,rx:"2.2",ry:"4.2",fill:"url(#flameTip)",transform:`rotate(${r*15} ${t.x} ${t.y})`},null,8,V)]))),128)),i[0]||(i[0]=S('<circle cx="150" cy="150" r="30" fill="url(#emberCore)" stroke="#fdba74" stroke-width="2"></circle><circle cx="150" cy="150" r="16" fill="#7f1d1d" stroke="#f97316" stroke-width="1.5"></circle><text x="150" y="156" text-anchor="middle" font-size="14">🔥</text><defs><radialGradient id="flameTip" cx="50%" cy="20%" r="80%"><stop offset="0%" stop-color="#fef08a"></stop><stop offset="55%" stop-color="#f97316"></stop><stop offset="100%" stop-color="#b91c1c"></stop></radialGradient><radialGradient id="emberCore" cx="40%" cy="35%" r="65%"><stop offset="0%" stop-color="#fdba74"></stop><stop offset="100%" stop-color="#7f1d1d"></stop></radialGradient></defs>',4))],4))])]),e("div",$,[e("div",{style:d(l(x)),class:"w-9 h-[44px] origin-[50%_12px] will-change-transform"},[...i[1]||(i[1]=[e("svg",{width:"36",height:"44",viewBox:"0 0 36 44",fill:"none"},[e("path",{d:"M18 44L5 14C3 9 7 3 12 3H24C29 3 33 9 31 14L18 44Z",fill:"#f97316",stroke:"#fef08a","stroke-width":"1.5"}),e("circle",{cx:"18",cy:"12",r:"4.5",fill:"#dc2626",stroke:"#fef08a","stroke-width":"1.2"})],-1)])],4)])]))}});export{W as default};
@@ -1 +1 @@
import{u as v,t as S}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as B,a as o,b as n,e as t,n as u,u as r,F as i,f as a,t as F,g as z,c as C}from"./vendor-vue-kYoPQr5S.js";const M={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},L={class:"absolute inset-0 rounded-full p-2.5 shadow-[0_0_40px_rgba(99,102,241,0.45)]",style:{background:"linear-gradient(135deg, #6366f1, #a855f7, #0ea5e9)"}},P={class:"w-full h-full rounded-full border border-indigo-300/40 relative overflow-hidden bg-[#050816]"},D=["cx","cy","r"],I=["d","fill"],N=["transform"],R={x:"150",y:"45","text-anchor":"middle",fill:"#eef2ff","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans"},V=["href"],W=["cx","cy"],q=["cx","cy"],A={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_10px_#a78bfa]"},H=B({__name:"GalaxySpaceWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(c,{emit:h}){const x=c,m=h,{wheelStyle:y,pointerStyle:p,getSlicePath:g,getTextRotation:_,pegs:w}=v(x,()=>m("spin-finished"),{radius:138,pegRadius:143}),d=["#1e1b4b","#312e81","#4c1d95","#0f172a","#1e3a8a","#581c87"],k=C(()=>Array.from({length:28},(b,s)=>{const e=s*47%360,l=40+s*13%90,f=(e-90)*Math.PI/180;return{x:150+l*Math.cos(f),y:150+l*Math.sin(f),s:.6+s%3*.4}}));return(b,s)=>(o(),n("div",M,[t("div",L,[t("div",P,[(o(),n("svg",{class:"w-full h-full",style:u(r(y)),viewBox:"0 0 300 300"},[(o(!0),n(i,null,a(k.value,(e,l)=>(o(),n("circle",{key:"st"+l,cx:e.x,cy:e.y,r:e.s,fill:"#e0e7ff",opacity:"0.7"},null,8,D))),128)),(o(!0),n(i,null,a(c.segments,(e,l)=>(o(),n("g",{key:e.id},[t("path",{d:r(g)(l),fill:e.color||d[l%d.length],stroke:"#a5b4fc","stroke-width":"1","stroke-opacity":"0.6"},null,8,I),t("g",{transform:r(_)(l)},[t("text",R,F(r(S)(e.title)),1),e.image?(o(),n("image",{key:0,href:e.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):z("",!0)],8,N)]))),128)),(o(!0),n(i,null,a(r(w),(e,l)=>(o(),n("g",{key:l},[t("circle",{cx:e.x,cy:e.y,r:"3",fill:"#0f172a",stroke:"#c4b5fd","stroke-width":"1"},null,8,W),t("circle",{cx:e.x,cy:e.y,r:"1.4",fill:"#a78bfa"},null,8,q)]))),128)),s[0]||(s[0]=t("circle",{cx:"150",cy:"150",r:"30",fill:"#0b1026",stroke:"#818cf8","stroke-width":"2"},null,-1)),s[1]||(s[1]=t("circle",{cx:"150",cy:"150",r:"18",fill:"#312e81",stroke:"#e879f9","stroke-width":"1.5"},null,-1)),s[2]||(s[2]=t("text",{x:"150",y:"156","text-anchor":"middle","font-size":"14"},"🌌",-1))],4))])]),t("div",A,[t("div",{style:u(r(p)),class:"w-8 h-[42px] origin-[50%_10px] will-change-transform"},[...s[3]||(s[3]=[t("svg",{width:"32",height:"42",viewBox:"0 0 32 42",fill:"none"},[t("path",{d:"M16 42L4 12C2 7 6 2 11 2H21C26 2 30 7 28 12L16 42Z",fill:"#a78bfa",stroke:"#fff","stroke-width":"1.4"}),t("circle",{cx:"16",cy:"10",r:"4",fill:"#e879f9"})],-1)])],4)])]))}});export{H as default};
import{u as v,t as S}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as B,a as o,b as n,e as t,n as u,u as r,F as i,f as a,t as F,g as z,c as C}from"./vendor-vue-DYkhP7t5.js";const M={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},L={class:"absolute inset-0 rounded-full p-2.5 shadow-[0_0_40px_rgba(99,102,241,0.45)]",style:{background:"linear-gradient(135deg, #6366f1, #a855f7, #0ea5e9)"}},P={class:"w-full h-full rounded-full border border-indigo-300/40 relative overflow-hidden bg-[#050816]"},D=["cx","cy","r"],I=["d","fill"],N=["transform"],R={x:"150",y:"45","text-anchor":"middle",fill:"#eef2ff","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans"},V=["href"],W=["cx","cy"],q=["cx","cy"],A={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_10px_#a78bfa]"},H=B({__name:"GalaxySpaceWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(c,{emit:h}){const x=c,m=h,{wheelStyle:y,pointerStyle:p,getSlicePath:g,getTextRotation:_,pegs:w}=v(x,()=>m("spin-finished"),{radius:138,pegRadius:143}),d=["#1e1b4b","#312e81","#4c1d95","#0f172a","#1e3a8a","#581c87"],k=C(()=>Array.from({length:28},(b,s)=>{const e=s*47%360,l=40+s*13%90,f=(e-90)*Math.PI/180;return{x:150+l*Math.cos(f),y:150+l*Math.sin(f),s:.6+s%3*.4}}));return(b,s)=>(o(),n("div",M,[t("div",L,[t("div",P,[(o(),n("svg",{class:"w-full h-full",style:u(r(y)),viewBox:"0 0 300 300"},[(o(!0),n(i,null,a(k.value,(e,l)=>(o(),n("circle",{key:"st"+l,cx:e.x,cy:e.y,r:e.s,fill:"#e0e7ff",opacity:"0.7"},null,8,D))),128)),(o(!0),n(i,null,a(c.segments,(e,l)=>(o(),n("g",{key:e.id},[t("path",{d:r(g)(l),fill:e.color||d[l%d.length],stroke:"#a5b4fc","stroke-width":"1","stroke-opacity":"0.6"},null,8,I),t("g",{transform:r(_)(l)},[t("text",R,F(r(S)(e.title)),1),e.image?(o(),n("image",{key:0,href:e.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):z("",!0)],8,N)]))),128)),(o(!0),n(i,null,a(r(w),(e,l)=>(o(),n("g",{key:l},[t("circle",{cx:e.x,cy:e.y,r:"3",fill:"#0f172a",stroke:"#c4b5fd","stroke-width":"1"},null,8,W),t("circle",{cx:e.x,cy:e.y,r:"1.4",fill:"#a78bfa"},null,8,q)]))),128)),s[0]||(s[0]=t("circle",{cx:"150",cy:"150",r:"30",fill:"#0b1026",stroke:"#818cf8","stroke-width":"2"},null,-1)),s[1]||(s[1]=t("circle",{cx:"150",cy:"150",r:"18",fill:"#312e81",stroke:"#e879f9","stroke-width":"1.5"},null,-1)),s[2]||(s[2]=t("text",{x:"150",y:"156","text-anchor":"middle","font-size":"14"},"🌌",-1))],4))])]),t("div",A,[t("div",{style:u(r(p)),class:"w-8 h-[42px] origin-[50%_10px] will-change-transform"},[...s[3]||(s[3]=[t("svg",{width:"32",height:"42",viewBox:"0 0 32 42",fill:"none"},[t("path",{d:"M16 42L4 12C2 7 6 2 11 2H21C26 2 30 7 28 12L16 42Z",fill:"#a78bfa",stroke:"#fff","stroke-width":"1.4"}),t("circle",{cx:"16",cy:"10",r:"4",fill:"#e879f9"})],-1)])],4)])]))}});export{H as default};
@@ -1 +1 @@
import{u as _,t as k}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as b,a as o,b as s,e,n as a,u as r,F as c,f as n,t as v,g as G,h as d}from"./vendor-vue-kYoPQr5S.js";const P={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},S={class:"absolute inset-0 rounded-full p-3 shadow-[0_15px_40px_rgba(0,0,0,0.8)]",style:{background:"linear-gradient(135deg, #d4af37 0%, #f3e5ab 25%, #aa7c11 50%, #fdf6c7 75%, #8a6408 100%)"}},B={class:"w-full h-full rounded-full border-2 border-amber-200/60 relative overflow-hidden bg-gradient-to-b from-stone-900 to-black"},C=["d","fill"],L=["transform"],z={x:"150",y:"45","text-anchor":"middle",fill:"#fdf6c7","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans tracking-wider"},D=["href"],F=["cx","cy"],V=["cx","cy"],N=["cx","cy"],H={class:"absolute -top-3.5 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_4px_10px_rgba(212,175,55,0.6)]"},W=b({__name:"LuxuryGoldWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(f,{emit:p}){const u=f,x=p,{wheelStyle:h,pointerStyle:y,getSlicePath:m,getTextRotation:g,pegs:w}=_(u,()=>x("spin-finished"),{radius:138,pegRadius:143});return(I,i)=>(o(),s("div",P,[e("div",S,[e("div",B,[(o(),s("svg",{class:"w-full h-full",style:a(r(h)),viewBox:"0 0 300 300"},[(o(!0),s(c,null,n(f.segments,(t,l)=>(o(),s("g",{key:t.id},[e("path",{d:r(m)(l),fill:t.color||(l%2===0?"#1c1917":"#0c0a09"),stroke:"#d4af37","stroke-width":"1.5"},null,8,C),e("g",{transform:r(g)(l)},[e("text",z,v(r(k)(t.title)),1),t.image?(o(),s("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,D)):G("",!0)],8,L)]))),128)),(o(!0),s(c,null,n(r(w),(t,l)=>(o(),s("g",{key:l},[e("circle",{cx:t.x,cy:t.y,r:"4.2",fill:"#1c1917",stroke:"#aa7c11","stroke-width":"0.7"},null,8,F),e("circle",{cx:t.x,cy:t.y,r:"3.3",fill:"url(#luxuryPeg3D)",stroke:"#fdf6c7","stroke-width":"0.5"},null,8,V),e("circle",{cx:t.x-.9,cy:t.y-1,r:"0.8",fill:"#ffffff",opacity:"0.85"},null,8,N)]))),128)),i[0]||(i[0]=d('<circle cx="150" cy="150" r="30" fill="url(#luxuryGoldGrad)" stroke="#fdf6c7" stroke-width="2"></circle><circle cx="150" cy="150" r="22" fill="#1c1917" stroke="#aa7c11" stroke-width="1"></circle><text x="150" y="156" text-anchor="middle" font-size="14" font-family="serif" font-weight="bold" fill="#fdf6c7">VIP</text><defs><linearGradient id="luxuryGoldGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#fdf6c7"></stop><stop offset="50%" stop-color="#d4af37"></stop><stop offset="100%" stop-color="#8a6408"></stop></linearGradient><radialGradient id="luxuryPeg3D" cx="35%" cy="30%" r="70%"><stop offset="0%" stop-color="#ffffff"></stop><stop offset="30%" stop-color="#fdf6c7"></stop><stop offset="70%" stop-color="#d4af37"></stop><stop offset="100%" stop-color="#543d03"></stop></radialGradient></defs>',4))],4))])]),e("div",H,[e("div",{style:a(r(y)),class:"w-9 h-[46px] origin-[50%_12px] will-change-transform"},[...i[1]||(i[1]=[d('<svg width="36" height="46" viewBox="0 0 36 46" fill="none" class="overflow-visible"><path d="M18 46L5 14C3 9 7 3 12 3H24C29 3 33 9 31 14L18 46Z" fill="url(#luxuryPointerGrad)" stroke="#fff" stroke-width="1.2"></path><path d="M18 41L8 14C7 11 9 6 13 6H23C27 6 29 11 28 14L18 41Z" fill="none" stroke="rgba(255,255,255,0.4)" stroke-width="0.8"></path><circle cx="18" cy="12" r="4.5" fill="#1c1917" stroke="#fdf6c7" stroke-width="1.5"></circle><circle cx="17.2" cy="10.8" r="1.1" fill="#ffffff" opacity="0.85"></circle><defs><linearGradient id="luxuryPointerGrad" x1="0" y1="0" x2="1" y2="1"><stop offset="0%" stop-color="#fdf6c7"></stop><stop offset="50%" stop-color="#d4af37"></stop><stop offset="100%" stop-color="#543d03"></stop></linearGradient></defs></svg>',1)])],4)])]))}});export{W as default};
import{u as _,t as k}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as b,a as o,b as s,e,n as a,u as r,F as c,f as n,t as v,g as G,h as d}from"./vendor-vue-DYkhP7t5.js";const P={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},S={class:"absolute inset-0 rounded-full p-3 shadow-[0_15px_40px_rgba(0,0,0,0.8)]",style:{background:"linear-gradient(135deg, #d4af37 0%, #f3e5ab 25%, #aa7c11 50%, #fdf6c7 75%, #8a6408 100%)"}},B={class:"w-full h-full rounded-full border-2 border-amber-200/60 relative overflow-hidden bg-gradient-to-b from-stone-900 to-black"},C=["d","fill"],L=["transform"],z={x:"150",y:"45","text-anchor":"middle",fill:"#fdf6c7","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans tracking-wider"},D=["href"],F=["cx","cy"],V=["cx","cy"],N=["cx","cy"],H={class:"absolute -top-3.5 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_4px_10px_rgba(212,175,55,0.6)]"},W=b({__name:"LuxuryGoldWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(f,{emit:p}){const u=f,x=p,{wheelStyle:h,pointerStyle:y,getSlicePath:m,getTextRotation:g,pegs:w}=_(u,()=>x("spin-finished"),{radius:138,pegRadius:143});return(I,i)=>(o(),s("div",P,[e("div",S,[e("div",B,[(o(),s("svg",{class:"w-full h-full",style:a(r(h)),viewBox:"0 0 300 300"},[(o(!0),s(c,null,n(f.segments,(t,l)=>(o(),s("g",{key:t.id},[e("path",{d:r(m)(l),fill:t.color||(l%2===0?"#1c1917":"#0c0a09"),stroke:"#d4af37","stroke-width":"1.5"},null,8,C),e("g",{transform:r(g)(l)},[e("text",z,v(r(k)(t.title)),1),t.image?(o(),s("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,D)):G("",!0)],8,L)]))),128)),(o(!0),s(c,null,n(r(w),(t,l)=>(o(),s("g",{key:l},[e("circle",{cx:t.x,cy:t.y,r:"4.2",fill:"#1c1917",stroke:"#aa7c11","stroke-width":"0.7"},null,8,F),e("circle",{cx:t.x,cy:t.y,r:"3.3",fill:"url(#luxuryPeg3D)",stroke:"#fdf6c7","stroke-width":"0.5"},null,8,V),e("circle",{cx:t.x-.9,cy:t.y-1,r:"0.8",fill:"#ffffff",opacity:"0.85"},null,8,N)]))),128)),i[0]||(i[0]=d('<circle cx="150" cy="150" r="30" fill="url(#luxuryGoldGrad)" stroke="#fdf6c7" stroke-width="2"></circle><circle cx="150" cy="150" r="22" fill="#1c1917" stroke="#aa7c11" stroke-width="1"></circle><text x="150" y="156" text-anchor="middle" font-size="14" font-family="serif" font-weight="bold" fill="#fdf6c7">VIP</text><defs><linearGradient id="luxuryGoldGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#fdf6c7"></stop><stop offset="50%" stop-color="#d4af37"></stop><stop offset="100%" stop-color="#8a6408"></stop></linearGradient><radialGradient id="luxuryPeg3D" cx="35%" cy="30%" r="70%"><stop offset="0%" stop-color="#ffffff"></stop><stop offset="30%" stop-color="#fdf6c7"></stop><stop offset="70%" stop-color="#d4af37"></stop><stop offset="100%" stop-color="#543d03"></stop></radialGradient></defs>',4))],4))])]),e("div",H,[e("div",{style:a(r(y)),class:"w-9 h-[46px] origin-[50%_12px] will-change-transform"},[...i[1]||(i[1]=[d('<svg width="36" height="46" viewBox="0 0 36 46" fill="none" class="overflow-visible"><path d="M18 46L5 14C3 9 7 3 12 3H24C29 3 33 9 31 14L18 46Z" fill="url(#luxuryPointerGrad)" stroke="#fff" stroke-width="1.2"></path><path d="M18 41L8 14C7 11 9 6 13 6H23C27 6 29 11 28 14L18 41Z" fill="none" stroke="rgba(255,255,255,0.4)" stroke-width="0.8"></path><circle cx="18" cy="12" r="4.5" fill="#1c1917" stroke="#fdf6c7" stroke-width="1.5"></circle><circle cx="17.2" cy="10.8" r="1.1" fill="#ffffff" opacity="0.85"></circle><defs><linearGradient id="luxuryPointerGrad" x1="0" y1="0" x2="1" y2="1"><stop offset="0%" stop-color="#fdf6c7"></stop><stop offset="50%" stop-color="#d4af37"></stop><stop offset="100%" stop-color="#543d03"></stop></linearGradient></defs></svg>',1)])],4)])]))}});export{W as default};
@@ -1 +1 @@
import{u as y,t as _}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as v,a as s,b as l,e,n as a,u as i,F as f,f as d,t as b,g as k}from"./vendor-vue-kYoPQr5S.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},S={class:"absolute inset-0 rounded-full p-2 bg-slate-800/80 backdrop-blur border border-slate-700 shadow-2xl"},F={class:"w-full h-full rounded-full relative overflow-hidden bg-slate-900"},C=["d","fill"],z=["transform"],L={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"11","font-weight":"600",class:"wheel-slice-text tracking-normal font-sans"},P=["href"],D=["cx","cy"],M={class:"absolute -top-2.5 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-md"},W=v({__name:"MinimalFlatWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(r,{emit:c}){const m=r,u=c,{wheelStyle:h,pointerStyle:p,getSlicePath:x,getTextRotation:g,pegs:w}=y(m,()=>u("spin-finished"),{radius:142,pegRadius:144});return(N,o)=>(s(),l("div",B,[e("div",S,[e("div",F,[(s(),l("svg",{class:"w-full h-full",style:a(i(h)),viewBox:"0 0 300 300"},[(s(!0),l(f,null,d(r.segments,(t,n)=>(s(),l("g",{key:t.id},[e("path",{d:i(x)(n),fill:t.color||(n%2===0?"#3b82f6":"#6366f1"),stroke:"#ffffff","stroke-width":"1"},null,8,C),e("g",{transform:i(g)(n)},[e("text",L,b(i(_)(t.title)),1),t.image?(s(),l("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,P)):k("",!0)],8,z)]))),128)),(s(!0),l(f,null,d(i(w),(t,n)=>(s(),l("circle",{key:n,cx:t.x,cy:t.y,r:"2",fill:"#ffffff",opacity:"0.8"},null,8,D))),128)),o[0]||(o[0]=e("circle",{cx:"150",cy:"150",r:"28",fill:"#ffffff",filter:"drop-shadow(0 2px 6px rgba(0,0,0,0.2))"},null,-1)),o[1]||(o[1]=e("circle",{cx:"150",cy:"150",r:"14",fill:"#0f172a"},null,-1))],4))])]),e("div",M,[e("div",{style:a(i(p)),class:"w-7 h-[34px] origin-[50%_6px] will-change-transform"},[...o[2]||(o[2]=[e("svg",{width:"28",height:"34",viewBox:"0 0 28 34",fill:"none",class:"overflow-visible"},[e("path",{d:"M14 34L2 6C0.5 3 2.5 0 6 0H22C25.5 0 27.5 3 26 6L14 34Z",fill:"#3b82f6",stroke:"#ffffff","stroke-width":"2"})],-1)])],4)])]))}});export{W as default};
import{u as y,t as _}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as v,a as s,b as l,e,n as a,u as i,F as f,f as d,t as b,g as k}from"./vendor-vue-DYkhP7t5.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},S={class:"absolute inset-0 rounded-full p-2 bg-slate-800/80 backdrop-blur border border-slate-700 shadow-2xl"},F={class:"w-full h-full rounded-full relative overflow-hidden bg-slate-900"},C=["d","fill"],z=["transform"],L={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"11","font-weight":"600",class:"wheel-slice-text tracking-normal font-sans"},P=["href"],D=["cx","cy"],M={class:"absolute -top-2.5 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-md"},W=v({__name:"MinimalFlatWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(r,{emit:c}){const m=r,u=c,{wheelStyle:h,pointerStyle:p,getSlicePath:x,getTextRotation:g,pegs:w}=y(m,()=>u("spin-finished"),{radius:142,pegRadius:144});return(N,o)=>(s(),l("div",B,[e("div",S,[e("div",F,[(s(),l("svg",{class:"w-full h-full",style:a(i(h)),viewBox:"0 0 300 300"},[(s(!0),l(f,null,d(r.segments,(t,n)=>(s(),l("g",{key:t.id},[e("path",{d:i(x)(n),fill:t.color||(n%2===0?"#3b82f6":"#6366f1"),stroke:"#ffffff","stroke-width":"1"},null,8,C),e("g",{transform:i(g)(n)},[e("text",L,b(i(_)(t.title)),1),t.image?(s(),l("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,P)):k("",!0)],8,z)]))),128)),(s(!0),l(f,null,d(i(w),(t,n)=>(s(),l("circle",{key:n,cx:t.x,cy:t.y,r:"2",fill:"#ffffff",opacity:"0.8"},null,8,D))),128)),o[0]||(o[0]=e("circle",{cx:"150",cy:"150",r:"28",fill:"#ffffff",filter:"drop-shadow(0 2px 6px rgba(0,0,0,0.2))"},null,-1)),o[1]||(o[1]=e("circle",{cx:"150",cy:"150",r:"14",fill:"#0f172a"},null,-1))],4))])]),e("div",M,[e("div",{style:a(i(p)),class:"w-7 h-[34px] origin-[50%_6px] will-change-transform"},[...o[2]||(o[2]=[e("svg",{width:"28",height:"34",viewBox:"0 0 28 34",fill:"none",class:"overflow-visible"},[e("path",{d:"M14 34L2 6C0.5 3 2.5 0 6 0H22C25.5 0 27.5 3 26 6L14 34Z",fill:"#3b82f6",stroke:"#ffffff","stroke-width":"2"})],-1)])],4)])]))}});export{W as default};
@@ -1 +1 @@
import{u as w,t as _}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as k,a as l,b as i,e,n as f,u as o,F as a,f as c,t as b,g as v}from"./vendor-vue-kYoPQr5S.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},S={class:"absolute inset-0 rounded-full p-2 bg-gradient-to-tr from-cyan-500 via-fuchsia-600 to-blue-600 shadow-[0_0_30px_rgba(0,240,255,0.4)] animate-neon-pulse"},C={class:"w-full h-full rounded-full border-2 border-cyan-400 relative overflow-hidden bg-[#070913]"},F=["d","fill"],z=["transform"],L={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"11","font-weight":"800",class:"wheel-slice-text tracking-wide uppercase font-sans"},N=["href"],P=["cx","cy"],D=["cx","cy"],R={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_12px_#00f0ff]"},E=k({__name:"NeonCyberWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(n,{emit:d}){const u=n,p=d,{wheelStyle:m,pointerStyle:x,getSlicePath:h,getTextRotation:y,pegs:g}=w(u,()=>p("spin-finished"),{radius:138,pegRadius:143});return(V,t)=>(l(),i("div",B,[e("div",S,[e("div",C,[(l(),i("svg",{class:"w-full h-full",style:f(o(m)),viewBox:"0 0 300 300"},[(l(!0),i(a,null,c(n.segments,(s,r)=>(l(),i("g",{key:s.id},[e("path",{d:o(h)(r),fill:s.color||(r%2===0?"#111827":"#1e1b4b"),stroke:"#00f0ff","stroke-width":"1.5","stroke-opacity":"0.8"},null,8,F),e("g",{transform:o(y)(r)},[e("text",L,b(o(_)(s.title)),1),s.image?(l(),i("image",{key:0,href:s.image,x:"138",y:"54",width:"24",height:"24"},null,8,N)):v("",!0)],8,z)]))),128)),(l(!0),i(a,null,c(o(g),(s,r)=>(l(),i("g",{key:r},[e("circle",{cx:s.x,cy:s.y,r:"3.2",fill:"#05070e",stroke:"#00f0ff","stroke-width":"1"},null,8,P),e("circle",{cx:s.x,cy:s.y,r:"1.5",fill:"#00f0ff"},null,8,D)]))),128)),t[0]||(t[0]=e("circle",{cx:"150",cy:"150",r:"32",fill:"#05070e",stroke:"#00f0ff","stroke-width":"2"},null,-1)),t[1]||(t[1]=e("circle",{cx:"150",cy:"150",r:"22",fill:"#1e1b4b",stroke:"#ec4899","stroke-width":"2"},null,-1)),t[2]||(t[2]=e("circle",{cx:"150",cy:"150",r:"10",fill:"#00f0ff",class:"animate-ping",opacity:"0.3"},null,-1)),t[3]||(t[3]=e("circle",{cx:"150",cy:"150",r:"8",fill:"#00f0ff"},null,-1))],4))])]),e("div",R,[e("div",{style:f(o(x)),class:"w-[34px] h-[42px] origin-[50%_10px] will-change-transform"},[...t[4]||(t[4]=[e("svg",{width:"34",height:"42",viewBox:"0 0 34 42",fill:"none",class:"overflow-visible"},[e("path",{d:"M17 42L4 12C2 7 6 2 11 2H23C28 2 32 7 30 12L17 42Z",fill:"#00f0ff",stroke:"#ffffff","stroke-width":"1.5"}),e("circle",{cx:"17",cy:"10",r:"4",fill:"#ff007f"})],-1)])],4)])]))}});export{E as default};
import{u as w,t as _}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as k,a as l,b as i,e,n as f,u as o,F as a,f as c,t as b,g as v}from"./vendor-vue-DYkhP7t5.js";const B={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},S={class:"absolute inset-0 rounded-full p-2 bg-gradient-to-tr from-cyan-500 via-fuchsia-600 to-blue-600 shadow-[0_0_30px_rgba(0,240,255,0.4)] animate-neon-pulse"},C={class:"w-full h-full rounded-full border-2 border-cyan-400 relative overflow-hidden bg-[#070913]"},F=["d","fill"],z=["transform"],L={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"11","font-weight":"800",class:"wheel-slice-text tracking-wide uppercase font-sans"},N=["href"],P=["cx","cy"],D=["cx","cy"],R={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_0_12px_#00f0ff]"},E=k({__name:"NeonCyberWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(n,{emit:d}){const u=n,p=d,{wheelStyle:m,pointerStyle:x,getSlicePath:h,getTextRotation:y,pegs:g}=w(u,()=>p("spin-finished"),{radius:138,pegRadius:143});return(V,t)=>(l(),i("div",B,[e("div",S,[e("div",C,[(l(),i("svg",{class:"w-full h-full",style:f(o(m)),viewBox:"0 0 300 300"},[(l(!0),i(a,null,c(n.segments,(s,r)=>(l(),i("g",{key:s.id},[e("path",{d:o(h)(r),fill:s.color||(r%2===0?"#111827":"#1e1b4b"),stroke:"#00f0ff","stroke-width":"1.5","stroke-opacity":"0.8"},null,8,F),e("g",{transform:o(y)(r)},[e("text",L,b(o(_)(s.title)),1),s.image?(l(),i("image",{key:0,href:s.image,x:"138",y:"54",width:"24",height:"24"},null,8,N)):v("",!0)],8,z)]))),128)),(l(!0),i(a,null,c(o(g),(s,r)=>(l(),i("g",{key:r},[e("circle",{cx:s.x,cy:s.y,r:"3.2",fill:"#05070e",stroke:"#00f0ff","stroke-width":"1"},null,8,P),e("circle",{cx:s.x,cy:s.y,r:"1.5",fill:"#00f0ff"},null,8,D)]))),128)),t[0]||(t[0]=e("circle",{cx:"150",cy:"150",r:"32",fill:"#05070e",stroke:"#00f0ff","stroke-width":"2"},null,-1)),t[1]||(t[1]=e("circle",{cx:"150",cy:"150",r:"22",fill:"#1e1b4b",stroke:"#ec4899","stroke-width":"2"},null,-1)),t[2]||(t[2]=e("circle",{cx:"150",cy:"150",r:"10",fill:"#00f0ff",class:"animate-ping",opacity:"0.3"},null,-1)),t[3]||(t[3]=e("circle",{cx:"150",cy:"150",r:"8",fill:"#00f0ff"},null,-1))],4))])]),e("div",R,[e("div",{style:f(o(x)),class:"w-[34px] h-[42px] origin-[50%_10px] will-change-transform"},[...t[4]||(t[4]=[e("svg",{width:"34",height:"42",viewBox:"0 0 34 42",fill:"none",class:"overflow-visible"},[e("path",{d:"M17 42L4 12C2 7 6 2 11 2H23C28 2 32 7 30 12L17 42Z",fill:"#00f0ff",stroke:"#ffffff","stroke-width":"1.5"}),e("circle",{cx:"17",cy:"10",r:"4",fill:"#ff007f"})],-1)])],4)])]))}});export{E as default};
@@ -1 +1 @@
import{u as k,t as v}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as B,a as l,b as o,e,n as c,u as i,F as d,f as h,t as C,g as S,c as P}from"./vendor-vue-kYoPQr5S.js";const z={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},F={class:"absolute inset-0 rounded-full p-3.5 bg-amber-400 border-4 border-amber-600 shadow-[0_12px_0_#b45309,0_20px_25px_rgba(0,0,0,0.5)]"},L={class:"w-full h-full rounded-full border-4 border-white relative overflow-hidden bg-amber-50"},D=["d","fill"],N=["transform"],R={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"12","font-weight":"900",class:"wheel-slice-text font-sans tracking-wide",style:{"paint-order":"stroke fill",stroke:"rgba(0,0,0,0.3)","stroke-width":"2px"}},V=["href"],W=["cx","cy"],q=["cx","cy","fill"],E=["cx","cy"],H={class:"absolute -top-4 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_6px_0_#991b1b]"},T=B({__name:"PlayfulCartoonWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(n,{emit:x}){const u=n,m=x,{wheelStyle:p,pointerStyle:w,getSlicePath:y,getTextRotation:_,makePegs:b}=k(u,()=>m("spin-finished"),{radius:138,pegRadius:142}),f=["#f43f5e","#8b5cf6","#06b6d4","#10b981","#f59e0b","#ec4899"],g=P(()=>b(24,142).map((a,s)=>({...a,color:f[s%f.length]})));return(a,s)=>(l(),o("div",z,[e("div",F,[e("div",L,[(l(),o("svg",{class:"w-full h-full",style:c(i(p)),viewBox:"0 0 300 300"},[(l(!0),o(d,null,h(n.segments,(t,r)=>(l(),o("g",{key:t.id},[e("path",{d:i(y)(r),fill:t.color||f[r%f.length],stroke:"#ffffff","stroke-width":"3"},null,8,D),e("g",{transform:i(_)(r)},[e("text",R,C(i(v)(t.title)),1),t.image?(l(),o("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):S("",!0)],8,N)]))),128)),(l(!0),o(d,null,h(g.value,(t,r)=>(l(),o("g",{key:r},[e("circle",{cx:t.x,cy:t.y,r:"4",fill:"#ffffff",stroke:"#b45309","stroke-width":"1.5"},null,8,W),e("circle",{cx:t.x,cy:t.y,r:"2.8",fill:t.color},null,8,q),e("circle",{cx:t.x-.8,cy:t.y-.8,r:"0.8",fill:"#ffffff"},null,8,E)]))),128)),s[0]||(s[0]=e("circle",{cx:"150",cy:"150",r:"32",fill:"#ef4444",stroke:"#ffffff","stroke-width":"4"},null,-1)),s[1]||(s[1]=e("circle",{cx:"150",cy:"150",r:"22",fill:"#facc15",stroke:"#b45309","stroke-width":"2"},null,-1)),s[2]||(s[2]=e("text",{x:"150",y:"157","text-anchor":"middle","font-size":"20"},"✨",-1))],4))])]),e("div",H,[e("div",{style:c(i(w)),class:"w-[42px] h-[50px] origin-[50%_14px] will-change-transform"},[...s[3]||(s[3]=[e("svg",{width:"42",height:"50",viewBox:"0 0 42 50",fill:"none",class:"overflow-visible"},[e("path",{d:"M21 50L6 16C4 11 8 4 14 4H28C34 4 38 11 36 16L21 50Z",fill:"#ef4444",stroke:"#ffffff","stroke-width":"3"}),e("circle",{cx:"21",cy:"14",r:"6",fill:"#facc15",stroke:"#ffffff","stroke-width":"2"})],-1)])],4)])]))}});export{T as default};
import{u as k,t as v}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as B,a as l,b as o,e,n as c,u as i,F as d,f as h,t as C,g as S,c as P}from"./vendor-vue-DYkhP7t5.js";const z={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},F={class:"absolute inset-0 rounded-full p-3.5 bg-amber-400 border-4 border-amber-600 shadow-[0_12px_0_#b45309,0_20px_25px_rgba(0,0,0,0.5)]"},L={class:"w-full h-full rounded-full border-4 border-white relative overflow-hidden bg-amber-50"},D=["d","fill"],N=["transform"],R={x:"150",y:"45","text-anchor":"middle",fill:"#ffffff","font-size":"12","font-weight":"900",class:"wheel-slice-text font-sans tracking-wide",style:{"paint-order":"stroke fill",stroke:"rgba(0,0,0,0.3)","stroke-width":"2px"}},V=["href"],W=["cx","cy"],q=["cx","cy","fill"],E=["cx","cy"],H={class:"absolute -top-4 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-[0_6px_0_#991b1b]"},T=B({__name:"PlayfulCartoonWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(n,{emit:x}){const u=n,m=x,{wheelStyle:p,pointerStyle:w,getSlicePath:y,getTextRotation:_,makePegs:b}=k(u,()=>m("spin-finished"),{radius:138,pegRadius:142}),f=["#f43f5e","#8b5cf6","#06b6d4","#10b981","#f59e0b","#ec4899"],g=P(()=>b(24,142).map((a,s)=>({...a,color:f[s%f.length]})));return(a,s)=>(l(),o("div",z,[e("div",F,[e("div",L,[(l(),o("svg",{class:"w-full h-full",style:c(i(p)),viewBox:"0 0 300 300"},[(l(!0),o(d,null,h(n.segments,(t,r)=>(l(),o("g",{key:t.id},[e("path",{d:i(y)(r),fill:t.color||f[r%f.length],stroke:"#ffffff","stroke-width":"3"},null,8,D),e("g",{transform:i(_)(r)},[e("text",R,C(i(v)(t.title)),1),t.image?(l(),o("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,V)):S("",!0)],8,N)]))),128)),(l(!0),o(d,null,h(g.value,(t,r)=>(l(),o("g",{key:r},[e("circle",{cx:t.x,cy:t.y,r:"4",fill:"#ffffff",stroke:"#b45309","stroke-width":"1.5"},null,8,W),e("circle",{cx:t.x,cy:t.y,r:"2.8",fill:t.color},null,8,q),e("circle",{cx:t.x-.8,cy:t.y-.8,r:"0.8",fill:"#ffffff"},null,8,E)]))),128)),s[0]||(s[0]=e("circle",{cx:"150",cy:"150",r:"32",fill:"#ef4444",stroke:"#ffffff","stroke-width":"4"},null,-1)),s[1]||(s[1]=e("circle",{cx:"150",cy:"150",r:"22",fill:"#facc15",stroke:"#b45309","stroke-width":"2"},null,-1)),s[2]||(s[2]=e("text",{x:"150",y:"157","text-anchor":"middle","font-size":"20"},"✨",-1))],4))])]),e("div",H,[e("div",{style:c(i(w)),class:"w-[42px] h-[50px] origin-[50%_14px] will-change-transform"},[...s[3]||(s[3]=[e("svg",{width:"42",height:"50",viewBox:"0 0 42 50",fill:"none",class:"overflow-visible"},[e("path",{d:"M21 50L6 16C4 11 8 4 14 4H28C34 4 38 11 36 16L21 50Z",fill:"#ef4444",stroke:"#ffffff","stroke-width":"3"}),e("circle",{cx:"21",cy:"14",r:"6",fill:"#facc15",stroke:"#ffffff","stroke-width":"2"})],-1)])],4)])]))}});export{T as default};
@@ -1 +1 @@
import{u as g,t as _}from"./wheel-classiccasinowheel-DHnlMe5J.js";import{d as b,a as s,b as l,e,n as c,u as i,F as d,f,t as v,g as B,h as S}from"./vendor-vue-kYoPQr5S.js";const C={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},F={class:"absolute inset-0 rounded-full p-3 shadow-[0_12px_30px_rgba(60,30,10,0.55)]",style:{background:"linear-gradient(145deg, #c9a36a 0%, #6b3f1e 40%, #3e2412 100%)"}},z={class:"w-full h-full rounded-full border-[3px] border-[#c9a36a] relative overflow-hidden",style:{background:"radial-gradient(circle at 40% 35%, #5c3a1e 0%, #2a160c 70%)"}},A=["d","fill"],D=["transform"],G={x:"150",y:"45","text-anchor":"middle",fill:"#fff8e7","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans"},H=["href"],L=["cx","cy"],N=["cx","cy"],R=["x1","y1","x2","y2"],V={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-lg"},E=b({__name:"RusticWoodWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(a,{emit:x}){const u=a,h=x,{wheelStyle:p,pointerStyle:y,getSlicePath:m,getTextRotation:w,pegs:k}=g(u,()=>h("spin-finished"),{radius:138,pegRadius:143}),n=["#8B5A2B","#A0522D","#6B4226","#C4A484","#8B5A2B","#5D4037"];return(W,o)=>(s(),l("div",C,[e("div",F,[e("div",z,[(s(),l("svg",{class:"w-full h-full",style:c(i(p)),viewBox:"0 0 300 300"},[o[0]||(o[0]=e("circle",{cx:"150",cy:"150",r:"136",fill:"none",stroke:"#4a2c14","stroke-width":"8",opacity:"0.35"},null,-1)),o[1]||(o[1]=e("circle",{cx:"150",cy:"150",r:"120",fill:"none",stroke:"#7a4a22","stroke-width":"2",opacity:"0.25"},null,-1)),(s(!0),l(d,null,f(a.segments,(t,r)=>(s(),l("g",{key:t.id},[e("path",{d:i(m)(r),fill:t.color||n[r%n.length],stroke:"#3e2723","stroke-width":"1.5"},null,8,A),e("g",{transform:i(w)(r)},[e("text",G,v(i(_)(t.title)),1),t.image?(s(),l("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,H)):B("",!0)],8,D)]))),128)),(s(!0),l(d,null,f(i(k),(t,r)=>(s(),l("g",{key:r},[e("circle",{cx:t.x,cy:t.y,r:"4",fill:"#2c1810",stroke:"#8d6e63","stroke-width":"0.8"},null,8,L),e("circle",{cx:t.x,cy:t.y,r:"2.6",fill:"url(#woodBolt)"},null,8,N),e("line",{x1:t.x-1.6,y1:t.y,x2:t.x+1.6,y2:t.y,stroke:"#5d4037","stroke-width":"0.7"},null,8,R)]))),128)),o[2]||(o[2]=S('<circle cx="150" cy="150" r="30" fill="url(#woodHub)" stroke="#d7ccc8" stroke-width="2"></circle><circle cx="150" cy="150" r="18" fill="#3e2723" stroke="#a1887f" stroke-width="1.5"></circle><text x="150" y="156" text-anchor="middle" font-size="14" fill="#efebe9">🪵</text><defs><radialGradient id="woodBolt" cx="35%" cy="30%" r="70%"><stop offset="0%" stop-color="#efebe9"></stop><stop offset="50%" stop-color="#9e9e9e"></stop><stop offset="100%" stop-color="#424242"></stop></radialGradient><radialGradient id="woodHub" cx="40%" cy="35%" r="65%"><stop offset="0%" stop-color="#bcaaa4"></stop><stop offset="100%" stop-color="#5d4037"></stop></radialGradient></defs>',4))],4))])]),e("div",V,[e("div",{style:c(i(y)),class:"w-9 h-[44px] origin-[50%_12px] will-change-transform"},[...o[3]||(o[3]=[e("svg",{width:"36",height:"44",viewBox:"0 0 36 44",fill:"none"},[e("path",{d:"M18 44L5 14C3 9 7 3 12 3H24C29 3 33 9 31 14L18 44Z",fill:"#8d6e63",stroke:"#efebe9","stroke-width":"1.5"}),e("circle",{cx:"18",cy:"12",r:"4.5",fill:"#5d4037",stroke:"#d7ccc8","stroke-width":"1.2"})],-1)])],4)])]))}});export{E as default};
import{u as g,t as _}from"./wheel-classiccasinowheel-D335SDnp.js";import{d as b,a as s,b as l,e,n as c,u as i,F as d,f,t as v,g as B,h as S}from"./vendor-vue-DYkhP7t5.js";const C={class:"relative w-full max-w-[340px] xs:max-w-[380px] sm:max-w-[420px] aspect-square mx-auto select-none"},F={class:"absolute inset-0 rounded-full p-3 shadow-[0_12px_30px_rgba(60,30,10,0.55)]",style:{background:"linear-gradient(145deg, #c9a36a 0%, #6b3f1e 40%, #3e2412 100%)"}},z={class:"w-full h-full rounded-full border-[3px] border-[#c9a36a] relative overflow-hidden",style:{background:"radial-gradient(circle at 40% 35%, #5c3a1e 0%, #2a160c 70%)"}},A=["d","fill"],D=["transform"],G={x:"150",y:"45","text-anchor":"middle",fill:"#fff8e7","font-size":"11","font-weight":"700",class:"wheel-slice-text font-sans"},H=["href"],L=["cx","cy"],N=["cx","cy"],R=["x1","y1","x2","y2"],V={class:"absolute -top-3 left-1/2 -translate-x-1/2 z-20 pointer-events-none drop-shadow-lg"},E=b({__name:"RusticWoodWheel",props:{segments:{},targetSegmentIndex:{},spinning:{type:Boolean}},emits:["spin-finished"],setup(a,{emit:x}){const u=a,h=x,{wheelStyle:p,pointerStyle:y,getSlicePath:m,getTextRotation:w,pegs:k}=g(u,()=>h("spin-finished"),{radius:138,pegRadius:143}),n=["#8B5A2B","#A0522D","#6B4226","#C4A484","#8B5A2B","#5D4037"];return(W,o)=>(s(),l("div",C,[e("div",F,[e("div",z,[(s(),l("svg",{class:"w-full h-full",style:c(i(p)),viewBox:"0 0 300 300"},[o[0]||(o[0]=e("circle",{cx:"150",cy:"150",r:"136",fill:"none",stroke:"#4a2c14","stroke-width":"8",opacity:"0.35"},null,-1)),o[1]||(o[1]=e("circle",{cx:"150",cy:"150",r:"120",fill:"none",stroke:"#7a4a22","stroke-width":"2",opacity:"0.25"},null,-1)),(s(!0),l(d,null,f(a.segments,(t,r)=>(s(),l("g",{key:t.id},[e("path",{d:i(m)(r),fill:t.color||n[r%n.length],stroke:"#3e2723","stroke-width":"1.5"},null,8,A),e("g",{transform:i(w)(r)},[e("text",G,v(i(_)(t.title)),1),t.image?(s(),l("image",{key:0,href:t.image,x:"138",y:"54",width:"24",height:"24"},null,8,H)):B("",!0)],8,D)]))),128)),(s(!0),l(d,null,f(i(k),(t,r)=>(s(),l("g",{key:r},[e("circle",{cx:t.x,cy:t.y,r:"4",fill:"#2c1810",stroke:"#8d6e63","stroke-width":"0.8"},null,8,L),e("circle",{cx:t.x,cy:t.y,r:"2.6",fill:"url(#woodBolt)"},null,8,N),e("line",{x1:t.x-1.6,y1:t.y,x2:t.x+1.6,y2:t.y,stroke:"#5d4037","stroke-width":"0.7"},null,8,R)]))),128)),o[2]||(o[2]=S('<circle cx="150" cy="150" r="30" fill="url(#woodHub)" stroke="#d7ccc8" stroke-width="2"></circle><circle cx="150" cy="150" r="18" fill="#3e2723" stroke="#a1887f" stroke-width="1.5"></circle><text x="150" y="156" text-anchor="middle" font-size="14" fill="#efebe9">🪵</text><defs><radialGradient id="woodBolt" cx="35%" cy="30%" r="70%"><stop offset="0%" stop-color="#efebe9"></stop><stop offset="50%" stop-color="#9e9e9e"></stop><stop offset="100%" stop-color="#424242"></stop></radialGradient><radialGradient id="woodHub" cx="40%" cy="35%" r="65%"><stop offset="0%" stop-color="#bcaaa4"></stop><stop offset="100%" stop-color="#5d4037"></stop></radialGradient></defs>',4))],4))])]),e("div",V,[e("div",{style:c(i(y)),class:"w-9 h-[44px] origin-[50%_12px] will-change-transform"},[...o[3]||(o[3]=[e("svg",{width:"36",height:"44",viewBox:"0 0 36 44",fill:"none"},[e("path",{d:"M18 44L5 14C3 9 7 3 12 3H24C29 3 33 9 31 14L18 44Z",fill:"#8d6e63",stroke:"#efebe9","stroke-width":"1.5"}),e("circle",{cx:"18",cy:"12",r:"4.5",fill:"#5d4037",stroke:"#d7ccc8","stroke-width":"1.2"})],-1)])],4)])]))}});export{E as default};
+19 -19
View File
@@ -1,19 +1,19 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🎡</text></svg>" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>گردونه شانس و قرعه‌کشی</title>
<!-- Google Font Vazirmatn -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/index-DZsNn1RR.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-vue-kYoPQr5S.js">
<link rel="stylesheet" crossorigin href="/assets/index-nuCNT7vr.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans antialiased selection:bg-brand-500 selection:text-white overflow-x-hidden min-h-screen">
<div id="app"></div>␍
</body>
</html>
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🎡</text></svg>" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>گردونه شانس و قرعه‌کشی</title>
<!-- Google Font Vazirmatn -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<script type="module" crossorigin src="/assets/index-BAVpCd0B.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-vue-DYkhP7t5.js">
<link rel="stylesheet" crossorigin href="/assets/index-CRZcLTTX.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans antialiased selection:bg-brand-500 selection:text-white overflow-x-hidden min-h-screen">
<div id="app"></div>
</body>
</html>
@@ -66,13 +66,7 @@ async function handleRequestOtp() {
errorMessage.value = null;
try {
const res = await authStore.requestOtp(cleanMobile);
if (cleanMobile === '09382507041') {
await authStore.verifyOtp(cleanMobile, res?.devCode || '11111', props.campaignId);
emit('success');
emit('close');
return;
}
await authStore.requestOtp(cleanMobile);
step.value = 'OTP';
startCountdown();
} catch (err: any) {
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { toFarsiDigits } from '@lucky-wheel/shared-types';
import { Check, Copy, Frown, Sparkles, Trophy, Volume2 } from 'lucide-vue-next';
import { Check, Copy, Frown, RotateCw, Sparkles, Trophy, Volume2 } from 'lucide-vue-next';
import { computed, ref } from 'vue';
import { useRouter } from 'vue-router';
import { useAuthStore } from '../../stores/auth.store';
@@ -21,6 +21,20 @@ const isWin = computed(() => {
if (prize.value.title?.trim() === 'پوچ' || prize.value.title?.includes('پوچ')) return false;
return true;
});
const isRespin = computed(() => {
if (!prize.value) return false;
return Boolean(
spinStore.spinResult?.isRespin ||
prize.value.isRespin ||
prize.value.type === 'OTHER' ||
(prize.value.title &&
(prize.value.title.includes('شانس مجدد') ||
prize.value.title.includes('چرخش مجدد') ||
prize.value.title.includes('اسپین مجدد') ||
prize.value.title.includes('فرصت مجدد') ||
prize.value.title.toLowerCase().includes('respin'))),
);
});
const remainingChances = computed(() => authStore.chances.remainingChances);
async function copyCode(code: string) {
@@ -56,24 +70,40 @@ function handleGoToPrizes() {
<!-- Top Background Glow -->
<div
class="absolute -top-24 left-1/2 -translate-x-1/2 w-48 h-48 rounded-full blur-3xl opacity-40 pointer-events-none"
:class="isWin ? 'bg-amber-500' : 'bg-rose-500'"
:class="isWin ? (isRespin ? 'bg-cyan-500' : 'bg-amber-500') : 'bg-rose-500'"
></div>
<!-- Win Content -->
<div v-if="isWin" class="relative z-10">
<div class="inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-gradient-to-tr from-amber-500 to-yellow-300 text-slate-950 mb-3 shadow-lg shadow-amber-500/30">
<!-- Respin Badge vs Trophy -->
<div
v-if="isRespin"
class="inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-gradient-to-tr from-cyan-500 to-blue-500 text-white mb-3 shadow-lg shadow-cyan-500/30 animate-pulse"
>
<RotateCw class="w-8 h-8" />
</div>
<div
v-else
class="inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-gradient-to-tr from-amber-500 to-yellow-300 text-slate-950 mb-3 shadow-lg shadow-amber-500/30"
>
<Trophy class="w-8 h-8" />
</div>
<h3 class="text-xl font-black text-transparent bg-clip-text bg-gradient-to-r from-amber-200 via-yellow-400 to-amber-200 mb-1">
تبریک! برنده شدید!
<h3
class="text-xl font-black text-transparent bg-clip-text mb-1"
:class="isRespin ? 'bg-gradient-to-r from-cyan-200 via-sky-400 to-blue-200' : 'bg-gradient-to-r from-amber-200 via-yellow-400 to-amber-200'"
>
{{ isRespin ? '🎉 تبریک! یک شانس مجدد برنده شدید!' : 'تبریک! برنده شدید!' }}
</h3>
<p class="text-xs text-slate-400 mb-5">
جایزه ارزشمند زیر به حساب و صندوق جوایز شما تعلق گرفت:
{{ isRespin ? 'یک فرصت دوباره برای چرخاندن گردونه به حساب شما افزوده شد:' : 'جایزه ارزشمند زیر به حساب و صندوق جوایز شما تعلق گرفت:' }}
</p>
<!-- Prize Box Card -->
<div class="p-4 rounded-2xl bg-slate-800/80 border border-amber-500/30 mb-5">
<div
class="p-4 rounded-2xl bg-slate-800/80 mb-5 border"
:class="isRespin ? 'border-cyan-500/30' : 'border-amber-500/30'"
>
<div v-if="prize?.image" class="mb-3 flex justify-center">
<img :src="prize.image" :alt="prize.title" class="max-h-20 object-contain drop-shadow" />
</div>
@@ -82,8 +112,13 @@ function handleGoToPrizes() {
{{ toFarsiDigits(prize?.title) }}
</h4>
<!-- Digital Voucher Code -->
<div v-if="prize?.code" class="mt-3 pt-3 border-t border-slate-700/60">
<!-- Respin Tag vs Digital Voucher Code -->
<div v-if="isRespin" class="mt-3 pt-3 border-t border-slate-700/60 text-center">
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-cyan-500/10 border border-cyan-500/20 text-cyan-300 text-xs font-bold">
✨ ۱ شانس چرخش دیگر بلافاصله فعال شد!
</span>
</div>
<div v-else-if="prize?.code" class="mt-3 pt-3 border-t border-slate-700/60">
<span class="block text-[11px] text-slate-400 mb-1">کد اختصاصی جایزه شما:</span>
<div class="flex items-center justify-between bg-slate-950 border border-slate-700 rounded-xl px-3 py-2">
<code class="font-mono text-sm font-bold text-amber-400 tracking-wider">
@@ -103,7 +138,7 @@ function handleGoToPrizes() {
<p class="text-[11px] text-emerald-400 mb-5 flex items-center justify-center gap-1">
<Sparkles class="w-3.5 h-3.5" />
<span>اطلاعات جایزه و کد پیگیری به شماره شما پیامک شد.</span>
<span>{{ isRespin ? 'ثبت شانس مجدد به شماره شما پیامک شد.' : 'اطلاعات جایزه و کد پیگیری به شماره شما پیامک شد.' }}</span>
</p>
</div>
@@ -114,10 +149,10 @@ function handleGoToPrizes() {
</div>
<h3 class="text-xl font-black text-white mb-2">
ای بابا! این بار پوچ شد... 🎭
این بار شانس با شما یار نبود! 🎭
</h3>
<p class="text-xs text-slate-400 mb-4 leading-relaxed px-2">
گردونه روی اسلایس <strong class="text-rose-400">پوچ</strong> ایستاد! اشکالی نداره، هنوز شانس داری و جایزه بزرگ منتظرته!
گردونه روی گزینه <strong class="text-rose-400">بدون جایزه</strong> متوقف شد! امیدتان را از دست ندهید، شانس‌های بعدی در راهند!
</p>
<!-- Replay famous losing sound button -->
@@ -125,10 +160,10 @@ function handleGoToPrizes() {
<button
@click="playNoPrize"
class="inline-flex items-center gap-1.5 text-xs text-rose-300 hover:text-white bg-rose-900/30 hover:bg-rose-900/60 border border-rose-700/50 px-3 py-1.5 rounded-full transition"
title="پخش مجدد صدای معروف باخت"
title="پخش مجدد صدای افکت"
>
<Volume2 class="w-3.5 h-3.5 text-rose-400 animate-pulse" />
<span>پخش مجدد صدای باخت</span>
<span>پخش مجدد صدا</span>
</button>
</div>
</div>
@@ -138,16 +173,18 @@ function handleGoToPrizes() {
<button
v-if="remainingChances > 0"
@click="handleSpinAgain"
class="w-full py-3 px-4 rounded-xl bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-500 hover:to-indigo-500 text-white font-bold text-sm shadow-lg shadow-blue-500/25 transition"
class="w-full py-3 px-4 rounded-xl font-bold text-sm shadow-lg transition flex items-center justify-center gap-2"
:class="isRespin ? 'bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 text-white shadow-cyan-500/25' : 'bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-500 hover:to-indigo-500 text-white shadow-blue-500/25'"
>
اسپین دوباره ({{ toFarsiDigits(remainingChances) }} شانس باقی‌مانده)
<RotateCw v-if="isRespin" class="w-4 h-4" />
<span>{{ isRespin ? '🎯 چرخاندن مجدد گردونه (۱ شانس فعال)' : `چرخاندن دوباره (${toFarsiDigits(remainingChances)} شانس باقی‌مانده)` }}</span>
</button>
<button
@click="handleGoToPrizes"
class="w-full py-2.5 px-4 rounded-xl bg-slate-800 hover:bg-slate-700 text-slate-200 font-medium text-xs border border-slate-700 transition"
>
مشاهده جوایز من
مشاهده صندوق جوایز من
</button>
<button
+10 -5
View File
@@ -101,16 +101,16 @@ export const useSpinStore = defineStore('spin', () => {
err.response?.data?.message ||
(Array.isArray(err.response?.data?.message)
? err.response?.data?.message.join(' - ')
: 'خطا در برقراری ارتباط با سرور قرعه‌کشی');
: 'خطا در ارتباط با سرور گردونه شانس');
if (typeof msg === 'string') {
if (msg === 'CAMPAIGN_DRAFT') {
msg = 'این کمپین در وضعیت پیش‌نویس (DRAFT) قرار دارد و هنوز فعال نشده است.';
msg = 'این گردونه شانس در حال آماده‌سازی است و هنوز فعال نشده است.';
} else if (msg === 'CAMPAIGN_PAUSED') {
msg = 'این کمپین موقتاً متوقف شده است.';
msg = 'این گردونه شانس موقتاً متوقف شده است.';
} else if (msg === 'CAMPAIGN_NOT_STARTED') {
msg = 'زمان شروع این کمپین هنوز فرا نرسیده است.';
msg = 'زمان شروع این گردونه شانس هنوز فرا نرسیده است.';
} else if (msg === 'CAMPAIGN_FINISHED') {
msg = 'مهلت شرکت در این کمپین به پایان رسیده است.';
msg = 'مهلت شرکت در این گردونه شانس به پایان رسیده است.';
}
}
errorMessage.value = msg;
@@ -140,6 +140,11 @@ export const useSpinStore = defineStore('spin', () => {
}
showResultModal.value = true;
// Trigger SMS notification now that the wheel stopped and the modal is visible
if (spinResult.value?.spinId) {
apiClient.post(`/campaigns/spins/${spinResult.value.spinId}/notify`).catch(() => {});
}
}
function closeResultModal() {
+10 -10
View File
@@ -241,14 +241,14 @@ onMounted(() => {
<span>
{{
campaign.availabilityError === 'CAMPAIGN_DRAFT'
? 'این کمپین در وضعیت پیش‌نویس (DRAFT) است و به زودی فعال خواهد شد.'
? 'این گردونه شانس در حال آماده‌سازی است و به زودی فعال خواهد شد.'
: campaign.availabilityError === 'CAMPAIGN_PAUSED'
? 'این کمپین موقتاً متوقف شده است.'
? 'این گردونه شانس موقتاً متوقف شده است.'
: campaign.availabilityError === 'CAMPAIGN_NOT_STARTED'
? 'زمان شروع این کمپین هنوز فرا نرسیده است.'
? 'زمان شروع این گردونه شانس هنوز فرا نرسیده است.'
: campaign.availabilityError === 'CAMPAIGN_FINISHED'
? 'مهلت شرکت در این کمپین به پایان رسیده است.'
: 'این کمپین در حال حاضر فعال نمی‌باشد.'
? 'مهلت شرکت در این گردونه شانس به پایان رسیده است.'
: 'این گردونه شانس در حال حاضر فعال نمی‌باشد.'
}}
</span>
</div>
@@ -256,7 +256,7 @@ onMounted(() => {
<!-- Error Message during spin -->
<div
v-if="spinStore.errorMessage"
class="w-full max-w-xs mb-3 p-2.5 rounded-xl bg-rose-500/10 border border-rose-500/20 text-rose-400 text-xs text-center font-medium"
class="w-full max-w-xs mb-3 p-2.5 rounded-xl bg-rose-500/10 border border-rose-500/20 text-rose-400 text-xs font-medium text-center"
>
{{ spinStore.errorMessage }}
</div>
@@ -297,12 +297,12 @@ onMounted(() => {
{{
!campaign.isAvailable
? campaign.availabilityError === 'CAMPAIGN_DRAFT'
? 'کمپین در وضعیت پیش‌نویس است'
: 'کمپین غیرفعال است'
? 'گردونه در حال آماده‌سازی است'
: 'گردونه غیرفعال است'
: !authStore.isAuthenticated
? 'ورود و چرخاندن گردونه'
: authStore.chances.remainingChances <= 0
? 'فرصت شما به پایان رسیده'
? 'فرصت چرخش شما به پایان رسیده'
: campaign.ctaText || 'بچرخون و برنده شو!'
}}
</span>
@@ -317,7 +317,7 @@ onMounted(() => {
>
<div class="flex items-center gap-1.5">
<HelpCircle class="w-3.5 h-3.5 text-blue-400" />
<span>قوانین و شرایط قرعه‌کشی</span>
<span>راهنما و قوانین گردونه شانس</span>
</div>
<ChevronDown class="w-3.5 h-3.5 transition-transform" :class="{ 'rotate-180': showRules }" />
</button>
+2 -2
View File
@@ -139,7 +139,7 @@ onMounted(() => {
{{ item.prize?.title }}
</h4>
<span class="text-[11px] text-slate-400 block mt-0.5">
کمپین: {{ item.campaign?.title }}
گردونه: {{ item.campaign?.title }}
</span>
</div>
</div>
@@ -159,7 +159,7 @@ onMounted(() => {
class="mt-3 pt-3 border-t border-slate-800/80 flex items-center justify-between bg-slate-950/70 p-2.5 rounded-xl border border-slate-800"
>
<div>
<span class="text-[10px] text-slate-400 block">کد دیجیتال:</span>
<span class="text-[10px] text-slate-400 block">کد پیگیری / جایزه:</span>
<code class="font-mono text-xs font-bold text-amber-300 tracking-wider">
{{ item.code }}
</code>