@mathwiz/ui-components 0.1.28 → 0.1.30

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 (130) hide show
  1. package/README.md +1 -1
  2. package/dist/components/Button/Button.css +100 -32
  3. package/dist/components/Button/Button.d.ts.map +1 -1
  4. package/dist/components/Button/types.d.ts +19 -0
  5. package/dist/components/Button/types.d.ts.map +1 -1
  6. package/dist/components/HundredChart/HundredChart.css +8 -0
  7. package/dist/components/HundredChart/HundredChart.d.ts.map +1 -1
  8. package/dist/components/HundredChart/HundredChart.types.d.ts +29 -0
  9. package/dist/components/HundredChart/HundredChart.types.d.ts.map +1 -1
  10. package/dist/components/HundredChart/HundredChart.utils.d.ts +13 -1
  11. package/dist/components/HundredChart/HundredChart.utils.d.ts.map +1 -1
  12. package/dist/components/HundredChart/index.d.ts +2 -2
  13. package/dist/components/HundredChart/index.d.ts.map +1 -1
  14. package/dist/components/MathCardV2/DecimalNumberRecognitionSessionStore.d.ts +2 -2
  15. package/dist/components/MathCardV2/DecimalNumberRecognitionSessionStore.d.ts.map +1 -1
  16. package/dist/components/MathCardV2/ExplanationStep.d.ts +9 -0
  17. package/dist/components/MathCardV2/ExplanationStep.d.ts.map +1 -1
  18. package/dist/components/MathCardV2/MathCardV2.css +11 -4
  19. package/dist/components/MathCardV2/MathCardV2.d.ts.map +1 -1
  20. package/dist/components/MathCardV2/MathCardV2.types.d.ts +51 -1
  21. package/dist/components/MathCardV2/MathCardV2.types.d.ts.map +1 -1
  22. package/dist/components/MathCardV2/MathPracticeSessionStore.d.ts +3 -3
  23. package/dist/components/MathCardV2/MathPracticeSessionStore.d.ts.map +1 -1
  24. package/dist/components/MathCardV2/MathPracticeSessionTypes.d.ts +38 -18
  25. package/dist/components/MathCardV2/MathPracticeSessionTypes.d.ts.map +1 -1
  26. package/dist/components/MathCardV2/MathPracticeStoreContext.d.ts +3 -9
  27. package/dist/components/MathCardV2/MathPracticeStoreContext.d.ts.map +1 -1
  28. package/dist/components/MathCardV2/MathPracticeStoreHooks.d.ts +3 -2
  29. package/dist/components/MathCardV2/MathPracticeStoreHooks.d.ts.map +1 -1
  30. package/dist/components/MathCardV2/components/content/OptionGroupContent.d.ts +10 -0
  31. package/dist/components/MathCardV2/components/content/OptionGroupContent.d.ts.map +1 -0
  32. package/dist/components/MathCardV2/components/renderers/ContentRenderer.d.ts.map +1 -1
  33. package/dist/components/MathCardV2/hooks/useDataAdapter.d.ts.map +1 -1
  34. package/dist/components/MathCardV2/hooks/useMeetingProblemAdapter.d.ts.map +1 -1
  35. package/dist/components/MathCardV2/modules/ReviewModule/ReviewModule.d.ts.map +1 -1
  36. package/dist/components/MathCardV2/modules/SolveModule/SolveModule.d.ts.map +1 -1
  37. package/dist/components/MathCardV2/scenes/ExplanationScene/ExplanationScene.d.ts.map +1 -1
  38. package/dist/components/MathCardV2/scenes/QuestionScene/QuestionScene.css +18 -18
  39. package/dist/components/MathCardV2/scenes/QuestionScene/QuestionScene.d.ts.map +1 -1
  40. package/dist/components/MathCardV2/scenes/SuccessScene/SuccessScene.d.ts.map +1 -1
  41. package/dist/components/OptionGroup/OptionCard.d.ts +11 -0
  42. package/dist/components/OptionGroup/OptionCard.d.ts.map +1 -0
  43. package/dist/components/OptionGroup/OptionCard.styles.d.ts +87 -0
  44. package/dist/components/OptionGroup/OptionCard.styles.d.ts.map +1 -0
  45. package/dist/components/OptionGroup/OptionGroup.d.ts +11 -0
  46. package/dist/components/OptionGroup/OptionGroup.d.ts.map +1 -0
  47. package/dist/components/OptionGroup/OptionGroup.types.d.ts +71 -0
  48. package/dist/components/OptionGroup/OptionGroup.types.d.ts.map +1 -0
  49. package/dist/components/OptionGroup/index.d.ts +5 -0
  50. package/dist/components/OptionGroup/index.d.ts.map +1 -0
  51. package/dist/components/StatBlock/StatBlock.css +331 -0
  52. package/dist/components/StatBlock/StatBlock.d.ts +7 -0
  53. package/dist/components/StatBlock/StatBlock.d.ts.map +1 -0
  54. package/dist/components/StatBlock/index.d.ts +5 -0
  55. package/dist/components/StatBlock/index.d.ts.map +1 -0
  56. package/dist/components/StatBlock/types.d.ts +116 -0
  57. package/dist/components/StatBlock/types.d.ts.map +1 -0
  58. package/dist/components/Table/Table.d.ts +14 -0
  59. package/dist/components/Table/Table.d.ts.map +1 -0
  60. package/dist/components/Table/hooks/useTableCore.d.ts +13 -0
  61. package/dist/components/Table/hooks/useTableCore.d.ts.map +1 -0
  62. package/dist/components/Table/hooks/useTableState.d.ts +10 -0
  63. package/dist/components/Table/hooks/useTableState.d.ts.map +1 -0
  64. package/dist/components/Table/index.d.ts +7 -0
  65. package/dist/components/Table/index.d.ts.map +1 -0
  66. package/dist/components/Table/types.d.ts +179 -0
  67. package/dist/components/Table/types.d.ts.map +1 -0
  68. package/dist/components/Table/utils/flattenData.d.ts +15 -0
  69. package/dist/components/Table/utils/flattenData.d.ts.map +1 -0
  70. package/dist/components/Table/utils/mergeClass.d.ts +6 -0
  71. package/dist/components/Table/utils/mergeClass.d.ts.map +1 -0
  72. package/dist/data/GeometryProblemAdapterV4/geometry-types.d.ts +119 -4
  73. package/dist/data/GeometryProblemAdapterV4/geometry-types.d.ts.map +1 -1
  74. package/dist/data/GeometryProblemAdapterV4/jsondata/parallelogram-revised.json +721 -721
  75. package/dist/data/GeometryProblemAdapterV4/jsondata/right-triangle-v4.json +595 -0
  76. package/dist/data/GeometryProblemAdapterV4/jsondata/trapezoid-v4-final.json +469 -469
  77. package/dist/data/GeometryProblemAdapterV4/jsondata/triangle-v4-final.json +3 -3
  78. package/dist/data/GeometryProblemAdapterV4/types.d.ts +2 -0
  79. package/dist/data/GeometryProblemAdapterV4/types.d.ts.map +1 -1
  80. package/dist/data/TriangleAdapterV3/config/embeddedConfigs.d.ts +96 -18
  81. package/dist/data/TriangleAdapterV3/config/embeddedConfigs.d.ts.map +1 -1
  82. package/dist/data/TriangleAdapterV3/config/index.d.ts +64 -12
  83. package/dist/data/TriangleAdapterV3/config/index.d.ts.map +1 -1
  84. package/dist/data/TriangleAdapterV3/core/syncAdapter.d.ts +5 -0
  85. package/dist/data/TriangleAdapterV3/core/syncAdapter.d.ts.map +1 -1
  86. package/dist/data/TriangleAdapterV3/resolvers/transformRefResolver.d.ts +4 -0
  87. package/dist/data/TriangleAdapterV3/resolvers/transformRefResolver.d.ts.map +1 -1
  88. package/dist/data/TriangleAdapterV3/transformers/geometryTransformTransformer.d.ts.map +1 -1
  89. package/dist/data/TriangleAdapterV3/transformers/hundredChartTransformer.d.ts +58 -0
  90. package/dist/data/TriangleAdapterV3/transformers/hundredChartTransformer.d.ts.map +1 -0
  91. package/dist/data/TriangleAdapterV3/transformers/index.d.ts +2 -0
  92. package/dist/data/TriangleAdapterV3/transformers/index.d.ts.map +1 -1
  93. package/dist/data/TriangleAdapterV3/transformers/optionGroupTransformer.d.ts +29 -0
  94. package/dist/data/TriangleAdapterV3/transformers/optionGroupTransformer.d.ts.map +1 -0
  95. package/dist/data/TriangleAdapterV3/types.d.ts +3 -0
  96. package/dist/data/TriangleAdapterV3/types.d.ts.map +1 -1
  97. package/dist/data/config/style-presets.json +27 -3
  98. package/dist/data/dataSchema/OpenAPI/openapi.json +5777 -5777
  99. package/dist/data/problems/factorProblemV4-backup.json +427 -0
  100. package/dist/data/problems/factorProblemV4.json +462 -0
  101. package/dist/data/problems/factorProblemV4_backup_20260311.json +436 -0
  102. package/dist/index.cjs +103 -100
  103. package/dist/index.cjs.map +1 -1
  104. package/dist/index.d.ts +8 -2
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.mjs +12144 -6014
  107. package/dist/index.mjs.map +1 -1
  108. package/dist/mathwiz-ui.css +1 -1
  109. package/dist/pages/AreaGeometrySessionPage/AreaGeometrySessionPageIXL.css +385 -0
  110. package/dist/pages/AreaGeometrySessionPage/AreaGeometrySessionPageIXL.d.ts +29 -0
  111. package/dist/pages/AreaGeometrySessionPage/AreaGeometrySessionPageIXL.d.ts.map +1 -0
  112. package/dist/pages/AreaGeometrySessionPage/components/LearningDashboardPlaceholder.css +219 -0
  113. package/dist/pages/AreaGeometrySessionPage/components/LearningDashboardPlaceholder.d.ts +15 -0
  114. package/dist/pages/AreaGeometrySessionPage/components/LearningDashboardPlaceholder.d.ts.map +1 -0
  115. package/dist/pages/AreaGeometrySessionPage/components/ReviewSectionPlaceholder.css +64 -0
  116. package/dist/pages/AreaGeometrySessionPage/components/ReviewSectionPlaceholder.d.ts +11 -0
  117. package/dist/pages/AreaGeometrySessionPage/components/ReviewSectionPlaceholder.d.ts.map +1 -0
  118. package/dist/pages/AreaGeometrySessionPage/components/ScaffoldingPlaceholder.css +59 -0
  119. package/dist/pages/AreaGeometrySessionPage/components/ScaffoldingPlaceholder.d.ts +14 -0
  120. package/dist/pages/AreaGeometrySessionPage/components/ScaffoldingPlaceholder.d.ts.map +1 -0
  121. package/dist/pages/AreaGeometrySessionPage/index.d.ts +3 -1
  122. package/dist/pages/AreaGeometrySessionPage/index.d.ts.map +1 -1
  123. package/dist/pages/AreaGeometrySessionPage/types.d.ts +25 -0
  124. package/dist/pages/AreaGeometrySessionPage/types.d.ts.map +1 -1
  125. package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.d.ts.map +1 -1
  126. package/dist/pages/MathSessionPage/MathSessionPage.d.ts.map +1 -1
  127. package/dist/style.css +1 -1
  128. package/dist/styles/index.css +34 -0
  129. package/dist/styles/mathcard-tokens.css +47 -5
  130. package/package.json +5 -3
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  ## 📦 组件库信息
6
6
 
