PageSourceSearch

https://english-grammar.app/_next/static/chunks/94aaa410433fc64f.js?dpl=dpl_2sPHscraj5jHxodmYn4FdkGrGLH1

js english-grammar.app collected 2026-10-08 03:45:28 UTC 44,140 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,166075,e=>{"use strict";var t=e.i(843476),r=e.i(526732),n=e.i(271645);function a(){let{data:e}=(0,r.useSession)();return(0,n.useEffect)(()=>{if(!e?.user?.id)return;let t=`tz-synced:v2:${e.user.id}`;if(localStorage.getItem(t))return;let r=Intl.DateTimeFormat().resolvedOptions().timeZone;r&&"UTC"!==r&&(localStorage.setItem(t,"1"),fetch("/api/users/profile",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({timezone:r})}).catch(()=>{localStorage.removeItem(t)}))},[e]),null}function s({children:e}){return(0,t.jsxs)(r.SessionProvider,{children:[(0,t.jsx)(a,{}),e]})}e.s(["AuthProvider",()=>s],166075)},327454,e=>{"use strict";var t=e.i(843476),r=e.i(374684),n=e.i(558249);function a({trackLocation:e,onClick:a,...s}){return(0,t.jsx)(r.default,{...s,onClick:t=>{(0,n.trackNavClick)(e,String(s.href)),a?.(t)}})}e.s(["TrackedLink",()=>a])},530985,e=>{"use strict";let t=(0,e.i(475254).default)("CircleUser",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]);e.s(["CircleUser",()=>t],530985)},807729,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(167881),a=e.i(178059),s=e.i(526732),o=e.i(63270),i=e.i(981140),l=e.i(820783),c=e.i(30030),d=e.i(369340),u=e.i(248425),f=e.i(75830),p=e.i(586318),m=e.i(726330),h=e.i(303536),x=e.i(765491),g=e.i(610772),v=e.i(853660),y=e.i(774606),j=e.i(296626),b=e.i(842727),w=e.i(991918),k=e.i(30207),C=e.i(186312),S=e.i(985369),N=["Enter"," "],M=["ArrowUp","PageDown","End"],_=["ArrowDown","PageUp","Home",...M],R={ltr:[...N,"ArrowRight"],rtl:[...N,"ArrowLeft"]},P={ltr:["ArrowLeft"],rtl:["ArrowRight"]},E="Menu",[I,L,D]=(0,f.createCollection)(E),[T,O]=(0,c.createContextScope)(E,[D,v.createPopperScope,b.createRovingFocusGroupScope]),A=(0,v.createPopperScope)(),F=(0,b.createRovingFocusGroupScope)(),[H,z]=T(E),[K,q]=T(E),U=e=>{let{__scopeMenu:n,open:a=!1,children:s,dir:o,onOpenChange:i,modal:l=!0}=e,c=A(n),[d,u]=r.useState(null),f=r.useRef(!1),m=(0,k.useCallbackRef)(i),h=(0,p.useDirection)(o);return r.useEffect(()=>{let e=()=>{f.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>f.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,t.jsx)(v.Root,{...c,children:(0,t.jsx)(H,{scope:n,open:a,onOpenChange:m,content:d,onContentChange:u,children:(0,t.jsx)(K,{scope:n,onClose:r.useCallback(()=>m(!1),[m]),isUsingKeyboardRef:f,dir:h,modal:l,children:s})})})};U.displayName=E;var V=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,s=A(n);return(0,t.jsx)(v.Anchor,{...s,...a,ref:r})});V.displayName="MenuAnchor";var B="MenuPortal",[$,G]=T(B,{forceMount:void 0}),J=e=>{let{__scopeMenu:r,forceMount:n,children:a,container:s}=e,o=z(B,r);return(0,t.jsx)($,{scope:r,forceMount:n,children:(0,t.jsx)(j.Presence,{present:n||o.open,children:(0,t.jsx)(y.Portal,{asChild:!0,container:s,children:a})})})};J.displayName=B;var X="MenuContent",[W,Y]=T(X),Z=r.forwardRef((e,r)=>{let n=G(X,e.__scopeMenu),{forceMount:a=n.forceMount,...s}=e,o=z(X,e.__scopeMenu),i=q(X,e.__scopeMenu);return(0,t.jsx)(I.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(j.Presence,{present:a||o.open,children:(0,t.jsx)(I.Slot,{scope:e.__scopeMenu,children:i.modal?(0,t.jsx)(Q,{...s,ref:r}):(0,t.jsx)(ee,{...s,ref:r})})})})}),Q=r.forwardRef((e,n)=>{let a=z(X,e.__scopeMenu),s=r.useRef(null),o=(0,l.useComposedRefs)(n,s);return r.useEffect(()=>{let e=s.current;if(e)return(0,C.hideOthers)(e)},[]),(0,t.jsx)(et,{...e,ref:o,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:(0,i.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),ee=r.forwardRef((e,r)=>{let n=z(X,e.__scopeMenu);return(0,t.jsx)(et,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}
1),et=r.forwardRef((e,n)=>{let{__scopeMenu:a,loop:s=!1,trapFocus:o,onOpenAutoFocus:c,onCloseAutoFocus:d,disableOutsidePointerEvents:u,onEntryFocus:f,onEscapeKeyDown:p,onPointerDownOutside:g,onFocusOutside:y,onInteractOutside:j,onDismiss:k,disableOutsideScroll:C,...N}=e,R=z(X,a),P=q(X,a),E=A(a),I=F(a),D=L(a),[T,O]=r.useState(null),H=r.useRef(null),K=(0,l.useComposedRefs)(n,H,R.onContentChange),U=r.useRef(0),V=r.useRef(""),B=r.useRef(0),$=r.useRef(null),G=r.useRef("right"),J=r.useRef(0),Y=C?S.RemoveScroll:r.Fragment,Z=C?{as:w.Slot,allowPinchZoom:!0}:void 0;r.useEffect(()=>()=>window.clearTimeout(U.current),[]),(0,h.useFocusGuards)();let Q=r.useCallback(e=>{var t,r;return G.current===$.current?.side&&(t=e,!!(r=$.current?.area)&&function(e,t){let{x:r,y:n}=e,a=!1;for(let e=0,s=t.length-1;e<t.length;s=e++){let o=t[e].x,i=t[e].y,l=t[s].x,c=t[s].y;i>n!=c>n&&r<(l-o)*(n-i)/(c-i)+o&&(a=!a)}return a}({x:t.clientX,y:t.clientY},r))},[]);return(0,t.jsx)(W,{scope:a,searchRef:V,onItemEnter:r.useCallback(e=>{Q(e)&&e.preventDefault()},[Q]),onItemLeave:r.useCallback(e=>{Q(e)||(H.current?.focus(),O(null))},[Q]),onTriggerLeave:r.useCallback(e=>{Q(e)&&e.preventDefault()},[Q]),pointerGraceTimerRef:B,onPointerGraceIntentChange:r.useCallback(e=>{$.current=e},[]),children:(0,t.jsx)(Y,{...Z,children:(0,t.jsx)(x.FocusScope,{asChild:!0,trapped:o,onMountAutoFocus:(0,i.composeEventHandlers)(c,e=>{e.preventDefault(),H.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:d,children:(0,t.jsx)(m.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:p,onPointerDownOutside:g,onFocusOutside:y,onInteractOutside:j,onDismiss:k,children:(0,t.jsx)(b.Root,{asChild:!0,...I,dir:P.dir,orientation:"vertical",loop:s,currentTabStopId:T,onCurrentTabStopIdChange:O,onEntryFocus:(0,i.composeEventHandlers)(f,e=>{P.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,t.jsx)(v.Content,{role:"menu","aria-orientation":"vertical","data-state":eM(R.open),"data-radix-menu-content":"",dir:P.dir,...E,...N,ref:K,style:{outline:"none",...N.style},onKeyDown:(0,i.composeEventHandlers)(N.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,r=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;if(t){var a;let t,s,o,i,l,c;"Tab"===e.key&&e.preventDefault(),!r&&n&&(a=e.key,t=V.current+a,s=D().filter(e=>!e.disabled),o=document.activeElement,i=s.find(e=>e.ref.current===o)?.textValue,l=function(e,t,r){var n;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,s=r?e.indexOf(r):-1,o=(n=Math.max(s,0),e.map((t,r)=>e[(n+r)%e.length]));1===a.length&&(o=o.filter(e=>e!==r));let i=o.find(e=>e.toLowerCase().startsWith(a.toLowerCase()));return i!==r?i:void 0}(s.map(e=>e.textValue),t,i),c=s.find(e=>e.textValue===l)?.ref.current,function e(t){V.current=t,window.clearTimeout(U.current),""!==t&&(U.current=window.setTimeout(()=>e(""),1e3))}(t),c&&setTimeout(()=>c.focus()))}let s=H.current;if(e.target!==s||!_.includes(e.key))return;e.preventDefault();let o=D().filter(e=>!e.disabled).map(e=>e.ref.current);M.includes(e.key)&&o.reverse(),function(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}(o)}),onBlur:(0,i.composeEventHandlers)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(U.current),V.current="")}),onPointerMove:(0,i.composeEventHandlers)(e.onPointerMove,eP(e=>{let t=e.target,r=J.current!==e.clientX;e.currentTarget.contains(t)&&r&&(G.current=e.clientX>J.current?"right":"left",J.current=e.clientX)}))})})})})})})});Z.displayName=X;var er=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(u.Primitive.div,{role:"group",...a,ref:r})});er.displayName="MenuGroup";var en=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(u.Primitive.div,{...a,ref:r})});en.displayName="MenuLabel";var ea="MenuItem",es="menu.itemSelect",eo=r.forwardRef((e,n)=>{let{disabled:a=!1,onSelect:s,...o}=e,c=r.useRef(null),d=q(ea,e.__scopeMenu),f=Y(ea,e.__scopeMenu),p=(0,l.useComposedRefs)(n,c),m=r.useRef(!1);return(0,t.jsx)(ei,{...o,ref:p,disabled:a,onClick:(0,i.composeEventHandlers)(e.onClick,()=>
1{let e=c.current;if(!a&&e){let t=new CustomEvent(es,{bubbles:!0,cancelable:!0});e.addEventListener(es,e=>s?.(e),{once:!0}),(0,u.dispatchDiscreteCustomEvent)(e,t),t.defaultPrevented?m.current=!1:d.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),m.current=!0},onPointerUp:(0,i.composeEventHandlers)(e.onPointerUp,e=>{m.current||e.currentTarget?.click()}),onKeyDown:(0,i.composeEventHandlers)(e.onKeyDown,e=>{let t=""!==f.searchRef.current;a||t&&" "===e.key||N.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});eo.displayName=ea;var ei=r.forwardRef((e,n)=>{let{__scopeMenu:a,disabled:s=!1,textValue:o,...c}=e,d=Y(ea,a),f=F(a),p=r.useRef(null),m=(0,l.useComposedRefs)(n,p),[h,x]=r.useState(!1),[g,v]=r.useState("");return r.useEffect(()=>{let e=p.current;e&&v((e.textContent??"").trim())},[c.children]),(0,t.jsx)(I.ItemSlot,{scope:a,disabled:s,textValue:o??g,children:(0,t.jsx)(b.Item,{asChild:!0,...f,focusable:!s,children:(0,t.jsx)(u.Primitive.div,{role:"menuitem","data-highlighted":h?"":void 0,"aria-disabled":s||void 0,"data-disabled":s?"":void 0,...c,ref:m,onPointerMove:(0,i.composeEventHandlers)(e.onPointerMove,eP(e=>{s?d.onItemLeave(e):(d.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,i.composeEventHandlers)(e.onPointerLeave,eP(e=>d.onItemLeave(e))),onFocus:(0,i.composeEventHandlers)(e.onFocus,()=>x(!0)),onBlur:(0,i.composeEventHandlers)(e.onBlur,()=>x(!1))})})})}),el=r.forwardRef((e,r)=>{let{checked:n=!1,onCheckedChange:a,...s}=e;return(0,t.jsx)(ex,{scope:e.__scopeMenu,checked:n,children:(0,t.jsx)(eo,{role:"menuitemcheckbox","aria-checked":e_(n)?"mixed":n,...s,ref:r,"data-state":eR(n),onSelect:(0,i.composeEventHandlers)(s.onSelect,()=>a?.(!!e_(n)||!n),{checkForDefaultPrevented:!1})})})});el.displayName="MenuCheckboxItem";var ec="MenuRadioGroup",[ed,eu]=T(ec,{value:void 0,onValueChange:()=>{}}),ef=r.forwardRef((e,r)=>{let{value:n,onValueChange:a,...s}=e,o=(0,k.useCallbackRef)(a);return(0,t.jsx)(ed,{scope:e.__scopeMenu,value:n,onValueChange:o,children:(0,t.jsx)(er,{...s,ref:r})})});ef.displayName=ec;var ep="MenuRadioItem",em=r.forwardRef((e,r)=>{let{value:n,...a}=e,s=eu(ep,e.__scopeMenu),o=n===s.value;return(0,t.jsx)(ex,{scope:e.__scopeMenu,checked:o,children:(0,t.jsx)(eo,{role:"menuitemradio","aria-checked":o,...a,ref:r,"data-state":eR(o),onSelect:(0,i.composeEventHandlers)(a.onSelect,()=>s.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});em.displayName=ep;var eh="MenuItemIndicator",[ex,eg]=T(eh,{checked:!1}),ev=r.forwardRef((e,r)=>{let{__scopeMenu:n,forceMount:a,...s}=e,o=eg(eh,n);return(0,t.jsx)(j.Presence,{present:a||e_(o.checked)||!0===o.checked,children:(0,t.jsx)(u.Primitive.span,{...s,ref:r,"data-state":eR(o.checked)})})});ev.displayName=eh;var ey=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(u.Primitive.div,{role:"separator","aria-orientation":"horizontal",...a,ref:r})});ey.displayName="MenuSeparator";var ej=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,s=A(n);return(0,t.jsx)(v.Arrow,{...s,...a,ref:r})});ej.displayName="MenuArrow";var[eb,ew]=T("MenuSub"),ek="MenuSubTrigger",eC=r.forwardRef((e,n)=>{let a=z(ek,e.__scopeMenu),s=q(ek,e.__scopeMenu),o=ew(ek,e.__scopeMenu),c=Y(ek,e.__scopeMenu),d=r.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:f}=c,p={__scopeMenu:e.__scopeMenu},m=r.useCallback(()=>{d.current&&window.clearTimeout(d.current),d.current=null},[]);return r.useEffect(()=>m,[m]),r.useEffect(()=>{let e=u.current;return()=>{window.clearTimeout(e),f(null)}},[u,f]),(0,t.jsx)(V,{asChild:!0,...p,children:(0,t.jsx)(ei,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":o.contentId,"data-state":eM(a.open),...e,ref:(0,l.composeRefs)(n,o.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:(0,i.composeEventHandlers)(e.onPointerMove,eP(t=>{c.onItemEnter(t),!t.defaultPrevented&&(e.disabled||a.open||d.current||(c.onPointerGraceIntentChange(null),d.current=window.setTimeout(()=>{a.onOpenChange(!0),m()},100)))})),onPointerLeave:(0,i.composeEventHandlers)(e.onPointerLeave,eP(e=>{m();let t=a.content?.getBoundingClientRect();if(t){let r=a.content?.dataset.side,n="right"===r,s=t[n?"left":"right"],o=t[n?"right":"left"];c.onPointerGraceIntentChange({area:[{x:e.clientX+(n?-5:5),y:e.clientY},{x:s,y:t.top},{x:o,y:t.top},{x:o,y:t.bottom},{x:s,y:t.bottom}],side:r}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>c.onPointerGraceIntentChange(null),300)}else{if(c.onTriggerLeave(e),e.defaultPrevented)return;c.onPointerGraceIntentChange(null)}})),onKeyDown:(0,i.composeEventHandlers)(e.onKeyDown,t=>{let r=""!==c.searchRef.current;e.disabled||r&&" "===t.key||R[s.dir].includes(t.key)&&(a.onOpenChange(!0),a.content?.focus(),t.preventDefault())})})})});eC.displayName=ek;
1var eS="MenuSubContent",eN=r.forwardRef((e,n)=>{let a=G(X,e.__scopeMenu),{forceMount:s=a.forceMount,...o}=e,c=z(X,e.__scopeMenu),d=q(X,e.__scopeMenu),u=ew(eS,e.__scopeMenu),f=r.useRef(null),p=(0,l.useComposedRefs)(n,f);return(0,t.jsx)(I.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(j.Presence,{present:s||c.open,children:(0,t.jsx)(I.Slot,{scope:e.__scopeMenu,children:(0,t.jsx)(et,{id:u.contentId,"aria-labelledby":u.triggerId,...o,ref:p,align:"start",side:"rtl"===d.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{d.isUsingKeyboardRef.current&&f.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,i.composeEventHandlers)(e.onFocusOutside,e=>{e.target!==u.trigger&&c.onOpenChange(!1)}),onEscapeKeyDown:(0,i.composeEventHandlers)(e.onEscapeKeyDown,e=>{d.onClose(),e.preventDefault()}),onKeyDown:(0,i.composeEventHandlers)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),r=P[d.dir].includes(e.key);t&&r&&(c.onOpenChange(!1),u.trigger?.focus(),e.preventDefault())})})})})})});function eM(e){return e?"open":"closed"}function e_(e){return"indeterminate"===e}function eR(e){return e_(e)?"indeterminate":e?"checked":"unchecked"}function eP(e){return t=>"mouse"===t.pointerType?e(t):void 0}eN.displayName=eS;var eE="DropdownMenu",[eI,eL]=(0,c.createContextScope)(eE,[O]),eD=O(),[eT,eO]=eI(eE),eA=e=>{let{__scopeDropdownMenu:n,children:a,dir:s,open:o,defaultOpen:i,onOpenChange:l,modal:c=!0}=e,u=eD(n),f=r.useRef(null),[p=!1,m]=(0,d.useControllableState)({prop:o,defaultProp:i,onChange:l});return(0,t.jsx)(eT,{scope:n,triggerId:(0,g.useId)(),triggerRef:f,contentId:(0,g.useId)(),open:p,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),modal:c,children:(0,t.jsx)(U,{...u,open:p,onOpenChange:m,dir:s,modal:c,children:a})})};eA.displayName=eE;var eF="DropdownMenuTrigger",eH=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,disabled:a=!1,...s}=e,o=eO(eF,n),c=eD(n);return(0,t.jsx)(V,{asChild:!0,...c,children:(0,t.jsx)(u.Primitive.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":a?"":void 0,disabled:a,...s,ref:(0,l.composeRefs)(r,o.triggerRef),onPointerDown:(0,i.composeEventHandlers)(e.onPointerDown,e=>{!a&&0===e.button&&!1===e.ctrlKey&&(o.onOpenToggle(),o.open||e.preventDefault())}),onKeyDown:(0,i.composeEventHandlers)(e.onKeyDown,e=>{!a&&(["Enter"," "].includes(e.key)&&o.onOpenToggle(),"ArrowDown"===e.key&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});eH.displayName=eF;var ez=e=>{let{__scopeDropdownMenu:r,...n}=e,a=eD(r);return(0,t.jsx)(J,{...a,...n})};ez.displayName="DropdownMenuPortal";var eK="DropdownMenuContent",eq=r.forwardRef((e,n)=>{let{__scopeDropdownMenu:a,...s}=e,o=eO(eK,a),l=eD(a),c=r.useRef(!1);return(0,t.jsx)(Z,{id:o.contentId,"aria-labelledby":o.triggerId,...l,...s,ref:n,onCloseAutoFocus:(0,i.composeEventHandlers)(e.onCloseAutoFocus,e=>{c.current||o.triggerRef.current?.focus(),c.current=!1,e.preventDefault()}),onInteractOutside:(0,i.composeEventHandlers)(e.onInteractOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey,n=2===t.button||r;(!o.modal||n)&&(c.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});eq.displayName=eK,r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(er,{...s,...a,ref:r})}).displayName="DropdownMenuGroup";var eU=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(en,{...s,...a,ref:r})});eU.displayName="DropdownMenuLabel";var eV=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(eo,{...s,...a,ref:r})});eV.displayName="DropdownMenuItem",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(el,{...s,...a,ref:r})}).displayName="DropdownMenuCheckboxItem",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(ef,{...s,...a,ref:r})}).displayName="DropdownMenuRadioGroup",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(em,{...s,...a,ref:r})}).displayName="DropdownMenuRadioItem",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(ev,{...s,...a,ref:r})}).displayName="DropdownMenuItemIndicator";var eB=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(ey,{...s,...a,ref:r})});eB.displayName="DropdownMenuSeparator",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(ej,{...s,...a,ref:r})}).displayName="DropdownMenuArrow",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(eC,{...s,...a,ref:r})}).displayName="DropdownMenuSubTrigger",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,s=eD(n);return(0,t.jsx)(eN,{...s,...a,ref:r,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}).displayName="DropdownMenuSubContent",e.i(678784);var e$=e.i(475254);(0,e$.default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),(0,e$.default)("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var eG=e.i(647163);function eJ({...e}){return(0,t.jsx)(eA,{"data-slot":"dropdown-menu",...e})}function eX({...e}){return(0,t.jsx)(eH,{"data-slot":"dropdown-menu-trigger",...e})}function eW({className:e,sideOffset:r=4,...n}){return(0,t.jsx)(ez,{children:(0,t.jsx)(eq,{"data-slot":"dropdown-menu-content",sideOffset:r,className:(0,eG.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:sli
1de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",e),...n})})}function eY({className:e,inset:r,variant:n="default",...a}){return(0,t.jsx)(eV,{"data-slot":"dropdown-menu-item","data-inset":r,"data-variant":n,className:(0,eG.cn)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}function eZ({className:e,inset:r,...n}){return(0,t.jsx)(eU,{"data-slot":"dropdown-menu-label","data-inset":r,className:(0,eG.cn)("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",e),...n})}function eQ({className:e,...r}){return(0,t.jsx)(eB,{"data-slot":"dropdown-menu-separator",className:(0,eG.cn)("bg-border -mx-1 my-1 h-px",e),...r})}var e0=e.i(374684);let e1=(0,e$.default)("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);var e2=e.i(530985);let e5=(0,e$.default)("Medal",[["path",{d:"M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15",key:"143lza"}],["path",{d:"M11 12 5.12 2.2",key:"qhuxz6"}],["path",{d:"m13 12 5.88-9.8",key:"hbye0f"}],["path",{d:"M8 7h8",key:"i86dvs"}],["circle",{cx:"12",cy:"17",r:"5",key:"qbz8iq"}],["path",{d:"M12 18v-2h-.5",key:"fawc4q"}]]),e7=(0,e$.default)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var e3=e.i(260289),e4=e.i(367240),e6=e.i(531245),e8=e.i(686311),e9=e.i(630374),te=e.i(62870),tt=e.i(184762),tr=e.i(23750),tn=e.i(10708),ta=e.i(531278),ts=e.i(595468);let to=[{value:"bug",label:"Bug Report"},{value:"suggestion",label:"Suggestion"},{value:"content_error",label:"Content Error"},{value:"other",label:"Other"}];function ti({open:e,onOpenChange:a,userEmail:s}){let[o,i]=(0,r.useState)(""),[l,c]=(0,r.useState)(""),[d,u]=(0,r.useState)(s??""),[f,p]=(0,r.useState)("idle"),[m,h]=(0,r.useState)("");function x(){i(""),c(""),u(s??""),p("idle"),h("")}async function g(e){if(e.preventDefault(),o&&l.trim()){p("submitting"),h("");try{let e=await fetch("/api/feedback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:o,message:l.trim(),email:d.trim()||void 0,pageUrl:window.location.href})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to submit feedback")}p("success"),setTimeout(()=>{a(!1),x()},2e3)}catch(e){h(e instanceof Error?e.message:"Something went wrong"),p("idle")}}}return(0,t.jsx)(e9.Dialog,{open:e,onOpenChange:e=>{a(e),e||x()},children:(0,t.jsxs)(e9.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(e9.DialogHeader,{children:[(0,t.jsx)(e9.DialogTitle,{children:"Send Feedback"}),(0,t.jsx)(e9.DialogDescription,{children:"Help us improve. We read every message."})]}),"success"===f?(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 py-8",children:[(0,t.jsx)(ts.CheckCircle2,{className:"size-12 text-emerald-500"}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Thank y
1ou! We read every message."})]}):(0,t.jsxs)("form",{onSubmit:g,className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(tn.Label,{htmlFor:"feedback-category",children:"Category"}),(0,t.jsxs)(te.Select,{value:o,onValueChange:i,children:[(0,t.jsx)(te.SelectTrigger,{id:"feedback-category",children:(0,t.jsx)(te.SelectValue,{placeholder:"Select a category"})}),(0,t.jsx)(te.SelectContent,{children:to.map(e=>(0,t.jsx)(te.SelectItem,{value:e.value,children:e.label},e.value))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(tn.Label,{htmlFor:"feedback-message",children:"Message"}),(0,t.jsx)(tt.Textarea,{id:"feedback-message",placeholder:"Describe the issue or suggestion...",value:l,onChange:e=>c(e.target.value),rows:4,maxLength:5e3,required:!0})]}),!s&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)(tn.Label,{htmlFor:"feedback-email",children:["Email ",(0,t.jsx)("span",{className:"text-muted-foreground",children:"(optional, for follow-up)"})]}),(0,t.jsx)(tr.Input,{id:"feedback-email",type:"email",placeholder:"[email protected]",value:d,onChange:e=>u(e.target.value)})]}),m&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:m}),(0,t.jsx)(n.Button,{type:"submit",className:"w-full",disabled:!o||!l.trim()||"submitting"===f,children:"submitting"===f?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ta.Loader2,{className:"mr-2 size-4 animate-spin"}),"Sending..."]}):"Send Feedback"})]})]})})}function tl({user:e,userPlan:n}){let[a,i]=(0,r.useState)(!1),l=(e.name??e.email??"U").split(" ").map(e=>e[0]).join("").slice(0,2).toUpperCase(),c="pro"===n||"max"===n,d=n.toUpperCase(),u="max"===n?"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300":"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300";return(0,t.jsxs)(eJ,{children:[(0,t.jsxs)(eX,{className:"rounded-full outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 flex items-center gap-2",children:[(0,t.jsxs)(o.Avatar,{className:"size-8",children:[(0,t.jsx)(o.AvatarImage,{src:e.image??void 0,alt:e.name??"User"}),(0,t.jsx)(o.AvatarFallback,{className:"text-xs",children:l})]}),c&&(0,t.jsx)("span",{className:`hidden md:inline-flex items-center text-xs font-medium px-1.5 py-0.5 rounded ${u}`,children:d})]}),(0,t.jsxs)(eW,{align:"end",className:"w-48",children:[(0,t.jsx)(eZ,{className:"font-normal",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground truncate",children:e.email})]})}),(0,t.jsx)(eQ,{}),(0,t.jsx)(eY,{asChild:!0,children:(0,t.jsxs)(e0.default,{href:"/profile",children:[(0,t.jsx)(e2.CircleUser,{}),"Profile"]})}),(0,t.jsx)(eY,{asChild:!0,children:(0,t.jsxs)(e0.default,{href:"/dashboard",children:[(0,t.jsx)(e3.LayoutDashboard,{}),"Dashboard"]})}),(0,t.jsx)(eY,{asChild:!0,children:(0,t.jsxs)(e0.default,{href:"/achievements",children:[(0,t.jsx)(e5,{}),"My Achievements"]})}),(0,t.jsx)(eY,{asChild:!0,children:(0,t.jsxs)(e0.default,{href:"/review",children:[(0,t.jsx)(e4.RotateCcw,{}),"My Reviews"]})}),(0,t.jsx)(eY,{asChild:!0,children:(0,t.jsxs)(e0.default,{href:"/ai-coach",children:[(0,t.jsx)(e6.Bot,{}),"AI Coach"]})}),(0,t.jsx)(eY,{asChild:!0,children:(0,t.jsxs)(e0.default,{href:"/settings",children:[(0,t.jsx)(e7,{}),"Settings"]})}),(0,t.jsxs)(eY,{onClick:()=>i(!0),children:[(0,t.jsx)(e8.MessageSquare,{}),"Send Feedback"]}),(0,t.jsx)(eQ,{}),(0,t.jsxs)(eY,{onClick:()=>(0,s.signOut)(),children:[(0,t.jsx)(e1,{}),"Sign Out"]})]}),(0,t.jsx)(ti,{open:a,onOpenChange:i,userEmail:e.email})]})}function tc({user:e,userPlan:r}){return(0,t.jsx)("div",{className:"hidden md:flex items-center gap-3",children:(0,t.jsx)(tl,{user:e,userPlan:r})})}function td(){let[e,s]=(0,r.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"hidden md:flex items-center gap-3",children:(0,t.jsx)(n.Button,{variant:"outline",size:"sm",onClick:()=>s(!0),children:"Sign In"})}),(0,t.jsx)(a.AuthModal,{open:e,onOpenChange:s})]})}e.s(["HeaderAuth",()=>tc,"HeaderAuthSignIn",()=>td],807729)},363510,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(618566),a=e.i(988846),s=e.i(558249),o=e.i(753751);function i({min:e,max:r}){let n=e=>"Pre-A1"===e?"A0":e,a=e===r?n(e):`${n(e)}\u2013${n(r)}`;return(0,t.jsx)("span",{className:"ml-auto shrink-0 rounded-md border border-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:a})}function l({items:e}){let[l,c]=(0,r.useState)(!1),[d,u]=(0,r.useState)(""),f=(0,n.useRouter)(),p=(0,r.useRef)("keyboard"),m=(0,r.useRef)();(0,r.useEffect)(()=>
1{function e(e){"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),p.current="keyboard",c(e=>!e))}return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let h=(0,r.useCallback)(e=>{c(e),e?(0,s.trackSearchOpen)(p.current):(u(""),clearTimeout(m.current))},[]),x=(0,r.useCallback)(()=>{p.current="button",c(!0)},[]);(0,r.useEffect)(()=>{if(clearTimeout(m.current),l&&!(d.length<2))return m.current=setTimeout(()=>{document.querySelector("[cmdk-empty]")&&(0,s.trackSearchEmpty)(d)},500),()=>clearTimeout(m.current)},[d,l]);let g=new Map;for(let t of e){let e=g.get(t.category);e?e.push(t):g.set(t.category,[t])}return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:x,className:"hidden md:inline-flex items-center gap-2 rounded-md border border-input bg-background px-3 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-colors",children:[(0,t.jsx)(a.SearchIcon,{className:"size-4"}),(0,t.jsx)("span",{children:"Search exercises..."}),(0,t.jsxs)("kbd",{className:"pointer-events-none ml-1 inline-flex h-5 items-center gap-0.5 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground",children:[(0,t.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]}),(0,t.jsx)("button",{onClick:x,className:"md:hidden inline-flex items-center justify-center rounded-md p-2 text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-colors","aria-label":"Search exercises",children:(0,t.jsx)(a.SearchIcon,{className:"size-5"})}),(0,t.jsxs)(o.CommandDialog,{open:l,onOpenChange:h,title:"Search Exercises",description:"Search for grammar exercises by topic, category, or keyword",children:[(0,t.jsx)(o.CommandInput,{placeholder:"Type to search exercises...",onValueChange:u}),(0,t.jsxs)(o.CommandList,{children:[(0,t.jsx)(o.CommandEmpty,{children:"No exercises found."}),Array.from(g.entries()).map(([e,r])=>(0,t.jsx)(o.CommandGroup,{heading:r[0].categoryName,children:r.map(e=>(0,t.jsx)(o.CommandItem,{value:e.topicName,keywords:[e.categoryName,...e.tags,e.description],onSelect:()=>{(0,s.trackSearchSelect)({query:d,category:e.category,topic:e.topic}),c(!1),f.push(`/exercises/${e.category}/${e.topic}`)},children:(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-2 min-w-0",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate",children:e.topicName}),(0,t.jsxs)("div",{className:"text-xs text-muted-foreground",children:[e.totalQuestions," questions · ",e.totalSets," sets"]})]}),(0,t.jsx)(i,{min:e.difficultyMin,max:e.difficultyMax})]})},`${e.category}/${e.topic}`))},e))]})]})]})}e.s(["CommandSearch",()=>l])},747350,e=>{"use strict";var t=e.i(843476),r=e.i(157644);function n(){let{dueCount:e}=(0,r.useReviewCount)();return e<=0?null:(0,t.jsx)("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-red-500 text-white text-[10px] font-bold leading-none",children:e>99?"99+":e})}e.s(["ReviewBadge",()=>n])},371939,e=>{"use strict";var t=e.i(843476),r=e.i(618566);let n=["/start"];function a({header:e,footer:a,mobileNav:s,banner:o,children:i}){var l;return(l=(0,r.usePathname)())&&n.some(e=>l===e||l.startsWith(`${e}/`))?(0,t.jsx)("main",{children:i}):(0,t.jsxs)(t.Fragment,{children:[e,(0,t.jsxs)("main",{className:"pt-20 pb-16 md:pb-0",children:[o,i]}),a,s]})}e.s(["SiteChrome",()=>a])},489752,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(526732),a=e.i(618566),s=e.i(694351),o=e.i(674558),i=e.i(664030),l=e.i(530985),c=e.i(475254);let d=(0,c.default)("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]),u=(0,c.default)("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);var f=e.i(367240),p=e.i(327454),m=e.i(178059),h=e.i(747350);function x(){let{data:e}
1=(0,n.useSession)(),c=(0,a.usePathname)(),[x,g]=(0,r.useState)(!1),v=e=>`flex flex-col items-center gap-1 ${("/"===e?"/"===c:c.startsWith(e))?"text-primary":"text-muted-foreground"}`;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("nav",{className:"fixed bottom-0 left-0 right-0 z-50 bg-card/80 backdrop-blur-sm shadow-[0_-1px_3px_rgb(0,0,0,0.1)] md:hidden",children:(0,t.jsx)("div",{className:"flex items-center justify-around py-2",children:e?.user?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/exercises",className:v("/exercises"),children:[(0,t.jsx)(o.PenLine,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Exercises"})]}),(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/journey",className:v("/journey"),children:[(0,t.jsx)(u,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Journey"})]}),(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/review",className:v("/review"),children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(f.RotateCcw,{size:20}),(0,t.jsx)("span",{className:"absolute -top-1.5 -right-2.5",children:(0,t.jsx)(h.ReviewBadge,{})})]}),(0,t.jsx)("span",{className:"text-xs",children:"Review"})]}),(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/leaderboard",className:v("/leaderboard"),children:[(0,t.jsx)(i.Trophy,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Leaderboard"})]}),(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/profile",className:v("/profile"),children:[(0,t.jsx)(l.CircleUser,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Profile"})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/",className:v("/"),children:[(0,t.jsx)(s.Home,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Home"})]}),(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/exercises",className:v("/exercises"),children:[(0,t.jsx)(o.PenLine,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Exercises"})]}),(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/journey",className:v("/journey"),children:[(0,t.jsx)(u,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Journey"})]}),(0,t.jsxs)(p.TrackedLink,{trackLocation:"mobile-nav",href:"/leaderboard",className:v("/leaderboard"),children:[(0,t.jsx)(i.Trophy,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Leaderboard"})]}),(0,t.jsxs)("button",{onClick:()=>g(!0),className:"flex flex-col items-center gap-1 text-muted-foreground",children:[(0,t.jsx)(d,{size:20}),(0,t.jsx)("span",{className:"text-xs",children:"Sign In"})]})]})})}),(0,t.jsx)(m.AuthModal,{open:x,onOpenChange:g})]})}e.s(["MobileNav",()=>x],489752)},922744,e=>{"use strict";var t=e.i(843476),r=e.i(526732),n=e.i(271645),a=e.i(37727);let s="eg-email-verified",o="eg-email-banner-dismissed";function i(){let{data:e,status:i}
1=(0,r.useSession)(),[l,c]=(0,n.useState)(!1),[d,u]=(0,n.useState)("idle");if((0,n.useEffect)(()=>{"authenticated"===i&&e?.user&&"1"!==sessionStorage.getItem(o)&&"1"!==sessionStorage.getItem(s)&&fetch("/api/auth/verification-status").then(e=>e.json()).then(e=>{e.verified?sessionStorage.setItem(s,"1"):c(!0)}).catch(()=>{})},[i,e?.user]),!l)return null;let f=async()=>{if("sending"!==d&&"sent"!==d){u("sending");try{let e=await fetch("/api/auth/resend-verification",{method:"POST"});if(e.ok)u("sent");else{let t=await e.json();429===e.status?u("sent"):(console.error("[verification-banner]",t.error),u("error"))}}catch{u("error")}}};return(0,t.jsx)("div",{className:"bg-amber-50 border-b border-amber-200 text-amber-900 text-sm",children:(0,t.jsxs)("div",{className:"mx-auto max-w-7xl px-4 py-2.5 flex items-center justify-between gap-3",children:[(0,t.jsxs)("p",{className:"flex-1",children:["Please verify your email address. Check your inbox for a verification link.","idle"===d&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("button",{onClick:f,className:"underline font-medium hover:text-amber-700 cursor-pointer",children:"Resend"})]}),"sending"===d&&(0,t.jsx)("span",{className:"ml-1 text-amber-600",children:"Sending…"}),"sent"===d&&(0,t.jsx)("span",{className:"ml-1 text-green-700 font-medium",children:"Sent!"}),"error"===d&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"ml-1 text-red-700",children:"Failed to send."})," ",(0,t.jsx)("button",{onClick:f,className:"underline font-medium hover:text-amber-700 cursor-pointer",children:"Retry"})]})]}),(0,t.jsx)("button",{onClick:()=>{sessionStorage.setItem(o,"1"),c(!1)},className:"shrink-0 p-1 rounded hover:bg-amber-100 text-amber-600 hover:text-amber-800 cursor-pointer","aria-label":"Dismiss",children:(0,t.jsx)(a.X,{className:"h-4 w-4"})})]})})}e.s(["EmailVerificationBanner",()=>i])},808341,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cancelIdleCallback:function(){return o},requestIdleCallback:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},o="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},479520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},handleClientScriptLoad:function(){return x},initScriptLoader:function(){return g}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(555682),o=e.r(190809),i=e.r(843476),l=s._(e.r(174080)),c=o._(e.r(271645)),d=e.r(742732),u=e.r(922737),f=e.r(808341),p=new Map,m=new Set,h=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:a=null,dangerouslySetInnerHTML:s,children:o="",strategy:i="afterInteractive",onError:c,stylesheets:d}=e,f=r||t;if(f&&m.has(f))return;if(p.has(t)){m.add(f),p.get(t).then(n,c);return}let h=()=>{a&&a(),m.add(f)},x=document.createElement("script"),g=new Promise((e,t)=>{x.addEventListener("load",function(t){e(),n&&n.call(this,t),h()}),x.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});s?(x.innerHTML=s.__html||"",h()):o?(x.textContent="string"==typeof o?o:Array.isArray(o)?o.join(""):"",h()):t&&(x.src=t,p.set(t,g)),(0,u.setAttributesFromProps)(x,e),"worker"===i&&x.setAttribute("type","text/partytown"),x.setAttribute("data-nscript",i),d&&(e=>{if(l.default.preinit)return e.forEach(e=>{l.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(d),document.body.appendChild(x)};function x(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>h(e))}):h(e)}function g(e){e.forEach(x),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEac
1h(e=>{let t=e.id||e.getAttribute("src");m.add(t)})}function v(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:a=null,strategy:s="afterInteractive",onError:o,stylesheets:u,...p}=e,{updateScripts:x,scripts:g,getIsSsr:v,appDir:y,nonce:j}=(0,c.useContext)(d.HeadManagerContext);j=p.nonce||j;let b=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let e=t||r;b.current||(a&&e&&m.has(e)&&a(),b.current=!0)},[a,t,r]);let w=(0,c.useRef)(!1);if((0,c.useEffect)(()=>{if(!w.current){if("afterInteractive"===s)h(e);else"lazyOnload"===s&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>h(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>h(e))}));w.current=!0}},[e,s]),("beforeInteractive"===s||"worker"===s)&&(x?(g[s]=(g[s]||[]).concat([{id:t,src:r,onLoad:n,onReady:a,onError:o,...p,nonce:j}]),x(g)):v&&v()?m.add(t||r):v&&!v()&&h({...e,nonce:j})),y){if(u&&u.forEach(e=>{l.default.preinit(e,{as:"style"})}),"beforeInteractive"===s)if(!r)return p.dangerouslySetInnerHTML&&(p.children=p.dangerouslySetInnerHTML.__html,delete p.dangerouslySetInnerHTML),(0,i.jsx)("script",{nonce:j,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...p,id:t}])})`}});else return l.default.preload(r,p.integrity?{as:"script",integrity:p.integrity,nonce:j,crossOrigin:p.crossOrigin}:{as:"script",nonce:j,crossOrigin:p.crossOrigin}),(0,i.jsx)("script",{nonce:j,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([r,{...p,id:t}])})`}});"afterInteractive"===s&&r&&l.default.preload(r,p.integrity?{as:"script",integrity:p.integrity,nonce:j,crossOrigin:p.crossOrigin}:{as:"script",nonce:j,crossOrigin:p.crossOrigin})}return null}Object.defineProperty(v,"__nextScript",{value:!0});let y=v;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3303,(e,t,r)=>{t.exports=e.r(479520)},821490,e=>{"use strict";var t=e.i(843476),r=e.i(3303),n=e.i(526732),a=e.i(618566);let s=[/^\/start/,/^\/dashboard/,/^\/review/,/^\/ai-coach/,/^\/profile/,/^\/settings/,/^\/admin/,/^\/pricing/];function o(){let{data:e,status:o}=(0,n.useSession)(),i=(0,a.usePathname)();if("loading"===o)return null;let l=e?.user?.plan;return"pro"===l||"max"===l||s.some(e=>e.test(i))?null:(0,t.jsx)(r.default,{src:"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4130639192955062",crossOrigin:"anonymous",strategy:"afterInteractive"})}e.s(["default",()=>o])},158447,e=>{"use strict";var t=e.i(618566),r=e.i(271645);function n(){let e=(0,t.usePathname)();return(0,r.useEffect)(()=>{let e=`${window.location.pathname}${window.location.search}`;if(window.dataLayer=window.dataLayer||[],"function"!=typeof window.gtag&&(window.gtag=(...e)=>{window.dataLayer?.push(e)}),window.gtag("event","page_view",{page_path:e}),"function"==typeof window.clarity)try{window.clarity("set","page",e)}catch{}},[e]),null}e.s(["AnalyticsPageView",()=>n])},375637,e=>{"use strict";var t=e.i(271645);function r(){return(0,t.useEffect)(()=>{let e=window.fetch;return window.fetch=function(t,r){let n=t instanceof Request&&"1"===t.headers.get("Next-Router-Prefetch")||r?.headers&&"1"===r.headers["Next-Router-Prefetch"]?"static_prefetch":"static";if(t instanceof URL)t.searchParams.has("_rsc")&&t.searchParams.set("_rsc",n);else if(t instanceof Request){let e=new URL(t.url);e.searchParams.has("_rsc")&&(e.searchParams.set("_rsc",n),t=new Request(e,t))}else if("string"==typeof t){let e=new URL(t,window.location.href);e.searchParams.has("_rsc")&&(e.searchParams.set("_rsc",n),t=e.toString())}return e.call(window,t,r)},()=>{window.fetch=e}},[]),null}e.s(["StaticRscParam",()=>r])}]);

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.