1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3434],{99397:function(t,e,s){s.d(e,{Z:function(){return a}});let a=(0,s(79205).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},69076:function(t,e,s){s.d(e,{Z:function(){return a}});let a=(0,s(79205).Z)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},18930:function(t,e,s){s.d(e,{Z:function(){return a}});let a=(0,s(79205).Z)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},90982:function(t,e,s){s.d(e,{ContentLoadingState:function(){return c},Q:function(){return o}});var a=s(57437),i=s(2265),r=s(21235),n=s(93448);function o(t){let{label:e="ë´ì©ì ë¶ë¬ì¤ê³ ìì´ì",slowLabel:s,className:r}=t,[o,l]=(0,i.useState)(!1);return(0,i.useEffect)(()=>
1{l(!1);let t=setTimeout(()=>l(!0),8e3);return()=>clearTimeout(t)},[e]),(0,a.jsx)("p",{role:"status","aria-atomic":"true",className:(0,n.cn)("text-[13px] leading-5 text-zinc-600 dark:text-zinc-400",r),children:o?null!=s?s:"".concat(e,". íìë³´ë¤ ìê°ì´ ê±¸ë¦¬ê³ ìì´ì."):e})}function l(t){let{count:e,table:s=!1}=t;return(0,a.jsx)("div",{className:"divide-y divide-zinc-200/60 dark:divide-white/[0.06]",children:Array.from({length:e},(t,e)=>(0,a.jsxs)("div",{className:"flex min-h-12 items-center gap-4 py-3",children:[(0,a.jsx)(r.Od,{width:24,height:16,className:"shrink-0 rounded"}),(0,a.jsx)(r.Od,{width:e%2?"30%":"40%",height:14,className:"rounded"}),s&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.Od,{width:"20%",height:14,className:"ml-auto rounded"}),(0,a.jsx)(r.Od,{width:"16%",height:14,className:"rounded"})]})]},e))})}function c(t){let{variant:e="table",label:s,slowLabel:i,className:c,rows:u=7}=t;return(0,a.jsxs)("div",{className:(0,n.cn)("w-full min-w-0 bg-white p-4 md:p-6 dark:bg-zinc-950",c),"data-loading-layout":e,"aria-busy":"true",children:[(0,a.jsx)(o,{label:s,slowLabel:i,className:"mb-5"}),(0,a.jsx)("div",{"aria-hidden":"true",children:"workspace"===e?(0,a.jsxs)("div",{className:"grid gap-6 md:grid-cols-[200px_minmax(0,1fr)]",children:[(0,a.jsxs)("div",{className:"hidden md:block",children:[(0,a.jsx)(r.Od,{height:32,className:"mb-4"}),(0,a.jsx)(l,{count:8})]}),(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)(r.Od,{width:"35%",height:28}),(0,a.jsx)("div",{className:"flex gap-4",children:[0,1,2].map(t=>(0,a.jsx)(r.Od,{width:80,height:28},t))}),(0,a.jsx)(r.Od,{height:160}),(0,a.jsx)(l,{count:5,table:!0})]})]}):"calendar"===e?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,a.jsx)(r.Od,{width:140,height:28}),(0,a.jsx)(r.Od,{width:96,height:28})]}),(0,a.jsx)("div",{className:"grid grid-cols-7 gap-px overflow-hidden rounded-xl border border-zinc-200 bg-zinc-200 dark:border-zinc-800 dark:bg-zinc-800",children:Array.from({length:35},(t,e)=>(0,a.jsxs)("div",{className:"min-h-[64px] bg-white p-2 md:min-h-[88px] md:p-3 dark:bg-zinc-950",children:[(0,a.jsx)(r.Od,{width:18,height:12,className:"rounded"}),e%4==1&&(0,a.jsx)(r.Od,{height:18,className:"mt-4 rounded"})]},e))})]}):"cards"===e||"zones"===e?(0,a.jsx)("div",{className:(0,n.cn)("grid gap-4","zones"===e?"grid-cols-2 lg:grid-cols-4":"grid-cols-1 md:grid-cols-2 xl:grid-cols-3"),children:Array.from({length:"zones"===e?8:6},(t,s)=>(0,a.jsxs)("div",{className:"space-y-4 rounded-xl border border-zinc-200/70 p-4 dark:border-white/[0.08]",children:[(0,a.jsx)(r.Od,{width:"50%",height:16}),(0,a.jsx)(r.Od,{height:"zones"===e?64:112}),(0,a.jsx)(r.Od,{width:"75%",height:14})]},s))}):"grades"===e?(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)(r.Od,{width:"30%",height:24}),(0,a.jsx)("div",{className:"grid grid-cols-3 gap-4",children:[0,1,2].map(t=>(0,a.jsx)(r.Od,{height:80},t))}),(0,a.jsx)(r.Od,{height:220}),(0,a.jsx)(l,{count:4,table:!0})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.Od,{width:"list"===e?"65%":"25%",height:22,className:"mb-4"}),(0,a.jsx)(l,{count:u,table:"table"===e})]})})]})}},64954:function(t,e,s){s.d(e,{Z:function(){return n}});var a=s(57437);s(2265);var i=s(93448),r=s(51028);function n(t){let{title:e,description:s,action:n,badge:o,size:l="md",className:c="",iconSize:u,animate:d=!0}=t,h="sm"===l,m="lg"===l;return(0,a.jsxs)("div",{className:(0,i.cn)("group relative flex flex-col items-center justify-center text-center select-none",h?"py-8 px-4":m?"py-20 px-8":"py-16 px-6",c),children:[o&&(0,a.jsx)("span",{className:"mb-3.5 inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-zinc-100 dark:bg-white/[0.06] text-zinc-600 dark:text-zinc-300 border border-zinc-200/80 dark:border-white/10",children:o}),(0,a.jsx)("div",{className:(0,i.cn)("relative flex items-center justify-center transition-transform duration-300 ease-out",d&&"group-hover:scale-105",h?"mb-3":m?"mb-5":"mb-4"),children:(0,a.jsx)(r.w,{size:null!=u?u:h?48:m?80:64,showGlow:!1})}),(0,a.jsx)("h3",{className:(0,i.cn)("font-bold text-zinc-800 dark:text-zinc-100 tracking-tight",h?"text-sm":m?"text-[20px]":"text-base"),children:e}),s&&(0,a.jsx)("div",{className:(0,i.cn)("text-zinc-500 dark:text-zinc-400 font-normal leading-relaxed",h?"text-xs mt-1.5 max-w-xs":m?"text-[14px] mt-2 max-w-lg"
1:"text-[13px] mt-1.5 max-w-md"),children:s}),n&&(0,a.jsx)("div",{className:(0,i.cn)("flex items-center justify-center",h?"mt-4":"mt-6"),children:n})]})}},51028:function(t,e,s){s.d(e,{w:function(){return r}});var a=s(57437),i=s(2265);function r(t){let{size:e=64,accentColor:s="#d97757",showGlow:r=!0,className:n="",...o}=t,l=i.useId(),c=i.useId();return(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 430 430",fill:"none",className:n,...o,children:[(0,a.jsxs)("defs",{children:[(0,a.jsxs)("linearGradient",{id:c,x1:"90",y1:"90",x2:"300",y2:"300",gradientUnits:"userSpaceOnUse",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:s,stopOpacity:"0.15"}),(0,a.jsx)("stop",{offset:"50%",stopColor:"#38bdf8",stopOpacity:"0.08"}),(0,a.jsx)("stop",{offset:"100%",stopColor:s,stopOpacity:"0.03"})]}),r&&(0,a.jsx)("filter",{id:l,x:"-20%",y:"-20%",width:"140%",height:"140%",children:(0,a.jsx)("feDropShadow",{dx:"0",dy:"4",stdDeviation:"8",floodColor:s,floodOpacity:"0.25"})})]}),(0,a.jsxs)("g",{strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"14",children:[(0,a.jsx)("circle",{cx:"191",cy:"192",r:"102",fill:"url(#".concat(c,")"),className:"transition-colors duration-300"}),(0,a.jsx)("path",{className:"stroke-zinc-700 dark:stroke-zinc-200 transition-colors duration-200",strokeWidth:"13",d:"M293.7 89.4c56.7 56.7 56.7 148.6 0 205.3s-148.6 56.7-205.3 0-56.7-148.7 0-205.3 148.6-56.7 205.3 0"}),(0,a.jsx)("path",{stroke:s,strokeWidth:"13",d:"M82.1 147.5c5.7-14.1 14.2-27.3 25.7-38.7 13.7-13.7 29.9-23.2 47.1-28.7",filter:r?"url(#".concat(l,")"):void 0}),(0,a.jsx)("path",{className:"stroke-zinc-700 dark:stroke-zinc-200 transition-colors duration-200",strokeWidth:"15",d:"m296.1 296.6 88 86.5"})]})]})}},58346:function(t,e,s){s.d(e,{d:function(){return n}});var a=s(57437),i=s(93448);let r={"avatars-group":"data:image/svg+xml,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23121331%22%20d%3D%22M1%2015.75A4.75%204.75%200%200%201%205.75%2011h1.5a.75.75%200%200%201%200%201.5h-1.5a3.25%203.25%200%200%200-3.25%203.25V16h1.75a.75.75%200%200%201%200%201.5h-2.5a.75.75%200%200%201-.75-.75zm20.5%200a3.25%203.25%200%200%200-3.25-3.25h-1.5a.75.75%200%200%201%200-1.5h1.5A4.75%204.75%200%200%201%2023%2015.75v1a.75.75%200%200%201-.75.75h-2.5a.75.75%200%200%201%200-1.5h1.75zM14%209a2%202%200%201%200-4%200%202%202%200%200%200%204%2
100m1.5%200a3.5%203.5%200%201%201-7%200%203.5%203.5%200%200%201%207%200m1%209.75a3.25%203.25%200%200%200-3.25-3.25h-2.5a3.25%203.25%200%200%200-3.25%203.25v.75h9zm1.5%201.5a.75.75%200%200%201-.75.75H6.75a.75.75%200%200%201-.75-.75v-1.5A4.75%204.75%200%200%201%2010.75%2014h2.5A4.75%204.75%200%200%201%2018%2018.75zM4%206.5a3%203%200%200%201%204.95-2.28l.05.044.028.027A.75.75%200%200%201%208%205.38a1.5%201.5%200%201%200-1.334%202.581.75.75%200%200%201-.294%201.471l-.038-.007-.062-.015A3%203%200%200%201%204%206.5m14.5%200A1.5%201.5%200%200%200%2016%205.382l-.03.025A.75.75%200%200%201%2015%204.264l.05-.044a3%203%200%201%201%202.616%205.206.75.75%200%201%201-.332-1.463A1.5%201.5%200%200%200%2018.5%206.5%22/%3E%3C/svg%3E",building:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22%23121331%22%3E%3Cpath%20d%3D%22M8.25%2010a.75.75%200%200%201%20.75.75v1.5a.75.75%200%200%201-1.5%200v-1.5a.75.75%200%200%201%20.75-.75M12%2010a.75.75%200%200%201%20.75.75v1.5a.75.75%200%200%201-1.5%200v-1.5A.75.75%200%200%201%2012%2010m3.75%200a.75.75%200%200%201%20.75.75v1.5a.75.75%200%200%201-1.5%200v-1.5a.75.75%200%200%201%20.75-.75m-7.5-4.5a.75.75%200%200%201%20.75.75v1.5a.75.75%200%200%201-1.5%200v-1.5a.75.75%200%200%201%20.75-.75m3.75%200a.75.75%200%200%201%20.75.75v1.5a.75.75%200%200%201-1.5%200v-1.5A.75.75%200%200%201%2012%205.5m3.75%200a.75.75%200%200%201%20.75.75v1.5a.75.75%200%200%201-1.5%200v-1.5a.75.75%200%200%201%20.75-.75%22/%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M18.25%202c.966%200%201.75.784%201.75%201.75v16.5A1.75%201.75%200%200%201%2018.25%2022H5.75A1.75%201.75%200%200%201%204%2020.25V3.75C4%202.784%204.784%202%205.75%202zM5.75%203.5a.25.25%200%200%200-.25.25v16.5c0%20.138.112.25.25.25H9v-4.75a.75.75%200%200%201%20.75-.75h4.5a.75.75%200%200%201%20.75.75v4.75h3.25a.25.25%200%200%200%20.25-.25V3.75a.25.25%200%200%200-.25-.25zm4.75%2017h3v-4h-3z%22%20clip-rule%3D%22evenodd%22/%3E%3C/g%3E%3C/svg%3E",cross:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23121331%22%20d%3D%22M19.22%203.72a.75.75%200%201%201%201.06%201.06L13.06%2012l7.22%207.22.052.056a.75.75%200%200%201-1.056%201.056l-.056-.052L12%2013.06l-7.22%207.22a.75.75%200%201%201-1.06-1.06L10.94%2012%203.72%204.78a.75.75%200%201%201%201.06-1.06L12%2010.94z%22/%3E%3C/svg%3E",magnifier:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23121331%22%20d%3D%22M16.334%204.667a8.25%208.25%200%200%201%20.506%2011.114l3.94%203.94.027.027a.75.75%200%200%201-1.06%201.06l-.027-.027-3.94-3.94a8.25%208.25%200%201%201%20.554-12.174M5.727%205.728a6.75%206.75%200%201%200%209.546%209.546%206.75%206.75%200%200%200-9.546-9.546%22/%3E%3C/svg%3E","student-cap":"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23121331%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11.12%202.144a1.75%201.75%200%200%201%201.76%200l8.76%205.092c.516.3.801.798.858%201.318q.011.06.012.124v5.572a.75.75%200%200%201-1.5%200v-3.622L19%2011.797v5.843c0%20.656-.367%201.257-.95%201.556l-5.25%202.695a1.75%201.75%200%200%201-1.598%200l-5.25-2.695c-.584-.3-.951-.9-.952-1.556v-5.843l-2.64-1.534c-1.16-.675-1.16-2.352%200-3.027zm1.76%2013.212a1.75%201.75%200%200%201-1.76%200L6.5%2012.669v4.97a.25.25%200%200%200%20.136.223l5.25%202.694a.25.25%200%200%200%20.229%200l5.25-2.695a.25.25%200%200%200%20.136-.221v-4.97zM12.124%203.44a.25.25%200%200%200-.25%200l-8.76%205.093a.25.25%200%200%200%200%20.433l8.76%205.093a.25.25%200%200%200%20.252%200l8.76-5.093a.25.25%200%200%200%200-.433z%22%20clip-rule%3D%22evenodd%22/%3E%3C/svg%3E","trash-bin":"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22%23121331%22%3E%3Cpath%20d%3D%22M9.75%209a.75.75%200%200%201%20.75.75v7.5a.75.75%200%200%201-1.5%200v-7.5A.75.75%200%200%201%209.75%209m4.5%200a.75.75%200%200%201%20.75.75v7.5a.75.75%200%200%201-1.5%200v-7.5a.75.75%200%200%201%20.75-.75%22/%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M12%201a4%204%200%200%201%203.929%203.25h4.321a.75.75%200%200%201%200%201.5h-.75v13.5A2.75%202.75%200%200%201%2016.75%2022h-9.5a2.75%202.75%200%200%201-2.75-2.75V5.75h-.75a.75.75%200%200%201%200-1.5h4.321A4%204%200%200%201%2012%201M6%2019.25c0%20.69.56%201.25%201.25%201.25h9.5c.69%200%201.25-.56%201.25-1.25V5.75H6zM12
1%202.5a2.5%202.5%200%200%200-2.385%201.75h4.77A2.5%202.5%200%200%200%2012%202.5%22%20clip-rule%3D%22evenodd%22/%3E%3C/g%3E%3C/svg%3E","trending-up":"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20stroke%3D%22%23121331%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%3E%3Cpath%20d%3D%22M15.75%206.75h5.5v5.5%22/%3E%3Cpath%20d%3D%22m2.75%2018.25%206.63-6.67%203.54%203.55%208.33-8.38%22/%3E%3C/g%3E%3C/svg%3E","trophy-star":"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22%23121331%22%3E%3Cpath%20d%3D%22M11.765%205.35a.262.262%200%200%201%20.47%200l.615%201.244%201.373.199a.263.263%200%200%201%20.145.45l-.993.967.234%201.368a.262.262%200%200%201-.38.276L12%209.21l-1.229.645a.262.262%200%200%201-.38-.276l.234-1.368-.993-.968a.263.263%200%200%201%20.145-.449l1.373-.2z%22/%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M16.25%202c.966%200%201.75.784%201.75%201.75V4h2.25c.966%200%201.75.784%201.75%201.75v1.5A4.75%204.75%200%200%201%2017.25%2012h-.055a6%206%200%200%201-4.445%202.951V16.5h3.5c.966%200%201.75.784%201.75%201.75v2A1.75%201.75%200%200%201%2016.25%2022h-8.5A1.75%201.75%200%200%201%206%2020.25v-2c0-.966.784-1.75%201.75-1.75h3.5v-1.549a6%206%200%200%201-4.447-2.955A4.91%204.91%200%200%201%202%207.086V5.68C2%204.752%202.752%204%203.679%204H6v-.25C6%202.784%206.784%202%207.75%202zm-8.5%2016a.25.25%200%200%200-.25.25v2c0%20.138.112.25.25.25h8.5a.25.25%200%200%200%20.25-.25v-2a.25.25%200%200%200-.25-.25zm0-14.5a.25.25%200%200%200-.25.25V9a4.5%204.5%200%201%200%209%200V3.75a.25.25%200%200%200-.25-.25zM18%209c0%20.5-.063.984-.178%201.448A3.25%203.25%200%200%200%2020.5%207.25v-1.5a.25.25%200%200%200-.25-.25H18zM3.679%205.5a.18.18%200%200%200-.179.179v1.408c0%201.63%201.142%202.99%202.669%203.33A6%206%200%200%201%206%209V5.5z%22%20clip-rule%3D%22evenodd%22/%3E%3C/g%3E%3C/svg%3E"};function n(t){let{name:e,size:s=24,className:n}=t,o=r[e];return o?(0,a.jsx)("img",{src:o,alt:"",width:s,height:s,className:(0,i.cn)("dark:invert",n),draggable:!1}):null}},91455:function(t,e,s){s.d(e,{s:function(){return n}});
1var a=s(57437),i=s(2265),r=s(93448);function n(t){let{options:e,value:s,onChange:n,className:o,itemClassName:l,activeItemClassName:c,inactiveItemClassName:u,indicatorClassName:d,variant:h="pill",underlineThickness:m=2,disabled:v=!1,equalWidth:g=!1,"aria-label":f}=t,p=(0,i.useRef)(null),x=(0,i.useRef)({}),[y,w]=(0,i.useState)(null),[b,C]=(0,i.useState)(!1),j=e.map(t=>t.key).join("\0"),D=(0,i.useCallback)(()=>{let t=p.current,e=x.current[s];if(!t||!e||0===e.offsetWidth){w(t=>null===t?t:null);return}let a={left:e.offsetLeft,top:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight};w(t=>t&&t.left===a.left&&t.top===a.top&&t.width===a.width&&t.height===a.height?t:a)},[s]);(0,i.useLayoutEffect)(()=>{D()},[D,j,h]),(0,i.useEffect)(()=>{if(!y||b)return;let t=requestAnimationFrame(()=>C(!0));return()=>cancelAnimationFrame(t)},[y,b]),(0,i.useEffect)(()=>{let t=p.current;if(!t||"undefined"==typeof ResizeObserver)return;let e=new ResizeObserver(()=>D());return e.observe(t),Object.values(x.current).forEach(t=>{t&&e.observe(t)}),()=>e.disconnect()},[D,j]),(0,i.useEffect)(()=>{let t=document.fonts;if(!(null==t?void 0:t.ready))return;let e=!1;return t.ready.then(()=>{e||D()}).catch(()=>{}),()=>{e=!0}},[D]);let k=!!y&&!v;return(0,a.jsxs)("div",{ref:p,role:"group","aria-label":f,className:(0,r.cn)("relative flex items-center",o),children:[(0,a.jsx)("div",{"aria-hidden":!0,className:(0,r.cn)("absolute left-0 top-0 pointer-events-none","pill"===h?"rounded-lg":"rounded-full",b&&"transition-[transform,width,opacity] duration-300 ease-out motion-reduce:transition-none",k?"opacity-100":"opacity-0",d),style:y?{transform:"translate3d(".concat(y.left,"px, ").concat("underline"===h?y.top+y.height-m:y.top,"px, 0)"),width:y.width,height:"underline"===h?m:y.height}:void 0}),e.map(t=>{let e=t.key===s;return(0,a.jsx)("button",{ref:e=>
1{x.current[t.key]=e},type:"button","aria-pressed":e,title:t.title,"aria-label":t.ariaLabel,disabled:v,onClick:()=>n(t.key),className:(0,r.cn)("relative z-10 flex items-center justify-center transition-colors duration-200 motion-reduce:transition-none",g&&"flex-1",l,e?c:u,t.className),children:t.label},t.key)})]})}},21235:function(t,e,s){s.d(e,{Od:function(){return r}});var a=s(57437),i=s(93448);function r(t){let{className:e,variant:s="rect",width:r,height:n,style:o,...l}=t;return(0,a.jsx)("div",{className:(0,i.cn)("relative overflow-hidden bg-zinc-200/70 dark:bg-white/5 animate-shimmer",{text:"h-4 rounded-md",rect:"rounded-xl",circle:"rounded-full",card:"rounded-2xl"}[s],e),style:{width:void 0!==r?"number"==typeof r?"".concat(r,"px"):r:void 0,height:void 0!==n?"number"==typeof n?"".concat(n,"px"):n:void 0,...o},"aria-hidden":"true",...l})}s(2265)},4908:function(t,e,s){s.d(e,{Pl:function(){return g},fc:function(){return p},AF:function(){return f}});var a=s(57437),i=s(98319),r=s(2265),n=s(73369),o=s(29827),l=s(71632),c=s(83008),u=s(67920),d=s(27526),h=s(54696);function m(t){let{reloadStudents:e}=t,{data:s}=(0,d.kP)(),{createStudent:a}=(0,n.N)(),{addClass:i}=(0,n.Kw)(),o=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{(null==s?void 0:s.user)&&!o.current&&(async()=>{o.current=!0;let t=!1,r={user:{id:s.user.id,name:s.user.name||"User",role:"admin"}};try{let e=localStorage.getItem("saemo-guest-classes");if(e){let s=JSON.parse(e).filter(t=>"ë´ì íê¸"!==t&&"ë´ìíê¸"!==t);if(s.length>0)for(let e of s)try{await i.mutateAsync(e),t=!0}catch(t){}localStorage.removeItem("saemo-guest-classes")}let s=localStorage.getItem("saemo-guest-students");if(s){let e=JSON.parse(s);if(Array.isArray(e)&&e.length>0)for(let s of e)try{var n;await a.mutateAsync({number:s.number,name:s.name,memo:s.memo,homeClassId:null!==(n=s.homeClassId)&&void 0!==n?n:s.classId,customClassIds:s.customClassIds||[],grade:s.grade,classNum:s.classNum}),t=!0}catch(t){}localStorage.removeItem("saemo-guest-students")}let o=localStorage.getItem("saemo-guest-dashboard-memo"),l=localStorage.getItem("dashboard-memo"),u=o||l;if(u){let e=await (0,c.X)("getDashboardMemo",{},r);e.success&&e.data||(await (0,c.X)("saveDashboardMemo",{content:u},r),t=!0),localStorage.removeItem("saemo-guest-dashboard-memo"),localStorage.removeItem("dashboard-memo")}let d=localStorage.getItem("teacher-timetable")||localStorage.getItem("saemo-guest-timetable-my");if(d){let e=JSON.parse(d),s=await (0,c.X)("getTimetable",{type:"teacher"},r);s.success&&s.data&&0!==Object.keys(s.data).length||(await (0,c.X)("saveTimetable",{type:"teacher",data:e},r),t=!0),localStorage.removeItem("teacher-timetable"),localStorage.removeItem("saemo-guest-timetable-my")}let h=localStorage.getItem("class-timetable")||localStorage.getItem("saemo-guest-timetable-class");if(h){let e=JSON.parse(h),s=await (0,c.X)("getTimetable",{type:"class"},r);s.success&&s.data&&0!==Object.keys(s.data).length||(await (0,c.X)("saveTimetable",{type:"class",data:e},r),t=!0),localStorage.removeItem("class-timetable"),localStorage.removeItem("saemo-guest-timetable-class")}}catch(t){console.error("Guest migration error:",t)}finally{t&&e(),o.current=!1}})()},[s,a,i,e]),null}let v=(0,r.createContext)(void 0);function g(t){let{children:e}=t,s=(0,n.wh)(),l=(0,n.tH)(),c=(0,n.N)(),u=(0,n.Kw)(),g=(0,o.NL)(),{showToast:f}=(0,i.pm)(),{status:p}=(0,d.kP)(),x=(0,h.Dv)(),y=(0,r.useRef)(p);(0,r.useEffect)(()=>{if(("loading"===y.current||"unauthenticated"===y.current)&&"authenticated"===p){let t=setTimeout(()=>{console.log("[StudentProvider] Session transition detected:",y.current,"â authenticated. Invalidating queries."),g.invalidateQueries({queryKey:n.bs.all}),g.invalidateQueries({queryKey:n.ic.all})},300);return y.current=p,()=>clearTimeout(t)}y.current=p},[p,g]),(0,r.useEffect)(()=>{if("authenticated"!==p||!s.isError&&!l.isError)return;console.warn("[StudentProvider] Self-healing: Query in error state while authenticated. Scheduling retry...");let t=setTimeout(()=>{console.log("[StudentProvider] Self-healing: Retrying failed queries."),g.invalidateQueries({queryKey:n.bs.all}),g.invalidateQueries({queryKey:n.ic.all})},2e3);return()=>clearTimeout(t)},[p,s.isError,l.isError,g]);let w=(0,r.useMemo)(()=>{var t;return null!==(t=s.data)&&void 0!==t?t:[]},[s.data]),b=(0,r.useMemo)(()=>{var t;return null!==(t=l.data)&&void 0!==t?t:["ë´ì íê¸"]}
1,[l.data]),C=(0,r.useMemo)(()=>!!x||s.isSuccess&&l.isSuccess||s.isFetched&&void 0!==s.data,[x,s.isSuccess,l.isSuccess,s.isFetched,s.data]),j=s.isLoading||l.isLoading,D=s.isError||l.isError?s.error||l.error:null,k=u.addClass.mutateAsync,E=u.removeClass.mutateAsync,M=u.renameClass.mutateAsync,S=u.updateClassOrder.mutateAsync,O=c.createStudent.mutateAsync,N=c.deleteStudent.mutateAsync,A=c.updateStudent.mutateAsync,z=c.bulkCreateStudents.mutateAsync,R=(0,r.useCallback)(async t=>{b.includes(t)||await k(t)},[b,k]),P=(0,r.useCallback)(async t=>{"ë´ì íê¸"!==t&&"ë´ìíê¸"!==t&&await E(t)},[E]),I=(0,r.useCallback)(async(t,e)=>{"ë´ì íê¸"!==t&&"ë´ìíê¸"!==t&&e.trim()&&t!==e&&await M({oldName:t,newName:e.trim()})},[M]),L=(0,r.useCallback)(async t=>{await S(t)},[S]),F=(0,r.useCallback)(async t=>{try{return await O(t),!0}catch(t){return console.error("Failed to add student:",t),f(t.message||"ìì²ì ì²ë¦¬íì§ ëª»íìµëë¤.","error"),!1}},[O,f]),T=(0,r.useCallback)(async t=>{try{return await N(t),!0}catch(t){return console.error("Failed to remove student:",t),!1}},[N]),V=(0,r.useCallback)(async(t,e)=>{try{return await A({id:t,...e}),!0}catch(t){return console.error("Failed to update student:",t),!1}},[A]),K=(0,r.useCallback)(async t=>{let e=w.length>0?Math.max(...w.map(t=>t.number)):0,s=t.map((t,s)=>({name:t,number:e+1+s}));await z({students:s})},[w,z]),q=s.refetch,B=(0,r.useCallback)(async()=>{await q()},[q]);(0,r.useEffect)(()=>{let t=()=>{g.invalidateQueries()};return window.addEventListener("refresh-active-view",t),()=>window.removeEventListener("refresh-active-view",t)},[g]);let H=(0,r.useMemo)(()=>({students:w,classes:b,addClass:R,removeClass:P,renameClass:I,updateClassOrder:L,addStudent:F,removeStudent:T,updateStudent:V,bulkAddStudents:K,reloadStudents:B,isLoaded:C,isLoading:j,error:D}),[w,b,R,P,I,L,F,T,V,K,B,C,j,D]);return(0,a.jsxs)(v.Provider,{value:H,children:[(0,a.jsx)(m,{reloadStudents:B}),e]})}function f(){let t=(0,r.useContext)(v);if(!t)throw Error("useStudents must be used within a StudentProvider");return t}function p(){var t;let{students:e,isLoaded:s}=f(),{data:a,status:i}=(0,d.kP)(),r=(0,u.XC)(),o=(0,h.Dv)(),m=s&&e.length>0,{data:v}=(0,l.a)({queryKey:[...n.bs.all,"has-roster",null==a?void 0:null===(t=a.user)||void 0===t?void 0:t.id],enabled:s&&!m&&!o&&"authenticated"===i,staleTime:6e5,queryFn:async()=>{var t;let e=await (0,c.X)("hasStudentRoster",{},r);return!!(e.success&&(null===(t=e.data)||void 0===t?void 0:t.hasRoster))}});return m||!0===v}},2894:function(t,e,s){s.d(e,{R:function(){return o},m:function(){return n}});var a=s(18238),i=s(7989),r=s(11255),n=class extends i.F{#t;#e;#s;#a;constructor(t){super(),this.#t=t.client,this.mutationId=t.mutationId,this.#s=t.mutationCache,this.#e=[],this.state=t.state||o(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#e.includes(t)||(this.#e.push(t),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#e=this.#e.filter(e=>e!==t),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#e.length||("pending"===this.state.status?this.scheduleGc():this.#s.remove(this))}continue(){return this.#a?.continue()??this.execute(this.state.variables)}async execute(t){let e=()=>{this.#i({type:"continue"})},s={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#a=(0,r.Mz)({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(Error("No mutationFn found")),onFail:(t,e)=>{this.#i({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#i({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)});let a="pending"===this.state.status,i=!this.#a.canStart();try{if(a)e();else{this.#i({type:"pending",variables:t,isPaused:i}),this.#s.config.onMutate&&await this.#s.config.onMutate(t,this,s);let e=await this.options.onMutate?.(t,s);e!==this.state.context&&this.#i({type:"pending",context:e,variables:t,isPaused:i})}let r=await this.#a.start();return await this.#s.config.onSuccess?.(r,t,this.state.context,this,s),await this.options.onSuccess?.(r,t,this.state.context,s),await this.#s.config.onSettled?.(r,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(r,null,t,this.state.context,s),this.#i({type:"success",data:r}),r}catch(e){try{await this.#s.config.onError?.(e,t,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onError?.(e,t,this.state.context,s)}catch(t){Promise.reject(t)}try{await this.#s.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,s)}catch(t){Promise.reject(t)}throw this.#i({type:"error",error:e}),e}finally{this.#s.runNext(this)}}#i(t){this.state=(e=>{switch(t.type){case"failed":return{...e,failureCount:t.failureCount,failureReason:t.error};
1case"pause":return{...e,isPaused:!0};case"continue":return{...e,isPaused:!1};case"pending":return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}})(this.state),a.Vr.batch(()=>{this.#e.forEach(e=>{e.onMutationUpdate(t)}),this.#s.notify({mutation:this,type:"updated",action:t})})}};function o(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},21770:function(t,e,s){s.d(e,{D:function(){return u}});var a=s(2265),i=s(2894),r=s(18238),n=s(24112),o=s(45345),l=class extends n.l{#t;#r=void 0;#n;#o;constructor(t,e){super(),this.#t=t,this.setOptions(e),this.bindMethods(),this.#l()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){let e=this.options;this.options=this.#t.defaultMutationOptions(t),(0,o.VS)(this.options,e)||this.#t.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#n,observer:this}),e?.mutationKey&&this.options.mutationKey&&(0,o.Ym)(e.mutationKey)!==(0,o.Ym)(this.options.mutationKey)?this.reset():this.#n?.state.status==="pending"&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(t){this.#l(),this.#c(t)}getCurrentResult(){return this.#r}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#l(),this.#c()}mutate(t,e){return this.#o=e,this.#n?.removeObserver(this),this.#n=this.#t.getMutationCache().build(this.#t,this.options),this.#n.addObserver(this),this.#n.execute(t)}#l(){let t=this.#n?.state??(0,i.R)();this.#r={...t,isPending:"pending"===t.status,isSuccess:"success"===t.status,isError:"error"===t.status,isIdle:"idle"===t.status,mutate:this.mutate,reset:this.reset}}#c(t){r.Vr.batch(()=>{if(this.#o&&this.hasListeners()){let e=this.#r.variables,s=this.#r.context,a={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#o.onSuccess?.(t.data,e,s,a)}catch(t){Promise.reject(t)}try{this.#o.onSettled?.(t.data,null,e,s,a)}catch(t){Promise.reject(t)}}else if(t?.type==="error"){try{this.#o.onError?.(t.error,e,s,a)}catch(t){Promise.reject(t)}try{this.#o.onSettled?.(void 0,t.error,e,s,a)}catch(t){Promise.reject(t)}}}this.listeners.forEach(t=>{t(this.#r)})})}},c=s(29827);function u(t,e){let s=(0,c.NL)(e),[i]=a.useState(()=>new l(s,t));a.useEffect(()=>{i.setOptions(t)},[i,t]);let n=a.useSyncExternalStore(a.useCallback(t=>i.subscribe(r.Vr.batchCalls(t)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),u=a.useCallback((t,e)=>{i.mutate(t,e).catch(o.ZT)},[i]);if(n.error&&(0,o.L3)(i.options.throwOnError,[n.error]))throw n.error;return{...n,mutate:u,mutateAsync:n.mutate}}},71632:function(t,e,s){s.d(e,{a:function(){return r}});var a=s(86900),i=s(68873);function r(t,e){return(0,i.r)(t,a.z,e)}}}]);
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.