mui-toolpad-extended-tuni 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +395 -8
  2. package/dist/EduMLToolpad/EduMLProvider.d.ts +20 -0
  3. package/dist/EduMLToolpad/components/Courses/CourseItem.d.ts +9 -0
  4. package/dist/EduMLToolpad/components/Courses/CourseList.d.ts +9 -0
  5. package/dist/EduMLToolpad/components/Courses/CourseSelector.d.ts +3 -0
  6. package/dist/EduMLToolpad/components/Courses/CourseTools.d.ts +3 -0
  7. package/dist/EduMLToolpad/components/Courses/LtiLoginUrlForm.d.ts +3 -0
  8. package/dist/EduMLToolpad/components/Courses/NoCoursesMessage.d.ts +3 -0
  9. package/dist/EduMLToolpad/components/DevelopmentTools.d.ts +3 -0
  10. package/dist/EduMLToolpad/components/Dialogs/DialogOpener.d.ts +10 -0
  11. package/dist/EduMLToolpad/components/Dialogs/FormDialog.d.ts +10 -0
  12. package/dist/EduMLToolpad/components/EduMLDialog.d.ts +9 -0
  13. package/dist/EduMLToolpad/components/Home.d.ts +3 -0
  14. package/dist/EduMLToolpad/components/IconWithBadge.d.ts +10 -0
  15. package/dist/EduMLToolpad/components/LoadingScreen.d.ts +2 -0
  16. package/dist/EduMLToolpad/components/Logo.d.ts +2 -0
  17. package/dist/EduMLToolpad/components/Notifications.d.ts +3 -0
  18. package/dist/EduMLToolpad/components/PageToolBar.d.ts +3 -0
  19. package/dist/EduMLToolpad/components/ToolSelector.d.ts +17 -0
  20. package/dist/EduMLToolpad/components/UserSwitcher.d.ts +3 -0
  21. package/dist/EduMLToolpad/components/sidebar/Footer.d.ts +3 -0
  22. package/dist/EduMLToolpad/components/toolbar/Account.d.ts +1 -0
  23. package/dist/EduMLToolpad/components/toolbar/Actions.d.ts +1 -0
  24. package/dist/EduMLToolpad/components/tools/addActions.d.ts +5 -0
  25. package/dist/EduMLToolpad/components/tools/addIcons.d.ts +2 -0
  26. package/dist/EduMLToolpad/components/tools/iconsByType.d.ts +6 -0
  27. package/dist/EduMLToolpad/components/tools/utils/ActionFCWrapper.d.ts +5 -0
  28. package/dist/EduMLToolpad/components/tools/utils/IconFCWrapper.d.ts +6 -0
  29. package/dist/EduMLToolpad/constants.d.ts +2 -0
  30. package/dist/EduMLToolpad/hooks/useCustomRouter.d.ts +6 -0
  31. package/dist/EduMLToolpad/interfaces.d.ts +1 -0
  32. package/dist/EduMLToolpad/layout/breadcrumbs/SizableContentHeader.d.ts +7 -0
  33. package/dist/EduMLToolpad/network/axiosConfig.d.ts +3 -0
  34. package/dist/EduMLToolpad/network/courses.d.ts +44 -0
  35. package/dist/EduMLToolpad/network/users.d.ts +5 -0
  36. package/dist/EduMLToolpad/store/useCourseStore.d.ts +15 -0
  37. package/dist/EduMLToolpad/store/useDialogStore.d.ts +3 -0
  38. package/dist/EduMLToolpad/store/useNavigationStore.d.ts +28 -0
  39. package/dist/EduMLToolpad/store/useNotificationsStore.d.ts +15 -0
  40. package/dist/EduMLToolpad/store/useUserStore.d.ts +26 -0
  41. package/dist/EduMLToolpad/theme/EduMLTheme.d.ts +2 -0
  42. package/dist/EduMLToolpad/tools/ErrorBoundary.d.ts +15 -0
  43. package/dist/EduMLToolpad/tools/NullStateWarning.d.ts +8 -0
  44. package/dist/EduMLToolpad/types/toolpad.d.ts +26 -0
  45. package/dist/EduMLToolpad/types/vite-env.d.ts +3 -0
  46. package/dist/EduMLToolpad/utils/caseConverter.d.ts +17 -0
  47. package/dist/EduMLToolpad/utils/slugify.d.ts +1 -0
  48. package/dist/index.cjs +327 -0
  49. package/dist/index.d.ts +41 -0
  50. package/dist/index.es.js +23936 -0
  51. package/dist/mockServiceWorker.js +307 -0
  52. package/dist/static/images/educhat.ico +0 -0
  53. package/dist/static/images/educhat.png +0 -0
  54. package/dist/static/images/guest.png +0 -0
  55. package/dist/static/images/student.png +0 -0
  56. package/dist/static/images/teacher.png +0 -0
  57. package/dist/static/images/tuni/Tampere_University_logo.svg +34 -0
  58. package/dist/static/images/tuni/face-purple-small.png +0 -0
  59. package/dist/static/images/tuni/tuni.png +0 -0
  60. package/dist/vite-env.d.ts +1 -0
  61. package/dist/vite.svg +1 -0
  62. package/package.json +40 -14
