1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9589],{62102:function(e,t,r){"use strict";r.d(t,{C:function(){return i}}),r(83079);var i=(0,r(12119).$)("3d365eac91b4fdf5c66207add9995915cec21f92")},97831:function(e,t,r){"use strict";r.d(t,{A:function(){return p},a:function(){return v}});var i=r(57437),n=r(2265),a=r(54887),s=r(45884),l=r(34415),c=r(30401),o=r(78867),d=r(35398),u=r(34137),x=r(98319),m=r(12355),f=r.n(m);function b(){return document.fullscreenElement||document.webkitFullscreenElement}async function h(e){if(e&&b()===e)try{var t,r;document.exitFullscreen?await document.exitFullscreen():await (null===(t=(r=document).webkitExitFullscreen)||void 0===t?void 0:t.call(r))}catch(e){}}function v(e){let{value:t,disabled:r=!1}=e,[c,o]=(0,n.useState)(!1),x=(0,n.useRef)(null),m=(0,n.useRef)(null),v=(0,n.useRef)(null),p=()=>{h(x.current),o(!1)};(0,u.j)(p,c),(0,n.useEffect)(()=>{var e;if(!c)return;let t=x.current,r=document.body.style.overflow;document.body.style.overflow="hidden",null===(e=v.current)||void 0===e||e.focus();let i=!1,n=()=>{b()===t?i=!0:i&&o(!1)};document.addEventListener("fullscreenchange",n),document.addEventListener("webkitfullscreenchange",n);let a=m.current;return()=>{document.body.style.overflow=r,document.removeEventListener("fullscreenchange",n),document.removeEventListener("webkitfullscreenchange",n),h(t),null==a||a.focus()}},[c]);let g=async()=>{(0,a.flushSync)(()=>o(!0));let e=x.current;if(e)try{var t;e.requestFullscreen?await e.requestFullscreen():await (null===(t=e.webkitRequestFullscreen)||void 0===t?void 0:t.call(e))}catch(e){}};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("button",{ref:m,type:"button",className:f().expand,onClick:g,disabled:r||!t,"aria-label":"QR ì½ë ì ì²´íë©´",title:"QR ì½ë ì ì²´íë©´",children:(0,i.jsx)(s.Z,{size:20,"aria-hidden":"true"})}),c&&(0,a.createPortal)((0,i.jsxs)("div",{ref:x,className:f().fullscreen,role:"dialog","aria-modal":"true","aria-label":"QR ì½ë ì ì²´íë©´",onClick:e=>e.stopPropagation(),onKeyDown:e=>{if("Tab"===e.key){var t;e.preventDefault(),null===(t=v.current)||void 0===t||t.focus()}},children:[(0,i.jsx)("button",{ref:v,type:"button",className:f().collapse,onClick:p,"aria-label":"ì ì²´íë©´ ë«ê¸°",title:"ì ì²´íë©´ ë«ê¸° (Esc)",children:(0,i.jsx)(l.Z,{size:24,"aria-hidden":"true"})}),(0,i.jsx)(d.t,{value:t,size:1024,level:"H",includeMargin:!0,className:f().code})]}),document.body)]})}function p(e){let{value:t,pending:r=!1}=e,[a,s]=(0,n.useState)(!1),{showToast:l}=(0,x.p)();(0,n.useEffect)(()=>{if(!a)return;let e=window.setTimeout(()=>s(!1),2e3);return()=>window.clearTimeout(e)},[a]);let d=async()=>{try{await navigator.clipboard.writeText(t),s(!0),l("ë§í¬ê° ë³µì¬ëììµëë¤.","success")}catch(e){l("ë§í¬ë¥¼ ë³µì¬íì§ ëª»íìµëë¤. 주ì를 ì íí´ ì§ì ë³µì¬í´ 주ì¸ì.","error")}};return(0,i.jsxs)("div",{className:f().link,children:[(0,i.jsx)("input",{"aria-label":"ê³µì ë§í¬",readOnly:!0,value:r?"주ì ìì± ì¤...":t,onFocus:e=>e.currentTarget.select()}),(0,i.jsx)("button",{type:"button",onClick:d,disabled:!t||r,"aria-label":a?"ë§í¬ ë³µì¬ë¨":"ë§í¬ ë³µì¬",title:a?"ë³µì¬ë¨":"ë§í¬ ë³µì¬",children:a?(0,i.jsx)(c.Z,{size:18,"aria-hidden":"true"}):(0,i.jsx)(o.Z,{size:18,"aria-hidden":"true"})})]})}},99589:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return A}});var i=r(57437),n=r(10136),a=r(2265),s=r(67404),l=r(99397),c=r(88893),o=r(48736),d=r(40875),u=r(18930),x=r(32489),m=r(92735),f=r(17625),b=r(35398),h=r(97831),v=r(93448),p=r(25450),g=r(4908),y=r(67920),w=r(54696),k=r(16348),z=r(39136),j=r(83008),N=r(9235),C=r(98319),E=r(43059),R=r(35596),D=r(62102),S=r(51817);function A(){let{students:e}=(0,g.AF)(),{data:t=[],isLoading:r}=(0,k.We)(),{upsertActivity:A,deleteActivity:_,generateDraft:F}=(0,k.s9)(),{showToast:L}=(0,C.p)(),I=(0,y.XC)(),Q=(0,n.N)(),T=(0,w.Dv)()?e:e.filter(e=>"ë´ì íê¸"===e.homeClassId),[Z,q]=(0,a.useState)("all"),[M,U]=(0,a.useState)(!1),[X,P]=(0,a.useState)(null),[B,H]=(0,a.useState)(!1),[K,W]=(0,a.useState)(""),[O,J]=(0,a.useState)(!1),[V,$]=(0,a.useState)({}),G=e=>{$(t=>({...t,[e]:!t[e]}))},{getItem:Y,setItem:ee}=(0,z.M)({storageKeyPrefix:"activity-drafts",debounceMs:1e3,onSave:async(e,t)=>{let[r,i]=e.split(":");return(await (0,j.X)("upsertActivityDraft",{studentId:r,category:i,draft:t},I)).success}});(0,a.useEffect)(()=>{var e;B&&(null==I?void 0:null===(e=I.user)||void 0===e?void 0:e.id)?(async()=>{J(!0);let e="".concat(window.location.origin,"/survey?class=").concat(encodeURIComponent("ë´ì íê¸"),"&u=").concat(encodeURIComponent(I.user.id));try{let t=await (0,D.C)(e);W(t)}catch(t){W(e)}finally{J(!1)}})():W("")},[B,I]);let et=e=>t.filter(t=>t.studentId===e).filter(e=>"all"===Z||e.category===Z),er=e=>{P({id:"temp-".concat(Date.now()),studentId:e,category:"autonomous",activityName:"",details:"",createdAt:new Date().toISOString()}),U(!0)},ei=e=>{P(e),U(!0)},en=e=>{(async()=>{await Q({title:"ì´ ê¸°ë¡ì ìì í ê¹ì?",description:"ìì í íë 기ë¡ì ëë릴 ì ììµëë¤."})&&(_.mutate(e),U(!1))})()};return(0,i.jsxs)("div",{className:"flex flex-col h-full bg-[#FBFBF9] dark:bg-[#111]",children:[(0,i.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 mobile-scroll-bottom relative",children:[(0,i.jsxs)("div",{className:"sticky top-0 z-30 flex items-center justify-between py-2 transition pointer-events-none",children:[(0,i.jsx)("div",{className:"flex items-center gap-1.5 overflow-x-auto no-scrollbar py-1 pointer-events-auto",children:["all","autonomous","career"].map(e=>(0,i.jsx)("button",{onClick:()=>q(e),className:(0,p.Fk)(Z===e,"whitespace-nowrap"),children:"all"===e?"ì ì²´":"autonomous"===e?"ìì¨":"ì§ë¡"},e))}),(0,i.jsxs)("button",{onClick:()=>H(!0),className:"pointer-events-auto flex items-center gap-1.5 px-4 py-1.5 bg-white dark:bg-zinc-900 border border-zinc-200/60 dark:border-zinc-800 text-zinc-700 dark:text-zinc-300 rounded-2xl transition shadow-sm active:scale-[0.95]",children:[(0,i.jsx)(s.Z,{size:14,className:"text-blue-600 dar
1k:text-blue-400"}),(0,i.jsx)("span",{className:"text-[13px] font-semibold",children:"QRì½ë"})]})]}),(0,i.jsx)("div",{className:"space-y-3",children:0===T.length?(0,i.jsx)("div",{className:"flex flex-col items-center justify-center py-20 text-zinc-400 dark:text-zinc-500 text-sm",children:(0,i.jsx)("p",{children:"ê²ì ê²°ê³¼ê° ììµëë¤."})}):T.map(e=>{let t=et(e.id);return(0,i.jsxs)(E.ZP,{className:"space-y-3",children:[(0,i.jsxs)(E.Lz,{children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-xs font-bold text-zinc-400 dark:text-zinc-500",children:e.number}),(0,i.jsx)("span",{className:"text-sm font-bold text-zinc-900 dark:text-zinc-100",children:e.name})]}),(0,i.jsx)("button",{"aria-label":"ì¶ê°",onClick:()=>er(e.id),className:"p-1 text-zinc-400 dark:text-zinc-500 active:scale-90 transition",children:(0,i.jsx)(l.Z,{size:18})})]}),(0,i.jsx)("div",{className:"space-y-2",children:0===t.length?(0,i.jsx)("p",{className:"text-[12px] text-zinc-400 dark:text-zinc-500 py-1",children:"ì¶ê°ë íë 기ë¡ì´ ììµëë¤."}):t.map(e=>(0,i.jsxs)("div",{onClick:()=>ei(e),className:"flex items-center gap-2 p-2 rounded-lg border border-zinc-200 dark:border-white/10 bg-zinc-50 dark:bg-white/[0.02] transition-colors active:scale-[0.98]",children:[(0,i.jsx)("span",{className:(0,v.cn)("px-1.5 py-0.5 text-[10px] font-bold rounded uppercase","autonomous"===e.category?"bg-violet-500/15 text-violet-700 dark:bg-violet-500/20 dark:text-violet-300":"bg-teal-500/15 text-teal-700 dark:bg-teal-500/20 dark:text-teal-300"),children:"autonomous"===e.category?"ìì¨":"ì§ë¡"}),(0,i.jsx)("span",{className:"flex-1 text-[13px] text-zinc-800 dark:text-zinc-200 truncate",children:e.activityName}),(0,i.jsx)(c.Z,{size:12,className:"text-zinc-400 dark:text-zinc-500"})]},e.id))}),(0,i.jsxs)("div",{className:"pt-2 border-t border-zinc-100 dark:border-white/5",children:[(0,i.jsxs)("button",{onClick:()=>G(e.id),className:"flex items-center justify-between w-full py-1.5 text-xs text-zinc-500 dark:text-zinc-400 active:text-zinc-800 dark:active:text-zinc-200 transition",children:[(0,i.jsxs)("span",{className:"flex items-center gap-1.5 font-medium",children:[(0,i.jsx)(o.Z,{size:13,className:"text-blue-500"}),"ìê¸°ë¶ ì´ì íì¸\xb7ìì "]}),(0,i.jsx)(d.Z,{size:14,className:(0,v.cn)("transition-transform duration-200",V[e.id]&&"rotate-180")})]}),V[e.id]&&(0,i.jsxs)("div",{className:"mt-2 space-y-3 pt-2 border-t border-dashed border-zinc-200 dark:border-white/10",children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,i.jsx)("span",{className:"text-[11px] font-bold text-violet-600 dark:text-violet-400",children:"ìì¨íë ì´ì"}),(0,i.jsxs)("span",{className:(0,v.cn)("text-[10px] font-mono",(0,N.C)(Y("".concat(e.id,":autonomous"),""))>1500?"text-red-500 font-bold":"text-zinc-400"),children:[(0,N.C)(Y("".concat(e.id,":autonomous"),""))," / 1,500B"]})]}),(0,i.jsx)("textarea",{rows:3,value:Y("".concat(e.id,":autonomous"),""),onChange:t=>ee("".concat(e.id,":autonomous"),t.target.value),placeholder:"ìì¨íë ì´ìì ì
ë ¥íì¸ì...",className:"w-full bg-zinc-50 dark:bg-zinc-900/60 border border-zinc-200 dark:border-white/10 rounded-lg p-2 text-xs text-zinc-800 dark:text-zinc-100 resize-none focus:outline-none focus:ring-2 focus:ring-violet-500"})]}),(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,i.jsx)("span",{className:"text-[11px] font-bold text-teal-600 dark:text-teal-400",children:"ì§ë¡íë ì´ì"}),(0,i.jsxs)("span",{className:(0,v.cn)("text-[10px] font-mono",(0,N.C)(Y("".concat(e.id,":career"),""))>2100?"text-red-500 font-bold":"text-zinc-400"),children:[(0,N.C)(Y("".concat(e.id,":career"),""))," / 2,100B"]})]}),(0,i.jsx)("textarea",{rows:3,value:Y("".concat(e.id,":career"),""),onChange:t=>ee("".concat(e.id,":career"),t.target.value),placeholder:"ì§ë¡íë ì´ìì ì
ë ¥íì¸ì...",className:"w-full bg-zinc-50 dark:bg-zinc-900/60 border border-zinc-200 dark:border-white/10 rounded-lg p-2 text-xs text-zinc-800 dark:text-zinc-100 resize-none focus:outline-none focus:ring-2 focus:ring-teal-500"})]})]})]})]},e.id)})})]}),(0,i.jsx)(R.Z,{isOpen:M,onClose:()=>U(!1),title:(null==X?void 0:X.id.startsWith("temp-"))?"íë ê¸°ë¡ ì¶ê°":"íë ê¸°ë¡ ìì ",children:X&&(0,i.jsxs)("div",{className:"space-y-5 pb-6",children:[(0,i.jsx)("div",{className:"grid grid-cols-2 gap-2",children:["autonomous","career"].map(e=>(0,i.jsx)("button",{onClick:()=>P({...X,category:e}),className:(0,v.cn)("py-2.5 rounded-xl text-sm font-bold transition border",X.category===e?"bg-zinc-800 text-white dark:bg-zinc-100 dark:text-zinc-900 border-transparent":"bg-white text-zinc-500 border-zinc-200 dark:bg-zinc-800 dark:border-zinc-700 dark:text-zinc-400"),children:"autonomous"===e?"ìì¨":"ì§ë¡"},e))}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("label",{className:"text-xs font-bold text-zinc-500 dark:text-zinc-400 uppercase ml-1",children:"íë ì 목"}),(0,i.jsx)("input",{type:"text",value:X.activityName,onChange:e=>P({...X,activityName:e.target.value}),placeholder:"íëëª
ì ì
ë ¥íì¸ì",className:"w-full px-4 py-3 bg-zinc-50 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-xl text-[16px] text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 dark:placeholder:text-zinc-500 focus:outline-none focus:border-blue-500"})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("label",{className:"text-xs font-bold text-zinc-500 dark:text-zinc-400 uppercase ml-1",children:"ìì¸ ë´ì©"}),(0,i.jsx)("textarea",{value:X.details,onChange:e=>P({...X,details:e.target.value}),placeholder:"ìì¸ ë´ì©ì ì
ë ¥íì¸ì",rows:6,className:"w-full px-4 py-3 bg-zinc-50 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-xl text-[16px] text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 dark:placeholder:text-zinc-500 focus:outline-none focus:border-blue-500 resize-none"})]}),(0,i.jsxs)("div",{className:"flex gap-2",children:[!X.id.startsWith("temp-")&&(0,i.jsx)("button",{"aria-label":"ìì ",onClick:()=>en(X.id),className:"px-4 py-3 bg-red-50 dark:bg-red-950/30 text-red-600 dark:text-red-400 rounded-xl active:bg-red-100 dark:active:bg-red-950/50 transition shadow-sm",children:(0,i.jsx)(u.Z,{size:20})}),(0,i.jsx)("button",{onClick:()=>
1{if(!X||!X.activityName.trim())return;let t=e.find(e=>e.id===X.studentId),r=t?{name:t.name,number:t.number,grade:t.grade||1,classNum:t.classNum||0}:void 0;A.mutate({...X,studentDetails:r},{onSuccess:()=>{L("기ë¡ì´ ì ì¥ëììµëë¤.","success"),U(!1)}})},disabled:!X.activityName.trim(),className:"flex-1 py-3 bg-blue-600 text-white font-bold rounded-xl active:bg-blue-700 disabled:opacity-50",children:"ì ì¥í기"})]})]})}),B&&(0,i.jsx)("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-[110] p-4",onClick:()=>H(!1),children:(0,i.jsxs)("div",{className:"bg-white dark:bg-[#1A1A1A] rounded-2xl p-6 max-w-sm w-full shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,i.jsx)("h3",{className:"text-lg font-bold text-zinc-900 dark:text-white",children:"íì ì ì¶ QR ì½ë"}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(h.a,{value:K,disabled:O}),(0,i.jsx)("button",{"aria-label":"ë«ê¸°",onClick:()=>H(!1),className:"p-1 text-zinc-400 hover:text-zinc-900 dark:hover:text-white transition-colors",children:(0,i.jsx)(x.Z,{size:20})})]})]}),(0,i.jsx)("div",{id:"activity-qr-code",className:"bg-white rounded-xl p-6 flex items-center justify-center mb-4 border border-zinc-100 dark:border-white/5 min-h-[248px]",children:O?(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center text-zinc-400 gap-2",children:[(0,i.jsx)(S.Z,{className:"animate-spin text-zinc-300",size:24}),(0,i.jsx)("span",{className:"text-sm",children:"ë§í¬ ìì± ì¤..."})]}):K?(0,i.jsx)(b.t,{value:K,size:200,level:"H"}):null}),(0,i.jsx)(h.A,{value:K,pending:O}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsxs)("button",{onClick:async()=>{let e=document.querySelector("#activity-qr-code svg");if(e){let t=new XMLSerializer().serializeToString(e),r=document.createElement("canvas"),i=r.getContext("2d"),n=new Image;n.onload=async()=>{r.width=n.width,r.height=n.height,null==i||i.drawImage(n,0,0);try{var e,t;let i=await new Promise(e=>r.toBlob(e,"image/png"));if(i&&(null===(e=(t=navigator).canShare)||void 0===e?void 0:e.call(t,{files:[new File([i],"qr-code.png",{type:"image/png"})]}))){let e=new File([i],"activity-qr-code.png",{type:"image/png"});await navigator.share({files:[e]})}else{let e=document.createElement("a");e.download="activity-qr-code.png",e.href=r.toDataURL("image/png"),e.click()}}catch(e){if("AbortError"!==e.name){let e=document.createElement("a");e.download="activity-qr-code.png",e.href=r.toDataURL("image/png"),e.click()}}},n.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t)))}},className:"flex-1 flex items-center justify-center gap-2 py-2.5 bg-zinc-100 dark:bg-white/10 hover:bg-zinc-200 dark:hover:bg-white/20 text-zinc-900 dark:text-white rounded-lg transition-colors text-sm font-semibold",children:[(0,i.jsx)(m.Z,{size:16}),"ë¤ì´ë¡ë"]}),(0,i.jsxs)("button",{onClick:()=>{let e=window.open("","_blank");if(e){let t=document.querySelector("#activity-qr-code svg");e.document.write('\n <html>\n <head><title>QR ì½ë ì¸ì</title></head>\n <body style="display:flex;justify-content:center;align-items:center;height:100vh;margin:0;">\n '.concat((null==t?void 0:t.outerHTML)||"","\n </body>\n </html>\n ")),e.document.close(),e.print()}},className:"flex-1 flex items-center justify-center gap-2 py-2.5 bg-zinc-100 dark:bg-white/10 hover:bg-zinc-200 dark:hover:bg-white/20 text-zinc-900 dark:text-white rounded-lg transition-colors text-sm font-semibold",children:[(0,i.jsx)(f.Z,{size:16}),"ì¸ì"]})]})]})})]})}},35596:function(e,t,r){"use strict";r.d(t,{Z:function(){return m}});var i=r(57437),n=r(2265),a=r(59717),s=r(81906),l=r(33728),c=r(57586),o=r(13100),d=r(93448),u=r(21652);let x=0;
1function m(e){let{isOpen:t,onClose:r,title:m,children:f,footer:b,className:h}=e,v=(0,a.o)(),p=(0,s.c)(0);(0,n.useEffect)(()=>{t&&p.set(0)},[t,p]);let g=(0,l.H)(p,[0,240],[1,0]),y=(0,n.useRef)(r),w=(0,n.useRef)(!1);(0,n.useEffect)(()=>{y.current=r},[r]),(0,n.useEffect)(()=>{if(!t)return;x++,document.body.style.overflow="hidden";let e=(0,u.UM)(),r=window.history.state||{};!e||w.current||r.isBottomSheet||(window.history.pushState({...r,isBottomSheet:!0},""),w.current=!0);let i=()=>{w.current&&(w.current=!1,y.current())};return window.addEventListener("popstate",i),()=>{window.removeEventListener("popstate",i),--x<=0&&(x=0,document.body.style.overflow="")}},[t]);let k=(0,n.useCallback)(()=>{w.current&&(w.current=!1,window.history.back()),r()},[r]),z=(0,n.useCallback)((e,t)=>{(t.velocity.y>500||t.offset.y>100)&&k()},[k]),j=(0,n.useRef)(null),N=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!t)return;let e=j.current;if(!e)return;let r=[],i=function(t){let r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(!e||!e.contains(t))return;let i=e.getBoundingClientRect(),n=t.getBoundingClientRect(),a=n.top-i.top,s=Math.min(24,Math.max(12,(e.clientHeight-n.height)/2)),l=e.scrollTop+a-s;e.scrollTo({top:Math.max(0,l),behavior:r?"smooth":"auto"})},n=e=>{let t=e.target;t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName||t.isContentEditable)&&(N.current=t,i(t,!1),r.push(setTimeout(()=>i(t,!0),120)),r.push(setTimeout(()=>i(t,!0),300)),r.push(setTimeout(()=>i(t,!0),500)))},a=()=>{N.current=null},s=()=>{N.current&&i(N.current,!0)};e.addEventListener("focusin",n),e.addEventListener("focusout",a);let l=window.visualViewport;return null==l||l.addEventListener("resize",s),()=>{r.forEach(clearTimeout),e.removeEventListener("focusin",n),e.removeEventListener("focusout",a),null==l||l.removeEventListener("resize",s)}},[t]),(0,i.jsx)(c.M,{children:t&&(0,i.jsxs)("div",{className:"md:hidden fixed inset-x-0 z-[100] flex items-end",role:"dialog","aria-modal":"true","aria-label":m,style:{top:"var(--vv-offset-top, 0px)",height:"var(--app-height)"},children:[(0,i.jsx)(o.E.div,{initial:{opacity:0}
1,animate:{opacity:1},exit:{opacity:0},transition:{duration:.22,ease:[.22,1,.36,1]},className:"absolute inset-0",children:(0,i.jsx)(o.E.div,{style:{opacity:g},onClick:k,className:"absolute inset-0 bg-black/50 backdrop-blur-sm"})}),(0,i.jsxs)(o.E.div,{style:{y:p,maxHeight:"90%"},initial:{y:"100%"},animate:{y:0},exit:{y:"100%"},transition:{type:"spring",damping:30,stiffness:320,mass:.8},drag:"y",dragListener:!1,dragControls:v,dragConstraints:{top:0},dragElastic:{top:.12,bottom:.75},onDragEnd:z,role:"dialog","aria-modal":"true",className:(0,d.cn)("relative w-full bg-white dark:bg-[#18181b] border-t border-transparent dark:border-white/[0.08] rounded-t-2xl","flex flex-col overflow-hidden mobile-sheet-pad shadow-2xl",h),children:[(0,i.jsx)("div",{onPointerDown:e=>v.start(e),className:"flex justify-center pt-3 pb-2 shrink-0 cursor-grab active:cursor-grabbing touch-none select-none",children:(0,i.jsx)("div",{className:"w-9 h-1 rounded-full bg-zinc-300 dark:bg-zinc-700"})}),m&&(0,i.jsx)("div",{className:"px-4 pb-3 border-b border-zinc-200/40 dark:border-zinc-800/60 shrink-0",children:(0,i.jsx)("h3",{className:"text-[var(--mobile-font-h2)] font-semibold text-zinc-900 dark:text-zinc-100",children:m})}),(0,i.jsx)("div",{ref:j,className:"flex-1 overflow-y-auto overflow-x-hidden px-4 pt-3 pb-2 mobile-scroll mobile-sheet-scroll",children:f}),b&&(0,i.jsx)("div",{className:"shrink-0 px-4 pt-2.5 pb-1 border-t border-zinc-100 dark:border-zinc-800/80 bg-white/95 dark:bg-[#18181b]/95 backdrop-blur-md",children:b})]})]})})}},43059:function(e,t,r){"use strict";r.d(t,{Lz:function(){return d},ZP:function(){return o}});var i=r(57437),n=r(93448);r(2265);var a=r(52345),s=r(13100),l=r(92846);let c={type:"spring",stiffness:450,damping:30,mass:.5};function o(e){let{children:t,className:r,onClick:o,hapticFeedback:d=!0}=e,u=(0,a.J)(),x=()=>{o&&(d&&l.MU.tap(),o())},m=(0,n.cn)("relative overflow-hidden","bg-white dark:bg-[#1C1C1E]","border border-zinc-200/70 dark:border-white/[0.08] shadow-[0_1px_3px_rgba(0,0,0,0.03)] dark:shadow-none","rounded-[var(--mobile-radius-card)]","p-4 transition-[background-color,border-color] duration-200",o&&"cursor-pointer touch-pan-y select-none",r);return o?(0,i.jsx)(s.E.div,{role:"button",tabIndex:0,whileTap:u?void 0:{scale:.975},transition:c,onClick:x,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),x())},className:m,style:{borderRadius:"var(--mobile-radius-card)"},children:t}):(0,i.jsx)("div",{className:m,style:{borderRadius:"var(--mobile-radius-card)"},children:t})}function d(e){let{children:t,className:r}=e;return(0,i.jsx)("div",{className:(0,n.cn)("flex items-center justify-between mb-2 text-zinc-900 dark:text-zinc-100",r),children:t})}},16348:function(e,t,r){"use strict";r.d(t,{We:function(){return f},ZJ:function(){return m},s9:function(){return b}});var i=r(11713),n=r(29827),a=r(21770),s=r(83008),l=r(67920),c=r(27526),o=r(2265),d=r(54392),u=r(98319),x=r(54696);let m={all:["activities"],lists:()=>[...m.all,"list"],list:e=>[...m.lists(),e]};function f(e){var t,r,n,a;let{data:u,status:f}=(0,c.kP)(),b=(0,l.XC)(),h=(0,x.Dv)(),v=(0,o.useRef)(null==u?void 0:null===(t=u.user)||void 0===t?void 0:t.id);return(null==u?void 0:null===(r=u.user)||void 0===r?void 0:r.id)&&
1(v.current=u.user.id),(0,i.a)({queryKey:[...m.lists(),{userId:h?"guest":null!==(a=null==u?void 0:null===(n=u.user)||void 0===n?void 0:n.id)&&void 0!==a?a:v.current,...e}],enabled:"loading"!==f,queryFn:async()=>{if(h)return(await d.iT()).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let t=await (0,s.X)("getActivityRecords",e||{},b);if(t.success&&t.data)return t.data;throw Error(t.error||"Failed to load activities")}})}function b(){let e=(0,n.NL)(),t=(0,l.XC)(),{showToast:r}=(0,u.p)(),i=(0,x.Dv)();return{upsertActivity:(0,a.D)({mutationFn:async e=>{var r;if(!(null===(r=e.activityName)||void 0===r?void 0:r.trim()))return null;if(i){let t={...e,id:e.id&&e.id.startsWith("temp-")?crypto.randomUUID():e.id||crypto.randomUUID(),createdAt:e.createdAt||new Date().toISOString(),details:e.details||""};return await d.LI(t),t}let n=await (0,s.X)("upsertActivityRecord",{id:e.id&&e.id.startsWith("temp-")?void 0:e.id,studentId:e.studentId,category:e.category,activityName:e.activityName,details:e.details,studentDetails:e.studentDetails},t);if(!n.success)throw Error(n.error||"Failed to save activity");return n.data},onMutate:async t=>{await e.cancelQueries({queryKey:m.lists()});let r=e.getQueryData(m.lists());return e.setQueryData(m.lists(),e=>{let r={...t,id:t.id||"temp-".concat(Date.now()),createdAt:t.createdAt||new Date().toISOString(),details:t.details||""};return e?e.find(e=>e.id===t.id)?e.map(e=>e.id===t.id?{...e,...r}:e):[...e,r]:[r]}),{previousActivities:r}},onError:(t,i,n)=>{(null==n?void 0:n.previousActivities)&&e.setQueryData(m.lists(),n.previousActivities),r((null==t?void 0:t.message)||"íë 기ë¡ì ì ì¥íì§ ëª»íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.","error")},onSettled:()=>{e.invalidateQueries({queryKey:m.lists()})}}),deleteActivity:(0,a.D)({mutationFn:async e=>{if(i)return await d.Qn(e),{success:!0,id:e};let r=await (0,s.X)("deleteActivityRecord",{id:e},t);if(!r.success)throw Error(r.error||"Failed to delete activity");return r.data},onMutate:async t=>{await e.cancelQueries({queryKey:m.lists()});let r=e.getQueryData(m.lists());return e.setQueryData(m.lists(),e=>e?e.filter(e=>e.id!==t):[]),{previousActivities:r}},onError:(t,i,n)=>{(null==n?void 0:n.previousActivities)&&e.setQueryData(m.lists(),n.previousActivities),r((null==t?void 0:t.message)||"íë 기ë¡ì ìì íì§ ëª»íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.","error")},onSettled:()=>{e.invalidateQueries({queryKey:m.lists()})}}),generateDraft:(0,a.D)({mutationFn:async e=>{if(i)throw Error("ê²ì¤í¸ 모ëììë AI ìì±ì ì¬ì©í ì ììµëë¤.");let r=await (0,s.X)("generateActivityDraft",{studentId:e.studentId,studentName:e.studentName,category:e.category,activityName:e.activityName,details:e.details},t);if(!r.success){if(r.needCredit)throw Error("í¬ë ë§ì´ ë¶ì¡±í©ëë¤.");throw Error(r.error||"ìì±ì ì¤í¨íìµëë¤.")}return{...r.data,vars:e}}})}}},9235:function(e,t,r){"use strict";function i(e){if(!e)return 0;let t=e.replace(/\r?\n/g,"\r\n"),r=0;for(let e=0;e<t.length;e++)r+=t.charCodeAt(e)>255?2:1;let i=t.length;return(r-i)*2+i}r.d(t,{C:function(){return i}})},25450:function(e,t,r){"use strict";r.d(t,{Fk:function(){return n}});var i=r(93448);function n(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return(0,i.cn)("inline-flex items-center justify-center h-8 px-3 rounded-full text-[13px] transition active:scale-[0.96]",e?"bg-white dark:bg-[#1C1C1E] text-zinc-900 dark:text-zinc-100 font-semibold border border-zinc-200/90 dark:border-white/[0.12] shadow-[0_1px_2px_rgba(0,0,0,0.04)]":"bg-zinc-100/80 dark:bg-zinc-800/60 text-zinc-500 dark:text-zinc-400 font-medium border border-transparent",...r)}},12355:function(e){e.exports={expand:"QRShareControls_expand__lXb9E",collapse:"QRShareControls_collapse__MxHhH",link:"QRShareControls_link__jLWpe",fullscreen:"QRShareControls_fullscreen___R7RR",code:"QRShareControls_code__5kzLF"}}}]);
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.