diff --git a/apps/api/src/db/courses/assignments.py b/apps/api/src/db/courses/assignments.py index dd30b221..aefd1ff9 100644 --- a/apps/api/src/db/courses/assignments.py +++ b/apps/api/src/db/courses/assignments.py @@ -249,7 +249,7 @@ class AssignmentUserSubmissionBase(SQLModel): """Represents the submission status of an assignment for a user.""" submission_status: AssignmentUserSubmissionStatus = ( - AssignmentUserSubmissionStatus.PENDING + AssignmentUserSubmissionStatus.SUBMITTED ) grade: int user_id: int = Field( @@ -295,7 +295,7 @@ class AssignmentUserSubmission(AssignmentUserSubmissionBase, table=True): assignmentusersubmission_uuid: str submission_status: AssignmentUserSubmissionStatus = ( - AssignmentUserSubmissionStatus.PENDING + AssignmentUserSubmissionStatus.SUBMITTED ) grade: int user_id: int = Field( diff --git a/apps/api/src/routers/courses/assignments.py b/apps/api/src/routers/courses/assignments.py index ba3f30e4..91de1cbd 100644 --- a/apps/api/src/routers/courses/assignments.py +++ b/apps/api/src/routers/courses/assignments.py @@ -263,7 +263,7 @@ async def api_handle_assignment_task_submissions( ) -@router.get("/{assignment_uuid}/tasks/{assignment_task_uuid}/submissions/{user_id}") +@router.get("/{assignment_uuid}/tasks/{assignment_task_uuid}/submissions/user/{user_id}") async def api_read_user_assignment_task_submissions( request: Request, assignment_task_uuid: str, @@ -279,7 +279,7 @@ async def api_read_user_assignment_task_submissions( ) -@router.get("/{assignment_uuid}/tasks/{assignment_task_uuid}/submissions/user/me") +@router.get("/{assignment_uuid}/tasks/{assignment_task_uuid}/submissions/me") async def api_read_user_assignment_task_submissions_me( request: Request, assignment_task_uuid: str, diff --git a/apps/api/src/services/courses/activities/assignments.py b/apps/api/src/services/courses/activities/assignments.py index 14acb75b..c66ffb3e 100644 --- a/apps/api/src/services/courses/activities/assignments.py +++ b/apps/api/src/services/courses/activities/assignments.py @@ -1088,7 +1088,7 @@ async def create_assignment_submission( assignment_id=assignment.id, # type: ignore grade=0, assignmentusersubmission_uuid=str(f"assignmentusersubmission_{uuid4()}"), - submission_status=AssignmentUserSubmissionStatus.PENDING, + submission_status=AssignmentUserSubmissionStatus.SUBMITTED, creation_date=str(datetime.now()), update_date=str(datetime.now()), ) @@ -1129,7 +1129,7 @@ async def read_assignment_submissions( # Find assignments tasks for an assignment statement = select(AssignmentUserSubmission).where( - assignment.assignment_uuid == assignment_uuid + AssignmentUserSubmission.assignment_id == assignment.id ) # RBAC check diff --git a/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/_components/TaskEditor/Subs/TaskTypes/TaskQuizObject.tsx b/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/_components/TaskEditor/Subs/TaskTypes/TaskQuizObject.tsx index b87dceb2..80460f35 100644 --- a/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/_components/TaskEditor/Subs/TaskTypes/TaskQuizObject.tsx +++ b/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/_components/TaskEditor/Subs/TaskTypes/TaskQuizObject.tsx @@ -2,8 +2,8 @@ import { useAssignments } from '@components/Contexts/Assignments/AssignmentConte import { useAssignmentsTask, useAssignmentsTaskDispatch } from '@components/Contexts/Assignments/AssignmentsTaskContext'; import { useLHSession } from '@components/Contexts/LHSessionContext'; import AssignmentBoxUI from '@components/Objects/Activities/Assignment/AssignmentBoxUI'; -import { getAssignmentTask, getAssignmentTaskSubmissionsMe, handleAssignmentTaskSubmission, updateAssignmentTask } from '@services/courses/assignments'; -import { Check, Minus, Plus, PlusCircle, X } from 'lucide-react'; +import { getAssignmentTask, getAssignmentTaskSubmissionsMe, getAssignmentTaskSubmissionsUser, handleAssignmentTaskSubmission, updateAssignmentTask } from '@services/courses/assignments'; +import { Check, Info, Minus, Plus, PlusCircle, X } from 'lucide-react'; import React, { useEffect, useState } from 'react'; import toast from 'react-hot-toast'; import { v4 as uuidv4 } from 'uuid'; @@ -29,11 +29,12 @@ type QuizSubmitSchema = { }; type TaskQuizObjectProps = { - view: 'teacher' | 'student'; + view: 'teacher' | 'student' | 'grading'; + user_id?: string; // Only for read-only view assignmentTaskUUID?: string; }; -function TaskQuizObject({ view, assignmentTaskUUID }: TaskQuizObjectProps) { +function TaskQuizObject({ view, assignmentTaskUUID, user_id }: TaskQuizObjectProps) { const session = useLHSession() as any; const access_token = session?.data?.tokens?.access_token; const assignmentTaskState = useAssignmentsTask() as any; @@ -118,6 +119,7 @@ function TaskQuizObject({ view, assignmentTaskUUID }: TaskQuizObjectProps) { submissions: [], }); const [showSavingDisclaimer, setShowSavingDisclaimer] = useState(false); + const [assignmentTaskOutsideProvider, setAssignmentTaskOutsideProvider] = useState(null); async function chooseOption(qIndex: number, oIndex: number) { const updatedSubmissions = [...userSubmissions.submissions]; @@ -147,6 +149,7 @@ function TaskQuizObject({ view, assignmentTaskUUID }: TaskQuizObjectProps) { if (assignmentTaskUUID) { const res = await getAssignmentTask(assignmentTaskUUID, access_token); if (res.success) { + setAssignmentTaskOutsideProvider(res.data); setQuestions(res.data.contents.questions); } @@ -164,11 +167,11 @@ function TaskQuizObject({ view, assignmentTaskUUID }: TaskQuizObjectProps) { } } - // Detect changes between initial and current submissions - useEffect(() => { - const hasChanges = JSON.stringify(initialUserSubmissions.submissions) !== JSON.stringify(userSubmissions.submissions); - setShowSavingDisclaimer(hasChanges); - }, [userSubmissions, initialUserSubmissions.submissions]); + // Detect changes between initial and current submissions + useEffect(() => { + const hasChanges = JSON.stringify(initialUserSubmissions.submissions) !== JSON.stringify(userSubmissions.submissions); + setShowSavingDisclaimer(hasChanges); + }, [userSubmissions, initialUserSubmissions.submissions]); @@ -193,10 +196,57 @@ function TaskQuizObject({ view, assignmentTaskUUID }: TaskQuizObjectProps) { } }; - - /* STUDENT VIEW CODE */ + /* GRADING VIEW CODE */ + const [userSubmissionObject, setUserSubmissionObject] = useState(null); + async function getAssignmentTaskSubmissionFromIdentifiedUserUI() { + if (assignmentTaskUUID && user_id) { + const res = await getAssignmentTaskSubmissionsUser(assignmentTaskUUID, user_id, assignment.assignment_object.assignment_uuid, access_token); + if (res.success) { + setUserSubmissions(res.data.task_submission); + setUserSubmissionObject(res.data); + setInitialUserSubmissions(res.data.task_submission); + } + + } + } + + async function gradeFC() { + if (assignmentTaskUUID) { + // Ensure maxPoints is defined + const maxPoints = assignmentTaskOutsideProvider?.max_grade_value || 100; // Default to 100 if not defined + + // Ensure userSubmissions.questions are set + const totalQuestions = questions.length; + const correctQuestions = userSubmissions.submissions.filter((submission) => { + const question = questions.find((q) => q.questionUUID === submission.questionUUID); + const option = question?.options.find((o) => o.optionUUID === submission.optionUUID); + return option?.correct; + }).length; + + // Calculate grade based on correct questions + const grade = Math.floor((correctQuestions / totalQuestions) * maxPoints); + + // Save the grade to the server + const values = { + task_submission: userSubmissions, + grade, + task_submission_grade_feedback: 'Auto graded by system', + }; + + const res = await handleAssignmentTaskSubmission(values, assignmentTaskUUID, assignment.assignment_object.assignment_uuid, access_token); + if (res) { + getAssignmentTaskSubmissionFromIdentifiedUserUI(); + toast.success(`Task graded successfully with ${grade} points`); + } else { + toast.error('Error grading task, please retry later.'); + } + } + } + + /* GRADING VIEW CODE */ + useEffect(() => { assignmentTaskStateHook({ setSelectedAssignmentTaskUUID: assignmentTaskUUID, @@ -210,131 +260,180 @@ function TaskQuizObject({ view, assignmentTaskUUID }: TaskQuizObjectProps) { getAssignmentTaskUI(); getAssignmentTaskSubmissionFromUserUI(); } + + // Grading area + else if (view == 'grading') { + getAssignmentTaskUI(); + //setQuestions(assignmentTaskState.assignmentTask.contents.questions); + getAssignmentTaskSubmissionFromIdentifiedUserUI(); + + } }, [assignmentTaskState, assignment, assignmentTaskStateHook, access_token]); - - return ( - -
- {questions && questions.map((question, qIndex) => ( -
-
- {view === 'teacher' ? ( - handleQuestionChange(qIndex, e.target.value)} - placeholder="Question" - className="w-full px-3 text-neutral-600 bg-[#00008b00] border-2 border-gray-200 rounded-md border-dotted text-sm font-bold" - /> - ) : ( -

- {question.questionText} -

- )} - {view === 'teacher' && ( -
removeQuestion(qIndex)} - > - -
- )} -
-
- {question.options.map((option, oIndex) => ( -
+ if (questions && questions.length >= 0) { + return ( + +
+ {questions && questions.map((question, qIndex) => ( +
+
+ {view === 'teacher' ? ( + handleQuestionChange(qIndex, e.target.value)} + placeholder="Question" + className="w-full px-3 text-neutral-600 bg-[#00008b00] border-2 border-gray-200 rounded-md border-dotted text-sm font-bold" + /> + ) : ( +

+ {question.questionText} +

+ )} + {view === 'teacher' && (
view === 'student' && chooseOption(qIndex, oIndex)} - className={"answer outline outline-3 outline-white pr-2 shadow w-full flex items-center space-x-2 h-[30px] hover:bg-opacity-100 hover:shadow-md rounded-lg bg-white text-sm duration-150 cursor-pointer ease-linear nice-shadow " + (view == 'student' ? 'active:scale-110' : '')} + className="w-[20px] flex-none flex items-center h-[20px] rounded-lg bg-slate-200/60 text-slate-500 hover:bg-slate-300 text-sm transition-all ease-linear cursor-pointer" + onClick={() => removeQuestion(qIndex)} > -
-

{String.fromCharCode(65 + oIndex)}

-
- {view === 'teacher' ? ( - handleOptionChange(qIndex, oIndex, e.target.value)} - placeholder="Option" - className="w-full mx-2 px-3 pr-6 text-neutral-600 bg-[#00008b00] border-2 border-gray-200 rounded-md border-dotted text-sm font-bold" - /> - ) : ( -

- {option.text} -

- )} - {view === 'teacher' && ( - <> -
toggleCorrectOption(qIndex, oIndex)} - > - {option.correct ? : } - {option.correct ? ( -

Correct

- ) : ( -

Incorrect

- )} -
-
removeOption(qIndex, oIndex)} - > - -
- - )} - {view === 'student' && ( -
- submission.questionUUID === question.questionUUID && submission.optionUUID === option.optionUUID - ) - ? "bg-green-200/60 text-green-500 hover:bg-green-300" // Selected state colors - : "bg-slate-200/60 text-slate-500 hover:bg-slate-300" // Default state colors - } text-sm transition-all ease-linear cursor-pointer`}> - {userSubmissions.submissions.find( + +
+ )} +
+
+ {question.options.map((option, oIndex) => ( +
+
view === 'student' && chooseOption(qIndex, oIndex)} + className={"answer outline outline-3 outline-white pr-2 shadow w-full flex items-center space-x-2 h-[30px] hover:bg-opacity-100 hover:shadow-md rounded-lg bg-white text-sm duration-150 cursor-pointer ease-linear nice-shadow " + (view == 'student' ? 'active:scale-110' : '')} + > +
+

{String.fromCharCode(65 + oIndex)}

+
+ {view === 'teacher' ? ( + handleOptionChange(qIndex, oIndex, e.target.value)} + placeholder="Option" + className="w-full mx-2 px-3 pr-6 text-neutral-600 bg-[#00008b00] border-2 border-gray-200 rounded-md border-dotted text-sm font-bold" + /> + ) : ( +

+ {option.text} +

+ )} + {view === 'teacher' && ( + <> +
toggleCorrectOption(qIndex, oIndex)} + > + {option.correct ? : } + {option.correct ? ( +

Correct

+ ) : ( +

Incorrect

+ )} +
+
removeOption(qIndex, oIndex)} + > + +
+ + )} + {view === 'grading' && ( + <> +
+ {option.correct ? : } + {option.correct ? ( +

Marked as Correct

+ ) : ( +

Marked as Incorrect

+ )} +
+ + + )} + {view === 'student' && ( +
submission.questionUUID === question.questionUUID && submission.optionUUID === option.optionUUID - ) ? ( - - ) : ( - - )} + ) + ? "bg-green-200/60 text-green-500 hover:bg-green-300" // Selected state colors + : "bg-slate-200/60 text-slate-500 hover:bg-slate-300" // Default state colors + } text-sm transition-all ease-linear cursor-pointer`}> + {userSubmissions.submissions.find( + (submission) => + submission.questionUUID === question.questionUUID && submission.optionUUID === option.optionUUID + ) ? ( + + ) : ( + + )} +
+ )} + {view === 'grading' && ( +
+ submission.questionUUID === question.questionUUID && submission.optionUUID === option.optionUUID + ) + ? "bg-green-200/60 text-green-500 hover:bg-green-300" // Selected state colors + : "bg-slate-200/60 text-slate-500 hover:bg-slate-300" // Default state colors + } text-sm transition-all ease-linear cursor-pointer`}> + {userSubmissions.submissions.find( + (submission) => + submission.questionUUID === question.questionUUID && submission.optionUUID === option.optionUUID + ) ? ( + + ) : ( + + )} +
+ )} + +
+ {view === 'teacher' && oIndex === question.options.length - 1 && questions[qIndex].options.length <= 4 && ( +
+
addOption(qIndex)} + > + + +
)} -
- {view === 'teacher' && oIndex === question.options.length - 1 && questions[qIndex].options.length <= 4 && ( -
-
addOption(qIndex)} - > - - -
-
- )} -
- ))} + ))} +
+
+ ))} +
+ {view === 'teacher' && questions.length <= 5 && ( +
+
+ + Add Question
- ))} -
- {view === 'teacher' &&questions.length <= 5 && ( -
-
- - Add Question -
-
- )} - - ); + )} + + ); + } + else { + return
+ +

No questions found

+
; + } } export default TaskQuizObject; diff --git a/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/subpages/AssignmentSubmissionsSubPage.tsx b/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/subpages/AssignmentSubmissionsSubPage.tsx index c4266fe8..35e1f73a 100644 --- a/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/subpages/AssignmentSubmissionsSubPage.tsx +++ b/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/subpages/AssignmentSubmissionsSubPage.tsx @@ -1,8 +1,16 @@ import { useLHSession } from '@components/Contexts/LHSessionContext'; -import { getAPIUrl } from '@services/config/config' +import UserAvatar from '@components/Objects/UserAvatar'; +import Modal from '@components/StyledElements/Modal/Modal'; +import { getAPIUrl } from '@services/config/config'; +import { getUserAvatarMediaDirectory } from '@services/media/media'; import { swrFetcher } from '@services/utils/ts/requests'; -import React from 'react' +import { Loader, SendHorizonal, UserCheck, X } from 'lucide-react'; +import React, { useEffect } from 'react'; import useSWR from 'swr'; +import EvaluateAssignment from './Modals/EvaluateAssignment'; +import { AssignmentProvider } from '@components/Contexts/Assignments/AssignmentContext'; +import { AssignmentsTaskProvider } from '@components/Contexts/Assignments/AssignmentsTaskContext'; +import AssignmentSubmissionProvider from '@components/Contexts/Assignments/AssignmentSubmissionContext'; function AssignmentSubmissionsSubPage({ assignment_uuid }: { assignment_uuid: string }) { const session = useLHSession() as any; @@ -11,15 +19,123 @@ function AssignmentSubmissionsSubPage({ assignment_uuid }: { assignment_uuid: st const { data: assignmentSubmission, error: assignmentError } = useSWR( `${getAPIUrl()}assignments/assignment_${assignment_uuid}/submissions`, (url) => swrFetcher(url, access_token) - ) - return ( -
- {assignmentSubmission && assignmentSubmission.length > 0 && ( -
s
- )} + ); + useEffect(() => { + console.log(assignmentSubmission); + }, [session, assignmentSubmission]); + + const renderSubmissions = (status: string) => { + return assignmentSubmission + ?.filter((submission: any) => submission.submission_status === status) + .map((submission: any) => ( + + )); + }; + + return ( +
+
+
+
+ +

Late

+
+ {renderSubmissions('LATE')} +
+
+
+ +

Submitted

+
+ {renderSubmissions('SUBMITTED')} +
+
+
+ +

Graded

+
+ {renderSubmissions('GRADED')} +
+ +
- ) + ); } -export default AssignmentSubmissionsSubPage \ No newline at end of file +function SubmissionBox({ assignment_uuid, user_id, submission }: any) { + const session = useLHSession() as any; + const access_token = session?.data?.tokens?.access_token; + const [gradeSudmissionModal, setGradeSubmissionModal] = React.useState({ + open: false, + submission_id: '', + }); + + const { data: user, error: userError } = useSWR( + `${getAPIUrl()}users/id/${user_id}`, + (url) => swrFetcher(url, access_token) + ); + + useEffect(() => { + console.log(user); + } + , [session, user]); + + return ( +
+
+
+

Submission

+

+ {new Date(submission.creation_date).toLocaleDateString('en-UK', { + year: 'numeric', + month: 'long', + day: 'numeric', + })} +

+
+
+
+ +
+ {user?.first_name && user?.last_name ? (

{user?.first_name} {user?.last_name}

) : (

@{user?.username}

)} +

{user?.email}

+
+
+
+ + setGradeSubmissionModal({ open, submission_id: submission.submission_uuid })} + minHeight="lg" + minWidth="lg" + dialogContent={ + + + + + + + + } + dialogTitle={`Evaluate @${user?.username}`} + dialogDescription="Evaluate the submission" + dialogTrigger={ +
+ Evaluate +
+ } + /> +
+
+
+
+ ); +} + +export default AssignmentSubmissionsSubPage; diff --git a/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/subpages/Modals/EvaluateAssignment.tsx b/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/subpages/Modals/EvaluateAssignment.tsx new file mode 100644 index 00000000..0ef0ac9a --- /dev/null +++ b/apps/web/app/orgs/[orgslug]/dash/assignments/[assignmentuuid]/subpages/Modals/EvaluateAssignment.tsx @@ -0,0 +1,73 @@ +import { useAssignments } from '@components/Contexts/Assignments/AssignmentContext'; +import { Download, Info, Medal } from 'lucide-react'; +import Link from 'next/link'; +import React from 'react' +import TaskQuizObject from '../../_components/TaskEditor/Subs/TaskTypes/TaskQuizObject'; +import TaskFileObject from '../../_components/TaskEditor/Subs/TaskTypes/TaskFileObject'; +import { useOrg } from '@components/Contexts/OrgContext'; +import { getTaskRefFileDir } from '@services/media/media'; + +function EvaluateAssignment({ user_id }: any) { + const assignments = useAssignments() as any; + const org = useOrg() as any; + + console.log(assignments); + return ( +
+ {assignments && assignments?.assignment_tasks?.sort((a: any, b: any) => a.id - b.id).map((task: any, index: number) => { + return ( +
+
+
+

Task {index + 1} :

+

{task.description}

+
+
+
alert(task.hint)} + className='px-3 py-1 flex items-center nice-shadow bg-amber-50/40 text-amber-900 rounded-full space-x-2 cursor-pointer'> + +

View Hint

+
+ + +
+ {task.reference_file && ( + + + + )} +

Reference Document

+
+ +
+
+
+ {task.assignment_type === 'QUIZ' && } + {task.assignment_type === 'FILE_SUBMISSION' && } +
+
+ ) + })} +
+ +
+
+ ) +} + +export default EvaluateAssignment \ No newline at end of file diff --git a/apps/web/components/Dashboard/Course/EditCourseStructure/DraggableElements/ActivityElement.tsx b/apps/web/components/Dashboard/Course/EditCourseStructure/DraggableElements/ActivityElement.tsx index 3af1484a..bfb43372 100644 --- a/apps/web/components/Dashboard/Course/EditCourseStructure/DraggableElements/ActivityElement.tsx +++ b/apps/web/components/Dashboard/Course/EditCourseStructure/DraggableElements/ActivityElement.tsx @@ -7,6 +7,8 @@ import { Eye, File, FilePenLine, + Globe, + Lock, MoreVertical, Pencil, Save, @@ -60,6 +62,19 @@ function ActivityElement(props: ActivitiyElementProps) { router.refresh() } + async function changePublicStatus() { + await updateActivity( + { + published: !props.activity.published, + }, + props.activity.activity_uuid, + access_token + ) + mutate(`${getAPIUrl()}courses/${props.course_uuid}/meta`) + await revalidateTags(['courses'], props.orgslug) + router.refresh() + } + async function updateActivityName(activityId: string) { if ( modifiedActivity?.activityId === activityId && @@ -134,9 +149,27 @@ function ActivityElement(props: ActivitiyElementProps) { className="text-neutral-400 hover:cursor-pointer" />
+ + {/* Edit and View Button */}
+ {/* Publishing */} +
changePublicStatus()} + > + {!props.activity.published ? ( + + ) : ( + + )} + {!props.activity.published ? 'Publish' : 'UnPublish'} +
- + Preview
diff --git a/apps/web/components/Objects/Activities/Assignment/AssignmentBoxUI.tsx b/apps/web/components/Objects/Activities/Assignment/AssignmentBoxUI.tsx index 4767a802..3b3d152d 100644 --- a/apps/web/components/Objects/Activities/Assignment/AssignmentBoxUI.tsx +++ b/apps/web/components/Objects/Activities/Assignment/AssignmentBoxUI.tsx @@ -1,22 +1,25 @@ import { useAssignmentSubmission } from '@components/Contexts/Assignments/AssignmentSubmissionContext' -import { BookUser, EllipsisVertical, FileUp, Forward, Info, InfoIcon, ListTodo, Save } from 'lucide-react' -import React, { use, useEffect } from 'react' +import { BookPlus, BookUser, EllipsisVertical, FileUp, Forward, InfoIcon, ListTodo, Save } from 'lucide-react' +import React, { useEffect } from 'react' type AssignmentBoxProps = { type: 'quiz' | 'file' - view?: 'teacher' | 'student' + view?: 'teacher' | 'student' | 'grading' + maxPoints?: number + currentPoints?: number saveFC?: () => void submitFC?: () => void + gradeFC?: () => void showSavingDisclaimer?: boolean children: React.ReactNode } -function AssignmentBoxUI({ type, view, saveFC, submitFC, showSavingDisclaimer, children }: AssignmentBoxProps) { +function AssignmentBoxUI({ type, view, currentPoints, maxPoints, saveFC, submitFC, gradeFC, showSavingDisclaimer, children }: AssignmentBoxProps) { const submission = useAssignmentSubmission() as any useEffect(() => { } - , [submission]) + , [submission]) return (
@@ -44,16 +47,22 @@ function AssignmentBoxUI({ type, view, saveFC, submitFC, showSavingDisclaimer, c

Teacher view

} + {maxPoints && +
+ +

{maxPoints} points

+
+ }
- {showSavingDisclaimer && -
- -

Don't forget to save your progress

-
+ {showSavingDisclaimer && +
+ +

Don't forget to save your progress

+
} - {/* Save button */} + {/* Teacher button */} {view === 'teacher' &&
saveFC && saveFC()} @@ -62,7 +71,9 @@ function AssignmentBoxUI({ type, view, saveFC, submitFC, showSavingDisclaimer, c

Save

} - {view === 'student' && submission.length <= 0 && + + {/* Student button */} + {view === 'student' && submission && submission.length <= 0 &&
submitFC && submitFC()} className='flex px-2 py-1 cursor-pointer rounded-md space-x-2 items-center bg-gradient-to-bl text-emerald-700 bg-emerald-300/20 hover:bg-emerald-300/10 hover:outline-offset-4 active:outline-offset-1 linear transition-all outline-offset-2 outline-dashed outline-emerald-500/60'> @@ -71,6 +82,18 @@ function AssignmentBoxUI({ type, view, saveFC, submitFC, showSavingDisclaimer, c
} + {/* Grading button */} + {view === 'grading' && +
gradeFC && gradeFC()} + className='flex px-0.5 py-0.5 cursor-pointer rounded-md space-x-2 items-center bg-gradient-to-bl hover:outline-offset-4 active:outline-offset-1 linear transition-all outline-offset-2 outline-dashed outline-orange-500/60'> +

Current points : {currentPoints}

+
+ +

Grade

+
+
+ }
{children} diff --git a/apps/web/components/StyledElements/Modal/Modal.tsx b/apps/web/components/StyledElements/Modal/Modal.tsx index 0b1ca9c7..b78350ec 100644 --- a/apps/web/components/StyledElements/Modal/Modal.tsx +++ b/apps/web/components/StyledElements/Modal/Modal.tsx @@ -82,6 +82,7 @@ const contentClose = keyframes({ const DialogOverlay = styled(Dialog.Overlay, { backgroundColor: blackA.blackA9, + backdropFilter: 'blur(0.6px)', position: 'fixed', zIndex: 500, inset: 0, diff --git a/apps/web/package.json b/apps/web/package.json index 13591031..bca7fdd9 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -20,25 +20,25 @@ "@radix-ui/react-switch": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.2", "@stitches/react": "^1.2.8", - "@tiptap/core": "^2.5.4", - "@tiptap/extension-code-block-lowlight": "^2.5.4", - "@tiptap/extension-collaboration": "^2.5.4", - "@tiptap/extension-collaboration-cursor": "^2.5.4", - "@tiptap/extension-youtube": "^2.5.4", - "@tiptap/html": "^2.5.4", - "@tiptap/pm": "^2.5.4", - "@tiptap/react": "^2.5.4", - "@tiptap/starter-kit": "^2.5.4", + "@tiptap/core": "^2.5.8", + "@tiptap/extension-code-block-lowlight": "^2.5.8", + "@tiptap/extension-collaboration": "^2.5.8", + "@tiptap/extension-collaboration-cursor": "^2.5.8", + "@tiptap/extension-youtube": "^2.5.8", + "@tiptap/html": "^2.5.8", + "@tiptap/pm": "^2.5.8", + "@tiptap/react": "^2.5.8", + "@tiptap/starter-kit": "^2.5.8", "@types/randomcolor": "^0.5.9", "avvvatars-react": "^0.4.2", - "dayjs": "^1.11.11", + "dayjs": "^1.11.12", "formik": "^2.4.6", "framer-motion": "^10.18.0", "get-youtube-id": "^1.0.1", "highlight.js": "^11.10.0", "katex": "^0.16.11", "lowlight": "^3.1.0", - "lucide-react": "^0.408.0", + "lucide-react": "^0.424.0", "next": "14.2.5", "next-auth": "^4.24.7", "nextjs-toploader": "^1.6.12", @@ -60,7 +60,7 @@ "tailwind-scrollbar": "^3.1.0", "uuid": "^9.0.1", "y-indexeddb": "^9.0.12", - "y-prosemirror": "^1.2.9", + "y-prosemirror": "^1.2.11", "y-webrtc": "^10.3.0", "yjs": "^13.6.18" }, @@ -73,12 +73,12 @@ "@types/react-transition-group": "^4.4.10", "@types/styled-components": "^5.1.34", "@types/uuid": "^9.0.8", - "autoprefixer": "^10.4.19", + "autoprefixer": "^10.4.20", "eslint": "^8.57.0", "eslint-config-next": "^14.2.5", "eslint-plugin-unused-imports": "^3.2.0", - "postcss": "^8.4.39", - "tailwindcss": "^3.4.6", + "postcss": "^8.4.40", + "tailwindcss": "^3.4.7", "typescript": "5.4.4" } } diff --git a/apps/web/pnpm-lock.yaml b/apps/web/pnpm-lock.yaml index 986953f2..e095c99c 100644 --- a/apps/web/pnpm-lock.yaml +++ b/apps/web/pnpm-lock.yaml @@ -36,32 +36,32 @@ importers: specifier: ^1.2.8 version: 1.2.8(react@18.3.1) '@tiptap/core': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/pm@2.5.4) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/pm@2.5.8) '@tiptap/extension-code-block-lowlight': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/extension-code-block@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/extension-code-block@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) '@tiptap/extension-collaboration': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)(y-prosemirror@1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18)) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)(y-prosemirror@1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18)) '@tiptap/extension-collaboration-cursor': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(y-prosemirror@1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18)) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(y-prosemirror@1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18)) '@tiptap/extension-youtube': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) '@tiptap/html': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) '@tiptap/pm': - specifier: ^2.5.4 - version: 2.5.4 + specifier: ^2.5.8 + version: 2.5.8 '@tiptap/react': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tiptap/starter-kit': - specifier: ^2.5.4 - version: 2.5.4(@tiptap/pm@2.5.4) + specifier: ^2.5.8 + version: 2.5.8(@tiptap/pm@2.5.8) '@types/randomcolor': specifier: ^0.5.9 version: 0.5.9 @@ -69,8 +69,8 @@ importers: specifier: ^0.4.2 version: 0.4.2(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dayjs: - specifier: ^1.11.11 - version: 1.11.11 + specifier: ^1.11.12 + version: 1.11.12 formik: specifier: ^2.4.6 version: 2.4.6(react@18.3.1) @@ -90,8 +90,8 @@ importers: specifier: ^3.1.0 version: 3.1.0 lucide-react: - specifier: ^0.408.0 - version: 0.408.0(react@18.3.1) + specifier: ^0.424.0 + version: 0.424.0(react@18.3.1) next: specifier: 14.2.5 version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -148,7 +148,7 @@ importers: version: 2.4.0 tailwind-scrollbar: specifier: ^3.1.0 - version: 3.1.0(tailwindcss@3.4.6) + version: 3.1.0(tailwindcss@3.4.7) uuid: specifier: ^9.0.1 version: 9.0.1 @@ -156,8 +156,8 @@ importers: specifier: ^9.0.12 version: 9.0.12(yjs@13.6.18) y-prosemirror: - specifier: ^1.2.9 - version: 1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18) + specifier: ^1.2.11 + version: 1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18) y-webrtc: specifier: ^10.3.0 version: 10.3.0(yjs@13.6.18) @@ -190,8 +190,8 @@ importers: specifier: ^9.0.8 version: 9.0.8 autoprefixer: - specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.39) + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.40) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -202,11 +202,11 @@ importers: specifier: ^3.2.0 version: 3.2.0(eslint@8.57.0) postcss: - specifier: ^8.4.39 - version: 8.4.39 + specifier: ^8.4.40 + version: 8.4.40 tailwindcss: - specifier: ^3.4.6 - version: 3.4.6 + specifier: ^3.4.7 + version: 3.4.7 typescript: specifier: 5.4.4 version: 5.4.4 @@ -217,8 +217,8 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@babel/runtime@7.24.8': - resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + '@babel/runtime@7.25.0': + resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} engines: {node: '>=6.9.0'} '@emnapi/runtime@1.2.0': @@ -257,11 +257,11 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@floating-ui/core@1.6.4': - resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} + '@floating-ui/core@1.6.5': + resolution: {integrity: sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA==} - '@floating-ui/dom@1.6.7': - resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} + '@floating-ui/dom@1.6.8': + resolution: {integrity: sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==} '@floating-ui/react-dom@2.1.1': resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} @@ -269,8 +269,8 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.4': - resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} + '@floating-ui/utils@0.2.5': + resolution: {integrity: sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ==} '@hocuspocus/common@2.13.5': resolution: {integrity: sha512-8D9FzhZFlt0WsgXw5yT2zwSxi6z9d4V2vUz6co2vo3Cj+Y2bvGZsdDiTvU/MerGcCLME5k/w6PwLPojLYH/4pg==} @@ -882,8 +882,8 @@ packages: '@remirror/core-constants@2.0.2': resolution: {integrity: sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==} - '@rushstack/eslint-patch@1.10.3': - resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} '@stitches/react@1.2.8': resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==} @@ -896,162 +896,162 @@ packages: '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - '@tiptap/core@2.5.4': - resolution: {integrity: sha512-Zs/hShr4+W02+0nOlpmr5cS2YjDRLqd+XMt+jsiQH0QNr3s1Lc82pfF6C3CjgLEZtdUzImZrW2ABtLlpvbogaA==} + '@tiptap/core@2.5.8': + resolution: {integrity: sha512-lkWCKyoAoMTxM137MoEsorG7tZ5MZU6O3wMRuZ0P9fcTRY5vd1NWncWuPzuGSJIpL20gwBQOsS6PaQSfR3xjlA==} peerDependencies: - '@tiptap/pm': ^2.5.4 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-blockquote@2.5.4': - resolution: {integrity: sha512-UqeJunZM3IiCQGZE0X5YNUOWYkuIieqrwPgOEghAIjnhDcQizQcouRQ5R7cwwv/scNr2JvZHncOTLrALV3Janw==} + '@tiptap/extension-blockquote@2.5.8': + resolution: {integrity: sha512-P8vDiagtRrUfIewfCKrJe0ddDSjPgOTKzqoM1UXKS+MenT8C/wT4bjiwopAoWP6zMoV0TfHWXah9emllmCfXFA==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-bold@2.5.4': - resolution: {integrity: sha512-H5sjqloFMjq7VOSfE+U4T7dqGoflOiF6RW6/gZm/U6KYeHG2/bG0ktq7mWAnnhbiKiy7gUcxyJCV+ILdGX9C5g==} + '@tiptap/extension-bold@2.5.8': + resolution: {integrity: sha512-4vEn+U7Y8B4e8izcL7QuEKYJ9thCSdo+UF1K3TOqQWuJTzTrJLPMwTZ4vYOHzvuq5uIXyPLnWzLgnRLgy5mJRg==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-bubble-menu@2.5.4': - resolution: {integrity: sha512-GHwef912K1yd75pp9JGDnKSp1DvdOHH8BcHQv0no+a3q2ePFPYcgaSwVRR59jHRX9WzdVfoLcqDSAeoNGOrISw==} + '@tiptap/extension-bubble-menu@2.5.8': + resolution: {integrity: sha512-COmd1Azudu7i281emZFIESECe7FnvWiRoBoQBVjjWSyq5PVzwJaA3PAlnU7GyNZKtVXMZ4xbrckdyNQfDeVQDA==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-bullet-list@2.5.4': - resolution: {integrity: sha512-aAfpALeD6OxymkbtrzDqbgkAkzVVHudxOb8GsK1N6m42nFL7Q9JzHJ5/8KzB+xi25CcIbS+HmXJkRIQJXgNbSA==} + '@tiptap/extension-bullet-list@2.5.8': + resolution: {integrity: sha512-Wvf0HWBI0ulssoCsCOguxJB1Ntmj9PtE8b/ieFwFvrNptP+sf25XiWgjMs7H1KQrtmpngBu/Bhh5jJRgAmAgeQ==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-code-block-lowlight@2.5.4': - resolution: {integrity: sha512-K+bDt6CY2IxGANtmVK32uD8lRY/DqFGJwDKhearpFTR7yAn8q2MpWZjH15eOqZIgXGNf1fK6VK6wfczjecrV3A==} + '@tiptap/extension-code-block-lowlight@2.5.8': + resolution: {integrity: sha512-ga5iYzVeX7pQ6P44ZkW+Sf+sTcAjD8gjkz6szQ4qKZbJNKWhUPbWyhp41mlhwBq+QzvqcGNWiGcOe6ZwPR01sA==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/extension-code-block': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/extension-code-block': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-code-block@2.5.4': - resolution: {integrity: sha512-lZRz44ACSL0IC4syWkNsNSe90sZuLig0yidfV9rs2muSCLoS3PRcCIJv4GjdBHouangxxBZqzIqWgPBqe6pqwA==} + '@tiptap/extension-code-block@2.5.8': + resolution: {integrity: sha512-atMtT1Ddc4hv9+OiH/UCLfQ6Ooo45xpPaaOhqs1Ab509YyqxoyEbfNSOth/yx9DFb8VOenRWE1WV3Z3C0ial0Q==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-code@2.5.4': - resolution: {integrity: sha512-PCP0VcWR0Jsj3rum3czp1jateR+kv1iuB9E+TieGLN4vFqhoiUwSv2UAuhvD8x66MGCYLA3btgnmPov1w/iNmA==} + '@tiptap/extension-code@2.5.8': + resolution: {integrity: sha512-56lb4NnaYAbIkqBTCIg4ZoITrw86Dj8C2HSi6DrU7f5q9cfvGuH+2057I5n8eEEfASu1AeDN6tSnCz3NR+yiHw==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-collaboration-cursor@2.5.4': - resolution: {integrity: sha512-M32JChnP5RVdr1n+Tf0gF9bxx0gHvc0uV4SDxCMN3uaNH5YpcofmvKElS60rDGVfCdRTId/aj7P3AtwrvRlYdQ==} + '@tiptap/extension-collaboration-cursor@2.5.8': + resolution: {integrity: sha512-dLwwphpIEYhMAL2j1DPJwmqtCTa1Vg6Qk3VSpcQQ1Q/M9bKy/E0j4wyi87p9vaeG4oRPM4b/xGy++gRN2FNRcw==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 y-prosemirror: ^1.2.6 - '@tiptap/extension-collaboration@2.5.4': - resolution: {integrity: sha512-CpQdbr7XpQaVqRFo/A1DchrQZMDb8vrkP+FcUIgvHN0b8hwKDmXRAHDtuk8yTTEatW1EqpX8lx8UxaUTcDNbIg==} + '@tiptap/extension-collaboration@2.5.8': + resolution: {integrity: sha512-xSvYbTK+x0HozZ2io5DNhpe53mGdABQvsNMwzqdcY00abZV+qTZ6TTdafwOxrNhwMUzUttyzIMDF9SEddOiXvg==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 y-prosemirror: ^1.2.6 - '@tiptap/extension-document@2.5.4': - resolution: {integrity: sha512-4RDrhASxCTOZETYhIhEW1TfZqx3Tm+LQxouvBMFyODmT1PSgsg5Xz1FYpDPr+J49bGAK0Pr9ae0XcGW011L3sA==} + '@tiptap/extension-document@2.5.8': + resolution: {integrity: sha512-r3rP4ihCJAdp3VRIeqd80etHx7jttzZaKNFX8hkQShHK6eTHwrR92VL0jDE4K+NOE3bxjMsOlYizJYWV042BtA==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-dropcursor@2.5.4': - resolution: {integrity: sha512-jzSnuuYhlc0SsHvAteWkE9TJy3eRwkxQs4MO2JxALOzJECN4G82nlX8vciihBD6xf7lVgVSBACejK9+rsTHqCg==} + '@tiptap/extension-dropcursor@2.5.8': + resolution: {integrity: sha512-xPmIfTYqurFF8RukCPlHd8mT8I7hDinWrgq7CQTRROxcJ3DNw8PooWrKWaBYs9HXHe1pbiQ5EK0uOsNvQ1bcDg==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-floating-menu@2.5.4': - resolution: {integrity: sha512-EqD4rgi3UhnDcV3H1+ndAS4Ue2zpsU7hFKoevOIV6GS7xVnWN70AGt6swH24QzuHKKISFtWoLpKjrwRORNIxuA==} + '@tiptap/extension-floating-menu@2.5.8': + resolution: {integrity: sha512-qsM6tCyRlXnI/gADrkO/2p0Tldu5aY96CnsXpZMaflMgsO577qhcXD0ReGg17uLXBzJa5xmV8qOik0Ptq3WEWg==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-gapcursor@2.5.4': - resolution: {integrity: sha512-wzTh1piODZBS0wmuDgPjjg8PQwclYa5LssnxDIo9pDSnt4l3AfHSAJIJSGIfgt96KnzF1wqRTRpe08qNa1n7/g==} + '@tiptap/extension-gapcursor@2.5.8': + resolution: {integrity: sha512-nR7AUOE4xWdp0sDbLbe4uwAhQ/xq+MTLVafvffMLT81U/Hl9R+w0Ap2XF0+c6/JTQwVjZiOalAmg4dobx7rJUQ==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-hard-break@2.5.4': - resolution: {integrity: sha512-nLn6HP9tqgdGGwbMORXVtcY30DTGctYFaWADRthvBjVgacYSeKlhUcsSu3YgaxtbxZp6BhfRvD2kKrxyQsSjnQ==} + '@tiptap/extension-hard-break@2.5.8': + resolution: {integrity: sha512-samZEL0EXzHSmMQ7KyLnfSxdDv3qSjia0JzelfCnFZS6LLcbwjrIjV8ZPxEhJ7UlZqroQdFxPegllkLHZj/MdQ==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-heading@2.5.4': - resolution: {integrity: sha512-DuAB58/e7eho1rkyad0Z/SjW+EB+H2hRqHlswEeZZYhBTjzey5UmBwkMWTGC/SQiRisx1xYQYTd8T0fiABi5hw==} + '@tiptap/extension-heading@2.5.8': + resolution: {integrity: sha512-fDQoUkTLN+U8MNQ8PI+syKyshS9qFHlKihxzMLf/+tRisJvP47gzHDur99nffTSbXFDnASDqhavhKjI/2xTWlQ==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-history@2.5.4': - resolution: {integrity: sha512-WB1fZYGIlpahAD6Ba+mj9vIb1tk8S3TsADXDFKxLVpZWZPQ+B7duGJP7g/vRH2XAXEs836JzC2oxjKeaop3k7A==} + '@tiptap/extension-history@2.5.8': + resolution: {integrity: sha512-5IrZZfp2Rg9Tov/08aYTKhwoiqdun8v3j3vleuqyW5RB7LU/NKLR19EtSSMh9mVkFZVbhab2zDOFmn5ilsEOhw==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-horizontal-rule@2.5.4': - resolution: {integrity: sha512-uXLDe/iyzQbyfDkJ8kE5XaAkY3EOcbTFLjbueqGlkbWtjJgy+3LysGvh8fQj8PAOaIBMaFRFhTq7GMbW2ebRog==} + '@tiptap/extension-horizontal-rule@2.5.8': + resolution: {integrity: sha512-L8Is73WGaP6VNdKrIry+lCIM9W1KaL/Tw2Z6DGMVMU5mr1lLx0xq7nWEStqD7e4zh+n4+3PV15cZSA2F34DZrg==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/extension-italic@2.5.4': - resolution: {integrity: sha512-TAhtl/fNBgv1elzF3HWES8uwVdpKBSYrq1e6yeYfj74mQn//3ksvdhWQrLzc1e+zcoHbk1PeOp/5ODdPuZ6tkg==} + '@tiptap/extension-italic@2.5.8': + resolution: {integrity: sha512-Kh35a7slBai+Qr/tiF9XFXmuWMgUQz4Nt51hmzqVGVuG+QsdWzQE8IZBGypKm8aAzxTGSY0d0QA0rys+YRNq1Q==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-list-item@2.5.4': - resolution: {integrity: sha512-bPxUCFt9HnAfoaZQgwqCfRAZ6L3QlYhIRDDbOvZag7IxCdQuZmeY4k5OZfQIGijNDTag7CN9cdL4fl9rnm6/sQ==} + '@tiptap/extension-list-item@2.5.8': + resolution: {integrity: sha512-RFIIzHxxXdPmdf7BL0zhE4VPHoR6BTWtfi3JCTftmNqKoH7o+mLKT0RHMGvF1CGNn2HewHzXAF0iXfKCwmEgHQ==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-ordered-list@2.5.4': - resolution: {integrity: sha512-cl3cTJitY6yDUmxqgjDUtDWCyX1VVsZNJ6i9yiPeARcxvzFc81KmUJxTGl8WPT5TjqmM+TleRkZjsxgvXX57+Q==} + '@tiptap/extension-ordered-list@2.5.8': + resolution: {integrity: sha512-84gWdWhc8rUCCssn8+6Z1rFKdG7/yIe+gwYkU6WqAtDrcluJdt5jRHrcMOLxb2dbY8ww9pa72EYV/bwOisZlFQ==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-paragraph@2.5.4': - resolution: {integrity: sha512-pC1YIkkRPXoU0eDrhfAf8ZrFJQzvw2ftP6KRhLnnSw/Ot1DOjT1r95l7zsFefS9oCDMT/L4HghTAiPZ4rcpPbg==} + '@tiptap/extension-paragraph@2.5.8': + resolution: {integrity: sha512-AMfD3lfGSiomfkSE2tUourUjVahLtIfWUQew13NTPuWoxAXaSyoCGO0ULkiou/lO3JVUUUmF9+KJrAHWGIARdA==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-strike@2.5.4': - resolution: {integrity: sha512-OSN6ePbCwEhi3hYZZOPow/P9Ym2Kv3NhVbUvasjZCiqQuk8TGc33xirPWl9DTjb/BLfL66TtJ2tKUEVOKl5dKg==} + '@tiptap/extension-strike@2.5.8': + resolution: {integrity: sha512-uiHhBIEqawX9Up2ofklotVQ5XpGIjwRL6wprZF38s1le3XpsgyhVV7oDnqDkC7ujCsGkOJJfXZtv3LsO3R2nzQ==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-text@2.5.4': - resolution: {integrity: sha512-+3x/hYqhmCYbvedCcQzQHFtZ5MAcMOlKuczomZtygf8AfDfuQVrG1m4GoJyNzJdqxjN80/xq4e2vDVvqQxYTCw==} + '@tiptap/extension-text@2.5.8': + resolution: {integrity: sha512-CNkD51jRMdcYCqFVOkrnebqBQ6pCD3ZD5z9kO5bOC5UPZKZBkLsWdlrHGAVwosxcGxdJACbqJ0Nj+fMgIw4tNA==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/extension-youtube@2.5.4': - resolution: {integrity: sha512-iHcvXOA32MZsVJTT7mvZ1CWKUo2quQMQXfBniizLm0lUG1ftSioqnDuXy4kEjeCBR2cnZr3yph6tbG/pF0RcHg==} + '@tiptap/extension-youtube@2.5.8': + resolution: {integrity: sha512-TEZ/mZgAIgc4thTO0pbmuNpWhMcCKk4IPgG3ko5HJ6w4lm13aVBroGoTXxHmK50kDzr+yD0g9JaJJTIvJ2cvGA==} peerDependencies: - '@tiptap/core': ^2.5.4 + '@tiptap/core': ^2.5.8 - '@tiptap/html@2.5.4': - resolution: {integrity: sha512-Fcvsa7kkO+Id7WBFimDN5zdHksVGVnyHnffaN/PaAgbKmzP53BC38Pd0XuHS+KL6btqQIFE2GlqNYnyIos7i+g==} + '@tiptap/html@2.5.8': + resolution: {integrity: sha512-d97bNiRJu3jzYGQpLUTehm7tOk0+ihLXVrckKjDAHsxvhO1tS0YvLuQYtimauRHRuRbe/2RZ2AuFqfi5TFs2iQ==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 - '@tiptap/pm@2.5.4': - resolution: {integrity: sha512-oFIsuniptdUXn93x4aM2sVN3hYKo9Fj55zAkYrWhwxFYUYcPxd5ibra2we+wRK5TaiPu098wpC+yMSTZ/KKMpA==} + '@tiptap/pm@2.5.8': + resolution: {integrity: sha512-CVhHaTG4QNHSkvuh6HHsUR4hE+nbUnk7z+VMUedaqPU8tNqkTwWGCMbiyTc+PCsz0T9Mni7vvBR+EXgEQ3+w4g==} - '@tiptap/react@2.5.4': - resolution: {integrity: sha512-2HPHt2lEK6Z4jOV3HHVTee8hD4NS6eEj0zRZWSFjt1zDzXtFqX8VIv7qC1iDYsQgyiFnFnOucOQtAlDewBb23A==} + '@tiptap/react@2.5.8': + resolution: {integrity: sha512-twUMm8HV7scUgR/E1hYS9N6JDtKPl7cgDiPjxTynNHc5S5f5Ecv4ns/BZRq3TMZ/JDrp4rghLvgq+ImQsLvPOA==} peerDependencies: - '@tiptap/core': ^2.5.4 - '@tiptap/pm': ^2.5.4 + '@tiptap/core': ^2.5.8 + '@tiptap/pm': ^2.5.8 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - '@tiptap/starter-kit@2.5.4': - resolution: {integrity: sha512-IYnSETtBUSsy+Ece4kfVyzew+zyj7W9rP2Ronx0CbjeWQarfCAGxjuZ6uGLPB+tC5ZuMVt68Gyqb2y8GFes2Yw==} + '@tiptap/starter-kit@2.5.8': + resolution: {integrity: sha512-Beb6Q3cFmJ1pE22WlFrG3wj8XAGXqaGkbqtsGAJDnoyWL4uoSs4vLt5I/UJshK/nQlNqTWFdpd9SxRFsxBYpqg==} '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -1215,9 +1215,6 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - array.prototype.tosorted@1.1.4: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} @@ -1229,8 +1226,8 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -1246,8 +1243,8 @@ packages: react: '>= 16' react-dom: '>= 16' - axe-core@4.9.1: - resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + axe-core@4.10.0: + resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} axobject-query@3.1.1: @@ -1273,8 +1270,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1300,8 +1297,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001642: - resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} + caniuse-lite@1.0.30001649: + resolution: {integrity: sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1387,8 +1384,8 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - dayjs@1.11.11: - resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} + dayjs@1.11.12: + resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -1406,8 +1403,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1469,8 +1466,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.829: - resolution: {integrity: sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==} + electron-to-chromium@1.5.4: + resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1478,8 +1475,8 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} entities@4.5.0: @@ -1593,11 +1590,11 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.34.4: - resolution: {integrity: sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==} + eslint-plugin-react@7.35.0: + resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-plugin-unused-imports@3.2.0: resolution: {integrity: sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==} @@ -1740,8 +1737,8 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} get-youtube-id@1.0.1: resolution: {integrity: sha512-5yidLzoLXbtw82a/Wb7LrajkGn29BM6JuLWeHyNfzOGp1weGyW4+7eMz6cP23+etqj27VlOFtq8fFFDMLq/FXQ==} @@ -2043,8 +2040,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lib0@0.2.94: - resolution: {integrity: sha512-hZ3p54jL4Wpu7IOg26uC7dnEWiMyNlUrb9KoG7+xYs45WkQwpVvKFndVq2+pqLYKe1u8Fp3+zAfZHVvTK34PvQ==} + lib0@0.2.96: + resolution: {integrity: sha512-xeV9M34+D4HD1sd6xAarnWYgU7pKau64bvmPySibX85G+hx/KonzISpO409K6OS9IVLORWfQZkKBRZV5sQegFQ==} engines: {node: '>=16'} hasBin: true @@ -2092,10 +2089,10 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - lucide-react@0.408.0: - resolution: {integrity: sha512-8kETAAeWmOvtGIr7HPHm51DXoxlfkNncQ5FZWXR+abX8saQwMYXANWIkUstaYtcKSo/imOe/q+tVFA8ANzdSVA==} + lucide-react@0.424.0: + resolution: {integrity: sha512-x2Nj2aytk1iOyHqt4hKenfVlySq0rYxNeEf8hE0o+Yh0iE36Rqz0rkngVdv2uQtjZ70LAE73eeplhhptYt9x4Q==} peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} @@ -2189,8 +2186,8 @@ packages: react: '>= 16.0.0' react-dom: '>= 16.0.0' - node-releases@2.0.17: - resolution: {integrity: sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -2348,8 +2345,8 @@ packages: ts-node: optional: true - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 @@ -2369,8 +2366,8 @@ packages: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + postcss@8.4.40: + resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} engines: {node: ^10 || ^12 || >=14} preact-render-to-string@5.2.6: @@ -2378,8 +2375,8 @@ packages: peerDependencies: preact: '>=10' - preact@10.22.1: - resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} + preact@10.23.1: + resolution: {integrity: sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -2397,8 +2394,8 @@ packages: prosemirror-collab@1.3.1: resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} - prosemirror-commands@1.5.2: - resolution: {integrity: sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==} + prosemirror-commands@1.6.0: + resolution: {integrity: sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg==} prosemirror-dropcursor@1.8.1: resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==} @@ -2421,8 +2418,8 @@ packages: prosemirror-menu@1.2.4: resolution: {integrity: sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==} - prosemirror-model@1.22.1: - resolution: {integrity: sha512-gMrxal+F3higDFxCkBK5iQXckRVYvIu/3dopERJ6b20xfwZ9cbYvQvuldqaN+v/XytNPGyURYUpUU23kBRxWCQ==} + prosemirror-model@1.22.2: + resolution: {integrity: sha512-I4lS7HHIW47D0Xv/gWmi4iUWcQIDYaJKd8Hk4+lcSps+553FlQrhmxtItpEvTr75iAruhzVShVp6WUwsT6Boww==} prosemirror-schema-basic@1.2.3: resolution: {integrity: sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==} @@ -2433,8 +2430,8 @@ packages: prosemirror-state@1.4.3: resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} - prosemirror-tables@1.3.7: - resolution: {integrity: sha512-oEwX1wrziuxMtwFvdDWSFHVUWrFJWt929kVVfHvtTi8yvw+5ppxjXZkMG/fuTdFo+3DXyIPSKfid+Be1npKXDA==} + prosemirror-tables@1.4.0: + resolution: {integrity: sha512-fxryZZkQG12fSCNuZDrYx6Xvo2rLYZTbKLRd8rglOPgNJGMKIS8uvTt6gGC38m7UCu/ENnXIP9pEz5uDaPc+cA==} prosemirror-trailing-node@2.0.9: resolution: {integrity: sha512-YvyIn3/UaLFlFKrlJB6cObvUhmwFNZVhy1Q8OpW/avoTbD/Y7H5EcjK4AZFKhmuS6/N6WkGgt7gWtBWDnmFvHg==} @@ -2446,8 +2443,8 @@ packages: prosemirror-transform@1.9.0: resolution: {integrity: sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==} - prosemirror-view@1.33.8: - resolution: {integrity: sha512-4PhMr/ufz2cdvFgpUAnZfs+0xij3RsFysreeG9V/utpwX7AJtYCDVyuRxzWoMJIEf4C7wVihuBNMPpFLPCiLQw==} + prosemirror-view@1.33.9: + resolution: {integrity: sha512-xV1A0Vz9cIcEnwmMhKKFAOkfIp8XmJRnaZoPqNXrPS7EK5n11Ov8V76KhR0RsfQd/SIzmWY+bg+M44A2Lx/Nnw==} punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} @@ -2804,8 +2801,8 @@ packages: peerDependencies: tailwindcss: 3.x - tailwindcss@3.4.6: - resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==} + tailwindcss@3.4.7: + resolution: {integrity: sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -2951,8 +2948,8 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} which-collection@1.0.2: @@ -3001,8 +2998,8 @@ packages: peerDependencies: yjs: ^13.0.0 - y-prosemirror@1.2.9: - resolution: {integrity: sha512-fThGIVmSqrqnG/ckywEGlHM9ElfILC4TcMZd5zxWPe/i+UuP97TEr4swsopRKG3Y+KHBVt4Y/5NVBC3AAsUoUg==} + y-prosemirror@1.2.11: + resolution: {integrity: sha512-MUGMYyokOb9DpBRHr4Cadob2KheDCKW2LHceAM2yrWp9dfX+3HZZUNEubEPd4zszq4DF2fGCFhE3N66zOTLoxA==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} peerDependencies: prosemirror-model: ^1.7.1 @@ -3027,8 +3024,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} engines: {node: '>= 14'} hasBin: true @@ -3051,7 +3048,7 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@babel/runtime@7.24.8': + '@babel/runtime@7.25.0': dependencies: regenerator-runtime: 0.14.1 @@ -3086,7 +3083,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.6 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -3099,32 +3096,32 @@ snapshots: '@eslint/js@8.57.0': {} - '@floating-ui/core@1.6.4': + '@floating-ui/core@1.6.5': dependencies: - '@floating-ui/utils': 0.2.4 + '@floating-ui/utils': 0.2.5 - '@floating-ui/dom@1.6.7': + '@floating-ui/dom@1.6.8': dependencies: - '@floating-ui/core': 1.6.4 - '@floating-ui/utils': 0.2.4 + '@floating-ui/core': 1.6.5 + '@floating-ui/utils': 0.2.5 '@floating-ui/react-dom@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.6.7 + '@floating-ui/dom': 1.6.8 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.4': {} + '@floating-ui/utils@0.2.5': {} '@hocuspocus/common@2.13.5': dependencies: - lib0: 0.2.94 + lib0: 0.2.96 '@hocuspocus/provider@2.13.5(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18)': dependencies: '@hocuspocus/common': 2.13.5 '@lifeomic/attempt': 3.1.0 - lib0: 0.2.94 + lib0: 0.2.96 ws: 8.18.0 y-protocols: 1.0.6(yjs@13.6.18) yjs: 13.6.18 @@ -3135,7 +3132,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3303,7 +3300,7 @@ snapshots: '@radix-ui/primitive@1.0.1': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@radix-ui/primitive@1.1.0': {} @@ -3327,7 +3324,7 @@ snapshots: '@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.74)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.74 @@ -3340,7 +3337,7 @@ snapshots: '@radix-ui/react-context@1.0.1(@types/react@18.2.74)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.74 @@ -3405,7 +3402,7 @@ snapshots: '@radix-ui/react-form@0.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.3.1) @@ -3424,7 +3421,7 @@ snapshots: '@radix-ui/react-id@1.0.1(@types/react@18.2.74)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -3439,7 +3436,7 @@ snapshots: '@radix-ui/react-label@2.0.2(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -3487,7 +3484,7 @@ snapshots: '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -3506,7 +3503,7 @@ snapshots: '@radix-ui/react-slot@1.0.2(@types/react@18.2.74)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -3576,7 +3573,7 @@ snapshots: '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.74)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.74 @@ -3620,7 +3617,7 @@ snapshots: '@remirror/core-constants@2.0.2': {} - '@rushstack/eslint-patch@1.10.3': {} + '@rushstack/eslint-patch@1.10.4': {} '@stitches/react@1.2.8(react@18.3.1)': dependencies: @@ -3633,131 +3630,131 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.6.3 - '@tiptap/core@2.5.4(@tiptap/pm@2.5.4)': + '@tiptap/core@2.5.8(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/pm': 2.5.4 + '@tiptap/pm': 2.5.8 - '@tiptap/extension-blockquote@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-blockquote@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-bold@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-bold@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-bubble-menu@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-bubble-menu@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 tippy.js: 6.3.7 - '@tiptap/extension-bullet-list@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-bullet-list@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-code-block-lowlight@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/extension-code-block@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-code-block-lowlight@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/extension-code-block@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/extension-code-block': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/extension-code-block': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 - '@tiptap/extension-code-block@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-code-block@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 - '@tiptap/extension-code@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-code@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-collaboration-cursor@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(y-prosemirror@1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18))': + '@tiptap/extension-collaboration-cursor@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(y-prosemirror@1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - y-prosemirror: 1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + y-prosemirror: 1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18) - '@tiptap/extension-collaboration@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)(y-prosemirror@1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18))': + '@tiptap/extension-collaboration@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)(y-prosemirror@1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 - y-prosemirror: 1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 + y-prosemirror: 1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18) - '@tiptap/extension-document@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-document@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-dropcursor@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-dropcursor@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 - '@tiptap/extension-floating-menu@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-floating-menu@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 tippy.js: 6.3.7 - '@tiptap/extension-gapcursor@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-gapcursor@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 - '@tiptap/extension-hard-break@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-hard-break@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-heading@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-heading@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-history@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-history@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 - '@tiptap/extension-horizontal-rule@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/extension-horizontal-rule@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 - '@tiptap/extension-italic@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-italic@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-list-item@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-list-item@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-ordered-list@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-ordered-list@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-paragraph@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-paragraph@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-strike@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-strike@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-text@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-text@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/extension-youtube@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))': + '@tiptap/extension-youtube@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) - '@tiptap/html@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)': + '@tiptap/html@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 zeed-dom: 0.10.11 - '@tiptap/pm@2.5.4': + '@tiptap/pm@2.5.8': dependencies: prosemirror-changeset: 2.2.1 prosemirror-collab: 1.3.1 - prosemirror-commands: 1.5.2 + prosemirror-commands: 1.6.0 prosemirror-dropcursor: 1.8.1 prosemirror-gapcursor: 1.3.2 prosemirror-history: 1.4.1 @@ -3765,47 +3762,47 @@ snapshots: prosemirror-keymap: 1.2.2 prosemirror-markdown: 1.13.0 prosemirror-menu: 1.2.4 - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-schema-basic: 1.2.3 prosemirror-schema-list: 1.4.1 prosemirror-state: 1.4.3 - prosemirror-tables: 1.3.7 - prosemirror-trailing-node: 2.0.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8) + prosemirror-tables: 1.4.0 + prosemirror-trailing-node: 2.0.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9) prosemirror-transform: 1.9.0 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 - '@tiptap/react@2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tiptap/react@2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/extension-bubble-menu': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/extension-floating-menu': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/pm': 2.5.4 + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/extension-bubble-menu': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/extension-floating-menu': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/pm': 2.5.8 '@types/use-sync-external-store': 0.0.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.2.2(react@18.3.1) - '@tiptap/starter-kit@2.5.4(@tiptap/pm@2.5.4)': + '@tiptap/starter-kit@2.5.8(@tiptap/pm@2.5.8)': dependencies: - '@tiptap/core': 2.5.4(@tiptap/pm@2.5.4) - '@tiptap/extension-blockquote': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-bold': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-bullet-list': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-code': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-code-block': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/extension-document': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-dropcursor': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/extension-gapcursor': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/extension-hard-break': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-heading': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-history': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/extension-horizontal-rule': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4))(@tiptap/pm@2.5.4) - '@tiptap/extension-italic': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-list-item': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-ordered-list': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-paragraph': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-strike': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) - '@tiptap/extension-text': 2.5.4(@tiptap/core@2.5.4(@tiptap/pm@2.5.4)) + '@tiptap/core': 2.5.8(@tiptap/pm@2.5.8) + '@tiptap/extension-blockquote': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-bold': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-bullet-list': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-code': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-code-block': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/extension-document': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-dropcursor': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/extension-gapcursor': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/extension-hard-break': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-heading': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-history': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/extension-horizontal-rule': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8))(@tiptap/pm@2.5.8) + '@tiptap/extension-italic': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-list-item': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-ordered-list': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-paragraph': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-strike': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) + '@tiptap/extension-text': 2.5.8(@tiptap/core@2.5.8(@tiptap/pm@2.5.8)) transitivePeerDependencies: - '@tiptap/pm' @@ -3876,7 +3873,7 @@ snapshots: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.4) '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 optionalDependencies: typescript: 5.4.4 @@ -3894,7 +3891,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.5 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -4002,13 +3999,6 @@ snapshots: es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - array.prototype.toreversed@1.1.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.7 @@ -4030,14 +4020,14 @@ snapshots: ast-types-flow@0.0.8: {} - autoprefixer@10.4.19(postcss@8.4.39): + autoprefixer@10.4.20(postcss@8.4.40): dependencies: - browserslist: 4.23.2 - caniuse-lite: 1.0.30001642 + browserslist: 4.23.3 + caniuse-lite: 1.0.30001649 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 - postcss: 8.4.39 + postcss: 8.4.40 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -4052,7 +4042,7 @@ snapshots: transitivePeerDependencies: - csstype - axe-core@4.9.1: {} + axe-core@4.10.0: {} axobject-query@3.1.1: dependencies: @@ -4077,12 +4067,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.2: + browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001642 - electron-to-chromium: 1.4.829 - node-releases: 2.0.17 - update-browserslist-db: 1.1.0(browserslist@4.23.2) + caniuse-lite: 1.0.30001649 + electron-to-chromium: 1.5.4 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) buffer@6.0.3: dependencies: @@ -4107,7 +4097,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001642: {} + caniuse-lite@1.0.30001649: {} chalk@4.1.2: dependencies: @@ -4198,7 +4188,7 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - dayjs@1.11.11: {} + dayjs@1.11.12: {} debug@2.6.9: dependencies: @@ -4208,7 +4198,7 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.5: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -4277,13 +4267,13 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.829: {} + electron-to-chromium@1.5.4: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - enhanced-resolve@5.17.0: + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -4403,14 +4393,14 @@ snapshots: eslint-config-next@14.2.5(eslint@8.57.0)(typescript@5.4.4): dependencies: '@next/eslint-plugin-next': 14.2.5 - '@rushstack/eslint-patch': 1.10.3 + '@rushstack/eslint-patch': 1.10.4 '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) - eslint-plugin-react: 7.34.4(eslint@8.57.0) + eslint-plugin-react: 7.35.0(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) optionalDependencies: typescript: 5.4.4 @@ -4428,13 +4418,13 @@ snapshots: eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0): dependencies: - debug: 4.3.5 - enhanced-resolve: 5.17.0 + debug: 4.3.6 + enhanced-resolve: 5.17.1 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 - get-tsconfig: 4.7.5 + get-tsconfig: 4.7.6 is-core-module: 2.15.0 is-glob: 4.0.3 transitivePeerDependencies: @@ -4487,7 +4477,7 @@ snapshots: array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.9.1 + axe-core: 4.10.0 axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 @@ -4505,12 +4495,11 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react@7.34.4(eslint@8.57.0): + eslint-plugin-react@7.35.0(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.toreversed: 1.1.2 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 @@ -4555,7 +4544,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.6 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -4707,7 +4696,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.5: + get-tsconfig@4.7.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -5010,7 +4999,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lib0@0.2.94: + lib0@0.2.96: dependencies: isomorphic.js: 0.2.5 @@ -5052,7 +5041,7 @@ snapshots: dependencies: yallist: 4.0.0 - lucide-react@0.408.0(react@18.3.1): + lucide-react@0.424.0(react@18.3.1): dependencies: react: 18.3.1 @@ -5110,15 +5099,15 @@ snapshots: next-auth@4.24.7(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@panva/hkdf': 1.2.1 cookie: 0.5.0 jose: 4.15.9 next: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) oauth: 0.9.15 openid-client: 5.6.5 - preact: 10.22.1 - preact-render-to-string: 5.2.6(preact@10.22.1) + preact: 10.23.1 + preact-render-to-string: 5.2.6(preact@10.23.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) uuid: 8.3.2 @@ -5128,7 +5117,7 @@ snapshots: '@next/env': 14.2.5 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001642 + caniuse-lite: 1.0.30001649 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -5156,7 +5145,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - node-releases@2.0.17: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -5276,28 +5265,28 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.39): + postcss-import@15.1.0(postcss@8.4.40): dependencies: - postcss: 8.4.39 + postcss: 8.4.40 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.39): + postcss-js@4.0.1(postcss@8.4.40): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.39 + postcss: 8.4.40 - postcss-load-config@4.0.2(postcss@8.4.39): + postcss-load-config@4.0.2(postcss@8.4.40): dependencies: lilconfig: 3.1.2 - yaml: 2.4.5 + yaml: 2.5.0 optionalDependencies: - postcss: 8.4.39 + postcss: 8.4.40 - postcss-nested@6.0.1(postcss@8.4.39): + postcss-nested@6.2.0(postcss@8.4.40): dependencies: - postcss: 8.4.39 + postcss: 8.4.40 postcss-selector-parser: 6.1.1 postcss-selector-parser@6.1.1: @@ -5319,18 +5308,18 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - postcss@8.4.39: + postcss@8.4.40: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 source-map-js: 1.2.0 - preact-render-to-string@5.2.6(preact@10.22.1): + preact-render-to-string@5.2.6(preact@10.23.1): dependencies: - preact: 10.22.1 + preact: 10.23.1 pretty-format: 3.8.0 - preact@10.22.1: {} + preact@10.23.1: {} prelude-ls@1.2.1: {} @@ -5350,9 +5339,9 @@ snapshots: dependencies: prosemirror-state: 1.4.3 - prosemirror-commands@1.5.2: + prosemirror-commands@1.6.0: dependencies: - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 prosemirror-transform: 1.9.0 @@ -5360,20 +5349,20 @@ snapshots: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.9.0 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 prosemirror-gapcursor@1.3.2: dependencies: prosemirror-keymap: 1.2.2 - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 prosemirror-history@1.4.1: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.9.0 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 rope-sequence: 1.3.4 prosemirror-inputrules@1.4.0: @@ -5389,58 +5378,58 @@ snapshots: prosemirror-markdown@1.13.0: dependencies: markdown-it: 14.1.0 - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-menu@1.2.4: dependencies: crelt: 1.0.6 - prosemirror-commands: 1.5.2 + prosemirror-commands: 1.6.0 prosemirror-history: 1.4.1 prosemirror-state: 1.4.3 - prosemirror-model@1.22.1: + prosemirror-model@1.22.2: dependencies: orderedmap: 2.1.1 prosemirror-schema-basic@1.2.3: dependencies: - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-schema-list@1.4.1: dependencies: - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 prosemirror-transform: 1.9.0 prosemirror-state@1.4.3: dependencies: - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-transform: 1.9.0 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 - prosemirror-tables@1.3.7: + prosemirror-tables@1.4.0: dependencies: prosemirror-keymap: 1.2.2 - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 prosemirror-transform: 1.9.0 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 - prosemirror-trailing-node@2.0.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8): + prosemirror-trailing-node@2.0.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9): dependencies: '@remirror/core-constants': 2.0.2 escape-string-regexp: 4.0.0 - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 prosemirror-transform@1.9.0: dependencies: - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 - prosemirror-view@1.33.8: + prosemirror-view@1.33.9: dependencies: - prosemirror-model: 1.22.1 + prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 prosemirror-transform: 1.9.0 @@ -5465,7 +5454,7 @@ snapshots: react-beautiful-dnd@13.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 css-box-model: 1.2.1 memoize-one: 5.2.1 raf-schd: 4.0.3 @@ -5510,7 +5499,7 @@ snapshots: react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@types/react-redux': 7.1.33 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -5582,7 +5571,7 @@ snapshots: redux@4.2.1: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 reflect.getprototypeof@1.0.6: dependencies: @@ -5592,7 +5581,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.4 - which-builtin-type: 1.1.3 + which-builtin-type: 1.1.4 regenerator-runtime@0.14.1: {} @@ -5716,7 +5705,7 @@ snapshots: simple-peer@9.11.1: dependencies: buffer: 6.0.3 - debug: 4.3.5 + debug: 4.3.6 err-code: 3.0.1 get-browser-rtc: 1.1.0 queue-microtask: 1.2.3 @@ -5858,11 +5847,11 @@ snapshots: tailwind-merge@2.4.0: {} - tailwind-scrollbar@3.1.0(tailwindcss@3.4.6): + tailwind-scrollbar@3.1.0(tailwindcss@3.4.7): dependencies: - tailwindcss: 3.4.6 + tailwindcss: 3.4.7 - tailwindcss@3.4.6: + tailwindcss@3.4.7: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -5878,11 +5867,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.39 - postcss-import: 15.1.0(postcss@8.4.39) - postcss-js: 4.0.1(postcss@8.4.39) - postcss-load-config: 4.0.2(postcss@8.4.39) - postcss-nested: 6.0.1(postcss@8.4.39) + postcss: 8.4.40 + postcss-import: 15.1.0(postcss@8.4.40) + postcss-js: 4.0.1(postcss@8.4.40) + postcss-load-config: 4.0.2(postcss@8.4.40) + postcss-nested: 6.2.0(postcss@8.4.40) postcss-selector-parser: 6.1.1 resolve: 1.22.8 sucrase: 3.35.0 @@ -5983,9 +5972,9 @@ snapshots: undici-types@5.26.5: {} - update-browserslist-db@1.1.0(browserslist@4.23.2): + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: - browserslist: 4.23.2 + browserslist: 4.23.3 escalade: 3.1.2 picocolors: 1.0.1 @@ -6032,7 +6021,7 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -6086,26 +6075,26 @@ snapshots: y-indexeddb@9.0.12(yjs@13.6.18): dependencies: - lib0: 0.2.94 + lib0: 0.2.96 yjs: 13.6.18 - y-prosemirror@1.2.9(prosemirror-model@1.22.1)(prosemirror-state@1.4.3)(prosemirror-view@1.33.8)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18): + y-prosemirror@1.2.11(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18): dependencies: - lib0: 0.2.94 - prosemirror-model: 1.22.1 + lib0: 0.2.96 + prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 - prosemirror-view: 1.33.8 + prosemirror-view: 1.33.9 y-protocols: 1.0.6(yjs@13.6.18) yjs: 13.6.18 y-protocols@1.0.6(yjs@13.6.18): dependencies: - lib0: 0.2.94 + lib0: 0.2.96 yjs: 13.6.18 y-webrtc@10.3.0(yjs@13.6.18): dependencies: - lib0: 0.2.94 + lib0: 0.2.96 simple-peer: 9.11.1 y-protocols: 1.0.6(yjs@13.6.18) yjs: 13.6.18 @@ -6118,11 +6107,11 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.5: {} + yaml@2.5.0: {} yjs@13.6.18: dependencies: - lib0: 0.2.94 + lib0: 0.2.96 yocto-queue@0.1.0: {} diff --git a/apps/web/services/courses/assignments.ts b/apps/web/services/courses/assignments.ts index bddf86fa..3e558801 100644 --- a/apps/web/services/courses/assignments.ts +++ b/apps/web/services/courses/assignments.ts @@ -97,7 +97,21 @@ export async function getAssignmentTaskSubmissionsMe( access_token: string ) { const result: any = await fetch( - `${getAPIUrl()}assignments/${assignmentUUID}/tasks/${assignmentTaskUUID}/submissions/user/me`, + `${getAPIUrl()}assignments/${assignmentUUID}/tasks/${assignmentTaskUUID}/submissions/me`, + RequestBodyWithAuthHeader('GET', null, null, access_token) + ) + const res = await getResponseMetadata(result) + return res +} + +export async function getAssignmentTaskSubmissionsUser( + assignmentTaskUUID: string, + user_id: string, + assignmentUUID: string, + access_token: string +) { + const result: any = await fetch( + `${getAPIUrl()}assignments/${assignmentUUID}/tasks/${assignmentTaskUUID}/submissions/user/${user_id}`, RequestBodyWithAuthHeader('GET', null, null, access_token) ) const res = await getResponseMetadata(result)