1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9284],{92735:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},53113:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]])},45884:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("Maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]])},34415:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("Minimize",[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]])},21047:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]])},76980:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("Paperclip",[["path",{d:"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48",key:"1u3ebp"}]])},67404:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("QrCode",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]])},82029:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(79205).Z)("Table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]])},62102:function(e,t,r){"use strict";r.d(t,{C:function(){return n}}),r(83079);var n=(0,r(12119).$)("3d365eac91b4fdf5c66207add9995915cec21f92")},97831:function(e,t,r){"use strict";r.d(t,{A:function(){return v},a:function(){return b}});var n=r(57437),a=r(2265),i=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),h=r.n(m);function f(){return document.fullscreenElement||document.webkitFullscreenElement}async function p(e){if(e&&f()===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 b(e){let{value:t,disabled:r=!1}=e,[c,o]=(0,a.useState)(!1),x=(0,a.useRef)(null),m=(0,a.useRef)(null),b=(0,a.useRef)(null),v=()=>{p(x.current),o(!1)};(0,u.j)(v,c),(0,a.useEffect)(()=>{var e;if(!c)return;let t=x.current,r=document.body.style.overflow;document.body.style.overflow="hidden",null===(e=b.current)||void 0===e||e.focus();let n=!1,a=()=>{f()===t?n=!0:n&&o(!1)};document.addEventListener("fullscreenchange",a),document.addEventListener("webkitfullscreenchange",a);let i=m.current;return()=>{document.body.style.overflow=r,document.removeEventListener("fullscreenchange",a),document.removeEventListener("webkitfullscreenchange",a),p(t),null==i||i.focus()}},[c]);let g=async()=>{(0,i.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,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{ref:m,type:"button",className:h().expand,onClick:g,disabled:r||!t,"aria-label":"QR ì½ë ì ì²´íë©´",title:"QR ì½ë ì ì²´íë©´",children:(0,n.jsx)(s.Z,{size:20,"aria-hidden":"true"})}),c&&(0,i.createPortal)((0,n.jsxs)("div",{ref:x,className:h().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=b.current)||void 0===t||t.focus()}},children:[(0,n.jsx)("button",{ref:b,type:"button",className:h().collapse,onClick:v,"aria-label":"ì ì²´íë©´ ë«ê¸°",title:"ì ì²´íë©´ ë«ê¸° (Esc)",children:(0,n.jsx)(l.Z,{size:24,"aria-hidden":"true"})}),(0,n.jsx)(d.t,{value:t,size:1024,level:"H",includeMargin:!0,className:h().code})]}),document.body)]})}function v(e){let{value:t,pending:r=!1}=e,[i,s]=(0,a.useState)(!1),{showToast:l}=(0,x.p)();(0,a.useEffect)(()=>
1{if(!i)return;let e=window.setTimeout(()=>s(!1),2e3);return()=>window.clearTimeout(e)},[i]);let d=async()=>{try{await navigator.clipboard.writeText(t),s(!0),l("ë§í¬ê° ë³µì¬ëììµëë¤.","success")}catch(e){l("ë§í¬ë¥¼ ë³µì¬íì§ ëª»íìµëë¤. 주ì를 ì íí´ ì§ì ë³µì¬í´ 주ì¸ì.","error")}};return(0,n.jsxs)("div",{className:h().link,children:[(0,n.jsx)("input",{"aria-label":"ê³µì ë§í¬",readOnly:!0,value:r?"주ì ìì± ì¤...":t,onFocus:e=>e.currentTarget.select()}),(0,n.jsx)("button",{type:"button",onClick:d,disabled:!t||r,"aria-label":i?"ë§í¬ ë³µì¬ë¨":"ë§í¬ ë³µì¬",title:i?"ë³µì¬ë¨":"ë§í¬ ë³µì¬",children:i?(0,n.jsx)(c.Z,{size:18,"aria-hidden":"true"}):(0,n.jsx)(o.Z,{size:18,"aria-hidden":"true"})})]})}},24754:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=r(57437),a=r(2265),i=r(54887),s=r(32489),l=r(21047),c=r(99397),o=r(93448),d=r(98319),u=r(34137),x=r(43232);let m="live_ck_4yKeq5bgrpWgyX6jdZjZVGX0lzW6";function h(e){let{isOpen:t,onClose:r,currentBalance:h}=e,[f,p]=(0,a.useState)(!1),[b,v]=(0,a.useState)(1),[g,y]=(0,a.useState)(!1),[w,k]=(0,a.useState)(!1),{showToast:j}=(0,d.p)(),N=100*b,z=8900*b;(0,a.useEffect)(()=>(p(!0),()=>p(!1)),[]),(0,a.useEffect)(()=>{if(t){if(window.TossPayments)y(!0);else{let e=document.createElement("script");e.src="https://js.tosspayments.com/v2/standard",e.async=!0,e.onload=()=>y(!0),e.onerror=()=>j("ê²°ì ìì¤í
ì ë¶ë¬ì¤ëë° ì¤í¨íìµëë¤.","error"),document.head.appendChild(e)}}},[t,j]),(0,u.j)(r,t);let C=(0,a.useCallback)(()=>{let e=Date.now(),t=Math.random().toString(36).substring(2,8).toUpperCase();return"CREDIT-".concat(e,"-").concat(t)},[]),E=async()=>{if(!m){j("ê²°ì ìì¤í
ì´ ì¤ì ëì§ ìììµëë¤.","error");return}if(!g||!window.TossPayments){j("ê²°ì ìì¤í
ì ë¶ë¬ì¤ë ì¤ì
ëë¤.","info");return}k(!0);try{let e=window.TossPayments(m).payment({customerKey:"customer-".concat(Date.now())}),t=window.location.origin;await e.requestPayment({method:"CARD",amount:{currency:"KRW",value:z},orderId:C(),orderName:"ë´ëª¨ í¬ë ë§ ".concat(N,"ê°"),successUrl:"".concat(t,"/payment/credit-success?quantity=").concat(b),failUrl:"".concat(t,"/payment/credit-fail")})}catch(e){(null==e?void 0:e.code)!=="USER_CANCEL"&&j((null==e?void 0:e.message)||"ê²°ì ìì² ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}finally{k(!1)}};return t&&f?(0,i.createPortal)((0,n.jsx)("div",{className:"modal-viewport z-[300] flex items-center justify-center bg-black/60 backdrop-blur-sm p-4",onClick:e=>e.target===e.currentTarget&&r(),children:(0,n.jsxs)("div",{className:"relative w-full max-w-[400px] h-[540px] max-h-full bg-white dark:bg-[#0D0D0D] border border-zinc-200 dark:border-white/10 rounded-xl overflow-hidden animate-in fade-in zoom-in-95 duration-150 flex flex-col",children:[(0,n.jsx)("button",{"aria-label":"ë«ê¸°",onClick:r,className:"absolute top-4 right-4 p-1 text-zinc-400 hover:text-zinc-600 dark:hover:text-white transition-colors",children:(0,n.jsx)(s.Z,{size:18})}),(0,n.jsxs)("div",{className:"px-8 pb-4 pt-10 flex-1 flex flex-col overflow-y-auto",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm text-zinc-500 mb-3",children:"ì¶©ì íë í¬ë ë§"}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("div",{className:"flex-1 h-12 bg-white dark:bg-white/5 border border-zinc-200 dark:border-white/10 rounded-lg flex items-center justify-center",children:(0,n.jsx)("span",{className:"text-xl font-semibold text-zinc-900 dark:text-white",children:N.toLocaleString()})}),(0,n.jsx)("button",{"aria-label":"ìë ì¤ì´ê¸°",onClick:()=>v(e=>Math.max(1,e-1)),disabled:b<=1,className:"w-12 h-12 flex items-center justify-center border border-zinc-200 dark:border-white/10 rounded-lg text-zinc-500 hover:text-zinc-700 dark:hover:text-white hover:border-zinc-300 dark:hover:border-white/20 hover:bg-zinc-50 dark:hover:bg-white/5 disabled:opacity-30 disabled:cursor-not-allowed transition",children:(0,n.jsx)(l.Z,{size:18})}),(0,n.jsx)("button",{"aria-label":"ìë ë리기",onClick:()=>v(e=>e+1),className:"w-12 h-12 flex items-center justify-center border border-zinc-200 dark:border-white/10 rounded-lg text-zinc-500 hover:text-zinc-700 dark:hover:text-white hover:border-zinc-300 dark:hover:border-white/20 hover:bg-zinc-50 dark:hover:bg-white/5 transition",children:(0,n.jsx)(c.Z,{size:18})})]}),(0,n.jsxs)("p",{className:"text-sm text-zinc-400 dark:text-zinc-500 mt-3",children:["AI ìí기ë¡ë¶ ìì± ê¸°ë¥ì ",N.toLocaleStr
1ing(),"í ì´ì©í ì ìì´ì"]})]}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsxs)("div",{className:"space-y-3 mb-6",children:[(0,n.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,n.jsx)("span",{className:"text-zinc-500",children:"ë³´ì í¬ë ë§:"}),(0,n.jsx)("span",{className:"text-zinc-700 dark:text-zinc-300 font-medium",children:h.toLocaleString()})]}),(0,n.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,n.jsx)("span",{className:"text-zinc-500",children:"ì¶©ì í¬ë ë§:"}),(0,n.jsxs)("span",{className:"text-zinc-700 dark:text-zinc-300 font-medium",children:["+",N.toLocaleString()]})]}),(0,n.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,n.jsx)("span",{className:"text-zinc-900 dark:text-white font-semibold",children:"ì¶©ì í í¬ë ë§:"}),(0,n.jsx)("span",{className:"text-zinc-900 dark:text-white font-bold",children:(h+N).toLocaleString()})]})]}),(0,n.jsx)("div",{className:"h-px bg-zinc-100 dark:bg-white/10 mb-6"}),(0,n.jsxs)("div",{className:"flex justify-between items-baseline mb-8",children:[(0,n.jsxs)("div",{className:"flex items-baseline gap-4",children:[(0,n.jsxs)("span",{className:"text-sm text-zinc-500",children:["100 í¬ë ë§ \xd7 ",b]}),(0,n.jsx)("span",{className:"text-sm text-zinc-500 font-medium",children:"ì´ ê²°ì ê¸ì¡"})]}),(0,n.jsxs)("span",{className:"text-xl font-bold text-zinc-900 dark:text-white",children:["â©",z.toLocaleString()]})]}),(0,n.jsx)("div",{onClick:w?void 0:E,role:"button",tabIndex:w?-1:0,className:(0,o.cn)("w-full h-12 font-medium text-sm rounded-lg transition flex items-center justify-center gap-2 select-none",w?"bg-zinc-100 dark:bg-white/5 text-zinc-400 cursor-not-allowed":"bg-zinc-900 dark:bg-zinc-100 [color:#fff] dark:[color:#18181b] cursor-pointer"),onMouseEnter:e=>{w||(e.currentTarget.style.backgroundColor="#27272a")},onMouseLeave:e=>{w||(e.currentTarget.style.backgroundColor="")},children:w?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(x.O,{size:16,strokeWidth:3,className:"animate-spin"}),"ì²ë¦¬ ì¤"]}):"ê²°ì "}),(0,n.jsx)("div",{className:"mt-4 text-center",children:(0,n.jsxs)("p",{className:"text-[11px] text-zinc-400 dark:text-zinc-500",children:["ê²°ì ì ",(0,n.jsx)("a",{href:"/terms",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-zinc-600 dark:hover:text-zinc-400",children:"ì´ì©ì½ê´"}),"ì íì¸íìì¼ë©° ì´ì ëìí©ëë¤."]})})]})]})}),document.body):null}},91455:function(e,t,r){"use strict";r.d(t,{s:function(){return s}});var n=r(57437),a=r(2265),i=r(93448);function s(e){let{options:t,value:r,onChange:s,className:l,itemClassName:c,activeItemClassName:o,inactiveItemClassName:d,indicatorClassName:u,variant:x="pill",underlineThickness:m=2,disabled:h=!1,equalWidth:f=!1,"aria-label":p}=e,b=(0,a.useRef)(null),v=(0,a.useRef)({}),[g,y]=(0,a.useState)(null),[w,k]=(0,a.useState)(!1),j=t.map(e=>e.key).join("\0"),N=(0,a.useCallback)(()=>{let e=b.current,t=v.current[r];if(!e||!t||0===t.offsetWidth){y(e=>null===e?e:null);return}let n={left:t.offsetLeft,top:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight};y(e=>e&&e.left===n.left&&e.top===n.top&&e.width===n.width&&e.height===n.height?e:n)},[r]);(0,a.useLayoutEffect)(()=>{N()},[N,j,x]),(0,a.useEffect)(()=>{if(!g||w)return;let e=requestAnimationFrame(()=>k(!0));return()=>cancelAnimationFrame(e)},[g,w]),(0,a.useEffect)(()=>{let e=b.current;if(!e||"undefined"==typeof ResizeObserver)return;let t=new ResizeObserver(()=>N());return t.observe(e),Object.values(v.current).forEach(e=>{e&&t.observe(e)}),()=>t.disconnect()},[N,j]),(0,a.useEffect)(()=>{let e=document.fonts;if(!(null==e?void 0:e.ready))return;let t=!1;return e.ready.then(()=>{t||N()}).catch(()=>{}),()=>{t=!0}},[N]);let z=!!g&&!h;return(0,n.jsxs)("div",{ref:b,role:"group","aria-label":p,className:(0,i.cn)("relative flex items-center",l),children:[(0,n.jsx)("div",{"aria-hidden":!0,className:(0,i.cn)("absolute left-0 top-0 pointer-events-none","pill"===x?"rounded-lg":"rounded-full",w&&"transition-[transform,width,opacity] duration-300 ease-out motion-reduce:transition-none",z?"opacity-100":"opacity-0",u),style:g?{transform:"translate3d(".concat(g.left,"px, ").concat("underline"===x?g.top+g.height-m:g.top,"px, 0)"),width:g.width,height:"underline"===x?m:g.height}:void 0}),t.map(e=>{let t=e.key===r;return(0,n.jsx)("button",{ref:t=>{v.current[e.key]=t},type:"button","aria-pressed":t,title:e.title,"aria-label":e.ariaLabel,disabled:h,onClick:()=>s(e.key),className:(0,i.cn)("relative z-10 flex items-center justify-center transition-colors duration-200 motion-reduce:transition-none",f&&"flex-1",c,t?o:d,e.className),children:e.label},e.key)})]})}},49284:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return V}});var n=r(57437),a=r(2265),i=r(18930),s=r(32489),l=r(51817);let c=(0,r(79205).Z)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);var o=r(82029),d=r(92735),u=r(67404),x=r(41671),m=r(99397),h=r(17625),f=r(53834),p=r(43232),b=r(35398),v=r(97831),g=r(93448),y=r(91455),w=r(4908),k=r(83008),j=r(67920),N=r(62102),z=r(54696),C=r(24754),E=r(98319),D=r(16348),A=r(93202),S=r(48736),M=r(53113),I=r(49322),Z=r(29827);function R(e){return e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB")}
1function L(e){switch(e){case"pending":return"AI ë¶ì ì¤...";case"failed":return"AI ë¶ì ì¤í¨";case"unsupported":return"AI ë¶ì 미ì§ì";default:return""}}function T(e){let{attachments:t,compact:r=!1,onAttachmentDeleted:c}=e,o=(0,Z.NL)(),d=(0,j.XC)(),{showToast:u}=(0,E.p)(),[x,m]=(0,a.useState)(null),[h,f]=(0,a.useState)(null);if(!t||0===t.length)return null;if(r)return(0,n.jsxs)("div",{className:"flex items-center gap-1 text-[10px] text-zinc-400",children:[(0,n.jsx)(S.Z,{size:10}),(0,n.jsxs)("span",{children:["ì²¨ë¶ ",t.length]})]});let p=t.find(e=>e.id===x)||null,b=async()=>{if(p){f(p.id);try{let e=await (0,k.X)("deleteActivityAttachment",{attachmentId:p.id},d);e.success?(u("첨ë¶íì¼ì ìì íìµëë¤.","success"),o.invalidateQueries({queryKey:D.ZJ.lists()}),null==c||c(p.id)):u(e.error||"ìì ì ì¤í¨íìµëë¤.","error")}catch(e){u("ìì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}finally{f(null),m(null)}}};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"space-y-2",children:t.map(e=>{var t;let r=e.fileType.startsWith("image/")?M.Z:S.Z,a=h===e.id;return(0,n.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2.5 bg-zinc-50 dark:bg-[#0D0D0D] border border-zinc-200 dark:border-white/10 rounded-lg group",children:[(0,n.jsxs)("a",{href:(t=e.fileKey,"/api/files/".concat(encodeURIComponent(t))),target:"_blank",rel:"noopener noreferrer",className:"flex-1 min-w-0 flex items-center gap-3 hover:opacity-80 transition-opacity",children:[(0,n.jsx)("div",{className:"w-8 h-8 rounded-md bg-white dark:bg-[#1A1A1A] flex items-center justify-center shrink-0",children:(0,n.jsx)(r,{size:16,className:"text-zinc-500 dark:text-zinc-400"})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"text-sm font-medium text-zinc-900 dark:text-white truncate",children:e.fileName}),(0,n.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,n.jsx)("span",{className:"text-zinc-500 dark:text-zinc-400",children:R(e.size)}),L(e.extractStatus)&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"text-zinc-300 dark:text-zinc-500",children:"\xb7"}),(0,n.jsxs)("span",{className:function(e){switch(e){case"done":return"text-green-500";case"pending":return"text-blue-500";case"failed":return"text-red-400";default:return"text-zinc-400"}}(e.extractStatus),children:["pending"===e.extractStatus&&(0,n.jsx)(l.Z,{size:10,className:"inline-block animate-spin mr-1"}),"failed"===e.extractStatus&&(0,n.jsx)(I.Z,{size:10,className:"inline-block mr-1"}),L(e.extractStatus)]})]})]})]})]}),(0,n.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),m(e.id)},disabled:a,className:"p-1.5 text-zinc-400 hover:text-red-500 hover:bg-red-500/10 rounded transition-colors shrink-0 disabled:opacity-50",title:"첨ë¶íì¼ ìì ","aria-label":"첨ë¶íì¼ ìì ",children:a?(0,n.jsx)(l.Z,{size:14,className:"animate-spin"}):(0,n.jsx)(i.Z,{size:14})})]},e.id)})}),p&&(0,n.jsx)("div",{className:"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-[60] p-4",onClick:()=>h?null:m(null),children:(0,n.jsxs)("div",{className:"bg-white dark:bg-[#1A1A1A] rounded-2xl w-full max-w-sm shadow-2xl p-6",onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"flex items-start justify-between mb-4",children:[(0,n.jsx)("h3",{className:"text-base font-bold text-zinc-900 dark:text-white",children:"첨ë¶íì¼ ìì "}),(0,n.jsx)("button",{"aria-label":"ë«ê¸°",onClick:()=>m(null),disabled:!!h,className:"p-1 text-zinc-400 hover:text-zinc-900 dark:hover:text-white transition-colors disabled:opacity-50",children:(0,n.jsx)(s.Z,{size:18})})]}),(0,n.jsx)("p",{className:"text-sm text-zinc-600 dark:text-zinc-300 mb-2",children:"ìë íì¼ì ì구ì ì¼ë¡ ìì íìê² ìµëê¹?"}),(0,n.jsxs)("div",{className:"px-3 py-2 bg-zinc-50 dark:bg-[#0D0D0D] border border-zinc-200 dark:border-white/10 rounded-lg mb-5",children:[(0,n.jsx)("div",{className:"text-sm font-medium text-zinc-900 dark:text-white truncate",children:p.fileName}),(0,n.jsx)("div",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:R(p.size)})]}),(0,n.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 mb-5 leading-relaxed",children:"íì¼ì R2 ì¤í 리ì§ìì ì¦ì ìì ëë©°, ì ì¥ ì©ëììë ì°¨ê°ë©ëë¤. 복구í ì ììµëë¤."}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,n.jsx)("button",{onClick:()=>m(null),disabled:!!h,className:"px-4 py-2 text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-white/10 rounded-lg transition-colors text-sm font-medium disabled:opacity-50",children:"ì·¨ì"}),(0,n.jsx)("button",{onClick:b,disabled:!!h,className:"px-4 py-2 bg-red-600 hover:bg-red-700 text-white rounded-lg transition-colors text-sm font-medium disabled:opacity-50 flex items-center gap-1.5",children:h?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.Z,{size:14,className:"animate-spin"}
1),(0,n.jsx)("span",{children:"ìì ì¤..."})]}):(0,n.jsx)("span",{children:"ìì "})})]})]})})]})}var F=r(76980),K=r(39136),_=r(82374),Q=r(39561),q=r(9244),P=r(7153),H=r(64954),U=r(70809),X=r(69813);function W(e){let{activity:t,onUpdate:r,onDelete:a,onClick:s,autoFocus:l=!1}=e;return(0,n.jsxs)("div",{className:"group flex items-center gap-1.5 py-1.5 px-2 rounded-lg border border-zinc-200 dark:border-white/10 bg-white dark:bg-white/[0.02] hover:bg-zinc-100 dark:hover:bg-white/[0.05] transition-colors activity-block-wrapper",children:[(0,n.jsx)("button",{onClick:e=>{e.stopPropagation();let n="autonomous"===t.category?"career":"autonomous";r({...t,category:n})},className:(0,g.cn)("px-1.5 py-0.5 text-[10px] font-bold rounded shrink-0 transition-colors","autonomous"===t.category?"bg-violet-500/15 text-violet-700 dark:bg-violet-500/20 dark:text-violet-300 hover:bg-violet-500/25":"bg-teal-500/15 text-teal-700 dark:bg-teal-500/20 dark:text-teal-300 hover:bg-teal-500/25"),children:"autonomous"===t.category?"ìì¨":"ì§ë¡"}),(0,n.jsx)("div",{onClick:s,className:(0,g.cn)("flex-1 text-xs min-w-0 px-1 truncate cursor-pointer text-zinc-700 dark:text-zinc-200",!t.activityName&&"text-opacity-50 italic"),children:t.activityName||"íëëª
ì ì
ë ¥íì¸ì..."}),t.attachments&&t.attachments.length>0&&(0,n.jsxs)("button",{onClick:s,className:"flex items-center gap-0.5 px-1 py-0.5 rounded text-[10px] font-bold text-zinc-500 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-white/10 transition-colors shrink-0",title:"첨ë¶íì¼ ".concat(t.attachments.length,"ê°"),children:[(0,n.jsx)(F.Z,{size:10}),(0,n.jsx)("span",{children:t.attachments.length})]}),(0,n.jsx)("button",{"aria-label":"ìì ",onClick:()=>a(t.id),className:"opacity-0 group-hover:opacity-100 p-0.5 text-zinc-400 hover:text-red-500 transition-colors shrink-0",children:(0,n.jsx)(i.Z,{size:12})})]})}let B="px-3.5 py-2 rounded-lg text-sm font-medium text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors";function O(e){let{activity:t,studentLabel:r,onSave:c,onDelete:o,onClose:d}=e,[u,x]=(0,a.useState)(t.activityName),[m,h]=(0,a.useState)(t.details||""),[f,p]=(0,a.useState)(t.category),[b,v]=(0,a.useState)("none"),[w,k]=(0,a.useState)(!1),[j,N]=(0,a.useState)(!1),z=(0,a.useRef)(null),C=(0,a.useRef)(null),E=(0,a.useId)(),D=t.id.startsWith("temp-"),A=w||j,S=u!==t.activityName||m!==(t.details||"")||f!==t.category,M=D?null:function(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toLocaleDateString("ko-KR",{year:"numeric",month:"long",day:"numeric",timeZone:"Asia/Seoul"})}(t.createdAt),I=[r,M&&"".concat(M," ë±ë¡")].filter(Boolean).join(" \xb7 "),Z=(0,a.useCallback)(()=>{if(!A){if(S){v("discard");return}d()}},[A,S,d]);(0,a.useEffect)(()=>{let e=document.activeElement,t=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{var r;document.body.style.overflow=t,null==e||null===(r=e.focus)||void 0===r||r.call(e)}},[]),(0,a.useEffect)(()=>{var e;D||null===(e=z.current)||void 0===e||e.focus()},[D]),(0,a.useEffect)(()=>{let e=C.current;e&&(e.style.height="auto",e.style.height="".concat(e.scrollHeight,"px"))},[m]),(0,a.useEffect)(()=>{let e=e=>{if("Escape"===e.key){e.stopPropagation(),"none"!==b?v("none"):Z();return}if("Tab"!==e.key||!z.current)return;let t=Array.from(z.current.querySelectorAll("button:not([disabled]), input, textarea, a[href]"));if(0===t.length)return;let r=t[0],n=t[t.length-1];e.shiftKey&&document.activeElement===r?(e.preventDefault(),n.focus()):e.shiftKey||document.activeElement!==n||(e.preventDefault(),r.focus())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[b,Z]);let R=async()=>{let e=u.trim();if(!e||A)return;k(!0);let r=await c({...t,activityName:e,details:m.trim(),category:f});k(!1),r&&d()},L=async()=>{if(A)return;N(!0);let e=await o(t.id);N(!1),e?d():v("none")};return(0,n.jsxs)("div",{className:"fixed inset-0 z-[110] flex items-center justify-center p-4",children:[(0,n.jsx)("div",{className:"absolute inset-0 bg-black/50 dark:bg-black/60 backdrop-blur-sm animate-in fade-in duration-150",onClick:Z}),(0,n.jsxs)("div",{ref:z,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":"".concat(E,"-heading"),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),R())},className:"relative flex flex-col w-full max-w-2xl max-h-[85vh] bg-white dark:bg-[#1A1A1A] rounded-2xl border border-zinc-200 dark:border-white/10 shadow-2xl animate-in fade-in zoom-in-95 duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500",children:[(0,n.jsxs)("div",{className:"shrink-0 flex items-start justify-between gap-3 px-5 pt-5 pb-4",children:[(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("h3",{id:"".concat(E,"-heading"),className:"text-[15px] font-semibold text-zinc-900 dark:text-white",children:"íë 기ë¡"}),I&&(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400 truncate",children:I})]}),(0,n.jsx)("button",{"aria-label":"ë«ê¸°",onClick:Z,className:"shrink-0 -mr-1.5 -mt-1 p-1.5 rounded-lg text-zinc-400 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors",children:(0,n.jsx)(s.Z,{size:18})})]}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto custom-scrollbar px-5 pb-5 space-y-5",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("span",{className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400",children:"íë ì í"}),(0,n.jsx)(y.s,{value:f,onChange:p,"aria-label":"íë ì í",className:"w-fit gap-1 p-1 rounded-xl bg-zinc-100 dark:bg-black/30",itemClassName:"px-6 py-1.5 rounded-lg text-sm font-medium",activeItem
1ClassName:"text-zinc-900 dark:text-white",inactiveItemClassName:"text-zinc-500 dark:text-zinc-400 hover:text-zinc-800 dark:hover:text-zinc-200",indicatorClassName:"bg-white dark:bg-[#2C2C2C] rounded-lg shadow-sm",options:[{key:"autonomous",label:"ìì¨"},{key:"career",label:"ì§ë¡"}]})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("label",{htmlFor:"".concat(E,"-name"),className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400",children:"íë ì 목"}),(0,n.jsx)("input",{id:"".concat(E,"-name"),type:"text",value:u,onChange:e=>x(e.target.value),onKeyDown:e=>{if("Enter"===e.key){var t;e.preventDefault(),null===(t=C.current)||void 0===t||t.focus()}},placeholder:"íë ì 목ì ì
ë ¥íì¸ì",className:"w-full px-3.5 py-2.5 bg-zinc-50 dark:bg-[#0D0D0D] border border-zinc-200 dark:border-white/10 rounded-lg text-[16px] md:text-[15px] text-zinc-900 dark:text-white placeholder-zinc-400 dark:placeholder-[#4A4A4A] focus:outline-none focus:border-toss-blue focus:ring-2 focus:ring-toss-blue/20 transition-colors",autoFocus:D})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("label",{htmlFor:"".concat(E,"-details"),className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400",children:"íë ë´ì©"}),(0,n.jsx)("textarea",{id:"".concat(E,"-details"),ref:C,value:m,onChange:e=>h(e.target.value),placeholder:"íë ë´ì©ì ì
ë ¥íì¸ì",className:"w-full px-3.5 py-3 bg-zinc-50 dark:bg-[#0D0D0D] border border-zinc-200 dark:border-white/10 rounded-lg text-[16px] md:text-sm leading-[1.75] text-zinc-800 dark:text-zinc-200 placeholder-zinc-400 dark:placeholder-[#4A4A4A] min-h-[168px] max-h-[46vh] resize-none overflow-y-auto custom-scrollbar focus:outline-none focus:border-toss-blue focus:ring-2 focus:ring-toss-blue/20 transition-colors"})]}),t.attachments&&t.attachments.length>0&&(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-medium text-zinc-500 dark:text-zinc-400",children:[(0,n.jsx)(F.Z,{size:12}),"íì ì²¨ë¶ íì¼ ",t.attachments.length,"ê°"]}),(0,n.jsx)(T,{attachments:t.attachments})]})]}),(0,n.jsx)("div",{className:"shrink-0 flex items-center justify-between gap-3 px-5 py-4",children:"delete"===b?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-sm text-zinc-600 dark:text-zinc-300",children:"ìì íë©´ ëë릴 ì ììµëë¤."}),(0,n.jsxs)("div",{className:"shrink-0 flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:()=>v("none"),className:B,children:"ì·¨ì"}),(0,n.jsx)("button",{onClick:L,disabled:j,className:"brand-danger-btn min-w-[64px] flex items-center justify-center px-4 py-2 rounded-lg text-sm font-medium bg-red-600 hover:bg-red-700 disabled:bg-red-600/60 text-white transition-colors",children:j?(0,n.jsx)(l.Z,{size:16,className:"animate-spin"}):"ìì "})]})]}):"discard"===b?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-sm text-zinc-600 dark:text-zinc-300",children:"ì ì¥íì§ ìì ë³ê²½ ì¬íì´ ììµëë¤."}),(0,n.jsxs)("div",{className:"shrink-0 flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:()=>v("none"),className:B,children:"ê³ì í¸ì§"}),(0,n.jsx)("button",{onClick:d,className:"brand-danger-ghost px-4 py-2 rounded-lg text-sm font-medium text-red-600 dark:text-red-400 hover:bg-red-500/10 transition-colors",children:"ì ì¥íì§ ìê³ ë«ê¸°"})]})]}):(0,n.jsxs)(n.Fragment,{children:[D?(0,n.jsx)("span",{}):(0,n.jsxs)("button",{onClick:()=>v("delete"),className:"brand-danger-ghost -ml-1 flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-sm text-zinc-500 hover:text-red-600 dark:hover:text-red-400 hover:bg-red-500/10 transition-colors",children:[(0,n.jsx)(i.Z,{size:15}),"ìì "]}),(0,n.jsxs)("div",{className:"shrink-0 flex items-center gap-2",children:[(0,n.jsx)("button",{onClick:Z,className:B,children:"ì·¨ì"}),(0,n.jsx)("button",{onClick:R,disabled:!u.trim()||A,className:(0,g.cn)("brand-primary-btn min-w-[64px] flex items-center justify-center px-4 py-2 rounded-lg text-sm font-medium transition-colors",u.trim()&&!A?"bg-toss-blue hover:bg-[#1B64DA] text-white":"bg-zinc-200 dark:bg-white/10 text-zinc-400 dark:text-zinc-500 cursor-not-allowed"),children:w?(0,n.jsx)(l.Z,{size:16,className:"animate-spin"}):"ì ì¥"})]})]})})]})]})}function V(){let{students:e,isLoaded:t}=(0,w.AF)(),i=(0,j.XC)(),S=(0,z.Dv)(),M=e.filter(e=>"ë´ì íê¸"===e.homeClassId),{data:I=[],isLoading:Z}=(0,D.We)(),{upsertActivity:R,deleteActivity:L}=(0,D.s9)(),{generateActivityDraft:T,generatingIds:B}=(0,A.l)(),{showToast:V}=(0,E.p)(),{openSettings:J}=(0,U.Y)(),[G,$]=(0,a.useState)("all"),[Y,ee]=(0,a.useState)("card"),[et,er]=(0,a.useState)(!1),[en,ea]=(0,a.useState)(null),[ei,es]=(0,a.useState)(null),[el,ec]=(0,a.useState)(!1),[eo,ed]=(0,a.useState)(null),[eu,ex]=(0,a.useState)(null),em=(0,a.useRef)(null),eh=(0,a.useRef)(!1),ef=(0,a.useRef)(null),ep=(0,a.useRef)([]),[eb,ev]=(0,a.useState)(210),eg=(0,a.useRef)(null),{data:ey,setItem:ew,getItem:ek,savingKeys:ej,dirtyKeys:eN,recoveredKeys:ez,flushAll:eC}=(0,K.M)({storageKeyPrefix:"activity-drafts",debounceMs:1e3,onSave:async(e,t)=>{let[r,n]=e.split(":");return(await (0,k.X)("upsertActivityDraft",{studentId:r,category:n,draft:t},i)).success}}),eE=(0,a.useRef)(void 0);eE.current=()=>{eC()},(0,a.useEffect)(()=>{let e=()=>{var e;"hidden"===document.visibilityState&&(null===(e=eE.current)||void 0===e||e.call(eE))},t=()=>{var e;return null===(e=eE.current)||void 0===e?void 0:e.call(eE)};return document.addEventListener("visibilitychange",e),window.addEventListener("pagehide",t),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("pagehide",t)}},[]);let eD=(0,a.useRef)(null),eA=(0,a.useCallback)(()=>{let e={};M.forEach(t=>{e["".concat(t.id,":autonomous")]=ek("".concat(t.id,":autonomous"),""),e["".concat(t.id,":career")]=ek("".concat(t.id,":career"),"")}),ep.current.push(e),ep.current.length>20&&ep.current.shift()},[M,ek]),eS=(0,a.useCallback)((e,t)=>{ek(e,"")!==t&&(eD.current&&clearTimeout(eD.current),eD.current=setTimeout(()=>{eA()},500)),ew(e,t)},[ek,ew,eA]),eM=(0,a.useCallback)(e=>{if("all"===G){let t=Math.floor(e/2);return t>=M.length?null:{studentId:M[t].id,category:e%2==0?"autonomous":"career"}}return e>=M.length?null:{studentId:M[e].id,category:G}},[G,M]),eI=(0,a.useCallback)(e=>{let t=eM(e);return t?ek("".concat(t.studentId,":").concat(t.category),""):""},[eM,ek]),eZ=(0,a.useCallback)(async()=>
1{if(!ei)return;let e=Math.min(ei.start.row,ei.end.row),t=Math.max(ei.start.row,ei.end.row),r="";for(let n=e;n<=t;n++)r+=(0,g.vB)(eI(n))+(n===t?"":"\r\n");try{await navigator.clipboard.writeText(r)}catch(e){console.error("Failed to copy",e)}},[ei,eI]),eR=(0,a.useCallback)((e,t)=>{let r;let n=null!=t?t:ei?{row:Math.min(ei.start.row,ei.end.row)}:null;if(!n)return;let a=(0,g.R3)(e);if(0===a.length)return;let i=a.length,s=!!t;if(s&&1===a.length&&1===a[0].length)return;eA();let l=n.row;if(s&&i>1&&!e.includes(" ")&&!e.includes("\r")&&(a=[[a.map(e=>e[0]).join("\n")]]),t||null===ei||ei.start.row===ei.end.row)r=a.length;else{let e=Math.min(ei.start.row,ei.end.row);r=Math.max(ei.start.row,ei.end.row)-e+1}for(let e=0;e<r;e++){var c;let t=eM(l+e);if(!t)break;let r=a[e%i];if(!r)continue;let n=null!==(c=r[0])&&void 0!==c?c:"";ew("".concat(t.studentId,":").concat(t.category),n)}},[ei,g.R3,eA,eM,ew]),eL=(0,a.useCallback)(()=>{if(!ei)return;eA();let e=Math.min(ei.start.row,ei.end.row),t=Math.max(ei.start.row,ei.end.row);for(let r=e;r<=t;r++){let e=eM(r);e&&ew("".concat(e.studentId,":").concat(e.category),"")}},[ei,eA,eM,ew]),eT=(e,t,r)=>{var n,a;let i=em.current;i&&i.row===t&&i.col===r||((null===(a=e.target)||void 0===a?void 0:null===(n=a.dataset)||void 0===n?void 0:n.gridEditor)!=="true"&&e.preventDefault(),i&&eB(),eU(),ec(!0),ed({row:t,col:r}),es({start:{row:t,col:r},end:{row:t,col:r}}))},eF=(e,t)=>{if(el&&eo){if(eo.row!==e||eo.col!==t){var r;null===(r=window.getSelection())||void 0===r||r.removeAllRanges()}es({start:eo,end:{row:e,col:t}})}},eK=(0,a.useCallback)(()=>{ec(!1),ed(null)},[]);(0,a.useEffect)(()=>(window.addEventListener("mouseup",eK),()=>window.removeEventListener("mouseup",eK)),[eK]),(0,a.useEffect)(()=>{let e=e=>{let t=eg.current;t&&ev(Math.max(120,Math.min(640,t.startWidth+(e.clientX-t.startX))))},t=()=>{eg.current=null};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[]);let e_=(e,t)=>{if(!ei)return!1;let r=Math.min(ei.start.row,ei.end.row),n=Math.max(ei.start.row,ei.end.row),a=Math.min(ei.start.col,ei.end.col),i=Math.max(ei.start.col,ei.end.col);return e>=r&&e<=n&&t>=a&&t<=i},eQ="all"===G?2*M.length:M.length,eq=(()=>{if(!ei||ei.start.row!==ei.end.row)return null;let e=ei.start.row;return eM(e)?e:null})(),eP=e=>eq===e,eH=e=>(null==eu?void 0:eu.row)===e,eU=()=>{eh.current=!0};(0,a.useEffect)(()=>{var e;if(!eh.current||(eh.current=!1,null===eq))return;let t=null===(e=ef.current)||void 0===e?void 0:e.querySelector('[data-grid-editor="true"]');if(!t||(t!==document.activeElement&&t.focus({preventScroll:!0}),em.current))return;let r=t.value.length;t.setSelectionRange(r,r)});let eX=e=>{var t,r;null===(r=ef.current)||void 0===r||null===(t=r.querySelector('[data-grid-row="'.concat(e,'"]')))||void 0===t||t.scrollIntoView({block:"nearest"})},eW=e=>{let t=Math.max(0,Math.min(eQ-1,e));es({start:{row:t,col:0},end:{row:t,col:0}}),eU(),eX(t)},eB=()=>{em.current=null,ex(null)},eO=e=>{var t;(null===(t=em.current)||void 0===t?void 0:t.row)!==e&&eM(e)&&(es({start:{row:e,col:0},end:{row:e,col:0}}),em.current={row:e,col:0},ex({row:e,col:0}),eU())},eV=e=>{tx(e.target),eB()},eJ=(e,t)=>{if(em.current)return;if(e.detail>=2){eO(t);return}let r=e.currentTarget,n=r.value.length;r.setSelectionRange(n,n)},eG=e=>{em.current||eO(e)},e$=()=>{eD.current&&(clearTimeout(eD.current),eD.current=null);let e=ep.current.pop();e&&Object.entries(e).forEach(e=>{let[t,r]=e;return ew(t,r)})},eY=(e,t)=>{if(!ei)return!1;let r=ei.start.row===ei.end.row;if(r&&("Enter"===e.key||"F2"===e.key))return e.preventDefault(),eO(ei.start.row),!0;if("ArrowUp"===e.key||"ArrowDown"===e.key){e.preventDefault();let t=Math.max(0,Math.min(eQ-1,ei.end.row+("ArrowUp"===e.key?-1:1)));return e.shiftKey?(es({start:ei.start,end:{row:t,col:0}}),eX(t)):eW(t),!0}return"Tab"===e.key?(e.preventDefault(),eW(ei.end.row+(e.shiftKey?-1:1)),!0):"Delete"===e.key||"Backspace"===e.key?(e.preventDefault(),eL(),!0):(e.metaKey||e.ctrlKey)&&("c"===e.key||"C"===e.key)?(e.preventDefault(),eZ(),!0):(e.metaKey||e.ctrlKey)&&
1("z"===e.key||"Z"===e.key)?(e.preventDefault(),e$(),!0):!!(!(null==t?void 0:t.yieldTyping)&&r&&(0,X.E$)(e))&&(e.preventDefault(),eO(ei.start.row),!0)},e0=(0,a.useRef)(eY);e0.current=eY;let e1=(e,t)=>{var r,n,a;if(e.nativeEvent.isComposing)return;if(!eH(t)||(null===(r=em.current)||void 0===r?void 0:r.row)!==t){eY(e,{yieldTyping:!0})&&e.nativeEvent.stopImmediatePropagation();return}if((e.metaKey||e.ctrlKey)&&("z"===e.key||"Z"===e.key)){e.preventDefault(),e.nativeEvent.stopImmediatePropagation(),e$();return}if("Enter"===e.key){if(e.preventDefault(),(0,X.xQ)({key:e.key,altKey:e.altKey,shiftKey:e.shiftKey,multiline:!0})){(0,X.yl)(e.currentTarget);return}e.nativeEvent.stopImmediatePropagation(),eB(),eW(t+1);return}if("Escape"===e.key||"Tab"===e.key){e.preventDefault(),e.nativeEvent.stopImmediatePropagation(),eB(),eW("Tab"===e.key?t+(e.shiftKey?-1:1):t);return}let i=(0,X.Ud)({key:e.key,value:e.currentTarget.value,selectionStart:null!==(n=e.currentTarget.selectionStart)&&void 0!==n?n:0,selectionEnd:null!==(a=e.currentTarget.selectionEnd)&&void 0!==a?a:0,shiftKey:e.shiftKey});i&&0!==i.rowDelta&&(e.preventDefault(),e.nativeEvent.stopImmediatePropagation(),eB(),eW(t+i.rowDelta))};(0,a.useEffect)(()=>{let e=e=>{if(!ei||em.current)return;let t=document.activeElement;t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||e0.current(e)},t=e=>{var t;if(!ei||em.current)return;let r=document.activeElement;!(r instanceof HTMLElement&&"true"===r.dataset.gridEditor)&&r instanceof HTMLElement&&r.blur(),e.preventDefault(),eR((null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))||"")};return window.addEventListener("keydown",e),window.addEventListener("paste",t),()=>{window.removeEventListener("keydown",e),window.removeEventListener("paste",t)}},[eZ,eR,eL,ei,eA]);let[e2,e5]=(0,a.useState)(null),[e3,e4]=(0,a.useState)(!1),e8=(0,w.fc)(),e6=_.H&&!S&&e8,e9=(0,Q.g)(),e7=e6&&!e9,[te,tt]=(0,a.useState)(""),[tr,tn]=(0,a.useState)(!1);(0,a.useEffect)(()=>{var e;et&&(null==i?void 0:null===(e=i.user)||void 0===e?void 0:e.id)?(async()=>{tn(!0);let e="".concat(window.location.origin,"/survey?class=").concat(encodeURIComponent("ë´ì íê¸"),"&u=").concat(encodeURIComponent(i.user.id));try{let t=await (0,N.C)(e);tt(t)}catch(t){tt(e)}finally{tn(!1)}})():tt("")},[et,i]);let ta=e=>{ea({id:"temp-".concat(Date.now()),studentId:e,category:"autonomous",activityName:"",details:"",createdAt:new Date().toISOString()})},ti=(0,a.useCallback)(async()=>{let e=await (0,k.X)("getActivityDrafts",{},i);e.success&&e.data&&e.data.forEach(e=>{ew("".concat(e.studentId,":").concat(e.category),t=>void 0!==t?t:e.draft)})},[i,ew]),ts=async t=>{let r=e.find(e=>e.id===t.studentId),n=r?{name:r.name,number:r.number,grade:r.grade||1,classNum:r.classNum||0}:void 0;try{return await R.mutateAsync({...t,studentDetails:n}),!0}catch(e){return V("íë 기ë¡ì ì ì¥íì§ ëª»íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.","error"),!1}},tl=async e=>{try{return await L.mutateAsync(e),!0}catch(e){return V("íë 기ë¡ì ìì íì§ ëª»íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.","error"),!1}},tc=(0,a.useRef)(!1);(0,a.useEffect)(()=>{tc.current||(tc.current=!0,ti())},[ti]);let to=(0,a.useCallback)(async()=>{if(S){e5(5);return}try{let e=await fetch("/api/credits");if(e.ok){let t=await e.json();e5(t.balance)}}catch(e){console.error("Failed to fetch credits:",e)}},[S]);(0,a.useEffect)(()=>{to()},[to]);let td=(t,r)=>{if(S){window.dispatchEvent(new CustomEvent("open-login-modal"));return}if((0,q.I)()){V(P.Ad,"info");return}let n=e.find(e=>e.id===t);if(!n)return;let a=tu(t).filter(e=>e.category===r);if(0===a.length){V("ìì±í íë 기ë¡ì´ ììµëë¤. 먼ì íëì ì¶ê°í´ì£¼ì¸ì.","warning");return}let i=a.map(e=>"".concat(e.activityName,": ").concat(e.details)).join("\n"),s=a.flatMap(e=>e.attachments||[]),l=s.filter(e=>"done"===e.extractStatus).length,c=s.filter(e=>"pending"===e.extractStatus).length;s.length>0&&(c>0?V("첨ë¶íì¼ ".concat(l,"ê°ë¥¼ AI ìë£ë¡ ì¬ì©í©ëë¤. (").concat(c,"ê°ë ìì§ ë¶ì ì¤)"),"info"):l>0&&V("첨ë¶íì¼ ".concat(l,"ê°ë¥¼ AI ìë£ë¡ í¨ê» íì©í©ëë¤."),"info")),T({studentId:t,studentName:n.name,category:r,activityName:a.map(e=>e.activityName).join(", "),details:i,onSuccess:e=>{let n=e.draft||"";ew("".concat(t,":").concat(r),n)}})},tu=e=>I.filter(t=>t.studentId===e).filter(e=>"all"===G||e.category===G),tx=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e&&e instanceof HTMLTextAreaElement){if(t){var r;let t=null===(r=e.parentElement)||void 0===r?void 0:r.classList.contains("group/draft");e.style.height=t?"54px":"34px";return}e.style.height="auto",e.style.height="".concat(e.scrollHeight,"px")}},tm=e=>tx(e.target),th=(0,a.useCallback)(async()=>{let e=await Promise.all([r.e(1425),r.e(6919)]).then(r.bind(r,2093)),t=[],n=[];if("card"===Y){n=["íë
","ë°","ë²í¸","ì´ë¦","ìì¨","ì§ë¡"];let e=e=>{var t,r;let n=(null===(t=e.activityName)||void 0===t?void 0:t.trim())||"",a=(null===(r=e.details)||void 0===r?void 0:r.trim())||"",i=[];return n&&i.push("íë ì 목: ".concat(n)),a&&i.push("íë ë´ì©: ".concat(a)),i.join("\n")};M.forEach(r=>{var n,a;let i=I.filter(e=>
1e.studentId===r.id&&"autonomous"===e.category).map(e).filter(Boolean).join("\n\n"),s=I.filter(e=>e.studentId===r.id&&"career"===e.category).map(e).filter(Boolean).join("\n\n");t.push([null!==(n=r.grade)&&void 0!==n?n:"",null!==(a=r.classNum)&&void 0!==a?a:"",r.number,r.name,i,s])})}else n=["íë
","ë°","ë²í¸","ì´ë¦","ì기ë¶(ìì¨)","ì기ë¶(ì§ë¡)"],M.forEach(e=>{var r,n;let a=ek("".concat(e.id,":autonomous"),""),i=ek("".concat(e.id,":career"),"");t.push([null!==(r=e.grade)&&void 0!==r?r:"",null!==(n=e.classNum)&&void 0!==n?n:"",e.number,e.name,a,i])});let a=e.utils.aoa_to_sheet([n,...t]),i=e.utils.book_new();e.utils.book_append_sheet(i,a,"Data");let s="ìì¨ì§ë¡_".concat("card"===Y?"íë":"ì기ë¶ì´ì","_").concat((0,g.RJ)(),".xlsx");e.writeFile(i,s)},[Y,M,I,ek]);return(0,n.jsxs)("div",{className:"h-full flex flex-col p-6 gap-6 overflow-hidden bg-[#0D0D0D]",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between shrink-0",children:[(0,n.jsxs)("div",{className:"ml-2",children:[(0,n.jsx)("h2",{className:"text-2xl font-bold text-white whitespace-nowrap",children:"ìì¨\xb7ì§ë¡"}),(0,n.jsx)("p",{className:"text-sm text-[#888] mt-1",children:"QRì½ë를 íµí´ íìë¤ì´ íë 기ë¡ì ì ì¶íë©´ ì´ê³³ì ìëì¼ë¡ ì 리ë©ëë¤."})]}),(0,n.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[(0,n.jsx)(y.s,{value:Y,onChange:ee,"aria-label":"íë 보기 ë°©ì",className:"h-[38px] bg-[#f8f8f4] dark:bg-[#1A1A1A] border border-zinc-200 dark:border-white/5 rounded-lg p-1 mr-2",itemClassName:"h-full px-2 rounded-md",activeItem
1ClassName:"text-black dark:text-white",inactiveItemClassName:"text-zinc-500 hover:text-black dark:text-[#666] dark:hover:text-white",indicatorClassName:"bg-[#EEEEE8] dark:bg-white/10 rounded-md shadow-sm",options:[{key:"card",label:(0,n.jsx)(c,{size:18}),title:"ì¹´ë 보기",ariaLabel:"ì¹´ë 보기"},{key:"table",label:(0,n.jsx)(o.Z,{size:18}),title:"í 보기",ariaLabel:"í 보기"}]}),(0,n.jsx)(y.s,{value:G,onChange:$,"aria-label":"íë ë¶ë¥ íí°",className:"h-[38px] bg-[#f8f8f4] dark:bg-[#1A1A1A] border border-zinc-200 dark:border-white/5 rounded-lg p-1",itemClassName:"h-full px-3 text-sm font-medium rounded-md whitespace-nowrap",activeItemClassName:"text-black dark:text-white",inactiveItemClassName:"text-zinc-500 hover:text-black dark:text-[#666] dark:hover:text-white",indicatorClassName:"bg-[#EEEEE8] dark:bg-white/10 rounded-md shadow-sm",options:[{key:"all",label:"ì ì²´"},{key:"autonomous",label:"ìì¨"},{key:"career",label:"ì§ë¡"}]}),(0,n.jsxs)("button",{onClick:th,className:"flex items-center gap-1.5 h-[38px] px-3 bg-[#f2f2ec] dark:bg-[#1A1A1A] border border-zinc-200 dark:border-white/5 text-zinc-600 dark:text-zinc-400 hover:text-black dark:hover:text-white hover:bg-[#EEEEE8] dark:hover:bg-[#222] rounded-lg transition text-sm font-medium whitespace-nowrap shrink-0",children:[(0,n.jsx)(d.Z,{size:16}),(0,n.jsx)("span",{children:"ìì
"})]}),"card"===Y?(0,n.jsxs)("button",{onClick:()=>er(!0),className:"flex items-center gap-2 h-[38px] px-4 bg-blue-600 hover:bg-blue-700 text-white rounded-lg transition-colors border border-blue-600 whitespace-nowrap shrink-0",children:[(0,n.jsx)(u.Z,{size:18}),(0,n.jsx)("span",{className:"text-sm font-medium",children:"QRì½ë"})]}):e7?(0,n.jsxs)("button",{onClick:()=>{S?window.dispatchEvent(new CustomEvent("open-login-modal")):e4(!0)},className:"flex items-center gap-2 h-[38px] pl-3 pr-3.5 bg-[#f2f2ec] dark:bg-[#18181b] border border-gray-200 dark:border-white/10 text-gray-600 dark:text-zinc-400 hover:text-black dark:hover:text-white hover:bg-[#EEEEE8] dark:hover:bg-[#18181b] hover:border-zinc-200 dark:hover:border-white/20 rounded-lg transition text-sm font-medium",children:[(0,n.jsx)(p.O,{size:16,className:"text-black dark:text-white"}),"í¬ë ë§ ",null!=e2?e2:"-"]}):null]})]}),(0,n.jsx)("div",{ref:ef,className:"flex-1 overflow-y-auto custom-scrollbar",children:0!==M.length||S||t?0===M.length?(0,n.jsx)("div",{className:"h-full flex items-center justify-center p-8",children:(0,n.jsx)(H.Z,{size:"lg",title:"ë´ì íê¸ íìì´ ììµëë¤",description:"íì ëª
ë¨ìì 먼ì ë´ì íê¸ì ì§ì íê³ íìì ë±ë¡í´ 주ì¸ì.",action:(0,n.jsx)("button",{onClick:()=>J("student-list"),className:"px-6 py-2.5 bg-zinc-900 hover:bg-black dark:bg-white dark:hover:bg-zinc-100 text-white dark:text-zinc-900 rounded-xl text-sm font-semibold transition-all shadow-sm active:scale-95 cursor-pointer",children:"íì ë±ë¡í기"})})}):"table"===Y?(0,n.jsxs)("table",{className:"w-full border-collapse table-fixed",children:[(0,n.jsxs)("colgroup",{children:[(0,n.jsx)("col",{style:{width:48}}),(0,n.jsx)("col",{style:{width:80}}),(0,n.jsx)("col",{style:{width:eb}}),(0,n.jsx)("col",{}),e6&&(0,n.jsx)("col",{style:{width:96}})]}),(0,n.jsx)("thead",{className:"sticky top-0 bg-[#0D0D0D] z-10",children:(0,n.jsxs)("tr",{className:"border-b border-t border-white/10",children:[(0,n.jsx)("th",{className:"text-center text-xs font-medium text-[#666] py-3 px-2",children:"ë²í¸"}),(0,n.jsx)("th",{className:"text-center text-xs font-medium text-[#666] py-3 px-2",children:"ì´ë¦"}),(0,n.jsxs)("th",{className:"relative text-center text-xs font-medium text-[#666] py-3 px-2",children:["íë ì 목",(0,n.jsx)("span",{role:"separator","aria-label":"íë ì 목 ì´ ëë¹ ì¡°ì ",onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),eg.current={startX:e.clientX,startWidth:eb}},onDoubleClick:()=>ev(210),title:"ëì´ì ëë¹ ì¡°ì (ë ë² í´ë¦íë©´ 기본ê°)",className:"absolute top-0 right-0 h-full w-2 translate-x-1/2 cursor-col-resize hover:bg-toss-blue/30 active:bg-toss-blue/50 transition-colors"})]}),(0,n.jsx)("th",{className:"text-center text-xs font-medium text-[#666] py-3 px-2",children:"ìê¸°ë¶ ì´ì"}),e6&&(0,n.jsx)("th",{className:"text-center text-xs font-medium text-[#666] py-3 px-2",children:"ìì±"})]})}),(0,n.jsx)("tbody",{children:M.map((e,t)=>{let r=tu(e.id),i=r.filter(e=>"autonomous"===e.category),s=r.filter(e=>"career"===e.category),c=B.has("".concat(e.id,"-autonomous")),o=B.has("".concat(e.id,"-career")),d="all"===G?2*t:t,u="all"===G?2*t+1:t;return(0,n.jsxs)(a.Fragment,{children:[("all"===G||"autonomous"===G)&&(0,n.jsxs)("tr",{className:"border-b border-white/5 bg-[#121212]/30",children:[(0,n.jsx)("td",{rowSpan:"all"===G?2:1,className:"py-3 px-2 text-center text-sm text-[#888] border-r border-white/5",children:e.number}),(0,n.jsx)("td",{rowSpan:"all"===G?2:1,className:"py-3 px-2 text-center text-sm text-white font-medium border-r border-white/5",children:e.name}),(0,n.jsx)("td",{className:"py-2 px-3 text-sm text-gray-300 border-r border-white/5 border-b border-white/10 align-top",children:(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,n.jsx)("span",{className:"text-[10px] font-bold bg-vi
1olet-500/15 text-violet-700 dark:bg-violet-500/20 dark:text-violet-300 px-1.5 py-0.5 rounded",children:"ìì¨"}),i.length>0?i.map(e=>(0,n.jsxs)("div",{onClick:()=>ea(e),className:"px-2 py-1 rounded text-xs bg-white dark:bg-white/[0.02] border border-zinc-200 dark:border-white/10 text-zinc-700 dark:text-zinc-200 cursor-pointer hover:bg-zinc-100 dark:hover:bg-white/[0.05] transition-colors flex items-center gap-1 max-w-full min-w-0",children:[(0,n.jsx)("span",{className:"min-w-0 break-words",children:e.activityName}),e.attachments&&e.attachments.length>0&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5 text-zinc-500 dark:text-zinc-400 font-bold shrink-0",title:"첨ë¶íì¼ ".concat(e.attachments.length,"ê°"),children:[(0,n.jsx)(F.Z,{size:10}),e.attachments.length]})]},e.id)):(0,n.jsx)("span",{className:"text-gray-600 dark:text-gray-400 text-xs italic mt-0.5",children:"íë ìì"})]})}),(0,n.jsx)("td",{"data-grid-row":d,onMouseDown:e=>eT(e,d,0),onDoubleClick:()=>eO(d),onMouseEnter:()=>eF(d,0),className:(0,g.cn)("p-0 border-r border-zinc-300 dark:border-white/5 border-b border-zinc-300 dark:border-white/10 hover:bg-black/5 dark:hover:bg-white/[0.02] focus-within:bg-black/5 dark:focus-within:bg-white/5 align-top transition-colors select-none",e_(d,0)&&"ring-1 ring-inset ring-blue-500 z-20",e_(d,0)&&!eH(d)&&"bg-blue-500/10 dark:bg-blue-500/20"),children:(0,n.jsxs)("div",{className:"relative group/draft h-full min-h-[54px]",children:[(0,n.jsxs)("div",{className:(0,g.cn)("absolute inset-0 px-2 pt-1.5 text-sm text-black dark:text-gray-300 pointer-events-none select-none flex flex-col transition-opacity",eP(d)&&"opacity-0 invisible"),children:[(0,n.jsx)("div",{className:"w-full whitespace-nowrap overflow-hidden",style:{textOverflow:"clip"},children:ek("".concat(e.id,":autonomous"),"").split("\n")[0]}),(ek("".concat(e.id,":autonomous"),"").includes("\n")||ek("".concat(e.id,":autonomous"),"").length>30)&&(0,n.jsx)("div",{className:"text-black dark:text-white text-[10px] leading-none mt-1 font-medium opacity-70",children:"... ë 보기"})]}),eP(d)&&(0,n.jsx)("textarea",{"data-grid-editor":"true",value:ek("".concat(e.id,":autonomous"),""),onChange:t=>{eG(d),eS("".concat(e.id,":autonomous"),t.target.value)},onBeforeInput:()=>eG(d),onCompositionStart:()=>eG(d),onMouseUp:e=>eJ(e,d),onFocus:tm,onBlur:e=>{eV(e)},onKeyDown:e=>e1(e,d),onPaste:e=>{em.current||(e.preventDefault(),e.nativeEvent.stopPropagation(),eR(e.clipboardData.getData("text"),{row:d}))},className:(0,g.cn)("w-full bg-transparent border border-transparent rounded-none px-2 pt-1.5 pb-6 text-sm text-black dark:text-gray-300 focus:outline-none focus:ring-0 resize-none overflow-hidden min-h-[54px] block",eH(d)?"caret-black dark:caret-white":"caret-transparent selection:bg-transparent")}),(0,n.jsx)("div",{className:"absolute top-2 right-2 opacity-0 group-hover/draft:opacity-100 transition-opacity pointer-events-none",children:ej.has("".concat(e.id,":autonomous"))?(0,n.jsx)(l.Z,{size:12,className:"animate-spin text-blue-500"}):eN.has("".concat(e.id,":autonomous"))?(0,n.jsx)("div",{className:"w-1.5 h-1.5 rounded-full bg-amber-500",title:"ì ì¥ ë기 ì¤"}):ek("".concat(e.id,":autonomous"),"")&&(0,n.jsx)(x.Z,{size:12,className:"text-green-500 opacity-40"})}),(0,n.jsxs)("div",{className:(0,g.cn)("absolute bottom-1 right-2 text-[9px] font-mono pointer-events-none opacity-50 group-hover/draft:opacity-100",(0,g.CQ)(ek("".concat(e.id,":autonomous"),""))>1500?"text-red-400":"text-green-500"),children:[(0,g.CQ)(ek("".concat(e.id,":autonomous"),""))," / 1500"]})]})}),e6&&(0,n.jsx)("td",{className:"p-0 text-center border-b border-white/10",children:(0,n.jsx)("div",{className:"py-1.5 px-1 flex items-center justify-center",children:(0,n.jsx)("button",{onClick:()=>td(e.id,"autonomous"),disabled:c||0===i.length,className:"px-3 py-1 bg-zinc-100 hover:bg-zinc-200 dark:bg-zinc-200 dark:hover:bg-zinc-300 text-black border border-zinc-200 dark:border-zinc-300 rounded-full transition text-[11px] font-medium whitespace-nowrap shadow-sm disabled:opacity-50 flex items-center justify-center gap-1.5",children:c?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(f.W,{size:12,className:"text-zinc-600 dark:text-zinc-400"}),(0,n.jsx)("span",{children:"ìì± ì¤"})]}):(0,n.jsx)("span",{children:"AI ìì±"})})})})]}),("all"===G||"career"===G)&&(0,n.jsxs)("tr",{className:"border-b border-white/10 bg-[#121212]/30",children:["career"===G&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("td",{className:"py-3 px-2 text-center text-sm text-[#888] border-r border-white/5",children:e.number}),(0,n.jsx)("td",{className:"py-3 px-2 text-center text-sm text-white font-medium border-r border-white/5",children:e.name})]}),(0,n.jsx)("td",{className:"py-2 px-3 text-sm text-gray-300 border-r border-white/5 align-top",children:(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,n.jsx)("span",{className:"text-[10px] font-bold bg-teal-500/15 text-teal-700 dark:bg-teal-500/20 dark:text-teal-300 px-1.5 py-0.5 rounded",children:"ì§ë¡"}),s.length>0?s.map(e=>(0,n.jsxs)("div",{onClick:()=>ea(e),className:"px-2 py-1 rounded text-xs bg-white dark:bg-white/[0.02] border border-zinc-200 dark:border-white/10 text-zinc-700 dark:text-zinc-200 cursor-pointer hover:bg-zinc-100 dark:hover:bg-white/[0.05] transition-colors flex items-center gap-1 max-w-full min-w-0",children:[(0,n.jsx)("span",{className:"min-w-0 break-words",children:e.activityName}),e.attachments&&e.attachments.length>0&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5 text-zinc-500 dark:text-zinc-400 font-bold shrink-0",title:"첨ë¶íì¼ ".concat(e.attachments.length,"ê°"),children:[(0,n.jsx)(F.Z,{size:10}),e.attachments.length]})]},e.id)):(0,n.jsx)("span",{className:"text-gray-600 dark:text-gray-400 text-xs italic mt-0.5",children:"íë ìì"})]})}),(0,n.jsx)("td",{"data-grid-row":u,onMouseDown:e=>eT(e,u,0),onDoubleClick:()=>eO(u),onMouseEnter:()=>eF(u,0),className:(0,g.cn)("p-0 border-r border-zinc-300 dark:border-white/5 hover:bg-black/5 dark:hover:bg-white/[0.02] focus-within:bg-black/5 dark:focus-within:bg-white/5 align-top transition-colors border-b border-zinc-300 dark:border-white/10 select-none",e_(u,0)&&"ring-1 ring-inset ring-blue-500 z-20",e_(u,0)&&!eH(u)&&"bg-blue-500/10 dark:bg-blue-500/20"),children:(0,n.jsxs)("div",{className:"relative group/draft h-full min-h-[54px]",children:[(0,n.jsxs)("div",{className:(0,g.cn)("absolute inset-0 px-2 pt-1.5 text-sm text-black dark:text-gray-300 pointer-events-none select-none flex flex-col transition-opacity",eP(u)&&"opacity-0 invisible"),children:[(0,n.jsx)("div",{className:"w-full whitespace-nowrap overflow-hidden",style:{textOverflow:"clip"},children:ek("".concat(e.id,":career"),"").split("\n")[0]}),(ek("".concat(e.id,":career"),"").includes("\n")||ek("".concat(e.id,":career"),"").length>30)&&(0,n.jsx)("div",{className:"text-black dark:text-white text-[10px] leading-none mt-1 font-medium opacity-70",children:"... ë 보기"})]}),eP(u)&&(0,n.jsx)("textarea",{"data-grid-editor":"true",value:ek("".concat(e.id,":career"),""),onChange:t=>{eG(u),eS("".concat(e.id,":career"),t.target.value)},onBeforeInput:()=>eG(u),onCompositionStart:()=>eG(u),onMouseUp:e=>eJ(e,u),onFocus:tm,onBlur:e=>{eV(e)},onKeyDown:e=>e1(e,u),onPaste:e=>{em.current||(e.preventDefault(),e.nativeEvent.stopPropagation(),eR(e.clipboardData.getData("text"),{row:u}))},className:(0,g.cn)("w-full bg-transparent border border-transparent roun
1ded-none px-2 pt-1.5 pb-6 text-sm text-black dark:text-gray-300 focus:outline-none focus:ring-0 resize-none overflow-hidden min-h-[54px] block",eH(u)?"caret-black dark:caret-white":"caret-transparent selection:bg-transparent")}),(0,n.jsx)("div",{className:"absolute top-2 right-2 opacity-0 group-hover/draft:opacity-100 transition-opacity pointer-events-none",children:ej.has("".concat(e.id,":career"))?(0,n.jsx)(l.Z,{size:12,className:"animate-spin text-blue-500"}):eN.has("".concat(e.id,":career"))?(0,n.jsx)("div",{className:"w-1.5 h-1.5 rounded-full bg-amber-500",title:"ì ì¥ ë기 ì¤"}):ek("".concat(e.id,":career"),"")&&(0,n.jsx)(x.Z,{size:12,className:"text-green-500 opacity-40"})}),(0,n.jsxs)("div",{className:(0,g.cn)("absolute bottom-1 right-2 text-[9px] font-mono pointer-events-none opacity-50 group-hover/draft:opacity-100",(0,g.CQ)(ek("".concat(e.id,":career"),""))>2100?"text-red-400":"text-green-500"),children:[(0,g.CQ)(ek("".concat(e.id,":career"),""))," / 2100"]})]})}),e6&&(0,n.jsx)("td",{className:"p-0 text-center",children:(0,n.jsx)("div",{className:"py-1.5 px-1 flex items-center justify-center",children:(0,n.jsx)("button",{onClick:()=>td(e.id,"career"),disabled:o||0===s.length,className:"px-3 py-1 bg-zinc-100 hover:bg-zinc-200 dark:bg-zinc-200 dark:hover:bg-zinc-300 text-black border border-zinc-200 dark:border-zinc-300 rounded-full transition text-[11px] font-medium whitespace-nowrap shadow-sm disabled:opacity-50 flex items-center justify-center gap-1.5",children:o?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p.O,{size:12,strokeWidth:3,className:"animate-spin text-zinc-600 dark:text-zinc-400"}),(0,n.jsx)("span",{children:"ìì± ì¤"})]}):(0,n.jsx)("span",{children:"AI ìì±"})})})})]})]},e.id)})})]}):(0,n.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 gap-4",children:M.map(e=>(tu(e.id),(0,n.jsxs)("div",{className:"bg-[#121212] rounded-xl border border-white/5 p-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-2 pb-2 border-b border-white/5",children:[(0,n.jsx)("span",{className:"w-5 h-5 rounded-full bg-white/10 flex items-center justify-center text-[10px] font-bold text-[#888]",children:e.number}),(0,n.jsx)("span",{className:"text-sm font-bold text-white",children:e.name}),(0,n.jsx)("button",{"aria-label":"ì¶ê°",onClick:()=>ta(e.id),className:"ml-auto p-1 text-[#444] hover:text-white hover:bg-white/10 rounded transition activity-add-btn",children:(0,n.jsx)(m.Z,{size:14})})]}),(0,n.jsx)("div",{className:"space-y-1",children:(()=>{let t=[...I.filter(t=>t.studentId===e.id).filter(e=>"all"===G||e.category===G||!e.activityName)].sort((e,t)=>e.category===t.category?e.createdAt.localeCompare(t.createdAt):"autonomous"===e.category?-1:1);return 0===t.length?(0,n.jsx)("div",{className:"text-center text-[#333] text-xs py-3 activity-empty-text",children:"+ ë²í¼ì¼ë¡ íë ì¶ê°"}):t.map(e=>(0,n.jsx)(W,{activity:e,onUpdate:ts,onDelete:tl,onClick:()=>ea(e)},e.id))})()})]},e.id)))}):(0,n.jsx)("div",{className:"h-full flex flex-col items-center justify-center text-gray-400",children:(0,n.jsx)("p",{className:"text-sm",children:"íì ë°ì´í°ë¥¼ ë¶ë¬ì¤ë ì¤..."})})}),et&&(0,n.jsx)("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4",onClick:()=>er(!1),children:(0,n.jsxs)("div",{className:"bg-[#1A1A1A] rounded-2xl p-6 max-w-sm w-full shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h3",{className:"text-lg font-bold text-white",children:"QR ì½ë ê³µì "}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(v.a,{value:te,disabled:tr}),(0,n.jsx)("button",{"aria-label":"ë«ê¸°",onClick:()=>er(!1),className:"p-1 text-[#666] hover:text-white transition-colors",children:(0,n.jsx)(s.Z,{size:20})})]})]}),(0,n.jsx)("div",{id:"activity-qr-code",className:"bg-white rounded-xl p-6 flex items-center justify-center mb-4 min-h-[248px]",children:tr?(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center text-zinc-400 gap-2",children:[(0,n.jsx)(l.Z,{className:"animate-spin text-zinc-300",size:24}),(0,n.jsx)("span",{className:"text-sm",children:"ë§í¬ ìì± ì¤..."})]}):te?(0,n.jsx)(b.t,{value:te,size:200,level:"H"}):null}),(0,n.jsx)(v.A,{value:te,pending:tr}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsxs)("button",{onClick:()=>{let e=document.querySelector("#activity-qr-code svg");if(e){let t=new XMLSerializer().serializeToString(e),r=document.createElement("canvas"),n=r.getContext("2d"),a=new Image;a.onload=()=>{r.width=a.width,r.height=a.height,null==n||n.drawImage(a,0,0);let e=document.createElement("a");e.download="activity-qr-code.png",e.href=r.toDataURL("image/png"),e.click()},a.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t)))}},className:"flex-1 flex items-center justify-center gap-2 py-2.5 bg-white/10 hover:bg-white/20 text-white rounded-lg transition-colors text-sm font-medium",children:[(0,n.jsx)(d.Z,{size:16}),"ë¤ì´ë¡ë"]}),(0,n.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-white/10 hover:bg-white/20 text-white rounded-lg transition-colors text-sm font-medium",children:[(0,n.jsx)(h.Z,{size:16}),"ì¸ì"]})]})]})}),en&&(0,n.jsx)(O,{activity:en,studentLabel:(t=>{let r=e.find(e=>e.id===t);if(!r)return;let n=[];return r.grade&&r.classNum&&n.push("".concat(r.grade,"íë
").concat(r.classNum,"ë°")),r.number&&n.push("".concat(r.number,"ë²")),n.push(r.name),n.join(" ")})(en.studentId),onSave:ts,onDelete:tl,onClose:()=>ea(null)}),e7&&(0,n.jsx)(C.Z,{isOpen:e3,onClose:()=>e4(!1),currentBalance:null!=e2?e2:0,onChargeComplete:e=>{e5(e),e4(!1)}})]})}},16348:function(e,t,r){"use strict";r.d(t,{We:function(){return h},ZJ:function(){return m},s9:function(){return f}});var n=r(11713),a=r(29827),i=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 h(e){var t,r,a,i;let{data:u,status:h}=(0,c.kP)(),f=(0,l.XC)(),p=(0,x.Dv)(),b=(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(b.current=u.user.id),(0,n.a)({queryKey:[...m.lists(),{userId:p?"guest":null!==(i=null==u?void 0:null===(a=u.user)||void 0===a?void 0:a.id)&&void 0!==i?i:b.current,...e}],enabled:"loading"!==h,queryFn:async()=>{if(p)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||{},f);if(t.success&&t.data)return t.data;throw Error(t.error||"Failed to load activities")}})}function f(){let e=(0,a.NL)(),t=(0,l.XC)(),{showToast:r}=(0,u.p)(),n=(0,x.Dv)();return{upsertActivity:(0,i.D)({mutationFn:async e=>{var r;if(!(null===(r=e.activityName)||void 0===r?void 0:r.trim()))return null;if(n){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 a=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(!a.success)throw Error(a.error||"Failed to save activity");return a.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,n,a)=>{(null==a?void 0:a.previousActivities)&&e.setQueryData(m.lists(),a.previousActivities),r((null==t?void 0:t.message)||"íë 기ë¡ì ì ì¥íì§ ëª»íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.","error")},onSettled:()=>{e.invalidateQueries({queryKey:m.lists()})}}),deleteActivity:(0,i.D)({mutationFn:async e=>{if(n)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,n,a)=>{(null==a?void 0:a.previousActivities)&&e.setQueryData(m.lists(),a.previousActivities),r((null==t?void 0:t.message)||"íë 기ë¡ì ìì íì§ ëª»íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.","error")},onSettled:()=>{e.invalidateQueries({queryKey:m.lists()})}}),generateDraft:(0,i.D)({mutationFn:async e=>{if(n)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}}})}}},82374:function(e,t,r){"use strict";r.d(t,{H:function(){return n}});let n=!0},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.