@medialane/ui 0.36.0 → 0.36.1
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/rewards/badge-shelf.cjs +90 -0
- package/dist/components/rewards/badge-shelf.cjs.map +1 -0
- package/dist/components/rewards/badge-shelf.d.cts +24 -0
- package/dist/components/rewards/badge-shelf.d.ts +24 -0
- package/dist/components/rewards/badge-shelf.js +56 -0
- package/dist/components/rewards/badge-shelf.js.map +1 -0
- package/dist/components/rewards/leaderboard-table.cjs +96 -0
- package/dist/components/rewards/leaderboard-table.cjs.map +1 -0
- package/dist/components/rewards/leaderboard-table.d.cts +34 -0
- package/dist/components/rewards/leaderboard-table.d.ts +34 -0
- package/dist/components/rewards/leaderboard-table.js +71 -0
- package/dist/components/rewards/leaderboard-table.js.map +1 -0
- package/dist/components/rewards/level-badge.cjs +60 -0
- package/dist/components/rewards/level-badge.cjs.map +1 -0
- package/dist/components/rewards/level-badge.d.cts +14 -0
- package/dist/components/rewards/level-badge.d.ts +14 -0
- package/dist/components/rewards/level-badge.js +36 -0
- package/dist/components/rewards/level-badge.js.map +1 -0
- package/dist/components/rewards/level-ladder.cjs +54 -0
- package/dist/components/rewards/level-ladder.cjs.map +1 -0
- package/dist/components/rewards/level-ladder.d.cts +17 -0
- package/dist/components/rewards/level-ladder.d.ts +17 -0
- package/dist/components/rewards/level-ladder.js +30 -0
- package/dist/components/rewards/level-ladder.js.map +1 -0
- package/dist/components/rewards/score-summary-card.cjs +83 -0
- package/dist/components/rewards/score-summary-card.cjs.map +1 -0
- package/dist/components/rewards/score-summary-card.d.cts +26 -0
- package/dist/components/rewards/score-summary-card.d.ts +26 -0
- package/dist/components/rewards/score-summary-card.js +59 -0
- package/dist/components/rewards/score-summary-card.js.map +1 -0
- package/dist/components/rewards/xp-progress.cjs +81 -0
- package/dist/components/rewards/xp-progress.cjs.map +1 -0
- package/dist/components/rewards/xp-progress.d.cts +18 -0
- package/dist/components/rewards/xp-progress.d.ts +18 -0
- package/dist/components/rewards/xp-progress.js +57 -0
- package/dist/components/rewards/xp-progress.js.map +1 -0
- package/dist/components/rewards/xp-toast-content.cjs +49 -0
- package/dist/components/rewards/xp-toast-content.cjs.map +1 -0
- package/dist/components/rewards/xp-toast-content.d.cts +14 -0
- package/dist/components/rewards/xp-toast-content.d.ts +14 -0
- package/dist/components/rewards/xp-toast-content.js +25 -0
- package/dist/components/rewards/xp-toast-content.js.map +1 -0
- package/dist/index.d.cts +9 -128
- package/dist/index.d.ts +9 -128
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
function XpToastContent({ xp, label, color = "#8b5cf6" }) {
|
|
3
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5", children: [
|
|
4
|
+
/* @__PURE__ */ jsxs(
|
|
5
|
+
"span",
|
|
6
|
+
{
|
|
7
|
+
className: "flex h-8 shrink-0 items-center rounded-full border px-2.5 text-sm font-black tabular-nums",
|
|
8
|
+
style: { borderColor: `${color}60`, backgroundColor: `${color}18`, color },
|
|
9
|
+
children: [
|
|
10
|
+
"+",
|
|
11
|
+
xp,
|
|
12
|
+
" XP"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
),
|
|
16
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
17
|
+
/* @__PURE__ */ jsx("p", { className: "truncate text-sm font-semibold", children: label }),
|
|
18
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Counts toward your score soon" })
|
|
19
|
+
] })
|
|
20
|
+
] });
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
XpToastContent
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=xp-toast-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/rewards/xp-toast-content.tsx"],"sourcesContent":["export interface XpToastContentProps {\n xp: number;\n /** The action's configured label, e.g. \"Mint an IP asset\". */\n label: string;\n color?: string;\n}\n\n/** Toast body for optimistic XP feedback: \"+20 XP · Mint an IP asset\".\n * Scores recompute on a schedule, so this shows the action's configured\n * value — the caller must never present it as a live balance. */\nexport function XpToastContent({ xp, label, color = \"#8b5cf6\" }: XpToastContentProps) {\n return (\n <div className=\"flex items-center gap-2.5\">\n <span\n className=\"flex h-8 shrink-0 items-center rounded-full border px-2.5 text-sm font-black tabular-nums\"\n style={{ borderColor: `${color}60`, backgroundColor: `${color}18`, color }}\n >\n +{xp} XP\n </span>\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-semibold\">{label}</p>\n <p className=\"text-xs text-muted-foreground\">Counts toward your score soon</p>\n </div>\n </div>\n );\n}\n"],"mappings":"AAaM,SAOE,KAPF;AAHC,SAAS,eAAe,EAAE,IAAI,OAAO,QAAQ,UAAU,GAAwB;AACpF,SACE,qBAAC,SAAI,WAAU,6BACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,aAAa,GAAG,KAAK,MAAM,iBAAiB,GAAG,KAAK,MAAM,MAAM;AAAA,QAC1E;AAAA;AAAA,UACG;AAAA,UAAG;AAAA;AAAA;AAAA,IACP;AAAA,IACA,qBAAC,SAAI,WAAU,WACb;AAAA,0BAAC,OAAE,WAAU,kCAAkC,iBAAM;AAAA,MACrD,oBAAC,OAAE,WAAU,iCAAgC,2CAA6B;AAAA,OAC5E;AAAA,KACF;AAEJ;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -56,135 +56,16 @@ export { ServiceHeader, ServiceHeaderProps } from './components/service-header.c
|
|
|
56
56
|
export { ClaimRail, ClaimRailProps } from './components/claim-rail.cjs';
|
|
57
57
|
export { ServiceFormShell, ServiceFormShellProps } from './components/service-form-shell.cjs';
|
|
58
58
|
export { StepNav, StepNavProps, StepNavStep } from './components/step-nav.cjs';
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
export { LevelBadge, LevelBadgeProps } from './components/rewards/level-badge.cjs';
|
|
60
|
+
export { XpProgress, XpProgressProps } from './components/rewards/xp-progress.cjs';
|
|
61
|
+
export { BadgeShelf, BadgeShelfBadge, BadgeShelfProps } from './components/rewards/badge-shelf.cjs';
|
|
62
|
+
export { ScoreSummaryCard, ScoreSummaryCardProps } from './components/rewards/score-summary-card.cjs';
|
|
63
|
+
export { LeaderboardEntryLike, LeaderboardTable, LeaderboardTableProps, LeaderboardWidget, LeaderboardWidgetProps } from './components/rewards/leaderboard-table.cjs';
|
|
64
|
+
export { LevelLadder, LevelLadderProps } from './components/rewards/level-ladder.cjs';
|
|
65
|
+
export { XpToastContent, XpToastContentProps } from './components/rewards/xp-toast-content.cjs';
|
|
61
66
|
import 'clsx';
|
|
62
67
|
import 'lucide-react';
|
|
68
|
+
import 'react/jsx-runtime';
|
|
63
69
|
import '@medialane/sdk';
|
|
70
|
+
import 'react';
|
|
64
71
|
import 'framer-motion';
|
|
65
|
-
|
|
66
|
-
interface LevelBadgeProps {
|
|
67
|
-
level: number;
|
|
68
|
-
name: string;
|
|
69
|
-
badgeColor: string;
|
|
70
|
-
size?: "sm" | "md" | "lg";
|
|
71
|
-
className?: string;
|
|
72
|
-
}
|
|
73
|
-
/** Color-coded level chip ("Lv.6 Voyager"). Pure presentation — the consuming
|
|
74
|
-
* app supplies level data from the rewards API. */
|
|
75
|
-
declare function LevelBadge({ level, name, badgeColor, size, className }: LevelBadgeProps): react_jsx_runtime.JSX.Element;
|
|
76
|
-
|
|
77
|
-
interface XpProgressProps {
|
|
78
|
-
totalXp: number;
|
|
79
|
-
/** XP required to reach the current level. */
|
|
80
|
-
levelXp: number;
|
|
81
|
-
/** XP required for the next level; null at max level (renders full). */
|
|
82
|
-
nextLevelXp: number | null;
|
|
83
|
-
badgeColor: string;
|
|
84
|
-
variant?: "bar" | "ring";
|
|
85
|
-
/** Ring diameter in px (ring variant only). */
|
|
86
|
-
size?: number;
|
|
87
|
-
className?: string;
|
|
88
|
-
}
|
|
89
|
-
/** XP progress toward the next level, as a rounded bar or an SVG ring. */
|
|
90
|
-
declare function XpProgress({ totalXp, levelXp, nextLevelXp, badgeColor, variant, size, className }: XpProgressProps): react_jsx_runtime.JSX.Element;
|
|
91
|
-
|
|
92
|
-
interface BadgeShelfBadge {
|
|
93
|
-
key: string;
|
|
94
|
-
name: string;
|
|
95
|
-
description: string;
|
|
96
|
-
icon: string;
|
|
97
|
-
color: string;
|
|
98
|
-
category: string;
|
|
99
|
-
}
|
|
100
|
-
interface BadgeShelfProps {
|
|
101
|
-
/** The badges to render — the earned set, or the full catalog with `earnedKeys`. */
|
|
102
|
-
badges: BadgeShelfBadge[];
|
|
103
|
-
/** When set, badges outside this set render locked (grayscale, reduced opacity). */
|
|
104
|
-
earnedKeys?: string[];
|
|
105
|
-
/** Render locked badges too (requires `earnedKeys`); default hides them. */
|
|
106
|
-
showLocked?: boolean;
|
|
107
|
-
className?: string;
|
|
108
|
-
}
|
|
109
|
-
/** Badge chips with native tooltips. Earned badges render in their color;
|
|
110
|
-
* locked ones (present in `badges` but not `earnedKeys`) render muted. */
|
|
111
|
-
declare function BadgeShelf({ badges, earnedKeys, showLocked, className }: BadgeShelfProps): react_jsx_runtime.JSX.Element | null;
|
|
112
|
-
|
|
113
|
-
interface ScoreSummaryCardProps {
|
|
114
|
-
level: number;
|
|
115
|
-
levelName: string;
|
|
116
|
-
badgeColor: string;
|
|
117
|
-
totalXp: number;
|
|
118
|
-
/** XP required to reach the current level. */
|
|
119
|
-
levelXp: number;
|
|
120
|
-
nextLevel: {
|
|
121
|
-
level: number;
|
|
122
|
-
name: string;
|
|
123
|
-
xpRequired: number;
|
|
124
|
-
} | null;
|
|
125
|
-
/** A few earned badges to preview (already limited by the caller). */
|
|
126
|
-
topBadges?: BadgeShelfBadge[];
|
|
127
|
-
/** Where the card links ("/rewards"); rendered as a plain anchor. */
|
|
128
|
-
href?: string;
|
|
129
|
-
className?: string;
|
|
130
|
-
}
|
|
131
|
-
/** Compact score overview for portfolio/profile surfaces: level ring, XP,
|
|
132
|
-
* next-level progress, and a short badge preview. */
|
|
133
|
-
declare function ScoreSummaryCard({ level, levelName, badgeColor, totalXp, levelXp, nextLevel, topBadges, href, className, }: ScoreSummaryCardProps): react_jsx_runtime.JSX.Element;
|
|
134
|
-
|
|
135
|
-
interface LeaderboardEntryLike {
|
|
136
|
-
rank: number;
|
|
137
|
-
address: string;
|
|
138
|
-
publicId?: string | null;
|
|
139
|
-
totalXp: number;
|
|
140
|
-
currentLevel: number;
|
|
141
|
-
currentLevelName: string;
|
|
142
|
-
badgeColor: string;
|
|
143
|
-
}
|
|
144
|
-
interface LeaderboardTableProps {
|
|
145
|
-
entries: LeaderboardEntryLike[];
|
|
146
|
-
/** The viewer's address — its row gets highlighted. */
|
|
147
|
-
highlightAddress?: string | null;
|
|
148
|
-
/** Render the address cell (e.g. a profile link). Defaults to a shortened address. */
|
|
149
|
-
renderAddress?: (address: string) => ReactNode;
|
|
150
|
-
className?: string;
|
|
151
|
-
}
|
|
152
|
-
/** Full leaderboard rows: rank, address, level chip, XP. */
|
|
153
|
-
declare function LeaderboardTable({ entries, highlightAddress, renderAddress, className }: LeaderboardTableProps): react_jsx_runtime.JSX.Element;
|
|
154
|
-
interface LeaderboardWidgetProps {
|
|
155
|
-
entries: LeaderboardEntryLike[];
|
|
156
|
-
title?: string;
|
|
157
|
-
/** Link to the full leaderboard ("/rewards"). */
|
|
158
|
-
href?: string;
|
|
159
|
-
renderAddress?: (address: string) => ReactNode;
|
|
160
|
-
className?: string;
|
|
161
|
-
}
|
|
162
|
-
/** Compact top-N card for homepage/discover rails. */
|
|
163
|
-
declare function LeaderboardWidget({ entries, title, href, renderAddress, className }: LeaderboardWidgetProps): react_jsx_runtime.JSX.Element | null;
|
|
164
|
-
|
|
165
|
-
interface LevelLadderProps {
|
|
166
|
-
levels: {
|
|
167
|
-
level: number;
|
|
168
|
-
name: string;
|
|
169
|
-
xpRequired: number;
|
|
170
|
-
badgeColor: string;
|
|
171
|
-
}[];
|
|
172
|
-
currentLevel: number;
|
|
173
|
-
className?: string;
|
|
174
|
-
}
|
|
175
|
-
/** The full level arc as a horizontally scrollable chip rail; the current
|
|
176
|
-
* level is highlighted, passed levels render solid, future ones muted. */
|
|
177
|
-
declare function LevelLadder({ levels, currentLevel, className }: LevelLadderProps): react_jsx_runtime.JSX.Element;
|
|
178
|
-
|
|
179
|
-
interface XpToastContentProps {
|
|
180
|
-
xp: number;
|
|
181
|
-
/** The action's configured label, e.g. "Mint an IP asset". */
|
|
182
|
-
label: string;
|
|
183
|
-
color?: string;
|
|
184
|
-
}
|
|
185
|
-
/** Toast body for optimistic XP feedback: "+20 XP · Mint an IP asset".
|
|
186
|
-
* Scores recompute on a schedule, so this shows the action's configured
|
|
187
|
-
* value — the caller must never present it as a live balance. */
|
|
188
|
-
declare function XpToastContent({ xp, label, color }: XpToastContentProps): react_jsx_runtime.JSX.Element;
|
|
189
|
-
|
|
190
|
-
export { BadgeShelf, type BadgeShelfBadge, type BadgeShelfProps, type LeaderboardEntryLike, LeaderboardTable, type LeaderboardTableProps, LeaderboardWidget, type LeaderboardWidgetProps, LevelBadge, type LevelBadgeProps, LevelLadder, type LevelLadderProps, ScoreSummaryCard, type ScoreSummaryCardProps, XpProgress, type XpProgressProps, XpToastContent, type XpToastContentProps };
|
package/dist/index.d.ts
CHANGED
|
@@ -56,135 +56,16 @@ export { ServiceHeader, ServiceHeaderProps } from './components/service-header.j
|
|
|
56
56
|
export { ClaimRail, ClaimRailProps } from './components/claim-rail.js';
|
|
57
57
|
export { ServiceFormShell, ServiceFormShellProps } from './components/service-form-shell.js';
|
|
58
58
|
export { StepNav, StepNavProps, StepNavStep } from './components/step-nav.js';
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
export { LevelBadge, LevelBadgeProps } from './components/rewards/level-badge.js';
|
|
60
|
+
export { XpProgress, XpProgressProps } from './components/rewards/xp-progress.js';
|
|
61
|
+
export { BadgeShelf, BadgeShelfBadge, BadgeShelfProps } from './components/rewards/badge-shelf.js';
|
|
62
|
+
export { ScoreSummaryCard, ScoreSummaryCardProps } from './components/rewards/score-summary-card.js';
|
|
63
|
+
export { LeaderboardEntryLike, LeaderboardTable, LeaderboardTableProps, LeaderboardWidget, LeaderboardWidgetProps } from './components/rewards/leaderboard-table.js';
|
|
64
|
+
export { LevelLadder, LevelLadderProps } from './components/rewards/level-ladder.js';
|
|
65
|
+
export { XpToastContent, XpToastContentProps } from './components/rewards/xp-toast-content.js';
|
|
61
66
|
import 'clsx';
|
|
62
67
|
import 'lucide-react';
|
|
68
|
+
import 'react/jsx-runtime';
|
|
63
69
|
import '@medialane/sdk';
|
|
70
|
+
import 'react';
|
|
64
71
|
import 'framer-motion';
|
|
65
|
-
|
|
66
|
-
interface LevelBadgeProps {
|
|
67
|
-
level: number;
|
|
68
|
-
name: string;
|
|
69
|
-
badgeColor: string;
|
|
70
|
-
size?: "sm" | "md" | "lg";
|
|
71
|
-
className?: string;
|
|
72
|
-
}
|
|
73
|
-
/** Color-coded level chip ("Lv.6 Voyager"). Pure presentation — the consuming
|
|
74
|
-
* app supplies level data from the rewards API. */
|
|
75
|
-
declare function LevelBadge({ level, name, badgeColor, size, className }: LevelBadgeProps): react_jsx_runtime.JSX.Element;
|
|
76
|
-
|
|
77
|
-
interface XpProgressProps {
|
|
78
|
-
totalXp: number;
|
|
79
|
-
/** XP required to reach the current level. */
|
|
80
|
-
levelXp: number;
|
|
81
|
-
/** XP required for the next level; null at max level (renders full). */
|
|
82
|
-
nextLevelXp: number | null;
|
|
83
|
-
badgeColor: string;
|
|
84
|
-
variant?: "bar" | "ring";
|
|
85
|
-
/** Ring diameter in px (ring variant only). */
|
|
86
|
-
size?: number;
|
|
87
|
-
className?: string;
|
|
88
|
-
}
|
|
89
|
-
/** XP progress toward the next level, as a rounded bar or an SVG ring. */
|
|
90
|
-
declare function XpProgress({ totalXp, levelXp, nextLevelXp, badgeColor, variant, size, className }: XpProgressProps): react_jsx_runtime.JSX.Element;
|
|
91
|
-
|
|
92
|
-
interface BadgeShelfBadge {
|
|
93
|
-
key: string;
|
|
94
|
-
name: string;
|
|
95
|
-
description: string;
|
|
96
|
-
icon: string;
|
|
97
|
-
color: string;
|
|
98
|
-
category: string;
|
|
99
|
-
}
|
|
100
|
-
interface BadgeShelfProps {
|
|
101
|
-
/** The badges to render — the earned set, or the full catalog with `earnedKeys`. */
|
|
102
|
-
badges: BadgeShelfBadge[];
|
|
103
|
-
/** When set, badges outside this set render locked (grayscale, reduced opacity). */
|
|
104
|
-
earnedKeys?: string[];
|
|
105
|
-
/** Render locked badges too (requires `earnedKeys`); default hides them. */
|
|
106
|
-
showLocked?: boolean;
|
|
107
|
-
className?: string;
|
|
108
|
-
}
|
|
109
|
-
/** Badge chips with native tooltips. Earned badges render in their color;
|
|
110
|
-
* locked ones (present in `badges` but not `earnedKeys`) render muted. */
|
|
111
|
-
declare function BadgeShelf({ badges, earnedKeys, showLocked, className }: BadgeShelfProps): react_jsx_runtime.JSX.Element | null;
|
|
112
|
-
|
|
113
|
-
interface ScoreSummaryCardProps {
|
|
114
|
-
level: number;
|
|
115
|
-
levelName: string;
|
|
116
|
-
badgeColor: string;
|
|
117
|
-
totalXp: number;
|
|
118
|
-
/** XP required to reach the current level. */
|
|
119
|
-
levelXp: number;
|
|
120
|
-
nextLevel: {
|
|
121
|
-
level: number;
|
|
122
|
-
name: string;
|
|
123
|
-
xpRequired: number;
|
|
124
|
-
} | null;
|
|
125
|
-
/** A few earned badges to preview (already limited by the caller). */
|
|
126
|
-
topBadges?: BadgeShelfBadge[];
|
|
127
|
-
/** Where the card links ("/rewards"); rendered as a plain anchor. */
|
|
128
|
-
href?: string;
|
|
129
|
-
className?: string;
|
|
130
|
-
}
|
|
131
|
-
/** Compact score overview for portfolio/profile surfaces: level ring, XP,
|
|
132
|
-
* next-level progress, and a short badge preview. */
|
|
133
|
-
declare function ScoreSummaryCard({ level, levelName, badgeColor, totalXp, levelXp, nextLevel, topBadges, href, className, }: ScoreSummaryCardProps): react_jsx_runtime.JSX.Element;
|
|
134
|
-
|
|
135
|
-
interface LeaderboardEntryLike {
|
|
136
|
-
rank: number;
|
|
137
|
-
address: string;
|
|
138
|
-
publicId?: string | null;
|
|
139
|
-
totalXp: number;
|
|
140
|
-
currentLevel: number;
|
|
141
|
-
currentLevelName: string;
|
|
142
|
-
badgeColor: string;
|
|
143
|
-
}
|
|
144
|
-
interface LeaderboardTableProps {
|
|
145
|
-
entries: LeaderboardEntryLike[];
|
|
146
|
-
/** The viewer's address — its row gets highlighted. */
|
|
147
|
-
highlightAddress?: string | null;
|
|
148
|
-
/** Render the address cell (e.g. a profile link). Defaults to a shortened address. */
|
|
149
|
-
renderAddress?: (address: string) => ReactNode;
|
|
150
|
-
className?: string;
|
|
151
|
-
}
|
|
152
|
-
/** Full leaderboard rows: rank, address, level chip, XP. */
|
|
153
|
-
declare function LeaderboardTable({ entries, highlightAddress, renderAddress, className }: LeaderboardTableProps): react_jsx_runtime.JSX.Element;
|
|
154
|
-
interface LeaderboardWidgetProps {
|
|
155
|
-
entries: LeaderboardEntryLike[];
|
|
156
|
-
title?: string;
|
|
157
|
-
/** Link to the full leaderboard ("/rewards"). */
|
|
158
|
-
href?: string;
|
|
159
|
-
renderAddress?: (address: string) => ReactNode;
|
|
160
|
-
className?: string;
|
|
161
|
-
}
|
|
162
|
-
/** Compact top-N card for homepage/discover rails. */
|
|
163
|
-
declare function LeaderboardWidget({ entries, title, href, renderAddress, className }: LeaderboardWidgetProps): react_jsx_runtime.JSX.Element | null;
|
|
164
|
-
|
|
165
|
-
interface LevelLadderProps {
|
|
166
|
-
levels: {
|
|
167
|
-
level: number;
|
|
168
|
-
name: string;
|
|
169
|
-
xpRequired: number;
|
|
170
|
-
badgeColor: string;
|
|
171
|
-
}[];
|
|
172
|
-
currentLevel: number;
|
|
173
|
-
className?: string;
|
|
174
|
-
}
|
|
175
|
-
/** The full level arc as a horizontally scrollable chip rail; the current
|
|
176
|
-
* level is highlighted, passed levels render solid, future ones muted. */
|
|
177
|
-
declare function LevelLadder({ levels, currentLevel, className }: LevelLadderProps): react_jsx_runtime.JSX.Element;
|
|
178
|
-
|
|
179
|
-
interface XpToastContentProps {
|
|
180
|
-
xp: number;
|
|
181
|
-
/** The action's configured label, e.g. "Mint an IP asset". */
|
|
182
|
-
label: string;
|
|
183
|
-
color?: string;
|
|
184
|
-
}
|
|
185
|
-
/** Toast body for optimistic XP feedback: "+20 XP · Mint an IP asset".
|
|
186
|
-
* Scores recompute on a schedule, so this shows the action's configured
|
|
187
|
-
* value — the caller must never present it as a live balance. */
|
|
188
|
-
declare function XpToastContent({ xp, label, color }: XpToastContentProps): react_jsx_runtime.JSX.Element;
|
|
189
|
-
|
|
190
|
-
export { BadgeShelf, type BadgeShelfBadge, type BadgeShelfProps, type LeaderboardEntryLike, LeaderboardTable, type LeaderboardTableProps, LeaderboardWidget, type LeaderboardWidgetProps, LevelBadge, type LevelBadgeProps, LevelLadder, type LevelLadderProps, ScoreSummaryCard, type ScoreSummaryCardProps, XpProgress, type XpProgressProps, XpToastContent, type XpToastContentProps };
|