- 新增 4 套主题模板:starter/default/dark/minimal - Starter: 毛玻璃 + GradientText + SpotlightCard (原有风格) - Default: Aurora 极光背景 + SplitText + TiltedCard - Dark: Particles 粒子 + DecryptedText 赛博朋克风格 - Minimal: 极简优雅 + FadeContent 淡入动画 - 新增 i18n 中英双语支持 (i18next + browser-languagedetector) - 新增 ThemeProvider 运行时主题切换 (根据 theme_template 字段) - 新增 11 个 react-bits 动画组件 - 所有页面文案国际化 (Login/Register/Dashboard/Tokens/Pricing/Packages) - 新增 README.md + README.zh.md 含主题切换指南 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
63 lines
18 KiB
JavaScript
63 lines
18 KiB
JavaScript
import{r as d,j as t,u as ee,a as te,l as se,k as re,L as F}from"./index-Drgd7k5E.js";import{T as ne,a as Z,V as T,R as oe,G as ae,P as ie,M as le}from"./Mesh-CwXV3WjE.js";import{m as ce}from"./proxy-BOtdvQpP.js";import{C as de}from"./CountUp-Omm8FlHl.js";import{u as me}from"./useTranslation-B7WzaWp0.js";const ue=new Z,he=new T,fe=new T;class xe extends ne{constructor(e,{near:o=.1,far:i=100,fov:c=45,aspect:u=1,left:x,right:h,bottom:r,top:k,zoom:b=1}={}){super(),Object.assign(this,{near:o,far:i,fov:c,aspect:u,left:x,right:h,bottom:r,top:k,zoom:b}),this.projectionMatrix=new Z,this.viewMatrix=new Z,this.projectionViewMatrix=new Z,this.worldPosition=new T,this.type=x||h?"orthographic":"perspective",this.type==="orthographic"?this.orthographic():this.perspective()}perspective({near:e=this.near,far:o=this.far,fov:i=this.fov,aspect:c=this.aspect}={}){return Object.assign(this,{near:e,far:o,fov:i,aspect:c}),this.projectionMatrix.fromPerspective({fov:i*(Math.PI/180),aspect:c,near:e,far:o}),this.type="perspective",this}orthographic({near:e=this.near,far:o=this.far,left:i=this.left||-1,right:c=this.right||1,bottom:u=this.bottom||-1,top:x=this.top||1,zoom:h=this.zoom}={}){return Object.assign(this,{near:e,far:o,left:i,right:c,bottom:u,top:x,zoom:h}),i/=h,c/=h,u/=h,x/=h,this.projectionMatrix.fromOrthogonal({left:i,right:c,bottom:u,top:x,near:e,far:o}),this.type="orthographic",this}updateMatrixWorld(){return super.updateMatrixWorld(),this.viewMatrix.inverse(this.worldMatrix),this.worldMatrix.getTranslation(this.worldPosition),this.projectionViewMatrix.multiply(this.projectionMatrix,this.viewMatrix),this}updateProjectionMatrix(){return this.type==="perspective"?this.perspective():this.orthographic()}lookAt(e){return super.lookAt(e,!0),this}project(e){return e.applyMatrix4(this.viewMatrix),e.applyMatrix4(this.projectionMatrix),this}unproject(e){return e.applyMatrix4(ue.inverse(this.projectionMatrix)),e.applyMatrix4(this.worldMatrix),this}updateFrustum(){this.frustum||(this.frustum=[new T,new T,new T,new T,new T,new T]);const e=this.projectionViewMatrix;this.frustum[0].set(e[3]-e[0],e[7]-e[4],e[11]-e[8]).constant=e[15]-e[12],this.frustum[1].set(e[3]+e[0],e[7]+e[4],e[11]+e[8]).constant=e[15]+e[12],this.frustum[2].set(e[3]+e[1],e[7]+e[5],e[11]+e[9]).constant=e[15]+e[13],this.frustum[3].set(e[3]-e[1],e[7]-e[5],e[11]-e[9]).constant=e[15]-e[13],this.frustum[4].set(e[3]-e[2],e[7]-e[6],e[11]-e[10]).constant=e[15]-e[14],this.frustum[5].set(e[3]+e[2],e[7]+e[6],e[11]+e[10]).constant=e[15]+e[14];for(let o=0;o<6;o++){const i=1/this.frustum[o].distance();this.frustum[o].multiply(i),this.frustum[o].constant*=i}}frustumIntersectsMesh(e,o=e.worldMatrix){if(!e.geometry.attributes.position||((!e.geometry.bounds||e.geometry.bounds.radius===1/0)&&e.geometry.computeBoundingSphere(),!e.geometry.bounds))return!0;const i=he;i.copy(e.geometry.bounds.center),i.applyMatrix4(o);const c=e.geometry.bounds.radius*o.getMaxScaleOnAxis();return this.frustumIntersectsSphere(i,c)}frustumIntersectsSphere(e,o){const i=fe;for(let c=0;c<6;c++){const u=this.frustum[c];if(i.copy(u).dot(e)+u.constant<-o)return!1}return!0}}const pe=["#ffffff","#ffffff","#ffffff"],ge=s=>{s=s.replace(/^#/,""),s.length===3&&(s=s.split("").map(u=>u+u).join(""));const e=parseInt(s,16),o=(e>>16&255)/255,i=(e>>8&255)/255,c=(e&255)/255;return[o,i,c]},ve=`
|
|
attribute vec3 position;
|
|
attribute vec4 random;
|
|
attribute vec3 color;
|
|
|
|
uniform mat4 modelMatrix;
|
|
uniform mat4 viewMatrix;
|
|
uniform mat4 projectionMatrix;
|
|
uniform float uTime;
|
|
uniform float uSpread;
|
|
uniform float uBaseSize;
|
|
uniform float uSizeRandomness;
|
|
|
|
varying vec4 vRandom;
|
|
varying vec3 vColor;
|
|
|
|
void main() {
|
|
vRandom = random;
|
|
vColor = color;
|
|
|
|
vec3 pos = position * uSpread;
|
|
pos.z *= 10.0;
|
|
|
|
vec4 mPos = modelMatrix * vec4(pos, 1.0);
|
|
float t = uTime;
|
|
mPos.x += sin(t * random.z + 6.28 * random.w) * mix(0.1, 1.5, random.x);
|
|
mPos.y += sin(t * random.y + 6.28 * random.x) * mix(0.1, 1.5, random.w);
|
|
mPos.z += sin(t * random.w + 6.28 * random.y) * mix(0.1, 1.5, random.z);
|
|
|
|
vec4 mvPos = viewMatrix * mPos;
|
|
|
|
if (uSizeRandomness == 0.0) {
|
|
gl_PointSize = uBaseSize;
|
|
} else {
|
|
gl_PointSize = (uBaseSize * (1.0 + uSizeRandomness * (random.x - 0.5))) / length(mvPos.xyz);
|
|
}
|
|
|
|
gl_Position = projectionMatrix * mvPos;
|
|
}
|
|
`,be=`
|
|
precision highp float;
|
|
|
|
uniform float uTime;
|
|
uniform float uAlphaParticles;
|
|
varying vec4 vRandom;
|
|
varying vec3 vColor;
|
|
|
|
void main() {
|
|
vec2 uv = gl_PointCoord.xy;
|
|
float d = length(uv - vec2(0.5));
|
|
|
|
if(uAlphaParticles < 0.5) {
|
|
if(d > 0.5) {
|
|
discard;
|
|
}
|
|
gl_FragColor = vec4(vColor + 0.2 * sin(uv.yxx + uTime + vRandom.y * 6.28), 1.0);
|
|
} else {
|
|
float circle = smoothstep(0.5, 0.4, d) * 0.8;
|
|
gl_FragColor = vec4(vColor + 0.2 * sin(uv.yxx + uTime + vRandom.y * 6.28), circle);
|
|
}
|
|
}
|
|
`,we=({particleCount:s=200,particleSpread:e=10,speed:o=.1,particleColors:i,moveParticlesOnHover:c=!1,particleHoverFactor:u=1,alphaParticles:x=!1,particleBaseSize:h=100,sizeRandomness:r=1,cameraDistance:k=20,disableRotation:b=!1,pixelRatio:L=1,className:q})=>{const H=d.useRef(null),p=d.useRef({x:0,y:0});return d.useEffect(()=>{const w=H.current;if(!w)return;const M=new oe({dpr:L,depth:!1,alpha:!0}),N=M.gl;w.appendChild(N.canvas),N.clearColor(0,0,0,0);const S=new xe(N,{fov:15});S.position.set(0,0,k);const V=()=>{const g=w.clientWidth,f=w.clientHeight;M.setSize(g,f),S.perspective({aspect:N.canvas.width/N.canvas.height})};window.addEventListener("resize",V,!1),V();const J=g=>{const f=w.getBoundingClientRect(),D=(g.clientX-f.left)/f.width*2-1,E=-((g.clientY-f.top)/f.height*2-1);p.current={x:D,y:E}};c&&w.addEventListener("mousemove",J);const A=s,P=new Float32Array(A*3),R=new Float32Array(A*4),I=new Float32Array(A*3),U=i&&i.length>0?i:pe;for(let g=0;g<A;g++){let f,D,E,Y;do f=Math.random()*2-1,D=Math.random()*2-1,E=Math.random()*2-1,Y=f*f+D*D+E*E;while(Y>1||Y===0);const X=Math.cbrt(Math.random());P.set([f*X,D*X,E*X],g*3),R.set([Math.random(),Math.random(),Math.random(),Math.random()],g*4);const O=ge(U[Math.floor(Math.random()*U.length)]);I.set(O,g*3)}const B=new ae(N,{position:{size:3,data:P},random:{size:4,data:R},color:{size:3,data:I}}),$=new ie(N,{vertex:ve,fragment:be,uniforms:{uTime:{value:0},uSpread:{value:e},uBaseSize:{value:h*L},uSizeRandomness:{value:r},uAlphaParticles:{value:x?1:0}},transparent:!0,depthTest:!1}),z=new le(N,{mode:N.POINTS,geometry:B,program:$});let j,_=performance.now(),C=0;const W=g=>{j=requestAnimationFrame(W);const f=g-_;_=g,C+=f*o,$.uniforms.uTime.value=C*.001,c?(z.position.x=-p.current.x*u,z.position.y=-p.current.y*u):(z.position.x=0,z.position.y=0),b||(z.rotation.x=Math.sin(C*2e-4)*.1,z.rotation.y=Math.cos(C*5e-4)*.15,z.rotation.z+=.01*o),M.render({scene:z,camera:S})};return j=requestAnimationFrame(W),()=>{window.removeEventListener("resize",V),c&&w.removeEventListener("mousemove",J),cancelAnimationFrame(j),w.contains(N.canvas)&&w.removeChild(N.canvas)}},[s,e,o,c,u,x,h,r,k,b,L]),t.jsx("div",{ref:H,className:`relative w-full h-full ${q}`})};function je({text:s,speed:e=50,maxIterations:o=10,sequential:i=!1,revealDirection:c="start",useOriginalCharsOnly:u=!1,characters:x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()_+",className:h="",parentClassName:r="",encryptedClassName:k="",animateOn:b="hover",clickMode:L="once",...q}){const[H,p]=d.useState(s),[w,M]=d.useState(!1),[N,S]=d.useState(new Set),[V,J]=d.useState(!1),[A,P]=d.useState(b!=="click"),[R,I]=d.useState("forward"),U=d.useRef(null),B=d.useRef([]),$=d.useRef(0),z=d.useMemo(()=>u?Array.from(new Set(s.split(""))).filter(a=>a!==" "):x.split(""),[u,s,x]),j=d.useCallback((a,m)=>a.split("").map((v,n)=>v===" "?" ":m.has(n)?a[n]:z[Math.floor(Math.random()*z.length)]).join(""),[z]),_=d.useCallback(a=>{const m=[];if(a<=0)return m;if(c==="start"){for(let l=0;l<a;l++)m.push(l);return m}if(c==="end"){for(let l=a-1;l>=0;l--)m.push(l);return m}const v=Math.floor(a/2);let n=0;for(;m.length<a;){if(n%2===0){const l=v+n/2;l>=0&&l<a&&m.push(l)}else{const l=v-Math.ceil(n/2);l>=0&&l<a&&m.push(l)}n++}return m.slice(0,a)},[c]),C=d.useCallback(()=>{const a=new Set;for(let m=0;m<s.length;m++)a.add(m);return a},[s]),W=d.useCallback((a,m)=>{const v=Array.from(a);for(let n=0;n<m&&v.length>0;n++){const l=Math.floor(Math.random()*v.length);v.splice(l,1)}return new Set(v)},[]),g=d.useCallback(()=>{const a=new Set;S(a),p(j(s,a)),P(!1)},[s,j]),f=d.useCallback(()=>{i?(B.current=_(s.length),$.current=0,S(new Set)):S(new Set),I("forward"),M(!0)},[i,_,s.length]),D=d.useCallback(()=>{i?(B.current=_(s.length).slice().reverse(),$.current=0,S(C()),p(j(s,C()))):(S(C()),p(j(s,C()))),I("reverse"),M(!0)},[i,_,C,j,s]);d.useEffect(()=>{if(!w)return;let a,m=0;const v=n=>{const l=s.length;switch(c){case"start":return n.size;case"end":return l-1-n.size;case"center":{const y=Math.floor(l/2),G=Math.floor(n.size/2),K=n.size%2===0?y+G:y-G-1;if(K>=0&&K<l&&!n.has(K))return K;for(let Q=0;Q<l;Q++)if(!n.has(Q))return Q;return 0}default:return n.size}};return a=setInterval(()=>{S(n=>{if(i){if(R==="forward")if(n.size<s.length){const l=v(n),y=new Set(n);return y.add(l),p(j(s,y)),y}else return clearInterval(a),M(!1),P(!0),n;if(R==="reverse")if($.current<B.current.length){const l=B.current[$.current++],y=new Set(n);return y.delete(l),p(j(s,y)),y.size===0&&(clearInterval(a),M(!1),P(!1)),y}else return clearInterval(a),M(!1),P(!1),n}else{if(R==="forward")return p(j(s,n)),m++,m>=o&&(clearInterval(a),M(!1),p(s),P(!0)),n;if(R==="reverse"){let l=n;l.size===0&&(l=C());const y=Math.max(1,Math.ceil(s.length/Math.max(1,o))),G=W(l,y);return p(j(s,G)),m++,G.size===0||m>=o?(clearInterval(a),M(!1),P(!1),p(j(s,new Set)),new Set):G}}return n})},e),()=>clearInterval(a)},[w,s,e,o,i,c,j,R,C,W,x,u]);const E=()=>{if(b==="click"){if(L==="once"){if(A)return;I("forward"),f()}L==="toggle"&&(A?D():(I("forward"),f()))}},Y=d.useCallback(()=>{w||(S(new Set),P(!1),p(s),I("forward"),M(!0))},[w,s]),X=d.useCallback(()=>{M(!1),S(new Set),p(s),P(!0),I("forward")},[s]);d.useEffect(()=>{if(b!=="view"&&b!=="inViewHover")return;const a=l=>{l.forEach(y=>{y.isIntersecting&&!V&&(f(),J(!0))})},m={root:null,rootMargin:"0px",threshold:.1},v=new IntersectionObserver(a,m),n=U.current;return n&&v.observe(n),()=>{n&&v.unobserve(n)}},[b,V,f]),d.useEffect(()=>{b==="click"?g():(p(s),P(!0)),S(new Set),I("forward")},[b,s,g]);const O=b==="hover"||b==="inViewHover"?{onMouseEnter:Y,onMouseLeave:X}:b==="click"?{onClick:E}:{};return t.jsxs(ce.span,{ref:U,className:`inline-block whitespace-pre-wrap ${r}`,...O,...q,children:[t.jsx("span",{className:"sr-only",children:H}),t.jsx("span",{"aria-hidden":"true",children:H.split("").map((a,m)=>{const v=N.has(m)||!w&&A;return t.jsx("span",{className:v?h:k,children:a},m)})})]})}function Pe(){const{t:s}=me(),{user:e}=ee(),{site:o}=te(),[i,c]=d.useState([]),[u,x]=d.useState([]);d.useEffect(()=>{se().then(r=>{r.data.success&&c(r.data.data||[])}).catch(()=>{}),re().then(r=>{r.data.success&&x(r.data.data||[])}).catch(()=>{})},[]);const h=i.filter(r=>r.enabled!==!1);return t.jsxs("div",{className:"relative",children:[t.jsx("div",{className:"absolute inset-0 h-[800px] overflow-hidden pointer-events-none",children:t.jsx(we,{particleColors:["#00ff88","#00ccff","#ff0055"],particleCount:80,particleSpread:15,speed:.3,particleBaseSize:80,moveParticlesOnHover:!0,alphaParticles:!1,disableRotation:!1})}),t.jsxs("section",{className:"relative max-w-7xl mx-auto px-6 pt-28 pb-24",children:[t.jsxs("div",{className:"text-center max-w-4xl mx-auto",children:[t.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-1.5 rounded-full border border-green-500/30 bg-green-500/5 mb-8",children:[t.jsx("span",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),t.jsx("span",{className:"text-xs font-mono text-green-400 uppercase tracking-wider",children:"System Online"})]}),t.jsx("h1",{className:"text-5xl md:text-7xl font-heading font-extrabold text-white leading-tight mb-4",children:t.jsx(je,{text:(o==null?void 0:o.name)||s("home.defaultHeroTitle"),speed:60,maxIterations:10,revealDirection:"start",className:"text-white",encryptedClassName:"text-green-500/40"})}),t.jsxs("p",{className:"text-lg md:text-xl text-neutral-400 max-w-2xl mx-auto mb-10 font-mono",children:["> ",s("home.heroSubtitle")]}),t.jsx("div",{className:"flex items-center justify-center gap-4",children:e?t.jsx(F,{to:"/dashboard",className:"px-8 py-3.5 rounded-lg bg-green-500 text-black font-bold text-base hover:bg-green-400 transition-all font-mono shadow-lg shadow-green-500/20",children:s("home.goToDashboard")}):t.jsxs(t.Fragment,{children:[t.jsx(F,{to:"/register",className:"px-8 py-3.5 rounded-lg bg-green-500 text-black font-bold text-base hover:bg-green-400 transition-all font-mono shadow-lg shadow-green-500/20",children:s("home.getStarted")}),t.jsx(F,{to:"/pricing",className:"px-8 py-3.5 rounded-lg border border-green-500/30 text-green-400 font-bold text-base hover:bg-green-500/10 transition-all font-mono",children:s("home.viewPricing")})]})})]}),t.jsx("div",{className:"grid grid-cols-3 gap-4 max-w-2xl mx-auto mt-20",children:[{label:s("home.aiModels"),value:h.length||50,suffix:"+",color:"text-green-400 border-green-500/20"},{label:s("home.uptime"),value:99.9,suffix:"%",color:"text-cyan-400 border-cyan-500/20"},{label:s("home.latency"),value:50,suffix:"ms",prefix:"<",color:"text-pink-400 border-pink-500/20"}].map((r,k)=>t.jsxs("div",{className:`text-center p-4 rounded-lg bg-black/60 border ${r.color} font-mono`,children:[t.jsxs("div",{className:`text-3xl font-bold ${r.color.split(" ")[0]}`,children:[r.prefix,t.jsx(de,{from:0,to:r.value,duration:2}),r.suffix]}),t.jsx("p",{className:"text-xs text-neutral-500 mt-1 uppercase tracking-wider",children:r.label})]},k))})]}),t.jsxs("section",{className:"relative max-w-7xl mx-auto px-6 py-20",children:[t.jsxs("div",{className:"text-center mb-14",children:[t.jsx("h2",{className:"text-3xl font-heading font-bold text-white mb-3",children:s("home.whyChooseUs")}),t.jsx("p",{className:"text-neutral-500 font-mono",children:s("home.whyChooseUsDesc")})]}),t.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:[{icon:"⚡",title:s("home.lightningFast"),desc:s("home.lightningFastDesc"),accent:"green"},{icon:"🛡️",title:s("home.securePrivate"),desc:s("home.securePrivateDesc"),accent:"cyan"},{icon:"📊",title:s("home.payAsYouGo"),desc:s("home.payAsYouGoDesc"),accent:"pink"}].map((r,k)=>t.jsxs("div",{className:`p-6 rounded-xl bg-black/40 border border-${r.accent}-500/20 hover:border-${r.accent}-500/40 transition-all group`,children:[t.jsx("div",{className:"text-2xl mb-3",children:r.icon}),t.jsx("h3",{className:`text-lg font-semibold text-${r.accent}-400 mb-2 font-mono`,children:r.title}),t.jsx("p",{className:"text-sm text-neutral-400 leading-relaxed",children:r.desc}),t.jsx("div",{className:`h-0.5 w-0 group-hover:w-full bg-${r.accent}-500/50 transition-all duration-500 mt-4`})]},k))})]}),h.length>0&&t.jsxs("section",{className:"relative max-w-7xl mx-auto px-6 py-20",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("h2",{className:"text-3xl font-heading font-bold text-white mb-3",children:s("home.availableModels")}),t.jsx("p",{className:"text-neutral-500 font-mono",children:s("home.availableModelsDesc",{count:h.length})})]}),t.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2",children:h.slice(0,12).map((r,k)=>t.jsxs("div",{className:"px-4 py-3 rounded-lg bg-black/40 border border-green-500/10 flex items-center gap-3 hover:border-green-500/30 transition-colors group font-mono",children:[t.jsx("span",{className:"text-green-500 text-xs",children:"$"}),t.jsx("span",{className:"text-sm text-neutral-400 group-hover:text-green-400 transition-colors truncate",children:r.display_name||r.model_name})]},r.id||k))}),h.length>12&&t.jsx("div",{className:"text-center mt-6",children:t.jsxs(F,{to:"/pricing",className:"text-sm text-green-400 hover:text-green-300 transition-colors font-mono",children:[s("home.viewAllModels",{count:h.length})," →"]})})]}),u.length>0&&t.jsxs("section",{className:"relative max-w-7xl mx-auto px-6 py-20",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("h2",{className:"text-3xl font-heading font-bold text-white mb-3",children:s("home.plansPackages")}),t.jsx("p",{className:"text-neutral-500 font-mono",children:s("home.choosePlan")})]}),t.jsx("div",{className:"grid md:grid-cols-3 gap-6 max-w-4xl mx-auto",children:u.filter(r=>r.enabled).slice(0,3).map(r=>t.jsxs("div",{className:"rounded-xl p-6 flex flex-col bg-black/40 border border-green-500/10 hover:border-green-500/30 transition-all",children:[t.jsx("h3",{className:"text-lg font-semibold text-white mb-1 font-mono",children:r.name}),r.description&&t.jsx("p",{className:"text-sm text-neutral-400 mb-4",children:r.description}),t.jsxs("div",{className:"mt-auto pt-4",children:[t.jsxs("span",{className:"text-3xl font-bold text-green-400 font-mono",children:["$",r.price]}),r.original_price>r.price&&t.jsxs("span",{className:"text-sm text-neutral-600 line-through ml-2",children:["$",r.original_price]}),r.duration>0&&t.jsx("p",{className:"text-xs text-neutral-600 mt-1 font-mono",children:s("home.days",{count:r.duration})})]}),t.jsx(F,{to:e?"/packages":"/register",className:"mt-4 py-2.5 rounded-lg bg-green-500/10 border border-green-500/30 text-green-400 font-medium text-sm text-center hover:bg-green-500/20 transition-colors font-mono",children:s(e?"home.subscribe":"home.getStarted")})]},r.id))})]}),t.jsx("section",{className:"relative max-w-7xl mx-auto px-6 py-24",children:t.jsxs("div",{className:"rounded-xl p-12 text-center bg-black/60 border border-green-500/20 relative overflow-hidden",children:[t.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-green-500/5 via-transparent to-cyan-500/5"}),t.jsxs("div",{className:"relative z-10",children:[t.jsx("h2",{className:"text-3xl font-heading font-bold text-white mb-4 font-mono",children:s("home.readyToStart")}),t.jsx("p",{className:"text-neutral-400 mb-8 max-w-md mx-auto",children:s("home.readyToStartDesc")}),t.jsx("div",{className:"flex items-center justify-center gap-4",children:e?t.jsx(F,{to:"/dashboard",className:"px-8 py-3 rounded-lg bg-green-500 text-black font-bold hover:bg-green-400 transition-all font-mono",children:s("home.goToDashboard")}):t.jsxs(t.Fragment,{children:[t.jsx(F,{to:"/register",className:"px-8 py-3 rounded-lg bg-green-500 text-black font-bold hover:bg-green-400 transition-all font-mono",children:s("home.createFreeAccount")}),t.jsx(F,{to:"/login",className:"px-8 py-3 rounded-lg border border-green-500/30 text-green-400 font-bold hover:bg-green-500/10 transition-all font-mono",children:s("home.signIn")})]})})]})]})})]})}export{Pe as default};
|