PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / components / StatCard.js
presto-player / src / admin / dashboard / components Last commit date
Emails 1 month ago EngagementChart 1 month ago MediaHub 1 month ago Onboarding 1 month ago Popup 1 month ago Skeletons 1 week ago WhatsNew 1 month ago charts 1 month ago test 1 month ago AdminMenuSync.js 1 month ago ChartEmptyState.js 1 month ago ChooseDate.js 1 month ago ColorPicker.js 1 month ago ExtendPlugins.js 1 month ago Filters.js 1 month ago Link.js 1 month ago Navbar.js 1 week ago NoFound.js 1 month ago PageHeader.js 1 month ago PluginRecommendations.js 1 month ago PostScheduleField.js 1 month ago PrestoPlayerIcon.js 1 month ago ProGateOverlay.js 1 month ago QuickAccess.js 1 month ago RankedTable.js 1 month ago StatCard.js 1 month ago TopMedia.js 1 month ago TopPerformingMedia.js 1 month ago TopUsers.js 1 month ago TruncatedTitle.js 1 month ago UpgradeNotice.js 1 month ago UpgradeToPro.js 1 month ago VideoModal.js 1 month ago WelcomeBanner.js 1 month ago
StatCard.js
40 lines
1 import { Text } from "@bsf/force-ui";
2
3 /**
4 * Reusable stat card component.
5 * Renders a white card with a label and either a large stat value or custom children.
6 *
7 * @param {string} label - The stat label text
8 * @param {string} value - The stat value (used when children not provided)
9 * @param {string} sublabel - Optional secondary label below the value (e.g., "seconds")
10 * @param {React.ReactNode} children - Optional custom content (e.g., a chart)
11 * @param {string} className - Optional extra classes appended to the outer card (e.g., flex-1 to grow)
12 */
13 const StatCard = ({ label, value, sublabel, children, className = "" }) => (
14 <div className={`bg-background-primary border border-solid border-border-subtle rounded-xl shadow-sm p-5 flex flex-col gap-1 ${className}`}>
15 <div className="px-1 py-1">
16 <Text size={14} weight={400} color="tertiary">
17 {label}
18 </Text>
19 </div>
20 {children ? (
21 <div className="px-1 py-1 flex-1 min-h-0 overflow-hidden">{children}</div>
22 ) : (
23 <div className="px-1 py-1">
24 <Text size={30} weight={600} color="primary">
25 {value}
26 </Text>
27 </div>
28 )}
29 {sublabel && (
30 <div className="px-1">
31 <Text size={12} weight={400} color="tertiary">
32 {sublabel}
33 </Text>
34 </div>
35 )}
36 </div>
37 );
38
39 export default StatCard;
40