1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2207],{88893:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Pen",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}]])},82431:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},72173:function(e,t,n){n.d(t,{R:function(){return d}});var r=n(57437),i=n(2265);let a=(0,n(79205).Z)("CloudOff",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]);var l=n(82431),s=n(51817),o=n(30401),c=n(93448);function d(e){let{isSaving:t,hasUnsavedChanges:n,error:d=null,errorDetail:u,onRetry:x,className:h}=e,f=t||n,[m,p]=(0,i.useState)(!1),g=(0,i.useRef)(!1);(0,i.useEffect)(()=>{f?g.current=!0:g.current&&(g.current=!1,d||p(!0))},[f,d]);let b=(0,c.cn)("flex items-center gap-1.5 text-xs font-medium select-none transition-opacity duration-300",h);return d?(0,r.jsxs)("div",{role:"status","aria-live":"assertive",title:d,className:(0,c.cn)(b,u&&"max-w-52 flex-wrap"),children:[(0,r.jsxs)("span",{className:"flex items-center gap-1.5 text-red-600 dark:text-red-400",children:[(0,r.jsx)(a,{size:13,strokeWidth:2.25,"aria-hidden":"true"}),"ì ì¥ ì ë¨"]}),x&&(0,r.jsxs)("button",{type:"button",onClick:x,className:"inline-flex items-center gap-1 rounded-md px-1.5 py-0.5 text-red-700 dark:text-red-300 hover:bg-red-50 dark:hover:bg-red-500/10 transition-colors",children:[(0,r.jsx)(l.Z,{size:11,strokeWidth:2.5,"aria-hidden":"true"}),"ë¤ì ìë"]}),u&&(0,r.jsx)("span",{className:"basis-full text-[11px] leading-snug text-red-600 dark:text-red-300",children:u})]}):(0,r.jsx)("div",{role:"status","aria-live":"polite",className:b,children:f?(0,r.jsxs)("span",{className:"flex items-center gap-1.5 text-zinc-600 dark:text-zinc-300",children:[(0,r.jsx)(s.Z,{size:13,className:"animate-spin",strokeWidth:2.25,"aria-hidden":"true"}),"ì ì¥ ì¤"]}):m?(0,r.jsxs)("span",{className:"flex items-center gap-1.5 text-zinc-600 dark:text-zinc-300",children:[(0,r.jsx)(o.Z,{size:13,className:"text-emerald-600 dark:text-emerald-400",strokeWidth:2.5,"aria-hidden":"true"}),"ì ì¥ë¨"]}):(0,r.jsxs)("span",{className:"flex items-center gap-1.5 text-zinc-500 dark:text-zinc-400",children:[(0,r.jsx)("span",{"aria-hidden":"true",className:"inline-block w-1.5 h-1.5 rounded-full bg-zinc-400 dark:bg-zinc-500"}),"ìë ì ì¥"]})})}},93973:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(57437),i=n(73247),a=n(99388),l=n(99397),s=n(93448);function o(e){let{value:t,onChange:n,placeholder:o,searchLabel:c,actionLabel:d,onAction:u}=e;return(0,r.jsx)("div",{className:"fixed mobile-floating-bar left-0 right-0 px-6 flex justify-center z-40 pointer-events-none",children:(0,r.jsxs)("div",{className:"w-full max-w-[400px] flex gap-2 pointer-events-auto group",children:[(0,r.jsxs)("div",{className:(0,s.cn)("relative flex-1 flex items-center h-[48px] px-4","bg-white/80 dark:bg-zinc-900/80 backdrop-blur-xl border border-zinc-200/80 dark:border-white/10 rounded-full","shadow-[0_4px_12px_rgba(0,0,0,0.03)] dark:shadow-[0_4px_12px_rgba(0,0,0,0.3)]","transition duration-200 group-focus-within:border-zinc-300 dark:group-focus-within:border-zinc-600 group-focus-within:shadow-[0_4px_16px_rgba(0,0,0,0.06)]"),children:[(0,r.jsx)("div",{className:"shrink-0 text-zinc-400 dark:text-zinc-500",children:(0,r.jsx)(i.Z,{size:20,strokeWidth:1.5})}),(0,r.jsx)("input",{type:"text","aria-label":c,placeholder:o,value:t,onChange:e=>n(e.target.value),className:(0,s.cn)("w-full h-full bg-transparent border-none outline-none","pl-3 pr-1 text-[16px] font-normal","text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 dark:placeholder:text-zinc-500")}),t&&(0,r.jsx)("button",{type:"button","aria-label":"ê²ìì´ ì§ì°ê¸°",onClick:()=>n(""),className:"shrink-0 p-1.5 -mr-1 text-zinc-400 dark:text-zinc-500 active:text-zinc-600 dark:active:text-zinc-300 active:scale-95 transition",children:(0,r.jsx)(a.Z,{size:18,strokeWidth:1.75})})]}),(0,r.jsx)("button",{type:"button","aria-label":d,onClick:u,className:(0,s.cn)("w-[48px] h-[48px] shrink-0 flex items-center justify-center rounded-full","bg-white/80 dark:bg-zinc-900/80 backdrop-blur-xl border border-zinc-200/80 dark:border-white/10","shadow-[0_4px_12px_rgba(0,0,0,0.03)] dark:shadow-[0_4px_12px_rgba(0,0,0,0.3)]","text-zinc-400 dark:text-zinc-300 active:scale-90 transition"),children:(0,r.jsx)(l.Z,{size:22,strokeWidth:1.5})})]})})}},53834:function(e,t,n){n.d(t,{W:function(){return o}});var r=n(57437),i=n(29),a=n.n(i),l=n(93448),s=n(43232);let o=e=>{let{size:t=32,speed:n=1.5,className:i="",withPulse:o=!1}=e;return(0,r.jsxs)("div",{style:{animation:"spin ".concat(n,"s linear infinite").concat(o?", pulse 2s ease-in-out infinite":"")},className:"jsx-ba9b38e61bef3f8b "+((0,l.cn)("brand-logo-loader inl
1ine-flex items-center justify-center",i)||""),children:[(0,r.jsx)(s.O,{size:t}),(0,r.jsx)(a(),{id:"ba9b38e61bef3f8b",children:"@-webkit-keyframes spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes spin{from{-moz-transform:rotate(0deg);transform:rotate(0deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes spin{from{-o-transform:rotate(0deg);transform:rotate(0deg)}to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@-moz-keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@-o-keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}"})]})}},72207:function(e,t,n){n.r(t),n.d(t,{default:function(){return Q}});var r=n(57437),i=n(90982),a=n(28691),l=n(78529),s=n(2265),o=n(73247),c=n(32489),d=n(99397),u=n(95805),x=n(41905),h=n(79205);let f=(0,h.Z)("Pin",[["line",{x1:"12",x2:"12",y1:"17",y2:"22",key:"1jrz49"}],["path",{d:"M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z",key:"13yl11"}]]),m=(0,h.Z)("PinOff",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["line",{x1:"12",x2:"12",y1:"17",y2:"22",key:"1jrz49"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17h12",key:"13x2n8"}],["path",{d:"M15 9.34V6h1a2 2 0 0 0 0-4H7.89",key:"reo3ki"}]]);var p=n(88893),g=n(18930),b=n(30166),v=n(64954),w=n(93448),k=n(67920),y=n(83008),j=n(16481);let z=e=>{try{return JSON.stringify(e)}catch(e){return null}};function N(e){let{storageKey:t,initialData:n,onSave:r,debounceMs:i=1e3,enableLocalStorage:a=!0}=e,l="autosave:".concat(t),o=(0,s.useRef)(r);(0,s.useEffect)(()=>{o.current=r},[r]);
1let c=(0,s.useState)(()=>{if(!a)return{data:n,recovered:!1,matchesServer:!1};try{let e=localStorage.getItem(l);if(e){let t=JSON.parse(e);if(t&&Date.now()-t.timestamp<864e5){let e=t.data,r=z(e);return{data:e,recovered:!0,matchesServer:null!==r&&r===z(n)}}}}catch(e){}return{data:n,recovered:!1,matchesServer:!1}})[0],d=c.recovered&&c.matchesServer,[u,x]=(0,s.useState)(c.data),[h]=(0,s.useState)(c.recovered&&!d),[f,m]=(0,s.useState)(!1),[p,g]=(0,s.useState)(null),[b,v]=(0,s.useState)(c.recovered&&!d),w=(0,s.useRef)(null),k=(0,s.useRef)(!0);(0,s.useEffect)(()=>(k.current=!0,()=>{k.current=!1}),[]);let y=(0,s.useRef)(u);y.current=u;let N=(0,s.useRef)(b);N.current=b;let C=(0,s.useRef)(!c.recovered||d?z(c.data):null);(0,s.useEffect)(()=>{if(d&&a)try{localStorage.removeItem(l)}catch(e){}},[]);let S=(0,s.useCallback)(async()=>{let e=y.current,t=z(e);if(null!==t&&t===C.current){if(k.current&&(v(!1),g(null)),a)try{localStorage.removeItem(l)}catch(e){}return!0}k.current&&(m(!0),g(null));let n=!1;for(let t=0;t<3&&!n;t++){t>0&&await new Promise(e=>setTimeout(e,2e3));try{n=await o.current(e)}catch(e){console.warn("[useAutoSave] Save attempt failed:",e)}}if(n&&(C.current=t),k.current){m(!1);let e=!1;try{e=a&&!!localStorage.getItem(l)}catch(e){}if(g(n?null:e?"ì ì¥ ì¤í¨ \xb7 ì´ ê¸°ê¸°ì ì´ì ë³´ê´ ì¤":"ì ì¥ ì¤í¨ \xb7 íë©´ì ë«ì§ ë§ê³ ë¤ì ìëí´ ì£¼ì¸ì."),n&&z(y.current)===t&&(v(!1),a))try{localStorage.removeItem(l)}catch(e){}}return n},[a,l]),E=(0,s.useRef)((0,j.c)()),P=(0,s.useCallback)(()=>E.current(S),[S]);(0,s.useEffect)(()=>{if(b){if(a)try{localStorage.setItem(l,JSON.stringify({data:u,timestamp:Date.now()}))}catch(e){}w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{P()},i)}},[u,b,i,a,l,P]);let R=(0,s.useCallback)(async()=>{w.current&&clearTimeout(w.current),N.current&&await P()},[P]);(0,s.useEffect)(()=>{let e=()=>{"hidden"===document.visibilityState&&R()};return document.addEventListener("visibilitychange",e),window.addEventListener("pagehide",R),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("pagehide",R)}},[R]);let D=(0,s.useCallback)(e=>{let t="function"==typeof e?e(y.current):e;y.current=t,N.current=!0,x(t),v(!0)},[]),I=(0,s.useCallback)(()=>{if(a)try{localStorage.removeItem(l)}catch(e){}},[l,a]);return{data:u,setData:D,syncExternal:(0,s.useCallback)(e=>{if(x(e),C.current=z(e),a)try{localStorage.removeItem(l)}catch(e){}},[a,l]),isSaving:f,saveError:p,hasUnsavedChanges:b,flushSave:R,clearLocalDraft:I,wasRecovered:h}}function C(e){let{latest:t,current:n,initialUpdatedAt:r,hasUnsavedChanges:i,isSaving:a,applyExternal:l,containerRef:o}=e,[c,d]=(0,s.useState)(0),u=(0,s.useRef)(r),x=(0,s.useRef)(t);x.current=t;let h=(0,s.useRef)(n);h.current=n;let f=(0,s.useRef)(i);f.current=i;let m=(0,s.useRef)(a);m.current=a;let p=(0,s.useRef)(l);p.current=l;let g=(0,s.useCallback)(()=>{let e=x.current;if(!(null==e?void 0:e.updatedAt)||e.updatedAt===u.current)return;let t=h.current;if(e.content===t.content&&e.title===t.title){u.current=e.updatedAt;return}if(f.current||m.current)return;let n=o.current;n&&n.contains(document.activeElement)||(u.current=e.updatedAt,p.current({...t,title:e.title,content:e.content}),d(e=>e+1))},[o]);return(0,s.useEffect)(()=>{g()},[null==t?void 0:t.updatedAt,g]),c}var S=n(88507),E=n(59717),P=n(66109),R=n(27526),D=n(54696),I=n(72173),A=n(86267),T=n(58819),W=n(98319);function M(e){return e?e.replace(/<\/(p|div|h[1-6]|li|blockquote|tr|figcaption)>/gi," ").replace(/<br\s*\/?>/gi," ").replace(/<[^>]+>/g,"").replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/�*39;|'/gi,"'").replace(/\s+/g," ").trim():""}function Z(e,t,n){let r=Math.max(0,t-32),i=Math.min(e.length,t+n+32),a=e.slice(r,i);return r>0&&(a="â¦"+a),i<e.length&&(a+="â¦"),a}function L(e,t,n){var r;let i=t.trim().toLowerCase();if(!i)return[];let a=null!==(r=null==n?void 0:n.getBody)&&void 0!==r?r:e=>M(e.content),l=[],s=[];for(let t of e){let e=t.title.toLowerCase().includes(i),n=a(t),r=n.toLowerCase().indexOf(i);e?l.push({note:t,titleMatch:!0,snippet:r>=0?Z(n,r,i.length):null}):r>=0&&s.push({note:t,titleMatch:!1,snippet:Z(n,r,i.length)})}return[...l,...s]}function F(e){let{text:t,query:n,className:i}=e,a=function(e,t){let n=t.trim().toLowerCase();if(!n||!e)return[{text:e,hit:!1}];let r=e.toLowerCase(),i=[],a=0;for(;a<e.length;){let t=r.indexOf(n,a);if(t<0){i.push({text:e.slice(a),hit:!1});break}t>a&&i.push({text:e.slice(a,t),hit:!1}),i.push({text:e.slice(t,t+n.length),hit:!0}),a=t+n.length}return i}
1(t,n);return(0,r.jsx)("span",{className:i,children:a.map((e,t)=>e.hit?(0,r.jsx)("mark",{className:(0,w.cn)("rounded-[2px] px-[1px] text-inherit","bg-amber-200/70 dark:bg-amber-400/25"),children:e.text},t):(0,r.jsx)("span",{children:e.text},t))})}var X=n(33145),B=n(53834),O=n(54292),_=n(93973),q=n(21751);let K=(0,b.default)(()=>Promise.all([n.e(3572),n.e(7902),n.e(1597),n.e(7882)]).then(n.bind(n,87882)),{loadableGenerated:{webpack:()=>[87882]},ssr:!1,loading:()=>(0,r.jsx)(O.r,{label:"ë
¸í¸ í¸ì§ê¸°ë¥¼ ì¤ë¹íê³ ìì´ì"})});function V(e){let{notes:t,isLoadingList:i,onCreateNote:a,onTitleChange:l,onPersisted:o,onDeleteNote:d,onTogglePin:x}=e,[h,f]=(0,s.useState)(null),[m,p]=(0,s.useState)(""),[g,b]=(0,s.useState)(!1),[v,w]=(0,s.useState)(""),[j,z]=(0,s.useState)(!1),N=(0,s.useRef)(!1),C=(0,k.XC)(),[S,E]=(0,s.useState)(!1),[P,R]=(0,s.useState)([]),[I,A]=(0,s.useState)([]),[T,W]=(0,s.useState)(null);(0,s.useEffect)(()=>{h&&!t.some(e=>e.id===h)&&f(null)},[t,h]);let Z=(0,s.useRef)(new Map),F=(0,s.useCallback)(e=>{let t=Z.current.get(e.id);if(t&&t.content===e.content)return t.text;let n=M(e.content);return Z.current.set(e.id,{content:e.content,text:n}),n},[]),K=m.trim(),V=K.length>0,U=V?L(t,K,{getBody:F}):[],G=t.filter(e=>e.isPinned),J=t.filter(e=>!e.isPinned),Q=t.find(e=>e.id===h);(0,q.rr)(h?(null==Q?void 0:Q.title)||"ë
¸í¸ ìì¸":null,(0,s.useCallback)(()=>f(null),[]));let $=(0,D.Dv)(),ee=(0,s.useCallback)(async e=>{if(W(e),E(!0),$){if(0===P.length){let{getGuestData:e}=await n.e(6214).then(n.bind(n,96214)),t=await e();R(t.students||[]),A(Array.from(new Set((t.students||[]).map(e=>e.homeClassId||"ë´ì íê¸"))))}return}if(0===P.length){let e=await (0,y.X)("listStudents",{},C);e.success&&e.data&&R(e.data)}let t=await (0,y.X)("getClasses",{},C);t.success&&t.data&&A(t.data)},[C,P.length,$]),et=(0,s.useCallback)(e=>{if(!T||!P.length)return;let t=P.filter(t=>{var n;return t.homeClassId===e||(null===(n=t.customClassIds)||void 0===n?void 0:n.includes(e))});t.sort((e,t)=>e.number-t.number);let n='<table class="tiptap-table"><thead><tr><th style="text-align: center; font-weight: 600">íë
</th><th style="text-align: center; font-weight: 600">ë°</th><th style="text-align: center; font-weight: 600">ë²í¸</th><th style="text-align: center; font-weight: 600">ì´ë¦</th><th style="text-align: center; font-weight: 600">ë¹ê³ </th></tr></thead><tbody>';t.forEach(e=>{n+='<tr><td style="text-align: center">'.concat(e.grade||"",'</td><td style="text-align: center">').concat(e.classNum||"",'</td><td style="text-align: center">').concat(e.number,'</td><td style="text-align: center">').concat(e.name,"</td><td></td></tr>")}),n+="</tbody></table><p></p>",T.chain().focus().insertContent(n).run(),E(!1),W(null)},[T,P]),en=async()=>{if(!N.current){N.current=!0,z(!0);try{let e=v.trim()||"ì 목 ìì",t=await a(e);t&&f(t)}finally{b(!1),w(""),z(!1),N.current=!1}}};return h&&Q?(0,r.jsxs)("div",{className:"flex flex-col h-full relative",style:{backgroundColor:"#FBFBF9"},children:[(0,r.jsx)("div",{className:"flex-1 overflow-hidden flex flex-col",children:(0,r.jsx)(Y,{id:h,initialData:Q,latest:Q,onTitleChange:l,onPersisted:o,onImportRoster:ee},h)}),S&&(0,r.jsx)("div",{className:"absolute inset-0 z-[60] flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,r.jsxs)("div",{className:"bg-white dark:bg-[#18181b] w-full max-w-sm rounded-xl shadow-2xl border border-zinc-200 dark:border-white/10 overflow-hidden flex flex-col max-h-[80%]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-zinc-100 dark:border-white/10",children:[(0,r.jsxs)("h3",{className:"font-bold text-zinc-900 dark:text-white flex items-center gap-2 text-sm",children:[(0,r.jsx)(u.Z,{size:15}),"ìì
ëª
ë ¬í ê°ì ¸ì¤ê¸°"]}),(0,r.jsx)("button",{"aria-label":"ë«ê¸°",onClick:()=>E(!1),className:"p-1 text-zinc-400 hover:text-zinc-600 dark:text-zinc-500 dark:hover:text-zinc-300 rounded-md",children:(0,r.jsx)(c.Z,{size:16})})]}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:0===P.length?(0,r.jsxs)("div",{className:"py-8 text-center text-sm text-zinc-400 dark:text-zinc-500 flex flex-col items-center gap-2",children:[(0,r.jsx)(B.W,{size:24}),(0,r.jsx)("span",{children:"íì ë°ì´í°ë¥¼ ë¶ë¬ì¤ë ì¤..."})]}):0===I.length?(0,r.jsx)("div",{className:"py-8 text-center text-sm text-zinc-400 dark:text-zinc-500",children:"ë±ë¡ë íì/íê¸ì´ ììµëë¤."}):(0,r.jsx)("div",{className:"grid gap-1",children:I.map(e=>(0,r.jsxs)("button",{onClick:()=>et(e),className:"flex items-center justify-between w-full px-4 py-3 text-left bg-zinc-50 dark:bg-white/5 hover:bg-zinc-100 dark:hover:bg-white/10 rounded-lg transition-colors active:scale-[0.98]",children:[(0,r.jsx)("span",{className:"font-medium text-zinc-800 dark:text-zinc-200 text-sm",children:e}),(0,r.jsxs)("span",{className:"text-xs text-zinc-400 dark:text-zinc-500",children:[P.filter(t=>{var n;return t.homeClassId===e||(null===(n=t.customClassIds)||void 0===n?void 0:n.includes(e))}).length,"ëª
"]})]},e))})})]})})]}):(0,r.jsxs)("div",{className:"flex flex-col h-full relative overflow-y-auto scroll-smooth bg-[#FBFBF9] dark:bg-zinc-950",children:[(0,r.jsx)("div",{className:"flex-1 px-4 mobile-scroll-with-floating pt-2",children:i?(0,r.jsx)(O.r,{label:"ì
무 ë
¸í¸ë¥¼ ë¶ë¬ì¤ê³ ìì´ì"}):(0,r.jsxs)(r.Fragment,{children:[g&&(0,r.jsx)("div",{className:"mb-2",children:(0,r.jsx)("form",{onSubmit:e=>{e.preventDefault(),en()},children:(0,r.jsx)("input",{autoFocus:!0,placeholder:"ì ë
¸í¸ ì 목",value:v,onCh
1ange:e=>w(e.target.value),className:"w-full h-10 bg-white dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 dark:placeholder:text-zinc-500 rounded-xl px-3 text-[16px] focus:outline-none focus:border-blue-400 shadow-sm",onBlur:()=>{v.trim()?en():b(!1)},onKeyDown:e=>{"Escape"===e.key&&b(!1)}})})}),V?0===U.length?(0,r.jsxs)("div",{className:"text-center py-16 text-zinc-400 text-sm break-keep",children:["â",K,"â ê²ì ê²°ê³¼ê° ìì´ì."]}):(0,r.jsx)("div",{className:"space-y-[2px]",children:U.map(e=>(0,r.jsx)(H,{note:e.note,query:K,snippet:e.snippet,onSelect:()=>f(e.note.id),onTogglePin:x,onDelete:d},e.note.id))}):0!==t.length||g?(0,r.jsxs)("div",{className:"space-y-[2px]",children:[G.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"text-[11px] font-semibold text-zinc-400 px-3 pt-3 pb-1 uppercase tracking-wide",children:"ê³ ì ë¨"}),G.map(e=>(0,r.jsx)(H,{note:e,onSelect:()=>f(e.id),onTogglePin:x,onDelete:d},e.id))]}),J.length>0&&(0,r.jsxs)(r.Fragment,{children:[G.length>0&&(0,r.jsx)("div",{className:"text-[11px] font-semibold text-zinc-400 px-3 pt-4 pb-1 uppercase tracking-wide",children:"ë
¸í¸"}),J.map(e=>(0,r.jsx)(H,{note:e,onSelect:()=>f(e.id),onTogglePin:x,onDelete:d},e.id))]})]}):(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[(0,r.jsx)(X.default,{src:"/icons/empty-search.svg",alt:"",width:56,height:56,className:"w-14 h-14 object-contain mb-3.5",unoptimized:!0}),(0,r.jsx)("h3",{className:"text-zinc-900 dark:text-zinc-100 font-bold mb-1",children:"ìì±ë ë
¸í¸ê° ììµëë¤"}),(0,r.jsx)("p",{className:"text-zinc-500 dark:text-zinc-400 text-[13px] whitespace-pre-line",children:"기ìµí´ì¼ í ë´ì©ì´ë í ì¼ì\níë¨ + ë²í¼ì ëë¬ ê¸°ë¡í´ë³´ì¸ì."})]})]})}),!h&&(0,r.jsx)(_.Z,{value:m,onChange:p,placeholder:"ë
¸í¸ ê²ì...",searchLabel:"ë
¸í¸ ê²ì",actionLabel:"ì ë©ëª¨",onAction:()=>b(!0)})]})}function H(e){let{note:t,query:n,snippet:i,onSelect:a,onTogglePin:l,onDelete:s}=e,o=(()=>{try{return new Date(t.updatedAt).toLocaleDateString("ko-KR",{month:"short",day:"numeric"})}catch(e){return""}})();return(0,r.jsxs)("div",{role:"button",tabIndex:0,"aria-label":"ë
¸í¸ ì´ê¸°: ".concat(t.title||"ì 목 ìì"),onClick:a,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a())},className:"w-full flex items-center gap-3 px-3 py-[10px] rounded-2xl transition text-left active:scale-[0.985] active:bg-zinc-100/60 dark:active:bg-zinc-800/60 cursor-pointer",children:[t.isPinned&&(0,r.jsx)(f,{size:11,className:"text-yellow-500 shrink-0",fill:"currentColor"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-[14px] font-medium text-zinc-900 dark:text-zinc-100 truncate",children:n?(0,r.jsx)(F,{text:t.title||"ì 목 ìì",query:n}):t.title||"ì 목 ìì"}),i?(0,r.jsx)("div",{className:"text-[12px] text-zinc-400 dark:text-zinc-500 mt-0.5 line-clamp-1 break-keep",children:(0,r.jsx)(F,{text:i,query:n||""})}):o?(0,r.jsx)("div",{className:"text-[11px] text-zinc-400 dark:text-zinc-500 mt-0.5",children:o}):null]}),(0,r.jsxs)("div",{className:"flex items-center gap-1 shrink-0",onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("button",{"aria-label":t.isPinned?"ê³ ì í´ì ":"ê³ ì ",onClick:e=>{navigator.vibrate&&navigator.vibrate(50),l(e,t.id,t.isPinned)},className:(0,w.cn)("flex items-center justify-center w-11 h-11 rounded-lg transition-colors active:bg-zinc-100 dark:active:bg-zinc-800",t.isPinned?"text-yellow-500":"text-zinc-300 hover:text-zinc-500 dark:text-zinc-500 dark:hover:text-zinc-400"),children:(0,r.jsx)(f,{size:16,fill:t.isPinned?"currentColor":"none"})}),(0,r.jsx)("button",{"aria-label":"ìì ",onClick:e=>s(e,t.id),className:"flex items-center justify-center w-11 h-11 rounded-lg text-zinc-300 dark:text-zinc-500 hover:text-red-400 active:bg-zinc-100 dark:active:bg-zinc-800 transition-colors",children:(0,r.jsx)(g.Z,{size:16})})]})]})}function Y(e){let{id:t,initialData:i,latest:a,onTitleChange:l,onPersisted:o,onImportRoster:c}=e,d=(0,D.Dv)(),u=(0,k.XC)(),x=(0,s.useRef)(i.title||""),h=(0,s.useRef)(null),{data:f,setData:m,syncExternal:p,hasUnsavedChanges:g,isSaving:b,flushSave:v,saveError:w}=N({storageKey:"work-note-v2-".concat(t),initialData:i,onSave:async e=>{var r,i;if(!t)return!1;let a=(null===(r=e.title)||void 0===r?void 0:r.trim())?e.title:"ì 목 ìì",s=e.content||"";if(d){let{getGuestWorkNotes:e,saveGuestWorkNotes:r}=await n.e(6214).then(n.bind(n,96214)),i=await e(),c=new Date().toISOString(),d=i.map(e=>
1e.id===t?{...e,title:a,content:s,updatedAt:c}:e);return await r(d),a!==x.current&&(x.current=a,l(t,a)),null==o||o(t,{title:a,content:s,updatedAt:c}),!0}let c=await (0,y.X)("updateWorkNote",{id:t,title:a,content:s},u);if(c.success){a!==x.current&&(x.current=a,l(t,a));let e=null===(i=c.data)||void 0===i?void 0:i.updatedAt;null==o||o(t,e?{title:a,content:s,updatedAt:e}:{title:a,content:s})}return c.success},debounceMs:2500}),j=(0,s.useCallback)(e=>{m(t=>({...t,content:e}))},[m]),z=C({latest:a,current:f,initialUpdatedAt:i.updatedAt,hasUnsavedChanges:g,isSaving:b,applyExternal:p,containerRef:h}),S=(0,s.useRef)(v);return(0,s.useEffect)(()=>{S.current=v},[v]),(0,s.useEffect)(()=>()=>{S.current()},[]),(0,r.jsxs)("div",{ref:h,className:"flex flex-col h-full",children:[(0,r.jsxs)("div",{className:"px-5 pt-4 pb-3 border-b border-zinc-100/80 dark:border-zinc-800 bg-[#FBFBF9] dark:bg-zinc-950 flex items-center gap-3",children:[(0,r.jsx)("input",{type:"text",value:f.title||"",onChange:e=>m(t=>({...t,title:e.target.value})),onBlur:()=>v(),placeholder:"ë
¸í¸ ì 목",className:"text-xl font-bold bg-transparent border-none text-zinc-900 dark:text-zinc-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 flex-1 min-w-0 placeholder-zinc-300 dark:placeholder-zinc-600"}),(0,r.jsx)(I.R,{isSaving:b,hasUnsavedChanges:g,error:w,errorDetail:null!=w?w:void 0,onRetry:()=>void v(),className:"shrink-0"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-hidden mobile-note-wrapper",children:(0,r.jsx)(K,{content:f.content||"",onChange:j,onBlur:()=>v(),placeholder:"ë´ì©ì ì
ë ¥íì¸ì...",onImportRoster:c,isMobile:!0},z)})]})}let U=(0,b.default)(()=>Promise.all([n.e(3572),n.e(7902),n.e(1597),n.e(7882)]).then(n.bind(n,87882)),{loadableGenerated:{webpack:()=>[87882]},ssr:!1}),G=e=>[...e].sort((e,t)=>(t.isPinned?1:0)-(e.isPinned?1:0)||e.displayOrder-t.displayOrder||new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime()),J=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r.id!==i.id||r.title!==i.title||r.content!==i.content||r.isPinned!==i.isPinned||r.displayOrder!==i.displayOrder||r.updatedAt!==i.updatedAt)return!1}return!0};function Q(){let{status:e}=(0,R.kP)(),t=(0,D.Dv)(),x=(0,k.XC)(),h=(0,T.d)(),{showToast:f,removeToast:m}=(0,W.pm)(),p=(0,A.X)(e=>e.targetNoteId),g=(0,A.X)(e=>e.clearTargetNoteId),b=(0,A.X)(e=>e.removeLinkedNote),[w,j]=(0,s.useState)([]),[z,N]=(0,s.useState)(!0),[C,E]=(0,s.useState)(null),[P,I]=(0,s.use
1State)(!1),[Z,F]=(0,s.useState)(null),[X,B]=(0,s.useState)(""),[O,_]=(0,s.useState)(!1),[q,K]=(0,s.useState)(null),[H,Y]=(0,s.useState)(""),[U,Q]=(0,s.useState)(!1),[en,er]=(0,s.useState)(!1),[ei,ea]=(0,s.useState)(!1),[el,es]=(0,s.useState)([]),[eo,ec]=(0,s.useState)([]),[ed,eu]=(0,s.useState)(null),ex=(0,s.useRef)(new Map),eh=(0,s.useRef)(new Set),ef=(0,s.useCallback)(e=>e.filter(e=>!ex.current.has(e.id)&&!eh.current.has(e.id)),[]),em=(0,s.useRef)(0),ep=(0,s.useRef)(!1);(0,s.useEffect)(()=>()=>{em.current++},[]);let eg=(0,s.useCallback)(async()=>{if("loading"===e)return;let r=++em.current;ep.current=!0,N(!0),E(null);try{if(t){let{getGuestWorkNotes:e}=await n.e(6214).then(n.bind(n,96214)),t=await e();if(r!==em.current)return;j(ef(t))}else{let e=await (0,a.W)(()=>(0,y.X)("getWorkNotes",{},x));if(r!==em.current)return;if(e.success&&e.data)j(ef(e.data));else throw Error(e.error)}}catch(e){console.error("[WorkNoteView] Failed to load work notes:",e),r===em.current&&E("ì
무 ë
¸í¸ë¥¼ ë¶ë¬ì¤ì§ 못íì´ì. 기존 ë´ì©ì ê·¸ëë¡ ì ì§íìµëë¤.")}finally{r===em.current&&(ep.current=!1,N(!1))}},[x,t,e,ef]);(0,s.useEffect)(()=>{("unauthenticated"!==e||t)&&eg()},[eg,e,t]);let eb=(0,s.useRef)(0),ev=(0,s.useCallback)(()=>{eb.current=Date.now()},[]);(0,s.useEffect)(()=>{if(t)return;let e=async()=>{if("visible"!==document.visibilityState||ep.current||Date.now()-eb.current<3e3)return;let e=em.current;try{let t=await (0,a.W)(()=>(0,y.X)("getWorkNotes",{},x));if(e!==em.current)return;if(t.success&&t.data){let e=ef(t.data);j(t=>J(t,e)?t:e)}}catch(e){console.warn("[WorkNoteView] silent refresh failed:",e)}},n=setInterval(e,12e3),r=()=>{"visible"===document.visibilityState&&e()};return document.addEventListener("visibilitychange",r),()=>{clearInterval(n),document.removeEventListener("visibilitychange",r)}},[x,t,ef]),(0,s.useEffect)(()=>{!p||z||(w.length>0?(w.some(e=>e.id===p)&&(F(p),_(!1)),g()):z||g())},[p,w,z,g]),(0,s.useEffect)(()=>{z||"loading"===e||(h||Z||!(w.length>0)||O||p||F(w[0].id),p||I(!0))},[w,Z,z,e,O,p,h]),(0,s.useEffect)(()=>{!Z||z||w.some(e=>e.id===Z)||F(null)},[w,Z,z]);let ew=()=>{B(""),_(!0),F(null)},ek=e=>{Z!==e&&(F(e),_(!1))},ey=(0,s.useRef)({actionContext:x,markLocalMutation:ev,removeLinkedNote:b,showToast:f});ey.current={actionContext:x,markLocalMutation:ev,removeLinkedNote:b,showToast:f};let ej=(0,s.useCallback)(e=>{let t=ex.current.get(e);if(!t)return;clearTimeout(t.timer),m(t.toastId),ex.current.delete(e);let{actionContext:n,markLocalMutation:r,removeLinkedNote:i,showToast:a}=ey.current;r(),eh.current.add(e);let l=()=>{eh.current.delete(e),j(n=>n.some(t=>t.id===e)?n:G([...n,t.note])),a("ë
¸í¸ë¥¼ ìì íì§ ëª»íì´ì. ë¤ì ìëí´ ì£¼ì¸ì.","error")};(0,y.X)("deleteWorkNote",{id:e},n).then(t=>{t.success?i(e):l()}).catch(l)},[m]),ez=(0,s.useCallback)(e=>{let t=ex.current.get(e);t&&(clearTimeout(t.timer),m(t.toastId),ex.current.delete(e),ey.current.markLocalMutation(),j(n=>n.some(t=>t.id===e)?n:G([...n,t.note])))},[m]);(0,s.useEffect)(()=>{let e=ex.current,t=eh.current;return()=>{e.forEach((e,n)=>{clearTimeout(e.timer),m(e.toastId),t.add(n),(0,y.X)("deleteWorkNote",{id:n},ey.current.actionContext).then(e=>{e.success?ey.current.removeLinkedNote(n):ey.current.showToast("ë
¸í¸ë¥¼ ìì íì§ ëª»íì´ì. ë
¸í¸ 목ë¡ìì ë¤ì ìëí´ ì£¼ì¸ì.","error")}).catch(()=>ey.current.showToast("ë
¸í¸ë¥¼ ìì íì§ ëª»íì´ì. ë
¸í¸ 목ë¡ìì ë¤ì ìëí´ ì£¼ì¸ì.","error"))}),e.clear()}},[m]);let eN=W.z6,eC=async(e,r)=>{e.stopPropagation();let i=w.find(e=>e.id===r);if(!i)return;if(ev(),t){let{getGuestWorkNotes:e,saveGuestWorkNotes:t}=await n.e(6214).then(n.bind(n,96214)),a=await e();await t(a.filter(e=>e.id!==r)),j(e=>e.filter(e=>e.id!==r)),b(r),Z===r&&F(null),f("ë
¸í¸ë¥¼ ìì íì´ì.","info",{label:"ì¤í ì·¨ì",onClick:async()=>{let n=await e();n.some(e=>e.id===r)||(await t(G([...n,i])),j(e=>e.some(e=>e.id===r)?e:G([...e,i])))}});return}if(ex.current.has(r))return;j(e=>e.filter(e=>e.id!==r)),Z===r&&F(null);let a=f("ë
¸í¸ë¥¼ ìì íì´ì.","info",{label:"ì¤í ì·¨ì",onClick:()=>ez(r)}),l=setTimeout(()=>ej(r),eN);ex.current.set(r,{note:i,timer:l,toastId:a})},eS=async(e,r,i)=>{if(e.stopPropagation(),ev(),t){let{saveGuestWorkNotes:e}=await n.e(6214).then(n.bind(n,96214)),t=w.map(e=>e.id===r?{...e,isPinned:!i}:e);await e(t),j(t);return}j(e=>e.map(e=>e.id===r?{...e,isPinned:!i}:e)),(await (0,y.X)("updateWorkNote",{id:r,isPinned:!i},x)).success||(j(e=>e.map(e=>e.id===r?{...e,isPinned:i}:e)),ey.current.showToast("ê³ ì ìí를 ë³ê²½íì§ ëª»íì´ì.","error"))},eE=(e,t)=>{e.stopPropagation(),K(t.id),Y(t.title)},eP=async e=>{if(!H.trim()){K(null);return}if(ev(),t){let{saveGuestWorkNotes:t}=await n.e(6214).then(n.bind(n,96214)),r=w.map(t=>
1t.id===e?{...t,title:H.trim()}:t);await t(r),j(r)}else(await (0,y.X)("updateWorkNote",{id:e,title:H.trim()},x)).success&&j(t=>t.map(t=>t.id===e?{...t,title:H.trim()}:t));K(null)},eR=async e=>{let r=e.trim()||"ì 목 ìì";if(ev(),t){let{saveGuestWorkNotes:e}=await n.e(6214).then(n.bind(n,96214)),t=new Date().toISOString(),i={id:crypto.randomUUID(),title:r,content:"",isPinned:!1,displayOrder:0,createdAt:t,updatedAt:t},a=[i,...w];await e(a),j(a),_(!1),ek(i.id)}else{let e=await (0,y.X)("createWorkNote",{title:r},x);if(e.success&&e.data){let t=e.data;j(e=>[...e.filter(e=>e.isPinned),t,...e.filter(e=>!e.isPinned)]),_(!1),ek(t.id)}else f(e.error||"ë
¸í¸ë¥¼ ë§ë¤ì§ 못íì´ì.","error")}},eD=(0,s.useRef)(null),eI=w.filter(e=>e.isPinned),eA=w.filter(e=>!e.isPinned),eT=(0,s.useRef)(new Map),eW=(0,s.useCallback)(e=>{let t=eT.current.get(e.id);if(t&&t.content===e.content)return t.text;let n=M(e.content);return eT.current.set(e.id,{content:e.content,text:n}),n},[]),eM=X.trim(),eZ=eM.length>0,eL=(0,s.useMemo)(()=>eZ?L(w,eM,{getBody:eW}):[],[w,eM,eZ,eW]),eF=(0,s.useCallback)(()=>B(""),[]),eX=(0,s.useCallback)(async e=>{let t=e.trim()||"ì 목 ìì";ev();let n=await (0,y.X)("createWorkNote",{title:t},x);if(n.success&&n.data){let e=n.data;return j(t=>[...t.filter(e=>e.isPinned),e,...t.filter(e=>!e.isPinned)]),e.id}return null},[x,ev]),eB=e=>{if(ev(),t){n.e(6214).then(n.bind(n,96214)).then(t=>t.saveGuestWorkNotes(e));return}eD.current&&clearTimeout(eD.current),eD.current=setTimeout(async()=>{let t=e.map(e=>e.id);await (0,y.X)("updateWorkNoteOrder",{orderedIds:t},x)},500)},eO=async e=>{eu(e),Q(!0),er(!0),ea(!1);try{var t,n;let[e,r]=await Promise.all([(0,a.W)(()=>(0,y.X)("listStudents",{},x)),(0,a.W)(()=>(0,y.X)("getClasses",{},x))]);if(!e.success||!r.success)throw Error("íì ëª
ë¨ ì¡°í ì¤í¨");es(null!==(t=e.data)&&void 0!==t?t:[]),ec(null!==(n=r.data)&&void 0!==n?n:[])}catch(e){ea(!0)}finally{er(!1)}},e_=e=>{if(!ed||!el.length)return;let t=el.filter(t=>{var n;return t.homeClassId===e||(null===(n=t.customClassIds)||void 0===n?void 0:n.includes(e))});t.sort((e,t)=>e.number-t.number);let n='<table class="tiptap-table"><thead><tr><th style="text-align: center; font-weight: 600">íë
</th><th style="text-align: center; font-weight: 600">ë°</th><th style="text-align: center; font-weight: 600">ë²í¸</th><th style="text-align: center; font-weight: 600">ì´ë¦</th><th style="text-align: center; font-weight: 600">ë¹ê³ </th></tr></thead><tbody>';t.forEach(e=>{n+='<tr><td style="text-align: center">'.concat(e.grade||"",'</td><td style="text-align: center">').concat(e.classNum||"",'</td><td style="text-align: center">').concat(e.number,'</td><td style="text-align: center">').concat(e.name,"</td><td></td></tr>")}),n+="</tbody></table><p></p>",ed.chain().focus().insertContent(n).run(),Q(!1),eu(null)};return(0,r.jsxs)("div",{className:"relative flex h-full bg-[#fafaf9] dark:bg-[#0c0c0e]",children:[C&&(0,r.jsx)("div",{className:"absolute inset-x-0 top-0 z-[60] bg-white dark:bg-zinc-900",children:(0,r.jsx)(l.A,{message:C,onRetry:eg})}),h&&(0,r.jsx)("div",{className:"md:hidden w-full h-full absolute inset-0 z-50 bg-[#FBFBF9] dark:bg-zinc-950",children:(0,r.jsx)(V,{notes:w,isLoadingList:z,onCreateNote:eX,onTitleChange:(e,t)=>
1j(n=>n.map(n=>n.id===e?{...n,title:t}:n)),onPersisted:(e,t)=>j(n=>n.map(n=>n.id===e?{...n,...t}:n)),onDeleteNote:eC,onTogglePin:eS})}),!h&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"hidden md:flex w-60 flex-shrink-0 flex-col border-r border-zinc-200 dark:border-white/5 bg-white dark:bg-[#09090b] work-note-sidebar nav-rail-shadow sub-sidebar-enter",children:[(0,r.jsxs)("div",{className:"h-14 px-3 flex items-center gap-2 shrink-0 border-b border-zinc-200 dark:border-white/5",children:[(0,r.jsxs)("div",{className:"relative flex-1 min-w-0",children:[(0,r.jsx)(o.Z,{size:14,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-zinc-400 dark:text-white/30 pointer-events-none"}),(0,r.jsx)("input",{type:"text",value:X,onChange:e=>B(e.target.value),onKeyDown:e=>{"Escape"===e.key&&eF()},placeholder:"ë
¸í¸ ê²ì","aria-label":"ë
¸í¸ ê²ì",className:"w-full bg-[#fafaf9] dark:bg-[#18181b] text-zinc-900 dark:text-white placeholder-zinc-400 dark:placeholder-white/30 rounded-md py-2 pl-8 pr-7 text-xs focus:outline-none focus:ring-1 focus:ring-zinc-400 dark:focus:ring-white/10"}),X&&(0,r.jsx)("button",{"aria-label":"ê²ìì´ ì§ì°ê¸°",onClick:eF,className:"absolute right-1.5 top-1/2 -translate-y-1/2 p-0.5 rounded text-zinc-400 hover:text-zinc-700 dark:text-white/30 dark:hover:text-white/70 transition-colors",children:(0,r.jsx)(c.Z,{size:13})})]}),(0,r.jsx)("button",{"aria-label":"ì ë
¸í¸",onClick:ew,className:"shrink-0 p-1.5 hover:bg-zinc-100 dark:hover:bg-white/10 rounded-md text-zinc-400 dark:text-white/50 hover:text-zinc-900 dark:hover:text-white transition-colors",children:(0,r.jsx)(d.Z,{size:16})})]}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto w-full custom-scrollbar p-2",children:z||"loading"===e&&!(0,D.YY)()?(0,r.jsx)(i.ContentLoadingState,{variant:"list",label:"ì
무 ë
¸í¸ 목ë¡ì ë¶ë¬ì¤ê³ ìì´ì",className:"p-2 md:p-2"}):C&&0===w.length?null:eZ?0===eL.length?(0,r.jsxs)("div",{className:"text-center py-12 text-zinc-400 dark:text-white/20 text-xs px-4 leading-relaxed break-keep",children:["â",eM,"â ê²ì ê²°ê³¼ê° ìì´ì."]}):(0,r.jsx)("div",{className:"space-y-1",children:eL.map(e=>(0,r.jsx)(et,{hit:e,query:eM,selectedId:Z,onSelect:ek,onTogglePin:eS,onDelete:eC},e.note.id))}):0!==w.length||O?(0,r.jsxs)("div",{className:"space-y-1",children:[O&&(0,r.jsx)("div",{className:"px-1 mb-1",children:(0,r.jsx)("form",{onSubmit:e=>{e.preventDefault(),eR(e.currentTarget.elements[0].value)},children:(0,r.jsx)("input",{autoFocus:!0,placeholder:"ì ë
¸í¸ ì 목",className:"w-full bg-zinc-100 dark:bg-[#18181b] text-zinc-900 dark:text-white placeholder-zinc-400 dark:placeholder-white/30 rounded-md py-2 px-3 text-xs border border-zinc-300 dark:border-white/10 focus:outline-none focus:border-[#007AFF] dark:focus:border-[#007AFF]",onBlur:e=>{e.target.value.trim()||_(!1)},onKeyDown:e=>{"Escape"===e.key&&_(!1)}})})}),eI.length>0&&(0,r.jsx)(S.M,{axis:"y",values:eI,onReorder:e=>{let t=[...e,...eA];j(t),eB(t)},className:"space-y-1",children:eI.map(e=>(0,r.jsx)(ee,{note:e,selectedId:Z,editingTitleId:q,editingTitleValue:H,onSelect:ek,onTogglePin:eS,onStartEdit:eE,onDelete:eC,setEditingTitleValue:Y,handleSaveTitle:eP,setEditingTitleId:K},e.id))}),eA.length>0&&(0,r.jsx)(S.M,{axis:"y",values:eA,onReorder:e=>{let t=[...eI,...e];j(t),eB(t)},className:"space-y-1",children:eA.map(e=>(0,r.jsx)(ee,{note:e,selectedId:Z,editingTitleId:q,editingTitleValue:H,onSelect:ek,onTogglePin:eS,onStartEdit:eE,onDelete:eC,setEditingTitleValue:Y,handleSaveTitle:eP,setEditingTitleId:K},e.id))})]}):(0,r.jsxs)("div",{className:"text-center py-12 text-zinc-400 dark:text-white/20 text-xs px-4 leading-relaxed",children:["ìì±ë ë
¸í¸ê° ììµëë¤.",(0,r.jsx)("br",{}),"ì°ìë¨ + ë²í¼ì ëë¬ë³´ì¸ì."]})})]}),(0,r.jsxs)("div",{className:"hidden md:flex flex-1 flex-col overflow-hidden relative work-note-main bg-[#fafaf9] dark:bg-[#0c0c0e]",children:[Z?(0,r.jsx)($,{id:Z,initialData:w.find(e=>e.id===Z)||{id:Z,title:"",content:""},latest:w.find(e=>e.id===Z),onTitleChange:(e,t)=>
1{j(n=>n.map(n=>n.id===e?{...n,title:t}:n))},onPersisted:(e,t)=>{j(n=>n.map(n=>n.id===e?{...n,...t}:n))},onImportRoster:eO},Z):(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-8",children:C?null:P?(0,r.jsx)(v.Z,{size:"lg",title:"ì íë ë
¸í¸ê° ììµëë¤",description:"ì¼ìª½ 목ë¡ìì ë
¸í¸ë¥¼ ì ííê±°ë ìë¡ì´ ì
무 ë
¸í¸ë¥¼ ìì±í´ ë³´ì¸ì.",action:(0,r.jsxs)("button",{type:"button",onClick:ew,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 flex items-center gap-1.5",children:[(0,r.jsx)(d.Z,{size:16}),"ì ì
무ë
¸í¸ ë§ë¤ê¸°"]})}):(0,r.jsx)(i.ContentLoadingState,{variant:"grades",label:"ì
무 ë
¸í¸ ë´ì©ì ì¤ë¹íê³ ìì´ì"})}),U&&(0,r.jsx)("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,r.jsxs)("div",{className:"bg-white dark:bg-[#18181b] w-full max-w-sm rounded-2xl shadow-2xl border border-zinc-200 dark:border-white/10 overflow-hidden flex flex-col max-h-[80%]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-zinc-100 dark:border-white/5",children:[(0,r.jsxs)("h3",{className:"font-bold text-zinc-900 dark:text-white flex items-center gap-2",children:[(0,r.jsx)(u.Z,{size:16}),"ìì
ëª
ë ¬í ê°ì ¸ì¤ê¸°"]}),(0,r.jsx)("button",{"aria-label":"ë«ê¸°",onClick:()=>Q(!1),className:"p-1 hover:bg-zinc-100 dark:hover:bg-white/10 rounded-md text-zinc-400 hover:text-zinc-600 dark:text-white/40 dark:hover:text-white transition-colors",children:(0,r.jsx)(c.Z,{size:16})})]}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto p-2 custom-scrollbar",children:en?(0,r.jsx)(i.ContentLoadingState,{variant:"list",rows:4,label:"íì ëª
ë¨ì ë¶ë¬ì¤ê³ ìì´ì"}):ei?(0,r.jsx)(l.A,{message:"íì ëª
ë¨ì ë¶ë¬ì¤ì§ 못íì´ì.",onRetry:()=>void eO(ed)}):0===eo.length||0===el.length?(0,r.jsx)("div",{className:"py-6",children:(0,r.jsx)(v.Z,{size:"sm",title:"ë±ë¡ë íì/íê¸ì´ ììµëë¤",description:"ì¤ì > íì ëª
ë¨ìì íê¸ê³¼ íìì 먼ì ë±ë¡í´ 주ì¸ì."})}):(0,r.jsx)("div",{className:"grid gap-1",children:eo.map(e=>(0,r.jsxs)("button",{onClick:()=>e_(e),className:"flex items-center justify-between w-full px-4 py-3 text-left bg-zinc-50 dark:bg-white/5 hover:bg-zinc-100 dark:hover:bg-white/10 rounded-lg transition-colors group",children:[(0,r.jsx)("span",{className:"font-medium text-zinc-700 dark:text-zinc-200 group-hover:text-zinc-900 dark:group-hover:text-white",children:e}),(0,r.jsxs)("span",{className:"text-xs text-zinc-400",children:[el.filter(t=>{var n;return t.homeClassId===e||(null===(n=t.customClassIds)||void 0===n?void 0:n.includes(e))}).length,"ëª
"]})]},e))})})]})})]})]})]})}function $(e){let{id:t,initialData:i,latest:a,onTitleChange:l,onPersisted:o,onImportRoster:c}=e,d=(0,k.XC)(),u=(0,D.Dv)(),x=(0,s.useRef)(i.title||""),h=(0,s.useRef)(null),{data:f,setData:m,syncExternal:p,hasUnsavedChanges:g,isSaving:b,flushSave:v,saveError:w}=N({storageKey:"work-note-v2-".concat(t),initialData:i,onSave:async e=>{var r,i;if(!t)return!1;let a=(null===(r=e.title)||void 0===r?void 0:r.trim())?e.title:"ì 목 ìì",s=e.content||"";if(u){let{getGuestWorkNotes:e,saveGuestWorkNotes:r}=await n.e(6214).then(n.bind(n,96214)),i=await e(),c=new Date().toISOString(),d=i.map(e=>e.id===t?{...e,title:a,content:s,updatedAt:c}:e);return await r(d),a!==x.current&&(x.current=a,l(t,a)),null==o||o(t,{title:a,content:s,updatedAt:c}),!0}let c=await (0,y.X)("updateWorkNote",{id:t,title:a,content:s},d);if(c.success){a!==x.current&&(x.current=a,l(t,a));let e=null===(i=c.data)||void 0===i?void 0:i.updatedAt;null==o||o(t,e?{title:a,content:s,updatedAt:e}:{title:a,content:s})}return c.success},debounceMs:1e3}),j=(0,s.useCallback)(e=>{m(t=>({...t,content:e}))},[m]),z=C({latest:a,current:f,initialUpdatedAt:i.updatedAt,hasUnsavedChanges:g,isSaving:b,applyExternal:p,containerRef:h}),S=(0,s.useRef)(v);return(0,s.useEffect)(()=>{S.current=v},[v]),(0,s.useEffect)(()=>()=>{S.current()},[]),(0,r.jsxs)("div",{ref:h,className:"flex flex-col flex-1 overflow-hidden",children:[(0,r.jsxs)("div",{className:"h-14 shrink-0 border-b border-zinc-200 dark:border-white/5 bg-[#fafaf9] dark:bg-[#09090b] flex items-center justify-between px-8 work-note-header",children:[(0,r.jsx)("input",{type:"text",value:f.title||"",onChange:e=>m(t=>({...t,title:e.target.value})),onBlur:()=>v(),placeholder:"ë
¸í¸ ì 목ì ì
ë ¥íì¸ì",className:"text-lg font-bold bg-transparent border-none text-zinc-900 dark:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 flex-1 min-w-0 placeholder-zinc-300 dark:placeholder-white/10 work-note-title-input"}),(0,r.jsx)(I.R,{isSaving:b,hasUnsavedChanges:g,error:w,errorDetail:null!=w?w:void 0,onRetry:()=>void v(),className:"ml-4 shrink-0"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,r.jsx)(U,{content:f.content||"",onChange:j,onBlur:()=>v(),placeholder:"",onImportRoster:c},z)})]})}function ee(e){let{note:t,selectedId:n,editingTitleId:i,editingTitleValue:a,onSelect:l,onTogglePin:s,onStartEdit:o,onDelete:c,setEditingTitleValue:d,handleSaveTitle:u,setEditingTitleId:h}=e,b=(0,E.o)();return(0,r.jsxs)(P.e,{value:t,dragListener:!1,dragControls:b,onClick:()=>i!==t.id&&l(t.id),role:"button",tabIndex:i===t.id?-1:0,"aria-label":"ë
¸í¸ ì´ê¸°: ".concat(t.title||"ì 목 ìì"),onKeyDown:e=>
1{i!==t.id&&("Enter"===e.key||" "===e.key)&&(e.preventDefault(),l(t.id))},"data-selected":n===t.id,className:(0,w.cn)("w-full flex items-center justify-between px-2 py-2.5 rounded-lg cursor-pointer group border border-transparent select-none work-note-menu-item","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#007AFF]/60",n===t.id?"bg-white/10 text-white":"text-[#a1a1aa] hover:bg-white/[0.03] hover:text-white"),whileDrag:{scale:1.02,boxShadow:"0 8px 24px rgba(0,0,0,0.4)",cursor:"grabbing"},layout:!0,transition:{type:"spring",stiffness:400,damping:30},children:[(0,r.jsx)("div",{onPointerDown:e=>{e.preventDefault(),b.start(e)},className:"shrink-0 cursor-grab active:cursor-grabbing text-zinc-400 dark:text-white/20 hover:text-zinc-600 dark:hover:text-white/40 mr-1 touch-none",children:(0,r.jsx)(x.Z,{size:14})}),(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[t.isPinned&&(0,r.jsx)(f,{size:11,className:"text-yellow-500 shrink-0",fill:"currentColor"}),i===t.id?(0,r.jsx)("input",{type:"text",value:a,onChange:e=>d(e.target.value),onBlur:()=>u(t.id),onKeyDown:e=>{"Enter"===e.key&&u(t.id),"Escape"===e.key&&h(null)},onClick:e=>e.stopPropagation(),autoFocus:!0,className:"flex-1 min-w-0 text-[14px] bg-zinc-100 dark:bg-[#1a1a1c] border border-zinc-300 dark:border-white/20 rounded px-2 py-0.5 focus:outline-none focus:border-zinc-400 dark:focus:border-white/40 text-zinc-900 dark:text-white"}):(0,r.jsx)("span",{className:(0,w.cn)("text-[14px] truncate flex-1 min-w-0
1work-note-title",n===t.id&&"font-medium"),children:t.title||"ì 목 ìì"})]}),(0,r.jsxs)("div",{className:(0,w.cn)("flex items-center gap-0.5 shrink-0 transition-opacity",i===t.id?"hidden":"opacity-0 group-hover:opacity-100 group-focus-within:opacity-100"),children:[(0,r.jsx)("button",{"aria-label":t.isPinned?"ê³ ì í´ì ":"ê³ ì ",onClick:e=>s(e,t.id,t.isPinned),className:(0,w.cn)("p-1 rounded hover:bg-white/10",t.isPinned?"text-yellow-500":"text-white/30"),children:t.isPinned?(0,r.jsx)(m,{size:12}):(0,r.jsx)(f,{size:12})}),(0,r.jsx)("button",{"aria-label":"ìì ",onClick:e=>o(e,t),className:"p-1 rounded hover:bg-white/10 text-white/30 hover:text-white",children:(0,r.jsx)(p.Z,{size:12})}),(0,r.jsx)("button",{"aria-label":"ìì ",onClick:e=>c(e,t.id),className:"p-1 rounded hover:bg-white/10 text-white/30 hover:text-red-400",children:(0,r.jsx)(g.Z,{size:12})})]})]})}function et(e){let{hit:t,query:n,selectedId:i,onSelect:a,onTogglePin:l,onDelete:s}=e,{note:o,snippet:c}=t;return(0,r.jsxs)("div",{role:"button",tabIndex:0,"aria-label":"ë
¸í¸ ì´ê¸°: ".concat(o.title||"ì 목 ìì"),onClick:()=>a(o.id),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a(o.id))},"data-selected":i===o.id,className:(0,w.cn)("group w-full px-2 py-2 rounded-lg cursor-pointer border border-transparent select-none work-note-menu-item","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#007AFF]/60",i===o.id?"bg-white/10 text-white":"text-[#a1a1aa] hover:bg-white/[0.03] hover:text-white"),children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[o.isPinned&&(0,r.jsx)(f,{size:11,className:"text-yellow-500 shrink-0",fill:"currentColor"}),(0,r.jsx)(F,{text:o.title||"ì 목 ìì",query:n,className:"text-[14px] truncate flex-1 min-w-0
1work-note-title"}),(0,r.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity",children:[(0,r.jsx)("button",{"aria-label":o.isPinned?"ê³ ì í´ì ":"ê³ ì ",onClick:e=>l(e,o.id,o.isPinned),className:(0,w.cn)("p-1 rounded hover:bg-white/10",o.isPinned?"text-yellow-500":"text-white/30"),children:o.isPinned?(0,r.jsx)(m,{size:12}):(0,r.jsx)(f,{size:12})}),(0,r.jsx)("button",{"aria-label":"ìì ",onClick:e=>s(e,o.id),className:"p-1 rounded hover:bg-white/10 text-white/30 hover:text-red-400",children:(0,r.jsx)(g.Z,{size:12})})]})]}),c&&(0,r.jsx)("div",{className:"mt-1 text-[11px] leading-snug text-zinc-500 dark:text-white/35 line-clamp-2 break-keep",children:(0,r.jsx)(F,{text:c,query:n})})]})}},16481:function(e,t,n){n.d(t,{c:function(){return r}});function r(){let e=Promise.resolve();return function(t){let n=e.then(()=>t(),()=>t());return e=n.then(()=>void 0,()=>void 0),n}}},88507:function(e,t,n){n.d(t,{M:function(){return u}});var r=n(57437),i=n(62035),a=n(2265),l=n(8005),s=n(13100),o=n(53576),c=n(33811),d=n(98425);let u=(0,a.forwardRef)(function(e,t){let{children:n,as:u="ul",axis:f="y",onReorder:m,values:p,...g}=e,b=(0,o.h)(()=>s.E[u]),v=[],w=(0,a.useRef)(!1),k=(0,a.useRef)(null);(0,i.k)(!!p,"Reorder.Group must be provided a values prop","reorder-values"),(0,a.useEffect)(()=>{w.current=!1});let y={overflowAnchor:"none",...g.style};return(0,r.jsx)(b,{...g,style:y,ref:e=>{k.current=e,"function"==typeof t?t(e):t&&(t.current=e)},ignoreStrict:!0,children:(0,r.jsx)(l.Y.Provider,{value:{axis:f,groupRef:k,registerItem:(e,t)=>{let n=v.findIndex(t=>e===t.value);-1!==n?v[n].layout=t[f]:v.push({value:e,layout:t[f]}),v.sort(h)},updateOrder:(e,t,n)=>{if(w.current)return;let r=function(e,t,n,r){if(!r)return e;let i=e.findIndex(e=>e.value===t);if(-1===i)return e;let a=r>0?1:-1,l=e[i+a];if(!l)return e;let s=e[i],o=l.layout,u=(0,c.t)(o.min,o.max,.5);return 1===a&&s.layout.max+n>u||-1===a&&s.layout.min+n<u?(0,d.uo)(e,i,i+a):e}(v,e,t,n);v!==r&&(w.current=!0,m(r.map(x).filter(e=>-1!==p.indexOf(e))))}},children:n})})});function x(e){return e.value}function h(e,t){return e.layout.min-t.layout.min}},66109:function(e,t,n){n.d(t,{e:function(){return b}});var r=n(57437),i=n(87493),a=n(62035),l=n(2265),s=n(8005),o=n(13100),c=n(53576),d=n(81906),u=n(33728);let x=new Set(["auto","scroll"]),h=new WeakMap,f=new WeakMap,m=null;function p(e,t){let n=null==e?void 0:e.parentElement;for(;n;){if(function(e,t){let n=getComputedStyle(e),r="x"===t?n.overflowX:n.overflowY,i=e===document.body||e===document.documentElement;return x.has(r)||i}(n,t))return n;n=n.parentElement}return null}function g(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(0,i.i)(e)?e:(0,d.c)(t)}let b=(0,l.forwardRef)(function(e,t){let{children:n,style:i={},value:d,as:x="li",onDrag:b,onDragEnd:v,layout:w=!0,...k}=e,y=(0,c.h)(()=>o.E[x]),j=(0,l.useContext)(s.Y),z={x:g(i.x),y:g(i.y)},N=(0,u.H)([z.x,z.y],e=>{let[t,n]=e;return t||n?1:"unset"});(0,a.k)(!!j,"Reorder.Item must be a child of Reorder.Group","reorder-item-child");let{axis:C,registerItem:S,updateOrder:E,groupRef:P}=j;return(0,r.jsx)(y,{drag:C,...k,dragSnapToOrigin:!0,style:{...i,x:z.x,y:z.y,zIndex:N},layout:w,onDrag:(e,t)=>{let{velocity:n,point:r}=t;E(d,z[C].get(),n[C]),function(e,t,n,r){if(!e)return;m=e;let i=p(e,n);if(!i)return;let{amount:a,edge:l}=function(e,t,n){let r=t.getBoundingClientRect(),i="x"===n?Math.max(0,r.left):Math.max(0,r.top),a="x"===n?Math.min(window.innerWidth,r.right):Math.min(window.innerHeight,r.bottom),l=e-i,s=a-e;if(l<50){let e=1-l/50;return{amount:-25*e*e,edge:"start"}}if(s<50){let e=1-s/50;return{amount:25*e*e,edge:"end"}}return{amount:0,edge:null}}(t-("x"===n?window.scrollX:window.scrollY),i,n);if(null===l){f.delete(i),h.delete(i);return}let s=f.get(i),o=i===document.body||i===document.documentElement;if(s!==l){if(!("start"===l&&r<0||"end"===l&&r>0))return;f.set(i,l);let e="x"===n?i.scrollWidth-(o?window.innerWidth:i.clientWidth):i.scrollHeight-(o?window.innerHeight:i.clientHeight);h.set(i,e)}if(a>0){let e=h.get(i);if(("x"===n?o?window.scrollX:i.scrollLeft:o?window.scrollY:i.scrollTop)>=e)return}"x"===n?o?window.scrollBy({left:a}):i.scrollLeft+=a:o?window.scrollBy({top:a}):i.scrollTop+=a}(P.current,r[C],C,n[C]),b&&b(e,t)},onDragEnd:(e,t)=>{!function(){if(m){let e=p(m,"y");e&&(f.delete(e),h.delete(e));let t=p(m,"x");t&&t!==e&&(f.delete(t),h.delete(t)),m=null}}(),v&&v(e,t)},onLayoutMeasure:e=>{S(d,e)},ref:t,ignoreStrict:!0,children:n})})},8005:function(e,t,n){n.d(t,{Y:function(){return r}});let r=(0,n(2265).createContext)(null)},59717:function(e,t,n){n.d(t,{o:function(){return l}});var r=n(53576);
1class i{subscribe(e){return this.componentControls.add(e),()=>this.componentControls.delete(e)}start(e,t){this.componentControls.forEach(n=>{n.start(e.nativeEvent||e,t)})}cancel(){this.componentControls.forEach(e=>{e.cancel()})}stop(){this.componentControls.forEach(e=>{e.stop()})}constructor(){this.componentControls=new Set}}let a=()=>new i;function l(){return(0,r.h)(a)}}}]);
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.