feat: redesign Exams List page to show submitted custom exams

- Added Custom Exams tab showing all exams from Generation page
- Displays title, module badges, duration, and status
- Added Create Exam button
- Kept Exam Sessions tab for institutional sessions
- Search filters across exams

Made-with: Cursor
This commit is contained in:
Yamen Ahmad
2026-04-12 11:07:54 +04:00
parent 677ba85c77
commit 1e688107fa
22591 changed files with 3100321 additions and 95 deletions

View File

@@ -0,0 +1,21 @@
import { EmblaCarouselType } from './EmblaCarousel';
import { AnimationsType } from './Animations';
import { CounterType } from './Counter';
import { DragTrackerType, PointerEventType } from './DragTracker';
import { EventHandlerType } from './EventHandler';
import { AxisType } from './Axis';
import { ScrollBodyType } from './ScrollBody';
import { ScrollTargetType } from './ScrollTarget';
import { ScrollToType } from './ScrollTo';
import { Vector1DType } from './Vector1d';
import { PercentOfViewType } from './PercentOfView';
import { WindowType } from './utils';
type DragHandlerCallbackType = (emblaApi: EmblaCarouselType, evt: PointerEventType) => boolean | void;
export type DragHandlerOptionType = boolean | DragHandlerCallbackType;
export type DragHandlerType = {
init: (emblaApi: EmblaCarouselType) => void;
destroy: () => void;
pointerDown: () => boolean;
};
export declare function DragHandler(axis: AxisType, rootNode: HTMLElement, ownerDocument: Document, ownerWindow: WindowType, target: Vector1DType, dragTracker: DragTrackerType, location: Vector1DType, animation: AnimationsType, scrollTo: ScrollToType, scrollBody: ScrollBodyType, scrollTarget: ScrollTargetType, index: CounterType, eventHandler: EventHandlerType, percentOfView: PercentOfViewType, dragFree: boolean, dragThreshold: number, skipSnaps: boolean, baseFriction: number, watchDrag: DragHandlerOptionType): DragHandlerType;
export {};