@mathwiz/ui-components 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +69 -0
- package/dist/App.d.ts +4 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/components/Button/Button.d.ts +5 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Button/types.d.ts +19 -0
- package/dist/components/Button/types.d.ts.map +1 -0
- package/dist/components/ContentAccordion/ContentAccordion.d.ts +5 -0
- package/dist/components/ContentAccordion/ContentAccordion.d.ts.map +1 -0
- package/dist/components/ContentAccordion/index.d.ts +3 -0
- package/dist/components/ContentAccordion/index.d.ts.map +1 -0
- package/dist/components/ContentAccordion/types.d.ts +44 -0
- package/dist/components/ContentAccordion/types.d.ts.map +1 -0
- package/dist/components/GradeNavigation.d.ts +16 -0
- package/dist/components/GradeNavigation.d.ts.map +1 -0
- package/dist/components/Header.d.ts +4 -0
- package/dist/components/Header.d.ts.map +1 -0
- package/dist/components/HeroUISideNavigation.d.ts +17 -0
- package/dist/components/HeroUISideNavigation.d.ts.map +1 -0
- package/dist/components/MainContent.d.ts +4 -0
- package/dist/components/MainContent.d.ts.map +1 -0
- package/dist/components/MathWizHeader/MathWizHeader.d.ts +6 -0
- package/dist/components/MathWizHeader/MathWizHeader.d.ts.map +1 -0
- package/dist/components/MathWizHeader/MathWizHeader.types.backup.d.ts +34 -0
- package/dist/components/MathWizHeader/MathWizHeader.types.backup.d.ts.map +1 -0
- package/dist/components/MathWizHeader/MathWizHeader.types.d.ts +35 -0
- package/dist/components/MathWizHeader/MathWizHeader.types.d.ts.map +1 -0
- package/dist/components/SideNavigation.d.ts +24 -0
- package/dist/components/SideNavigation.d.ts.map +1 -0
- package/dist/components/SideNavigationHU.d.ts +17 -0
- package/dist/components/SideNavigationHU.d.ts.map +1 -0
- package/dist/components/Sidebar/Sidebar.d.ts +5 -0
- package/dist/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/components/Sidebar/index.d.ts +4 -0
- package/dist/components/Sidebar/index.d.ts.map +1 -0
- package/dist/components/Sidebar/types.d.ts +43 -0
- package/dist/components/Sidebar/types.d.ts.map +1 -0
- package/dist/components/Submenu/Submenu.d.ts +35 -0
- package/dist/components/Submenu/Submenu.d.ts.map +1 -0
- package/dist/components/UserProfile/UserProfile.d.ts +33 -0
- package/dist/components/UserProfile/UserProfile.d.ts.map +1 -0
- package/dist/components/UserProfile/index.d.ts +3 -0
- package/dist/components/UserProfile/index.d.ts.map +1 -0
- package/dist/components/gradeNavigate/GradeNavigatePage.d.ts +5 -0
- package/dist/components/gradeNavigate/GradeNavigatePage.d.ts.map +1 -0
- package/dist/components/gradeNavigate/GradeNavigatePagePresentational.d.ts +20 -0
- package/dist/components/gradeNavigate/GradeNavigatePagePresentational.d.ts.map +1 -0
- package/dist/components/gradeNavigate/HeaderContainer.d.ts +13 -0
- package/dist/components/gradeNavigate/HeaderContainer.d.ts.map +1 -0
- package/dist/components/gradeNavigate/HeaderPresentational.d.ts +23 -0
- package/dist/components/gradeNavigate/HeaderPresentational.d.ts.map +1 -0
- package/dist/components/gradeNavigate/index.d.ts +7 -0
- package/dist/components/gradeNavigate/index.d.ts.map +1 -0
- package/dist/components/radarAbility/AbilityAssessmentDashboard/AbilityAssessmentDashboard.d.ts +4 -0
- package/dist/components/radarAbility/AbilityAssessmentDashboard/AbilityAssessmentDashboard.d.ts.map +1 -0
- package/dist/components/radarAbility/AbilityAssessmentDashboard/AbilityAssessmentDashboard.storybook.d.ts +11 -0
- package/dist/components/radarAbility/AbilityAssessmentDashboard/AbilityAssessmentDashboard.storybook.d.ts.map +1 -0
- package/dist/components/radarAbility/AbilityProgressBar/AbilityProgressBar.d.ts +5 -0
- package/dist/components/radarAbility/AbilityProgressBar/AbilityProgressBar.d.ts.map +1 -0
- package/dist/components/radarAbility/PersonalizedAdvicePanel/PersonalizedAdvicePanel.d.ts +5 -0
- package/dist/components/radarAbility/PersonalizedAdvicePanel/PersonalizedAdvicePanel.d.ts.map +1 -0
- package/dist/components/radarAbility/RadarChart/RadarChart.d.ts +5 -0
- package/dist/components/radarAbility/RadarChart/RadarChart.d.ts.map +1 -0
- package/dist/components/radarAbility/RecommendationCard/RecommendationCard.d.ts +5 -0
- package/dist/components/radarAbility/RecommendationCard/RecommendationCard.d.ts.map +1 -0
- package/dist/data/courseData.d.ts +17 -0
- package/dist/data/courseData.d.ts.map +1 -0
- package/dist/data/mockData.d.ts +16 -0
- package/dist/data/mockData.d.ts.map +1 -0
- package/dist/data/userCourseProgress.d.ts +36 -0
- package/dist/data/userCourseProgress.d.ts.map +1 -0
- package/dist/data/usergradeuintsnav.d.ts +32 -0
- package/dist/data/usergradeuintsnav.d.ts.map +1 -0
- package/dist/data/usergradeunitsProgressData.d.ts +29 -0
- package/dist/data/usergradeunitsProgressData.d.ts.map +1 -0
- package/dist/index-BjziaeiG.js +11721 -0
- package/dist/index-BjziaeiG.js.map +1 -0
- package/dist/index-BzHrHPIj.js +2596 -0
- package/dist/index-BzHrHPIj.js.map +1 -0
- package/dist/index.cjs +77 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +41 -0
- package/dist/index.mjs.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/mockServiceWorker.js +344 -0
- package/dist/mocks/browser.d.ts +2 -0
- package/dist/mocks/browser.d.ts.map +1 -0
- package/dist/mocks/handlers.d.ts +82 -0
- package/dist/mocks/handlers.d.ts.map +1 -0
- package/dist/mocks/server.d.ts +2 -0
- package/dist/mocks/server.d.ts.map +1 -0
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserContext.d.ts +8 -0
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserContext.d.ts.map +1 -0
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.d.ts +5 -0
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.d.ts.map +1 -0
- package/dist/pages/GradeUnitBrowserPage/index.d.ts +4 -0
- package/dist/pages/GradeUnitBrowserPage/index.d.ts.map +1 -0
- package/dist/pages/GradeUnitBrowserPage/types.d.ts +43 -0
- package/dist/pages/GradeUnitBrowserPage/types.d.ts.map +1 -0
- package/dist/services/courseService.d.ts +55 -0
- package/dist/services/courseService.d.ts.map +1 -0
- package/dist/services/radarAbilityService.d.ts +12 -0
- package/dist/services/radarAbilityService.d.ts.map +1 -0
- package/dist/setupTests.d.ts +2 -0
- package/dist/setupTests.d.ts.map +1 -0
- package/dist/store/courseStore.d.ts +3 -0
- package/dist/store/courseStore.d.ts.map +1 -0
- package/dist/store/radarAbilityStore.d.ts +13 -0
- package/dist/store/radarAbilityStore.d.ts.map +1 -0
- package/dist/stories/Button.d.ts +16 -0
- package/dist/stories/Button.d.ts.map +1 -0
- package/dist/stories/Header.d.ts +13 -0
- package/dist/stories/Header.d.ts.map +1 -0
- package/dist/stories/Page.d.ts +4 -0
- package/dist/stories/Page.d.ts.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/types/index.d.ts +69 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/radarAbility.d.ts +38 -0
- package/dist/types/radarAbility.d.ts.map +1 -0
- package/dist/ui-components.css +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +109 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 moleusher
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# React + TypeScript + Vite
|
|
2
|
+
|
|
3
|
+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
|
4
|
+
|
|
5
|
+
Currently, two official plugins are available:
|
|
6
|
+
|
|
7
|
+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
|
|
8
|
+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
|
9
|
+
|
|
10
|
+
## Expanding the ESLint configuration
|
|
11
|
+
|
|
12
|
+
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
export default tseslint.config([
|
|
16
|
+
globalIgnores(['dist']),
|
|
17
|
+
{
|
|
18
|
+
files: ['**/*.{ts,tsx}'],
|
|
19
|
+
extends: [
|
|
20
|
+
// Other configs...
|
|
21
|
+
|
|
22
|
+
// Remove tseslint.configs.recommended and replace with this
|
|
23
|
+
...tseslint.configs.recommendedTypeChecked,
|
|
24
|
+
// Alternatively, use this for stricter rules
|
|
25
|
+
...tseslint.configs.strictTypeChecked,
|
|
26
|
+
// Optionally, add this for stylistic rules
|
|
27
|
+
...tseslint.configs.stylisticTypeChecked,
|
|
28
|
+
|
|
29
|
+
// Other configs...
|
|
30
|
+
],
|
|
31
|
+
languageOptions: {
|
|
32
|
+
parserOptions: {
|
|
33
|
+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
|
34
|
+
tsconfigRootDir: import.meta.dirname,
|
|
35
|
+
},
|
|
36
|
+
// other options...
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
])
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
|
|
43
|
+
|
|
44
|
+
```js
|
|
45
|
+
// eslint.config.js
|
|
46
|
+
import reactX from 'eslint-plugin-react-x'
|
|
47
|
+
import reactDom from 'eslint-plugin-react-dom'
|
|
48
|
+
|
|
49
|
+
export default tseslint.config([
|
|
50
|
+
globalIgnores(['dist']),
|
|
51
|
+
{
|
|
52
|
+
files: ['**/*.{ts,tsx}'],
|
|
53
|
+
extends: [
|
|
54
|
+
// Other configs...
|
|
55
|
+
// Enable lint rules for React
|
|
56
|
+
reactX.configs['recommended-typescript'],
|
|
57
|
+
// Enable lint rules for React DOM
|
|
58
|
+
reactDom.configs.recommended,
|
|
59
|
+
],
|
|
60
|
+
languageOptions: {
|
|
61
|
+
parserOptions: {
|
|
62
|
+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
|
63
|
+
tsconfigRootDir: import.meta.dirname,
|
|
64
|
+
},
|
|
65
|
+
// other options...
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
])
|
|
69
|
+
```
|
package/dist/App.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAIA,OAAO,WAAW,CAAC;AAEnB,iBAAS,GAAG,4CAuBX;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAqCxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes } from 'react';
|
|
2
|
+
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/** 学习进度 (0-100),用于自动确定按钮样式 */
|
|
4
|
+
progress?: number;
|
|
5
|
+
/** 按钮变体样式 */
|
|
6
|
+
variant?: 'solid' | 'bordered' | 'light';
|
|
7
|
+
/** 按钮尺寸 */
|
|
8
|
+
size?: 'sm' | 'md' | 'lg';
|
|
9
|
+
/** 边框圆角 */
|
|
10
|
+
radius?: 'sm' | 'md' | 'lg';
|
|
11
|
+
/** 自定义类名 */
|
|
12
|
+
className?: string;
|
|
13
|
+
/** 子元素 */
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
/** 加载状态 */
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export type GetButtonColorClassFn = (progress: number) => string;
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACzC,WAAW;IACX,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,WAAW;IACX,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentAccordion.d.ts","sourceRoot":"","sources":["../../../src/components/ContentAccordion/ContentAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,qBAAqB,EAAuC,MAAM,SAAS,CAAC;AAE1F,OAAO,wBAAwB,CAAC;AA0FhC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAoD5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ContentAccordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { KnowledgeItem, Lesson, Unit } from '../../types';
|
|
2
|
+
export interface ContentAccordionProps {
|
|
3
|
+
/** 当前学习单元数据 */
|
|
4
|
+
unit: Unit | null;
|
|
5
|
+
/** 激活的课程ID列表 */
|
|
6
|
+
activeLessonIds: string[];
|
|
7
|
+
/** 切换课程激活状态的函数 */
|
|
8
|
+
onToggleLesson: (lessonId: string) => void;
|
|
9
|
+
/** 点击学习按钮的回调 */
|
|
10
|
+
onLearnAction: (knowledgeItem: KnowledgeItem) => void;
|
|
11
|
+
/** 加载状态 */
|
|
12
|
+
loading?: boolean;
|
|
13
|
+
/** 自定义类名 */
|
|
14
|
+
className?: string;
|
|
15
|
+
/** 空状态显示内容 */
|
|
16
|
+
emptyState?: React.ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export interface ContentAccordionState {
|
|
19
|
+
/** 内部展开状态管理 */
|
|
20
|
+
expandedLessons: Set<string>;
|
|
21
|
+
/** 动画状态 */
|
|
22
|
+
isAnimating: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface LessonItemProps {
|
|
25
|
+
/** 课程数据 */
|
|
26
|
+
lesson: Lesson;
|
|
27
|
+
/** 是否展开状态 */
|
|
28
|
+
isExpanded: boolean;
|
|
29
|
+
/** 切换展开状态回调 */
|
|
30
|
+
onToggle: (lessonId: string) => void;
|
|
31
|
+
/** 学习按钮点击回调 */
|
|
32
|
+
onLearnAction: (knowledgeItem: KnowledgeItem) => void;
|
|
33
|
+
}
|
|
34
|
+
export interface KnowledgeCardProps {
|
|
35
|
+
/** 知识点数据 */
|
|
36
|
+
knowledgeItem: KnowledgeItem;
|
|
37
|
+
/** 学习按钮点击回调 */
|
|
38
|
+
onLearnAction: (knowledgeItem: KnowledgeItem) => void;
|
|
39
|
+
}
|
|
40
|
+
export type GetButtonTextFn = (progress: number) => string;
|
|
41
|
+
export type CalculateLessonProgressFn = (knowledgeItems: KnowledgeItem[]) => number;
|
|
42
|
+
export declare const getButtonText: GetButtonTextFn;
|
|
43
|
+
export declare const calculateLessonProgress: CalculateLessonProgressFn;
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ContentAccordion/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,eAAe;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,gBAAgB;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB;IAClB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB;IAChB,aAAa,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IACtD,WAAW;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe;IACf,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,WAAW;IACX,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,aAAa;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe;IACf,aAAa,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY;IACZ,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe;IACf,aAAa,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;CACvD;AAGD,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AAC3D,MAAM,MAAM,yBAAyB,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,MAAM,CAAC;AAGpF,eAAO,MAAM,aAAa,EAAE,eAI3B,CAAC;AAGF,eAAO,MAAM,uBAAuB,EAAE,yBAIrC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './components.css';
|
|
3
|
+
interface GradeNavigationProps {
|
|
4
|
+
grades: Array<{
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
level: string;
|
|
8
|
+
description: string;
|
|
9
|
+
color: string;
|
|
10
|
+
}>;
|
|
11
|
+
onGradeSelect?: (gradeId: string) => void;
|
|
12
|
+
selectedGrade?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const GradeNavigation: React.FC<GradeNavigationProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=GradeNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GradeNavigation.d.ts","sourceRoot":"","sources":["../../src/components/GradeNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAE1B,UAAU,oBAAoB;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAwB1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAuFnB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface Unit {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
unitNumber: string;
|
|
6
|
+
isLocked?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface HeroUISideNavigationProps {
|
|
9
|
+
units: Unit[];
|
|
10
|
+
currentUnit?: string;
|
|
11
|
+
onUnitSelect?: (unitId: string) => void;
|
|
12
|
+
courseTitle?: string;
|
|
13
|
+
courseLevel?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const HeroUISideNavigation: React.FC<HeroUISideNavigationProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=HeroUISideNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroUISideNavigation.d.ts","sourceRoot":"","sources":["../../src/components/HeroUISideNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,yBAAyB;IACjC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAqFpE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MainContent.d.ts","sourceRoot":"","sources":["../../src/components/MainContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAIzC,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAiGxB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MathWizHeaderProps } from './MathWizHeader.types';
|
|
3
|
+
import './MathWizHeader.css';
|
|
4
|
+
declare const _default: React.NamedExoticComponent<MathWizHeaderProps>;
|
|
5
|
+
export default _default;
|
|
6
|
+
//# sourceMappingURL=MathWizHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathWizHeader.d.ts","sourceRoot":"","sources":["../../../src/components/MathWizHeader/MathWizHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,uBAAuB,CAAC;AAC7E,OAAO,qBAAqB,CAAC;;AA+H7B,wBAoBG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { SubmenuItem } from '../Submenu/Submenu';
|
|
2
|
+
import type { UserData } from '../../types';
|
|
3
|
+
export interface ExploreItem {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
status?: string;
|
|
7
|
+
href?: string;
|
|
8
|
+
target?: string;
|
|
9
|
+
onClick?: (item: ExploreItem) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface MathWizHeaderProps {
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
logoHref?: string;
|
|
15
|
+
logoText?: string;
|
|
16
|
+
onLogoClick?: () => void;
|
|
17
|
+
exploreItems?: ExploreItem[];
|
|
18
|
+
exploreMenuOpen?: boolean;
|
|
19
|
+
onExploreMenuToggle?: (open: boolean) => void;
|
|
20
|
+
onExploreItemClick?: (item: ExploreItem) => void;
|
|
21
|
+
renderExploreItem?: (item: ExploreItem) => React.ReactNode;
|
|
22
|
+
userData?: UserData;
|
|
23
|
+
userMenuItems?: SubmenuItem[];
|
|
24
|
+
onUserMenuItemClick?: (itemId: string) => void;
|
|
25
|
+
onLogout?: () => void;
|
|
26
|
+
apiConfig?: any;
|
|
27
|
+
headerClassName?: string;
|
|
28
|
+
logoClassName?: string;
|
|
29
|
+
exploreClassName?: string;
|
|
30
|
+
userProfileClassName?: string;
|
|
31
|
+
'aria-label'?: string;
|
|
32
|
+
'aria-labelledby'?: string;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=MathWizHeader.types.backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathWizHeader.types.backup.d.ts","sourceRoot":"","sources":["../../../src/components/MathWizHeader/MathWizHeader.types.backup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACvC;AAGD,MAAM,WAAW,kBAAkB;IAEjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAGzB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IAG3D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;IAGhB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { SubmenuItem } from '../Submenu/Submenu';
|
|
2
|
+
import type { UserData } from '../../types';
|
|
3
|
+
export interface ExploreItem {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
status?: string;
|
|
7
|
+
href?: string;
|
|
8
|
+
target?: string;
|
|
9
|
+
onClick?: (item: ExploreItem) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface MathWizHeaderProps {
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
logoHref?: string;
|
|
15
|
+
logoText?: string;
|
|
16
|
+
onLogoClick?: () => void;
|
|
17
|
+
exploreItems?: ExploreItem[];
|
|
18
|
+
exploreMenuOpen?: boolean;
|
|
19
|
+
onExploreMenuToggle?: (open: boolean) => void;
|
|
20
|
+
onExploreItemClick?: (item: ExploreItem) => void;
|
|
21
|
+
renderExploreItem?: (item: ExploreItem) => React.ReactNode;
|
|
22
|
+
userData?: UserData;
|
|
23
|
+
userMenuItems?: SubmenuItem[];
|
|
24
|
+
onUserMenuItemClick?: (itemId: string) => void;
|
|
25
|
+
onLogout?: () => void;
|
|
26
|
+
isLoading?: boolean;
|
|
27
|
+
error?: Error | null;
|
|
28
|
+
headerClassName?: string;
|
|
29
|
+
logoClassName?: string;
|
|
30
|
+
exploreClassName?: string;
|
|
31
|
+
userProfileClassName?: string;
|
|
32
|
+
'aria-label'?: string;
|
|
33
|
+
'aria-labelledby'?: string;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=MathWizHeader.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathWizHeader.types.d.ts","sourceRoot":"","sources":["../../../src/components/MathWizHeader/MathWizHeader.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACvC;AAGD,MAAM,WAAW,kBAAkB;IAEjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAGzB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IAG3D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAGtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAGrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './components.css';
|
|
3
|
+
interface Lesson {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
duration?: string;
|
|
7
|
+
isCompleted?: boolean;
|
|
8
|
+
isLocked?: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface Unit {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
lessons: Lesson[];
|
|
14
|
+
}
|
|
15
|
+
interface SideNavigationProps {
|
|
16
|
+
units: Unit[];
|
|
17
|
+
currentLesson?: string;
|
|
18
|
+
onLessonSelect?: (lessonId: string) => void;
|
|
19
|
+
onUnitToggle?: (unitId: string) => void;
|
|
20
|
+
expandedUnits?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare const SideNavigation: React.FC<SideNavigationProps>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=SideNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavigation.d.ts","sourceRoot":"","sources":["../../src/components/SideNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAE1B,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqDxD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './components.css';
|
|
3
|
+
interface Unit {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
isLocked?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface SideNavigationHUProps {
|
|
9
|
+
units: Unit[];
|
|
10
|
+
currentUnit?: string;
|
|
11
|
+
onUnitSelect?: (unitId: string) => void;
|
|
12
|
+
courseTitle?: string;
|
|
13
|
+
courseLevel?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const SideNavigationHU: React.FC<SideNavigationHUProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=SideNavigationHU.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavigationHU.d.ts","sourceRoot":"","sources":["../../src/components/SideNavigationHU.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,kBAAkB,CAAC;AAE1B,UAAU,IAAI;IACV,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,qBAAqB;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0D5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,SAAS,CAAC;AAE9D,OAAO,eAAe,CAAC;AAEvB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAoI1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface UnitProgressData {
|
|
2
|
+
unitId: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
moduleCategory: string;
|
|
6
|
+
estimatedDuration: string;
|
|
7
|
+
totalLessons: number;
|
|
8
|
+
completedLessons: number;
|
|
9
|
+
progressPercentage: number;
|
|
10
|
+
status: 'not-started' | 'in-progress' | 'completed';
|
|
11
|
+
lastAccessed?: string;
|
|
12
|
+
isActive: boolean;
|
|
13
|
+
route: string;
|
|
14
|
+
icon?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface UserGradeUnitsProgressData {
|
|
17
|
+
userId: string;
|
|
18
|
+
courseId: string;
|
|
19
|
+
courseTitle: string;
|
|
20
|
+
courseLevel: number;
|
|
21
|
+
totalUnits: number;
|
|
22
|
+
completedUnits: number;
|
|
23
|
+
overallProgress: number;
|
|
24
|
+
status: 'not-started' | 'in-progress' | 'completed';
|
|
25
|
+
lastAccessed?: string;
|
|
26
|
+
units: UnitProgressData[];
|
|
27
|
+
}
|
|
28
|
+
export interface SidebarProps {
|
|
29
|
+
data: UserGradeUnitsProgressData | null;
|
|
30
|
+
loading?: boolean;
|
|
31
|
+
error?: Error | null;
|
|
32
|
+
collapsed?: boolean;
|
|
33
|
+
onToggleCollapse?: () => void;
|
|
34
|
+
activeUnitId?: string | null;
|
|
35
|
+
onUnitSelect?: (unitId: string) => void;
|
|
36
|
+
renderUnitItem?: (unit: UnitProgressData, progress?: UnitProgressData) => React.ReactNode;
|
|
37
|
+
className?: string;
|
|
38
|
+
unitItemClassName?: string;
|
|
39
|
+
style?: React.CSSProperties;
|
|
40
|
+
unitItemStyle?: React.CSSProperties;
|
|
41
|
+
}
|
|
42
|
+
export declare const getProgressColor: (status: UnitProgressData["status"]) => "success" | "primary" | "default";
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAE3B,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAGxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC;IAG1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACrC;AAGD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,gBAAgB,CAAC,QAAQ,CAAC,KAAG,SAAS,GAAG,SAAS,GAAG,SAU7F,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Submenu.css';
|
|
3
|
+
export interface SubmenuItem {
|
|
4
|
+
id: string | number;
|
|
5
|
+
label?: React.ReactNode;
|
|
6
|
+
value?: unknown;
|
|
7
|
+
icon?: React.ReactNode;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
onClick?: (item: SubmenuItem) => void;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface SubmenuProps {
|
|
13
|
+
trigger: React.ReactNode;
|
|
14
|
+
items: SubmenuItem[];
|
|
15
|
+
position?: 'top' | 'bottom' | 'left' | 'right' | 'auto';
|
|
16
|
+
alignment?: 'start' | 'center' | 'end';
|
|
17
|
+
openDelay?: number;
|
|
18
|
+
closeDelay?: number;
|
|
19
|
+
onOpen?: () => void;
|
|
20
|
+
onClose?: () => void;
|
|
21
|
+
renderItem?: (item: SubmenuItem, config: TItemConfig) => React.ReactNode;
|
|
22
|
+
itemConfig?: TItemConfig;
|
|
23
|
+
className?: string;
|
|
24
|
+
menuClassName?: string;
|
|
25
|
+
itemClassName?: string;
|
|
26
|
+
activeItemClassName?: string;
|
|
27
|
+
}
|
|
28
|
+
type TItemConfig = {
|
|
29
|
+
currentUserRole?: 'guest' | 'student' | 'teacher' | 'admin';
|
|
30
|
+
theme?: 'light' | 'dark';
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
declare const Submenu: React.FC<SubmenuProps>;
|
|
34
|
+
export default Submenu;
|
|
35
|
+
//# sourceMappingURL=Submenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Submenu.d.ts","sourceRoot":"","sources":["../../../src/components/Submenu/Submenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACvD,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAA;IACxE,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,KAAK,WAAW,GAAG;IACjB,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;IAC3D,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA4GnC,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SubmenuItem } from "../Submenu/Submenu";
|
|
3
|
+
import type { UserData } from '../../types';
|
|
4
|
+
import './UserProfile.css';
|
|
5
|
+
export interface ApiConfig {
|
|
6
|
+
baseURL: string;
|
|
7
|
+
endpoints: {
|
|
8
|
+
userProfile: string;
|
|
9
|
+
};
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export interface UserProfileProps {
|
|
13
|
+
userId?: string;
|
|
14
|
+
userName?: string;
|
|
15
|
+
userAvatar?: string;
|
|
16
|
+
apiConfig?: ApiConfig;
|
|
17
|
+
menuItems?: SubmenuItem[];
|
|
18
|
+
avatarSize?: 'sm' | 'md' | 'lg';
|
|
19
|
+
avatarClassName?: string;
|
|
20
|
+
userNameClassName?: string;
|
|
21
|
+
containerClassName?: string;
|
|
22
|
+
isLoading?: boolean;
|
|
23
|
+
error?: Error | null;
|
|
24
|
+
onMenuOpen?: () => void;
|
|
25
|
+
onMenuClose?: () => void;
|
|
26
|
+
onMenuItemClick?: (itemId: string) => void;
|
|
27
|
+
onLogout?: () => void;
|
|
28
|
+
renderMenuItem?: (item: SubmenuItem, userData: UserData) => React.ReactNode;
|
|
29
|
+
renderUserInfo?: (userData: UserData) => React.ReactNode;
|
|
30
|
+
}
|
|
31
|
+
declare const UserProfile: React.FC<UserProfileProps>;
|
|
32
|
+
export default UserProfile;
|
|
33
|
+
//# sourceMappingURL=UserProfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserProfile.d.ts","sourceRoot":"","sources":["../../../src/components/UserProfile/UserProfile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,mBAAmB,CAAC;AAS3B,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAWD,MAAM,WAAW,gBAAgB;IAE/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAG1B,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAGtB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5E,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;CAC1D;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+I3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UserProfile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GradeNavigatePage.d.ts","sourceRoot":"","sources":["../../../src/components/gradeNavigate/GradeNavigatePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,WAAW,sBAAsB;CAEtC;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8H9D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface GradeNavigatePagePresentationalProps {
|
|
3
|
+
curriculumData: any;
|
|
4
|
+
currentUnitId: string | null;
|
|
5
|
+
currentLessonId: string | null;
|
|
6
|
+
activeLessonIds: string[];
|
|
7
|
+
sidebarCollapsed: boolean;
|
|
8
|
+
exploreMenuOpen: boolean;
|
|
9
|
+
onUnitSelect: (unitId: string) => void;
|
|
10
|
+
onLessonToggle: (lessonId: string) => void;
|
|
11
|
+
onSidebarToggle: () => void;
|
|
12
|
+
onExploreMenuToggle: (open?: boolean) => void;
|
|
13
|
+
onExploreItemClick: (item: any) => void;
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
error: {
|
|
16
|
+
message: string;
|
|
17
|
+
} | null;
|
|
18
|
+
}
|
|
19
|
+
export declare const GradeNavigatePagePresentational: React.FC<GradeNavigatePagePresentationalProps>;
|
|
20
|
+
//# sourceMappingURL=GradeNavigatePagePresentational.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GradeNavigatePagePresentational.d.ts","sourceRoot":"","sources":["../../../src/components/gradeNavigate/GradeNavigatePagePresentational.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,oCAAoC;IACnD,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC,oCAAoC,CA8N1F,CAAC"}
|