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,32 @@
import { EngineType } from './Engine';
import { EventHandlerType } from './EventHandler';
import { EmblaOptionsType } from './Options';
import { EmblaPluginsType, EmblaPluginType } from './Plugins';
export type EmblaCarouselType = {
canScrollNext: () => boolean;
canScrollPrev: () => boolean;
containerNode: () => HTMLElement;
internalEngine: () => EngineType;
destroy: () => void;
off: EventHandlerType['off'];
on: EventHandlerType['on'];
emit: EventHandlerType['emit'];
plugins: () => EmblaPluginsType;
previousScrollSnap: () => number;
reInit: (options?: EmblaOptionsType, plugins?: EmblaPluginType[]) => void;
rootNode: () => HTMLElement;
scrollNext: (jump?: boolean) => void;
scrollPrev: (jump?: boolean) => void;
scrollProgress: () => number;
scrollSnapList: () => number[];
scrollTo: (index: number, jump?: boolean) => void;
selectedScrollSnap: () => number;
slideNodes: () => HTMLElement[];
slidesInView: () => number[];
slidesNotInView: () => number[];
};
declare function EmblaCarousel(root: HTMLElement, userOptions?: EmblaOptionsType, userPlugins?: EmblaPluginType[]): EmblaCarouselType;
declare namespace EmblaCarousel {
let globalOptions: EmblaOptionsType | undefined;
}
export default EmblaCarousel;