@mathwiz/ui-components 0.1.7 → 0.1.9
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/README.md +11 -1
- package/dist/App.d.ts.map +1 -1
- package/dist/components/EquationRender/EquationRender.d.ts +6 -0
- package/dist/components/EquationRender/EquationRender.d.ts.map +1 -0
- package/dist/components/EquationRender/index.d.ts +3 -0
- package/dist/components/EquationRender/index.d.ts.map +1 -0
- package/dist/components/EquationRender/types.d.ts +40 -0
- package/dist/components/EquationRender/types.d.ts.map +1 -0
- package/dist/components/MathCard/MathCard.d.ts +14 -0
- package/dist/components/MathCard/MathCard.d.ts.map +1 -0
- package/dist/components/MathCard/MathCard.types.d.ts +151 -0
- package/dist/components/MathCard/MathCard.types.d.ts.map +1 -0
- package/dist/components/MathCard/components/AnswerInput.d.ts +4 -0
- package/dist/components/MathCard/components/AnswerInput.d.ts.map +1 -0
- package/dist/components/MathCard/components/Banner.d.ts +4 -0
- package/dist/components/MathCard/components/Banner.d.ts.map +1 -0
- package/dist/components/MathCard/components/Divider.d.ts +4 -0
- package/dist/components/MathCard/components/Divider.d.ts.map +1 -0
- package/dist/components/MathCard/components/ErrorState.d.ts +4 -0
- package/dist/components/MathCard/components/ErrorState.d.ts.map +1 -0
- package/dist/components/MathCard/components/Explanation.d.ts +4 -0
- package/dist/components/MathCard/components/Explanation.d.ts.map +1 -0
- package/dist/components/MathCard/components/LoadingState.d.ts +4 -0
- package/dist/components/MathCard/components/LoadingState.d.ts.map +1 -0
- package/dist/components/MathCard/components/Question.d.ts +4 -0
- package/dist/components/MathCard/components/Question.d.ts.map +1 -0
- package/dist/components/MathCard/components/ReviewContent.d.ts +4 -0
- package/dist/components/MathCard/components/ReviewContent.d.ts.map +1 -0
- package/dist/components/MathCard/components/SubmitButton.d.ts +4 -0
- package/dist/components/MathCard/components/SubmitButton.d.ts.map +1 -0
- package/dist/components/MathCard/context.d.ts +11 -0
- package/dist/components/MathCard/context.d.ts.map +1 -0
- package/dist/components/MathCard/index.d.ts +7 -0
- package/dist/components/MathCard/index.d.ts.map +1 -0
- package/dist/components/MathCard/styles.d.ts +83 -0
- package/dist/components/MathCard/styles.d.ts.map +1 -0
- package/dist/components/MathCard/utils/contentRenderer.d.ts +40 -0
- package/dist/components/MathCard/utils/contentRenderer.d.ts.map +1 -0
- package/dist/components/MathCard/utils/templateParser.d.ts +44 -0
- package/dist/components/MathCard/utils/templateParser.d.ts.map +1 -0
- package/dist/components/MathGraph/GraphContainer.d.ts +11 -0
- package/dist/components/MathGraph/GraphContainer.d.ts.map +1 -0
- package/dist/components/MathGraph/MathGraph.d.ts +8 -0
- package/dist/components/MathGraph/MathGraph.d.ts.map +1 -0
- package/dist/components/MathGraph/MathGraphErrorBoundary.d.ts +19 -0
- package/dist/components/MathGraph/MathGraphErrorBoundary.d.ts.map +1 -0
- package/dist/components/MathGraph/index.d.ts +10 -0
- package/dist/components/MathGraph/index.d.ts.map +1 -0
- package/dist/components/MathGraph/types.d.ts +77 -0
- package/dist/components/MathGraph/types.d.ts.map +1 -0
- package/dist/components/MathGraph/utils/boundingBoxCalculator.d.ts +31 -0
- package/dist/components/MathGraph/utils/boundingBoxCalculator.d.ts.map +1 -0
- package/dist/components/MathGraph/utils/debugBoundingBox.d.ts +9 -0
- package/dist/components/MathGraph/utils/debugBoundingBox.d.ts.map +1 -0
- package/dist/components/MathGraph/utils/manualCalculation.d.ts +54 -0
- package/dist/components/MathGraph/utils/manualCalculation.d.ts.map +1 -0
- package/dist/components/MathGraph/utils/realTimeTest.d.ts +7 -0
- package/dist/components/MathGraph/utils/realTimeTest.d.ts.map +1 -0
- package/dist/components/MathGraph/utils/testBoundingBox.d.ts +5 -0
- package/dist/components/MathGraph/utils/testBoundingBox.d.ts.map +1 -0
- package/dist/components/MathGraph/utils/testRefResolution.d.ts +5 -0
- package/dist/components/MathGraph/utils/testRefResolution.d.ts.map +1 -0
- package/dist/components/MathSessionContainer/MathSessionContainer.d.ts +18 -0
- package/dist/components/MathSessionContainer/MathSessionContainer.d.ts.map +1 -0
- package/dist/components/MathSessionContainer/MathSessionContainer.types.d.ts +45 -0
- package/dist/components/MathSessionContainer/MathSessionContainer.types.d.ts.map +1 -0
- package/dist/components/MathSessionContainer/hooks/index.d.ts +7 -0
- package/dist/components/MathSessionContainer/hooks/index.d.ts.map +1 -0
- package/dist/components/MathSessionContainer/hooks/useGeometryManagement.d.ts +17 -0
- package/dist/components/MathSessionContainer/hooks/useGeometryManagement.d.ts.map +1 -0
- package/dist/components/MathSessionContainer/hooks/useSessionCalculations.d.ts +17 -0
- package/dist/components/MathSessionContainer/hooks/useSessionCalculations.d.ts.map +1 -0
- package/dist/components/MathSessionContainer/hooks/useSessionEventHandlers.d.ts +17 -0
- package/dist/components/MathSessionContainer/hooks/useSessionEventHandlers.d.ts.map +1 -0
- package/dist/components/MathSessionContainer/index.d.ts +3 -0
- package/dist/components/MathSessionContainer/index.d.ts.map +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/data-sources/api-data-source.d.ts +2 -1
- package/dist/data-sources/api-data-source.d.ts.map +1 -1
- package/dist/data-sources/custom-data-source.d.ts +2 -1
- package/dist/data-sources/custom-data-source.d.ts.map +1 -1
- package/dist/data-sources/mock-data-source.d.ts +2 -1
- package/dist/data-sources/mock-data-source.d.ts.map +1 -1
- package/dist/index.cjs +683 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +67814 -2302
- package/dist/index.mjs.map +1 -1
- package/dist/mockServiceWorker.js +348 -344
- package/dist/mocks/handlers.d.ts.map +1 -1
- package/dist/pages/MathSessionPage/MathSessionPage.d.ts +6 -0
- package/dist/pages/MathSessionPage/MathSessionPage.d.ts.map +1 -0
- package/dist/pages/MathSessionPage/index.d.ts +3 -0
- package/dist/pages/MathSessionPage/index.d.ts.map +1 -0
- package/dist/pages/MathSessionPage/types.d.ts +72 -0
- package/dist/pages/MathSessionPage/types.d.ts.map +1 -0
- package/dist/pages/TestPage/TestPage.d.ts +8 -0
- package/dist/pages/TestPage/TestPage.d.ts.map +1 -0
- package/dist/stores/mathSessionStore.d.ts +79 -0
- package/dist/stores/mathSessionStore.d.ts.map +1 -0
- package/package.json +18 -8
- package/dist/App.css +0 -570
- package/dist/components/Button/Button.css +0 -214
- package/dist/components/ContentAccordion/ContentAccordion.css +0 -268
- package/dist/components/HeroUISideNavigation.d.ts +0 -17
- package/dist/components/HeroUISideNavigation.d.ts.map +0 -1
- package/dist/components/MathWizHeader/MathWizHeader.css +0 -333
- package/dist/components/SideNavigation.d.ts +0 -24
- package/dist/components/SideNavigation.d.ts.map +0 -1
- package/dist/components/SideNavigationHU.d.ts +0 -17
- package/dist/components/SideNavigationHU.d.ts.map +0 -1
- package/dist/components/Sidebar/Sidebar.css +0 -207
- package/dist/components/Submenu/Submenu.css +0 -98
- package/dist/components/UserProfile/UserProfile.css +0 -141
- package/dist/components/components.css +0 -222
- package/dist/components/gradeNavigate/GradeNavigatePage.d.ts +0 -5
- package/dist/components/gradeNavigate/GradeNavigatePage.d.ts.map +0 -1
- package/dist/components/gradeNavigate/GradeNavigatePagePresentational.d.ts +0 -20
- package/dist/components/gradeNavigate/GradeNavigatePagePresentational.d.ts.map +0 -1
- package/dist/components/gradeNavigate/HeaderContainer.d.ts +0 -13
- package/dist/components/gradeNavigate/HeaderContainer.d.ts.map +0 -1
- package/dist/components/gradeNavigate/HeaderPresentational.d.ts +0 -23
- package/dist/components/gradeNavigate/HeaderPresentational.d.ts.map +0 -1
- package/dist/components/gradeNavigate/index.d.ts +0 -7
- package/dist/components/gradeNavigate/index.d.ts.map +0 -1
- package/dist/components/radarAbility/AbilityAssessmentDashboard/AbilityAssessmentDashboard.module.css +0 -60
- package/dist/index.css +0 -63
- package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.css +0 -250
- package/dist/stories/button.css +0 -30
- package/dist/stories/header.css +0 -32
- package/dist/stories/page.css +0 -68
- package/dist/styles/index.css +0 -154
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## 📦 组件库信息
|
|
6
6
|
|
|
7
7
|
- **包名**: `@mathwiz/ui-components`
|
|
8
|
-
- **版本**: 0.1.
|
|
8
|
+
- **版本**: 0.1.8
|
|
9
9
|
- **描述**: A collection of reusable UI components for React applications within the mathwiz ecosystem.
|
|
10
10
|
- **GitHub**: [https://github.com/moleusher/mathwiz-UI](https://github.com/moleusher/mathwiz-UI)
|
|
11
11
|
- **Storybook**: [本地开发地址](http://localhost:6006)
|
|
@@ -66,6 +66,16 @@ taskkill //F //PID <PID>
|
|
|
66
66
|
- **GradeUnitBrowserPage** - 年级单元浏览页面
|
|
67
67
|
- **GradeUnitBrowserProvider** - 年级单元浏览上下文
|
|
68
68
|
|
|
69
|
+
### 数学练习组件
|
|
70
|
+
- **MathSessionPage** - 完整的数学练习页面
|
|
71
|
+
- **MathSessionContainer** - 数学练习业务容器
|
|
72
|
+
- **MathCard** - 题目展示组件
|
|
73
|
+
- **MathGraph** - 几何图形组件
|
|
74
|
+
- **useSessionStore** - 数学练习状态管理
|
|
75
|
+
- **useSessionCalculations** - 会话计算 Hook
|
|
76
|
+
- **useGeometryManagement** - 几何图形管理 Hook
|
|
77
|
+
- **useSessionEventHandlers** - 事件处理 Hook
|
|
78
|
+
|
|
69
79
|
### 数据与工具
|
|
70
80
|
- **数据类型** - 完整的 TypeScript 类型定义
|
|
71
81
|
- **工具函数** - 几何计算等工具函数
|
package/dist/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAMA,OAAO,WAAW,CAAC;AAEnB,iBAAS,GAAG,4CA8BX;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EquationRender.d.ts","sourceRoot":"","sources":["../../../src/components/EquationRender/EquationRender.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAWnD,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8EjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/EquationRender/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* EquationRender 组件的 Props 接口定义
|
|
4
|
+
*/
|
|
5
|
+
export interface EquationRenderProps {
|
|
6
|
+
/**
|
|
7
|
+
* LaTeX 字符串数组,用于分割插槽位置
|
|
8
|
+
* 每个字符串元素之间会插入 children 插槽内容
|
|
9
|
+
* 例如: ['A = \\pi', '^2'] 配合一个输入框将渲染 "A = π [输入框] ²"
|
|
10
|
+
*/
|
|
11
|
+
parts: string[];
|
|
12
|
+
/**
|
|
13
|
+
* 待嵌入的插槽内容,可以是任意有效的 React 节点
|
|
14
|
+
* 支持单个元素或元素数组,数量应与 parts.length - 1 匹配
|
|
15
|
+
*/
|
|
16
|
+
children: ReactNode | ReactNode[];
|
|
17
|
+
/**
|
|
18
|
+
* 组件根元素的字体大小
|
|
19
|
+
* @default '1rem'
|
|
20
|
+
*/
|
|
21
|
+
fontSize?: string;
|
|
22
|
+
/**
|
|
23
|
+
* 组件的整体文本颜色
|
|
24
|
+
* @default '#333333'
|
|
25
|
+
*/
|
|
26
|
+
color?: string;
|
|
27
|
+
/**
|
|
28
|
+
* KaTeX 的显示模式
|
|
29
|
+
* false: 内联模式 (公式作为文本的一部分)
|
|
30
|
+
* true: 块级模式 (公式独立成行并居中显示)
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
displayMode?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* 应用于组件根元素的自定义 CSS 类名
|
|
36
|
+
* @default ''
|
|
37
|
+
*/
|
|
38
|
+
className?: string;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/EquationRender/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MathCardProps, BannerProps, QuestionProps, AnswerInputProps, SubmitButtonProps, ExplanationProps, ReviewContentProps, LoadingStateProps, ErrorStateProps, DividerProps } from './MathCard.types';
|
|
3
|
+
export declare const MathCard: React.FC<MathCardProps> & {
|
|
4
|
+
Banner: React.FC<BannerProps>;
|
|
5
|
+
Question: React.FC<QuestionProps>;
|
|
6
|
+
AnswerInput: React.FC<AnswerInputProps>;
|
|
7
|
+
SubmitButton: React.FC<SubmitButtonProps>;
|
|
8
|
+
Explanation: React.FC<ExplanationProps>;
|
|
9
|
+
ReviewContent: React.FC<ReviewContentProps>;
|
|
10
|
+
LoadingState: React.FC<LoadingStateProps>;
|
|
11
|
+
ErrorState: React.FC<ErrorStateProps>;
|
|
12
|
+
Divider: React.FC<DividerProps>;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=MathCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathCard.d.ts","sourceRoot":"","sources":["../../../src/components/MathCard/MathCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACb,MAAM,kBAAkB,CAAC;AAokB1B,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG;IAC/C,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACxC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACxC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC5C,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC1C,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IACtC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;CAuDjC,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
export type ProblemType = 'fill-in-the-blank' | 'multiple-choice' | 'calculation' | 'geometry';
|
|
2
|
+
export type ContentType = 'text' | 'formula' | 'image' | 'geometry';
|
|
3
|
+
export type ExplanationStepType = 'instruction' | 'text' | 'formula' | 'conclusion' | 'image' | 'table';
|
|
4
|
+
export type MathCardScene = 'question' | 'solve' | 'review';
|
|
5
|
+
export type DifficultyLevel = 1 | 2 | 3 | 4 | 5;
|
|
6
|
+
export type ScoreValue = 1 | 2 | 3;
|
|
7
|
+
export interface ContentBlock {
|
|
8
|
+
type: ContentType;
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export interface Option {
|
|
12
|
+
id: string;
|
|
13
|
+
content: ContentBlock[];
|
|
14
|
+
}
|
|
15
|
+
export interface Hint {
|
|
16
|
+
content: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ExplanationStep {
|
|
19
|
+
id: string;
|
|
20
|
+
type: ExplanationStepType;
|
|
21
|
+
content: string;
|
|
22
|
+
style?: {
|
|
23
|
+
color?: string;
|
|
24
|
+
fontWeight?: string;
|
|
25
|
+
};
|
|
26
|
+
meta?: Record<string, any>;
|
|
27
|
+
}
|
|
28
|
+
export interface ReviewStep {
|
|
29
|
+
id: string;
|
|
30
|
+
type: ExplanationStepType;
|
|
31
|
+
content: string;
|
|
32
|
+
style?: {
|
|
33
|
+
color?: string;
|
|
34
|
+
fontWeight?: string;
|
|
35
|
+
};
|
|
36
|
+
meta?: Record<string, any>;
|
|
37
|
+
}
|
|
38
|
+
export interface ReviewContent {
|
|
39
|
+
reviewTemplate?: string;
|
|
40
|
+
reviewExplanation?: ReviewStep[];
|
|
41
|
+
}
|
|
42
|
+
export interface MathProblemData {
|
|
43
|
+
problemId: string;
|
|
44
|
+
grade: number;
|
|
45
|
+
unit: string;
|
|
46
|
+
lesson?: string;
|
|
47
|
+
difficulty?: DifficultyLevel;
|
|
48
|
+
score?: ScoreValue;
|
|
49
|
+
knowledgePoints?: string[];
|
|
50
|
+
skills?: string[];
|
|
51
|
+
problemType: ProblemType;
|
|
52
|
+
question: ContentBlock[];
|
|
53
|
+
answer: {
|
|
54
|
+
correctAnswer: string[];
|
|
55
|
+
options?: Option[];
|
|
56
|
+
};
|
|
57
|
+
hints?: Hint[];
|
|
58
|
+
explanation?: ExplanationStep[];
|
|
59
|
+
reviewContent?: ReviewContent;
|
|
60
|
+
}
|
|
61
|
+
export interface SubmissionResult {
|
|
62
|
+
userAnswer: string[];
|
|
63
|
+
isCorrect: boolean;
|
|
64
|
+
feedback: string;
|
|
65
|
+
}
|
|
66
|
+
export interface MathCardConfig {
|
|
67
|
+
showBanner?: boolean;
|
|
68
|
+
bannerPosition?: 'sidebar' | 'header';
|
|
69
|
+
bannerSize?: 'small' | 'medium' | 'large';
|
|
70
|
+
bannerCustomStyle?: {
|
|
71
|
+
color?: string;
|
|
72
|
+
bgColor?: string;
|
|
73
|
+
fontSize?: string;
|
|
74
|
+
};
|
|
75
|
+
inputPlaceholder?: string;
|
|
76
|
+
submitButtonText?: string;
|
|
77
|
+
nextButtonText?: string;
|
|
78
|
+
retryButtonText?: string;
|
|
79
|
+
showHints?: boolean;
|
|
80
|
+
theme?: 'light' | 'dark';
|
|
81
|
+
}
|
|
82
|
+
export interface MathCardProps {
|
|
83
|
+
problemData?: MathProblemData;
|
|
84
|
+
scene: MathCardScene;
|
|
85
|
+
loading?: boolean;
|
|
86
|
+
error?: string | Error;
|
|
87
|
+
submissionResult?: SubmissionResult;
|
|
88
|
+
onAnswerChange?: (answer: string[], problemType: ProblemType) => void;
|
|
89
|
+
onSubmit?: (currentAnswer?: string[]) => void;
|
|
90
|
+
onNext?: (currentProblemId: string) => void;
|
|
91
|
+
onRetry?: (problemId: string) => void;
|
|
92
|
+
onErrorRetry?: (errorInfo: string | Error) => void;
|
|
93
|
+
onHintToggle?: (hintIndex: number, isExpanded: boolean) => void;
|
|
94
|
+
config?: MathCardConfig;
|
|
95
|
+
children?: React.ReactNode;
|
|
96
|
+
}
|
|
97
|
+
export interface BannerProps {
|
|
98
|
+
scene: MathCardScene;
|
|
99
|
+
position?: 'sidebar' | 'header';
|
|
100
|
+
size?: 'small' | 'medium' | 'large';
|
|
101
|
+
color?: string;
|
|
102
|
+
bgColor?: string;
|
|
103
|
+
hidden?: boolean;
|
|
104
|
+
}
|
|
105
|
+
export interface QuestionProps {
|
|
106
|
+
question: ContentBlock[];
|
|
107
|
+
problemType: ProblemType;
|
|
108
|
+
}
|
|
109
|
+
export interface AnswerInputProps {
|
|
110
|
+
problemType: ProblemType;
|
|
111
|
+
options?: Option[];
|
|
112
|
+
value?: string[];
|
|
113
|
+
onChange?: (answer: string[]) => void;
|
|
114
|
+
placeholder?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface SubmitButtonProps {
|
|
117
|
+
onClick: () => void;
|
|
118
|
+
children: React.ReactNode;
|
|
119
|
+
disabled?: boolean;
|
|
120
|
+
loading?: boolean;
|
|
121
|
+
}
|
|
122
|
+
export interface ExplanationProps {
|
|
123
|
+
steps: ExplanationStep[];
|
|
124
|
+
title?: string;
|
|
125
|
+
}
|
|
126
|
+
export interface ReviewContentProps {
|
|
127
|
+
reviewContent: ReviewContent;
|
|
128
|
+
userAnswer: string[];
|
|
129
|
+
correctAnswer: string[];
|
|
130
|
+
}
|
|
131
|
+
export interface FeedbackProps {
|
|
132
|
+
submissionResult: SubmissionResult;
|
|
133
|
+
onRetry?: () => void;
|
|
134
|
+
onNext?: () => void;
|
|
135
|
+
}
|
|
136
|
+
export interface HintsProps {
|
|
137
|
+
hints: Hint[];
|
|
138
|
+
onToggle?: (hintIndex: number, isExpanded: boolean) => void;
|
|
139
|
+
}
|
|
140
|
+
export interface LoadingStateProps {
|
|
141
|
+
type?: 'skeleton' | 'spinner';
|
|
142
|
+
}
|
|
143
|
+
export interface ErrorStateProps {
|
|
144
|
+
error: string | Error;
|
|
145
|
+
onRetry?: (errorInfo: string | Error) => void;
|
|
146
|
+
}
|
|
147
|
+
export interface DividerProps {
|
|
148
|
+
orientation?: 'horizontal' | 'vertical';
|
|
149
|
+
size?: 'small' | 'medium' | 'large';
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=MathCard.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathCard.types.d.ts","sourceRoot":"","sources":["../../../src/components/MathCard/MathCard.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnswerInput.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/AnswerInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2DlD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAuExC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/Divider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAoC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/ErrorState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgBhD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Explanation.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/Explanation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAalD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/LoadingState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgBpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Question.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/Question.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAM5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewContent.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/ReviewContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8BtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubmitButton.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/components/SubmitButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAepD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MathProblemData, MathCardScene, SubmissionResult, MathCardConfig } from './MathCard.types';
|
|
3
|
+
export interface MathCardContextType {
|
|
4
|
+
problemData?: MathProblemData;
|
|
5
|
+
scene: MathCardScene;
|
|
6
|
+
submissionResult?: SubmissionResult;
|
|
7
|
+
config?: MathCardConfig;
|
|
8
|
+
}
|
|
9
|
+
export declare const MathCardContext: React.Context<MathCardContextType | undefined>;
|
|
10
|
+
export declare const useMathCardContext: () => MathCardContextType;
|
|
11
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/MathCard/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,gDAAkE,CAAC;AAE/F,eAAO,MAAM,kBAAkB,2BAM9B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { MathCard } from './MathCard';
|
|
2
|
+
export type { MathCardProps, MathProblemData, MathCardScene, ProblemType, ContentType, ExplanationStepType, DifficultyLevel, ScoreValue, ContentBlock, Option, Hint, ExplanationStep, ReviewStep, ReviewContent, SubmissionResult, MathCardConfig, BannerProps, QuestionProps, AnswerInputProps, SubmitButtonProps, ExplanationProps, ReviewContentProps, FeedbackProps, HintsProps, LoadingStateProps, ErrorStateProps, DividerProps } from './MathCard.types';
|
|
3
|
+
export { MathCardContext, useMathCardContext } from './context';
|
|
4
|
+
export { parseTemplate, renderContentBlock, renderContentBlocks, getSceneText, getDifficultyText, validateProblemData } from './utils/templateParser';
|
|
5
|
+
export { renderExplanationStep, renderExplanationSteps, renderReviewStep, renderReviewSteps, getStepIcon, formatAnswer } from './utils/contentRenderer';
|
|
6
|
+
export { tokens } from './styles';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MathCard/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,YAAY,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,YAAY,EACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACb,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export declare const tokens: {
|
|
2
|
+
colors: {
|
|
3
|
+
text: {
|
|
4
|
+
primary: string;
|
|
5
|
+
secondary: string;
|
|
6
|
+
light: string;
|
|
7
|
+
};
|
|
8
|
+
background: {
|
|
9
|
+
card: string;
|
|
10
|
+
feedbackCorrect: string;
|
|
11
|
+
feedbackIncorrect: string;
|
|
12
|
+
};
|
|
13
|
+
border: {
|
|
14
|
+
default: string;
|
|
15
|
+
};
|
|
16
|
+
scene: {
|
|
17
|
+
solve: string;
|
|
18
|
+
review: string;
|
|
19
|
+
question: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
typography: {
|
|
23
|
+
fontFamily: string;
|
|
24
|
+
fontSizeBase: string;
|
|
25
|
+
fontSizeLarge: string;
|
|
26
|
+
fontSizeSmall: string;
|
|
27
|
+
};
|
|
28
|
+
spacing: {
|
|
29
|
+
sm: string;
|
|
30
|
+
md: string;
|
|
31
|
+
lg: string;
|
|
32
|
+
xl: string;
|
|
33
|
+
};
|
|
34
|
+
borderRadius: {
|
|
35
|
+
card: string;
|
|
36
|
+
button: string;
|
|
37
|
+
input: string;
|
|
38
|
+
};
|
|
39
|
+
shadows: {
|
|
40
|
+
card: string;
|
|
41
|
+
button: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export declare const StyledCard: import("@emotion/utils").SerializedStyles;
|
|
45
|
+
export declare const bannerStyles: {
|
|
46
|
+
base: import("@emotion/utils").SerializedStyles;
|
|
47
|
+
sizes: {
|
|
48
|
+
small: import("@emotion/utils").SerializedStyles;
|
|
49
|
+
medium: import("@emotion/utils").SerializedStyles;
|
|
50
|
+
large: import("@emotion/utils").SerializedStyles;
|
|
51
|
+
};
|
|
52
|
+
positions: {
|
|
53
|
+
header: import("@emotion/utils").SerializedStyles;
|
|
54
|
+
sidebar: import("@emotion/utils").SerializedStyles;
|
|
55
|
+
};
|
|
56
|
+
scenes: {
|
|
57
|
+
question: import("@emotion/utils").SerializedStyles;
|
|
58
|
+
solve: import("@emotion/utils").SerializedStyles;
|
|
59
|
+
review: import("@emotion/utils").SerializedStyles;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export declare const questionStyles: import("@emotion/utils").SerializedStyles;
|
|
63
|
+
export declare const answerInputStyles: {
|
|
64
|
+
container: import("@emotion/utils").SerializedStyles;
|
|
65
|
+
input: import("@emotion/utils").SerializedStyles;
|
|
66
|
+
options: import("@emotion/utils").SerializedStyles;
|
|
67
|
+
option: import("@emotion/utils").SerializedStyles;
|
|
68
|
+
};
|
|
69
|
+
export declare const feedbackStyles: {
|
|
70
|
+
container: import("@emotion/utils").SerializedStyles;
|
|
71
|
+
correct: import("@emotion/utils").SerializedStyles;
|
|
72
|
+
incorrect: import("@emotion/utils").SerializedStyles;
|
|
73
|
+
};
|
|
74
|
+
export declare const loadingStyles: {
|
|
75
|
+
skeleton: import("@emotion/utils").SerializedStyles;
|
|
76
|
+
spinner: import("@emotion/utils").SerializedStyles;
|
|
77
|
+
};
|
|
78
|
+
export declare const errorStyles: import("@emotion/utils").SerializedStyles;
|
|
79
|
+
export declare const dividerStyles: {
|
|
80
|
+
horizontal: import("@emotion/utils").SerializedStyles;
|
|
81
|
+
vertical: import("@emotion/utils").SerializedStyles;
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/components/MathCard/styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBlB,CAAC;AAGF,eAAO,MAAM,UAAU,2CAYtB,CAAC;AAGF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAgDxB,CAAC;AAGF,eAAO,MAAM,cAAc,2CAuB1B,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;CAsC7B,CAAC;AAGF,eAAO,MAAM,cAAc;;;;CAc1B,CAAC;AAGF,eAAO,MAAM,aAAa;;;CA0CzB,CAAC;AAGF,eAAO,MAAM,WAAW,2CAuBvB,CAAC;AAGF,eAAO,MAAM,aAAa;;;CA2BzB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ExplanationStep, ExplanationStepType, ReviewStep } from '../MathCard.types';
|
|
3
|
+
/**
|
|
4
|
+
* 渲染解题步骤
|
|
5
|
+
* @param step 解题步骤
|
|
6
|
+
* @returns 渲染后的React元素
|
|
7
|
+
*/
|
|
8
|
+
export declare const renderExplanationStep: (step: ExplanationStep) => React.ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* 渲染复习步骤
|
|
11
|
+
* @param step 复习步骤
|
|
12
|
+
* @returns 渲染后的React元素
|
|
13
|
+
*/
|
|
14
|
+
export declare const renderReviewStep: (step: ReviewStep) => React.ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* 渲染解题步骤数组
|
|
17
|
+
* @param steps 解题步骤数组
|
|
18
|
+
* @returns 渲染后的React元素数组
|
|
19
|
+
*/
|
|
20
|
+
export declare const renderExplanationSteps: (steps: ExplanationStep[]) => React.ReactNode[];
|
|
21
|
+
/**
|
|
22
|
+
* 渲染复习步骤数组
|
|
23
|
+
* @param steps 复习步骤数组
|
|
24
|
+
* @returns 渲染后的React元素数组
|
|
25
|
+
*/
|
|
26
|
+
export declare const renderReviewSteps: (steps: ReviewStep[]) => React.ReactNode[];
|
|
27
|
+
/**
|
|
28
|
+
* 获取步骤类型图标
|
|
29
|
+
* @param type 步骤类型
|
|
30
|
+
* @returns 图标组件
|
|
31
|
+
*/
|
|
32
|
+
export declare const getStepIcon: (type: ExplanationStepType) => string;
|
|
33
|
+
/**
|
|
34
|
+
* 格式化答案显示
|
|
35
|
+
* @param answer 答案数组
|
|
36
|
+
* @param problemType 问题类型
|
|
37
|
+
* @returns 格式化后的答案字符串
|
|
38
|
+
*/
|
|
39
|
+
export declare const formatAnswer: (answer: string[], problemType: "fill-in-the-blank" | "multiple-choice" | "calculation") => string;
|
|
40
|
+
//# sourceMappingURL=contentRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/utils/contentRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1F;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,eAAe,KAAG,KAAK,CAAC,SA2EnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,UAAU,KAAG,KAAK,CAAC,SAgDzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,eAAe,EAAE,KAAG,KAAK,CAAC,SAAS,EAEhF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,UAAU,EAAE,KAAG,KAAK,CAAC,SAAS,EAEtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,mBAAmB,KAAG,MAWvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,EAAE,aAAa,mBAAmB,GAAG,iBAAiB,GAAG,aAAa,KAAG,MAMrH,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ContentBlock } from '../MathCard.types';
|
|
3
|
+
/**
|
|
4
|
+
* 解析复习模板中的占位符
|
|
5
|
+
* @param template 模板字符串
|
|
6
|
+
* @param correctAnswer 正确答案
|
|
7
|
+
* @param userAnswer 用户答案
|
|
8
|
+
* @returns 解析后的字符串
|
|
9
|
+
*/
|
|
10
|
+
export declare const parseTemplate: (template: string, correctAnswer: string[], userAnswer: string[]) => string;
|
|
11
|
+
/**
|
|
12
|
+
* 渲染内容块
|
|
13
|
+
* @param block 内容块
|
|
14
|
+
* @returns 渲染后的React元素
|
|
15
|
+
*/
|
|
16
|
+
export declare const renderContentBlock: (block: ContentBlock) => React.ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* 渲染内容块数组
|
|
19
|
+
* @param blocks 内容块数组
|
|
20
|
+
* @returns 渲染后的React元素数组
|
|
21
|
+
*/
|
|
22
|
+
export declare const renderContentBlocks: (blocks: ContentBlock[]) => React.ReactNode[];
|
|
23
|
+
/**
|
|
24
|
+
* 获取场景对应的显示文本
|
|
25
|
+
* @param scene 场景类型
|
|
26
|
+
* @returns 场景显示文本
|
|
27
|
+
*/
|
|
28
|
+
export declare const getSceneText: (scene: "question" | "solve" | "review") => string;
|
|
29
|
+
/**
|
|
30
|
+
* 获取难度等级对应的文本
|
|
31
|
+
* @param level 难度等级
|
|
32
|
+
* @returns 难度文本
|
|
33
|
+
*/
|
|
34
|
+
export declare const getDifficultyText: (level: 1 | 2 | 3 | 4 | 5) => string;
|
|
35
|
+
/**
|
|
36
|
+
* 验证问题数据格式
|
|
37
|
+
* @param data 问题数据
|
|
38
|
+
* @returns 验证结果
|
|
39
|
+
*/
|
|
40
|
+
export declare const validateProblemData: (data: any) => {
|
|
41
|
+
isValid: boolean;
|
|
42
|
+
errors: string[];
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=templateParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateParser.d.ts","sourceRoot":"","sources":["../../../../src/components/MathCard/utils/templateParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,EAChB,eAAe,MAAM,EAAE,EACvB,YAAY,MAAM,EAAE,KACnB,MAIF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,YAAY,KAAG,KAAK,CAAC,SAuB9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,YAAY,EAAE,KAAG,KAAK,CAAC,SAAS,EAO3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,GAAG,OAAO,GAAG,QAAQ,KAAG,MAQrE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAG,MAU5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,GAAG,KAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAoCnF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphContainer 组件
|
|
3
|
+
* JSXGraph 适配层,负责 JSXGraph Board 的初始化和图形渲染
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { MathGraphProps } from './types';
|
|
7
|
+
interface GraphContainerProps extends Omit<MathGraphProps, 'width' | 'height' | 'className'> {
|
|
8
|
+
}
|
|
9
|
+
export declare const GraphContainer: React.FC<GraphContainerProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=GraphContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphContainer.d.ts","sourceRoot":"","sources":["../../../src/components/MathGraph/GraphContainer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,SAAS,CAAC;AAQ5D,UAAU,mBAAoB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;CAAI;AAEhG,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqKxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathGraph.d.ts","sourceRoot":"","sources":["../../../src/components/MathGraph/MathGraph.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAwE9C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MathGraph 错误边界组件
|
|
3
|
+
* 捕获并处理 MathGraph 组件中的错误
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
interface MathGraphErrorBoundaryState {
|
|
7
|
+
hasError: boolean;
|
|
8
|
+
error: Error | null;
|
|
9
|
+
}
|
|
10
|
+
export declare class MathGraphErrorBoundary extends React.Component<{
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
}, MathGraphErrorBoundaryState> {
|
|
13
|
+
state: MathGraphErrorBoundaryState;
|
|
14
|
+
static getDerivedStateFromError(error: Error): MathGraphErrorBoundaryState;
|
|
15
|
+
componentDidCatch(error: Error, info: React.ErrorInfo): void;
|
|
16
|
+
render(): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=MathGraphErrorBoundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathGraphErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/components/MathGraph/MathGraphErrorBoundary.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,2BAA2B;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,qBAAa,sBAAuB,SAAQ,KAAK,CAAC,SAAS,CACzD;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,EAC7B,2BAA2B,CAC5B;IACC,KAAK,EAAE,2BAA2B,CAAoC;IAEtE,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,2BAA2B;IAI1E,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS;IAIrD,MAAM;CAkBP"}
|