Files
Sub-Router/dist/assets/Home-BjTLOPSh.js
T
abingyydsandClaude Sonnet 4.6 3ed0f67be0 feat: 分站配置导出器模型搜索功能 + i18n 补全
ConfigExporter 模型下拉改为可搜索的自定义 combobox,
新增 config.searchModel / config.noModelMatch i18n 键。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 23:05:07 +09:00

101 lines
22 KiB
JavaScript

import{r as o,j as t,u as ee,a as te,f as se,l as re,L as I}from"./index-EC_zKUeV.js";import{G as ne,R as oe,P as ae,M as ie}from"./Mesh-CwXV3WjE.js";import{i as H,P as le,u as ce,L as de,m as _}from"./proxy-CLxAIQiL.js";import{M as ue,u as X,a as me,C as he}from"./CountUp-FAZKmwKP.js";import{S as W}from"./SpotlightCard-CLwtgnEt.js";import{u as xe}from"./useTranslation-DATAnSaR.js";function U(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function fe(...e){return r=>{let n=!1;const c=e.map(d=>{const u=U(d,r);return!n&&typeof u=="function"&&(n=!0),u});if(n)return()=>{for(let d=0;d<c.length;d++){const u=c[d];typeof u=="function"?u():U(e[d],null)}}}}function pe(...e){return o.useCallback(fe(...e),e)}class ge extends o.Component{getSnapshotBeforeUpdate(r){const n=this.props.childRef.current;if(H(n)&&r.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const c=n.offsetParent,d=H(c)&&c.offsetWidth||0,u=H(c)&&c.offsetHeight||0,m=getComputedStyle(n),a=this.props.sizeRef.current;a.height=parseFloat(m.height),a.width=parseFloat(m.width),a.top=n.offsetTop,a.left=n.offsetLeft,a.right=d-a.width-a.left,a.bottom=u-a.height-a.top}return null}componentDidUpdate(){}render(){return this.props.children}}function be({children:e,isPresent:r,anchorX:n,anchorY:c,root:d,pop:u}){var p;const m=o.useId(),a=o.useRef(null),s=o.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:h}=o.useContext(ue),f=((p=e.props)==null?void 0:p.ref)??(e==null?void 0:e.ref),v=pe(a,f);return o.useInsertionEffect(()=>{const{width:y,height:g,top:N,left:b,right:j,bottom:L}=s.current;if(r||u===!1||!a.current||!y||!g)return;const E=n==="left"?`left: ${b}`:`right: ${j}`,i=c==="bottom"?`bottom: ${L}`:`top: ${N}`;a.current.dataset.motionPopId=m;const S=document.createElement("style");h&&(S.nonce=h);const k=d??document.head;return k.appendChild(S),S.sheet&&S.sheet.insertRule(`
[data-motion-pop-id="${m}"] {
position: absolute !important;
width: ${y}px !important;
height: ${g}px !important;
${E}px !important;
${i}px !important;
}
`),()=>{var P;(P=a.current)==null||P.removeAttribute("data-motion-pop-id"),k.contains(S)&&k.removeChild(S)}},[r]),t.jsx(ge,{isPresent:r,childRef:a,sizeRef:s,pop:u,children:u===!1?e:o.cloneElement(e,{ref:v})})}const ve=({children:e,initial:r,isPresent:n,onExitComplete:c,custom:d,presenceAffectsLayout:u,mode:m,anchorX:a,anchorY:s,root:h})=>{const f=X(we),v=o.useId();let p=!0,y=o.useMemo(()=>(p=!1,{id:v,initial:r,isPresent:n,custom:d,onExitComplete:g=>{f.set(g,!0);for(const N of f.values())if(!N)return;c&&c()},register:g=>(f.set(g,!1),()=>f.delete(g))}),[n,f,c]);return u&&p&&(y={...y}),o.useMemo(()=>{f.forEach((g,N)=>f.set(N,!1))},[n]),o.useEffect(()=>{!n&&!f.size&&c&&c()},[n]),e=t.jsx(be,{pop:m==="popLayout",isPresent:n,anchorX:a,anchorY:s,root:h,children:e}),t.jsx(le.Provider,{value:y,children:e})};function we(){return new Map}const $=e=>e.key||"";function O(e){const r=[];return o.Children.forEach(e,n=>{o.isValidElement(n)&&r.push(n)}),r}const ye=({children:e,custom:r,initial:n=!0,onExitComplete:c,presenceAffectsLayout:d=!0,mode:u="sync",propagate:m=!1,anchorX:a="left",anchorY:s="top",root:h})=>{const[f,v]=ce(m),p=o.useMemo(()=>O(e),[e]),y=m&&!f?[]:p.map($),g=o.useRef(!0),N=o.useRef(p),b=X(()=>new Map),j=o.useRef(new Set),[L,E]=o.useState(p),[i,S]=o.useState(p);me(()=>{g.current=!1,N.current=p;for(let R=0;R<i.length;R++){const x=$(i[R]);y.includes(x)?(b.delete(x),j.current.delete(x)):b.get(x)!==!0&&b.set(x,!1)}},[i,y.length,y.join("-")]);const k=[];if(p!==L){let R=[...p];for(let x=0;x<i.length;x++){const A=i[x],F=$(A);y.includes(F)||(R.splice(x,0,A),k.push(A))}return u==="wait"&&k.length&&(R=k),S(O(R)),E(p),null}const{forceRender:P}=o.useContext(de);return t.jsx(t.Fragment,{children:i.map(R=>{const x=$(R),A=m&&!f?!1:p===i||y.includes(x),F=()=>{if(j.current.has(x))return;if(b.has(x))j.current.add(x),b.set(x,!0);else return;let z=!0;b.forEach(T=>{T||(z=!1)}),z&&(P==null||P(),S(N.current),m&&(v==null||v()),c&&c())};return t.jsx(ve,{isPresent:A,initial:!g.current||n?void 0:!1,custom:r,presenceAffectsLayout:d,mode:u,root:h,onExitComplete:A?void 0:F,anchorX:a,anchorY:s,children:R},x)})})},V={black:"#000000",white:"#ffffff",red:"#ff0000",green:"#00ff00",blue:"#0000ff",fuchsia:"#ff00ff",cyan:"#00ffff",yellow:"#ffff00",orange:"#ff8000"};function Y(e){e.length===4&&(e=e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);const r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return r||console.warn(`Unable to convert hex string ${e} to rgb values`),[parseInt(r[1],16)/255,parseInt(r[2],16)/255,parseInt(r[3],16)/255]}function je(e){return e=parseInt(e),[(e>>16&255)/255,(e>>8&255)/255,(e&255)/255]}function q(e){return e===void 0?[0,0,0]:arguments.length===3?arguments:isNaN(e)?e[0]==="#"?Y(e):V[e.toLowerCase()]?Y(V[e.toLowerCase()]):(console.warn("Color format not recognised"),[0,0,0]):je(e)}class K extends Array{constructor(r){return Array.isArray(r)?super(...r):super(...q(...arguments))}get r(){return this[0]}get g(){return this[1]}get b(){return this[2]}set r(r){this[0]=r}set g(r){this[1]=r}set b(r){this[2]=r}set(r){return Array.isArray(r)?this.copy(r):this.copy(q(...arguments))}copy(r){return this[0]=r[0],this[1]=r[1],this[2]=r[2],this}}class Ce extends ne{constructor(r,{attributes:n={}}={}){Object.assign(n,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),super(r,n)}}const Ne=`#version 300 es
in vec2 position;
void main() {
gl_Position = vec4(position, 0.0, 1.0);
}
`,Se=`#version 300 es
precision highp float;
uniform float uTime;
uniform float uAmplitude;
uniform vec3 uColorStops[3];
uniform vec2 uResolution;
uniform float uBlend;
out vec4 fragColor;
vec3 permute(vec3 x) {
return mod(((x * 34.0) + 1.0) * x, 289.0);
}
float snoise(vec2 v){
const vec4 C = vec4(
0.211324865405187, 0.366025403784439,
-0.577350269189626, 0.024390243902439
);
vec2 i = floor(v + dot(v, C.yy));
vec2 x0 = v - i + dot(i, C.xx);
vec2 i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
vec4 x12 = x0.xyxy + C.xxzz;
x12.xy -= i1;
i = mod(i, 289.0);
vec3 p = permute(
permute(i.y + vec3(0.0, i1.y, 1.0))
+ i.x + vec3(0.0, i1.x, 1.0)
);
vec3 m = max(
0.5 - vec3(
dot(x0, x0),
dot(x12.xy, x12.xy),
dot(x12.zw, x12.zw)
),
0.0
);
m = m * m;
m = m * m;
vec3 x = 2.0 * fract(p * C.www) - 1.0;
vec3 h = abs(x) - 0.5;
vec3 ox = floor(x + 0.5);
vec3 a0 = x - ox;
m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);
vec3 g;
g.x = a0.x * x0.x + h.x * x0.y;
g.yz = a0.yz * x12.xz + h.yz * x12.yw;
return 130.0 * dot(m, g);
}
struct ColorStop {
vec3 color;
float position;
};
#define COLOR_RAMP(colors, factor, finalColor) { int index = 0; for (int i = 0; i < 2; i++) { ColorStop currentColor = colors[i]; bool isInBetween = currentColor.position <= factor; index = int(mix(float(index), float(i), float(isInBetween))); } ColorStop currentColor = colors[index]; ColorStop nextColor = colors[index + 1]; float range = nextColor.position - currentColor.position; float lerpFactor = (factor - currentColor.position) / range; finalColor = mix(currentColor.color, nextColor.color, lerpFactor); }
void main() {
vec2 uv = gl_FragCoord.xy / uResolution;
ColorStop colors[3];
colors[0] = ColorStop(uColorStops[0], 0.0);
colors[1] = ColorStop(uColorStops[1], 0.5);
colors[2] = ColorStop(uColorStops[2], 1.0);
vec3 rampColor;
COLOR_RAMP(colors, uv.x, rampColor);
float height = snoise(vec2(uv.x * 2.0 + uTime * 0.1, uTime * 0.25)) * 0.5 * uAmplitude;
height = exp(height);
height = (uv.y * 2.0 - height + 0.2);
float intensity = 0.6 * height;
float midPoint = 0.20;
float auroraAlpha = smoothstep(midPoint - uBlend * 0.5, midPoint + uBlend * 0.5, intensity);
vec3 auroraColor = intensity * rampColor;
fragColor = vec4(auroraColor * auroraAlpha, auroraAlpha);
}
`;function Me(e){const{colorStops:r=["#5227FF","#7cff67","#5227FF"],amplitude:n=1,blend:c=.5}=e,d=o.useRef(e);d.current=e;const u=o.useRef(null);return o.useEffect(()=>{const m=u.current;if(!m)return;const a=new oe({alpha:!0,premultipliedAlpha:!0,antialias:!0}),s=a.gl;s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA),s.canvas.style.backgroundColor="transparent";let h;function f(){if(!m)return;const b=m.offsetWidth,j=m.offsetHeight;a.setSize(b,j),h&&(h.uniforms.uResolution.value=[b,j])}window.addEventListener("resize",f);const v=new Ce(s);v.attributes.uv&&delete v.attributes.uv;const p=r.map(b=>{const j=new K(b);return[j.r,j.g,j.b]});h=new ae(s,{vertex:Ne,fragment:Se,uniforms:{uTime:{value:0},uAmplitude:{value:n},uColorStops:{value:p},uResolution:{value:[m.offsetWidth,m.offsetHeight]},uBlend:{value:c}}});const y=new ie(s,{geometry:v,program:h});m.appendChild(s.canvas);let g=0;const N=b=>{g=requestAnimationFrame(N);const{time:j=b*.01,speed:L=1}=d.current;h.uniforms.uTime.value=j*L*.1,h.uniforms.uAmplitude.value=d.current.amplitude??1,h.uniforms.uBlend.value=d.current.blend??c;const E=d.current.colorStops??r;h.uniforms.uColorStops.value=E.map(i=>{const S=new K(i);return[S.r,S.g,S.b]}),a.render({scene:y})};return g=requestAnimationFrame(N),f(),()=>{var b;cancelAnimationFrame(g),window.removeEventListener("resize",f),m&&s.canvas.parentNode===m&&m.removeChild(s.canvas),(b=s.getExtension("WEBGL_lose_context"))==null||b.loseContext()}},[n]),t.jsx("div",{ref:u,className:"w-full h-full"})}const Re=({text:e="",className:r="",delay:n=50})=>{const c=o.useMemo(()=>e.split(""),[e]);return t.jsx("span",{className:r,"aria-label":e,children:c.map((d,u)=>t.jsx(_.span,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:u*n/1e3,ease:[.25,.46,.45,.94]},style:{display:"inline-block",whiteSpace:d===" "?"pre":"normal"},children:d},`${d}-${u}`))})};function D(...e){return e.filter(Boolean).join(" ")}const J=o.forwardRef((e,r)=>{const{texts:n,transition:c={type:"spring",damping:25,stiffness:300},initial:d={y:"100%",opacity:0},animate:u={y:0,opacity:1},exit:m={y:"-120%",opacity:0},animatePresenceMode:a="wait",animatePresenceInitial:s=!1,rotationInterval:h=2e3,staggerDuration:f=0,staggerFrom:v="first",loop:p=!0,auto:y=!0,splitBy:g="characters",onNext:N,mainClassName:b,splitLevelClassName:j,elementLevelClassName:L,...E}=e,[i,S]=o.useState(0),k=l=>{if(typeof Intl<"u"&&Intl.Segmenter){const w=new Intl.Segmenter("en",{granularity:"grapheme"});return Array.from(w.segment(l),C=>C.segment)}return Array.from(l)},P=o.useMemo(()=>{const l=n[i];if(g==="characters"){const w=l.split(" ");return w.map((C,M)=>({characters:k(C),needsSpace:M!==w.length-1}))}return g==="words"?l.split(" ").map((w,C,M)=>({characters:[w],needsSpace:C!==M.length-1})):g==="lines"?l.split(`
`).map((w,C,M)=>({characters:[w],needsSpace:C!==M.length-1})):l.split(g).map((w,C,M)=>({characters:[w],needsSpace:C!==M.length-1}))},[n,i,g]),R=o.useCallback((l,w)=>{const C=w;if(v==="first")return l*f;if(v==="last")return(C-1-l)*f;if(v==="center"){const M=Math.floor(C/2);return Math.abs(M-l)*f}if(v==="random"){const M=Math.floor(Math.random()*C);return Math.abs(M-l)*f}return Math.abs(v-l)*f},[v,f]),x=o.useCallback(l=>{S(l),N&&N(l)},[N]),A=o.useCallback(()=>{const l=i===n.length-1?p?0:i:i+1;l!==i&&x(l)},[i,n.length,p,x]),F=o.useCallback(()=>{const l=i===0?p?n.length-1:i:i-1;l!==i&&x(l)},[i,n.length,p,x]),z=o.useCallback(l=>{const w=Math.max(0,Math.min(l,n.length-1));w!==i&&x(w)},[n.length,i,x]),T=o.useCallback(()=>{i!==0&&x(0)},[i,x]);return o.useImperativeHandle(r,()=>({next:A,previous:F,jumpTo:z,reset:T}),[A,F,z,T]),o.useEffect(()=>{if(!y)return;const l=setInterval(A,h);return()=>clearInterval(l)},[A,h,y]),t.jsxs(_.span,{className:D("flex flex-wrap whitespace-pre-wrap relative",b),...E,layout:!0,transition:c,children:[t.jsx("span",{className:"sr-only",children:n[i]}),t.jsx(ye,{mode:a,initial:s,children:t.jsx(_.span,{className:D(g==="lines"?"flex flex-col w-full":"flex flex-wrap whitespace-pre-wrap relative"),layout:!0,"aria-hidden":"true",children:P.map((l,w,C)=>{const M=C.slice(0,w).reduce((G,B)=>G+B.characters.length,0);return t.jsxs("span",{className:D("inline-flex",j),children:[l.characters.map((G,B)=>t.jsx(_.span,{initial:d,animate:u,exit:m,transition:{...c,delay:R(M+B,C.reduce((Q,Z)=>Q+Z.characters.length,0))},className:D("inline-block",L),children:G},B)),l.needsSpace&&t.jsx("span",{className:"whitespace-pre",children:" "})]},w)})},i)})]})});J.displayName="RotatingText";function Fe(){const{t:e}=xe(),{user:r}=ee(),{site:n}=te(),[c,d]=o.useState([]),[u,m]=o.useState([]);o.useEffect(()=>{se().then(s=>{s.data.success&&d(s.data.data||[])}).catch(()=>{}),re().then(s=>{s.data.success&&m(s.data.data||[])}).catch(()=>{})},[]);const a=c.filter(s=>s.enabled!==!1);return t.jsxs("div",{className:"relative",children:[t.jsx("div",{className:"absolute inset-0 h-[700px] overflow-hidden pointer-events-none opacity-60",children:t.jsx(Me,{colorStops:["#4338ca","#7c3aed","#06b6d4"],blend:.5,amplitude:1,speed:.5})}),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.jsx("div",{className:"mb-6",children:t.jsx("h1",{className:"text-5xl md:text-7xl font-extrabold text-white leading-tight tracking-tight",children:t.jsx(Re,{text:(n==null?void 0:n.name)||e("home.defaultHeroTitle"),delay:80,className:"inline"})})}),t.jsx("p",{className:"text-lg md:text-xl text-neutral-400 max-w-2xl mx-auto mb-4 leading-relaxed",children:e("home.heroSubtitle")}),t.jsx("div",{className:"flex flex-wrap items-center justify-center gap-3 mb-10",children:t.jsx(J,{texts:[e("home.lightningFast"),e("home.securePrivate"),e("home.payAsYouGo")],mainClassName:"px-4 py-2 bg-white/[0.06] backdrop-blur-sm rounded-full text-white text-sm font-medium overflow-hidden border border-white/[0.08]",staggerFrom:"last",rotationInterval:3e3})}),t.jsx("div",{className:"flex items-center justify-center gap-4",children:r?t.jsx(I,{to:"/dashboard",className:"px-8 py-3.5 rounded-2xl bg-white text-black font-semibold text-base hover:bg-neutral-100 transition-all shadow-xl shadow-white/10",children:e("home.goToDashboard")}):t.jsxs(t.Fragment,{children:[t.jsx(I,{to:"/register",className:"px-8 py-3.5 rounded-2xl bg-white text-black font-semibold text-base hover:bg-neutral-100 transition-all shadow-xl shadow-white/10",children:e("home.getStarted")}),t.jsx(I,{to:"/pricing",className:"px-8 py-3.5 rounded-2xl border border-white/20 text-white font-medium text-base hover:bg-white/10 transition-all",children:e("home.viewPricing")})]})})]}),t.jsx("div",{className:"grid grid-cols-3 gap-6 max-w-2xl mx-auto mt-24",children:[{value:a.length||50,suffix:"+",label:e("home.aiModels")},{value:99.9,suffix:"%",label:e("home.uptime")},{value:50,suffix:"ms",label:e("home.latency"),prefix:"<"}].map((s,h)=>t.jsxs("div",{className:"text-center p-5 rounded-2xl bg-white/[0.04] backdrop-blur-sm border border-white/[0.08]",children:[t.jsxs("div",{className:"text-3xl font-bold text-white",children:[s.prefix,t.jsx(he,{from:0,to:s.value,duration:2}),s.suffix]}),t.jsx("p",{className:"text-sm text-neutral-400 mt-1",children:s.label})]},h))})]}),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-bold text-white mb-3",children:e("home.whyChooseUs")}),t.jsx("p",{className:"text-neutral-400",children:e("home.whyChooseUsDesc")})]}),t.jsxs("div",{className:"grid md:grid-cols-3 gap-6",children:[t.jsx(W,{className:"!bg-gradient-to-br !from-violet-500/10 !to-blue-500/10 !border-violet-500/20",spotlightColor:"rgba(139,92,246,0.1)",children:t.jsxs("div",{className:"p-6",children:[t.jsx("div",{className:"w-12 h-12 rounded-xl bg-white/[0.06] flex items-center justify-center mb-4",children:t.jsx("svg",{className:"w-6 h-6 text-violet-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M13 10V3L4 14h7v7l9-11h-7z"})})}),t.jsx("h3",{className:"text-lg font-semibold text-white mb-2",children:e("home.lightningFast")}),t.jsx("p",{className:"text-sm text-neutral-400 leading-relaxed",children:e("home.lightningFastDesc")})]})}),t.jsx(W,{className:"!bg-gradient-to-br !from-blue-500/10 !to-cyan-500/10 !border-blue-500/20",spotlightColor:"rgba(59,130,246,0.1)",children:t.jsxs("div",{className:"p-6",children:[t.jsx("div",{className:"w-12 h-12 rounded-xl bg-white/[0.06] flex items-center justify-center mb-4",children:t.jsx("svg",{className:"w-6 h-6 text-blue-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})})}),t.jsx("h3",{className:"text-lg font-semibold text-white mb-2",children:e("home.securePrivate")}),t.jsx("p",{className:"text-sm text-neutral-400 leading-relaxed",children:e("home.securePrivateDesc")})]})}),t.jsx(W,{className:"!bg-gradient-to-br !from-cyan-500/10 !to-teal-500/10 !border-cyan-500/20",spotlightColor:"rgba(6,182,212,0.1)",children:t.jsxs("div",{className:"p-6",children:[t.jsx("div",{className:"w-12 h-12 rounded-xl bg-white/[0.06] flex items-center justify-center mb-4",children:t.jsx("svg",{className:"w-6 h-6 text-cyan-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}),t.jsx("h3",{className:"text-lg font-semibold text-white mb-2",children:e("home.payAsYouGo")}),t.jsx("p",{className:"text-sm text-neutral-400 leading-relaxed",children:e("home.payAsYouGoDesc")})]})})]})]}),a.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-bold text-white mb-3",children:e("home.availableModels")}),t.jsx("p",{className:"text-neutral-400",children:e("home.availableModelsDesc",{count:a.length})})]}),t.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3",children:a.slice(0,12).map((s,h)=>t.jsxs("div",{className:"px-4 py-3 rounded-xl bg-white/[0.03] border border-white/[0.06] flex items-center gap-3 hover:bg-white/[0.06] transition-colors group",children:[t.jsx("div",{className:"w-2 h-2 rounded-full bg-green-400 flex-shrink-0"}),t.jsx("span",{className:"text-sm font-mono text-neutral-300 group-hover:text-white transition-colors truncate",children:s.display_name||s.model_name})]},s.id||h))}),a.length>12&&t.jsx("div",{className:"text-center mt-6",children:t.jsxs(I,{to:"/pricing",className:"text-sm text-blue-400 hover:text-blue-300 transition-colors",children:[e("home.viewAllModels",{count:a.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-bold text-white mb-3",children:e("home.plansPackages")}),t.jsx("p",{className:"text-neutral-400",children:e("home.choosePlan")})]}),t.jsx("div",{className:"grid md:grid-cols-3 gap-6 max-w-4xl mx-auto",children:u.filter(s=>s.enabled).slice(0,3).map((s,h)=>t.jsxs("div",{className:`rounded-2xl p-6 flex flex-col border transition-all hover:scale-[1.02] ${h===1?"bg-white/[0.06] border-white/[0.12] shadow-xl shadow-blue-500/5":"bg-white/[0.03] border-white/[0.06]"}`,children:[h===1&&t.jsx("span",{className:"text-xs text-blue-400 font-medium mb-2 uppercase tracking-wider",children:e("home.popular")||"Popular"}),t.jsx("h3",{className:"text-lg font-semibold text-white mb-1",children:s.name}),s.description&&t.jsx("p",{className:"text-sm text-neutral-400 mb-4",children:s.description}),t.jsxs("div",{className:"mt-auto pt-4",children:[t.jsxs("div",{className:"flex items-baseline gap-1",children:[t.jsxs("span",{className:"text-3xl font-bold text-white",children:["$",s.price]}),s.original_price>s.price&&t.jsxs("span",{className:"text-sm text-neutral-500 line-through",children:["$",s.original_price]})]}),s.duration>0&&t.jsx("p",{className:"text-xs text-neutral-500 mt-1",children:e("home.days",{count:s.duration})})]}),t.jsx(I,{to:r?"/packages":"/register",className:`mt-4 py-2.5 rounded-xl font-medium text-sm text-center transition-colors ${h===1?"bg-white text-black hover:bg-neutral-100":"bg-white/[0.06] text-white border border-white/[0.08] hover:bg-white/[0.1]"}`,children:e(r?"home.subscribe":"home.getStarted")})]},s.id))})]}),t.jsx("section",{className:"relative max-w-7xl mx-auto px-6 py-24",children:t.jsx("div",{className:"rounded-3xl p-12 text-center relative overflow-hidden bg-gradient-to-br from-violet-600/10 via-blue-600/10 to-cyan-600/10 border border-white/[0.08]",children:t.jsxs("div",{className:"relative z-10",children:[t.jsx("h2",{className:"text-3xl font-bold text-white mb-4",children:e("home.readyToStart")}),t.jsx("p",{className:"text-neutral-400 mb-8 max-w-md mx-auto",children:e("home.readyToStartDesc")}),t.jsx("div",{className:"flex items-center justify-center gap-4",children:r?t.jsx(I,{to:"/dashboard",className:"px-8 py-3 rounded-2xl bg-white text-black font-semibold hover:bg-neutral-100 transition-all",children:e("home.goToDashboard")}):t.jsxs(t.Fragment,{children:[t.jsx(I,{to:"/register",className:"px-8 py-3 rounded-2xl bg-white text-black font-semibold hover:bg-neutral-100 transition-all",children:e("home.createFreeAccount")}),t.jsx(I,{to:"/login",className:"px-8 py-3 rounded-2xl border border-white/20 text-white font-medium hover:bg-white/10 transition-all",children:e("home.signIn")})]})})]})})})]})}export{Fe as default};