@hydralms/components 0.2.0 → 0.3.1
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/StudentProfile-BPsZBaJj.cjs +1 -0
- package/dist/StudentProfile-Cw2p-RZn.js +3273 -0
- package/dist/assessment-toolbar/question-navigator.d.ts +1 -1
- package/dist/assessment-toolbar/timer-display.d.ts +1 -1
- package/dist/common/index.d.ts +2 -1
- package/dist/common/pagination.d.ts +26 -0
- package/dist/common/types.d.ts +1 -0
- package/dist/components.css +1 -1
- package/dist/content/audio-player.d.ts +22 -0
- package/dist/content/code-block.d.ts +30 -0
- package/dist/content/embed-block.d.ts +28 -0
- package/dist/content/index.d.ts +6 -0
- package/dist/content/types.d.ts +24 -0
- package/dist/curriculum/course-card.d.ts +51 -0
- package/dist/curriculum/index.d.ts +2 -0
- package/dist/curriculum/types.d.ts +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +495 -439
- package/dist/license/HydraContext.d.ts +16 -0
- package/dist/license/ProBadge.d.ts +6 -0
- package/dist/license/index.d.ts +7 -0
- package/dist/license/tiers.d.ts +6 -0
- package/dist/license/useHydraLicense.d.ts +6 -0
- package/dist/license/validate.d.ts +13 -0
- package/dist/license/withProGate.d.ts +6 -0
- package/dist/modules/AssignmentModule/AssignmentModule.d.ts +4 -7
- package/dist/modules/AssignmentModule/types.d.ts +5 -1
- package/dist/modules/CertificateModule/CertificateModule.d.ts +4 -8
- package/dist/modules/CertificateModule/types.d.ts +6 -4
- package/dist/modules/CourseCatalogModule/CourseCatalogModule.d.ts +5 -0
- package/dist/modules/CourseCatalogModule/types.d.ts +43 -0
- package/dist/modules/CoursePlayer/CoursePlayer.d.ts +4 -1
- package/dist/modules/DiscussionModule/DiscussionModule.d.ts +4 -7
- package/dist/modules/ExamModule/ExamModule.d.ts +4 -7
- package/dist/modules/ExamModule/types.d.ts +5 -14
- package/dist/modules/FlashcardLab/FlashcardLab.d.ts +4 -1
- package/dist/modules/FlashcardLab/types.d.ts +2 -0
- package/dist/modules/GradeCenterModule/GradeCenterModule.d.ts +4 -8
- package/dist/modules/GradeCenterModule/types.d.ts +2 -0
- package/dist/modules/QuizModule/QuizModule.d.ts +4 -1
- package/dist/modules/QuizModule/types.d.ts +5 -14
- package/dist/modules/StudentDashboardModule/StudentDashboardModule.d.ts +5 -0
- package/dist/modules/StudentDashboardModule/types.d.ts +54 -0
- package/dist/modules/StudentProfileModule/StudentProfileModule.d.ts +5 -0
- package/dist/modules/StudentProfileModule/types.d.ts +43 -0
- package/dist/modules/SurveyModule/SurveyModule.d.ts +4 -6
- package/dist/modules/SurveyModule/types.d.ts +2 -0
- package/dist/modules/_shared/assessment-intro.d.ts +16 -0
- package/dist/modules/_shared/assessment-results.d.ts +23 -0
- package/dist/modules/_shared/types.d.ts +10 -0
- package/dist/modules/_shared/use-timer.d.ts +9 -0
- package/dist/modules/index.d.ts +6 -0
- package/dist/modules.cjs +1 -1
- package/dist/modules.js +1267 -854
- package/dist/progress/types.d.ts +2 -0
- package/dist/provider/HydraProvider.d.ts +5 -1
- package/dist/questions/choice.d.ts +1 -1
- package/dist/questions/confidence-indicator.d.ts +37 -0
- package/dist/questions/essay.d.ts +1 -1
- package/dist/questions/fill-in-the-blank.d.ts +1 -1
- package/dist/questions/hotspot.d.ts +1 -1
- package/dist/questions/index.d.ts +2 -0
- package/dist/questions/inline-choice.d.ts +1 -1
- package/dist/questions/matching.d.ts +1 -1
- package/dist/questions/multiple-choice.d.ts +1 -1
- package/dist/questions/numeric.d.ts +1 -1
- package/dist/questions/ordering.d.ts +1 -1
- package/dist/questions/question-renderer.d.ts +1 -1
- package/dist/questions/scenario.d.ts +1 -1
- package/dist/questions/spreadsheet.d.ts +1 -1
- package/dist/questions/true-false.d.ts +1 -1
- package/dist/sections/AdaptiveLearningPath/AdaptiveLearningPath.d.ts +5 -0
- package/dist/sections/AdaptiveLearningPath/path-connector.d.ts +8 -0
- package/dist/sections/AdaptiveLearningPath/path-milestone-marker.d.ts +7 -0
- package/dist/sections/AdaptiveLearningPath/path-node-card.d.ts +10 -0
- package/dist/sections/AdaptiveLearningPath/path-skill-bar.d.ts +8 -0
- package/dist/sections/AdaptiveLearningPath/types.d.ts +136 -0
- package/dist/sections/AnnouncementFeed/AnnouncementFeed.d.ts +1 -1
- package/dist/sections/AnnouncementFeed/types.d.ts +15 -1
- package/dist/sections/AssessmentReview/AssessmentReview.d.ts +1 -1
- package/dist/sections/AssessmentReview/types.d.ts +6 -0
- package/dist/sections/AssignmentSubmission/AssignmentSubmission.d.ts +1 -1
- package/dist/sections/AssignmentSubmission/types.d.ts +6 -0
- package/dist/sections/CertificateViewer/CertificateViewer.d.ts +1 -1
- package/dist/sections/CertificateViewer/certificate-variants.d.ts +42 -0
- package/dist/sections/CertificateViewer/types.d.ts +6 -0
- package/dist/sections/ContentAuthoringStudio/ContentAuthoringStudio.d.ts +5 -0
- package/dist/sections/ContentAuthoringStudio/block-editor-item.d.ts +14 -0
- package/dist/sections/ContentAuthoringStudio/block-type-picker.d.ts +12 -0
- package/dist/sections/ContentAuthoringStudio/types.d.ts +67 -0
- package/dist/sections/CourseCatalog/CourseCatalog.d.ts +2 -0
- package/dist/sections/CourseCatalog/types.d.ts +80 -0
- package/dist/sections/CourseOutline/CourseOutline.d.ts +1 -1
- package/dist/sections/CourseOutline/types.d.ts +6 -0
- package/dist/sections/DiscussionThread/DiscussionThread.d.ts +1 -1
- package/dist/sections/DiscussionThread/types.d.ts +6 -0
- package/dist/sections/EnrollmentWizard/EnrollmentWizard.d.ts +2 -0
- package/dist/sections/EnrollmentWizard/types.d.ts +66 -0
- package/dist/sections/ExamSession/ExamSession.d.ts +1 -1
- package/dist/sections/ExamSession/types.d.ts +6 -0
- package/dist/sections/FlashcardStudySession/FlashcardStudySession.d.ts +1 -1
- package/dist/sections/FlashcardStudySession/types.d.ts +6 -0
- package/dist/sections/ForumBoard/ForumBoard.d.ts +1 -1
- package/dist/sections/ForumBoard/types.d.ts +14 -0
- package/dist/sections/GradebookTable/GradebookTable.d.ts +1 -1
- package/dist/sections/GradebookTable/types.d.ts +14 -0
- package/dist/sections/LecturePlayer/LecturePlayer.d.ts +1 -1
- package/dist/sections/LecturePlayer/types.d.ts +8 -0
- package/dist/sections/LessonPage/LessonPage.d.ts +1 -1
- package/dist/sections/LessonPage/types.d.ts +6 -0
- package/dist/sections/PracticeQuiz/PracticeQuiz.d.ts +1 -1
- package/dist/sections/PracticeQuiz/types.d.ts +6 -0
- package/dist/sections/ProgressDashboard/ProgressDashboard.d.ts +1 -1
- package/dist/sections/ProgressDashboard/types.d.ts +6 -0
- package/dist/sections/QuizSession/QuizSession.d.ts +1 -1
- package/dist/sections/QuizSession/types.d.ts +6 -0
- package/dist/sections/RequirementsChecklist/RequirementsChecklist.d.ts +1 -1
- package/dist/sections/RequirementsChecklist/types.d.ts +6 -0
- package/dist/sections/ResourceLibrary/ResourceLibrary.d.ts +1 -1
- package/dist/sections/ResourceLibrary/types.d.ts +15 -1
- package/dist/sections/RubricView/RubricView.d.ts +1 -1
- package/dist/sections/RubricView/types.d.ts +6 -0
- package/dist/sections/ScrollableQuiz/ScrollableQuiz.d.ts +1 -1
- package/dist/sections/ScrollableQuiz/types.d.ts +6 -0
- package/dist/sections/StudentProfile/StudentProfile.d.ts +2 -0
- package/dist/sections/StudentProfile/types.d.ts +98 -0
- package/dist/sections/SurveyForm/SurveyForm.d.ts +1 -1
- package/dist/sections/SurveyForm/types.d.ts +6 -0
- package/dist/sections/_shared/merge-answers.d.ts +9 -0
- package/dist/sections/_shared/section-shell.d.ts +20 -0
- package/dist/sections/_shared/use-assessment-session.d.ts +30 -0
- package/dist/sections/index.d.ts +10 -0
- package/dist/sections.cjs +1 -1
- package/dist/sections.js +1361 -307
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/progress.d.ts +1 -1
- package/dist/ui/rich-text-editor.d.ts +3 -1
- package/dist/ui/toast.d.ts +43 -0
- package/dist/utils/debounce.d.ts +5 -1
- package/dist/utils/pick-palette-color.d.ts +19 -0
- package/dist/video/types.d.ts +15 -0
- package/dist/video/video-player.d.ts +1 -1
- package/dist/withProGate-BJdu1T9Y.cjs +2 -0
- package/dist/withProGate-BvFc7Jwy.js +4975 -0
- package/package.json +57 -226
- package/src/assessment-toolbar/question-navigator.tsx +10 -5
- package/src/assessment-toolbar/timer-display.tsx +4 -3
- package/src/assessment-toolbar/use-countdown.ts +1 -1
- package/src/common/empty-state.tsx +1 -0
- package/src/common/index.ts +2 -0
- package/src/common/pagination.tsx +135 -0
- package/src/common/search-input.tsx +2 -1
- package/src/common/types.ts +2 -0
- package/src/content/attachment-list.tsx +2 -0
- package/src/content/audio-player.tsx +196 -0
- package/src/content/code-block.tsx +113 -0
- package/src/content/content-block.tsx +64 -0
- package/src/content/embed-block.tsx +78 -0
- package/src/content/file-upload-zone.tsx +10 -0
- package/src/content/index.ts +6 -0
- package/src/content/types.ts +5 -0
- package/src/curriculum/course-card.tsx +199 -0
- package/src/curriculum/curriculum-item.tsx +3 -3
- package/src/curriculum/curriculum-tree.tsx +20 -13
- package/src/curriculum/index.ts +2 -0
- package/src/curriculum/types.ts +2 -2
- package/src/flashcards/flashcard.tsx +28 -8
- package/src/index.ts +3 -0
- package/src/license/HydraContext.tsx +62 -0
- package/src/license/ProBadge.tsx +43 -0
- package/src/license/index.ts +7 -0
- package/src/license/tiers.ts +34 -0
- package/src/license/useHydraLicense.ts +10 -0
- package/src/license/validate.ts +90 -0
- package/src/license/withProGate.tsx +21 -0
- package/src/modules/AssignmentModule/AssignmentModule.tsx +17 -8
- package/src/modules/AssignmentModule/types.ts +5 -1
- package/src/modules/CertificateModule/CertificateModule.tsx +21 -9
- package/src/modules/CertificateModule/types.ts +6 -4
- package/src/modules/CourseCatalogModule/CourseCatalogModule.tsx +126 -0
- package/src/modules/CourseCatalogModule/types.ts +47 -0
- package/src/modules/CoursePlayer/CoursePlayer.tsx +39 -22
- package/src/modules/DiscussionModule/DiscussionModule.tsx +57 -22
- package/src/modules/ExamModule/ExamModule.tsx +64 -198
- package/src/modules/ExamModule/types.ts +5 -14
- package/src/modules/FlashcardLab/FlashcardLab.tsx +10 -5
- package/src/modules/FlashcardLab/types.ts +2 -0
- package/src/modules/GradeCenterModule/GradeCenterModule.tsx +7 -2
- package/src/modules/GradeCenterModule/types.ts +2 -0
- package/src/modules/QuizModule/QuizModule.tsx +49 -169
- package/src/modules/QuizModule/types.ts +5 -15
- package/src/modules/StudentDashboardModule/StudentDashboardModule.tsx +117 -0
- package/src/modules/StudentDashboardModule/types.ts +56 -0
- package/src/modules/StudentProfileModule/StudentProfileModule.tsx +289 -0
- package/src/modules/StudentProfileModule/types.ts +45 -0
- package/src/modules/SurveyModule/SurveyModule.tsx +9 -4
- package/src/modules/SurveyModule/types.ts +2 -0
- package/src/modules/_shared/assessment-intro.tsx +75 -0
- package/src/modules/_shared/assessment-results.tsx +133 -0
- package/src/modules/_shared/types.ts +11 -0
- package/src/modules/_shared/use-timer.ts +49 -0
- package/src/modules/index.ts +9 -0
- package/src/progress/achievement-badge.tsx +3 -3
- package/src/progress/grade-indicator.tsx +9 -1
- package/src/progress/progress-ring.tsx +2 -1
- package/src/progress/stat-card.tsx +14 -2
- package/src/progress/types.ts +2 -0
- package/src/provider/HydraProvider.tsx +15 -6
- package/src/questions/choice.tsx +13 -6
- package/src/questions/confidence-indicator.tsx +107 -0
- package/src/questions/essay.tsx +6 -4
- package/src/questions/fill-in-the-blank.tsx +8 -4
- package/src/questions/hotspot.tsx +4 -4
- package/src/questions/index.ts +2 -0
- package/src/questions/inline-choice.tsx +5 -4
- package/src/questions/matching.tsx +5 -4
- package/src/questions/multiple-choice.tsx +13 -6
- package/src/questions/numeric.tsx +8 -4
- package/src/questions/ordering.tsx +12 -4
- package/src/questions/question-renderer.tsx +3 -2
- package/src/questions/scenario.tsx +4 -4
- package/src/questions/spreadsheet.tsx +5 -4
- package/src/questions/true-false.tsx +13 -6
- package/src/sections/AdaptiveLearningPath/AdaptiveLearningPath.tsx +251 -0
- package/src/sections/AdaptiveLearningPath/path-connector.tsx +27 -0
- package/src/sections/AdaptiveLearningPath/path-milestone-marker.tsx +50 -0
- package/src/sections/AdaptiveLearningPath/path-node-card.tsx +166 -0
- package/src/sections/AdaptiveLearningPath/path-skill-bar.tsx +49 -0
- package/src/sections/AdaptiveLearningPath/types.ts +159 -0
- package/src/sections/AnnouncementFeed/AnnouncementFeed.tsx +64 -8
- package/src/sections/AnnouncementFeed/types.ts +15 -1
- package/src/sections/AssessmentReview/AssessmentReview.tsx +37 -0
- package/src/sections/AssessmentReview/types.ts +6 -0
- package/src/sections/AssignmentSubmission/AssignmentSubmission.tsx +37 -1
- package/src/sections/AssignmentSubmission/types.ts +6 -0
- package/src/sections/CertificateViewer/CertificateViewer.tsx +29 -227
- package/src/sections/CertificateViewer/certificate-variants.tsx +170 -0
- package/src/sections/CertificateViewer/types.ts +6 -0
- package/src/sections/ContentAuthoringStudio/ContentAuthoringStudio.tsx +289 -0
- package/src/sections/ContentAuthoringStudio/block-editor-item.tsx +487 -0
- package/src/sections/ContentAuthoringStudio/block-type-picker.tsx +123 -0
- package/src/sections/ContentAuthoringStudio/types.ts +67 -0
- package/src/sections/CourseCatalog/CourseCatalog.tsx +220 -0
- package/src/sections/CourseCatalog/types.ts +76 -0
- package/src/sections/CourseOutline/CourseOutline.tsx +41 -0
- package/src/sections/CourseOutline/types.ts +6 -0
- package/src/sections/DiscussionThread/DiscussionThread.tsx +42 -1
- package/src/sections/DiscussionThread/types.ts +6 -0
- package/src/sections/EnrollmentWizard/EnrollmentWizard.tsx +343 -0
- package/src/sections/EnrollmentWizard/types.ts +65 -0
- package/src/sections/ExamSession/ExamSession.tsx +100 -94
- package/src/sections/ExamSession/types.ts +6 -0
- package/src/sections/FlashcardStudySession/FlashcardStudySession.tsx +53 -36
- package/src/sections/FlashcardStudySession/types.ts +6 -0
- package/src/sections/ForumBoard/ForumBoard.tsx +67 -7
- package/src/sections/ForumBoard/types.ts +14 -0
- package/src/sections/GradebookTable/GradebookTable.tsx +54 -1
- package/src/sections/GradebookTable/types.ts +14 -0
- package/src/sections/LecturePlayer/LecturePlayer.tsx +63 -37
- package/src/sections/LecturePlayer/types.ts +8 -0
- package/src/sections/LessonPage/LessonPage.tsx +34 -6
- package/src/sections/LessonPage/types.ts +6 -0
- package/src/sections/PracticeQuiz/PracticeQuiz.tsx +106 -74
- package/src/sections/PracticeQuiz/types.ts +6 -0
- package/src/sections/ProgressDashboard/ProgressDashboard.tsx +64 -10
- package/src/sections/ProgressDashboard/types.ts +6 -0
- package/src/sections/QuizSession/QuizSession.tsx +71 -82
- package/src/sections/QuizSession/types.ts +6 -0
- package/src/sections/RequirementsChecklist/RequirementsChecklist.tsx +41 -1
- package/src/sections/RequirementsChecklist/types.ts +6 -0
- package/src/sections/ResourceLibrary/ResourceLibrary.tsx +64 -8
- package/src/sections/ResourceLibrary/types.ts +15 -1
- package/src/sections/RubricView/RubricView.tsx +37 -1
- package/src/sections/RubricView/types.ts +6 -0
- package/src/sections/ScrollableQuiz/ScrollableQuiz.tsx +36 -15
- package/src/sections/ScrollableQuiz/types.ts +6 -0
- package/src/sections/StudentProfile/StudentProfile.tsx +279 -0
- package/src/sections/StudentProfile/types.ts +99 -0
- package/src/sections/SurveyForm/SurveyForm.tsx +32 -5
- package/src/sections/SurveyForm/types.ts +6 -0
- package/src/sections/_shared/merge-answers.ts +22 -0
- package/src/sections/_shared/section-shell.tsx +64 -0
- package/src/sections/_shared/use-assessment-session.ts +125 -0
- package/src/sections/index.ts +40 -0
- package/src/social/user-avatar.tsx +9 -5
- package/src/styles/globals.css +39 -41
- package/src/ui/badge.tsx +8 -0
- package/src/ui/index.ts +2 -0
- package/src/ui/progress.tsx +4 -0
- package/src/ui/rich-text-editor.tsx +10 -0
- package/src/ui/rich-text-toolbar.tsx +2 -1
- package/src/ui/toast.tsx +170 -0
- package/src/utils/debounce.ts +8 -2
- package/src/utils/pick-palette-color.ts +33 -0
- package/src/video/types.ts +16 -0
- package/src/video/video-player.tsx +27 -6
- package/dist/ForumBoard-CHXU3mjC.js +0 -2207
- package/dist/ForumBoard-d1w5-r6n.cjs +0 -1
- package/dist/tabs-DRM2Iq_J.cjs +0 -172
- package/dist/tabs-Wf3h_Cx3.js +0 -21580
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { QuestionNavigatorProps } from './types';
|
|
2
|
-
export declare const QuestionNavigator:
|
|
2
|
+
export declare const QuestionNavigator: import('react').NamedExoticComponent<QuestionNavigatorProps>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TimerDisplayProps } from './types';
|
|
2
|
-
export declare const TimerDisplay:
|
|
2
|
+
export declare const TimerDisplay: import('react').NamedExoticComponent<TimerDisplayProps>;
|
package/dist/common/index.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export { SearchInput } from './search-input';
|
|
|
4
4
|
export { StatusBadge } from './status-badge';
|
|
5
5
|
export { DueDateDisplay } from './due-date-display';
|
|
6
6
|
export { Stepper } from './stepper';
|
|
7
|
-
export
|
|
7
|
+
export { Pagination } from './pagination';
|
|
8
|
+
export type { EmptyStateProps, ConfirmDialogProps, SearchInputProps, StatusBadgeProps, DueDateDisplayProps, StepperProps, StepDefinition, PaginationProps, } from './types';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination provides page navigation controls with page numbers,
|
|
3
|
+
* previous/next buttons, and ellipsis for large page ranges.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* <Pagination
|
|
7
|
+
* currentPage={3}
|
|
8
|
+
* totalPages={10}
|
|
9
|
+
* onPageChange={(page) => setPage(page)}
|
|
10
|
+
* />
|
|
11
|
+
*/
|
|
12
|
+
export interface PaginationProps {
|
|
13
|
+
/** Current active page (1-indexed) */
|
|
14
|
+
currentPage: number;
|
|
15
|
+
/** Total number of pages */
|
|
16
|
+
totalPages: number;
|
|
17
|
+
/** Called when the user navigates to a page */
|
|
18
|
+
onPageChange: (page: number) => void;
|
|
19
|
+
/** Number of page buttons shown on each side of the current page (default 1) */
|
|
20
|
+
siblingCount?: number;
|
|
21
|
+
/** CSS class name for the root element */
|
|
22
|
+
className?: string;
|
|
23
|
+
/** Inline styles for the root element */
|
|
24
|
+
style?: React.CSSProperties;
|
|
25
|
+
}
|
|
26
|
+
export declare const Pagination: import('react').NamedExoticComponent<PaginationProps>;
|
package/dist/common/types.d.ts
CHANGED
package/dist/components.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-800:oklch(44.8% .119 151.328);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-950:oklch(26.2% .051 172.552);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-950:oklch(28.2% .091 267.935);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-950:oklch(27.1% .105 12.094);--color-gray-400:oklch(70.7% .022 261.325);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-foreground:var(--foreground);--color-primary:var(--primary);--color-warning:var(--warning);--color-info:var(--info);--color-purple:var(--purple)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-3\.5{left:calc(var(--spacing) * 3.5)}.z-10{z-index:10}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-auto{margin:auto}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-5{margin-block:calc(var(--spacing) * 5)}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.-mr-1\.5{margin-right:calc(var(--spacing) * -1.5)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1\.5{margin-left:calc(var(--spacing) * -1.5)}.-ml-px{margin-left:-1px}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-3\.5{margin-left:calc(var(--spacing) * 3.5)}.ml-px{margin-left:1px}.line-clamp-\(--preview-lines\){-webkit-line-clamp:var(--preview-lines);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.aspect-square{aspect-ratio:1}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-6{height:calc(var(--spacing) * 6)}.h-6\.5{height:calc(var(--spacing) * 6.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-15{min-height:calc(var(--spacing) * 15)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-30{min-height:calc(var(--spacing) * 30)}.min-h-45{min-height:calc(var(--spacing) * 45)}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\/5{width:20%}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-50{width:calc(var(--spacing) * 50)}.w-80{width:calc(var(--spacing) * 80)}.w-100{width:calc(var(--spacing) * 100)}.w-128{width:calc(var(--spacing) * 128)}.w-160{width:calc(var(--spacing) * 160)}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-70{max-width:calc(var(--spacing) * 70)}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-\[360px\]{max-width:360px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-3\.5{min-width:calc(var(--spacing) * 3.5)}.min-w-5\.5{min-width:calc(var(--spacing) * 5.5)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform-\[rotateY\(180deg\)\]{transform:rotateY(180deg)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(140px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(240px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-t-\[3px\]{border-top-style:var(--tw-border-style);border-top-width:3px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-double{--tw-border-style:double;border-style:double}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-amber-200{border-color:var(--color-amber-200)}.border-background{border-color:var(--background)}.border-blue-200{border-color:var(--color-blue-200)}.border-border{border-color:var(--border)}.border-current{border-color:currentColor}.border-destructive,.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-foreground\/8{border-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\/8{border-color:color-mix(in oklab,var(--foreground) 8%,transparent)}}.border-foreground\/15{border-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\/15{border-color:color-mix(in oklab,var(--foreground) 15%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-info,.border-info\/15{border-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.border-info\/15{border-color:color-mix(in oklab,var(--info) 15%,transparent)}}.border-info\/30{border-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.border-info\/30{border-color:color-mix(in oklab,var(--info) 30%,transparent)}}.border-info\/50{border-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.border-info\/50{border-color:color-mix(in oklab,var(--info) 50%,transparent)}}.border-input{border-color:var(--input)}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.border-rose-200{border-color:var(--color-rose-200)}.border-success,.border-success\/30{border-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.border-success\/30{border-color:color-mix(in oklab,var(--success) 30%,transparent)}}.border-success\/50{border-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.border-success\/50{border-color:color-mix(in oklab,var(--success) 50%,transparent)}}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.border-warning,.border-warning\/25{border-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\/25{border-color:color-mix(in oklab,var(--warning) 25%,transparent)}}.border-warning\/30{border-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--warning) 30%,transparent)}}.border-warning\/50{border-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\/50{border-color:color-mix(in oklab,var(--warning) 50%,transparent)}}.border-t-primary,.border-t-primary\/60{border-top-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-t-primary\/60{border-top-color:color-mix(in oklab,var(--primary) 60%,transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-destructive\/50{border-left-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-l-destructive\/50{border-left-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.border-l-success\/50{border-left-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.border-l-success\/50{border-left-color:color-mix(in oklab,var(--success) 50%,transparent)}}.border-l-warning{border-left-color:var(--warning)}.bg-accent\/50{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/50{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-200{background-color:var(--color-amber-200)}.bg-background{background-color:var(--background)}.bg-black\/0{background-color:#0000}@supports (color:color-mix(in lab,red,red)){.bg-black\/0{background-color:color-mix(in oklab,var(--color-black) 0%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-black\/75{background-color:#000000bf}@supports (color:color-mix(in lab,red,red)){.bg-black\/75{background-color:color-mix(in oklab,var(--color-black) 75%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive,.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--destructive) 5%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-destructive\/20{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/20{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-200{background-color:var(--color-emerald-200)}.bg-foreground\/10{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/10{background-color:color-mix(in oklab,var(--foreground) 10%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-200{background-color:var(--color-green-200)}.bg-info,.bg-info\/3{background-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/3{background-color:color-mix(in oklab,var(--info) 3%,transparent)}}.bg-info\/5{background-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/5{background-color:color-mix(in oklab,var(--info) 5%,transparent)}}.bg-info\/15{background-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/15{background-color:color-mix(in oklab,var(--info) 15%,transparent)}}.bg-info\/25{background-color:var(--info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/25{background-color:color-mix(in oklab,var(--info) 25%,transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/10{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/10{background-color:color-mix(in oklab,var(--muted-foreground) 10%,transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted) 20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary) 10%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.bg-primary\/40{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/40{background-color:color-mix(in oklab,var(--primary) 40%,transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-200{background-color:var(--color-rose-200)}.bg-secondary{background-color:var(--secondary)}.bg-success,.bg-success\/5{background-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/5{background-color:color-mix(in oklab,var(--success) 5%,transparent)}}.bg-success\/10{background-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/10{background-color:color-mix(in oklab,var(--success) 10%,transparent)}}.bg-success\/15{background-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/15{background-color:color-mix(in oklab,var(--success) 15%,transparent)}}.bg-success\/20{background-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/20{background-color:color-mix(in oklab,var(--success) 20%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-200{background-color:var(--color-violet-200)}.bg-warning,.bg-warning\/5{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--warning) 5%,transparent)}}.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/10{background-color:color-mix(in oklab,var(--warning) 10%,transparent)}}.bg-warning\/15{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/15{background-color:color-mix(in oklab,var(--warning) 15%,transparent)}}.bg-warning\/30{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/30{background-color:color-mix(in oklab,var(--warning) 30%,transparent)}}.bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-t{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-t{--tw-gradient-position:to top in oklab}}.bg-linear-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.from-background{--tw-gradient-from:var(--background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-black\/60{--tw-gradient-from:#0009}@supports (color:color-mix(in lab,red,red)){.from-black\/60{--tw-gradient-from:color-mix(in oklab, var(--color-black) 60%, transparent)}}.from-black\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary\/5{--tw-gradient-from:var(--primary)}@supports (color:color-mix(in lab,red,red)){.from-primary\/5{--tw-gradient-from:color-mix(in oklab, var(--primary) 5%, transparent)}}.from-primary\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary\/8{--tw-gradient-from:var(--primary)}@supports (color:color-mix(in lab,red,red)){.from-primary\/8{--tw-gradient-from:color-mix(in oklab, var(--primary) 8%, transparent)}}.from-primary\/8{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-muted\/20{--tw-gradient-to:var(--muted)}@supports (color:color-mix(in lab,red,red)){.to-muted\/20{--tw-gradient-to:color-mix(in oklab, var(--muted) 20%, transparent)}}.to-muted\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-primary\/8{--tw-gradient-to:var(--primary)}@supports (color:color-mix(in lab,red,red)){.to-primary\/8{--tw-gradient-to:color-mix(in oklab, var(--primary) 8%, transparent)}}.to-primary\/8{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple\/8{--tw-gradient-to:var(--purple)}@supports (color:color-mix(in lab,red,red)){.to-purple\/8{--tw-gradient-to:color-mix(in oklab, var(--purple) 8%, transparent)}}.to-purple\/8{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[2px\]{--tw-tracking:2px;letter-spacing:2px}.tracking-\[3px\]{--tw-tracking:3px;letter-spacing:3px}.tracking-\[4px\]{--tw-tracking:4px;letter-spacing:4px}.tracking-\[5px\]{--tw-tracking:5px;letter-spacing:5px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-700{color:var(--color-amber-700)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground,.text-foreground\/15{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/15{color:color-mix(in oklab,var(--foreground) 15%,transparent)}}.text-foreground\/20{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/20{color:color-mix(in oklab,var(--foreground) 20%,transparent)}}.text-foreground\/50{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--foreground) 50%,transparent)}}.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground) 60%,transparent)}}.text-foreground\/70{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-gray-400{color:var(--color-gray-400)}.text-info{color:var(--info)}.text-info-foreground{color:var(--info-foreground)}.text-info\/35{color:var(--info)}@supports (color:color-mix(in lab,red,red)){.text-info\/35{color:color-mix(in oklab,var(--info) 35%,transparent)}}.text-info\/40{color:var(--info)}@supports (color:color-mix(in lab,red,red)){.text-info\/40{color:color-mix(in oklab,var(--info) 40%,transparent)}}.text-info\/80{color:var(--info)}@supports (color:color-mix(in lab,red,red)){.text-info\/80{color:color-mix(in oklab,var(--info) 80%,transparent)}}.text-muted-foreground,.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-primary\/40{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/40{color:color-mix(in oklab,var(--primary) 40%,transparent)}}.text-primary\/50{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/50{color:color-mix(in oklab,var(--primary) 50%,transparent)}}.text-primary\/80{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,var(--primary) 80%,transparent)}}.text-secondary-foreground{color:var(--secondary-foreground)}.text-success{color:var(--success)}.text-success-foreground{color:var(--success-foreground)}.text-warning{color:var(--warning)}.text-warning-foreground{color:var(--warning-foreground)}.text-warning\/50{color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.text-warning\/50{color:color-mix(in oklab,var(--warning) 50%,transparent)}}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:var(--primary)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-85{opacity:.85}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-3{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-destructive{--tw-ring-color:var(--destructive)}.ring-primary,.ring-primary\/30{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/30{--tw-ring-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.ring-success,.ring-success\/50{--tw-ring-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.ring-success\/50{--tw-ring-color:color-mix(in oklab, var(--success) 50%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[scrollbar-width\:none\]{scrollbar-width:none}.backface-hidden{backface-visibility:hidden}.perspective-\[1000px\]{perspective:1000px}.ring-inset{--tw-ring-inset:inset}.transform-3d{transform-style:preserve-3d}@media(hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:bg-black\/20:is(:where(.group):hover *){background-color:#0003}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-black\/20:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-black) 20%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:ml-0:first-child{margin-left:calc(var(--spacing) * 0)}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing) * 0)}.focus-within\:border-ring:focus-within{border-color:var(--ring)}.focus-within\:ring-\[3px\]:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}@media(hover:hover){.hover\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-muted-foreground\/30:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:border-muted-foreground\/30:hover{border-color:color-mix(in oklab,var(--muted-foreground) 30%,transparent)}}.hover\:border-primary:hover,.hover\:border-primary\/50:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--primary) 50%,transparent)}}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--primary) 10%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-warning\/90:hover{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-warning\/90:hover{background-color:color-mix(in oklab,var(--warning) 90%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-warning:hover,.hover\:text-warning\/80:hover{color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.hover\:text-warning\/80:hover{color:color-mix(in oklab,var(--warning) 80%,transparent)}}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary:focus-visible{outline-color:var(--primary)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-data-\[slot\=card-action\]\:flex-row:has([data-slot=card-action]){flex-direction:row}.has-data-\[slot\=card-action\]\:items-center:has([data-slot=card-action]){align-items:center}.has-data-\[slot\=card-action\]\:justify-between:has([data-slot=card-action]){justify-content:space-between}.has-\[input\:disabled\]\:cursor-default:has(:is(input:disabled)){cursor:default}.has-\[input\:disabled\]\:opacity-60:has(:is(input:disabled)){opacity:.6}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-selected\:bg-background[data-selected]{background-color:var(--background)}.data-selected\:text-foreground[data-selected]{color:var(--foreground)}.data-selected\:shadow-sm[data-selected]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}@media(prefers-reduced-motion:no-preference){.motion-safe\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:duration-500{--tw-duration:.5s;transition-duration:.5s}}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:p-12{padding:calc(var(--spacing) * 12)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:block{display:block}.md\:p-16{padding:calc(var(--spacing) * 16)}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:border-amber-800:is(.dark *){border-color:var(--color-amber-800)}.dark\:border-blue-800:is(.dark *){border-color:var(--color-blue-800)}.dark\:border-emerald-800:is(.dark *){border-color:var(--color-emerald-800)}.dark\:border-foreground\/5:is(.dark *){border-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.dark\:border-foreground\/5:is(.dark *){border-color:color-mix(in oklab,var(--foreground) 5%,transparent)}}.dark\:border-foreground\/10:is(.dark *){border-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.dark\:border-foreground\/10:is(.dark *){border-color:color-mix(in oklab,var(--foreground) 10%,transparent)}}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-rose-800:is(.dark *){border-color:var(--color-rose-800)}.dark\:border-violet-800:is(.dark *){border-color:var(--color-violet-800)}.dark\:bg-amber-800:is(.dark *){background-color:var(--color-amber-800)}.dark\:bg-amber-950\/40:is(.dark *){background-color:#46190166}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-950) 40%,transparent)}}.dark\:bg-blue-800:is(.dark *){background-color:var(--color-blue-800)}.dark\:bg-blue-950\/40:is(.dark *){background-color:#16245666}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-950) 40%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-emerald-800:is(.dark *){background-color:var(--color-emerald-800)}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#002c2266}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-emerald-950) 40%,transparent)}}.dark\:bg-green-800:is(.dark *){background-color:var(--color-green-800)}.dark\:bg-green-950\/40:is(.dark *){background-color:#032e1566}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-green-950) 40%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:bg-rose-800:is(.dark *){background-color:var(--color-rose-800)}.dark\:bg-rose-950\/40:is(.dark *){background-color:#4d021866}@supports (color:color-mix(in lab,red,red)){.dark\:bg-rose-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-rose-950) 40%,transparent)}}.dark\:bg-violet-800:is(.dark *){background-color:var(--color-violet-800)}.dark\:bg-violet-950\/40:is(.dark *){background-color:#2f0d6866}@supports (color:color-mix(in lab,red,red)){.dark\:bg-violet-950\/40:is(.dark *){background-color:color-mix(in oklab,var(--color-violet-950) 40%,transparent)}}.dark\:to-muted\/10:is(.dark *){--tw-gradient-to:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:to-muted\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab, var(--muted) 10%, transparent)}}.dark\:to-muted\/10:is(.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_\.tiptap\]\:min-h-16 .tiptap{min-height:calc(var(--spacing) * 16)}.\[\&_\.tiptap\]\:outline-none .tiptap{--tw-outline-style:none;outline-style:none}.\[\&_\.tiptap_blockquote\]\:border-l-2 .tiptap blockquote{border-left-style:var(--tw-border-style);border-left-width:2px}.\[\&_\.tiptap_blockquote\]\:border-muted-foreground\/30 .tiptap blockquote{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.\[\&_\.tiptap_blockquote\]\:border-muted-foreground\/30 .tiptap blockquote{border-color:color-mix(in oklab,var(--muted-foreground) 30%,transparent)}}.\[\&_\.tiptap_blockquote\]\:pl-3 .tiptap blockquote{padding-left:calc(var(--spacing) * 3)}.\[\&_\.tiptap_blockquote\]\:italic .tiptap blockquote{font-style:italic}.\[\&_\.tiptap_h2\]\:mb-1 .tiptap h2{margin-bottom:calc(var(--spacing) * 1)}.\[\&_\.tiptap_h2\]\:text-lg .tiptap h2{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.\[\&_\.tiptap_h2\]\:font-semibold .tiptap h2{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_\.tiptap_ol\]\:list-decimal .tiptap ol{list-style-type:decimal}.\[\&_\.tiptap_ol\]\:pl-5 .tiptap ol{padding-left:calc(var(--spacing) * 5)}.\[\&_\.tiptap_p\]\:mb-1 .tiptap p{margin-bottom:calc(var(--spacing) * 1)}.\[\&_\.tiptap_pre\]\:rounded-md .tiptap pre{border-radius:calc(var(--radius) - 2px)}.\[\&_\.tiptap_pre\]\:bg-muted .tiptap pre{background-color:var(--muted)}.\[\&_\.tiptap_pre\]\:p-3 .tiptap pre{padding:calc(var(--spacing) * 3)}.\[\&_\.tiptap_pre\]\:font-mono .tiptap pre{font-family:var(--font-mono)}.\[\&_\.tiptap_pre\]\:text-sm .tiptap pre{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\[\&_\.tiptap_ul\]\:list-disc .tiptap ul{list-style-type:disc}.\[\&_\.tiptap_ul\]\:pl-5 .tiptap ul{padding-left:calc(var(--spacing) * 5)}.\[\&_a\]\:text-primary a{color:var(--primary)}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-5 ol{padding-left:calc(var(--spacing) * 5)}.\[\&_ol\]\:pl-\[1\.5em\] ol{padding-left:1.5em}.\[\&_p\]\:mb-1 p{margin-bottom:calc(var(--spacing) * 1)}.\[\&_p\]\:mb-\[1\.5em\] p{margin-bottom:1.5em}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-5 ul{padding-left:calc(var(--spacing) * 5)}.\[\&_ul\]\:pl-\[1\.5em\] ul{padding-left:1.5em}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&\>svg\]\:size-12>svg{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-info>svg{color:var(--info)}.\[\&\>svg\]\:text-success>svg{color:var(--success)}.\[\&\>svg\]\:text-warning>svg{color:var(--warning)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}.hydra-root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(52% .22 22);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.1% .01 22);--secondary-foreground:oklch(40% .12 22);--muted:oklch(96.1% .005 22);--muted-foreground:oklch(50% .02 22);--accent:oklch(95.2% .012 22);--accent-foreground:oklch(40% .12 22);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(90.5% .008 22);--input:oklch(90.5% .008 22);--ring:oklch(52% .22 22);--success:oklch(72.3% .191 142.5);--success-foreground:oklch(96.2% .044 156);--warning:oklch(70.2% .183 55);--warning-foreground:oklch(98% .016 73);--info:oklch(62.3% .214 259);--info-foreground:oklch(97% .014 254);--purple:oklch(62.7% .265 303);--teal:oklch(69.7% .146 182);color:var(--foreground);background:var(--background);font-family:system-ui,-apple-system,sans-serif}.hydra-root.dark,.dark .hydra-root{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% .008 22);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% .008 22);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(68% .2 22);--primary-foreground:oklch(14.5% 0 0);--secondary:oklch(26.9% .015 22);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% .015 22);--muted-foreground:oklch(65% .02 22);--accent:oklch(26.9% .015 22);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(14.5% 0 0);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(68% .2 22);--success:oklch(72.3% .191 142.5);--success-foreground:oklch(15% .05 150);--warning:oklch(70.2% .183 55);--warning-foreground:oklch(15% .05 60);--info:oklch(62.3% .214 259);--info-foreground:oklch(15% .05 255);--purple:oklch(62.7% .265 303);--teal:oklch(69.7% .146 182)}.flashcard-back-content ul,.flashcard-back-content ol{margin:.25em 0;padding-left:1.25em}.flashcard-back-content ul{list-style-type:disc}.flashcard-back-content ol{list-style-type:decimal}.flashcard-back-content li{margin:.15em 0}.flashcard-back-content p{margin:.25em 0}.tiptap:focus{outline:none}.tiptap p.is-editor-empty:first-child:before{color:var(--muted-foreground);content:attr(data-placeholder);float:left;pointer-events:none;height:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|
|
1
|
+
.hydra-root{--radius: .625rem;--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: oklch(.52 .22 22);--primary-foreground: oklch(.985 0 0);--secondary: oklch(.961 .01 22);--secondary-foreground: oklch(.4 .12 22);--muted: oklch(.961 .005 22);--muted-foreground: oklch(.5 .02 22);--accent: oklch(.952 .012 22);--accent-foreground: oklch(.4 .12 22);--destructive: oklch(.577 .245 27.325);--destructive-foreground: oklch(.985 0 0);--border: oklch(.905 .008 22);--input: oklch(.905 .008 22);--ring: oklch(.52 .22 22);--success: oklch(.723 .191 142.5);--success-foreground: oklch(.962 .044 156);--warning: oklch(.702 .183 55);--warning-foreground: oklch(.98 .016 73);--info: oklch(.623 .214 259);--info-foreground: oklch(.97 .014 254);--palette-0: oklch(.627 .265 303);--palette-0-foreground: oklch(.985 0 0);--palette-1: oklch(.68 .162 195);--palette-1-foreground: oklch(.985 0 0);--palette-2: oklch(.72 .185 130);--palette-2-foreground: oklch(.985 0 0);--palette-3: oklch(.7 .18 70);--palette-3-foreground: oklch(.15 0 0);color:var(--foreground);background:var(--background);font-family:system-ui,-apple-system,sans-serif}.hydra-root.dark,.dark .hydra-root{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 .008 22);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 .008 22);--popover-foreground: oklch(.985 0 0);--primary: oklch(.68 .2 22);--primary-foreground: oklch(.145 0 0);--secondary: oklch(.269 .015 22);--secondary-foreground: oklch(.985 0 0);--muted: oklch(.269 .015 22);--muted-foreground: oklch(.65 .02 22);--accent: oklch(.269 .015 22);--accent-foreground: oklch(.985 0 0);--destructive: oklch(.704 .191 22.216);--destructive-foreground: oklch(.145 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: oklch(.68 .2 22);--success: oklch(.723 .191 142.5);--success-foreground: oklch(.15 .05 150);--warning: oklch(.702 .183 55);--warning-foreground: oklch(.15 .05 60);--info: oklch(.623 .214 259);--info-foreground: oklch(.15 .05 255);--palette-0: oklch(.7 .2 303);--palette-0-foreground: oklch(.15 0 0);--palette-1: oklch(.73 .15 195);--palette-1-foreground: oklch(.15 0 0);--palette-2: oklch(.76 .17 130);--palette-2-foreground: oklch(.15 0 0);--palette-3: oklch(.74 .165 70);--palette-3-foreground: oklch(.15 0 0)}.flashcard-back-content ul,.flashcard-back-content ol{padding-left:1.25em;margin:.25em 0}.flashcard-back-content ul{list-style-type:disc}.flashcard-back-content ol{list-style-type:decimal}.flashcard-back-content li{margin:.15em 0}.flashcard-back-content p{margin:.25em 0}.tiptap:focus{outline:none}.tiptap p.is-editor-empty:first-child:before{color:var(--muted-foreground);content:attr(data-placeholder);float:left;height:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.hydra-root *,.hydra-root *:before,.hydra-root *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AudioPlayer provides an HTML5 audio player with custom controls
|
|
3
|
+
* including play/pause, seek, speed adjustment, and mute toggle.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* <AudioPlayer src="/audio/lecture-1.mp3" title="Lecture 1: Introduction" />
|
|
7
|
+
*/
|
|
8
|
+
export interface AudioPlayerProps {
|
|
9
|
+
/** Audio source URL */
|
|
10
|
+
src: string;
|
|
11
|
+
/** Optional title displayed above the player */
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Called when playback ends */
|
|
14
|
+
onEnded?: () => void;
|
|
15
|
+
/** Called on time update with current time and duration */
|
|
16
|
+
onTimeUpdate?: (currentTime: number, duration: number) => void;
|
|
17
|
+
/** CSS class name for the root element */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Inline styles for the root element */
|
|
20
|
+
style?: React.CSSProperties;
|
|
21
|
+
}
|
|
22
|
+
export declare const AudioPlayer: import('react').NamedExoticComponent<AudioPlayerProps>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CodeBlock renders source code with optional line numbers, a filename header,
|
|
3
|
+
* and a copy-to-clipboard button. Does not bundle a syntax highlighter —
|
|
4
|
+
* consumers can apply their own (Prism, Shiki, etc.) via the `language-*` class on the `<code>` element.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* <CodeBlock
|
|
8
|
+
* code="console.log('hello');"
|
|
9
|
+
* language="javascript"
|
|
10
|
+
* filename="example.js"
|
|
11
|
+
* showLineNumbers
|
|
12
|
+
* />
|
|
13
|
+
*/
|
|
14
|
+
export interface CodeBlockProps {
|
|
15
|
+
/** The code content to display */
|
|
16
|
+
code: string;
|
|
17
|
+
/** Programming language identifier (applied as `language-*` class on `<code>`) */
|
|
18
|
+
language?: string;
|
|
19
|
+
/** Optional filename shown in the header bar */
|
|
20
|
+
filename?: string;
|
|
21
|
+
/** Whether to display line numbers */
|
|
22
|
+
showLineNumbers?: boolean;
|
|
23
|
+
/** Called after code is copied to clipboard */
|
|
24
|
+
onCopy?: () => void;
|
|
25
|
+
/** CSS class name for the root element */
|
|
26
|
+
className?: string;
|
|
27
|
+
/** Inline styles for the root element */
|
|
28
|
+
style?: React.CSSProperties;
|
|
29
|
+
}
|
|
30
|
+
export declare const CodeBlock: import('react').NamedExoticComponent<CodeBlockProps>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type EmbedAspectRatio = "16/9" | "4/3" | "1/1";
|
|
2
|
+
/**
|
|
3
|
+
* EmbedBlock renders a responsive iframe wrapper with an optional title bar
|
|
4
|
+
* and loading skeleton. Ideal for embedding YouTube videos, SCORM objects,
|
|
5
|
+
* Google Slides, and other external content.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <EmbedBlock
|
|
9
|
+
* src="https://www.youtube.com/embed/dQw4w9WgXcQ"
|
|
10
|
+
* title="Introduction Video"
|
|
11
|
+
* aspectRatio="16/9"
|
|
12
|
+
* />
|
|
13
|
+
*/
|
|
14
|
+
export interface EmbedBlockProps {
|
|
15
|
+
/** iframe source URL */
|
|
16
|
+
src: string;
|
|
17
|
+
/** Optional title for the embed */
|
|
18
|
+
title?: string;
|
|
19
|
+
/** Aspect ratio of the embed container */
|
|
20
|
+
aspectRatio?: EmbedAspectRatio;
|
|
21
|
+
/** Whether to allow fullscreen */
|
|
22
|
+
allowFullscreen?: boolean;
|
|
23
|
+
/** CSS class name for the root element */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Inline styles for the root element */
|
|
26
|
+
style?: React.CSSProperties;
|
|
27
|
+
}
|
|
28
|
+
export declare const EmbedBlock: import('react').NamedExoticComponent<EmbedBlockProps>;
|
package/dist/content/index.d.ts
CHANGED
|
@@ -2,3 +2,9 @@ export { ContentBlock } from './content-block';
|
|
|
2
2
|
export { FileUploadZone } from './file-upload-zone';
|
|
3
3
|
export { AttachmentList } from './attachment-list';
|
|
4
4
|
export type { LessonBlock, ContentBlockProps, FileUploadZoneProps, AttachmentListProps, AttachmentFile, } from './types';
|
|
5
|
+
export { AudioPlayer } from './audio-player';
|
|
6
|
+
export type { AudioPlayerProps } from './audio-player';
|
|
7
|
+
export { CodeBlock } from './code-block';
|
|
8
|
+
export type { CodeBlockProps } from './code-block';
|
|
9
|
+
export { EmbedBlock } from './embed-block';
|
|
10
|
+
export type { EmbedBlockProps, EmbedAspectRatio } from './embed-block';
|
package/dist/content/types.d.ts
CHANGED
|
@@ -31,6 +31,30 @@ export type LessonBlock = {
|
|
|
31
31
|
type: "flashcards";
|
|
32
32
|
cards: FlashcardData[];
|
|
33
33
|
deckName?: string;
|
|
34
|
+
} | {
|
|
35
|
+
type: "audio";
|
|
36
|
+
src: string;
|
|
37
|
+
title?: string;
|
|
38
|
+
} | {
|
|
39
|
+
type: "code";
|
|
40
|
+
code: string;
|
|
41
|
+
language?: string;
|
|
42
|
+
filename?: string;
|
|
43
|
+
showLineNumbers?: boolean;
|
|
44
|
+
} | {
|
|
45
|
+
type: "embed";
|
|
46
|
+
src: string;
|
|
47
|
+
title?: string;
|
|
48
|
+
aspectRatio?: "16/9" | "4/3" | "1/1";
|
|
49
|
+
allowFullscreen?: boolean;
|
|
50
|
+
} | {
|
|
51
|
+
type: "table";
|
|
52
|
+
headers: string[];
|
|
53
|
+
rows: string[][];
|
|
54
|
+
caption?: string;
|
|
55
|
+
} | {
|
|
56
|
+
type: "file";
|
|
57
|
+
files: AttachmentFile[];
|
|
34
58
|
} | {
|
|
35
59
|
type: "divider";
|
|
36
60
|
} | {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CourseCard displays course info in a card — thumbnail, title, instructor,
|
|
3
|
+
* progress, category, enrollment status, and CTA.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* <CourseCard
|
|
7
|
+
* uid="course-1"
|
|
8
|
+
* title="React Fundamentals"
|
|
9
|
+
* description="Learn the basics of React."
|
|
10
|
+
* instructor={{ displayName: "Jane Doe" }}
|
|
11
|
+
* progress={65}
|
|
12
|
+
* enrollmentStatus="enrolled"
|
|
13
|
+
* onClick={() => navigate("/courses/course-1")}
|
|
14
|
+
* />
|
|
15
|
+
*/
|
|
16
|
+
export interface CourseCardProps {
|
|
17
|
+
/** Unique identifier */
|
|
18
|
+
uid: string;
|
|
19
|
+
/** Course title */
|
|
20
|
+
title: string;
|
|
21
|
+
/** Course description */
|
|
22
|
+
description?: string;
|
|
23
|
+
/** Thumbnail image URL */
|
|
24
|
+
thumbnailUrl?: string;
|
|
25
|
+
/** Instructor info */
|
|
26
|
+
instructor?: {
|
|
27
|
+
displayName: string;
|
|
28
|
+
avatarUrl?: string;
|
|
29
|
+
};
|
|
30
|
+
/** Category label */
|
|
31
|
+
category?: string;
|
|
32
|
+
/** Progress percentage (0-100), shown when enrolled/completed */
|
|
33
|
+
progress?: number;
|
|
34
|
+
/** Enrollment status */
|
|
35
|
+
enrollmentStatus?: "enrolled" | "completed" | "available" | "locked";
|
|
36
|
+
/** Number of enrolled students */
|
|
37
|
+
studentCount?: number;
|
|
38
|
+
/** Estimated duration (e.g. "12 hours") */
|
|
39
|
+
duration?: string;
|
|
40
|
+
/** Called when the card is clicked */
|
|
41
|
+
onClick?: () => void;
|
|
42
|
+
/** Called when the enroll button is clicked */
|
|
43
|
+
onEnroll?: () => void;
|
|
44
|
+
/** Layout orientation */
|
|
45
|
+
layout?: "vertical" | "horizontal";
|
|
46
|
+
/** CSS class name for the root element */
|
|
47
|
+
className?: string;
|
|
48
|
+
/** Inline styles for the root element */
|
|
49
|
+
style?: React.CSSProperties;
|
|
50
|
+
}
|
|
51
|
+
export declare const CourseCard: import('react').NamedExoticComponent<CourseCardProps>;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { CurriculumTree } from './curriculum-tree';
|
|
2
2
|
export { CurriculumItemRow } from './curriculum-item';
|
|
3
3
|
export { LearningObjectIcon } from './learning-object-icon';
|
|
4
|
+
export { CourseCard } from './course-card';
|
|
4
5
|
export type { CurriculumItem, CurriculumItemProgress, CurriculumTreeProps, CurriculumItemRowProps, LearningObjectIconProps, } from './types';
|
|
6
|
+
export type { CourseCardProps } from './course-card';
|
|
@@ -46,8 +46,8 @@ export interface CurriculumItemRowProps {
|
|
|
46
46
|
isCompleted?: boolean;
|
|
47
47
|
isExpanded?: boolean;
|
|
48
48
|
hasChildren: boolean;
|
|
49
|
-
onToggleExpand?: () => void;
|
|
50
|
-
onClick?: () => void;
|
|
49
|
+
onToggleExpand?: (uid: string) => void;
|
|
50
|
+
onClick?: (item: CurriculumItem) => void;
|
|
51
51
|
showDuration?: boolean;
|
|
52
52
|
showIcon?: boolean;
|
|
53
53
|
showProgress?: boolean;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tabs-DRM2Iq_J.cjs"),r=require("react/jsx-runtime"),f=require("lucide-react"),x=require("react"),A=({entries:t,currentTime:s=0,onSeek:a,readOnly:o=!1,maxHeight:l="400px",className:d,style:i})=>{const n=x.useRef(null),u=x.useRef(null),g=x.useMemo(()=>t.reduce((c,p,m)=>p.time<=s?m:c,-1),[t,s]);return x.useEffect(()=>{u.current&&n.current&&u.current.scrollIntoView({behavior:"smooth",block:"nearest"})},[g]),t.length===0?r.jsxs("div",{className:e.cn("flex flex-col items-center justify-center gap-2 rounded-md border border-border bg-muted p-6",d),style:i,children:[r.jsx(f.Clock,{size:20,className:"text-muted-foreground"}),r.jsx("span",{className:"text-sm text-muted-foreground",children:"No transcript available"})]}):r.jsx("div",{ref:n,className:e.cn("overflow-y-auto rounded-md border border-border",d),style:{maxHeight:l,...i},children:t.map((c,p)=>{const m=p===g;return r.jsxs("div",{ref:m?u:void 0,className:e.cn("flex gap-3 px-3 py-2 text-sm transition-colors",m&&"bg-primary/10",!o&&a&&"cursor-pointer hover:bg-muted"),onClick:()=>!o&&(a==null?void 0:a(c.time)),role:!o&&a?"button":void 0,tabIndex:!o&&a?0:void 0,onKeyDown:!o&&a?b=>{(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),a(c.time))}:void 0,children:[r.jsx("span",{className:e.cn("shrink-0 font-mono text-xs tabular-nums pt-0.5",m?"text-primary font-medium":"text-muted-foreground"),children:e.formatTimer(Math.floor(c.time))}),r.jsxs("div",{className:"min-w-0",children:[c.speaker&&r.jsxs("span",{className:"mr-1 font-semibold text-foreground",children:[c.speaker,":"]}),r.jsx("span",{className:m?"text-foreground":"text-muted-foreground",children:c.text})]})]},`${c.time}-${c.text.slice(0,20)}`)})})},z=({chapters:t,currentTime:s=0,onSeek:a,className:o,style:l})=>{const d=x.useMemo(()=>t.reduce((i,n,u)=>n.time<=s?u:i,-1),[t,s]);return r.jsx("div",{className:e.cn("divide-y divide-border rounded-md border border-border",o),style:l,children:t.map((i,n)=>{const u=n===d;return r.jsxs("div",{className:e.cn("flex items-center gap-3 p-3 transition-colors",u&&"bg-primary/10",a&&"cursor-pointer hover:bg-muted"),onClick:()=>a==null?void 0:a(i.time),role:a?"button":void 0,tabIndex:a?0:void 0,onKeyDown:a?g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),a(i.time))}:void 0,children:[i.thumbnail?r.jsxs("div",{className:"relative shrink-0 w-16 overflow-hidden rounded",style:{aspectRatio:"16/9"},children:[r.jsx("img",{src:i.thumbnail,alt:i.title,loading:"lazy",className:"size-full object-cover"}),u&&r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:r.jsx(f.Play,{size:14,className:"ml-px text-white"})})]}):r.jsx("div",{className:e.cn("flex shrink-0 items-center justify-center size-8 rounded-full",u?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground"),children:r.jsx("span",{className:"text-xs font-semibold",children:n+1})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:e.cn("truncate text-sm font-medium",u?"text-primary":"text-foreground"),children:i.title}),r.jsxs("div",{className:"mt-0.5 flex items-center gap-2",children:[r.jsx("span",{className:"font-mono text-xs tabular-nums text-muted-foreground",children:e.formatTimer(Math.floor(i.time))}),i.duration!=null&&i.duration>0&&r.jsx("span",{className:"text-xs text-muted-foreground",children:e.formatDuration(i.duration)})]})]})]},i.time)})})},k=({poster:t,title:s,duration:a,progress:o,onClick:l,className:d,style:i})=>r.jsxs("div",{className:e.cn("group overflow-hidden rounded-lg border border-border transition-colors",l&&"cursor-pointer hover:border-primary/50 hover:shadow-sm",d),style:i,onClick:l,role:l?"button":void 0,tabIndex:l?0:void 0,onKeyDown:l?n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),l())}:void 0,children:[r.jsxs("div",{className:"relative overflow-hidden",style:{aspectRatio:"16/9"},children:[t?r.jsx("img",{src:t,alt:s,loading:"lazy",className:"size-full object-cover transition-transform duration-300 group-hover:scale-105"}):r.jsx("div",{className:"flex size-full items-center justify-center bg-muted",children:r.jsx(f.Video,{size:32,className:"text-muted-foreground"})}),r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/0 transition-colors group-hover:bg-black/20",children:r.jsx("div",{className:"flex size-10 items-center justify-center rounded-full bg-black/60 opacity-0 transition-opacity group-hover:opacity-100",children:r.jsx(f.Play,{size:20,className:"ml-0.5 text-white"})})}),a!=null&&a>0&&r.jsx("span",{className:"absolute bottom-2 right-2 rounded bg-black/75 px-1.5 py-0.5 text-xs font-medium tabular-nums text-white",children:e.formatDuration(a)})]}),r.jsx("div",{className:"p-3",children:r.jsx("h4",{className:"truncate text-sm font-medium text-foreground",children:s})}),o!=null&&o>=0&&r.jsx("div",{className:"px-3 pb-3",children:r.jsx(e.Progress,{value:o,size:"sm",variant:o>=100?"success":"default"})})]}),I=x.memo(function({bookmark:s,onSeek:a,onDelete:o,onEdit:l,className:d,style:i}){return r.jsxs("div",{className:e.cn("flex items-start gap-3 rounded-md border border-border p-3",d),style:i,children:[r.jsx("div",{className:"flex shrink-0 items-center justify-center size-8 rounded-full bg-primary/10 text-primary",children:r.jsx(f.Bookmark,{size:16})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("button",{type:"button",className:e.cn("font-mono text-xs font-medium tabular-nums",a?"cursor-pointer text-primary hover:underline":"text-muted-foreground"),onClick:()=>a==null?void 0:a(s.time),disabled:!a,children:e.formatTimer(Math.floor(s.time))}),s.note&&r.jsx("p",{className:"mt-0.5 text-sm text-foreground",children:s.note}),s.createdAt&&r.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(s.createdAt).toLocaleDateString()})]}),(l||o)&&r.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[l&&r.jsx("button",{type:"button",className:"inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","aria-label":"Edit bookmark",onClick:()=>l(s.id),children:r.jsx(f.Pencil,{size:14})}),o&&r.jsx("button",{type:"button",className:"inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive","aria-label":"Delete bookmark",onClick:()=>o(s.id),children:r.jsx(f.Trash2,{size:14})})]})]})}),B=x.memo(function({thumbnail:s,title:a,duration:o,status:l="unwatched",isActive:d=!1,index:i,onClick:n,className:u,style:g}){return r.jsxs("div",{className:e.cn("flex items-center gap-3 rounded-md px-3 py-2 transition-colors",d&&"bg-primary/10",n&&"cursor-pointer hover:bg-muted",u),style:g,onClick:n,role:n?"button":void 0,tabIndex:n?0:void 0,onKeyDown:n?c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),n())}:void 0,children:[r.jsx("div",{className:"flex shrink-0 items-center justify-center size-6",children:l==="completed"?r.jsx("span",{className:"text-success",children:r.jsx(f.CheckCircle2,{size:18})}):d?r.jsx("span",{className:"text-primary",children:r.jsx(f.Play,{size:16,className:"ml-px"})}):i!=null?r.jsx("span",{className:"text-xs font-medium tabular-nums text-muted-foreground",children:i}):r.jsx("span",{className:"text-muted-foreground",children:r.jsx(f.Circle,{size:16})})}),s&&r.jsxs("div",{className:"relative shrink-0 w-16 overflow-hidden rounded",style:{aspectRatio:"16/9"},children:[r.jsx("img",{src:s,alt:a,loading:"lazy",className:e.cn("size-full object-cover",l==="completed"&&"opacity-60")}),d&&r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:r.jsx(f.Play,{size:12,className:"ml-px text-white"})})]}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:e.cn("truncate text-sm",d?"font-medium text-primary":"text-foreground",l==="completed"&&!d&&"text-muted-foreground"),children:a}),o!=null&&o>0&&r.jsx("span",{className:"text-xs text-muted-foreground",children:e.formatDuration(o)})]})]})});function R(t){return t.startsWith("image/")?f.Image:t.startsWith("video/")?f.Film:t.startsWith("audio/")?f.Music:t==="application/pdf"?f.FileText:t==="application/zip"||t==="application/x-rar-compressed"||t==="application/gzip"?f.Archive:f.File}function F({files:t,onDownload:s,onRemove:a,readOnly:o=!0,className:l,style:d}){return t.length===0?null:r.jsx("div",{className:e.cn("flex flex-col gap-1",l),style:d,children:t.map((i,n)=>{const u=R(i.type);return r.jsxs("div",{className:"flex items-center gap-3 rounded-md px-2 py-1.5 hover:bg-muted/50 transition-colors",children:[r.jsx("span",{className:"shrink-0 text-muted-foreground",children:r.jsx(u,{size:18})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("span",{className:"text-sm text-foreground block truncate",children:i.name}),r.jsx("span",{className:"text-xs text-muted-foreground",children:e.formatFileSize(i.size)})]}),s&&i.url&&r.jsx(e.Button,{variant:"ghost",size:"sm",className:"shrink-0 h-7 w-7 p-0",onClick:()=>s(i),children:r.jsx(f.Download,{size:14})}),!o&&a&&r.jsx(e.Button,{variant:"ghost",size:"sm",className:"shrink-0 h-7 w-7 p-0 text-muted-foreground hover:text-destructive",onClick:()=>a(i),children:r.jsx(f.X,{size:14})})]},`${i.name}-${n}`)})})}function V({durationSeconds:t,warningThresholdSeconds:s=60,onExpire:a,onWarning:o,autoStart:l=!1}){const[d,i]=x.useState(t),n=x.useRef(l?"running":"idle"),u=x.useRef(null),g=x.useRef(a),c=x.useRef(o),p=x.useRef(!1);g.current=a,c.current=o;const m=x.useCallback(()=>{u.current!=null&&(clearInterval(u.current),u.current=null)},[]),b=x.useCallback(()=>{m(),u.current=setInterval(()=>{i(j=>{var N,D;const h=j-1;return!p.current&&h<=s&&h>0&&(p.current=!0,(N=c.current)==null||N.call(c)),h<=0?(m(),n.current="expired",(D=g.current)==null||D.call(g),0):h})},1e3)},[m,s]),y=x.useCallback(()=>{i(t),p.current=!1,n.current="running",b()},[t,b]),w=x.useCallback(()=>{n.current==="running"&&(m(),n.current="paused",i(j=>j))},[m]),C=x.useCallback(()=>{n.current==="paused"&&(n.current="running",b())},[b]),T=x.useCallback(()=>{m(),n.current="idle",p.current=!1,i(t)},[m,t]);x.useEffect(()=>(l&&b(),m),[]);const v=n.current;return{timeRemaining:d,isRunning:v==="running",isPaused:v==="paused",isExpired:v==="expired",isWarning:d<=s&&d>0,start:y,pause:w,resume:C,reset:T}}function P({steps:t,currentStep:s,orientation:a="horizontal",variant:o="default",className:l,style:d}){const i=a==="horizontal",n=o==="compact",u=n?"w-6 h-6 text-xs":"w-8 h-8 text-sm",g=n?12:16;return r.jsx("div",{className:e.cn("flex",i?"flex-row items-start":"flex-col",l),style:d,children:t.map((c,p)=>{const m=p<s,b=p===s;return r.jsxs("div",{className:e.cn("flex",i?"flex-1 flex-row items-start":"flex-row items-start"),children:[r.jsxs("div",{className:e.cn("flex",i?"flex-col items-center":"flex-row items-start gap-3"),children:[r.jsx("div",{className:e.cn("rounded-full flex items-center justify-center shrink-0 font-semibold transition-colors",u,m&&"bg-primary text-primary-foreground",b&&"border-2 border-primary bg-primary/10 text-primary",!m&&!b&&"border-2 border-border bg-muted text-muted-foreground"),children:m?r.jsx(f.Check,{size:g}):r.jsx("span",{children:p+1})}),r.jsxs("div",{className:e.cn(i?"mt-1.5 text-center":"pt-0.5"),children:[r.jsx("p",{className:e.cn("text-sm font-medium leading-tight",b?"text-foreground":"text-muted-foreground"),children:c.label}),!n&&c.description&&r.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:c.description})]})]}),p<t.length-1&&(i?r.jsx("div",{className:e.cn("flex-1 h-0.5 self-center mt-0 mx-2",n?"mt-3":"mt-4",m?"bg-primary":"bg-border")}):r.jsx("div",{className:e.cn("w-0.5 h-6 ml-3.5",n&&"ml-2.5",m?"bg-primary":"bg-border")}))]},p)})})}function H({children:t,colorMode:s="dark",className:a,style:o}){return r.jsx("div",{className:`hydra-root${s==="dark"?" dark":""}${a?` ${a}`:""}`,style:o,children:t})}function M({className:t,...s}){return r.jsx("textarea",{"data-slot":"textarea",className:e.cn("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),...s})}function Q({className:t,...s}){return r.jsx("span",{"data-slot":"avatar",className:e.cn("relative flex size-9 shrink-0 overflow-hidden rounded-full",t),...s})}function L({className:t,onError:s,...a}){return r.jsx("img",{"data-slot":"avatar-image",className:e.cn("aspect-square size-full object-cover",t),onError:s,...a})}function E({className:t,...s}){return r.jsx("span",{"data-slot":"avatar-fallback",className:e.cn("bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-xs font-medium",t),...s})}function $({className:t,...s}){return r.jsx("div",{"data-slot":"skeleton",className:e.cn("bg-muted animate-pulse rounded-md",t),...s})}exports.AchievementBadge=e.AchievementBadge;exports.ActivityTimeline=e.ActivityTimeline;exports.Alert=e.Alert;exports.AlertDescription=e.AlertDescription;exports.AlertDialog=e.AlertDialog;exports.AlertDialogAction=e.AlertDialogAction;exports.AlertDialogBackdrop=e.AlertDialogBackdrop;exports.AlertDialogCancel=e.AlertDialogCancel;exports.AlertDialogContent=e.AlertDialogContent;exports.AlertDialogDescription=e.AlertDialogDescription;exports.AlertDialogFooter=e.AlertDialogFooter;exports.AlertDialogHeader=e.AlertDialogHeader;exports.AlertDialogPortal=e.AlertDialogPortal;exports.AlertDialogTitle=e.AlertDialogTitle;exports.AlertDialogTrigger=e.AlertDialogTrigger;exports.AlertTitle=e.AlertTitle;exports.AssessmentToolbar=e.AssessmentToolbar;exports.Badge=e.Badge;exports.Button=e.Button;exports.Card=e.Card;exports.CardAction=e.CardAction;exports.CardContent=e.CardContent;exports.CardDescription=e.CardDescription;exports.CardFooter=e.CardFooter;exports.CardHeader=e.CardHeader;exports.CardTitle=e.CardTitle;exports.Choice=e.Choice;exports.ConfirmDialog=e.ConfirmDialog;exports.ContentBlock=e.ContentBlock;exports.CurriculumItemRow=e.CurriculumItemRow;exports.CurriculumTree=e.CurriculumTree;exports.Drawer=e.Drawer;exports.DrawerBackdrop=e.DrawerBackdrop;exports.DrawerBody=e.DrawerBody;exports.DrawerClose=e.DrawerClose;exports.DrawerContent=e.DrawerContent;exports.DrawerDescription=e.DrawerDescription;exports.DrawerFooter=e.DrawerFooter;exports.DrawerHeader=e.DrawerHeader;exports.DrawerNav=e.DrawerNav;exports.DrawerNavItem=e.DrawerNavItem;exports.DrawerPortal=e.DrawerPortal;exports.DrawerTitle=e.DrawerTitle;exports.DrawerTrigger=e.DrawerTrigger;exports.DrawerViewport=e.DrawerViewport;exports.DueDateDisplay=e.DueDateDisplay;exports.EmptyState=e.EmptyState;exports.Essay=e.Essay;exports.FeedbackBanner=e.FeedbackBanner;exports.FileUploadZone=e.FileUploadZone;exports.FillInTheBlank=e.FillInTheBlank;exports.Flashcard=e.Flashcard;exports.FlashcardDeck=e.FlashcardDeck;exports.GradeIndicator=e.GradeIndicator;exports.Hotspot=e.Hotspot;exports.InlineChoice=e.InlineChoice;exports.Input=e.Input;exports.LearningObjectIcon=e.LearningObjectIcon;exports.LikertScale=e.LikertScale;exports.Matching=e.Matching;exports.MultipleChoice=e.MultipleChoice;exports.Numeric=e.Numeric;exports.Ordering=e.Ordering;exports.PostCard=e.PostCard;exports.Progress=e.Progress;exports.ProgressRing=e.ProgressRing;exports.QuestionHeaderBar=e.QuestionHeaderBar;exports.QuestionMaterialsDrawer=e.QuestionMaterialsDrawer;exports.QuestionNavigator=e.QuestionNavigator;exports.QuestionRenderer=e.QuestionRenderer;exports.RichTextEditor=e.RichTextEditor;exports.Scenario=e.Scenario;exports.SearchInput=e.SearchInput;exports.Separator=e.Separator;exports.Spreadsheet=e.Spreadsheet;exports.StarRating=e.StarRating;exports.StatCard=e.StatCard;exports.StatusBadge=e.StatusBadge;exports.StreakBadge=e.StreakBadge;exports.Table=e.Table;exports.TableBody=e.TableBody;exports.TableCaption=e.TableCaption;exports.TableCell=e.TableCell;exports.TableFooter=e.TableFooter;exports.TableHead=e.TableHead;exports.TableHeader=e.TableHeader;exports.TableRow=e.TableRow;exports.Tabs=e.Tabs;exports.TabsContent=e.TabsContent;exports.TabsList=e.TabsList;exports.TabsTrigger=e.TabsTrigger;exports.TimerDisplay=e.TimerDisplay;exports.Tooltip=e.Tooltip;exports.TooltipContent=e.TooltipContent;exports.TooltipTrigger=e.TooltipTrigger;exports.TrueFalse=e.TrueFalse;exports.UserAvatar=e.UserAvatar;exports.VideoPlayer=e.VideoPlayer;exports.alertVariants=e.alertVariants;exports.badgeVariants=e.badgeVariants;exports.buttonVariants=e.buttonVariants;exports.cn=e.cn;exports.drawerContentVariants=e.drawerContentVariants;exports.progressVariants=e.progressVariants;exports.scoreQuestion=e.scoreQuestion;exports.scoreScenarioSubQuestions=e.scoreScenarioSubQuestions;exports.AttachmentList=F;exports.Avatar=Q;exports.AvatarFallback=E;exports.AvatarImage=L;exports.HydraProvider=H;exports.Skeleton=$;exports.Stepper=P;exports.Textarea=M;exports.VideoBookmark=I;exports.VideoChapterList=z;exports.VideoPlaylistItem=B;exports.VideoThumbnailCard=k;exports.VideoTranscript=A;exports.useCountdown=V;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./withProGate-BJdu1T9Y.cjs"),t=require("react/jsx-runtime"),d=require("react"),f=require("lucide-react"),B=require("react-dom"),V=require("class-variance-authority"),z=[{value:"low",label:"Guessing",icon:t.jsx(f.HelpCircle,{className:"size-3.5"})},{value:"medium",label:"Somewhat sure",icon:t.jsx(f.Brain,{className:"size-3.5"})},{value:"high",label:"Confident",icon:t.jsx(f.Lightbulb,{className:"size-3.5"})}],M=d.memo(function({value:s,onChange:a,levels:n=z,disabled:l=!1,readOnly:c=!1,className:i,style:o}){const m=l||c;return t.jsx("div",{"data-slot":"confidence-indicator",className:e.cn("flex items-center gap-1",i),style:o,role:"radiogroup","aria-label":"Confidence level",children:n.map(x=>{const u=s===x.value;return t.jsxs("button",{type:"button",role:"radio","aria-checked":u,"aria-label":x.label,disabled:m,onClick:()=>a(x.value),className:e.cn("inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-all","border outline-none focus-visible:ring-2 focus-visible:ring-ring/50",u?"border-primary bg-primary/10 text-primary":"border-transparent bg-muted text-muted-foreground hover:bg-muted/80",m&&"opacity-50 pointer-events-none"),children:[x.icon,x.label]},x.value)})})}),F=({entries:r,currentTime:s=0,onSeek:a,readOnly:n=!1,maxHeight:l="400px",className:c,style:i})=>{const o=d.useRef(null),m=d.useRef(null),x=d.useMemo(()=>r.reduce((u,p,g)=>p.time<=s?g:u,-1),[r,s]);return d.useEffect(()=>{m.current&&o.current&&m.current.scrollIntoView({behavior:"smooth",block:"nearest"})},[x]),r.length===0?t.jsxs("div",{className:e.cn("flex flex-col items-center justify-center gap-2 rounded-md border border-border bg-muted p-6",c),style:i,children:[t.jsx(f.Clock,{size:20,className:"text-muted-foreground"}),t.jsx("span",{className:"text-sm text-muted-foreground",children:"No transcript available"})]}):t.jsx("div",{ref:o,className:e.cn("overflow-y-auto rounded-md border border-border",c),style:{maxHeight:l,...i},children:r.map((u,p)=>{const g=p===x;return t.jsxs("div",{ref:g?m:void 0,className:e.cn("flex gap-3 px-3 py-2 text-sm transition-colors",g&&"bg-primary/10",!n&&a&&"cursor-pointer hover:bg-muted"),onClick:()=>!n&&(a==null?void 0:a(u.time)),role:!n&&a?"button":void 0,tabIndex:!n&&a?0:void 0,onKeyDown:!n&&a?b=>{(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),a(u.time))}:void 0,children:[t.jsx("span",{className:e.cn("shrink-0 font-mono text-xs tabular-nums pt-0.5",g?"text-primary font-medium":"text-muted-foreground"),children:e.formatTimer(Math.floor(u.time))}),t.jsxs("div",{className:"min-w-0",children:[u.speaker&&t.jsxs("span",{className:"mr-1 font-semibold text-foreground",children:[u.speaker,":"]}),t.jsx("span",{className:g?"text-foreground":"text-muted-foreground",children:u.text})]})]},`${u.time}-${u.text.slice(0,20)}`)})})},L=({chapters:r,currentTime:s=0,onSeek:a,className:n,style:l})=>{const c=d.useMemo(()=>r.reduce((i,o,m)=>o.time<=s?m:i,-1),[r,s]);return t.jsx("div",{className:e.cn("divide-y divide-border rounded-md border border-border",n),style:l,children:r.map((i,o)=>{const m=o===c;return t.jsxs("div",{className:e.cn("flex items-center gap-3 p-3 transition-colors",m&&"bg-primary/10",a&&"cursor-pointer hover:bg-muted"),onClick:()=>a==null?void 0:a(i.time),role:a?"button":void 0,tabIndex:a?0:void 0,onKeyDown:a?x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),a(i.time))}:void 0,children:[i.thumbnail?t.jsxs("div",{className:"relative shrink-0 w-16 overflow-hidden rounded",style:{aspectRatio:"16/9"},children:[t.jsx("img",{src:i.thumbnail,alt:i.title,loading:"lazy",className:"size-full object-cover"}),m&&t.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:t.jsx(f.Play,{size:14,className:"ml-px text-white"})})]}):t.jsx("div",{className:e.cn("flex shrink-0 items-center justify-center size-8 rounded-full",m?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground"),children:t.jsx("span",{className:"text-xs font-semibold",children:o+1})}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("div",{className:e.cn("truncate text-sm font-medium",m?"text-primary":"text-foreground"),children:i.title}),t.jsxs("div",{className:"mt-0.5 flex items-center gap-2",children:[t.jsx("span",{className:"font-mono text-xs tabular-nums text-muted-foreground",children:e.formatTimer(Math.floor(i.time))}),i.duration!=null&&i.duration>0&&t.jsx("span",{className:"text-xs text-muted-foreground",children:e.formatDuration(i.duration)})]})]})]},i.time)})})},H=({poster:r,title:s,duration:a,progress:n,onClick:l,className:c,style:i})=>t.jsxs("div",{className:e.cn("group overflow-hidden rounded-lg border border-border transition-colors",l&&"cursor-pointer hover:border-primary/50 hover:shadow-sm",c),style:i,onClick:l,role:l?"button":void 0,tabIndex:l?0:void 0,onKeyDown:l?o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),l())}:void 0,children:[t.jsxs("div",{className:"relative overflow-hidden",style:{aspectRatio:"16/9"},children:[r?t.jsx("img",{src:r,alt:s,loading:"lazy",className:"size-full object-cover transition-transform duration-300 group-hover:scale-105"}):t.jsx("div",{className:"flex size-full items-center justify-center bg-muted",children:t.jsx(f.Video,{size:32,className:"text-muted-foreground"})}),t.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/0 transition-colors group-hover:bg-black/20",children:t.jsx("div",{className:"flex size-10 items-center justify-center rounded-full bg-black/60 opacity-0 transition-opacity group-hover:opacity-100",children:t.jsx(f.Play,{size:20,className:"ml-0.5 text-white"})})}),a!=null&&a>0&&t.jsx("span",{className:"absolute bottom-2 right-2 rounded bg-black/75 px-1.5 py-0.5 text-xs font-medium tabular-nums text-white",children:e.formatDuration(a)})]}),t.jsx("div",{className:"p-3",children:t.jsx("h4",{className:"truncate text-sm font-medium text-foreground",children:s})}),n!=null&&n>=0&&t.jsx("div",{className:"px-3 pb-3",children:t.jsx(e.Progress,{value:n,size:"sm",variant:n>=100?"success":"default"})})]}),E=d.memo(function({bookmark:s,onSeek:a,onDelete:n,onEdit:l,className:c,style:i}){return t.jsxs("div",{className:e.cn("flex items-start gap-3 rounded-md border border-border p-3",c),style:i,children:[t.jsx("div",{className:"flex shrink-0 items-center justify-center size-8 rounded-full bg-primary/10 text-primary",children:t.jsx(f.Bookmark,{size:16})}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("button",{type:"button",className:e.cn("font-mono text-xs font-medium tabular-nums",a?"cursor-pointer text-primary hover:underline":"text-muted-foreground"),onClick:()=>a==null?void 0:a(s.time),disabled:!a,children:e.formatTimer(Math.floor(s.time))}),s.note&&t.jsx("p",{className:"mt-0.5 text-sm text-foreground",children:s.note}),s.createdAt&&t.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(s.createdAt).toLocaleDateString()})]}),(l||n)&&t.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[l&&t.jsx("button",{type:"button",className:"inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","aria-label":"Edit bookmark",onClick:()=>l(s.id),children:t.jsx(f.Pencil,{size:14})}),n&&t.jsx("button",{type:"button",className:"inline-flex items-center justify-center rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive","aria-label":"Delete bookmark",onClick:()=>n(s.id),children:t.jsx(f.Trash2,{size:14})})]})]})}),S=d.memo(function({thumbnail:s,title:a,duration:n,status:l="unwatched",isActive:c=!1,index:i,onClick:o,className:m,style:x}){return t.jsxs("div",{className:e.cn("flex items-center gap-3 rounded-md px-3 py-2 transition-colors",c&&"bg-primary/10",o&&"cursor-pointer hover:bg-muted",m),style:x,onClick:o,role:o?"button":void 0,tabIndex:o?0:void 0,onKeyDown:o?u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),o())}:void 0,children:[t.jsx("div",{className:"flex shrink-0 items-center justify-center size-6",children:l==="completed"?t.jsx("span",{className:"text-success",children:t.jsx(f.CheckCircle2,{size:18})}):c?t.jsx("span",{className:"text-primary",children:t.jsx(f.Play,{size:16,className:"ml-px"})}):i!=null?t.jsx("span",{className:"text-xs font-medium tabular-nums text-muted-foreground",children:i}):t.jsx("span",{className:"text-muted-foreground",children:t.jsx(f.Circle,{size:16})})}),s&&t.jsxs("div",{className:"relative shrink-0 w-16 overflow-hidden rounded",style:{aspectRatio:"16/9"},children:[t.jsx("img",{src:s,alt:a,loading:"lazy",className:e.cn("size-full object-cover",l==="completed"&&"opacity-60")}),c&&t.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:t.jsx(f.Play,{size:12,className:"ml-px text-white"})})]}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("div",{className:e.cn("truncate text-sm",c?"font-medium text-primary":"text-foreground",l==="completed"&&!c&&"text-muted-foreground"),children:a}),n!=null&&n>0&&t.jsx("span",{className:"text-xs text-muted-foreground",children:e.formatDuration(n)})]})]})});function Q({durationSeconds:r,warningThresholdSeconds:s=60,onExpire:a,onWarning:n,autoStart:l=!1}){const[c,i]=d.useState(r),o=d.useRef(l?"running":"idle"),m=d.useRef(null),x=d.useRef(a),u=d.useRef(n),p=d.useRef(!1);x.current=a,u.current=n;const g=d.useCallback(()=>{m.current!=null&&(clearInterval(m.current),m.current=null)},[]),b=d.useCallback(()=>{g(),m.current=setInterval(()=>{i(j=>{var y,C;const v=j-1;return!p.current&&v<=s&&v>0&&(p.current=!0,(y=u.current)==null||y.call(u)),v<=0?(g(),o.current="expired",(C=x.current)==null||C.call(x),0):v})},1e3)},[g,s]),P=d.useCallback(()=>{i(r),p.current=!1,o.current="running",b()},[r,b]),I=d.useCallback(()=>{o.current==="running"&&(g(),o.current="paused",i(j=>j))},[g]),R=d.useCallback(()=>{o.current==="paused"&&(o.current="running",b())},[b]),k=d.useCallback(()=>{g(),o.current="idle",p.current=!1,i(r)},[g,r]);d.useEffect(()=>(l&&b(),g),[l,b,g]);const h=o.current;return{timeRemaining:c,isRunning:h==="running",isPaused:h==="paused",isExpired:h==="expired",isWarning:c<=s&&c>0,start:P,pause:I,resume:R,reset:k}}function O({children:r,colorMode:s="dark",licenseKey:a,validateUrl:n,className:l,style:c}){return t.jsx(e.HydraLicenseProvider,{licenseKey:a,validateUrl:n,children:t.jsx("div",{className:`hydra-root${s==="dark"?" dark":""}${l?` ${l}`:""}`,style:c,children:r})})}function q({className:r,...s}){return t.jsx("textarea",{"data-slot":"textarea",className:e.cn("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",r),...s})}function G({className:r,...s}){return t.jsx("span",{"data-slot":"avatar",className:e.cn("relative flex size-9 shrink-0 overflow-hidden rounded-full",r),...s})}function U({className:r,onError:s,...a}){return t.jsx("img",{"data-slot":"avatar-image",className:e.cn("aspect-square size-full object-cover",r),onError:s,...a})}function _({className:r,...s}){return t.jsx("span",{"data-slot":"avatar-fallback",className:e.cn("bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-xs font-medium",r),...s})}const D=V.cva("pointer-events-auto relative flex w-full items-start gap-3 rounded-lg border p-4 pr-8 shadow-lg text-sm transition-all",{variants:{variant:{success:"border-success/50 bg-success/5 text-success [&>svg]:text-success",error:"border-destructive/50 bg-destructive/5 text-destructive [&>svg]:text-destructive",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:"info"}}),T=d.createContext(null),$={success:f.CheckCircle2,error:f.AlertCircle,warning:f.AlertTriangle,info:f.Info};function K({item:r,onDismiss:s}){const a=d.useRef(void 0),n=r.duration??5e3,l=$[r.variant??"info"];return d.useEffect(()=>(n>0&&(a.current=setTimeout(()=>s(r.id),n)),()=>clearTimeout(a.current)),[n,r.id,s]),t.jsxs("div",{"data-slot":"toast",role:"status","aria-live":"polite",className:e.cn(D({variant:r.variant??"info"})),children:[t.jsx(l,{className:"size-4 shrink-0 translate-y-0.5"}),t.jsxs("div",{className:"flex-1 space-y-1",children:[r.title&&t.jsx("p",{className:"font-medium leading-none",children:r.title}),t.jsx("p",{className:"text-sm opacity-90",children:r.message})]}),t.jsx("button",{type:"button",onClick:()=>s(r.id),"aria-label":"Dismiss notification",className:"absolute right-2 top-2 rounded-md p-1 opacity-70 hover:opacity-100 transition-opacity",children:t.jsx(f.X,{className:"size-3.5"})})]})}let Z=0;function N({children:r}){const[s,a]=d.useState([]),n=d.useCallback(c=>{const i=`toast-${++Z}`;a(o=>[...o.slice(-2),{...c,id:i}])},[]),l=d.useCallback(c=>{a(i=>i.filter(o=>o.id!==c))},[]);return t.jsxs(T.Provider,{value:{toast:n},children:[r,typeof document<"u"&&B.createPortal(t.jsx("div",{"data-slot":"toaster",className:"fixed top-4 right-4 z-50 flex flex-col gap-2 w-80 pointer-events-none",children:s.map(c=>t.jsx(K,{item:c,onDismiss:l},c.id))}),document.body)]})}function X(){const r=d.useContext(T);if(!r)throw new Error("useToast must be used within a ToastProvider");return r}const J=N,w=new Set(["QuizModule","FlashcardLab","CoursePlayer","ExamModule","SurveyModule","GradeCenterModule","AssignmentModule","CertificateModule","DiscussionModule","StudentDashboardModule","CourseCatalogModule","StudentProfileModule"]);function Y(r){return w.has(r)}const A=new Set(["ContentAuthoringStudio"]);function W(r){return A.has(r)}exports.AchievementBadge=e.AchievementBadge;exports.ActivityTimeline=e.ActivityTimeline;exports.Alert=e.Alert;exports.AlertDescription=e.AlertDescription;exports.AlertDialog=e.AlertDialog;exports.AlertDialogAction=e.AlertDialogAction;exports.AlertDialogBackdrop=e.AlertDialogBackdrop;exports.AlertDialogCancel=e.AlertDialogCancel;exports.AlertDialogContent=e.AlertDialogContent;exports.AlertDialogDescription=e.AlertDialogDescription;exports.AlertDialogFooter=e.AlertDialogFooter;exports.AlertDialogHeader=e.AlertDialogHeader;exports.AlertDialogPortal=e.AlertDialogPortal;exports.AlertDialogTitle=e.AlertDialogTitle;exports.AlertDialogTrigger=e.AlertDialogTrigger;exports.AlertTitle=e.AlertTitle;exports.AssessmentToolbar=e.AssessmentToolbar;exports.AttachmentList=e.AttachmentList;exports.AudioPlayer=e.AudioPlayer;exports.Badge=e.Badge;exports.Button=e.Button;exports.Card=e.Card;exports.CardAction=e.CardAction;exports.CardContent=e.CardContent;exports.CardDescription=e.CardDescription;exports.CardFooter=e.CardFooter;exports.CardHeader=e.CardHeader;exports.CardTitle=e.CardTitle;exports.Choice=e.Choice;exports.CodeBlock=e.CodeBlock;exports.ConfirmDialog=e.ConfirmDialog;exports.ContentBlock=e.ContentBlock;exports.CourseCard=e.CourseCard;exports.CurriculumItemRow=e.CurriculumItemRow;exports.CurriculumTree=e.CurriculumTree;exports.Drawer=e.Drawer;exports.DrawerBackdrop=e.DrawerBackdrop;exports.DrawerBody=e.DrawerBody;exports.DrawerClose=e.DrawerClose;exports.DrawerContent=e.DrawerContent;exports.DrawerDescription=e.DrawerDescription;exports.DrawerFooter=e.DrawerFooter;exports.DrawerHeader=e.DrawerHeader;exports.DrawerNav=e.DrawerNav;exports.DrawerNavItem=e.DrawerNavItem;exports.DrawerPortal=e.DrawerPortal;exports.DrawerTitle=e.DrawerTitle;exports.DrawerTrigger=e.DrawerTrigger;exports.DrawerViewport=e.DrawerViewport;exports.DueDateDisplay=e.DueDateDisplay;exports.EmbedBlock=e.EmbedBlock;exports.EmptyState=e.EmptyState;exports.Essay=e.Essay;exports.FeedbackBanner=e.FeedbackBanner;exports.FileUploadZone=e.FileUploadZone;exports.FillInTheBlank=e.FillInTheBlank;exports.Flashcard=e.Flashcard;exports.FlashcardDeck=e.FlashcardDeck;exports.GradeIndicator=e.GradeIndicator;exports.Hotspot=e.Hotspot;exports.HydraLicenseContext=e.HydraLicenseContext;exports.HydraLicenseProvider=e.HydraLicenseProvider;exports.InlineChoice=e.InlineChoice;exports.Input=e.Input;exports.LearningObjectIcon=e.LearningObjectIcon;exports.LikertScale=e.LikertScale;exports.Matching=e.Matching;exports.MultipleChoice=e.MultipleChoice;exports.Numeric=e.Numeric;exports.Ordering=e.Ordering;exports.Pagination=e.Pagination;exports.PostCard=e.PostCard;exports.ProBadge=e.ProBadge;exports.Progress=e.Progress;exports.ProgressRing=e.ProgressRing;exports.QuestionHeaderBar=e.QuestionHeaderBar;exports.QuestionMaterialsDrawer=e.QuestionMaterialsDrawer;exports.QuestionNavigator=e.QuestionNavigator;exports.QuestionRenderer=e.QuestionRenderer;exports.RichTextEditor=e.RichTextEditor;exports.Scenario=e.Scenario;exports.SearchInput=e.SearchInput;exports.Separator=e.Separator;exports.Skeleton=e.Skeleton;exports.Spreadsheet=e.Spreadsheet;exports.StarRating=e.StarRating;exports.StatCard=e.StatCard;exports.StatusBadge=e.StatusBadge;exports.Stepper=e.Stepper;exports.StreakBadge=e.StreakBadge;exports.Table=e.Table;exports.TableBody=e.TableBody;exports.TableCaption=e.TableCaption;exports.TableCell=e.TableCell;exports.TableFooter=e.TableFooter;exports.TableHead=e.TableHead;exports.TableHeader=e.TableHeader;exports.TableRow=e.TableRow;exports.Tabs=e.Tabs;exports.TabsContent=e.TabsContent;exports.TabsList=e.TabsList;exports.TabsTrigger=e.TabsTrigger;exports.TimerDisplay=e.TimerDisplay;exports.Tooltip=e.Tooltip;exports.TooltipContent=e.TooltipContent;exports.TooltipTrigger=e.TooltipTrigger;exports.TrueFalse=e.TrueFalse;exports.UserAvatar=e.UserAvatar;exports.VideoPlayer=e.VideoPlayer;exports.alertVariants=e.alertVariants;exports.badgeVariants=e.badgeVariants;exports.buttonVariants=e.buttonVariants;exports.cn=e.cn;exports.drawerContentVariants=e.drawerContentVariants;exports.progressVariants=e.progressVariants;exports.scoreQuestion=e.scoreQuestion;exports.scoreScenarioSubQuestions=e.scoreScenarioSubQuestions;exports.useHydraLicense=e.useHydraLicense;exports.withProGate=e.withProGate;exports.Avatar=G;exports.AvatarFallback=_;exports.AvatarImage=U;exports.ConfidenceIndicator=M;exports.HydraProvider=O;exports.PRO_MODULES=w;exports.PRO_SECTIONS=A;exports.Textarea=q;exports.ToastProvider=N;exports.Toaster=J;exports.VideoBookmark=E;exports.VideoChapterList=L;exports.VideoPlaylistItem=S;exports.VideoThumbnailCard=H;exports.VideoTranscript=F;exports.isProModule=Y;exports.isProSection=W;exports.toastVariants=D;exports.useCountdown=Q;exports.useToast=X;
|