1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9628],{5356:(e,t,r)=>{r.d(t,{wD:()=>i});let i={Theme:"THEME",InviteCode:"INVITE_CODE"}},19628:(e,t,r)=>{r.d(t,{default:()=>b});var i=r(95532),n=r(70160),a=r(2859),s=r(61216),l=r(60391),o=r(8504),d=r(49232);let c=s.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,i.jsx)(l.bL,{className:(0,d.cn)("grid gap-2",r),...n,ref:t})});c.displayName=l.bL.displayName;let u=s.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,i.jsx)(l.q7,{ref:t,className:(0,d.cn)("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),...n,children:(0,i.jsx)(l.C1,{className:"flex items-center justify-center",children:(0,i.jsx)(o.A,{className:"h-2.5 w-2.5 fill-current text-current"})})})});u.displayName=l.q7.displayName;var f=r(96204),m=r(99491),g=r(68380),p=r(58659),v=r(24217),x=r(58796),h=r(69027);function b(e){var t,r,l,o,d;let{pricing:b,hideHeading:y=!1,hideGroups:j=!1,hideFooterCta:N=!1}=e;if(b.disabled)return null;let w=(0,h.Ym)(),{user:_,setShowSignModal:k}=(0,x.U)(),[E,C]=(0,s.useState)(()=>{var e,t,r;let i=null===(e=b.groups)||void 0===e?void 0:e.find(e=>e.is_featured);return(null==i?void 0:i.name)||(null===(r=b.groups)||void 0===r?void 0:null===(t=r[0])||void 0===t?void 0:t.name)}),[S,I]=(0,s.useState)(!1),[P,T]=(0,s.useState)(null),D=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e){v.oR.error("Please select a plan.");return}try{if(!_){k(!0);return}let r={product_id:e.product_id,currency:t?"cny":e.currency,locale:w||"en"};I(!0);let i=await fetch("/api/checkout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(401===i.status){I(!1),k(!0);return}let{code:n,message:a,data:s}=await i.json();if(0!==n){v.oR.error(a);return}let{checkout_url:l}=s;if(!l){v.oR.error("checkout failed");return}window.location.href=l}catch(e){console.log("checkout failed: ",e),v.oR.error("checkout failed")}finally{I(!1)}},z=(0,s.useMemo)(()=>{if(b.items)return b.items.find(e=>e.product_id===P)},[b.items,P]);return(0,s.useEffect)(()=>{if(!b.items)return;let e=b.items.filter(e=>e.group?e.group===E:!E);if(0===e.length){T(null);return}T(t=>{if(t&&e.some(e=>e.product_id===t))return t;let r=e.find(e=>e.is_featured);return(null==r?void 0:r.product_id)||e[0].product_id})},[E,b.items]),(0,i.jsx)("section",{id:b.name,className:"py-16",children:(0,i.jsx)("div",{className:"container",children:(0,i.jsxs)("div",{className:"w-full flex flex-col items-center gap-1",children:[!y&&(0,i.jsxs)("div",{className:"mx-auto mb-12 text-center",children:[(0,i.jsx)("h2",{className:"mb-4 text-4xl font-semibold lg:text-5xl",children:b.title}),(0,i.jsx)("p",{className:"text-muted-foreground lg:text-lg",children:b.description})]}),b.groups&&b.groups.length>0&&!j&&(0,i.jsx)("div",{className:"flex h-12 mb-12 items-center rounded-md bg-muted p-1 text-lg",children:(0,i.jsx)(c,{value:E,className:"h-full flex items-center gap-1",onValueChange:e=>{C(e)},children:b.groups.map((e,t)=>(0,i.jsxs)("div",{className:'h-full rounded-md transition-all has-[button[data-state="checked"]]:bg-white',children:[(0,i.jsx)(u,{value:e.name||"",id:e.name,className:"peer sr-only"}),(0,i.jsxs)(p.J,{htmlFor:e.name,className:"flex h-full cursor-pointer items-center justify-center px-4 font-semibold text-muted-foreground peer-data-[state=checked]:text-primary",children:[e.title,e.label&&(0,i.jsx)(f.E,{variant:"outline",className:"border-primary bg-primary px-1.5 ml-1 text-primary-foreground",children:e.label})]})]},t))})}),(0,i.jsx)("div",{className:"w-full mt-0 grid gap-6 md:grid-cols-".concat((null===(r=b.items)||void 0===r?void 0:null===(t=r.filter(e=>!e.group||e.group===E))||void 0===t?void 0:t.length)||1),children:null===(l=b.items)||void 0===l?void 0:l.map((e,t)=>{if(e.group&&e.group!==E)return null;let r=e.product_id===P;return(0,i.jsx)("div",{role:"button",tabIndex:0,onClick:()=>T(e.product_id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),T(e.product_id))},className:"".concat("rounded-lg p-6 transition-all cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2"," ").concat(r?"border-primary border-2 bg-card text-card-foreground shadow-lg":"border-muted border bg-background"),children:(0,i.jsxs)("div",{className:"flex h-full flex-col justify-between gap-5",children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[e.title&&(0,i.jsx)("h3",{className:"text-xl font-semibold",children:e.title}),(0,i.jsx)("div",{className:"flex-1"}),e.label&&(0,i.jsx)(f.E,{variant:"outline",className:"border-primary bg-primary px-1.5 ml-1 text-primary-foreground",children:e.label})]}),(0,i.jsxs)("div",{className:"flex items-end gap-2 mb-4",children:[e.original_price&&(0,i.jsx)("span",{className:"text-xl text-muted-foreground font-semibold line-through",children:e.original_price}),e.price&&(0,i.jsx)("span",{className:"text-5xl font-semibold",children:e.price}),e.unit&&(0,i.jsx)("span",{className:"block font-semibold",children:e.unit})]}),e.features_title&&(0,i.jsx)("p",{className:"mb-3 mt-6 font-semibold",children:e.features_title}),e.features&&(0,i.jsx)("ul",{className:"flex flex-col gap-3",children:e.features.map((e,t)=>(0,i.jsxs)("li",{className:"flex gap-2",children:[(0,i.jsx)(n.A,{className:"mt-1 size-4 shrink-0"}),e]},"feature-".concat(t)))}),e.license_notice?(0,i.jsx)("p",{className:"mt-4 text-sm font-semibold ".concat("destructive"===e.license_notice_tone?"text-destructive":"success"===e.license_notice_tone?"text-emerald-600":"text-foreground"),children:e.license_notice}):null]}),(0,i.jsx)("div",{className:"flex flex-col gap-2",children:e.tip&&(0,i.jsx)("p",{className:"text-muted-foreground text-sm mt-2",children:e.tip})})]})},t)})}),N?null:(0,i.jsxs)("div",{className:"w-full flex flex-col items-center gap-3 mt-8",children:[(0,i.jsxs)(m.$,{className:"w-full md:w-auto flex items-center justify-center gap-2 font-semibold",disabled:!z||S,onClick:()=>{!S&&z&&D(z)},children:[S&&(0,i.jsx)(a.A,{className:"mr-2 h-4 w-4 animate-spin"}),(null==z?void 0:null===(o=z.button)||void 0===o?void 0:o.title)||"Choose Plan",(null==z?void 0:null===(d=z.button)||void 0===d?void 0:d.icon)&&(0,i.jsx)(g.default,{name:z.button.icon,className:"size-4"})]}),(null==z?void 0:z.cn_amount)?(0,i.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Prefer RMB?",(0,i.jsx)("button",{type:"button",className:"ml-1 text-primary underline-offset-4 hover:underline",disabled:S,onClick:()=>{!S&&z&&D(z,!0)},children:"Pay with RMB"})]}):null]})]})})})}},49232:(e,t,r)=>{r.d(t,{cn:()=>a});var i=r(27988),n=r(48449);function a(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,n.QP)((0,i.$)(t))}},58659:(e,t,r)=>{r.d(t,{J:()=>s});var i=r(95532);r(61216);
1var n=r(3749),a=r(49232);function s(e){let{className:t,...r}=e;return(0,i.jsx)(n.b,{"data-slot":"label",className:(0,a.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...r})}},58796:(e,t,r)=>{r.d(t,{AppContextProvider:()=>p,U:()=>f});var i=r(95532),n=r(61216),a=r(97523),s=r(5356),l=r(20283),o=r.n(l),d=r(54715),c=r(97769);let u=(0,n.createContext)({}),f=()=>(0,n.useContext)(u),m=null;async function g(){return m||(m=(await r.e(8548).then(r.t.bind(r,9210,23))).default),m}let p=e=>{let{children:t}=e;(0,c.y2)()&&(0,c.Ej)()&&function(){let{data:e,status:t}=(0,d.wV)(),r=async function(){o()({client_id:"290924337645-6o2timb2i1d6ltpgs4dm2uq5q2giajl2.apps.googleusercontent.com",auto_select:!1,cancel_on_tap_outside:!1,context:"signin"},e=>{console.log("onetap login ok",e),a(e.credential)})},a=async function(e){console.log("signIn ok",await (0,d.Jv)("google-one-tap",{credential:e,redirect:!1}))};(0,n.useEffect)(()=>{if("unauthenticated"===t){r();let e=setInterval(()=>{r()},3e3);return()=>{clearInterval(e)}}},[t]),i.Fragment}();let{data:r}=(0,c.y2)()?(0,d.wV)():{data:null},[l,f]=(0,n.useState)(!1),[m,p]=(0,n.useState)(null),[v,x]=(0,n.useState)(!1),[h,b]=(0,n.useState)(0),y=(0,n.useCallback)(e=>{b(t=>e?t+1:t>0?t-1:0)},[]),j=async function(){try{let e=await fetch("/api/get-user-info",{method:"POST"});if(!e.ok)throw Error("fetch user info failed with status: "+e.status);let{code:t,message:r,data:i}=await e.json();if(0!==t)throw Error(r);p(i),N(i)}catch(e){console.log("fetch user info failed")}},N=async e=>{try{if(e.invited_by){console.log("user already been invited",e.invited_by);return}let t=(0,a.pr)(s.wD.InviteCode);if(!t)return;let r=await g(),i=r(e.created_at).unix(),n=r().unix(),l=Number(n-i);if(l<=0||l>7200){console.log("user created more than 2 hours");return}console.log("update invite",t,e.uuid);let o={invite_code:t,user_uuid:e.uuid},d=await fetch("/api/update-invite",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!d.ok)throw Error("update invite failed with status: "+d.status);let{code:c,message:u,data:f}=await d.json();if(0!==c)throw Error(u);p(f),(0,a.np)(s.wD.InviteCode)}catch(e){console.log("update invite failed: ",e)}};return(0,n.useEffect)(()=>{r&&r.user&&j()},[r]),(0,i.jsxs)(u.Provider,{value:{showSignModal:l,setShowSignModal:f,user:m,setUser:p,showFeedback:v,setShowFeedback:x,isGlobalLoading:h>0,setIsGlobalLoading:y},children:[t,h>0&&(0,i.jsxs)("div",{className:"bg-background/70 fixed inset-0 z-[1300] flex items-center justify-center backdrop-blur-sm",children:[(0,i.jsx)("span",{className:"sr-only",children:"Loading"}),(0,i.jsx)("div",{className:"border-muted h-12 w-12 animate-spin rounded-full border-4 border-t-primary"})]})]})}},66742:(e,t,r)=>{r.d(t,{lg:()=>i});let i=()=>Date.parse(new Date().toUTCString())/1e3},68380:(e,t,r)=>{r.r(t),r.d(t,{default:()=>a});var i=r(95532);let n={Ri:r(73948)};function a(e){let{name:t,className:r,onClick:a}=e,s=function(e){let t=n[e.slice(0,2)];return t&&t[e]||null}(t);return s?(0,i.jsx)(s,{className:"".concat(r," cursor-pointer"),onClick:a,style:{cursor:a?"pointer":"default"}}):null}},96204:(e,t,r)=>{r.d(t,{E:()=>o});var i=r(95532);r(61216);var n=r(94454),a=r(41910),s=r(49232);let l=(0,a.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:r,asChild:a=!1,...o}=e,d=a?n.DX:"span";return(0,i.jsx)(d,{"data-slot":"badge",className:(0,s.cn)(l({variant:r}),t),...o})}},97523:(e,t,r)=>{r.d(t,{PW:()=>a,np:()=>s,pr:()=>n});var i=r(66742);let n=e=>{let t=localStorage.getItem(e);if(!t)return null;let r=t.split(":");if(!r||r.length<2)return null;let n=Number(r[0]),a=(0,i.lg)();if(-1!==n&&n<a)return s(e),null;let l=r[0]+":";return t.replace(l,"")},a=(e,t,r)=>{localStorage.setItem(e,r+":"+t)}
1,s=e=>{localStorage.removeItem(e)}},97769:(e,t,r)=>{r.d(t,{Ej:()=>a,y2:()=>n});var i=r(50874);function n(){return i.env.NEXT_PUBLIC_AUTH_ENABLED,"false"!==i.env.NEXT_PUBLIC_AUTH_ENABLED}function a(){return!0}},99491:(e,t,r)=>{r.d(t,{$:()=>o,r:()=>l});var i=r(95532);r(61216);var n=r(94454),a=r(41910),s=r(49232);let l=(0,a.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:t,variant:r,size:a,asChild:o=!1,...d}=e,c=o?n.DX:"button";return(0,i.jsx)(c,{"data-slot":"button",className:(0,s.cn)(l({variant:r,size:a,className:t})),...d})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.