@mathwiz/ui-components 0.1.31 → 0.1.32
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/dist/components/dashboard/atoms/Badge/Badge.d.ts +7 -16
- package/dist/components/dashboard/atoms/Badge/Badge.d.ts.map +1 -1
- package/dist/components/dashboard/atoms/GamifiedToken/GamifiedToken.d.ts +14 -0
- package/dist/components/dashboard/atoms/GamifiedToken/GamifiedToken.d.ts.map +1 -0
- package/dist/components/dashboard/atoms/GamifiedToken/index.d.ts +3 -0
- package/dist/components/dashboard/atoms/GamifiedToken/index.d.ts.map +1 -0
- package/dist/components/dashboard/index.d.ts +31 -0
- package/dist/components/dashboard/index.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/MathVisualizer/FormulaRenderer.d.ts +12 -0
- package/dist/components/dashboard/molecules/MathVisualizer/FormulaRenderer.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/MathVisualizer/MathVisualizer.css +116 -0
- package/dist/components/dashboard/molecules/MathVisualizer/MathVisualizer.d.ts +39 -0
- package/dist/components/dashboard/molecules/MathVisualizer/MathVisualizer.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/MathVisualizer/VisualRenderer.d.ts +12 -0
- package/dist/components/dashboard/molecules/MathVisualizer/VisualRenderer.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/MathVisualizer/constants.d.ts +28 -0
- package/dist/components/dashboard/molecules/MathVisualizer/constants.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/MathVisualizer/index.d.ts +5 -0
- package/dist/components/dashboard/molecules/MathVisualizer/index.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/MathVisualizer/types.d.ts +29 -0
- package/dist/components/dashboard/molecules/MathVisualizer/types.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/MathVisualizer/utils.d.ts +6 -0
- package/dist/components/dashboard/molecules/MathVisualizer/utils.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/RadialProgress/RadialProgress.d.ts +3 -0
- package/dist/components/dashboard/molecules/RadialProgress/RadialProgress.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/RadialProgress/index.d.ts +3 -0
- package/dist/components/dashboard/molecules/RadialProgress/index.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/RadialProgress/types.d.ts +22 -0
- package/dist/components/dashboard/molecules/RadialProgress/types.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/SegmentedTabs/SegmentedTabs.d.ts +31 -0
- package/dist/components/dashboard/molecules/SegmentedTabs/SegmentedTabs.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/SegmentedTabs/SegmentedTabs.types.d.ts +39 -0
- package/dist/components/dashboard/molecules/SegmentedTabs/SegmentedTabs.types.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/SegmentedTabs/index.d.ts +6 -0
- package/dist/components/dashboard/molecules/SegmentedTabs/index.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/TaskCheckbox/TaskCheckbox.d.ts +20 -0
- package/dist/components/dashboard/molecules/TaskCheckbox/TaskCheckbox.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/TaskCheckbox/index.d.ts +6 -0
- package/dist/components/dashboard/molecules/TaskCheckbox/index.d.ts.map +1 -0
- package/dist/components/dashboard/molecules/TaskCheckbox/types.d.ts +18 -0
- package/dist/components/dashboard/molecules/TaskCheckbox/types.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/ActionHeroCard/ActionHeroCard.d.ts +3 -0
- package/dist/components/dashboard/organisms/ActionHeroCard/ActionHeroCard.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/ActionHeroCard/index.d.ts +3 -0
- package/dist/components/dashboard/organisms/ActionHeroCard/index.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/ActionHeroCard/types.d.ts +16 -0
- package/dist/components/dashboard/organisms/ActionHeroCard/types.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/ActivityChart/ActivityChart.d.ts +4 -0
- package/dist/components/dashboard/organisms/ActivityChart/ActivityChart.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/ActivityChart/index.d.ts +3 -0
- package/dist/components/dashboard/organisms/ActivityChart/index.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/ActivityChart/types.d.ts +23 -0
- package/dist/components/dashboard/organisms/ActivityChart/types.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/DashboardHeader/DashboardHeader.d.ts +4 -0
- package/dist/components/dashboard/organisms/DashboardHeader/DashboardHeader.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/DashboardHeader/index.d.ts +3 -0
- package/dist/components/dashboard/organisms/DashboardHeader/index.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/DashboardHeader/types.d.ts +28 -0
- package/dist/components/dashboard/organisms/DashboardHeader/types.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/DashboardSidebar/DashboardSidebar.d.ts +4 -0
- package/dist/components/dashboard/organisms/DashboardSidebar/DashboardSidebar.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/DashboardSidebar/index.d.ts +3 -0
- package/dist/components/dashboard/organisms/DashboardSidebar/index.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/DashboardSidebar/types.d.ts +25 -0
- package/dist/components/dashboard/organisms/DashboardSidebar/types.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/PathwayNode/PathwayNode.d.ts +32 -0
- package/dist/components/dashboard/organisms/PathwayNode/PathwayNode.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/PathwayNode/index.d.ts +6 -0
- package/dist/components/dashboard/organisms/PathwayNode/index.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/PathwayNode/types.d.ts +29 -0
- package/dist/components/dashboard/organisms/PathwayNode/types.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/RecommendationCard/RecommendationCard.d.ts +4 -0
- package/dist/components/dashboard/organisms/RecommendationCard/RecommendationCard.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/RecommendationCard/index.d.ts +3 -0
- package/dist/components/dashboard/organisms/RecommendationCard/index.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/RecommendationCard/types.d.ts +44 -0
- package/dist/components/dashboard/organisms/RecommendationCard/types.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/SkillRings/SkillRings.d.ts +4 -0
- package/dist/components/dashboard/organisms/SkillRings/SkillRings.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/SkillRings/index.d.ts +3 -0
- package/dist/components/dashboard/organisms/SkillRings/index.d.ts.map +1 -0
- package/dist/components/dashboard/organisms/SkillRings/types.d.ts +25 -0
- package/dist/components/dashboard/organisms/SkillRings/types.d.ts.map +1 -0
- package/dist/components/dashboard/templates/DailyMilestones/DailyMilestones.d.ts +46 -0
- package/dist/components/dashboard/templates/DailyMilestones/DailyMilestones.d.ts.map +1 -0
- package/dist/components/dashboard/templates/DailyMilestones/index.d.ts +3 -0
- package/dist/components/dashboard/templates/DailyMilestones/index.d.ts.map +1 -0
- package/dist/components/dashboard/templates/DailyMilestones/types.d.ts +13 -0
- package/dist/components/dashboard/templates/DailyMilestones/types.d.ts.map +1 -0
- package/dist/components/dashboard/templates/LearningPathway/LearningPathway.d.ts +4 -0
- package/dist/components/dashboard/templates/LearningPathway/LearningPathway.d.ts.map +1 -0
- package/dist/components/dashboard/templates/LearningPathway/LearningPathway.types.d.ts +46 -0
- package/dist/components/dashboard/templates/LearningPathway/LearningPathway.types.d.ts.map +1 -0
- package/dist/components/dashboard/templates/LearningPathway/index.d.ts +6 -0
- package/dist/components/dashboard/templates/LearningPathway/index.d.ts.map +1 -0
- package/dist/index.cjs +135 -102
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +18921 -10643
- package/dist/index.mjs.map +1 -1
- package/dist/mathwiz-ui.css +1 -1
- package/dist/style.css +1 -1
- package/package.json +9 -7
|
@@ -3,30 +3,21 @@ export type BadgeVariant = 'solid' | 'outline' | 'glass';
|
|
|
3
3
|
export type BadgeColor = 'brand' | 'growth' | 'motivation' | 'neutral';
|
|
4
4
|
export type BadgeSize = 'sm' | 'md';
|
|
5
5
|
export interface BadgeProps {
|
|
6
|
-
/**
|
|
6
|
+
/** 视觉变体 */
|
|
7
7
|
variant?: BadgeVariant;
|
|
8
|
-
/**
|
|
8
|
+
/** 语义化颜色 */
|
|
9
9
|
color?: BadgeColor;
|
|
10
|
-
/**
|
|
10
|
+
/** 尺寸 */
|
|
11
11
|
size?: BadgeSize;
|
|
12
|
-
/** FontAwesome
|
|
12
|
+
/** FontAwesome 图标类名 */
|
|
13
13
|
icon?: string;
|
|
14
|
-
/**
|
|
14
|
+
/** 徽章内容 */
|
|
15
15
|
children: React.ReactNode;
|
|
16
|
-
/**
|
|
16
|
+
/** 自定义类名 */
|
|
17
17
|
className?: string;
|
|
18
|
-
/** ARIA
|
|
18
|
+
/** ARIA 标签 */
|
|
19
19
|
'aria-label'?: string;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Badge component with solid, outline, and glass variants
|
|
23
|
-
*
|
|
24
|
-
* Features:
|
|
25
|
-
* - Three variants: solid, outline, glass (with backdrop-blur effect)
|
|
26
|
-
* - Four color themes: brand, growth, motivation, neutral
|
|
27
|
-
* - Two sizes: sm, md
|
|
28
|
-
* - Optional FontAwesome icon support
|
|
29
|
-
*/
|
|
30
21
|
export declare const Badge: React.FC<BadgeProps>;
|
|
31
22
|
export default Badge;
|
|
32
23
|
//# sourceMappingURL=Badge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/atoms/Badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/atoms/Badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;AACvE,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS;IACT,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAqCD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA4CtC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type TokenType = 'streak' | 'coin' | 'gem' | 'star';
|
|
3
|
+
export type TokenSize = 'sm' | 'md';
|
|
4
|
+
export interface GamifiedTokenProps {
|
|
5
|
+
type: TokenType;
|
|
6
|
+
value: number | string;
|
|
7
|
+
label?: string;
|
|
8
|
+
size?: TokenSize;
|
|
9
|
+
isAnimated?: boolean;
|
|
10
|
+
onClick?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const GamifiedToken: React.FC<GamifiedTokenProps>;
|
|
13
|
+
export default GamifiedToken;
|
|
14
|
+
//# sourceMappingURL=GamifiedToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GamifiedToken.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/atoms/GamifiedToken/GamifiedToken.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAqBD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4DtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/atoms/GamifiedToken/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export { Badge } from './atoms/Badge';
|
|
2
|
+
export type { BadgeProps, BadgeVariant, BadgeColor, BadgeSize } from './atoms/Badge';
|
|
3
|
+
export { GamifiedToken } from './atoms/GamifiedToken';
|
|
4
|
+
export type { GamifiedTokenProps, TokenType, TokenSize } from './atoms/GamifiedToken';
|
|
5
|
+
export { MathVisualizer } from './molecules/MathVisualizer';
|
|
6
|
+
export type { MathVisualizerProps } from './molecules/MathVisualizer';
|
|
7
|
+
export { RadialProgress } from './molecules/RadialProgress';
|
|
8
|
+
export type { RadialProgressProps } from './molecules/RadialProgress';
|
|
9
|
+
export { SegmentedTabs } from './molecules/SegmentedTabs';
|
|
10
|
+
export type { SegmentedTabsProps } from './molecules/SegmentedTabs';
|
|
11
|
+
export { TaskCheckbox } from './molecules/TaskCheckbox';
|
|
12
|
+
export type { TaskCheckboxProps } from './molecules/TaskCheckbox';
|
|
13
|
+
export { ActionHeroCard } from './organisms/ActionHeroCard';
|
|
14
|
+
export type { ActionHeroCardProps } from './organisms/ActionHeroCard';
|
|
15
|
+
export { ActivityChart } from './organisms/ActivityChart';
|
|
16
|
+
export type { ActivityChartProps, ActivityDataPoint } from './organisms/ActivityChart';
|
|
17
|
+
export { DashboardHeader } from './organisms/DashboardHeader';
|
|
18
|
+
export type { DashboardHeaderProps } from './organisms/DashboardHeader';
|
|
19
|
+
export { DashboardSidebar } from './organisms/DashboardSidebar';
|
|
20
|
+
export type { DashboardSidebarProps, NavItem } from './organisms/DashboardSidebar';
|
|
21
|
+
export { PathwayNode } from './organisms/PathwayNode';
|
|
22
|
+
export type { PathwayNodeProps, PathwayNodeStatus, PathwayNodeSize } from './organisms/PathwayNode';
|
|
23
|
+
export { RecommendationCard as DashboardRecommendationCard } from './organisms/RecommendationCard';
|
|
24
|
+
export type { RecommendationCardProps as DashboardRecommendationCardProps } from './organisms/RecommendationCard';
|
|
25
|
+
export { SkillRings } from './organisms/SkillRings';
|
|
26
|
+
export type { SkillRingsProps, SkillData } from './organisms/SkillRings';
|
|
27
|
+
export { DailyMilestones } from './templates/DailyMilestones';
|
|
28
|
+
export type { DailyMilestonesProps, Task as MilestoneTask } from './templates/DailyMilestones';
|
|
29
|
+
export { LearningPathway } from './templates/LearningPathway';
|
|
30
|
+
export type { LearningPathwayProps } from './templates/LearningPathway';
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dashboard/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EAAE,kBAAkB,IAAI,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AACnG,YAAY,EAAE,uBAAuB,IAAI,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { VisualizerData, VisualizerSize } from './types';
|
|
3
|
+
interface FormulaRendererProps {
|
|
4
|
+
data: VisualizerData;
|
|
5
|
+
size: VisualizerSize;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Formula Renderer Component - Renders formula text
|
|
9
|
+
*/
|
|
10
|
+
export declare const FormulaRenderer: React.FC<FormulaRendererProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=FormulaRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormulaRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/MathVisualizer/FormulaRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9D,UAAU,oBAAoB;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAS1D,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* Colors */
|
|
3
|
+
--mathviz-filled-color: #10B981;
|
|
4
|
+
--mathviz-empty-color: #E5E7EB;
|
|
5
|
+
--mathviz-operator-color: #9CA3AF;
|
|
6
|
+
--mathviz-bg-color: #FFFFFF;
|
|
7
|
+
--mathviz-border-color: #F3F4F6;
|
|
8
|
+
--mathviz-formula-bg: #F9FAFB;
|
|
9
|
+
--mathviz-text-color: #1F2937;
|
|
10
|
+
|
|
11
|
+
/* Dimensions - sm */
|
|
12
|
+
--mathviz-sm-segment-width: 16px;
|
|
13
|
+
--mathviz-sm-bar-height: 24px;
|
|
14
|
+
--mathviz-sm-font-size: 16px;
|
|
15
|
+
--mathviz-sm-padding: 12px;
|
|
16
|
+
|
|
17
|
+
/* Dimensions - md */
|
|
18
|
+
--mathviz-md-segment-width: 20px;
|
|
19
|
+
--mathviz-md-bar-height: 32px;
|
|
20
|
+
--mathviz-md-font-size: 24px;
|
|
21
|
+
--mathviz-md-padding: 16px;
|
|
22
|
+
|
|
23
|
+
/* Spacing */
|
|
24
|
+
--mathviz-segment-gap: 2px;
|
|
25
|
+
--mathviz-bar-radius: 3px;
|
|
26
|
+
--mathviz-container-radius: 12px;
|
|
27
|
+
--mathviz-formula-radius: 8px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Main container */
|
|
31
|
+
.math-visualizer {
|
|
32
|
+
display: inline-flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: center;
|
|
35
|
+
background-color: var(--mathviz-bg-color);
|
|
36
|
+
border: 1px solid var(--mathviz-border-color);
|
|
37
|
+
border-radius: var(--mathviz-container-radius);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Size variants */
|
|
41
|
+
.math-visualizer--sm {
|
|
42
|
+
padding: var(--mathviz-sm-padding);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.math-visualizer--md {
|
|
46
|
+
padding: var(--mathviz-md-padding);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* SVG container */
|
|
50
|
+
.math-visualizer__svg {
|
|
51
|
+
display: block;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Fraction bar container */
|
|
55
|
+
.math-visualizer__bar {
|
|
56
|
+
display: flex;
|
|
57
|
+
gap: var(--mathviz-segment-gap);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* Individual segment */
|
|
61
|
+
.math-visualizer__segment {
|
|
62
|
+
border-radius: var(--mathviz-bar-radius);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.math-visualizer__segment--filled {
|
|
66
|
+
fill: var(--mathviz-filled-color);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.math-visualizer__segment--empty {
|
|
70
|
+
fill: var(--mathviz-empty-color);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Operation symbol */
|
|
74
|
+
.math-visualizer__operator {
|
|
75
|
+
color: var(--mathviz-operator-color);
|
|
76
|
+
font-weight: bold;
|
|
77
|
+
user-select: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* Formula container */
|
|
81
|
+
.math-visualizer__formula {
|
|
82
|
+
background-color: var(--mathviz-formula-bg);
|
|
83
|
+
border: 1px solid var(--mathviz-border-color);
|
|
84
|
+
border-radius: var(--mathviz-formula-radius);
|
|
85
|
+
font-family: 'Courier New', Courier, monospace;
|
|
86
|
+
font-weight: 900;
|
|
87
|
+
letter-spacing: 0.1em;
|
|
88
|
+
color: var(--mathviz-text-color);
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
justify-content: center;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Formula size variants */
|
|
95
|
+
.math-visualizer__formula--sm {
|
|
96
|
+
font-size: var(--mathviz-sm-font-size);
|
|
97
|
+
padding: 12px 16px;
|
|
98
|
+
letter-spacing: 0.1em;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.math-visualizer__formula--md {
|
|
102
|
+
font-size: var(--mathviz-md-font-size);
|
|
103
|
+
padding: 16px 24px;
|
|
104
|
+
letter-spacing: 0.15em;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Formula text */
|
|
108
|
+
.math-visualizer__formula-text {
|
|
109
|
+
font-family: inherit;
|
|
110
|
+
font-weight: inherit;
|
|
111
|
+
letter-spacing: inherit;
|
|
112
|
+
background: none;
|
|
113
|
+
border: none;
|
|
114
|
+
padding: 0;
|
|
115
|
+
margin: 0;
|
|
116
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MathVisualizerProps } from './types';
|
|
3
|
+
import './MathVisualizer.css';
|
|
4
|
+
/**
|
|
5
|
+
* MathVisualizer Component
|
|
6
|
+
*
|
|
7
|
+
* A molecule component for visualizing math problems.
|
|
8
|
+
* Supports two rendering modes:
|
|
9
|
+
* - 'visual': SVG fraction bar visualization with colored segments
|
|
10
|
+
* - 'formula': Monospace text formula display
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Single fraction
|
|
15
|
+
* <MathVisualizer
|
|
16
|
+
* type="visual"
|
|
17
|
+
* data={{ fraction1: { numerator: 1, denominator: 4 } }}
|
|
18
|
+
* />
|
|
19
|
+
*
|
|
20
|
+
* // Fraction addition
|
|
21
|
+
* <MathVisualizer
|
|
22
|
+
* type="visual"
|
|
23
|
+
* data={{
|
|
24
|
+
* fraction1: { numerator: 1, denominator: 4 },
|
|
25
|
+
* fraction2: { numerator: 1, denominator: 4 },
|
|
26
|
+
* operation: 'add',
|
|
27
|
+
* }}
|
|
28
|
+
* />
|
|
29
|
+
*
|
|
30
|
+
* // Formula display
|
|
31
|
+
* <MathVisualizer
|
|
32
|
+
* type="formula"
|
|
33
|
+
* data={{ formula: '0.5 × 0.8 = ?' }}
|
|
34
|
+
* />
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const MathVisualizer: React.FC<MathVisualizerProps>;
|
|
38
|
+
export default MathVisualizer;
|
|
39
|
+
//# sourceMappingURL=MathVisualizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathVisualizer.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/MathVisualizer/MathVisualizer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAInD,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsBxD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { VisualizerData, VisualizerSize } from './types';
|
|
3
|
+
interface VisualRendererProps {
|
|
4
|
+
data: VisualizerData;
|
|
5
|
+
size: VisualizerSize;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Visual Renderer Component - Renders fraction bars with SVG
|
|
9
|
+
*/
|
|
10
|
+
export declare const VisualRenderer: React.FC<VisualRendererProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=VisualRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VisualRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/MathVisualizer/VisualRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9D,UAAU,mBAAmB;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;CACtB;AAqCD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAgExD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { VisualizerSize } from './types';
|
|
2
|
+
export declare const SIZE_CONFIG: {
|
|
3
|
+
readonly sm: {
|
|
4
|
+
readonly segmentWidth: 16;
|
|
5
|
+
readonly barHeight: 24;
|
|
6
|
+
readonly fontSize: 16;
|
|
7
|
+
readonly operatorWidth: 24;
|
|
8
|
+
readonly gap: 2;
|
|
9
|
+
};
|
|
10
|
+
readonly md: {
|
|
11
|
+
readonly segmentWidth: 20;
|
|
12
|
+
readonly barHeight: 32;
|
|
13
|
+
readonly fontSize: 24;
|
|
14
|
+
readonly operatorWidth: 32;
|
|
15
|
+
readonly gap: 2;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare const OPERATION_SYMBOLS: Record<string, string>;
|
|
19
|
+
export declare const COLORS: {
|
|
20
|
+
readonly filled: "#10B981";
|
|
21
|
+
readonly empty: "#E5E7EB";
|
|
22
|
+
readonly operator: "#9CA3AF";
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Calculate bar width based on denominator and size
|
|
26
|
+
*/
|
|
27
|
+
export declare function calculateBarWidth(denominator: number, size: VisualizerSize): number;
|
|
28
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/MathVisualizer/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAed,CAAC;AAGX,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKpD,CAAC;AAGF,eAAO,MAAM,MAAM;;;;CAIT,CAAC;AAEX;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAGnF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MathVisualizer } from './MathVisualizer';
|
|
2
|
+
export { VisualRenderer } from './VisualRenderer';
|
|
3
|
+
export { FormulaRenderer } from './FormulaRenderer';
|
|
4
|
+
export type { MathVisualizerProps, VisualizerType, VisualizerSize, VisualizerData, VisualData, FormulaData, FractionData, MathOperation, } from './types';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/MathVisualizer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type VisualizerType = 'visual' | 'formula';
|
|
2
|
+
export type MathOperation = 'add' | 'subtract' | 'multiply' | 'divide';
|
|
3
|
+
export type VisualizerSize = 'sm' | 'md';
|
|
4
|
+
export interface FractionData {
|
|
5
|
+
numerator: number;
|
|
6
|
+
denominator: number;
|
|
7
|
+
}
|
|
8
|
+
export interface VisualData {
|
|
9
|
+
fraction1: FractionData;
|
|
10
|
+
fraction2?: FractionData;
|
|
11
|
+
operation?: MathOperation;
|
|
12
|
+
}
|
|
13
|
+
export interface FormulaData {
|
|
14
|
+
formula: string;
|
|
15
|
+
}
|
|
16
|
+
export type VisualizerData = VisualData | FormulaData;
|
|
17
|
+
export interface MathVisualizerProps {
|
|
18
|
+
/** 渲染类型:图形化或算式 */
|
|
19
|
+
type: VisualizerType;
|
|
20
|
+
/** 渲染数据 */
|
|
21
|
+
data: VisualizerData;
|
|
22
|
+
/** 组件尺寸 */
|
|
23
|
+
size?: VisualizerSize;
|
|
24
|
+
/** 自定义类名 */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** 无障碍标签 */
|
|
27
|
+
'aria-label'?: string;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/MathVisualizer/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGlD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAGvE,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAGzC,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAGD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,IAAI,EAAE,cAAc,CAAC;IAErB,WAAW;IACX,IAAI,EAAE,cAAc,CAAC;IAErB,WAAW;IACX,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/MathVisualizer/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAqBpF"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RadialProgressProps } from './types';
|
|
2
|
+
export declare function RadialProgress({ value, size, color, titleEn, subTitleZh, maxLabel, centerContent, isAnimated, className, }: RadialProgressProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=RadialProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadialProgress.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/RadialProgress/RadialProgress.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAOnD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,IAAW,EACX,KAAqB,EACrB,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,UAAiB,EACjB,SAAc,GACf,EAAE,mBAAmB,2CAqIrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/RadialProgress/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface RadialProgressProps {
|
|
3
|
+
/** Progress value from 0 to 100 */
|
|
4
|
+
value: number;
|
|
5
|
+
/** Size variant - sm: 64px, lg: 128px */
|
|
6
|
+
size?: 'sm' | 'lg';
|
|
7
|
+
/** Hex color for progress ring, default #3B82F6 */
|
|
8
|
+
color?: string;
|
|
9
|
+
/** English title displayed at bottom */
|
|
10
|
+
titleEn?: string;
|
|
11
|
+
/** Chinese subtitle displayed at bottom */
|
|
12
|
+
subTitleZh?: string;
|
|
13
|
+
/** Max value label (e.g., '/100 XP'), only shown in lg size */
|
|
14
|
+
maxLabel?: string;
|
|
15
|
+
/** Custom content to render in center (overrides default percentage) */
|
|
16
|
+
centerContent?: ReactNode;
|
|
17
|
+
/** Whether to animate progress, default true */
|
|
18
|
+
isAnimated?: boolean;
|
|
19
|
+
/** Additional CSS classes */
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/RadialProgress/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SegmentedTabs Component
|
|
3
|
+
* A capsule-style segmented tab component with sliding indicator animation
|
|
4
|
+
* Based on HeroUI Tabs component
|
|
5
|
+
*/
|
|
6
|
+
import type { SegmentedTabsProps } from './SegmentedTabs.types';
|
|
7
|
+
/**
|
|
8
|
+
* SegmentedTabs - A molecule component for tab navigation with capsule styling
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Capsule-style container with sliding indicator
|
|
12
|
+
* - Support for icons in tabs
|
|
13
|
+
* - Individual tab disable state
|
|
14
|
+
* - Full width mode
|
|
15
|
+
* - Keyboard navigation support
|
|
16
|
+
* - Smooth animations (300ms ease)
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <SegmentedTabs
|
|
21
|
+
* tabs={[
|
|
22
|
+
* { id: 'tab1', label: 'Tab 1' },
|
|
23
|
+
* { id: 'tab2', label: 'Tab 2', icon: <Icon /> },
|
|
24
|
+
* ]}
|
|
25
|
+
* activeId="tab1"
|
|
26
|
+
* onChange={(id) => console.log(id)}
|
|
27
|
+
* />
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const SegmentedTabs: React.FC<SegmentedTabsProps>;
|
|
31
|
+
//# sourceMappingURL=SegmentedTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedTabs.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/SegmentedTabs/SegmentedTabs.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkFtD,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SegmentedTabs component types
|
|
3
|
+
*/
|
|
4
|
+
import type { ReactNode } from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Tab item configuration
|
|
7
|
+
*/
|
|
8
|
+
export interface Tab {
|
|
9
|
+
/** Unique identifier for the tab */
|
|
10
|
+
id: string;
|
|
11
|
+
/** Display label for the tab */
|
|
12
|
+
label: string;
|
|
13
|
+
/** Optional icon to display before the label */
|
|
14
|
+
icon?: ReactNode;
|
|
15
|
+
/** Whether this tab is disabled */
|
|
16
|
+
isDisabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Props for the SegmentedTabs component
|
|
20
|
+
*/
|
|
21
|
+
export interface SegmentedTabsProps {
|
|
22
|
+
/** Array of tab items to render */
|
|
23
|
+
tabs: Tab[];
|
|
24
|
+
/** ID of the currently active tab */
|
|
25
|
+
activeId: string;
|
|
26
|
+
/** Callback when tab selection changes */
|
|
27
|
+
onChange: (id: string) => void;
|
|
28
|
+
/** Size variant of the tabs */
|
|
29
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
30
|
+
/** Additional CSS class names */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** Whether the entire tab group is disabled */
|
|
33
|
+
isDisabled?: boolean;
|
|
34
|
+
/** Whether tabs should stretch to fill container width */
|
|
35
|
+
isFullWidth?: boolean;
|
|
36
|
+
/** ARIA label for accessibility */
|
|
37
|
+
'aria-label'?: string;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=SegmentedTabs.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedTabs.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/SegmentedTabs/SegmentedTabs.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/SegmentedTabs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskCheckbox Component
|
|
3
|
+
* A bilingual task completion checkbox with visual states
|
|
4
|
+
*/
|
|
5
|
+
import type { TaskCheckboxProps } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* TaskCheckbox - A molecule component for task completion with bilingual support
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* <TaskCheckbox
|
|
12
|
+
* isCompleted={false}
|
|
13
|
+
* titleEn="Complete homework"
|
|
14
|
+
* titleZh="完成作业"
|
|
15
|
+
* onToggle={(completed) => console.log(completed)}
|
|
16
|
+
* />
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const TaskCheckbox: React.FC<TaskCheckboxProps>;
|
|
20
|
+
//# sourceMappingURL=TaskCheckbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskCheckbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/TaskCheckbox/TaskCheckbox.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAuBjD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4DpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/TaskCheckbox/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskCheckbox component types
|
|
3
|
+
*/
|
|
4
|
+
export interface TaskCheckboxProps {
|
|
5
|
+
/** Whether the task is completed */
|
|
6
|
+
isCompleted: boolean;
|
|
7
|
+
/** English title (primary) */
|
|
8
|
+
titleEn: string;
|
|
9
|
+
/** Chinese title (secondary) */
|
|
10
|
+
titleZh: string;
|
|
11
|
+
/** Callback when toggle is triggered */
|
|
12
|
+
onToggle?: (isCompleted: boolean) => void;
|
|
13
|
+
/** Whether the checkbox is disabled */
|
|
14
|
+
isDisabled?: boolean;
|
|
15
|
+
/** Additional CSS class names */
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/molecules/TaskCheckbox/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ActionHeroCardProps } from './types';
|
|
2
|
+
export declare function ActionHeroCard({ courseCategory, lessonTitleEn, lessonTitleZh, visualNode, onAction, className, }: ActionHeroCardProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=ActionHeroCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionHeroCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/organisms/ActionHeroCard/ActionHeroCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAyBnD,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAc,GACf,EAAE,mBAAmB,2CA8ErB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/organisms/ActionHeroCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface ActionHeroCardProps {
|
|
3
|
+
/** Course category display text, e.g., "4th Grade - Fractions / 四年级 - 分数" */
|
|
4
|
+
courseCategory: string;
|
|
5
|
+
/** English lesson title */
|
|
6
|
+
lessonTitleEn: string;
|
|
7
|
+
/** Chinese lesson title */
|
|
8
|
+
lessonTitleZh: string;
|
|
9
|
+
/** Optional visual content (MathVisualizer or custom node) */
|
|
10
|
+
visualNode?: ReactNode;
|
|
11
|
+
/** Click callback for the card action */
|
|
12
|
+
onAction?: () => void;
|
|
13
|
+
/** Optional additional CSS classes */
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|