@@ -0,0 +1,44 @@
1
+ /** @format */
2
+ import { Course, CourseRaw } from '../store/useCourseStore';
3
+ /**
4
+ * @description Helper function to make a GET request to retrieve the current course
5
+ * @returns Promise<Course> - The current course object
6
+ */
7
+ export declare function getCurrentCourse(): Promise<Course>;
8
+ /**
9
+ *
10
+ * @description Helper function to make a GET request to retrieve courses
11
+ * @returns Promise<Course[]> - The list of courses
12
+ */
13
+ export declare function getCourses(): Promise<Course[]>;
14
+ /**
15
+ * @description Helper function to make a GET request to retrieve a course by ID
16
+ * @param courseId - The ID of the course to retrieve
17
+ * @returns Promise<Course> - The course object
18
+ */
19
+ export declare function getCourseById(courseId: string): Promise<Course>;
20
+ /**
21
+ * @description Helper function to make a GET request to retrieve a course by URL
22
+ * @param url - The URL of the course to retrieve
23
+ * @returns Promise<Course> - The course object
24
+ */
25
+ export declare function getCourseByUrl(url: string): Promise<Course>;
26
+ /**
27
+ * @description Helper function to make a POST request to add a new course
28
+ * **Should only be used by teachers or admins!**
29
+ * @param courseData - The course data to add
30
+ * @returns Added course object
31
+ */
32
+ export declare function addCourse(courseData: CourseRaw): Promise<Course>;
33
+ /**
34
+ * @description Helper function to make a PUT request to update a course
35
+ * @param courseData - The course data to update
36
+ * @returns Updated course object
37
+ */
38
+ export declare function updateCourse(courseData: Course): Promise<Course>;
39
+ /**
40
+ * @description Helper function to make a DELETE request to delete a course
41
+ * @param courseId - The ID of the course to delete
42
+ * @returns Deleted course object
43
+ */
44
+ export declare function deleteCourse(courseId: string): Promise<Course>;
@@ -0,0 +1,5 @@
1
+ /** @format */
2
+ import { UserData } from '../store/useUserStore';
3
+ export declare const getCurrentUser: (courseId?: string) => Promise<UserData>;
4
+ export declare const getUsers: (courseId?: string) => Promise<UserData[]>;
5
+ export declare const logoutUser: () => Promise<void>;
@@ -0,0 +1,15 @@
1
+ /** @format */
2
+ export interface Course {
3
+ id: string;
4
+ title: string;
5
+ description: string;
6
+ createdAt: string;
7
+ ltiLoginUrl: string;
8
+ updatedAt: string;
9
+ }
10
+ export interface CourseRaw {
11
+ title: string;
12
+ description: string;
13
+ }
14
+ declare const useCourseStore: any;
15
+ export default useCourseStore;
@@ -0,0 +1,3 @@
1
+ export type dialogType = string | null;
2
+ declare const useDialogStore: any;
3
+ export default useDialogStore;
@@ -0,0 +1,28 @@
1
+ /** @format */
2
+ import { SvgIconComponent } from '@mui/icons-material';
3
+ interface NavigationItemBase {
4
+ kind: 'header' | 'page';
5
+ title: string;
6
+ actionFC?: React.FC;
7
+ }
8
+ export interface ToolMetadata {
9
+ description?: string;
10
+ forRoles?: string[];
11
+ isRootTool?: boolean;
12
+ }
13
+ export interface NavigationHeaderItem extends NavigationItemBase {
14
+ kind: 'header';
15
+ }
16
+ export interface NavigationPageStoreItem extends NavigationItemBase {
17
+ kind: 'page';
18
+ segment: string;
19
+ iconFC?: SvgIconComponent;
20
+ icon?: JSX.Element;
21
+ children?: NavigationPageStoreItem[];
22
+ action?: JSX.Element;
23
+ metadata?: ToolMetadata;
24
+ }
25
+ export type NavigationStoreItem = NavigationHeaderItem | NavigationPageStoreItem;
26
+ export declare const useNavigationStore: any;
27
+ export declare const filterNavigationByRole: (role: string) => NavigationStoreItem[];
28
+ export {};
@@ -0,0 +1,15 @@
1
+ /** @format */
2
+ export type NotificationRaw = {
3
+ type: string;
4
+ message: string;
5
+ singular?: boolean;
6
+ singularId?: string;
7
+ };
8
+ export type Notification = {
9
+ type: string;
10
+ message: string;
11
+ id: string;
12
+ singular?: boolean;
13
+ singularId?: string;
14
+ };
15
+ export declare const useNotificationStore: any;
@@ -0,0 +1,26 @@
1
+ /** @format */
2
+ import { fetchState } from '../interfaces';
3
+ export type userId = string;
4
+ export type role = 'student' | 'teacher' | 'guest';
5
+ export interface UserData {
6
+ id: userId;
7
+ name: string;
8
+ email: string;
9
+ role: role;
10
+ image?: string;
11
+ color?: string;
12
+ }
13
+ export interface UserState {
14
+ fetchState: fetchState;
15
+ user: UserData | null;
16
+ testUsers: UserData[];
17
+ users: UserData[];
18
+ setUser: (user: UserData) => void;
19
+ setTestUsers: (users: UserData[]) => void;
20
+ getUser: (courseId?: string) => void;
21
+ changeRole: (role: 'student' | 'teacher') => void;
22
+ clearUser: () => void;
23
+ getUsers: () => void;
24
+ logout: () => Promise<void>;
25
+ }
26
+ export declare const useUserStore: any;
@@ -0,0 +1,2 @@
1
+ /** @format */
2
+ export declare const EduMLTheme: any;
@@ -0,0 +1,15 @@
1
+ /** @format */
2
+ import { Component, ErrorInfo, ReactNode } from 'react';
3
+ interface Props {
4
+ children: ReactNode;
5
+ }
6
+ interface State {
7
+ hasError: boolean;
8
+ }
9
+ declare class ErrorBoundary extends Component<Props, State> {
10
+ state: State;
11
+ static getDerivedStateFromError(_: Error): State;
12
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
13
+ render(): import("react/jsx-runtime").JSX.Element | null | undefined;
14
+ }
15
+ export default ErrorBoundary;
@@ -0,0 +1,8 @@
1
+ type NullStateWarningProps = {
2
+ states: {
3
+ [key: string]: any;
4
+ }[];
5
+ children: React.ReactNode;
6
+ };
7
+ declare const NullStateWarning: ({ states, children }: NullStateWarningProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default NullStateWarning;
@@ -0,0 +1,26 @@
1
+ /** @format */
2
+
3
+ import { ReactElement } from 'react';
4
+ import { SvgIconComponent } from '@mui/icons-material';
5
+
6
+ declare module '@toolpad/core' {
7
+ export interface NavigationStoreItem {
8
+ icon: ReactElement;
9
+ children?: NavigationStoreItem[];
10
+ kind: string;
11
+ segment: string;
12
+ iconFC?: SvgIconComponent;
13
+ action?: ReactElement;
14
+ metadata?: Record<string, unknown>;
15
+ title: string;
16
+ actionFC?: React.FC;
17
+ }
18
+
19
+ export interface NavigationPageStoreItem extends NavigationStoreItem {
20
+ kind: 'page';
21
+ }
22
+
23
+ export interface NavigationHeaderItem extends NavigationStoreItem {
24
+ kind: 'header';
25
+ }
26
+ }
@@ -0,0 +1,3 @@
1
+ /** @format */
2
+
3
+ /// <reference types="vite/client" />
@@ -0,0 +1,17 @@
1
+ /** @format */
2
+ /**
3
+ * Converts a camelCase string to underscore_case
4
+ */
5
+ export declare const camelCaseToUnderscore: (str: string) => string;
6
+ /**
7
+ * Converts an underscore_case string to camelCase
8
+ */
9
+ export declare const underscoreToCamelCase: (str: string) => string;
10
+ /**
11
+ * Deep converts object keys from camelCase to underscore_case
12
+ */
13
+ export declare const convertObjectKeysToCamelCase: <T>(obj: T) => T;
14
+ /**
15
+ * Deep converts object keys from underscore_case to camelCase
16
+ */
17
+ export declare const convertObjectKeysToUnderscore: <T>(obj: T) => T;
@@ -0,0 +1 @@
1
+ export declare const slugify: (text: string) => string;