7
7
  - **包名**: `@mathwiz/ui-components`
8
- - **版本**: 0.1.26
8
+ - **版本**: 0.1.30
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)
@@ -1,5 +1,5 @@
1
1
  /* Button Component Styles */
2
- .button {
2
+ .button, .mathwiz-btn {
3
3
  display: inline-flex;
4
4
  align-items: center;
5
5
  justify-content: center;
@@ -18,155 +18,223 @@
18
18
  }
19
19
 
20
20
  /* Button Sizes */
21
- .button--sm {
21
+ .button--sm, .mathwiz-btn--sm {
22
22
  padding: 0.375rem 0.75rem;
23
23
  font-size: 0.75rem;
24
24
  min-height: 1.75rem;
25
25
  }
26
26
 
27
- .button--md {
27
+ .button--md, .mathwiz-btn--md {
28
28
  padding: 0.5rem 1rem;
29
29
  font-size: 0.875rem;
30
30
  min-height: 2.25rem;
31
31
  }
32
32
 
33
- .button--lg {
33
+ .button--lg, .mathwiz-btn--lg {
34
34
  padding: 0.75rem 1.5rem;
35
35
  font-size: 1rem;
36
36
  min-height: 2.75rem;
37
37
  }
38
38
 
39
39
  /* Border Radius */
40
- .button--radius-sm {
40
+ .button--radius-sm, .mathwiz-btn--radius-sm {
41
41
  border-radius: 0.25rem;
42
42
  }
43
43
 
44
- .button--radius-md {
44
+ .button--radius-md, .mathwiz-btn--radius-md {
45
45
  border-radius: 0.375rem;
46
46
  }
47
47
 
48
- .button--radius-lg {
48
+ .button--radius-lg, .mathwiz-btn--radius-lg {
49
49
  border-radius: 0.5rem;
50
50
  }
51
51
 
52
52
  /* Color Variants - Primary (未开始) */
53
- .button--primary {
53
+ .button--primary, .mathwiz-btn--primary {
54
54
  background-color: #3b82f6;
55
55
  color: white;
56
56
  border-color: #3b82f6;
57
57
  }
58
58
 
59
- .button--primary:hover {
59
+ .button--primary:hover, .mathwiz-btn--primary:hover {
60
60
  background-color: #2563eb;
61
61
  border-color: #2563eb;
62
62
  }
63
63
 
64
- .button--primary:focus-visible {
64
+ .button--primary:focus-visible, .mathwiz-btn--primary:focus-visible {
65
65
  outline: 2px solid #3b82f6;
66
66
  outline-offset: 2px;
67
67
  }
68
68
 
69
69
  /* Color Variants - Secondary (进行中) */
70
- .button--secondary {
70
+ .button--secondary, .mathwiz-btn--secondary {
71
71
  background-color: #6b7280;
72
72
  color: white;
73
73
  border-color: #6b7280;
74
74
  }
75
75
 
76
- .button--secondary:hover {
76
+ .button--secondary:hover, .mathwiz-btn--secondary:hover {
77
77
  background-color: #4b5563;
78
78
  border-color: #4b5563;
79
79
  }
80
80
 
81
- .button--secondary:focus-visible {
81
+ .button--secondary:focus-visible, .mathwiz-btn--secondary:focus-visible {
82
82
  outline: 2px solid #6b7280;
83
83
  outline-offset: 2px;
84
84
  }
85
85
 
86
86
  /* Color Variants - Success (已完成) */
87
- .button--success {
87
+ .button--success, .mathwiz-btn--success {
88
88
  background-color: #10b981;
89
89
  color: white;
90
90
  border-color: #10b981;
91
91
  }
92
92
 
93
- .button--success:hover {
93
+ .button--success:hover, .mathwiz-btn--success:hover {
94
94
  background-color: #059669;
95
95
  border-color: #059669;
96
96
  }
97
97
 
98
- .button--success:focus-visible {
98
+ .button--success:focus-visible, .mathwiz-btn--success:focus-visible {
99
99
  outline: 2px solid #10b981;
100
100
  outline-offset: 2px;
101
101
  }
102
102
 
103
+ /* Intent Variants - Semantic button styles */
104
+ .mathwiz-btn--submit {
105
+ background-color: #10b981;
106
+ color: white;
107
+ border-color: #10b981;
108
+ }
109
+
110
+ .mathwiz-btn--submit:hover {
111
+ background-color: #059669;
112
+ border-color: #059669;
113
+ }
114
+
115
+ .mathwiz-btn--submit:focus-visible {
116
+ outline: 2px solid #10b981;
117
+ outline-offset: 2px;
118
+ }
119
+
120
+ .mathwiz-btn--next {
121
+ background-color: #3b82f6;
122
+ color: white;
123
+ border-color: #3b82f6;
124
+ }
125
+
126
+ .mathwiz-btn--next:hover {
127
+ background-color: #2563eb;
128
+ border-color: #2563eb;
129
+ }
130
+
131
+ .mathwiz-btn--next:focus-visible {
132
+ outline: 2px solid #3b82f6;
133
+ outline-offset: 2px;
134
+ }
135
+
136
+ .mathwiz-btn--retry {
137
+ background-color: #f59e0b;
138
+ color: white;
139
+ border-color: #f59e0b;
140
+ }
141
+
142
+ .mathwiz-btn--retry:hover {
143
+ background-color: #d97706;
144
+ border-color: #d97706;
145
+ }
146
+
147
+ .mathwiz-btn--retry:focus-visible {
148
+ outline: 2px solid #f59e0b;
149
+ outline-offset: 2px;
150
+ }
151
+
152
+ .mathwiz-btn--solve {
153
+ background-color: #6b7280;
154
+ color: white;
155
+ border-color: #6b7280;
156
+ }
157
+
158
+ .mathwiz-btn--solve:hover {
159
+ background-color: #4b5563;
160
+ border-color: #4b5563;
161
+ }
162
+
163
+ .mathwiz-btn--solve:focus-visible {
164
+ outline: 2px solid #6b7280;
165
+ outline-offset: 2px;
166
+ }
167
+
168
+ /* Note: .mathwiz-btn--primary, .mathwiz-btn--secondary, .mathwiz-btn--default */
169
+ /* are already defined in color variants above */
170
+
103
171
  /* Style Variants - Solid (默认) */
104
172
  .button--solid {
105
173
  /* Solid styles are the default, defined in color variants */
106
174
  }
107
175
 
108
176
  /* Style Variants - Bordered */
109
- .button--bordered.button--primary {
177
+ .button--bordered.button--primary, .mathwiz-btn--bordered.mathwiz-btn--primary {
110
178
  background-color: transparent;
111
179
  color: #3b82f6;
112
180
  border-color: #3b82f6;
113
181
  }
114
182
 
115
- .button--bordered.button--primary:hover {
183
+ .button--bordered.button--primary:hover, .mathwiz-btn--bordered.mathwiz-btn--primary:hover {
116
184
  background-color: #3b82f6;
117
185
  color: white;
118
186
  }
119
187
 
120
- .button--bordered.button--secondary {
188
+ .button--bordered.button--secondary, .mathwiz-btn--bordered.mathwiz-btn--secondary {
121
189
  background-color: transparent;
122
190
  color: #6b7280;
123
191
  border-color: #6b7280;
124
192
  }
125
193
 
126
- .button--bordered.button--secondary:hover {
194
+ .button--bordered.button--secondary:hover, .mathwiz-btn--bordered.mathwiz-btn--secondary:hover {
127
195
  background-color: #6b7280;
128
196
  color: white;
129
197
  }
130
198
 
131
- .button--bordered.button--success {
199
+ .button--bordered.button--success, .mathwiz-btn--bordered.mathwiz-btn--success {
132
200
  background-color: transparent;
133
201
  color: #10b981;
134
202
  border-color: #10b981;
135
203
  }
136
204
 
137
- .button--bordered.button--success:hover {
205
+ .button--bordered.button--success:hover, .mathwiz-btn--bordered.mathwiz-btn--success:hover {
138
206
  background-color: #10b981;
139
207
  color: white;
140
208
  }
141
209
 
142
210
  /* Style Variants - Light */
143
- .button--light.button--primary {
211
+ .button--light.button--primary, .mathwiz-btn--light.mathwiz-btn--primary {
144
212
  background-color: #dbeafe;
145
213
  color: #1e40af;
146
214
  border-color: transparent;
147
215
  }
148
216
 
149
- .button--light.button--primary:hover {
217
+ .button--light.button--primary:hover, .mathwiz-btn--light.mathwiz-btn--primary:hover {
150
218
  background-color: #bfdbfe;
151
219
  }
152
220
 
153
- .button--light.button--secondary {
221
+ .button--light.button--secondary, .mathwiz-btn--light.mathwiz-btn--secondary {
154
222
  background-color: #f3f4f6;
155
223
  color: #374151;
156
224
  border-color: transparent;
157
225
  }
158
226
 
159
- .button--light.button--secondary:hover {
227
+ .button--light.button--secondary:hover, .mathwiz-btn--light.mathwiz-btn--secondary:hover {
160
228
  background-color: #e5e7eb;
161
229
  }
162
230
 
163
- .button--light.button--success {
231
+ .button--light.button--success, .mathwiz-btn--light.mathwiz-btn--success {
164
232
  background-color: #d1fae5;
165
233
  color: #065f46;
166
234
  border-color: transparent;
167
235
  }
168
236
 
169
- .button--light.button--success:hover {
237
+ .button--light.button--success:hover, .mathwiz-btn--light.mathwiz-btn--success:hover {
170
238
  background-color: #a7f3d0;
171
239
  }
172
240
 
@@ -187,26 +255,26 @@
187
255
  }
188
256
 
189
257
  /* Loading state (optional) */
190
- .button--loading {
258
+ .button--loading, .mathwiz-btn--loading {
191
259
  pointer-events: none;
192
260
  opacity: 0.8;
193
261
  }
194
262
 
195
263
  /* Responsive design */
196
264
  @media (max-width: 768px) {
197
- .button--sm {
265
+ .button--sm, .mathwiz-btn--sm {
198
266
  padding: 0.25rem 0.5rem;
199
267
  font-size: 0.6875rem;
200
268
  min-height: 1.5rem;
201
269
  }
202
270
 
203
- .button--md {
271
+ .button--md, .mathwiz-btn--md {
204
272
  padding: 0.375rem 0.75rem;
205
273
  font-size: 0.8125rem;
206
274
  min-height: 2rem;
207
275
  }
208
276
 
209
- .button--lg {
277
+ .button--lg, .mathwiz-btn--lg {
210
278
  padding: 0.5rem 1rem;
211
279
  font-size: 0.875rem;
212
280
  min-height: 2.25rem;
@@ -1 +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,CAwCxC,CAAC"}
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,CA+CxC,CAAC"}
@@ -44,6 +44,25 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
44
44
  * @example true // 显示加载状态
45
45
  */
46
46
  loading?: boolean;
47
+ /**
48
+ * 按钮语义意图,用于生成特定类名和样式
49
+ * @default undefined
50
+ * @example 'submit' // 提交按钮
51
+ * @example 'next' // 下一步按钮
52
+ * @example 'retry' // 重试按钮
53
+ * @example 'solve' // 解题按钮
54
+ * @example 'primary' // 主要按钮
55
+ * @example 'secondary' // 次要按钮
56
+ * @example 'default' // 默认按钮
57
+ */
58
+ intent?: 'submit' | 'next' | 'retry' | 'solve' | 'primary' | 'secondary' | 'default';
59
+ /**
60
+ * 是否使用新的类名前缀 (mathwiz-btn)
61
+ * @default false
62
+ * @example true // 使用 mathwiz-btn 前缀
63
+ * @example false // 使用旧的 button 前缀(向后兼容)
64
+ */
65
+ useNewClassName?: boolean;
47
66
  }
48
67
  export type GetButtonColorClassFn = (progress: number) => string;
49
68
  //# sourceMappingURL=types.d.ts.map
@@ -1 +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;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACzC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC"}
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;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACzC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IACrF;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC"}
@@ -44,6 +44,14 @@
44
44
  outline-offset: 1px;
45
45
  }
46
46
 
47
+ /* 数字文本样式 */
48
+ .hundred-chart-cell-text {
49
+ font-family: var(--hundred-chart-font-family, system-ui, -apple-system, sans-serif);
50
+ font-weight: var(--hundred-chart-font-weight, 500);
51
+ user-select: none;
52
+ pointer-events: none;
53
+ }
54
+
47
55
  /* 高对比度模式支持 */
48
56
  @media (prefers-contrast: high) {
49
57
  .hundred-chart-cell {
@@ -1 +1 @@
1
- {"version":3,"file":"HundredChart.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/HundredChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,sBAAsB,CAAC;AASxE,OAAO,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwK7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"HundredChart.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/HundredChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,sBAAsB,CAAC;AAUxE,OAAO,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0M7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,3 +1,13 @@
1
+ /**
2
+ * 高亮组配置
3
+ * 用于离散高亮特定单元格
4
+ */
5
+ export interface HighlightGroup {
6
+ /** 要高亮的单元格数字编号数组(1-based,1-100) */
7
+ cells: number[];
8
+ /** 高亮颜色 */
9
+ color: string;
10
+ }
1
11
  /**
2
12
  * HundredChart 组件 Props 接口定义
3
13
  */
@@ -69,6 +79,25 @@ export interface HundredChartProps {
69
79
  * 自定义 CSS 类名
70
80
  */
71
81
  className?: string;
82
+ /**
83
+ * 是否显示数字
84
+ * @default false
85
+ */
86
+ showNumbers?: boolean;
87
+ /**
88
+ * 离散高亮组配置
89
+ */
90
+ highlightGroups?: HighlightGroup[];
91
+ /**
92
+ * 数字字体大小(像素)
93
+ * @default 10
94
+ */
95
+ numberFontSize?: number;
96
+ /**
97
+ * 数字颜色
98
+ * @default '#374151'
99
+ */
100
+ numberColor?: string;
72
101
  }
73
102
  /**
74
103
  * 单元格数据接口
@@ -1 +1 @@
1
- {"version":3,"file":"HundredChart.types.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/HundredChart.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,YAAY;IACZ,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iBAAiB;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"HundredChart.types.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/HundredChart.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAEnC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,YAAY;IACZ,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;IACb,SAAS;IACT,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iBAAiB;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1,4 +1,4 @@
1
- import type { FillAlgorithmConfig, FillAlgorithmResult, CellData } from './HundredChart.types';
1
+ import type { FillAlgorithmConfig, FillAlgorithmResult, CellData, HighlightGroup } from './HundredChart.types';
2
2
  /**
3
3
  * 计算填充的单元格
4
4
  * @param config 填充算法配置
@@ -43,4 +43,16 @@ export declare const validateValue: (value: number) => number;
43
43
  * @returns 百分比字符串
44
44
  */
45
45
  export declare const formatPercentage: (value: number) => string;
46
+ /**
47
+ * 解析单元格颜色
48
+ * 优先级:highlightGroups 命中 > isActive(fillColor) > baseColor
49
+ *
50
+ * @param cellNumber - 单元格数字编号(1-based)
51
+ * @param highlightGroups - 高亮组配置
52
+ * @param isActive - 是否处于激活状态(基于 value 的填充)
53
+ * @param fillColor - 填充颜色
54
+ * @param baseColor - 基础颜色
55
+ * @returns 最终颜色值
56
+ */
57
+ export declare function resolveColor(cellNumber: number, highlightGroups: HighlightGroup[] | undefined, isActive: boolean, fillColor: string, baseColor: string): string;
46
58
  //# sourceMappingURL=HundredChart.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HundredChart.utils.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/HundredChart.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,mBAAmB,KAC1B,mBA6BF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,UAAU,MAAM,EAChB,aAAa,MAAM,EAAE,KACpB,QAAQ,EAkBV,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,cAAc,MAAM,EACpB,WAAW,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,EAC/C,OAAO,MAAM,EACb,MAAM,MAAM,KACX,MAAM,EA2CR,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EAAE,EACnB,YAAY,MAAM,KACjB,MAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAE7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAEhD,CAAC"}
1
+ {"version":3,"file":"HundredChart.utils.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/HundredChart.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,mBAAmB,KAC1B,mBA6BF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,UAAU,MAAM,EAChB,aAAa,MAAM,EAAE,KACpB,QAAQ,EAkBV,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,cAAc,MAAM,EACpB,WAAW,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,EAC/C,OAAO,MAAM,EACb,MAAM,MAAM,KACX,MAAM,EA2CR,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EAAE,EACnB,YAAY,MAAM,KACjB,MAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAE7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAEhD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,cAAc,EAAE,GAAG,SAAS,EAC7C,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR"}
@@ -1,5 +1,5 @@
1
1
  export { default as HundredChart } from './HundredChart';
2
- export type { HundredChartProps, CellData, DragState, FillAlgorithmConfig, FillAlgorithmResult } from './HundredChart.types';
2
+ export type { HundredChartProps, CellData, DragState, FillAlgorithmConfig, FillAlgorithmResult, HighlightGroup } from './HundredChart.types';
3
3
  export { useHundredChartStore, useHundredChartValue, useHundredChartDrag } from './HundredChart.store';
4
- export { calculateFilledCells, generateCellData, calculateDragRange, calculateValueFromDrag, validateValue, formatPercentage } from './HundredChart.utils';
4
+ export { calculateFilledCells, generateCellData, calculateDragRange, calculateValueFromDrag, validateValue, formatPercentage, resolveColor } from './HundredChart.utils';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EACjB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/HundredChart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACb,MAAM,sBAAsB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { MathPracticeSessionStore } from './MathPracticeSessionTypes';
1
+ import type { MathPracticeSessionStore, OptionAnswerItem } from './MathPracticeSessionTypes';
2
2
  /**
3
3
  * 小数认识练习会话状态管理 Store
4
4
  * 扩展基础 MathPracticeSessionStore,专门处理小数答案验证
@@ -11,7 +11,7 @@ export declare const useDecimalCurrentScene: () => import("./MathPracticeSession
11
11
  /**
12
12
  * 自定义 Hook - 获取用户答案
13
13
  */
14
- export declare const useDecimalUserAnswer: () => string;
14
+ export declare const useDecimalUserAnswer: () => string | OptionAnswerItem[];
15
15
  /**
16
16
  * 自定义 Hook - 获取答案正确性
17
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DecimalNumberRecognitionSessionStore.d.ts","sourceRoot":"","sources":["../../../src/components/MathCardV2/DecimalNumberRecognitionSessionStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,uCAAuC,uFAwFjD,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,sBAAsB,8DAElC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,cAEhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,sBAEvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,qBAErC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,2EAEjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,gIAYlC,CAAC"}
1
+ {"version":3,"file":"DecimalNumberRecognitionSessionStore.d.ts","sourceRoot":"","sources":["../../../src/components/MathCardV2/DecimalNumberRecognitionSessionStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE7F;;;GAGG;AACH,eAAO,MAAM,uCAAuC,uFAoGjD,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,sBAAsB,8DAElC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,mCAEhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,sBAEvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,qBAErC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,2EAEjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,gIAYlC,CAAC"}
@@ -13,12 +13,21 @@ interface ExplanationStepProps {
13
13
  boundingBox?: [number, number, number, number];
14
14
  showGrid?: boolean;
15
15
  showAxis?: boolean;
16
+ width?: number;
17
+ height?: number;
16
18
  shapes?: any[];
17
19
  config?: any;
18
20
  metadata?: {
19
21
  config?: any;
20
22
  [key: string]: any;
21
23
  };
24
+ rows?: number;
25
+ cols?: number;
26
+ cellSize?: number;
27
+ mode?: 'readonly' | 'edit';
28
+ value?: number;
29
+ fillColor?: string;
30
+ baseColor?: string;
22
31
  };
23
32
  };
24
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ExplanationStep.d.ts","sourceRoot":"","sources":["../../../src/components/MathCardV2/ExplanationStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,uBAAuB,CAAC;AAE/B,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE;gBACZ,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,EAAE,GAAG,CAAC;gBACb,QAAQ,CAAC,EAAE;oBACT,MAAM,CAAC,EAAE,GAAG,CAAC;oBACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;iBACpB,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;IACF,WAAW,EAAE,uBAAuB,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmF1D,CAAC"}
1
+ {"version":3,"file":"ExplanationStep.d.ts","sourceRoot":"","sources":["../../../src/components/MathCardV2/ExplanationStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,uBAAuB,CAAC;AAE/B,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE;gBACZ,IAAI,EAAE,MAAM,CAAC;gBAEb,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEhB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;gBAEf,MAAM,CAAC,EAAE,GAAG,CAAC;gBACb,QAAQ,CAAC,EAAE;oBACT,MAAM,CAAC,EAAE,GAAG,CAAC;oBACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;iBACpB,CAAC;gBAEF,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAClB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;gBAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,SAAS,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;IACF,WAAW,EAAE,uBAAuB,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoG1D,CAAC"}
@@ -17,10 +17,16 @@
17
17
  }
18
18
 
19
19
  /* 文本内容样式 - 使用设计令牌 */
20
+ /* 问题场景正文文本:视觉更轻盈、现代的无衬线字体、降低对比度 */
20
21
  .mathcard-v2-text {
21
- font-size: var(--mc-text-base);
22
- line-height: var(--mc-leading-relaxed);
23
- color: var(--mc-text-secondary);
22
+ font-family: var(--mc-font-sans);
23
+ font-size: 0.9375rem; /* 15px - 适度缩小字号 */
24
+ font-weight: var(--mc-font-normal); /* 400 - 降低字重,非标题内容 */
25
+ line-height: 1.6; /* 提高行高,降低密度 */
26
+ letter-spacing: 0.01em; /* 增加字间距,提升可读性 */
27
+ color: var(--mc-text-body); /* 正文文本颜色,对比度适中 */
28
+ -webkit-font-smoothing: antialiased;
29
+ -moz-osx-font-smoothing: grayscale;
24
30
  }
25
31
 
26
32
  /* 公式内容样式 - 使用设计令牌 */
@@ -69,6 +75,7 @@
69
75
  }
70
76
 
71
77
  .mathcard-v2-text {
72
- font-size: var(--mc-text-sm);
78
+ font-size: 0.875rem; /* 14px - 移动端适度缩小 */
79
+ line-height: 1.5; /* 移动端行高稍紧 */
73
80
  }
74
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MathCardV2.d.ts","sourceRoot":"","sources":["../../../src/components/MathCardV2/MathCardV2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG;IAEnD,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAG1B,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3B,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9B,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5B,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAGxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAqFhC,CAAC"}
1
+ {"version":3,"file":"MathCardV2.d.ts","sourceRoot":"","sources":["../../../src/components/MathCardV2/MathCardV2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG;IAEnD,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAG1B,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3B,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9B,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5B,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAGxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAuFhC,CAAC"}
@@ -1,4 +1,4 @@
1
- export type ContentType = 'text' | 'formula' | 'image' | 'graph' | 'interactive' | 'hundredGrid' | 'placeValueChart' | 'geometryTransform';
1
+ export type ContentType = 'text' | 'formula' | 'image' | 'graph' | 'interactive' | 'hundredGrid' | 'placeValueChart' | 'geometryTransform' | 'optionGroup';
2
2
  export type LayoutType = 'card' | 'grid' | 'flow' | 'custom';
3
3
  export type RenderMode = 'default' | 'list' | 'template';
4
4
  export type MathCardV2Scene = 'question' | 'solve' | 'review';
@@ -133,6 +133,7 @@ export interface MathCardV2Props {
133
133
  layout?: LayoutConfig;
134
134
  renderer?: RendererConfig;
135
135
  onContentInteraction?: (contentId: string, interaction: any) => void;
136
+ interactionValues?: Record<string, OptionAnswerItem[]>;
136
137
  onLayoutChange?: (layout: LayoutConfig) => void;
137
138
  theme?: 'light' | 'dark';
138
139
  className?: string;
@@ -150,6 +151,7 @@ export interface ContentRendererProps {
150
151
  content: ContentBlock[];
151
152
  layout?: LayoutConfig;
152
153
  onInteraction?: (contentId: string, interaction: any) => void;
154
+ interactionValues?: Record<string, OptionAnswerItem[]>;
153
155
  }
154
156
  export interface ListRendererProps {
155
157
  data: any[];
@@ -334,4 +336,52 @@ export interface GeometryTransformContentProps {
334
336
  boardWidth?: number | string;
335
337
  className?: string;
336
338
  }
339
+ /**
340
+ * 选项配置
341
+ */
342
+ export interface OptionConfig {
343
+ id: string;
344
+ content: string;
345
+ contentType?: 'text' | 'formula' | 'image' | 'graph';
346
+ graphConfig?: {
347
+ shapes: any[];
348
+ boundingBox?: [number, number, number, number];
349
+ showGrid?: boolean;
350
+ showAxis?: boolean;
351
+ };
352
+ }
353
+ /**
354
+ * OptionGroup 内容块(复用 OptionGroup 组件)
355
+ */
356
+ export interface OptionGroupContentBlock extends ContentBlock {
357
+ type: 'optionGroup';
358
+ options: OptionConfig[];
359
+ correctAnswers: string[];
360
+ answerType: 'single' | 'multiple';
361
+ layout?: 'vertical' | 'horizontal';
362
+ variant?: 'default' | 'ixl';
363
+ }
364
+ /**
365
+ * 选项答案项
366
+ */
367
+ export interface OptionAnswerItem {
368
+ id: string;
369
+ content: string;
370
+ contentType?: 'text' | 'formula' | 'image' | 'graph';
371
+ }
372
+ /**
373
+ * OptionGroup 内容组件 Props
374
+ */
375
+ export interface OptionGroupContentProps {
376
+ options: OptionConfig[];
377
+ correctAnswers: string[];
378
+ answerType: 'single' | 'multiple';
379
+ layout?: 'vertical' | 'horizontal';
380
+ variant?: 'default' | 'ixl';
381
+ value?: OptionAnswerItem[];
382
+ onChange?: (value: OptionAnswerItem[]) => void;
383
+ showResult?: boolean;
384
+ disabled?: boolean;
385
+ className?: string;
386
+ }
337
387
  //# sourceMappingURL=MathCardV2.types.d.ts.map