1import{n as e,s as t,t as n}from"./jsx-runtime-2UHhqg_S.js";import{t as r}from"./ShareSheetModal-CZGf_LmW.js";import{t as i}from"./share-2-CUe2op_K.js";import{t as a}from"./trophy-CkrnlDXs.js";import{c as o,d as s,l as c,s as l}from"./siteConfig-DX2eLpJP.js";import{As as u,Dc as d,Ds as f,Ho as p,Io as m,Ls as h,Mc as g,Ms as _,Ns as v,Os as y,Sa as b,Sc as x,Zs as S,_c as C,hc as w,js as T,kc as E,lc as D,pc as O,sc as k,wa as A,ws as j,zo as M}from"./index-Bz3OMYEn.js";import{r as N}from"./ToolPageShell-DtN25waP.js";import{a as P,i as F,n as ee,t as I}from"./practiceLifetimeStatsColumns-B0pv38YQ.js";var L=x(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),te=x(`shopping-cart`,[[`circle`,{cx:`8`,cy:`21`,r:`1`,key:`jimo8o`}],[`circle`,{cx:`19`,cy:`21`,r:`1`,key:`13723u`}],[`path`,{d:`M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12`,key:`9zh506`}]]),R=t(e(),1),z=n();function ne({open:e,onClose:t,title:n,lead:r}){let{openAuth:i,practiceBilling:a}=m(),o=p(a);if((0,R.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),!e)return null;let s=n??(o?`å
费注åï¼é 1 天ä¼å`:`å
费注åï¼é 50 积å`),c=r??(o?_:T);return(0,z.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm`,onClick:t,children:(0,z.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":s,className:`w-full max-w-sm glass-card glass-card-lg p-6 shadow-2xl`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,z.jsxs)(`h2`,{className:`text-lg font-bold text-text-primary flex items-center gap-2`,children:[(0,z.jsx)(h,{size:18,className:`text-primary dark:text-primary-light`}),s]}),(0,z.jsx)(`button`,{type:`button`,onClick:t,className:`text-text-secondary hover:text-text-primary transition-colors`,"aria-label":`å
³é`,children:(0,z.jsx)(v,{size:18})})]}),(0,z.jsx)(`p`,{className:`text-sm text-text-secondary leading-relaxed`,children:c}),(0,z.jsx)(`ul`,{className:`mt-4 space-y-2`,children:y.map(e=>(0,z.jsxs)(`li`,{className:`text-sm text-text-secondary`,children:[(0,z.jsx)(`span`,{className:`text-text-primary font-medium`,children:u}),` · `,e]},e))}),(0,z.jsx)(`p`,{className:`mt-4 text-xs text-text-muted leading-relaxed`,children:f}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>{t(),i(`register`)},className:`mt-5 w-full glass-cta glass-cta-sm glass-cta--violet font-semibold`,children:j})]})})}var re=500,ie=500;function ae(e,t){return Number.isFinite(e)&&Number.isFinite(t)&&t>0&&t<=re&&e>=0&&e<=t}function B(e){if(e.get(`ps`)!==`1`)return null;let t=Number.parseInt(e.get(`c`)??``,10),n=Number.parseInt(e.get(`t`)??``,10);if(!ae(t,n))return null;let r=e.get(`bs`),i=0;if(r!=null&&r!==``&&(i=Number.parseInt(r,10),!Number.isFinite(i)||i<0||i>ie))return null;let a=Math.round(t/n*100);return{correct:t,total:n,bestStreak:i,accuracy:a}}function V(e){let t=new URLSearchParams;return t.set(`ps`,`1`),t.set(`c`,String(e.correct)),t.set(`t`,String(e.total)),e.bestStreak>0&&t.set(`bs`,String(e.bestStreak)),t}function oe(e,t){let n=new URL(s(e));return V(t).forEach((e,t)=>{n.searchParams.set(t,e)}),n.toString()}function se(e,t,n){let r=`æå¨å¬é³å§ç»äº${e}ï¼${t.correct}/${t.total} æ£ç¡®`;return t.bestStreak>0&&(r+=`ï¼æé¿è¿å¯¹ ${t.bestStreak} é¢`),`${r}\n${n}`}var H=1080,U=1350,W={backgroundTop:`#1a0f14`,backgroundBottom:`#2d1522`,primary:`#db2777`,primaryLight:`#f472b6`,textPrimary:`#fdf2f8`,textSecondary:`rgba(253, 242, 248, 0.72)`,textMuted:`rgba(253, 242, 248, 0.48)`,watermark:`rgba(253, 242, 248, 0.55)`},G=`'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif`,K=null;function ce(){return K||=new Promise(e=>{let t=new Image;t.crossOrigin=`anonymous`,t.onload=()=>e(t),t.onerror=()=>e(null),t.src=o}),K}function le(e,t,n,r,i,a){let o=Math.min(a,r/2,i/2);e.beginPath(),e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.quadraticCurveTo(t+r,n,t+r,n+o),e.lineTo(t+r,n+i-o),e.quadraticCurveTo(t+r,n+i,t+r-o,n+i),e.lineTo(t+o,n+i),e.quadraticCurveTo(t,n+i,t,n+i-o),e.lineTo(t,n+o),e.quadraticCurveTo(t,n,t+o,n),e.closePath()}function ue(e){let t=e.createLinearGradient(0,0,0,U);t.addColorStop(0,W.backgroundTop),t.addColorStop(1,W.backgroundBottom),e.fillStyle=t,e.fillRect(0,0,H,U);let n=e.createRadialGradient(H*.5,U*.32,0,H*.5,U*.32,H*.55);n.addColorStop(0,`rgba(219, 39, 119, 0.22)`),n.addColorStop(1,`rgba(219, 39, 119, 0)`),e.fillStyle=n,e.fillRect(0,0,H,U)}function de(e,t){let n=H-144;e.save(),le(e,72,260,n,620,36),e.fillStyle=`rgba(255, 255, 255, 0.06)`,e.fill(),e.strokeStyle=`rgba(244, 114, 182, 0.28)`,e.lineWidth=2,e.stroke(),e.restore(
1),e.textAlign=`center`,e.fillStyle=W.textSecondary,e.font=`500 36px ${G}`,e.fillText(t.moduleLabel,H/2,348),e.fillStyle=W.textPrimary,e.font=`700 148px ${G}`,e.fillText(`${t.correct}/${t.total}`,H/2,550),e.fillStyle=W.primaryLight,e.font=`600 52px ${G}`,e.fillText(`åç¡®ç ${t.accuracy}%`,H/2,650),t.bestStreak>0&&(e.fillStyle=W.textSecondary,e.font=`500 40px ${G}`,e.fillText(`æé¿è¿å¯¹ ${t.bestStreak} é¢`,H/2,730))}function fe(e){e.textAlign=`center`,e.fillStyle=W.primaryLight,e.font=`600 42px ${G}`,e.fillText(c,H/2,150),e.fillStyle=W.textMuted,e.font=`400 30px ${G}`,e.fillText(`ç»ä¹ æç»©`,H/2,205)}function pe(e,t){let n=U-120,r=l;e.strokeStyle=`rgba(255, 255, 255, 0.12)`,e.lineWidth=1,e.beginPath(),e.moveTo(120,n-36),e.lineTo(H-120,n-36),e.stroke(),e.font=`500 34px ${G}`;let i=e.measureText(r).width,a=(H-((t?68:0)+i))/2,o=n+18;t&&e.drawImage(t,a,o-52/2,52,52),e.textAlign=`left`,e.textBaseline=`middle`,e.fillStyle=W.watermark,e.fillText(r,a+(t?68:0),o),e.textBaseline=`alphabetic`,e.textAlign=`center`}async function me(e){let t=document.createElement(`canvas`);t.width=H,t.height=U;let n=t.getContext(`2d`);if(!n)throw Error(`æ æ³å建ç»å¸`);let r=await ce();return ue(n),fe(n),de(n,e),pe(n,r),new Promise((e,n)=>{t.toBlob(t=>{t?e(t):n(Error(`çæå享å¾å¤±è´¥`))},`image/png`)})}function he(e,t,n,r){let i=oe(e,n);return{url:i,shareText:se(t,{correct:n.correct,total:n.total,bestStreak:n.bestStreak,accuracy:r},i),title:`å¬é³å§ · ${t}ç»ä¹ æç»©`,generateShareImage:()=>me({moduleLabel:t,correct:n.correct,total:n.total,accuracy:r,bestStreak:n.bestStreak}),shareImageFilename:`tingyinba-practice-share.png`}}function q(e,t,n){return{correct:e.correct,total:e.total,accuracy:t,streak:e.streak,bestStreak:e.bestStreak,sessionGoal:n?.sessionGoal,className:n?.className}}var ge=[10,20],_e=2800,ve=5200,J=3,Y=5;function ye(e,t,n,r){return!(r||e<=t||e<=n||n===0&&e<10)}function be({snapshot:e,accuracy:t,sessionGoal:n,moduleLabel:r,enabled:i=!0}){let{user:a}=m(),o=!a,[s,c]=(0,R.useState)([]),[l,u]=(0,R.useState)(!1),[d,f]=(0,R.useState)(!1),[p,h]=(0,R.useState)(!1),[g,_]=(0,R.useState)(),v=(0,R.useRef)(0),y=(0,R.useRef)(0),b=(0,R.useRef)(e.bestStreak),x=(0,R.useRef)(e.bestStreak),S=(0,R.useRef)(!1),C=(0,R.useRef)(new Set),w=(0,R.useRef)(!1),T=(0,R.useRef)(!1),E=(0,R.useRef)(new Map),D=(0,R.useCallback)(e=>{c(t=>t.filter(t=>t.id!==e));let t=E.current.get(e);t!==void 0&&(window.clearTimeout(t),E.current.delete(e))},[]),O=(0,R.useCallback)((e,t,n)=>{let r=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=n?.showShare??!1;c(n=>[...n.slice(-1),{id:r,message:e,tone:t,showShare:i}]);let a=i?ve:_e,o=window.setTimeout(()=>D(r),a);E.current.set(r,o)},[D]),k=(0,R.useCallback)(()=>{u(!0),window.setTimeout(()=>u(!1),700)},[]),A=(0,R.useCallback)(e=>{!o||T.current||e<Y||(T.current=!0,_(`ä½ å·²è¿å¯¹ ${e} é¢ï¼æ³¨ååå¯äºç«¯ä¿åç»ä¹ è¿åº¦ä¸è¿å¯¹è®°å½ï¼å¤è®¾å¤åæ¥ã`),h(!0))},[o]),j=(0,R.useCallback)(()=>{e.total>=J&&f(!0)},[e.total]),M=(0,R.useCallback)(()=>f(!1),[]),N=(0,R.useCallback)(()=>h(!1),[]),P=(0,R.useCallback)(()=>{v.current=0,y.current=0,x.current=e.bestStreak,b.current=e.bestStreak,S.current=!1,C.current.clear(),w.current=!1,u(!1),c([]);for(let e of E.current.values())window.clearTimeout(e);E.current.clear()},[e.bestStreak]);return(0,R.useEffect)(()=>{if(!i)return;let{total:t,streak:r,bestStreak:a,correct:o}=e;if(t>v.current){let e=r>y.current;if(!e&&y.current>=Y&&A(y.current),e&&r>0){let e;for(let t of ge)if(r===t&&!C.current.has(t)){C.current.add(t),e=t;break}let t=ye(a,b.current,x.current,S.current);t&&(S.current=!0),e!==void 0&&t?(O(`æ°çºªå½ï¼è¿å¯¹ ${r} é¢`,`record`,{showShare:e>=20}),k()):e===void 0?t&&(O(`æ°çºªå½ï¼è¿å¯¹ ${r} é¢`,`record`,{showShare:r>=20}),k()):(O(`è¿å¯¹ ${e} é¢ï¼`,e>=20?`celebration`:`success`,{showShare:e>=20}),k())}n&&n>0&&t>=n&&!w.current&&(w.current=!0,O(`æ¬å±ç®æ è¾¾æï¼`,`celebration`),window.setTimeout(()=>f(!0),400)),b.current=a,v.current=t,y.current=r}else t<v.current&&(v.current=t,y.current=r,b.current=a)},[i,e,n,O,A,k,t,r]),(0,R.useEffect)(()=>()=>{for(let e of E.current.values())window.clearTimeout(e);E.current.clear()},[]),{toasts:s,dismissToast:D,streakPulse:l,showSummary:d,openSummary:j,closeSummary:M,showGuestPromo:p,closeGuestPromo:N,guestPromoLead:g,resetMilestones:P,canShowSummary:e.total>=J}}
1var xe={success:`border-emerald-500/35 text-emerald-100`,celebration:`border-primary/40 text-text-primary`,record:`border-amber-500/40 text-amber-100`};function Se({tone:e}){return e===`record`?(0,z.jsx)(a,{size:16,className:`text-amber-400 shrink-0`}):e===`celebration`?(0,z.jsx)(h,{size:16,className:`text-primary-light shrink-0`}):(0,z.jsx)(L,{size:16,className:`text-emerald-400 shrink-0`})}function Ce({toasts:e,onDismiss:t,onShare:n}){return e.length===0?null:(0,z.jsx)(`div`,{className:`fixed top-20 left-1/2 z-[55] flex w-full max-w-sm -translate-x-1/2 flex-col gap-2 px-4 pointer-events-none`,"aria-live":`polite`,children:e.map(e=>(0,z.jsxs)(`div`,{role:`status`,className:`pointer-events-auto flex items-center gap-2.5 rounded-xl border bg-surface/95 px-4 py-2.5 text-sm font-medium shadow-lg backdrop-blur-sm transition-all duration-300 ${xe[e.tone]}`,children:[(0,z.jsx)(Se,{tone:e.tone}),(0,z.jsx)(`span`,{className:`flex-1 min-w-0`,children:e.message}),e.showShare&&n?(0,z.jsxs)(`button`,{type:`button`,onClick:()=>{t(e.id),n()},className:`inline-flex items-center gap-1 text-xs font-medium text-primary hover:text-primary-light shrink-0`,children:[(0,z.jsx)(i,{size:12,"aria-hidden":!0}),`å享æç»©`]}):null,(0,z.jsx)(`button`,{type:`button`,onClick:()=>t(e.id),className:`text-xs text-text-muted hover:text-text-secondary shrink-0`,"aria-label":`å
³é`,children:`å
³é`})]},e.id))})}function we({correct:e,total:t,accuracy:n,streak:r,bestStreak:a,sessionGoal:o,className:s=``,streakPulse:c=!1,onShowSummary:l,onShare:u,embedded:d=!1}){let f=Math.max(0,t-e),p=o!==void 0&&o>0,m=p?Math.min(100,Math.round(t/o*100)):0,h=r>=3;return(0,z.jsxs)(`section`,{className:d?`flex flex-col gap-3 ${s}`:`glass-card px-5 py-4 sm:px-6 flex flex-col gap-3 ${s}`,"aria-label":`æ¬æ¬¡ç»ä¹ ç»è®¡`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-2 text-sm min-w-0`,children:[(0,z.jsx)(X,{label:`ç颿°`,value:t>0?String(t):`â`}),(0,z.jsx)(X,{label:`æ£ç¡®`,value:t>0?String(e):`â`}),(0,z.jsx)(X,{label:`é误`,value:t>0?String(f):`â`}),(0,z.jsx)(X,{label:`æ£ç¡®ç`,value:t>0?`${n}%`:`â`}),(0,z.jsx)(X,{label:`è¿å¯¹`,value:String(r),highlight:h,pulse:c}),(0,z.jsx)(X,{label:`æé«è¿å¯¹`,value:String(a),highlight:a>0,highlightTone:`amber`})]}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 sm:justify-end`,children:[p?(0,z.jsxs)(`div`,{className:`flex-1 min-w-0 sm:min-w-[200px] sm:max-w-xs`,children:[(0,z.jsx)(`div`,{className:`h-1.5 rounded-full bg-[var(--glass-overlay-strong)] overflow-hidden`,children:(0,z.jsx)(`div`,{className:`h-full rounded-full bg-primary/70 transition-all duration-300`,style:{width:`${m}%`}})}),(0,z.jsxs)(`p`,{className:`text-[10px] text-text-muted mt-1 tabular-nums`,children:[`ç®æ è¿åº¦ `,Math.min(t,o),` / `,o,` é¢`]})]}):null,t>0?(0,z.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0`,children:[l?(0,z.jsx)(`button`,{type:`button`,onClick:l,className:`text-[11px] text-primary hover:text-primary-light transition-colors`,children:`ç»ä¹ å°ç»`}):null,u?(0,z.jsxs)(`button`,{type:`button`,onClick:u,className:`inline-flex items-center gap-1 text-[11px] text-text-muted hover:text-primary-light transition-colors`,children:[(0,z.jsx)(i,{size:12}),`å享`]}):null]}):null]})]})}function X({label:e,value:t,highlight:n=!1,highlightTone:r=`primary`,pulse:i=!1}){return(0,z.jsxs)(`div`,{className:`flex items-baseline gap-1.5`,children:[(0,z.jsx)(`span`,{className:`text-[10px] text-text-muted`,children:e}),(0,z.jsx)(`span`,{className:`font-semibold tabular-nums ${n?r===`amber`?`text-amber-700 dark:text-amber-300/90`:`text-primary`:`text-text-primary`} ${i?`animate-bounce`:``}`,children:t})]})}function Te({open:e,onClose:t,snapshot:n,accuracy:r,moduleLabel:a,sessionGoal:o,onShare:s,weakSpot:c}){let{user:l,openAuth:u}=m(),d=!l;if((0,R.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),!e)return null;let f=o!==void 0&&o>0&&n.total>=o,p=Math.max(0,n.total-n.correct),h=p>0&&c&&c.sessionFocusKeys.length>0&&!!c.onStartFocusSession,g=c?.focusLabels.slice(0,4).join(`ã`)??``;return(0,z.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm`,onClick:t,children:(0,z.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":`æ¬æ¬¡ç»ä¹ å°ç»`,className:`w-full max-w-sm glass-card glass-card-lg p-6 shadow-2xl`,onClick:e=>e.stopPropagation(),children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,z.jsxs)(`h2`,{className:`text-lg font-bold text-text-primary flex items-center gap-2`,children:[(0,z.jsx)(C,{size:18,className:`text-primary dark:text-primary-light`}),`æ¬æ¬¡ç»ä¹ å°ç»`]}),(0,z.jsx)(`button`,{type:`button`,onClick:t,className:`text-text-secondary hover:text-text-primary transition-colors`,"aria-label":`å
³é`,children:(0,z.jsx)(v,{size:18})})]}),a?(0,z.jsx)(`p`,{className:`text-xs text-text-muted mb-3`,children:a}):null,(0,z.jsxs)(`dl`,{className:`grid grid-cols-2 gap-3 text-sm`,children:[(0,z.jsx)(Z,{label:`ç颿°`,value:`${n.total} é¢`}),(0,z.jsx)(Z,{label:`æ£ç¡®`,value:`${n.correct} é¢`}),(0,z.jsx)(Z,{label:`é误`,value:`${p} é¢`}),(0,z.jsx)(Z,{label:`æ£ç¡®ç`,value:`${r}%`}),(0,z.jsx)(Z,{label:`è¿å¯¹`,value:`${n.streak} é¢`}),(0,z.jsx)(Z,{label:`æé«è¿å¯¹`,value:`${n.bestStreak} é¢`,highlight:!0})]}),f?(0,z.jsxs)(`p`,{className:`mt-4 text-sm text-primary font-medium`,children:[`å·²å®æç®æ `,o,` é¢ï¼ç»§ç»ä¿æï¼`]}):null,h?(0,z.jsxs)(`p`,{className:`mt-4 text-xs text-text-secondary leading-relaxed`,children:[`æ¬æ¬¡å¸¸éï¼`,g,c.focusLabels.length>4?`â¦`:``]}):null,(0,z.jsxs)(`div`,{className:`mt-5 space-y-2`,children:[h?(0,z.jsxs)(`button`,{type:`button`,onClick:()=>{c.onStartFocusSession(),t()},className:`w-full glass-cta glass-cta-sm font-semibold`,children:[`éç¹ç» `,c.sessionFocusKeys.length,` 项`]}
1):null,s?(0,z.jsxs)(`button`,{type:`button`,onClick:()=>{s(),t()},className:`w-full glass-cta glass-cta-sm font-semibold inline-flex items-center justify-center gap-2`,children:[(0,z.jsx)(i,{size:16,"aria-hidden":!0}),`å享æç»©`]}):null,d?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`p`,{className:`text-xs text-text-muted leading-relaxed`,children:`注ååå¯äºç«¯ä¿åç»ä¹ è¿åº¦ï¼ä¸æ¬¡åæ¥æ¥çç»ã`}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>{t(),u(`register`)},className:`w-full glass-cta glass-cta-sm glass-cta--violet font-semibold`,children:j})]}):(0,z.jsx)(`button`,{type:`button`,onClick:t,className:`w-full glass-btn text-sm font-medium`,children:`ç»§ç»ç»ä¹ `})]})]})})}function Z({label:e,value:t,highlight:n=!1}){return(0,z.jsxs)(`div`,{className:`rounded-lg border border-border bg-surface/50 px-3 py-2.5`,children:[(0,z.jsx)(`dt`,{className:`text-[10px] uppercase tracking-wider text-text-muted`,children:e}),(0,z.jsx)(`dd`,{className:`mt-0.5 text-base font-semibold tabular-nums ${n?`text-amber-700 dark:text-amber-300/90`:`text-text-primary`}`,children:t})]})}function Q({session:e,moduleLabel:t,enabled:n=!0,className:i,showBar:a=!0,embedded:o=!1}){let s=E(),[c,l]=(0,R.useState)(!1),u=t??`ç»è³ç»ä¹ `,d=(0,R.useMemo)(()=>!c||e.snapshot.total<=0?null:he(s.pathname,u,{correct:e.snapshot.correct,total:e.snapshot.total,bestStreak:e.snapshot.bestStreak},e.accuracy),[c,s.pathname,u,e.accuracy,e.snapshot]),f=be({snapshot:e.snapshot,accuracy:e.accuracy,sessionGoal:e.sessionGoal,moduleLabel:t,enabled:n}),p=(0,R.useCallback)(()=>{e.snapshot.total>0&&l(!0)},[e.snapshot.total]);return(0,z.jsxs)(z.Fragment,{children:[a?(0,z.jsx)(we,{...q(e.snapshot,e.accuracy,{sessionGoal:e.sessionGoal,className:i}),streakPulse:f.streakPulse,onShowSummary:f.canShowSummary?f.openSummary:void 0,onShare:e.snapshot.total>0?p:void 0,embedded:o}):null,(0,z.jsx)(Ce,{toasts:f.toasts,onDismiss:f.dismissToast,onShare:e.snapshot.total>0?p:void 0}),(0,z.jsx)(Te,{open:f.showSummary,onClose:f.closeSummary,snapshot:e.snapshot,accuracy:e.accuracy,moduleLabel:t,sessionGoal:e.sessionGoal,onShare:e.snapshot.total>0?p:void 0,weakSpot:e.weakSpot}),(0,z.jsx)(ne,{open:f.showGuestPromo,onClose:f.closeGuestPromo,title:`ä¿åä½ çç»ä¹ æç»©`,lead:f.guestPromoLead}),(0,z.jsx)(r,{open:c,onClose:()=>l(!1),payload:d,heading:`å享ç»ä¹ æç»©`})]})}var Ee=`px-2 py-1.5 text-[11px] font-medium text-text-muted whitespace-nowrap text-right first:text-left`,De=`px-2 py-1 text-sm tabular-nums text-text-primary text-right first:text-left`;function Oe({moduleId:e,className:t=``}){let{summary:n,loading:r}=b(),i=(0,R.useMemo)(()=>n?.modules.find(t=>t.moduleId===e)??null,[n,e]);if(r&&!i)return(0,z.jsx)(`p`,{className:`text-xs text-text-muted ${t}`,children:`å 载累计记å½â¦`});if(!i||i.totalQuestions<=0)return(0,z.jsx)(`p`,{className:`text-xs text-text-muted ${t}`,children:`ææ äºç«¯ç´¯è®¡è®°å½ï¼çé¢åä¼èªå¨ä¿åã`});let a=i.totalQuestions-i.correctQuestions,o=[i.totalQuestions,i.correctQuestions,a,ee(i.correctQuestions,i.totalQuestions),i.bestStreak];return(0,z.jsxs)(`div`,{className:t,children:[(0,z.jsx)(`p`,{className:`text-xs font-medium text-text-secondary mb-2`,children:`累计记å½`}),(0,z.jsx)(`div`,{className:`overflow-x-auto`,children:(0,z.jsxs)(`table`,{className:`w-full min-w-[20rem] border-collapse text-sm`,children:[(0,z.jsx)(`thead`,{children:(0,z.jsx)(`tr`,{children:I.map(e=>(0,z.jsx)(`th`,{className:Ee,scope:`col`,children:e},e))})}),(0,z.jsx)(`tbody`,{children:(0,z.jsx)(`tr`,{children:o.map((e,t)=>(0,z.jsx)(`td`,{className:De,children:e},I[t]))})})]})})]})}function ke({className:e=``,embedded:t=!1}){let{user:n,practiceBilling:r,quota:i,hasRegisteredAccess:a,practiceCredits:o,openAuth:s,openPricing:c}=m(),l=p(r),{summary:u,loading:f,error:h}=b(),g=t?`flex flex-wrap items-center justify-between gap-3 ${e}`:`flex flex-wrap items-center justify-between gap-3 rounded-xl border border-border bg-surface/60 px-4 py-2.5 ${e}`,_=l?`ç»å½åèªå¨è®°å½ç»ä¹ è¿åº¦ï¼æ³¨åé 1 天ä¼å`:`ç»å½åèªå¨è®°å½ç»ä¹ è¿åº¦ï¼æ³¨åé 50 积å`,v=a&&!n?.isAdmin&&(l?!i?.isMember:o!=null&&o<=10);if(!n)return(0,z.jsxs)(`div`,{className:g,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-text-secondary min-w-0`,children:[t?null:(0,z.jsx)(C,{size:15,className:`text-primary shrink-0`}),(0,z.jsx)(`span`,{children:_})]}),(0,z.jsx)(`button`,{type:`button`,className:`text-sm text-primary hover:text-primary-light transition-colors shrink-0`,onClick:()=>s(`register`),children:`å
费注å`})]});let y=M(i?.memberExpireAt);return(0,z.jsxs)(`div`,{className:g,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-text-secondary min-w-0 flex-wrap`,children:[t?null:(0,z.jsx)(C,{size:15,className:`text-primary shrink-0`}),a&&l&&i?.isMember&&y&&(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-text-secondary`,children:[(0,z.jsx)(k,{size:14,className:`text-amber-600 shrink-0`}),`ä¼åè³`,(0,z.jsx)(`span`,{className:`text-text-primary font-medium`,children:y}),(0,z.jsx)(`span`,{className:`mx-1 text-text-muted`,children:`·`})]}),a&&!l&&o!=null&&(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-text-secondary`,children:[(0,z.jsx)(D,{size:14,className:`text-amber-600 shrink-0`}),`积å`,(0,z.jsx)(`span`,{className:`text-text-primary font-medium tabular-nums`,children:o}),(0,z.jsx)(`span`,{className:`mx-1 text-text-muted`,children:`·`})]}),f&&!u?(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-text-muted`,children:[(0,z.jsx)(S,{size:13,className:`animate-spin`}),`å è½½è¿åº¦â¦`]}
1):h?(0,z.jsx)(`span`,{className:`text-red-500/90`,children:h}):u?(0,z.jsxs)(`span`,{children:[`仿¥ç»ä¹ è®°å½`,` `,(0,z.jsx)(`span`,{className:`text-text-primary font-medium tabular-nums`,children:P(u.todayPracticeCount)}),(0,z.jsx)(`span`,{className:`mx-1 text-text-muted`,children:`·`}),(0,z.jsx)(`span`,{className:`text-text-primary font-medium tabular-nums`,children:F(u.todayActiveSec)}),(0,z.jsx)(`span`,{className:`mx-2 text-text-muted`,children:`·`}),`æ¬å¨ç»ä¹ è®°å½`,` `,(0,z.jsx)(`span`,{className:`text-text-primary font-medium tabular-nums`,children:P(u.weekPracticeCount)}),(0,z.jsx)(`span`,{className:`mx-1 text-text-muted`,children:`·`}),(0,z.jsx)(`span`,{className:`text-text-primary font-medium tabular-nums`,children:F(u.weekActiveSec)})]}):(0,z.jsx)(`span`,{className:`text-text-muted`,children:`å¼å§ç»è³åèªå¨ä¿åè¿åº¦`})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0`,children:[v&&(0,z.jsx)(`button`,{type:`button`,"aria-label":l?`å¼éä¼å`:`è´ä¹°ç§¯å`,title:l?`å¼éä¼å`:`è´ä¹°ç§¯å`,className:`inline-flex items-center justify-center rounded-md p-1 text-amber-600 hover:text-amber-500 transition-colors`,onClick:c,children:(0,z.jsx)(te,{size:16,"aria-hidden":!0})}),(0,z.jsxs)(d,{to:`/practice-progress`,className:`inline-flex items-center gap-0.5 text-sm text-primary hover:text-primary-light transition-colors`,children:[`æ¥çå
¨é¨`,(0,z.jsx)(O,{size:14})]})]})]})}function Ae({result:e,moduleLabel:t}){return(0,z.jsx)(`div`,{className:`glass-card-muted rounded-xl border border-border px-4 py-4 sm:px-5`,children:(0,z.jsxs)(`p`,{className:`text-sm text-text-secondary leading-relaxed`,children:[(0,z.jsx)(`span`,{className:`text-text-primary font-medium`,children:`访客å¨${t}ç»ä¹ ï¼${e.correct}/${e.total} 颿£ç¡®ï¼åç¡®ç ${e.accuracy}%${e.bestStreak>0?`ï¼æé¿è¿å¯¹ ${e.bestStreak} é¢`:``}`}),`ãæç»©ç±åäº«é¾æ¥å¸¦å
¥ï¼å¼å§ç»ä¹ åç»è®¡ä¼è®°å½å¨æ¬é¡µã`]})})}function $({moduleLabel:e,className:t=``}){let[n]=g(),r=(0,R.useMemo)(()=>B(n),[n]);return r?(0,z.jsx)(`div`,{className:t,children:(0,z.jsx)(Ae,{result:r,moduleLabel:e??`ç»è³ç»ä¹ `})}):null}function je({showProgressStrip:e,moduleId:t,session:n,moduleLabel:r,milestonesEnabled:i,statsHint:a}){let o=e,s=!!n,c=!!t;return!o&&!s&&!c&&!a?null:(0,z.jsxs)(`div`,{className:`space-y-3`,children:[o?(0,z.jsx)(ke,{embedded:!0}):null,o&&c?(0,z.jsx)(`div`,{className:`border-t border-border/50`,"aria-hidden":!0}):null,c&&t?(0,z.jsx)(Oe,{moduleId:t}):null,a?(0,z.jsx)(`p`,{className:`text-xs text-text-muted leading-relaxed`,children:a}):null,s&&(o||c||a)?(0,z.jsx)(`div`,{className:`border-t border-border/50`,"aria-hidden":!0}):null,s&&n?(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsx)(`p`,{className:`text-xs font-medium text-text-secondary`,children:`æ¬æ¬¡ç»ä¹ `}),(0,z.jsx)(Q,{session:n,moduleLabel:r,enabled:i,embedded:!0})]}):null]})}function Me({className:e=``,showProgressStrip:t=!0,moduleId:n,session:r,moduleLabel:i,milestonesEnabled:a=!0,collapsible:o=!0,defaultOpen:s=!1,statsHint:c}){let l=(0,z.jsx)(je,{showProgressStrip:t,moduleId:n,session:r,moduleLabel:i,milestonesEnabled:a,statsHint:c});return!t&&!r&&!c?null:o?(0,z.jsxs)(`div`,{className:`space-y-3 ${e}`,children:[(0,z.jsx)($,{moduleLabel:i}),(0,z.jsx)(Ne,{className:``,defaultOpen:s,sessionTotal:r?.snapshot.total,children:l})]}):(0,z.jsxs)(`div`,{className:`space-y-3 ${e}`,children:[(0,z.jsx)($,{moduleLabel:i}),l]})}function Ne({className:e,defaultOpen:t,sessionTotal:n,children:r}){let[i,a]=(0,R.useState)(t),o=(0,R.useRef)(!1);return(0,R.useEffect)(()=>{if(n!==void 0){if(n===0){o.current=!1;return}n>=3&&!o.current&&(o.current=!0,a(!0))}},[n]),(0,z.jsxs)(`details`,{className:`group rounded-xl border border-border/70 bg-surface/50 overflow-hidden ${e}`,open:i,onToggle:e=>a(e.currentTarget.open),children:[(0,z.jsxs)(`summary`,{className:`cursor-pointer list-none px-4 py-3 text-sm font-medium text-text-primary [&::-webkit-details-marker]:hidden flex items-center justify-between gap-3 hover:bg-[var(--glass-overlay-subtle)] transition-colors`,children:[(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(C,{size:15,className:`text-primary shrink-0`,"aria-hidden":!0}),(0,z.jsx)(`span`,{children:`ç»ä¹ ç»è®¡`})]}),(0,z.jsx)(w,{size:16,className:`text-text-secondary shrink-0 transition-transform duration-200 group-open:rotate-180`,"aria-hidden":!0})]}),(0,z.jsx)(`div`,{className:`px-4 pb-4 pt-2 border-t border-border/60`,children:r})]})}function Pe({session:e,moduleLabel:t,milestonesEnabled:n,tracker:r}){return(0,z.jsxs)(`div`,{className:`space-y-4`,children:[r,e?(0,z.jsx)(Q,{session:e,moduleLabel:t,enabled:n,showBar:!0}):null]})}function Fe({children:e,className:t=``,moduleId:n,session:r,moduleLabel:i,milestonesEnabled:a=!0,sessionBar:o,tracker:s,showProgressStrip:c=!0,statsHint:l}){let{isFocusMode:u,setSessionStats:d,setSettingsPanel:f}=A();return(0,R.useEffect)(()=>
1{if(!u||!r)return;let{snapshot:e,accuracy:t}=r;return d({correct:e.correct,total:e.total,streak:e.streak,accuracy:t}),()=>d(null)},[u,r,d]),(0,R.useEffect)(()=>{if(!u){f(null);return}if(!r&&!s){f(null);return}return f((0,z.jsx)(Pe,{session:r,moduleLabel:i,milestonesEnabled:a,tracker:s})),()=>f(null)},[u,a,i,r,f,s]),u?(0,z.jsxs)(`div`,{className:`flex flex-col h-full min-h-0 ${t}`,children:[r?(0,z.jsx)(Q,{session:r,moduleLabel:i,enabled:a,showBar:!1}):o,(0,z.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto`,children:e})]}):(0,z.jsxs)(`div`,{className:`space-y-4 ${t}`,children:[c||r?(0,z.jsx)(`div`,{className:N,children:(0,z.jsx)(Me,{showProgressStrip:c,moduleId:n,session:r,moduleLabel:i,milestonesEnabled:a,statsHint:l})}):null,r?null:o,s,e]})}export{Fe as t};
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.