@rayvelez/findash-ui 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +286 -0
- package/dist/index.d.mts +527 -0
- package/dist/index.d.ts +527 -0
- package/dist/index.js +1058 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1042 -0
- package/dist/index.mjs.map +1 -0
- package/dist/theme.css +188 -0
- package/package.json +66 -0
- package/tailwind.preset.js +97 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Utility function to merge Tailwind CSS classes with clsx
|
|
6
|
+
* @param inputs - Class values to merge
|
|
7
|
+
* @returns Merged class string
|
|
8
|
+
*/
|
|
9
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* FinDash UI - Type Definitions
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* User information for profile displays
|
|
16
|
+
*/
|
|
17
|
+
interface UserInfo {
|
|
18
|
+
/** User's display name */
|
|
19
|
+
name: string;
|
|
20
|
+
/** User's role or subscription tier */
|
|
21
|
+
role: string;
|
|
22
|
+
/** URL to user's avatar image */
|
|
23
|
+
avatarUrl: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Navigation item for sidebar/mobile nav
|
|
27
|
+
*/
|
|
28
|
+
interface NavItem {
|
|
29
|
+
/** Material icon name */
|
|
30
|
+
icon: string;
|
|
31
|
+
/** Display label */
|
|
32
|
+
label: string;
|
|
33
|
+
/** Whether this item is currently active */
|
|
34
|
+
active: boolean;
|
|
35
|
+
/** Optional URL for navigation */
|
|
36
|
+
href?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Action item for floating nav bar and quick actions
|
|
40
|
+
*/
|
|
41
|
+
interface ActionItem {
|
|
42
|
+
/** Material icon name */
|
|
43
|
+
icon: string;
|
|
44
|
+
/** Action label */
|
|
45
|
+
label: string;
|
|
46
|
+
/** Optional color class */
|
|
47
|
+
color?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Portfolio allocation entry
|
|
51
|
+
*/
|
|
52
|
+
interface PortfolioAllocation {
|
|
53
|
+
/** Asset name (e.g., "Bitcoin") */
|
|
54
|
+
asset: string;
|
|
55
|
+
/** Asset symbol (e.g., "BTC") */
|
|
56
|
+
symbol: string;
|
|
57
|
+
/** Percentage of portfolio (0-100) */
|
|
58
|
+
percentage: number;
|
|
59
|
+
/** Tailwind color class (e.g., "bg-primary") */
|
|
60
|
+
color: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Watchlist cryptocurrency item
|
|
64
|
+
*/
|
|
65
|
+
interface WatchlistItem {
|
|
66
|
+
/** Cryptocurrency name */
|
|
67
|
+
name: string;
|
|
68
|
+
/** Cryptocurrency symbol */
|
|
69
|
+
symbol: string;
|
|
70
|
+
/** Current price as string */
|
|
71
|
+
price: string;
|
|
72
|
+
/** Price change (e.g., "+5.2%") */
|
|
73
|
+
change: string;
|
|
74
|
+
/** Whether the change is positive */
|
|
75
|
+
positive: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Market forecast timeline item
|
|
79
|
+
*/
|
|
80
|
+
interface ForecastItem {
|
|
81
|
+
/** Year of the forecast */
|
|
82
|
+
year: string;
|
|
83
|
+
/** Forecast description */
|
|
84
|
+
description: string;
|
|
85
|
+
/** Whether this milestone has been completed */
|
|
86
|
+
completed: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Transaction user for avatar display
|
|
90
|
+
*/
|
|
91
|
+
interface TransactionUser {
|
|
92
|
+
/** Alt text for avatar */
|
|
93
|
+
alt: string;
|
|
94
|
+
/** Avatar image URL */
|
|
95
|
+
avatarUrl: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Scheduled transfer information
|
|
99
|
+
*/
|
|
100
|
+
interface ScheduledTransfer {
|
|
101
|
+
/** Amount and destination (e.g., "0.5 ETH → Wallet #2") */
|
|
102
|
+
description: string;
|
|
103
|
+
/** Time until transfer (e.g., "In 2 days") */
|
|
104
|
+
timeUntil: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Props for SalesStatisticsCard
|
|
108
|
+
*/
|
|
109
|
+
interface SalesStatisticsCardProps {
|
|
110
|
+
/** Number of visitors */
|
|
111
|
+
visitors?: number;
|
|
112
|
+
/** Days since last update */
|
|
113
|
+
updatedDaysAgo?: number;
|
|
114
|
+
/** Callback when period changes */
|
|
115
|
+
onPeriodChange?: (period: string) => void;
|
|
116
|
+
/** Loading state */
|
|
117
|
+
isLoading?: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Props for CurrentBalanceCard
|
|
121
|
+
*/
|
|
122
|
+
interface CurrentBalanceCardProps {
|
|
123
|
+
/** Current balance amount */
|
|
124
|
+
balance?: number;
|
|
125
|
+
/** Percentage change */
|
|
126
|
+
percentageChange?: number;
|
|
127
|
+
/** Average score/value */
|
|
128
|
+
averageScore?: number;
|
|
129
|
+
/** Currency symbol */
|
|
130
|
+
currency?: string;
|
|
131
|
+
/** Previous button callback */
|
|
132
|
+
onPrevious?: () => void;
|
|
133
|
+
/** Next button callback */
|
|
134
|
+
onNext?: () => void;
|
|
135
|
+
/** Loading state */
|
|
136
|
+
isLoading?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Props for InvestmentGrowthCard
|
|
140
|
+
*/
|
|
141
|
+
interface InvestmentGrowthCardProps {
|
|
142
|
+
/** Growth percentage */
|
|
143
|
+
percentage?: number;
|
|
144
|
+
/** Monthly average value */
|
|
145
|
+
monthlyAverage?: number;
|
|
146
|
+
/** Total value */
|
|
147
|
+
totalValue?: number;
|
|
148
|
+
/** Currency symbol */
|
|
149
|
+
currency?: string;
|
|
150
|
+
/** Previous button callback */
|
|
151
|
+
onPrevious?: () => void;
|
|
152
|
+
/** Next button callback */
|
|
153
|
+
onNext?: () => void;
|
|
154
|
+
/** Loading state */
|
|
155
|
+
isLoading?: boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Props for BtcPriceCard
|
|
159
|
+
*/
|
|
160
|
+
interface BtcPriceCardProps {
|
|
161
|
+
/** Bitcoin price */
|
|
162
|
+
price?: number;
|
|
163
|
+
/** Percentage change */
|
|
164
|
+
changePercentage?: number;
|
|
165
|
+
/** Currency symbol */
|
|
166
|
+
currency?: string;
|
|
167
|
+
/** Loading state */
|
|
168
|
+
isLoading?: boolean;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Props for MarketCapCard
|
|
172
|
+
*/
|
|
173
|
+
interface MarketCapCardProps {
|
|
174
|
+
/** Market cap value as formatted string */
|
|
175
|
+
value?: string;
|
|
176
|
+
/** Loading state */
|
|
177
|
+
isLoading?: boolean;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Props for MarketForecastCard
|
|
181
|
+
*/
|
|
182
|
+
interface MarketForecastCardProps {
|
|
183
|
+
/** Array of forecast items */
|
|
184
|
+
forecasts?: ForecastItem[];
|
|
185
|
+
/** Loading state */
|
|
186
|
+
isLoading?: boolean;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Props for PortfolioAllocationCard
|
|
190
|
+
*/
|
|
191
|
+
interface PortfolioAllocationCardProps {
|
|
192
|
+
/** Array of portfolio allocations */
|
|
193
|
+
allocations?: PortfolioAllocation[];
|
|
194
|
+
/** Options button callback */
|
|
195
|
+
onOptionsClick?: () => void;
|
|
196
|
+
/** Loading state */
|
|
197
|
+
isLoading?: boolean;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Props for WatchlistCard
|
|
201
|
+
*/
|
|
202
|
+
interface WatchlistCardProps {
|
|
203
|
+
/** Array of watchlist items */
|
|
204
|
+
items?: WatchlistItem[];
|
|
205
|
+
/** View all button callback */
|
|
206
|
+
onViewAll?: () => void;
|
|
207
|
+
/** Loading state */
|
|
208
|
+
isLoading?: boolean;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Props for RecentTransactionsCard
|
|
212
|
+
*/
|
|
213
|
+
interface RecentTransactionsCardProps {
|
|
214
|
+
/** Transaction summary text */
|
|
215
|
+
summary?: string;
|
|
216
|
+
/** Array of user avatars to display */
|
|
217
|
+
users?: TransactionUser[];
|
|
218
|
+
/** Options button callback */
|
|
219
|
+
onOptionsClick?: () => void;
|
|
220
|
+
/** Loading state */
|
|
221
|
+
isLoading?: boolean;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Props for QuickActionsCard
|
|
225
|
+
*/
|
|
226
|
+
interface QuickActionsCardProps {
|
|
227
|
+
/** Array of action items */
|
|
228
|
+
actions?: ActionItem[];
|
|
229
|
+
/** Scheduled transfer info */
|
|
230
|
+
scheduledTransfer?: ScheduledTransfer;
|
|
231
|
+
/** Action click callback */
|
|
232
|
+
onActionClick?: (action: ActionItem) => void;
|
|
233
|
+
/** Loading state */
|
|
234
|
+
isLoading?: boolean;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Props for FloatingNavBar
|
|
238
|
+
*/
|
|
239
|
+
interface FloatingNavBarProps {
|
|
240
|
+
/** Array of action items */
|
|
241
|
+
actions?: ActionItem[];
|
|
242
|
+
/** Action click callback */
|
|
243
|
+
onActionClick?: (action: ActionItem) => void;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Props for Sidebar
|
|
247
|
+
*/
|
|
248
|
+
interface SidebarProps {
|
|
249
|
+
/** Navigation items */
|
|
250
|
+
navItems?: NavItem[];
|
|
251
|
+
/** User information */
|
|
252
|
+
user?: UserInfo;
|
|
253
|
+
/** Theme toggle callback */
|
|
254
|
+
onToggleTheme: () => void;
|
|
255
|
+
/** Whether sidebar is collapsed */
|
|
256
|
+
isCollapsed: boolean;
|
|
257
|
+
/** Toggle collapse callback */
|
|
258
|
+
onToggleCollapse: () => void;
|
|
259
|
+
/** Navigation item click callback */
|
|
260
|
+
onNavItemClick?: (item: NavItem) => void;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Props for MobileNav
|
|
264
|
+
*/
|
|
265
|
+
interface MobileNavProps {
|
|
266
|
+
/** Navigation items */
|
|
267
|
+
navItems?: NavItem[];
|
|
268
|
+
/** User information */
|
|
269
|
+
user?: UserInfo;
|
|
270
|
+
/** Theme toggle callback */
|
|
271
|
+
onToggleTheme: () => void;
|
|
272
|
+
/** Navigation item click callback */
|
|
273
|
+
onNavItemClick?: (item: NavItem) => void;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Complete dashboard data structure
|
|
277
|
+
*/
|
|
278
|
+
interface DashboardData {
|
|
279
|
+
/** User information */
|
|
280
|
+
user?: UserInfo;
|
|
281
|
+
/** Balance data */
|
|
282
|
+
balance?: {
|
|
283
|
+
currentBalance: number;
|
|
284
|
+
percentageChange: number;
|
|
285
|
+
averageScore: number;
|
|
286
|
+
};
|
|
287
|
+
/** Investment growth data */
|
|
288
|
+
investmentGrowth?: {
|
|
289
|
+
percentage: number;
|
|
290
|
+
monthlyAverage: number;
|
|
291
|
+
totalValue: number;
|
|
292
|
+
};
|
|
293
|
+
/** BTC price data */
|
|
294
|
+
btcPrice?: {
|
|
295
|
+
price: number;
|
|
296
|
+
changePercentage: number;
|
|
297
|
+
};
|
|
298
|
+
/** Market cap data */
|
|
299
|
+
marketCap?: {
|
|
300
|
+
value: string;
|
|
301
|
+
};
|
|
302
|
+
/** Sales statistics data */
|
|
303
|
+
salesStatistics?: {
|
|
304
|
+
visitors: number;
|
|
305
|
+
updatedDaysAgo: number;
|
|
306
|
+
};
|
|
307
|
+
/** Portfolio allocations */
|
|
308
|
+
portfolio?: PortfolioAllocation[];
|
|
309
|
+
/** Watchlist items */
|
|
310
|
+
watchlist?: WatchlistItem[];
|
|
311
|
+
/** Market forecasts */
|
|
312
|
+
forecasts?: ForecastItem[];
|
|
313
|
+
/** Transaction data */
|
|
314
|
+
transactions?: {
|
|
315
|
+
summary: string;
|
|
316
|
+
users?: TransactionUser[];
|
|
317
|
+
};
|
|
318
|
+
/** Quick actions */
|
|
319
|
+
quickActions?: ActionItem[];
|
|
320
|
+
/** Scheduled transfer */
|
|
321
|
+
scheduledTransfer?: ScheduledTransfer;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Props for DashboardTemplate
|
|
325
|
+
*/
|
|
326
|
+
interface DashboardTemplateProps {
|
|
327
|
+
/** Dashboard data */
|
|
328
|
+
data?: DashboardData;
|
|
329
|
+
/** Global loading state */
|
|
330
|
+
isLoading?: boolean;
|
|
331
|
+
/** Theme toggle callback */
|
|
332
|
+
onThemeToggle?: () => void;
|
|
333
|
+
/** Navigation item click callback */
|
|
334
|
+
onNavItemClick?: (item: NavItem) => void;
|
|
335
|
+
/** Floating action click callback */
|
|
336
|
+
onActionClick?: (action: ActionItem) => void;
|
|
337
|
+
/** Additional className for wrapper */
|
|
338
|
+
className?: string;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* SalesStatisticsCard - Displays visitor statistics with decorative bar chart
|
|
343
|
+
*
|
|
344
|
+
* @example
|
|
345
|
+
* ```tsx
|
|
346
|
+
* <SalesStatisticsCard
|
|
347
|
+
* visitors={2025}
|
|
348
|
+
* updatedDaysAgo={1}
|
|
349
|
+
* onPeriodChange={(period) => console.log(period)}
|
|
350
|
+
* />
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
declare function SalesStatisticsCard({ visitors, updatedDaysAgo, onPeriodChange, isLoading, }: SalesStatisticsCardProps): react_jsx_runtime.JSX.Element;
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* CurrentBalanceCard - Displays current balance with gauge visualization
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* ```tsx
|
|
360
|
+
* <CurrentBalanceCard
|
|
361
|
+
* balance={15368}
|
|
362
|
+
* percentageChange={14}
|
|
363
|
+
* averageScore={18324}
|
|
364
|
+
* onPrevious={() => {}}
|
|
365
|
+
* onNext={() => {}}
|
|
366
|
+
* />
|
|
367
|
+
* ```
|
|
368
|
+
*/
|
|
369
|
+
declare function CurrentBalanceCard({ balance, percentageChange, averageScore, currency, onPrevious, onNext, isLoading, }: CurrentBalanceCardProps): react_jsx_runtime.JSX.Element;
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* InvestmentGrowthCard - Displays investment growth metrics with gauge visualization
|
|
373
|
+
*
|
|
374
|
+
* @example
|
|
375
|
+
* ```tsx
|
|
376
|
+
* <InvestmentGrowthCard
|
|
377
|
+
* percentage={8.2}
|
|
378
|
+
* monthlyAverage={12450}
|
|
379
|
+
* totalValue={24890}
|
|
380
|
+
* />
|
|
381
|
+
* ```
|
|
382
|
+
*/
|
|
383
|
+
declare function InvestmentGrowthCard({ percentage, monthlyAverage, totalValue, currency, onPrevious, onNext, isLoading, }: InvestmentGrowthCardProps): react_jsx_runtime.JSX.Element;
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* BtcPriceCard - Displays Bitcoin price with progress indicator
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* ```tsx
|
|
390
|
+
* <BtcPriceCard price={21105} changePercentage={28.21} />
|
|
391
|
+
* ```
|
|
392
|
+
*/
|
|
393
|
+
declare function BtcPriceCard({ price, changePercentage, currency, isLoading, }: BtcPriceCardProps): react_jsx_runtime.JSX.Element;
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* MarketCapCard - Displays market cap forecast with line chart
|
|
397
|
+
*
|
|
398
|
+
* @example
|
|
399
|
+
* ```tsx
|
|
400
|
+
* <MarketCapCard value="1,3trln$" />
|
|
401
|
+
* ```
|
|
402
|
+
*/
|
|
403
|
+
declare function MarketCapCard({ value, isLoading, }: MarketCapCardProps): react_jsx_runtime.JSX.Element;
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* MarketForecastCard - Displays market forecast timeline
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* ```tsx
|
|
410
|
+
* <MarketForecastCard
|
|
411
|
+
* forecasts={[
|
|
412
|
+
* { year: "2024", description: "Market milestone", completed: false }
|
|
413
|
+
* ]}
|
|
414
|
+
* />
|
|
415
|
+
* ```
|
|
416
|
+
*/
|
|
417
|
+
declare function MarketForecastCard({ forecasts, isLoading, }: MarketForecastCardProps): react_jsx_runtime.JSX.Element;
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* PortfolioAllocationCard - Displays portfolio breakdown with progress bar
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* ```tsx
|
|
424
|
+
* <PortfolioAllocationCard
|
|
425
|
+
* allocations={[
|
|
426
|
+
* { asset: "Bitcoin", symbol: "BTC", percentage: 45, color: "bg-primary" }
|
|
427
|
+
* ]}
|
|
428
|
+
* onOptionsClick={() => {}}
|
|
429
|
+
* />
|
|
430
|
+
* ```
|
|
431
|
+
*/
|
|
432
|
+
declare function PortfolioAllocationCard({ allocations, onOptionsClick, isLoading, }: PortfolioAllocationCardProps): react_jsx_runtime.JSX.Element;
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* WatchlistCard - Displays cryptocurrency watchlist
|
|
436
|
+
*
|
|
437
|
+
* @example
|
|
438
|
+
* ```tsx
|
|
439
|
+
* <WatchlistCard
|
|
440
|
+
* items={[
|
|
441
|
+
* { name: "Cardano", symbol: "ADA", price: "0.58", change: "+5.2%", positive: true }
|
|
442
|
+
* ]}
|
|
443
|
+
* onViewAll={() => {}}
|
|
444
|
+
* />
|
|
445
|
+
* ```
|
|
446
|
+
*/
|
|
447
|
+
declare function WatchlistCard({ items, onViewAll, isLoading, }: WatchlistCardProps): react_jsx_runtime.JSX.Element;
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* RecentTransactionsCard - Displays recent transaction summary
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* ```tsx
|
|
454
|
+
* <RecentTransactionsCard
|
|
455
|
+
* summary="12,53 ETH/1 BTC"
|
|
456
|
+
* users={[{ alt: "User", avatarUrl: "..." }]}
|
|
457
|
+
* />
|
|
458
|
+
* ```
|
|
459
|
+
*/
|
|
460
|
+
declare function RecentTransactionsCard({ summary, users, onOptionsClick, isLoading, }: RecentTransactionsCardProps): react_jsx_runtime.JSX.Element;
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* QuickActionsCard - Quick action buttons with scheduled transfer
|
|
464
|
+
*
|
|
465
|
+
* @example
|
|
466
|
+
* ```tsx
|
|
467
|
+
* <QuickActionsCard
|
|
468
|
+
* actions={[{ icon: "add_circle", label: "Buy", color: "bg-primary" }]}
|
|
469
|
+
* scheduledTransfer={{ description: "0.5 ETH → Wallet", timeUntil: "In 2 days" }}
|
|
470
|
+
* onActionClick={(action) => console.log(action)}
|
|
471
|
+
* />
|
|
472
|
+
* ```
|
|
473
|
+
*/
|
|
474
|
+
declare function QuickActionsCard({ actions, scheduledTransfer, onActionClick, isLoading, }: QuickActionsCardProps): react_jsx_runtime.JSX.Element;
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* FloatingNavBar - Floating action bar with liquid glass effect
|
|
478
|
+
*
|
|
479
|
+
* @example
|
|
480
|
+
* ```tsx
|
|
481
|
+
* <FloatingNavBar
|
|
482
|
+
* actions={[
|
|
483
|
+
* { icon: "add_circle", label: "Buy" },
|
|
484
|
+
* { icon: "remove_circle", label: "Sell" },
|
|
485
|
+
* ]}
|
|
486
|
+
* onActionClick={(action) => console.log(action)}
|
|
487
|
+
* />
|
|
488
|
+
* ```
|
|
489
|
+
*/
|
|
490
|
+
declare function FloatingNavBar({ actions, onActionClick, }: FloatingNavBarProps): react_jsx_runtime.JSX.Element;
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* Sidebar - Desktop sidebar navigation
|
|
494
|
+
*
|
|
495
|
+
* @example
|
|
496
|
+
* ```tsx
|
|
497
|
+
* <Sidebar
|
|
498
|
+
* navItems={[{ icon: "dashboard", label: "Dashboard", active: true }]}
|
|
499
|
+
* user={{ name: "Alex", role: "Premium", avatarUrl: "..." }}
|
|
500
|
+
* onToggleTheme={() => {}}
|
|
501
|
+
* isCollapsed={false}
|
|
502
|
+
* onToggleCollapse={() => {}}
|
|
503
|
+
* />
|
|
504
|
+
* ```
|
|
505
|
+
*/
|
|
506
|
+
declare function Sidebar({ navItems, user, onToggleTheme, isCollapsed, onToggleCollapse, onNavItemClick, }: SidebarProps): react_jsx_runtime.JSX.Element;
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* MobileNav - Mobile/tablet top navigation with slide-out menu
|
|
510
|
+
*
|
|
511
|
+
* @example
|
|
512
|
+
* ```tsx
|
|
513
|
+
* <MobileNav
|
|
514
|
+
* navItems={[{ icon: "dashboard", label: "Dashboard", active: true }]}
|
|
515
|
+
* user={{ name: "Alex", role: "Premium", avatarUrl: "..." }}
|
|
516
|
+
* onToggleTheme={() => {}}
|
|
517
|
+
* />
|
|
518
|
+
* ```
|
|
519
|
+
*/
|
|
520
|
+
declare function MobileNav({ navItems, user, onToggleTheme, onNavItemClick, }: MobileNavProps): react_jsx_runtime.JSX.Element;
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* DashboardTemplate - Complete financial dashboard layout
|
|
524
|
+
*/
|
|
525
|
+
declare function DashboardTemplate({ data, isLoading, onThemeToggle, onNavItemClick, onActionClick, className, }: DashboardTemplateProps): react_jsx_runtime.JSX.Element;
|
|
526
|
+
|
|
527
|
+
export { type ActionItem, BtcPriceCard, type BtcPriceCardProps, CurrentBalanceCard, type CurrentBalanceCardProps, type DashboardData, DashboardTemplate, type DashboardTemplateProps, FloatingNavBar, type FloatingNavBarProps, type ForecastItem, InvestmentGrowthCard, type InvestmentGrowthCardProps, MarketCapCard, type MarketCapCardProps, MarketForecastCard, type MarketForecastCardProps, MobileNav, type MobileNavProps, type NavItem, type PortfolioAllocation, PortfolioAllocationCard, type PortfolioAllocationCardProps, QuickActionsCard, type QuickActionsCardProps, RecentTransactionsCard, type RecentTransactionsCardProps, SalesStatisticsCard, type SalesStatisticsCardProps, type ScheduledTransfer, Sidebar, type SidebarProps, type TransactionUser, type UserInfo, WatchlistCard, type WatchlistCardProps, type WatchlistItem, cn };
|