@hydralms/components 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ForumBoard-CHXU3mjC.js +2207 -0
- package/dist/ForumBoard-d1w5-r6n.cjs +1 -0
- package/dist/assessment-toolbar/assessment-toolbar.d.ts +1 -1
- package/dist/assessment-toolbar/index.d.ts +5 -1
- package/dist/assessment-toolbar/question-header-bar.d.ts +2 -0
- package/dist/assessment-toolbar/question-materials-drawer.d.ts +2 -0
- package/dist/assessment-toolbar/question-navigator.d.ts +1 -1
- package/dist/assessment-toolbar/types.d.ts +52 -4
- package/dist/assessment-toolbar/use-countdown.d.ts +43 -0
- package/dist/common/index.d.ts +2 -1
- package/dist/common/stepper.d.ts +6 -0
- package/dist/common/types.d.ts +37 -0
- package/dist/components.css +1 -1
- package/dist/content/attachment-list.d.ts +6 -0
- package/dist/content/content-block.d.ts +1 -1
- package/dist/content/index.d.ts +2 -1
- package/dist/content/types.d.ts +39 -0
- package/dist/curriculum/curriculum-item.d.ts +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +551 -312
- package/dist/modules/AssignmentModule/AssignmentModule.d.ts +8 -0
- package/dist/modules/AssignmentModule/types.d.ts +65 -0
- package/dist/modules/CertificateModule/CertificateModule.d.ts +9 -0
- package/dist/modules/CertificateModule/types.d.ts +49 -0
- package/dist/modules/DiscussionModule/DiscussionModule.d.ts +8 -0
- package/dist/modules/DiscussionModule/types.d.ts +47 -0
- package/dist/modules/ExamModule/ExamModule.d.ts +8 -0
- package/dist/modules/ExamModule/types.d.ts +64 -0
- package/dist/modules/GradeCenterModule/GradeCenterModule.d.ts +9 -0
- package/dist/modules/GradeCenterModule/types.d.ts +54 -0
- package/dist/modules/QuizModule/QuizModule.d.ts +1 -1
- package/dist/modules/QuizModule/types.d.ts +6 -1
- package/dist/modules/SurveyModule/SurveyModule.d.ts +7 -0
- package/dist/modules/SurveyModule/types.d.ts +49 -0
- package/dist/modules/index.d.ts +12 -0
- package/dist/modules.cjs +1 -0
- package/dist/modules.js +1422 -0
- package/dist/progress/achievement-badge.d.ts +6 -0
- package/dist/progress/activity-timeline.d.ts +6 -0
- package/dist/progress/index.d.ts +4 -1
- package/dist/progress/stat-card.d.ts +1 -1
- package/dist/progress/streak-badge.d.ts +6 -0
- package/dist/progress/types.d.ts +97 -0
- package/dist/questions/essay.d.ts +1 -1
- package/dist/questions/hotspot.d.ts +21 -0
- package/dist/questions/index.d.ts +9 -1
- package/dist/questions/inline-choice.d.ts +21 -0
- package/dist/questions/matching.d.ts +22 -0
- package/dist/questions/numeric.d.ts +11 -0
- package/dist/questions/ordering.d.ts +12 -0
- package/dist/questions/scenario.d.ts +23 -0
- package/dist/questions/scoring.d.ts +22 -0
- package/dist/questions/spreadsheet.d.ts +29 -0
- package/dist/questions/types.d.ts +106 -1
- package/dist/questions/use-drag-reorder.d.ts +17 -0
- package/dist/sections/CertificateViewer/types.d.ts +7 -5
- package/dist/sections/ExamSession/ExamSession.d.ts +1 -1
- package/dist/sections/ExamSession/types.d.ts +6 -1
- package/dist/sections/ForumBoard/ForumBoard.d.ts +8 -0
- package/dist/sections/ForumBoard/types.d.ts +64 -0
- package/dist/sections/QuizSession/QuizSession.d.ts +1 -1
- package/dist/sections/QuizSession/types.d.ts +6 -1
- package/dist/sections/RequirementsChecklist/RequirementsChecklist.d.ts +8 -0
- package/dist/sections/RequirementsChecklist/types.d.ts +37 -0
- package/dist/sections/RubricView/RubricView.d.ts +9 -0
- package/dist/sections/RubricView/types.d.ts +50 -0
- package/dist/sections/index.d.ts +7 -1
- package/dist/sections.cjs +1 -1
- package/dist/sections.js +250 -1715
- package/dist/social/post-card.d.ts +1 -1
- package/dist/tabs-DRM2Iq_J.cjs +172 -0
- package/dist/tabs-Wf3h_Cx3.js +21580 -0
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/drawer.d.ts +84 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/progress.d.ts +1 -1
- package/dist/ui/rich-text-editor.d.ts +30 -0
- package/dist/ui/rich-text-toolbar.d.ts +8 -0
- package/dist/utils/array-utils.d.ts +4 -0
- package/dist/utils/flatten-leaves.d.ts +6 -0
- package/dist/utils/format-file-size.d.ts +1 -0
- package/dist/utils/format-timestamp.d.ts +1 -0
- package/dist/utils/is-empty-html.d.ts +5 -0
- package/dist/utils/shuffle.d.ts +1 -0
- package/dist/utils/string-utils.d.ts +12 -0
- package/dist/video/video-bookmark.d.ts +1 -1
- package/dist/video/video-playlist-item.d.ts +1 -1
- package/package.json +92 -3
- package/src/assessment-toolbar/assessment-toolbar.tsx +54 -49
- package/src/assessment-toolbar/index.ts +6 -0
- package/src/assessment-toolbar/question-header-bar.tsx +61 -0
- package/src/assessment-toolbar/question-materials-drawer.tsx +55 -0
- package/src/assessment-toolbar/question-navigator.tsx +3 -31
- package/src/assessment-toolbar/timer-display.tsx +2 -2
- package/src/assessment-toolbar/types.ts +54 -4
- package/src/assessment-toolbar/use-countdown.ts +153 -0
- package/src/common/index.ts +3 -0
- package/src/common/search-input.tsx +7 -6
- package/src/common/stepper.tsx +100 -0
- package/src/common/types.ts +39 -0
- package/src/content/attachment-list.tsx +90 -0
- package/src/content/content-block.tsx +4 -2
- package/src/content/file-upload-zone.tsx +1 -6
- package/src/content/index.ts +3 -0
- package/src/content/types.ts +41 -0
- package/src/curriculum/curriculum-item.tsx +7 -3
- package/src/feedback/feedback-banner.tsx +12 -14
- package/src/flashcards/flashcard-deck.tsx +1 -9
- package/src/flashcards/flashcard.tsx +1 -1
- package/src/modules/AssignmentModule/AssignmentModule.tsx +305 -0
- package/src/modules/AssignmentModule/types.ts +73 -0
- package/src/modules/CertificateModule/CertificateModule.tsx +161 -0
- package/src/modules/CertificateModule/types.ts +47 -0
- package/src/modules/CoursePlayer/CoursePlayer.tsx +44 -48
- package/src/modules/DiscussionModule/DiscussionModule.tsx +110 -0
- package/src/modules/DiscussionModule/types.ts +54 -0
- package/src/modules/ExamModule/ExamModule.tsx +285 -0
- package/src/modules/ExamModule/types.ts +66 -0
- package/src/modules/FlashcardLab/FlashcardLab.tsx +29 -16
- package/src/modules/GradeCenterModule/GradeCenterModule.tsx +169 -0
- package/src/modules/GradeCenterModule/types.ts +63 -0
- package/src/modules/QuizModule/QuizModule.tsx +88 -88
- package/src/modules/QuizModule/types.ts +6 -1
- package/src/modules/SurveyModule/SurveyModule.tsx +180 -0
- package/src/modules/SurveyModule/types.ts +51 -0
- package/src/modules/index.ts +24 -0
- package/src/progress/achievement-badge.tsx +52 -0
- package/src/progress/activity-timeline.tsx +84 -0
- package/src/progress/index.ts +7 -0
- package/src/progress/stat-card.tsx +30 -18
- package/src/progress/streak-badge.tsx +35 -0
- package/src/progress/types.ts +101 -0
- package/src/questions/choice.tsx +7 -9
- package/src/questions/essay.tsx +23 -25
- package/src/questions/fill-in-the-blank.tsx +13 -16
- package/src/questions/hotspot.tsx +154 -0
- package/src/questions/index.ts +16 -0
- package/src/questions/inline-choice.tsx +151 -0
- package/src/questions/matching.tsx +228 -0
- package/src/questions/multiple-choice.tsx +7 -9
- package/src/questions/numeric.tsx +102 -0
- package/src/questions/ordering.tsx +159 -0
- package/src/questions/question-renderer.tsx +21 -0
- package/src/questions/scenario.tsx +140 -0
- package/src/questions/scoring.ts +201 -0
- package/src/questions/spreadsheet.tsx +259 -0
- package/src/questions/true-false.tsx +7 -9
- package/src/questions/types.ts +123 -1
- package/src/questions/use-drag-reorder.ts +80 -0
- package/src/sections/AnnouncementFeed/AnnouncementFeed.tsx +2 -15
- package/src/sections/AssessmentReview/AssessmentReview.tsx +13 -2
- package/src/sections/AssignmentSubmission/AssignmentSubmission.tsx +7 -5
- package/src/sections/CertificateViewer/CertificateViewer.tsx +409 -56
- package/src/sections/CertificateViewer/types.ts +13 -5
- package/src/sections/CourseOutline/CourseOutline.tsx +4 -14
- package/src/sections/DiscussionThread/DiscussionThread.tsx +13 -10
- package/src/sections/ExamSession/ExamSession.tsx +44 -7
- package/src/sections/ExamSession/types.ts +6 -1
- package/src/sections/ForumBoard/ForumBoard.tsx +284 -0
- package/src/sections/ForumBoard/types.ts +67 -0
- package/src/sections/GradebookTable/GradebookTable.tsx +1 -1
- package/src/sections/LecturePlayer/LecturePlayer.tsx +1 -1
- package/src/sections/LessonPage/LessonPage.tsx +5 -9
- package/src/sections/PracticeQuiz/PracticeQuiz.tsx +15 -26
- package/src/sections/ProgressDashboard/ProgressDashboard.tsx +65 -65
- package/src/sections/QuizSession/QuizSession.tsx +67 -8
- package/src/sections/QuizSession/types.ts +6 -1
- package/src/sections/RequirementsChecklist/RequirementsChecklist.tsx +107 -0
- package/src/sections/RequirementsChecklist/types.ts +38 -0
- package/src/sections/ResourceLibrary/ResourceLibrary.tsx +4 -9
- package/src/sections/RubricView/RubricView.tsx +138 -0
- package/src/sections/RubricView/types.ts +52 -0
- package/src/sections/ScrollableQuiz/ScrollableQuiz.tsx +23 -9
- package/src/sections/SurveyForm/SurveyForm.tsx +8 -5
- package/src/sections/index.ts +20 -1
- package/src/social/post-card.tsx +8 -19
- package/src/social/user-avatar.tsx +1 -0
- package/src/styles/globals.css +13 -0
- package/src/ui/drawer.tsx +600 -0
- package/src/ui/index.ts +19 -0
- package/src/ui/rich-text-editor.tsx +109 -0
- package/src/ui/rich-text-toolbar.tsx +156 -0
- package/src/utils/array-utils.ts +17 -0
- package/src/utils/flatten-leaves.ts +17 -0
- package/src/utils/format-file-size.ts +5 -0
- package/src/utils/format-timestamp.ts +13 -0
- package/src/utils/is-empty-html.ts +7 -0
- package/src/utils/shuffle.ts +8 -0
- package/src/utils/string-utils.ts +30 -0
- package/src/video/video-bookmark.tsx +4 -3
- package/src/video/video-chapter-list.tsx +9 -4
- package/src/video/video-player.tsx +11 -4
- package/src/video/video-playlist-item.tsx +8 -3
- package/src/video/video-thumbnail-card.tsx +4 -0
- package/src/video/video-transcript.tsx +8 -5
- package/dist/table-BrS5cDQu.js +0 -2510
- package/dist/table-D6AkBBEo.cjs +0 -1
package/dist/table-D6AkBBEo.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),b=require("lucide-react"),p=require("react"),A=require("react-dom"),S=require("class-variance-authority"),Ie=require("clsx"),ze=require("tailwind-merge");function Le(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(r,s,n.get?n:{enumerable:!0,get:()=>t[s]})}}return r.default=t,Object.freeze(r)}const I=Le(p);function u(...t){return ze.twMerge(Ie.clsx(t))}const H=S.cva("relative flex w-full items-start gap-3 rounded-lg border p-4 text-sm [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:translate-y-0.5",{variants:{variant:{default:"bg-card text-foreground",destructive:"border-destructive/50 bg-destructive/5 text-destructive [&>svg]:text-destructive",success:"border-success/50 bg-success/5 text-success [&>svg]:text-success",warning:"border-warning/50 bg-warning/5 text-warning [&>svg]:text-warning",info:"border-info/50 bg-info/5 text-info [&>svg]:text-info"}},defaultVariants:{variant:"default"}});function T({className:t,variant:r,...s}){return e.jsx("div",{"data-slot":"alert",role:"alert",className:u(H({variant:r}),t),...s})}function Me({className:t,...r}){return e.jsx("div",{"data-slot":"alert-title",className:u("font-medium leading-normal tracking-tight",t),...r})}function k({className:t,...r}){return e.jsx("div",{"data-slot":"alert-description",className:u("text-foreground text-sm [&_p]:leading-relaxed",t),...r})}const P=({question:t,sessionAnswers:r,onAnswer:s,readOnly:n=!1,showCorrectAnswers:a=!1,disabled:i=!1})=>{const[o,l]=p.useState([]),x=[...t.answers||[]].sort((d,c)=>d.sequence-c.sequence),f=d=>{n||i||l(c=>{const m=c.includes(d)?c.filter(h=>h!==d):[...c,d];return s==null||s(m.map(h=>({uid:h}))),m})};p.useEffect(()=>{const d=(r==null?void 0:r.map(c=>c.answerUid))||[];l(d)},[r]);const g=d=>{var m;if(!a)return"";const c=(m=t.answers)==null?void 0:m.find(h=>h.uid===d);return c!=null&&c.isCorrect?"bg-success/10 border border-success/30 px-2":o.includes(d)&&!(c!=null&&c.isCorrect)?"bg-destructive/10 border border-destructive/30 px-2":""};return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{dangerouslySetInnerHTML:{__html:t.content}}),e.jsx("div",{className:"flex flex-col gap-2",children:x.map(d=>e.jsx("div",{className:u("rounded-md transition-colors",g(d.uid)),children:e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer py-1 has-[input:disabled]:cursor-default has-[input:disabled]:opacity-60",children:[e.jsx("input",{type:"checkbox",checked:o.includes(d.uid),onChange:()=>f(d.uid),disabled:n||i,className:"accent-primary m-0 shrink-0"}),e.jsx("span",{className:"text-sm",dangerouslySetInnerHTML:{__html:d.content}})]})},d.uid))}),a&&t.explanation&&e.jsx(T,{className:"mt-2",children:e.jsxs(k,{children:[e.jsx("strong",{children:"Explanation:"})," ",e.jsx("span",{dangerouslySetInnerHTML:{__html:t.explanation}})]})})]})},O=({question:t,sessionAnswers:r,onAnswer:s,readOnly:n=!1,showCorrectAnswers:a=!1,disabled:i=!1})=>{const[o,l]=p.useState(""),x=[...t.answers||[]].sort((d,c)=>d.sequence-c.sequence),f=d=>{n||i||(l(d),s==null||s([{uid:d}]))};p.useEffect(()=>{var c;const d=((c=r==null?void 0:r[0])==null?void 0:c.answerUid)||"";l(d)},[r]);const g=d=>{var m;if(!a)return"px-2";const c=(m=t.answers)==null?void 0:m.find(h=>h.uid===d);return c!=null&&c.isCorrect?"bg-success/10 border border-success/30 px-2":o===d&&!(c!=null&&c.isCorrect)?"bg-destructive/10 border border-destructive/30 px-2":"px-2"};return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{dangerouslySetInnerHTML:{__html:t.content}}),e.jsx("div",{className:"flex flex-col gap-2",children:x.map(d=>e.jsx("div",{className:u("rounded-md transition-colors",g(d.uid)),children:e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer py-1 has-[input:disabled]:cursor-default has-[input:disabled]:opacity-60",children:[e.jsx("input",{type:"radio",name:t.uid,value:d.uid,checked:o===d.uid,onChange:()=>f(d.uid),disabled:n||i,className:"accent-primary m-0 shrink-0"}),e.jsx("span",{dangerouslySetInnerHTML:{__html:d.content}})]})},d.uid))}),a&&t.explanation&&e.jsx(T,{className:"mt-2",children:e.jsxs(k,{children:[e.jsx("strong",{children:"Explanation:"})," ",e.jsx("span",{dangerouslySetInnerHTML:{__html:t.explanation}})]})})]})},B=({question:t,sessionAnswers:r,onAnswer:s,readOnly:n=!1,showCorrectAnswers:a=!1,disabled:i=!1})=>{const[o,l]=p.useState(""),x=[...t.answers||[]].sort((d,c)=>d.sequence-c.sequence),f=d=>{n||i||(l(d),s==null||s([{uid:d}]))};p.useEffect(()=>{var c;const d=((c=r==null?void 0:r[0])==null?void 0:c.answerUid)||"";l(d)},[r]);const g=d=>{var m;if(!a)return"px-2";const c=(m=t.answers)==null?void 0:m.find(h=>h.uid===d);return c!=null&&c.isCorrect?"bg-success/10 border border-success/30 px-2":o===d&&!(c!=null&&c.isCorrect)?"bg-destructive/10 border border-destructive/30 px-2":"px-2"};return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("div",{dangerouslySetInnerHTML:{__html:t.content}}),e.jsx("div",{className:"flex flex-col gap-2",children:x.map(d=>e.jsx("div",{className:u("rounded-md transition-colors",g(d.uid)),children:e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer py-1 has-[input:disabled]:cursor-default has-[input:disabled]:opacity-60",children:[e.jsx("input",{type:"radio",name:t.uid,value:d.uid,checked:o===d.uid,onChange:()=>f(d.uid),disabled:n||i,className:"accent-primary m-0 shrink-0"}),e.jsx("span",{dangerouslySetInnerHTML:{__html:d.content}})]})},d.uid))}),a&&t.explanation&&e.jsx(T,{className:"mt-2",children:e.jsxs(k,{children:[e.jsx("strong",{children:"Explanation:"})," ",e.jsx("span",{dangerouslySetInnerHTML:{__html:t.explanation}})]})})]})};function M(t,r){let s;return(...n)=>{clearTimeout(s),s=setTimeout(()=>t(...n),r)}}function U({className:t,type:r,...s}){return e.jsx("input",{type:r,"data-slot":"input",className:u("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-sm shadow-xs outline-none transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:opacity-50","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 aria-invalid:border-destructive",t),...s})}const K=({question:t,sessionAnswers:r,onAnswer:s,readOnly:n=!1,showCorrectAnswers:a=!1,disabled:i=!1})=>{const[o,l]=p.useState(""),x=p.useCallback(M(g=>{var d,c;s==null||s([{uid:((c=(d=t.answers)==null?void 0:d[0])==null?void 0:c.uid)||"",content:g}])},300),[s,t.answers]),f=g=>{const d=g.target.value;l(d),x(d)};return p.useEffect(()=>{var g;l(((g=r==null?void 0:r[0])==null?void 0:g.content)||"")},[r]),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("div",{dangerouslySetInnerHTML:{__html:t.content}}),e.jsx(U,{value:o,onChange:f,placeholder:"Type your answer here...",disabled:n||i}),a&&t.explanation&&e.jsx(T,{className:"mt-1",children:e.jsxs(k,{children:[e.jsx("strong",{children:"Explanation:"})," ",e.jsx("span",{dangerouslySetInnerHTML:{__html:t.explanation}})]})})]})};function Z({className:t,...r}){return e.jsx("textarea",{"data-slot":"textarea",className:u("placeholder:text-muted-foreground border-input flex min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-xs outline-none transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 aria-invalid:border-destructive",t),...r})}const G=({question:t,sessionAnswers:r,onAnswer:s,readOnly:n=!1,disabled:a=!1})=>{const[i,o]=p.useState(""),l=p.useCallback(M(f=>{var g,d;s==null||s([{uid:((d=(g=t.answers)==null?void 0:g[0])==null?void 0:d.uid)||t.uid,content:f}])},500),[s,t.answers,t.uid]),x=f=>{const g=f.target.value;o(g),l(g)};return p.useEffect(()=>{var f;o(((f=r==null?void 0:r[0])==null?void 0:f.content)||"")},[r]),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("div",{dangerouslySetInnerHTML:{__html:t.content}}),e.jsx(Z,{className:"min-h-30 resize-y",value:i,onChange:x,placeholder:"Write your response here...",disabled:n||a})]})},W=t=>{switch(t.question.type){case"multiple_choice":return e.jsx(P,{...t});case"choice":return e.jsx(O,{...t});case"true_false":return e.jsx(B,{...t});case"fill_in_the_blank":return e.jsx(K,{...t});case"essay":return e.jsx(G,{...t});default:return e.jsxs("p",{className:"text-muted-foreground",children:["Question type “",t.question.type,"” is not supported yet."]})}},Q=t=>{if(t<1)return"-";const r=Math.floor(t/3600),s=Math.floor(t%3600/60),n=t%60,a=[];return r>0&&a.push(`${r}h`),s>0&&a.push(`${s}m`),n>0&&a.push(`${n}s`),a.join(" ")},L=t=>{const r=Math.floor(t/3600),s=Math.floor(t%3600/60),n=t%60,a=i=>i.toString().padStart(2,"0");return r>0?`${a(r)}:${a(s)}:${a(n)}`:`${a(s)}:${a(n)}`};function Ee(t,r){return t?{wrapper:"border-destructive/30 bg-destructive/10 text-destructive",bold:!0}:r?{wrapper:"border-warning/30 bg-warning/10 text-warning",bold:!0}:{wrapper:"border-border bg-muted text-muted-foreground",bold:!1}}const X=({timeElapsedSeconds:t,timeLimitSeconds:r,variant:s="compact"})=>{const n=r!=null&&r>0,a=n?Math.max(0,r-t):0,i=n&&a<r*.1,o=n&&a<=60,l=L(n?a:t),x=Ee(o,i);return s==="compact"?e.jsxs("div",{className:u("flex items-center gap-1.5 px-2.5 py-1 rounded-full border",x.wrapper),children:[e.jsx("span",{className:"inline-flex leading-none",children:e.jsx(b.Clock,{size:13})}),e.jsx("span",{className:"text-xs font-semibold font-mono tracking-wide",children:l})]}):e.jsxs("div",{className:u("flex items-center gap-1.5",x.wrapper),children:[e.jsx("span",{className:"inline-flex leading-none",children:e.jsx(b.Clock,{size:16})}),e.jsxs("span",{className:u("text-sm",x.bold&&"font-semibold"),children:[n?"Time remaining: ":"Time elapsed: ",e.jsx("span",{className:"font-mono font-semibold",children:l})]})]})},Y=p.createContext(null);function J(){const t=p.useContext(Y);if(!t)throw new Error("Tooltip compound components must be used within <Tooltip>");return t}function q({children:t,delayDuration:r=300}){const[s,n]=p.useState(!1),a=p.useRef(null),i=p.useRef(void 0),o=p.useId(),l=p.useCallback(()=>{clearTimeout(i.current),i.current=setTimeout(()=>n(!0),r)},[r]),x=p.useCallback(()=>{clearTimeout(i.current),n(!1)},[]);return e.jsx(Y.Provider,{value:{open:s,show:l,hide:x,triggerRef:a,tooltipId:o},children:t})}function ee({children:t}){const{show:r,hide:s,triggerRef:n,tooltipId:a,open:i}=J();return p.isValidElement(t)?p.cloneElement(t,{ref:o=>{n.current=o;const l=t.ref;typeof l=="function"?l(o):l&&typeof l=="object"&&(l.current=o)},onMouseEnter:o=>{r();const l=t.props.onMouseEnter;l==null||l(o)},onMouseLeave:o=>{s();const l=t.props.onMouseLeave;l==null||l(o)},onFocus:o=>{r();const l=t.props.onFocus;l==null||l(o)},onBlur:o=>{s();const l=t.props.onBlur;l==null||l(o)},"aria-describedby":i?a:void 0}):t}function te({className:t,sideOffset:r=8,children:s,style:n,...a}){const{open:i,triggerRef:o,tooltipId:l}=J(),x=p.useRef(null),[f,g]=p.useState({position:"fixed",top:0,left:0,visibility:"hidden"});return p.useLayoutEffect(()=>{if(!i||!o.current||!x.current)return;const d=o.current.getBoundingClientRect(),c=x.current.getBoundingClientRect();let m=d.top-c.height-r,h=d.left+d.width/2-c.width/2;m<4&&(m=d.bottom+r),h<4&&(h=4),h+c.width>window.innerWidth-4&&(h=window.innerWidth-c.width-4),g({position:"fixed",top:m,left:h,visibility:"visible"})},[i,r,o]),i?A.createPortal(e.jsx("div",{ref:x,id:l,role:"tooltip","data-slot":"tooltip-content",className:u("bg-primary text-primary-foreground z-50 max-w-60 rounded-md px-2.5 py-1.5 text-xs leading-snug shadow-md animate-in fade-in-0 zoom-in-95",t),style:{...f,...n},...a,children:s}),document.body):null}const Re={current:"bg-primary text-primary-foreground border-primary",flagged:"bg-warning/10 text-warning border-warning/30",answered:"bg-success/10 text-success border-success/30",default:"bg-background text-muted-foreground border-border"},$e=(t,r)=>t.uid===r?"current":t.isFlagged?"flagged":t.isAnswered?"answered":"default",re=({questions:t,currentQuestionUid:r,onNavigate:s,onToggleFlag:n,readOnly:a=!1})=>{const i=o=>{const l=[`Question ${o.sequence+1}`];return o.isFlagged&&l.push("Flagged"),o.isAnswered&&l.push("Answered"),o.isSkipped&&l.push("Skipped"),l.join(" · ")};return e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.map(o=>{const l=$e(o,r);return e.jsxs("div",{title:i(o),className:u("inline-flex items-center gap-1 px-2 py-1 rounded-md border transition-all duration-150",Re[l],a?"cursor-default":"cursor-pointer hover:shadow-sm hover:-translate-y-px"),onClick:a?void 0:()=>s==null?void 0:s(o.uid),children:[e.jsx("span",{className:"text-xs font-semibold min-w-4 text-center",children:o.sequence+1}),!a&&n&&e.jsxs(q,{children:[e.jsx(ee,{children:e.jsx("span",{role:"button","aria-label":o.isFlagged?"Unflag question":"Flag question",className:u("inline-flex cursor-pointer transition-colors duration-150",o.isFlagged?"text-warning":l==="current"?"text-primary-foreground/60 hover:text-primary-foreground":"text-muted-foreground hover:text-warning"),onClick:x=>{x.stopPropagation(),n(o.uid)},children:e.jsx(b.Flag,{size:11,fill:o.isFlagged?"currentColor":"none"})})}),e.jsx(te,{children:o.isFlagged?"Unflag question":"Flag question"})]})]},o.uid)})})};function se({children:t,...r}){return I.isValidElement(t)?I.cloneElement(t,{...Fe(r,t.props),ref:t.ref}):(I.Children.count(t)>1&&I.Children.only(null),null)}function Fe(t,r){const s={...r};for(const n in r){const a=t[n],i=r[n];n==="style"?s[n]={...a,...i}:n==="className"?s[n]=[a,i].filter(Boolean).join(" "):typeof a=="function"&&typeof i=="function"&&(s[n]=(...o)=>{i(...o),a(...o)})}return{...t,...s}}const z=S.cva("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function w({className:t,variant:r="default",size:s="default",asChild:n=!1,...a}){const i=n?se:"button";return e.jsx(i,{"data-slot":"button",className:u(z({variant:r,size:s,className:t})),...a})}const Ve=({currentQuestionIndex:t,totalQuestions:r,hasNext:s,hasPrevious:n,onNext:a,onPrevious:i,onSubmit:o,timeElapsedSeconds:l,timeLimitSeconds:x,questions:f,onNavigateToQuestion:g,onToggleFlag:d,currentQuestionUid:c,isCompleted:m=!1,isSubmitting:h=!1,readOnly:v=!1})=>{const y=l!=null&&l>=0,j=f&&f.length>0;return e.jsxs("div",{className:"rounded-lg border border-border overflow-hidden shadow-sm",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted border-b border-border",children:[e.jsxs("span",{className:"text-sm font-medium text-foreground",children:["Question"," ",e.jsx("span",{className:"font-bold",children:t+1})," ","of ",r]}),y&&e.jsx(X,{timeElapsedSeconds:l,timeLimitSeconds:x})]}),j&&e.jsx("div",{className:"px-4 py-3 border-b border-border",children:e.jsx(re,{questions:f,currentQuestionUid:c,onNavigate:g,onToggleFlag:d,readOnly:v})}),e.jsxs("div",{className:"flex items-center justify-between gap-2 px-4 py-3",children:[e.jsxs(w,{variant:"outline",size:"sm",className:"rounded-lg",disabled:!n||v,onClick:i,children:[e.jsx(b.ChevronLeft,{size:16})," Previous"]}),!s||m?e.jsxs(w,{variant:m?"secondary":"default",size:"sm",className:"rounded-lg",onClick:o,disabled:v||h,children:[h?"Submitting...":m?"Review":"Submit",!h&&e.jsx(b.Send,{size:14})]}):e.jsxs(w,{size:"sm",className:"rounded-lg",disabled:!s||v,onClick:a,children:["Next ",e.jsx(b.ChevronRight,{size:16})]})]})]})},R={color1:{bg:"bg-blue-50 dark:bg-blue-950/40",border:"border-blue-200 dark:border-blue-800",accent:"bg-blue-200 dark:bg-blue-800"},color2:{bg:"bg-violet-50 dark:bg-violet-950/40",border:"border-violet-200 dark:border-violet-800",accent:"bg-violet-200 dark:bg-violet-800"},color3:{bg:"bg-emerald-50 dark:bg-emerald-950/40",border:"border-emerald-200 dark:border-emerald-800",accent:"bg-emerald-200 dark:bg-emerald-800"},color4:{bg:"bg-amber-50 dark:bg-amber-950/40",border:"border-amber-200 dark:border-amber-800",accent:"bg-amber-200 dark:bg-amber-800"},color5:{bg:"bg-rose-50 dark:bg-rose-950/40",border:"border-rose-200 dark:border-rose-800",accent:"bg-rose-200 dark:bg-rose-800"},color6:{bg:"bg-green-50 dark:bg-green-950/40",border:"border-green-200 dark:border-green-800",accent:"bg-green-200 dark:bg-green-800"}},Ae={small:{width:280,height:180,fontSize:"0.875rem"},medium:{width:400,height:260,fontSize:"1rem"},large:{width:520,height:340,fontSize:"1.125rem"}},ne=({card:t,isFlipped:r,onFlip:s,readOnly:n=!1,size:a="medium"})=>{const[i,o]=p.useState(!1),l=r!==void 0,x=l?r:i,f=()=>{n||(l||o(h=>!h),s==null||s())},{width:g,height:d,fontSize:c}=Ae[a],m=R[t.color]||R.color1;return e.jsx("div",{className:"perspective-[1000px]",style:{width:`${g}px`,height:`${d}px`},children:e.jsxs("div",{className:u("relative size-full transition-transform duration-500 transform-3d",x&&"transform-[rotateY(180deg)]"),children:[e.jsxs("div",{className:u("absolute inset-0 flex flex-col rounded-lg border backface-hidden",m.bg,m.border,!n&&"cursor-pointer"),onClick:f,children:[e.jsx("div",{className:"flex flex-1 items-center justify-center p-5 overflow-auto",children:e.jsx("div",{className:"text-center",style:{fontSize:c},dangerouslySetInnerHTML:{__html:t.front}})}),!n&&e.jsxs("div",{className:"flex items-center justify-center gap-1 pb-3 text-muted-foreground",children:[e.jsx(b.RotateCcw,{size:12}),e.jsx("span",{className:"text-xs",children:"Tap to flip"})]})]}),e.jsxs("div",{className:u("absolute inset-0 flex flex-col rounded-lg border border-border bg-background backface-hidden transform-[rotateY(180deg)]",!n&&"cursor-pointer"),onClick:f,children:[e.jsx("div",{className:u("h-1.5 rounded-t-lg",m.accent)}),e.jsx("div",{className:"flex flex-1 items-start justify-center p-5 overflow-auto",children:e.jsx("div",{className:"text-left w-full flashcard-back-content",style:{fontSize:c},dangerouslySetInnerHTML:{__html:t.back}})}),!n&&e.jsxs("div",{className:"flex items-center justify-center gap-1 pb-3 text-muted-foreground",children:[e.jsx(b.RotateCcw,{size:12}),e.jsx("span",{className:"text-xs",children:"Tap to flip back"})]})]})]})})};function He(t){const r=[...t];for(let s=r.length-1;s>0;s--){const n=Math.floor(Math.random()*(s+1));[r[s],r[n]]=[r[n],r[s]]}return r}const ae=({cards:t,deckName:r,deckDescription:s,currentIndex:n,onNavigate:a,onComplete:i,readOnly:o=!1,showProgress:l=!0,shuffled:x=!1})=>{const f=p.useMemo(()=>x?He(t):t,[t,x]),[g,d]=p.useState(0),[c,m]=p.useState(!1),h=n!==void 0,v=h?n:g,y=f[v],j=v>0,N=v<f.length-1,C=_=>{m(!1),h?a==null||a(_):d(_)},Se=()=>{j&&C(v-1)},De=()=>{N?C(v+1):i==null||i()};if(!f.length)return e.jsx("span",{className:"text-sm text-muted-foreground",children:"No flashcards in this deck."});const _e=(v+1)/f.length*100;return e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[(r||s)&&e.jsxs("div",{className:"flex flex-col gap-0.5 text-center",children:[r&&e.jsx("span",{className:"text-lg font-semibold",children:r}),s&&e.jsx("span",{className:"text-sm text-muted-foreground",children:s})]}),y&&e.jsx(ne,{card:y,isFlipped:c,onFlip:()=>m(_=>!_),readOnly:o}),l&&e.jsxs("div",{className:"flex w-full items-center gap-2",children:[e.jsx("div",{className:"flex-1 h-1.5 rounded-full bg-muted overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full bg-primary transition-[width] duration-300",style:{width:`${_e}%`}})}),e.jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[v+1," of ",f.length]})]}),e.jsxs("div",{className:"flex w-full items-center justify-between gap-3",children:[e.jsxs(w,{variant:"outline",size:"sm",className:"rounded-lg",disabled:!j,onClick:Se,children:[e.jsx(b.ChevronLeft,{size:16})," Previous"]}),e.jsxs(w,{size:"sm",className:"rounded-lg",onClick:De,children:[N?"Next":"Finish"," ",e.jsx(b.ChevronRight,{size:16})]})]})]})},Pe={video:b.Video,video_lesson:b.Video,stream:b.PlayCircle,document:b.FileText,pdf:b.FileText,page:b.FileText,quiz:b.HelpCircle,assessment:b.HelpCircle,assignment:b.ClipboardList,discussion:b.MessageSquare,link:b.ExternalLink,url:b.ExternalLink,audio:b.Music,image:b.Image,scorm:b.Code,iframe:b.Code,lesson:b.BookOpen,module:b.BookOpen},oe=({type:t,size:r=18})=>{const s=Pe[t]??b.FileText;return e.jsx(s,{size:r})},ie=({item:t,level:r,isActive:s=!1,isCompleted:n=!1,isExpanded:a=!1,hasChildren:i,onToggleExpand:o,onClick:l,showDuration:x=!0,showIcon:f=!0,showProgress:g=!0})=>{const d=i,c=d?"font-semibold":s?"font-medium":"font-normal";return e.jsxs("div",{className:u("flex items-center gap-2 py-2 pr-3 transition-colors",l&&"cursor-pointer hover:bg-muted",s&&"bg-secondary"),style:{paddingLeft:`${r*20+8}px`},onClick:l,children:[e.jsx("div",{className:"shrink-0 flex items-center justify-center size-5",children:g&&n?e.jsx("span",{className:"text-success",children:e.jsx(b.CheckCircle2,{size:18})}):f?e.jsx("span",{className:s?"text-primary":"text-muted-foreground",children:e.jsx(oe,{type:t.type,size:16})}):e.jsx("span",{className:"text-muted-foreground",children:e.jsx(b.Circle,{size:16})})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:u("text-sm truncate",s?"text-primary":"text-foreground",c),children:t.name}),x&&t.duration>0&&!d&&e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:Q(t.duration)})]}),i&&e.jsx("button",{className:"inline-flex items-center justify-center rounded-md p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","aria-label":a?"Collapse":"Expand",onClick:m=>{m.stopPropagation(),o==null||o()},children:a?e.jsx(b.ChevronDown,{size:16}):e.jsx(b.ChevronRight,{size:16})})]})},Oe=({items:t,progress:r,activeItemUid:s,onItemClick:n,readOnly:a=!1,showDuration:i=!0,showIcons:o=!0,showProgress:l=!0})=>{const[x,f]=p.useState({});if(!t||t.length===0)return null;const g=m=>{f(h=>({...h,[m]:!h[m]}))},d=m=>!r||!l?!1:r.some(h=>h.resourceUid===m&&h.isCompleted),c=(m,h)=>e.jsx("div",{className:"flex flex-col",children:m.map(v=>{var N;const y=!!((N=v.children)!=null&&N.length),j=x[v.uid]||!1;return e.jsxs("div",{children:[e.jsx(ie,{item:v,level:h,isActive:s===v.uid,isCompleted:d(v.uid),isExpanded:j,hasChildren:y,onToggleExpand:()=>g(v.uid),onClick:a?void 0:()=>n==null?void 0:n(v),showDuration:i,showIcon:o,showProgress:l}),y&&j&&c(v.children,h+1)]},v.uid)})});return e.jsx("nav",{className:"rounded-lg border border-border overflow-hidden",children:c(t,0)})},le=({src:t,poster:r,title:s,autoPlay:n=!1,onPlay:a,onPause:i,onEnded:o,onTimeUpdate:l,readOnly:x=!1,aspectRatio:f="16/9",className:g,style:d})=>{const c=p.useRef(null),m=()=>{const h=c.current;h&&l&&l(h.currentTime,h.duration)};return t?x?e.jsxs("div",{className:u("relative overflow-hidden rounded-lg",g),style:{aspectRatio:f,...d},children:[r?e.jsx("img",{src:r,alt:s||"Video poster",style:{width:"100%",height:"100%",objectFit:"cover"}}):e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-muted",children:e.jsx("div",{className:"flex items-center justify-center size-14 rounded-full bg-black/60",children:e.jsx(b.Play,{size:28,className:"text-white ml-0.5"})})}),r&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/30 transition-opacity",children:e.jsx("div",{className:"flex items-center justify-center size-14 rounded-full bg-black/60",children:e.jsx(b.Play,{size:28,className:"text-white ml-0.5"})})}),s&&e.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-linear-to-t from-black/60 to-transparent p-2",children:e.jsx("span",{className:"text-sm text-white font-medium",children:s})})]}):e.jsxs("div",{className:g,style:d,children:[s&&e.jsx("p",{className:"mb-2 text-sm font-medium",children:s}),e.jsx("div",{className:"rounded-lg overflow-hidden",children:e.jsx("video",{ref:c,src:t,poster:r,controls:!0,autoPlay:n,onPlay:a,onPause:i,onEnded:o,onTimeUpdate:m,style:{width:"100%",aspectRatio:f,display:"block"}})})]}):e.jsx("div",{className:u("relative overflow-hidden rounded-lg border border-border bg-muted",g),style:{aspectRatio:f,...d},children:e.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-2",children:[e.jsx("div",{className:"flex items-center justify-center size-12 rounded-full bg-muted-foreground/10",children:e.jsx(b.Video,{size:24})}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"No video source provided"})]})})},de=S.cva("h-full rounded-full transition-all duration-300",{variants:{variant:{default:"bg-primary",success:"bg-success",warning:"bg-warning",info:"bg-info"},size:{sm:"",default:""}},defaultVariants:{variant:"default",size:"default"}}),Be=S.cva("bg-muted overflow-hidden rounded-full w-full",{variants:{size:{sm:"h-1.5",default:"h-2.5"}},defaultVariants:{size:"default"}});function Ue({className:t,value:r=0,max:s=100,variant:n,size:a,...i}){const o=Math.min(100,Math.max(0,r/s*100));return e.jsx("div",{"data-slot":"progress",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":s,className:u(Be({size:a}),t),...i,children:e.jsx("div",{className:de({variant:n,size:a}),style:{width:`${o}%`}})})}function Ke({icon:t,title:r,description:s,action:n,className:a,style:i}){return e.jsxs("div",{className:u("flex flex-col items-center justify-center text-center px-3 py-6",a),style:i,children:[t&&e.jsx("div",{className:"mb-2 text-muted-foreground [&>svg]:size-12",children:t}),e.jsx("p",{className:"text-lg font-semibold text-foreground mb-1",children:r}),s&&e.jsx("p",{className:u("text-sm text-muted-foreground max-w-[360px]",n&&"mb-2"),children:s}),n]})}const ce=p.createContext(null);function D(){const t=p.useContext(ce);if(!t)throw new Error("AlertDialog compound components must be used within <AlertDialog>");return t}const $=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function Ze(t,r){const s=p.useRef(null);return p.useEffect(()=>{if(!r||!t.current)return;s.current=document.activeElement;const a=t.current.querySelectorAll($);return a.length>0&&a[0].focus(),()=>{s.current instanceof HTMLElement&&s.current.focus()}},[r,t]),p.useCallback(a=>{if(a.key!=="Tab"||!t.current)return;const i=Array.from(t.current.querySelectorAll($));if(i.length===0)return;const o=i[0],l=i[i.length-1];a.shiftKey&&document.activeElement===o?(a.preventDefault(),l.focus()):!a.shiftKey&&document.activeElement===l&&(a.preventDefault(),o.focus())},[t])}function Ge(t){p.useEffect(()=>{if(!t)return;const r=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=r}},[t])}function ue({children:t,open:r,onOpenChange:s}){const n=p.useId(),a=p.useId();return e.jsx(ce.Provider,{value:{open:r,onOpenChange:s,titleId:n,descriptionId:a},children:t})}function We({className:t,onClick:r,...s}){const{onOpenChange:n}=D();return e.jsx("button",{type:"button","data-slot":"alert-dialog-trigger",className:t,onClick:a=>{n(!0),r==null||r(a)},...s})}function fe({children:t}){return A.createPortal(t,document.body)}function xe({className:t,...r}){const{onOpenChange:s}=D();return e.jsx("div",{"data-slot":"alert-dialog-backdrop",className:u("fixed inset-0 z-50 bg-black/50 transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0",t),"data-state":"open",onClick:()=>s(!1),...r})}function me({className:t,children:r,...s}){const{open:n,onOpenChange:a,titleId:i,descriptionId:o}=D(),l=p.useRef(null),x=Ze(l,n);return Ge(n),p.useEffect(()=>{if(!n)return;const f=g=>{g.key==="Escape"&&a(!1)};return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[n,a]),n?e.jsxs(fe,{children:[e.jsx(xe,{}),e.jsx("div",{ref:l,role:"alertdialog","aria-modal":"true","aria-labelledby":i,"aria-describedby":o,"data-slot":"alert-dialog-content","data-state":"open",className:u("bg-background fixed top-1/2 left-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg transition-all data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",t),onKeyDown:x,...s,children:r})]}):null}function ge({className:t,...r}){return e.jsx("div",{"data-slot":"alert-dialog-header",className:u("flex flex-col gap-2 text-center sm:text-left",t),...r})}function pe({className:t,...r}){return e.jsx("div",{"data-slot":"alert-dialog-footer",className:u("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...r})}function be({className:t,...r}){const{titleId:s}=D();return e.jsx("h2",{id:s,"data-slot":"alert-dialog-title",className:u("text-lg font-semibold",t),...r})}function he({className:t,...r}){const{descriptionId:s}=D();return e.jsx("p",{id:s,"data-slot":"alert-dialog-description",className:u("text-muted-foreground text-sm",t),...r})}function ve({className:t,...r}){return e.jsx("button",{type:"button",className:u(z(),t),...r})}function je({className:t,...r}){return e.jsx("button",{type:"button",className:u(z({variant:"outline"}),t),...r})}const F={primary:"bg-primary text-primary-foreground hover:bg-primary/90",error:"bg-destructive text-destructive-foreground hover:bg-destructive/90",warning:"bg-warning text-warning-foreground hover:bg-warning/90"};function Qe({open:t,title:r,message:s,confirmLabel:n="Confirm",cancelLabel:a="Cancel",confirmColor:i="primary",onConfirm:o,onCancel:l,isLoading:x=!1}){return e.jsx(ue,{open:t,onOpenChange:f=>!f&&l(),children:e.jsxs(me,{children:[e.jsxs(ge,{children:[e.jsx(be,{children:r}),typeof s=="string"?e.jsx(he,{children:s}):s]}),e.jsxs(pe,{children:[e.jsx(je,{onClick:l,disabled:x,children:a}),e.jsxs(ve,{className:u(F[i]??F.primary),onClick:o,disabled:x,children:[x&&e.jsx("span",{className:"inline-block size-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),n]})]})]})})}function Xe({value:t,onChange:r,placeholder:s="Search...",debounceMs:n=300,fullWidth:a=!1,size:i="small",className:o,style:l}){const[x,f]=p.useState(t);p.useEffect(()=>{f(t)},[t]);const g=p.useCallback(M(r,n),[r,n]);function d(m){const h=m.target.value;f(h),g(h)}function c(){f(""),r("")}return e.jsx("div",{className:u("w-full",o),style:{...l,width:a?"100%":void 0},children:e.jsxs("div",{className:"flex items-center w-full border border-input rounded-md bg-background transition-colors focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",children:[e.jsx("span",{className:"flex items-center justify-center px-2 text-muted-foreground shrink-0",children:e.jsx(b.Search,{size:18})}),e.jsx("input",{className:u("flex-1 border-none outline-none bg-transparent text-foreground text-sm min-w-0 placeholder:text-muted-foreground",i==="medium"?"py-2":"py-1.5"),value:x,onChange:d,placeholder:s}),x&&e.jsx("button",{type:"button",className:"inline-flex items-center justify-center p-0.5 mr-1 rounded-md text-muted-foreground cursor-pointer transition-colors hover:bg-muted hover:text-foreground","aria-label":"Clear search",onClick:c,children:e.jsx(b.X,{size:16})})]})})}const ye=S.cva("inline-flex items-center justify-center rounded-full border px-2.5 py-0.5 text-xs font-medium whitespace-nowrap transition-colors [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground",outline:"text-foreground",success:"border-transparent bg-success/15 text-success",warning:"border-transparent bg-warning/15 text-warning",info:"border-transparent bg-info/15 text-info",muted:"border-transparent bg-muted text-muted-foreground"}},defaultVariants:{variant:"default"}});function Ne({className:t,variant:r,asChild:s=!1,...n}){const a=s?se:"span";return e.jsx(a,{"data-slot":"badge",className:u(ye({variant:r}),t),...n})}const Ye={graded:"green",submitted:"teal",pending:"gray",missing:"red",late:"orange",excused:"gray",draft:"gray",not_started:"gray",resubmit:"orange"},Je={success:"green",error:"red",warning:"orange",info:"teal",default:"gray"},qe={green:"success",red:"destructive",orange:"warning",gray:"muted",teal:"info"},V={green:"bg-transparent border-success text-success",red:"bg-transparent border-destructive text-destructive",orange:"bg-transparent border-warning text-warning",gray:"bg-transparent border-border text-muted-foreground",teal:"bg-transparent border-info text-info"},et={green:"bg-success text-success-foreground",red:"bg-destructive text-destructive-foreground",orange:"bg-warning text-warning-foreground",teal:"bg-info text-info-foreground"};function tt({status:t,colorMap:r,size:s="small",variant:n="filled"}){const a={...Ye};if(r)for(const[f,g]of Object.entries(r))a[f]=Je[g]??g;const i=a[t]??"gray",o=t.replace(/_/g," ").replace(/\b\w/g,f=>f.toUpperCase()),l=qe[i]??"muted",x=n==="outlined"?V[i]??V.gray:et[i]??void 0;return e.jsx(Ne,{variant:l,className:u(s==="small"?"text-xs px-2 h-5.5":"text-sm px-2.5 h-6.5","leading-none",x),children:o})}const rt={success:"text-success",destructive:"text-destructive",warning:"text-warning",muted:"text-muted-foreground"};function st(t){const r=new Date,s=t.getTime()-r.getTime(),n=Math.round(s/(1e3*60*60*24));return n===0?"Due today":n===1?"Due tomorrow":n===-1?"Due yesterday":n>1?`Due in ${n} days`:`${Math.abs(n)} days overdue`}function nt(t,r){if(r)return"success";const s=new Date,a=(t.getTime()-s.getTime())/(1e3*60*60*24);return a<0?"destructive":a<2?"warning":"muted"}function at({dueDate:t,submittedDate:r,showRelative:s=!0,size:n="medium",className:a,style:i}){const o=new Date(t),l=!!r,x=rt[nt(o,l)]??"text-muted-foreground",f=n==="small"?14:16;return e.jsxs("div",{className:u("flex items-center gap-1",x,a),style:i,children:[e.jsx("span",{className:"shrink-0 inline-flex",children:l?e.jsx(b.CheckCircle,{size:f}):e.jsx(b.Clock,{size:f})}),e.jsx("span",{className:n==="small"?"text-xs":"text-sm",children:l?`Submitted ${new Date(r).toLocaleDateString()}`:s?st(o):o.toLocaleDateString()})]})}function ot({isCorrect:t,explanation:r,onRetry:s,retryLabel:n="Try Again",className:a,style:i}){return e.jsxs("div",{role:"alert",className:u("flex items-start gap-2 rounded-md border p-3 text-sm",t?"border-success/50 bg-success/5":"border-destructive/50 bg-destructive/5",a),style:i,children:[e.jsx("span",{className:u("shrink-0",t?"text-success":"text-destructive"),children:t?e.jsx(b.CheckCircle,{size:20}):e.jsx(b.XCircle,{size:20})}),e.jsx("div",{className:"flex-1",children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-semibold",children:t?"Correct!":"Incorrect"}),r&&e.jsx("p",{className:"mt-1 text-foreground",children:r})]}),!t&&s&&e.jsx("button",{className:"shrink-0 rounded-md border border-border bg-background px-3 py-1 text-sm font-medium transition-colors hover:bg-muted",onClick:s,children:n})]})})]})}function it({value:t,onChange:r,points:s=5,lowLabel:n="Strongly Disagree",highLabel:a="Strongly Agree",disabled:i=!1,readOnly:o=!1,className:l,style:x}){const f=Array.from({length:s},(d,c)=>c+1),g=!i&&!o;return e.jsxs("div",{className:u("flex flex-col gap-1",l),style:x,children:[e.jsx("div",{className:"flex flex-row",role:"radiogroup",children:f.map(d=>{const c=t===d;return e.jsxs("label",{className:u("flex items-center justify-center border border-border px-1.5 py-2 text-sm transition-colors first:rounded-l-md last:rounded-r-md -ml-px first:ml-0",c?"bg-primary text-primary-foreground border-primary z-10":"bg-background text-foreground",!g&&"opacity-60 cursor-not-allowed",g&&!c&&"cursor-pointer hover:bg-muted"),children:[e.jsx("input",{type:"radio",name:"likert-scale",className:"sr-only",value:d,checked:c,disabled:i,onChange:()=>{g&&r(d)}}),e.jsx("span",{className:"text-sm font-medium",children:d})]},d)})}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:n}),e.jsx("span",{className:"text-xs text-muted-foreground",children:a})]})]})}const lt={small:18,medium:24,large:32};function dt({value:t,onChange:r,maxStars:s=5,allowHalf:n=!1,size:a="medium",disabled:i=!1,readOnly:o=!1,className:l,style:x}){const[f,g]=p.useState(null),d=lt[a],c=f??t,m=!i&&!o;function h(v){m&&r(v)}return e.jsx("div",{className:u("inline-flex gap-0.5",l),style:x,onMouseLeave:()=>m&&g(null),children:Array.from({length:s},(v,y)=>{const j=y+1,N=c>=j,C=n&&!N&&c>=j-.5;return e.jsx("button",{type:"button",className:u("inline-flex items-center justify-center rounded-md border-none bg-transparent p-0",m?"cursor-pointer":"cursor-default",N||C?"text-warning":"text-muted-foreground"),disabled:i,onClick:()=>h(j),onMouseEnter:()=>m&&g(j),"aria-label":`Rate ${j} star${j!==1?"s":""}`,children:e.jsx(b.Star,{size:d,fill:N||C?"currentColor":"none",strokeWidth:1.5,style:C?{clipPath:"inset(0 50% 0 0)"}:void 0})},y)})})}function we({value:t,size:r=120,strokeWidth:s=8,label:n,color:a,className:i,style:o}){const l=(r-s)/2,x=2*Math.PI*l,f=x-Math.min(Math.max(t,0),100)/100*x,g=r/2;return e.jsxs("div",{className:u("relative inline-flex",i),style:{width:`${r}px`,height:`${r}px`,...o},children:[e.jsxs("svg",{width:r,height:r,children:[e.jsx("circle",{cx:g,cy:g,r:l,fill:"none",stroke:"currentColor",strokeWidth:s,opacity:.15}),e.jsx("circle",{cx:g,cy:g,r:l,fill:"none",stroke:a??"currentColor",strokeWidth:s,strokeDasharray:x,strokeDashoffset:f,strokeLinecap:"round",transform:`rotate(-90 ${g} ${g})`,style:{transition:"stroke-dashoffset 0.4s ease"}})]}),e.jsx("span",{className:"absolute inset-0 flex items-center justify-center font-bold text-foreground",style:{fontSize:`${r*.2}px`},children:n??`${Math.round(t)}%`})]})}const ct={small:48,medium:64,large:96},ut={small:"0.75rem",medium:"0.875rem",large:"1rem"},ft={small:"4px",medium:"6px",large:"8px"},xt={primary:"var(--primary)",success:"var(--success)",warning:"var(--warning)",destructive:"var(--destructive)"};function mt(t,r){return r==null?"primary":t>=r?"success":t>=r*.7?"warning":"destructive"}function gt({percentage:t,letterGrade:r,variant:s="circular",size:n="medium",passingThreshold:a,showLabel:i=!0,className:o,style:l}){const x=mt(t,a),f=xt[x]??"var(--primary)";return s==="linear"?e.jsxs("div",{className:u("flex flex-row items-center gap-1",o),style:l,children:[e.jsx("div",{className:"flex-1 bg-muted rounded-full overflow-hidden",style:{height:ft[n]},children:e.jsx("div",{className:"h-full rounded-full transition-[width] duration-300 ease-in-out",style:{width:`${t}%`,background:f}})}),i&&e.jsx("span",{className:"font-semibold min-w-9",style:{fontSize:ut[n]},children:r??`${Math.round(t)}%`})]}):e.jsx("div",{className:u("inline-flex flex-col items-center",o),style:l,children:e.jsx(we,{value:t,size:ct[n],strokeWidth:n==="small"?4:6,color:f,label:r??`${Math.round(t)}%`})})}const pt={up:"var(--success)",down:"var(--destructive)",flat:"var(--muted-foreground)"},bt={up:b.TrendingUp,down:b.TrendingDown,flat:b.Minus};function ht({icon:t,label:r,value:s,subtitle:n,trend:a,className:i,style:o}){const l=a?bt[a.direction]:null;return e.jsxs("div",{className:u("rounded-md border border-border p-4",i),style:o,children:[t&&e.jsx("div",{className:"mb-1 text-primary [&>svg]:size-6",children:t}),e.jsx("span",{className:"text-xs text-muted-foreground",children:r}),e.jsxs("div",{className:"flex flex-row items-baseline gap-1",children:[e.jsx("span",{className:"text-2xl font-bold",children:s}),a&&l&&e.jsxs("span",{className:"flex flex-row items-center gap-px",style:{color:pt[a.direction]},children:[e.jsx(l,{size:14}),e.jsxs("span",{className:"text-xs font-semibold",children:[a.value>0?"+":"",a.value,"%"]})]})]}),n&&e.jsx("span",{className:"text-xs text-muted-foreground",children:n})]})}const vt={small:28,medium:36,large:48},jt={student:"Student",instructor:"Instructor",ta:"Teaching Assistant",admin:"Admin"},yt={instructor:"var(--primary)",ta:"var(--purple)",admin:"var(--destructive)",student:"var(--muted-foreground)"};function Nt(t){return t.split(" ").filter(Boolean).map(r=>r[0]).slice(0,2).join("").toUpperCase()}function Ce({displayName:t,avatarUrl:r,role:s,showRoleBadge:n=!1,size:a="medium",className:i,style:o}){const l=vt[a],x=l*.4,[f,g]=p.useState(!1),d=n&&s&&s!=="student",c=d?jt[s]??s:void 0;return e.jsxs("div",{className:u("relative inline-flex",i),style:o,title:c,children:[e.jsx("div",{className:"flex items-center justify-center rounded-full bg-muted text-muted-foreground overflow-hidden",style:{width:`${l}px`,height:`${l}px`,fontSize:`${x}px`},children:r&&!f?e.jsx("img",{className:"size-full object-cover",src:r,alt:t,onError:()=>g(!0)}):e.jsx("span",{children:Nt(t)})}),d&&e.jsx("span",{className:"absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border-2 border-background",style:{background:yt[s]??"var(--muted-foreground)"}})]})}function E({className:t,orientation:r="horizontal",decorative:s=!0,...n}){return e.jsx("div",{"data-slot":"separator",role:s?"none":"separator","aria-orientation":s?void 0:r,className:u("bg-border shrink-0",r==="horizontal"?"h-px w-full":"h-full w-px",t),...n})}function wt(t){const r=new Date(t),n=new Date().getTime()-r.getTime(),a=Math.floor(n/6e4);if(a<1)return"Just now";if(a<60)return`${a}m ago`;const i=Math.floor(a/60);if(i<24)return`${i}h ago`;const o=Math.floor(i/24);return o<7?`${o}d ago`:r.toLocaleDateString()}const Ct={pinned:"var(--warning)",answer:"var(--success)"};function Tt({author:t,content:r,createdAt:s,updatedAt:n,actions:a,highlight:i="none",indentLevel:o=0,className:l,style:x}){const f=Ct[i];return e.jsx("div",{className:u("rounded-md border border-border p-3",l),style:{marginLeft:o?`calc(${o} * 1rem)`:void 0,...f&&{borderLeftWidth:"3px",borderLeftColor:f},...x},children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Ce,{displayName:t.displayName,avatarUrl:t.avatarUrl,role:t.role,size:"medium"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap text-sm",children:[e.jsx("span",{className:"font-semibold",children:t.displayName}),t.role&&t.role!=="student"&&e.jsx("span",{className:"rounded-full bg-primary/10 px-1.5 py-0.5 text-xs font-medium text-primary capitalize",children:t.role}),e.jsx("span",{className:"text-xs text-muted-foreground",children:wt(s)}),n&&e.jsx("span",{className:"text-xs text-muted-foreground italic",children:"(edited)"}),i==="pinned"&&e.jsx(b.Pin,{size:14})]}),e.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:r}),a&&e.jsxs(e.Fragment,{children:[e.jsx(E,{className:"my-2"}),e.jsx("div",{className:"flex items-center gap-1",children:a})]})]})]})})}const kt={info:{variant:"info",Icon:b.Info},warning:{variant:"warning",Icon:b.AlertTriangle},tip:{variant:"success",Icon:b.Lightbulb}};function St({block:t,onQuestionAnswer:r,readOnly:s=!1,className:n,style:a}){const i=o=>e.jsx("div",{className:u(n),style:a,children:o});switch(t.type){case"video":return i(e.jsx(le,{...t.video,readOnly:s}));case"richtext":return i(e.jsx("div",{className:"[&_p]:mb-[1.5em] [&_ul]:pl-[1.5em] [&_ol]:pl-[1.5em]",dangerouslySetInnerHTML:{__html:t.html}}));case"heading":{const o=t.level===1?"h2":t.level===3?"h4":"h3",l=t.level===1?"text-xl":t.level===3?"text-base":"text-lg";return i(e.jsx(o,{className:u(l,"font-semibold m-0"),children:t.text}))}case"image":return i(e.jsxs("figure",{className:"m-0",children:[e.jsx("img",{src:t.src,alt:t.alt??"",className:"max-w-full rounded-sm"}),t.caption&&e.jsx("figcaption",{className:"text-xs text-muted-foreground mt-0.5",children:t.caption})]}));case"callout":{const o=kt[t.variant??"info"];return i(e.jsxs(T,{variant:o.variant,children:[e.jsx(o.Icon,{size:20}),e.jsx(k,{children:t.content})]}))}case"question":return i(e.jsx(W,{question:t.question,onAnswer:o=>r==null?void 0:r(t.question.uid,o.map(l=>({uid:t.question.uid,answerUid:l.uid,content:l.content}))),readOnly:s}));case"flashcards":return i(e.jsx(ae,{cards:t.cards,deckName:t.deckName,readOnly:s}));case"divider":return i(e.jsx(E,{}));case"custom":return i(e.jsx(e.Fragment,{children:t.render}));default:return null}}function Dt(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function _t({files:t,onFilesAdded:r,onFileRemove:s,accept:n,maxFiles:a,maxSizeMB:i,disabled:o=!1,label:l="Drag files here or click to browse"}){const x=p.useRef(null),[f,g]=p.useState(!1),d=a!=null&&t.length>=a;function c(m){if(!m)return;let h=Array.from(m);i&&(h=h.filter(v=>v.size<=i*1024*1024)),a&&(h=h.slice(0,a-t.length)),h.length>0&&r(h)}return e.jsxs("div",{children:[e.jsxs("div",{className:u("border-2 border-dashed border-border rounded-md p-8 text-center cursor-pointer transition-all duration-200",f&&"border-primary bg-muted",o&&"cursor-default opacity-50",d&&"cursor-default"),onDragOver:m=>{m.preventDefault(),!o&&!d&&g(!0)},onDragLeave:()=>g(!1),onDrop:m=>{m.preventDefault(),g(!1),!o&&!d&&c(m.dataTransfer.files)},onClick:()=>{var m;return!o&&!d&&((m=x.current)==null?void 0:m.click())},children:[e.jsx(b.Upload,{size:32,className:"mx-auto mb-2 opacity-50"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:d?`Maximum ${a} files reached`:l}),(n||i)&&e.jsx("span",{className:"text-xs text-muted-foreground mt-1 block",children:[n&&`Accepted: ${n}`,i&&`Max: ${i}MB`].filter(Boolean).join(" · ")})]}),e.jsx("input",{ref:x,type:"file",accept:n,multiple:!a||a>1,hidden:!0,onChange:m=>{c(m.target.files),m.target.value=""}}),t.length>0&&e.jsx("div",{className:"flex flex-col gap-1 mt-2",children:t.map((m,h)=>e.jsxs("div",{className:"flex items-center gap-3 py-1",children:[e.jsx("div",{className:"shrink-0 w-9 flex justify-center text-muted-foreground",children:e.jsx(b.File,{size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-sm block truncate",children:m.name}),e.jsx("span",{className:"text-xs text-muted-foreground",children:Dt(m.size)})]}),e.jsx(w,{variant:"ghost",size:"icon-xs","aria-label":"Remove file",onClick:()=>s(h),disabled:o,children:e.jsx(b.X,{size:16})})]},`${m.name}-${h}`))})]})}function It({className:t,...r}){return e.jsx("div",{"data-slot":"card",className:u("bg-card text-card-foreground rounded-xl border shadow-sm",t),...r})}function zt({className:t,...r}){return e.jsx("div",{"data-slot":"card-header",className:u("flex flex-col gap-1.5 px-6 pt-6 has-data-[slot=card-action]:flex-row has-data-[slot=card-action]:items-center has-data-[slot=card-action]:justify-between",t),...r})}function Lt({className:t,...r}){return e.jsx("div",{"data-slot":"card-title",className:u("leading-none font-semibold",t),...r})}function Mt({className:t,...r}){return e.jsx("div",{"data-slot":"card-description",className:u("text-muted-foreground text-sm",t),...r})}function Et({className:t,...r}){return e.jsx("div",{"data-slot":"card-action",className:u("col-start-2 row-span-2 row-start-1 self-start justify-self-end",t),...r})}function Rt({className:t,...r}){return e.jsx("div",{"data-slot":"card-content",className:u("px-6 pb-6 pt-0",t),...r})}function $t({className:t,...r}){return e.jsx("div",{"data-slot":"card-footer",className:u("flex items-center px-6 pb-6 pt-0",t),...r})}const Te=p.createContext(null);function ke(){const t=p.useContext(Te);if(!t)throw new Error("Tabs compound components must be used within <Tabs>");return t}function Ft({value:t,defaultValue:r,onValueChange:s,className:n,...a}){const[i,o]=p.useState(r??""),l=t??i,x=p.useCallback(f=>{t===void 0&&o(f),s==null||s(f)},[t,s]);return e.jsx(Te.Provider,{value:{selectedValue:l,onSelect:x},children:e.jsx("div",{"data-slot":"tabs",className:n,...a})})}function Vt({className:t,children:r,...s}){const n=p.useRef(null),a=i=>{if(i.key!=="ArrowLeft"&&i.key!=="ArrowRight")return;const o=n.current;if(!o)return;const l=Array.from(o.querySelectorAll('[role="tab"]:not([disabled])')),x=l.indexOf(document.activeElement);if(x===-1)return;i.preventDefault();const f=i.key==="ArrowRight"?(x+1)%l.length:(x-1+l.length)%l.length;l[f].focus()};return e.jsx("div",{ref:n,role:"tablist","data-slot":"tabs-list",className:u("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",t),onKeyDown:a,...s,children:r})}function At({value:t,className:r,...s}){const{selectedValue:n,onSelect:a}=ke(),i=n===t;return e.jsx("button",{role:"tab",type:"button","data-slot":"tabs-trigger","aria-selected":i,...i?{"data-selected":""}:{},className:u("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 data-selected:bg-background data-selected:text-foreground data-selected:shadow-sm",r),onClick:()=>a(t),...s})}function Ht({value:t,className:r,...s}){const{selectedValue:n}=ke();return n!==t?null:e.jsx("div",{role:"tabpanel","data-slot":"tabs-content",className:u("pt-2",r),...s})}function Pt({className:t,...r}){return e.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-auto",children:e.jsx("table",{"data-slot":"table",className:u("w-full caption-bottom text-sm",t),...r})})}function Ot({className:t,...r}){return e.jsx("thead",{"data-slot":"table-header",className:u("[&_tr]:border-b",t),...r})}function Bt({className:t,...r}){return e.jsx("tbody",{"data-slot":"table-body",className:u("[&_tr:last-child]:border-0",t),...r})}function Ut({className:t,...r}){return e.jsx("tfoot",{"data-slot":"table-footer",className:u("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",t),...r})}function Kt({className:t,...r}){return e.jsx("tr",{"data-slot":"table-row",className:u("border-b border-border transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...r})}function Zt({className:t,...r}){return e.jsx("th",{"data-slot":"table-head",className:u("text-muted-foreground h-10 px-3 text-left align-middle font-semibold whitespace-nowrap text-sm [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...r})}function Gt({className:t,...r}){return e.jsx("td",{"data-slot":"table-cell",className:u("px-3 py-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...r})}function Wt({className:t,...r}){return e.jsx("caption",{"data-slot":"table-caption",className:u("text-muted-foreground mt-4 text-sm",t),...r})}exports.Alert=T;exports.AlertDescription=k;exports.AlertDialog=ue;exports.AlertDialogAction=ve;exports.AlertDialogBackdrop=xe;exports.AlertDialogCancel=je;exports.AlertDialogContent=me;exports.AlertDialogDescription=he;exports.AlertDialogFooter=pe;exports.AlertDialogHeader=ge;exports.AlertDialogPortal=fe;exports.AlertDialogTitle=be;exports.AlertDialogTrigger=We;exports.AlertTitle=Me;exports.AssessmentToolbar=Ve;exports.Badge=Ne;exports.Button=w;exports.Card=It;exports.CardAction=Et;exports.CardContent=Rt;exports.CardDescription=Mt;exports.CardFooter=$t;exports.CardHeader=zt;exports.CardTitle=Lt;exports.Choice=O;exports.ConfirmDialog=Qe;exports.ContentBlock=St;exports.CurriculumItemRow=ie;exports.CurriculumTree=Oe;exports.DueDateDisplay=at;exports.EmptyState=Ke;exports.Essay=G;exports.FeedbackBanner=ot;exports.FileUploadZone=_t;exports.FillInTheBlank=K;exports.Flashcard=ne;exports.FlashcardDeck=ae;exports.GradeIndicator=gt;exports.Input=U;exports.LearningObjectIcon=oe;exports.LikertScale=it;exports.MultipleChoice=P;exports.PostCard=Tt;exports.Progress=Ue;exports.ProgressRing=we;exports.QuestionNavigator=re;exports.QuestionRenderer=W;exports.SearchInput=Xe;exports.Separator=E;exports.StarRating=dt;exports.StatCard=ht;exports.StatusBadge=tt;exports.Table=Pt;exports.TableBody=Bt;exports.TableCaption=Wt;exports.TableCell=Gt;exports.TableFooter=Ut;exports.TableHead=Zt;exports.TableHeader=Ot;exports.TableRow=Kt;exports.Tabs=Ft;exports.TabsContent=Ht;exports.TabsList=Vt;exports.TabsTrigger=At;exports.Textarea=Z;exports.TimerDisplay=X;exports.Tooltip=q;exports.TooltipContent=te;exports.TooltipTrigger=ee;exports.TrueFalse=B;exports.UserAvatar=Ce;exports.VideoPlayer=le;exports.alertVariants=H;exports.badgeVariants=ye;exports.buttonVariants=z;exports.cn=u;exports.formatDuration=Q;exports.formatTimer=L;exports.progressVariants=de;
|