@veristone/nuxt-v-app 0.1.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 +42 -0
- package/app/app.vue +7 -0
- package/app/assets/css/v-app.css +313 -0
- package/app/components/V/A/Badge.vue +75 -0
- package/app/components/V/A/Btn/Add.vue +17 -0
- package/app/components/V/A/Btn/Back.vue +25 -0
- package/app/components/V/A/Btn/ConfirmDelete.vue +45 -0
- package/app/components/V/A/Btn/Edit.vue +35 -0
- package/app/components/V/A/Btn/Export.vue +28 -0
- package/app/components/V/A/Btn/Refresh.vue +21 -0
- package/app/components/V/A/Btn/Submit.vue +45 -0
- package/app/components/V/A/Btn/View.vue +23 -0
- package/app/components/V/A/Card.legacy.vue +291 -0
- package/app/components/V/A/Card.vue +108 -0
- package/app/components/V/A/CompanyMenu.vue +83 -0
- package/app/components/V/A/Data/KeyValue.vue +98 -0
- package/app/components/V/A/Data/StatusBadge.vue +44 -0
- package/app/components/V/A/DataField.vue +140 -0
- package/app/components/V/A/DataGrid.vue +43 -0
- package/app/components/V/A/DataTable.vue +144 -0
- package/app/components/V/A/EmptyState.vue +154 -0
- package/app/components/V/A/Fmt/Currency.vue +36 -0
- package/app/components/V/A/Fmt/DateTime.vue +34 -0
- package/app/components/V/A/Fmt/Percent.vue +47 -0
- package/app/components/V/A/LoadingState.vue +140 -0
- package/app/components/V/A/MetricCard.vue +129 -0
- package/app/components/V/A/Modal/Base.vue +195 -0
- package/app/components/V/A/Modal/Confirm.vue +92 -0
- package/app/components/V/A/Modal/Form.vue +105 -0
- package/app/components/V/A/Navigation.vue +110 -0
- package/app/components/V/A/QuickActions.vue +169 -0
- package/app/components/V/A/Slide.vue +109 -0
- package/app/components/V/A/Slideover.vue +259 -0
- package/app/components/V/A/State/Empty.vue +20 -0
- package/app/components/V/A/State/Error.vue +34 -0
- package/app/components/V/A/State/Loading.vue +33 -0
- package/app/components/V/A/StatsCard.vue +215 -0
- package/app/components/V/A/StatusBadge.vue +215 -0
- package/app/components/V/A/Table.vue +674 -0
- package/app/components/V/A/UserMenu.vue +127 -0
- package/app/components/V/A/WelcomeHeader.vue +96 -0
- package/app/components/V/Modal.vue +36 -0
- package/app/components/Va/Blocks/VaBlockGridCharts.vue +32 -0
- package/app/components/Va/Blocks/VaBlockGridKPI.vue +32 -0
- package/app/components/Va/Blocks/VaBlockGridTables.vue +23 -0
- package/app/components/Va/Blocks/VaBlockKpiGrid.vue +8 -0
- package/app/components/Va/Blocks/VaBlockSessionFilterBar.vue +8 -0
- package/app/components/Va/Cards/VaCardDonutChart.vue +59 -0
- package/app/components/Va/Cards/VaCardHeader.vue +10 -0
- package/app/components/Va/Cards/VaCardKpi.vue +17 -0
- package/app/components/Va/Cards/VaCardKpi2.vue +55 -0
- package/app/components/Va/Cards/VaCardLatestOrders.vue +82 -0
- package/app/components/Va/Cards/VaCardPopularProducts.vue +88 -0
- package/app/components/Va/Cards/VaCardRevenueBarChart.vue +49 -0
- package/app/components/Va/Cards/VaCardSubtitle.vue +5 -0
- package/app/components/Va/Cards/VaCardTitle.vue +5 -0
- package/app/components/Va/Cards/VaCardWithActiveUsers.vue +41 -0
- package/app/components/Va/Cards/VaCardWithChart.vue +135 -0
- package/app/components/Va/Cards/VaCardWithChartBlock.vue +26 -0
- package/app/components/Va/Cards/VaCardWithIndicator.vue +39 -0
- package/app/components/Va/Cards/VaCardWithProgressCircle.vue +34 -0
- package/app/components/Va/Cards/types.ts +11 -0
- package/app/components/Va/Charts/VaChartAppPerformanceBar.vue +118 -0
- package/app/components/Va/Charts/VaChartAppPerformanceBarChart.vue +118 -0
- package/app/components/Va/Charts/VaChartAreaMini.vue +127 -0
- package/app/components/Va/Charts/VaChartBarMini.vue +68 -0
- package/app/components/Va/Charts/VaChartCardinalMulti.vue +108 -0
- package/app/components/Va/Charts/VaChartColorBarChart.vue +78 -0
- package/app/components/Va/Charts/VaChartDonutHalf.vue +35 -0
- package/app/components/Va/Charts/VaChartDonutMini.vue +77 -0
- package/app/components/Va/Charts/VaChartExpensesBar.vue +58 -0
- package/app/components/Va/Charts/VaChartFinanceSummary.vue +96 -0
- package/app/components/Va/Charts/VaChartGoogleSearchConsole.vue +90 -0
- package/app/components/Va/Charts/VaChartIncomeBar.vue +82 -0
- package/app/components/Va/Charts/VaChartLegend.vue +25 -0
- package/app/components/Va/Charts/VaChartLineMini.vue +205 -0
- package/app/components/Va/Charts/VaChartRealtimeTraffic.vue +182 -0
- package/app/components/Va/Charts/VaChartRevenue.vue +43 -0
- package/app/components/Va/Charts/VaChartRevenueLine.vue +42 -0
- package/app/components/Va/Charts/VaChartRevenuevsCost.vue +84 -0
- package/app/components/Va/Charts/VaChartSearchIntent.vue +179 -0
- package/app/components/Va/Charts/VaChartSpendingTrend.vue +127 -0
- package/app/components/Va/Charts/VaChartStackedHorizontal.vue +64 -0
- package/app/components/Va/Charts/VaChartStepMinimal.vue +109 -0
- package/app/components/Va/Charts/VaChartStockComparisonLine.vue +86 -0
- package/app/components/Va/Charts/VaChartStocksPortfolioLine.vue +161 -0
- package/app/components/Va/Charts/VaChartStocksSectorLine.vue +223 -0
- package/app/components/Va/Charts/VaChartTasksCategories.vue +96 -0
- package/app/components/Va/Charts/VaChartTasksProgress.vue +130 -0
- package/app/components/Va/Charts/VaChartTrafficOverview.vue +112 -0
- package/app/components/Va/Charts/VaChartWebPerformanceLineChart.vue +114 -0
- package/app/components/Va/Charts/VaChartWinLostBar.vue +110 -0
- package/app/components/Va/Charts/VaChartWinLostDonut.vue +107 -0
- package/app/components/Va/Charts/VaChartWinLostLine.vue +111 -0
- package/app/components/Va/Charts/types.ts +10 -0
- package/app/components/Va/Dashboard/Navigation/types.ts +8 -0
- package/app/components/Va/Dashboard/VaDashboardKPICard.vue +31 -0
- package/app/components/Va/Dashboard/VaDashboardNavigation.vue +50 -0
- package/app/components/Va/Dashboard/VaDashboardPricePlan.vue +102 -0
- package/app/components/Va/Dashboard/VaDashboardUsageChart.vue +84 -0
- package/app/components/Va/Dashboard/VaDashboardUsageRequestChart.vue +46 -0
- package/app/components/Va/Layout/NotificationsSlideover.vue +169 -0
- package/app/components/Va/Layout/SideNav/types.ts +5 -0
- package/app/components/Va/Layout/SideNav.vue +108 -0
- package/app/components/Va/Layout/TeamsMenu.vue +57 -0
- package/app/components/Va/Layout/UserMenu.vue +57 -0
- package/app/composables/useDashboard.ts +25 -0
- package/app/composables/useVAAnimation.ts +324 -0
- package/app/composables/useVAUtils.ts +118 -0
- package/app/composables/useVCrud.ts +647 -0
- package/app/composables/useVFetch.ts +46 -0
- package/app/composables/useVFileUpload.ts +45 -0
- package/app/composables/useVToast.ts +73 -0
- package/app/composables/useXATableColumns.ts +456 -0
- package/app/data/BillingStats.ts +65 -0
- package/app/data/SearchData.ts +58 -0
- package/app/data/TasksData.ts +101 -0
- package/app/data/dashboardData.ts +113 -0
- package/app/layouts/default.vue +171 -0
- package/app/layouts/legacy.vue +61 -0
- package/app/pages/playground/base.vue +498 -0
- package/app/pages/playground/blocks.vue +108 -0
- package/app/pages/playground/buttons.vue +237 -0
- package/app/pages/playground/cards.vue +326 -0
- package/app/pages/playground/charts.vue +338 -0
- package/app/pages/playground/dashboard.vue +315 -0
- package/app/pages/playground/formatters.vue +329 -0
- package/app/pages/playground/index.vue +109 -0
- package/app/pages/playground/layout.vue +159 -0
- package/app/pages/playground/modals.vue +606 -0
- package/app/pages/playground/states.vue +282 -0
- package/app/pages/playground/tables.vue +618 -0
- package/app/pages/test-layout.vue +10 -0
- package/nuxt.config.ts +12 -0
- package/package.json +71 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<UDashboardPanel grow>
|
|
3
|
+
<UContainer>
|
|
4
|
+
<div class="py-8">
|
|
5
|
+
<h1 class="text-3xl font-bold mb-4">Chart Components Showcase</h1>
|
|
6
|
+
<p class="text-gray-600 dark:text-gray-400 mb-8">
|
|
7
|
+
These chart components use embedded demo data. Wrap them in ClientOnly for SSR compatibility.
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<!-- Mini Charts -->
|
|
11
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">Mini Charts</h2>
|
|
12
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Compact chart components for dashboards and summaries.</p>
|
|
13
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
14
|
+
<UCard>
|
|
15
|
+
<template #header>
|
|
16
|
+
<h3 class="text-sm font-semibold">VaChartAreaMini</h3>
|
|
17
|
+
</template>
|
|
18
|
+
<ClientOnly>
|
|
19
|
+
<VaChartAreaMini />
|
|
20
|
+
</ClientOnly>
|
|
21
|
+
</UCard>
|
|
22
|
+
|
|
23
|
+
<UCard>
|
|
24
|
+
<template #header>
|
|
25
|
+
<h3 class="text-sm font-semibold">VaChartBarMini</h3>
|
|
26
|
+
</template>
|
|
27
|
+
<ClientOnly>
|
|
28
|
+
<VaChartBarMini />
|
|
29
|
+
</ClientOnly>
|
|
30
|
+
</UCard>
|
|
31
|
+
|
|
32
|
+
<UCard>
|
|
33
|
+
<template #header>
|
|
34
|
+
<h3 class="text-sm font-semibold">VaChartLineMini</h3>
|
|
35
|
+
</template>
|
|
36
|
+
<ClientOnly>
|
|
37
|
+
<VaChartLineMini />
|
|
38
|
+
</ClientOnly>
|
|
39
|
+
</UCard>
|
|
40
|
+
|
|
41
|
+
<UCard>
|
|
42
|
+
<template #header>
|
|
43
|
+
<h3 class="text-sm font-semibold">VaChartDonutMini</h3>
|
|
44
|
+
</template>
|
|
45
|
+
<ClientOnly>
|
|
46
|
+
<VaChartDonutMini />
|
|
47
|
+
</ClientOnly>
|
|
48
|
+
</UCard>
|
|
49
|
+
|
|
50
|
+
<UCard>
|
|
51
|
+
<template #header>
|
|
52
|
+
<h3 class="text-sm font-semibold">VaChartDonutHalf</h3>
|
|
53
|
+
</template>
|
|
54
|
+
<ClientOnly>
|
|
55
|
+
<VaChartDonutHalf />
|
|
56
|
+
</ClientOnly>
|
|
57
|
+
</UCard>
|
|
58
|
+
|
|
59
|
+
<UCard>
|
|
60
|
+
<template #header>
|
|
61
|
+
<h3 class="text-sm font-semibold">VaChartStepMinimal</h3>
|
|
62
|
+
</template>
|
|
63
|
+
<ClientOnly>
|
|
64
|
+
<VaChartStepMinimal />
|
|
65
|
+
</ClientOnly>
|
|
66
|
+
</UCard>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<!-- Revenue & Financial Charts -->
|
|
70
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">Revenue & Financial Charts</h2>
|
|
71
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Charts for revenue tracking, expenses, and financial analysis.</p>
|
|
72
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
73
|
+
<UCard>
|
|
74
|
+
<template #header>
|
|
75
|
+
<h3 class="text-sm font-semibold">VaChartRevenue</h3>
|
|
76
|
+
</template>
|
|
77
|
+
<ClientOnly>
|
|
78
|
+
<VaChartRevenue />
|
|
79
|
+
</ClientOnly>
|
|
80
|
+
</UCard>
|
|
81
|
+
|
|
82
|
+
<UCard>
|
|
83
|
+
<template #header>
|
|
84
|
+
<h3 class="text-sm font-semibold">VaChartRevenueLine</h3>
|
|
85
|
+
</template>
|
|
86
|
+
<ClientOnly>
|
|
87
|
+
<VaChartRevenueLine />
|
|
88
|
+
</ClientOnly>
|
|
89
|
+
</UCard>
|
|
90
|
+
|
|
91
|
+
<UCard>
|
|
92
|
+
<template #header>
|
|
93
|
+
<h3 class="text-sm font-semibold">VaChartRevenuevsCost</h3>
|
|
94
|
+
</template>
|
|
95
|
+
<ClientOnly>
|
|
96
|
+
<VaChartRevenuevsCost />
|
|
97
|
+
</ClientOnly>
|
|
98
|
+
</UCard>
|
|
99
|
+
|
|
100
|
+
<UCard>
|
|
101
|
+
<template #header>
|
|
102
|
+
<h3 class="text-sm font-semibold">VaChartFinanceSummary</h3>
|
|
103
|
+
</template>
|
|
104
|
+
<ClientOnly>
|
|
105
|
+
<VaChartFinanceSummary />
|
|
106
|
+
</ClientOnly>
|
|
107
|
+
</UCard>
|
|
108
|
+
|
|
109
|
+
<UCard>
|
|
110
|
+
<template #header>
|
|
111
|
+
<h3 class="text-sm font-semibold">VaChartExpensesBar</h3>
|
|
112
|
+
</template>
|
|
113
|
+
<ClientOnly>
|
|
114
|
+
<VaChartExpensesBar />
|
|
115
|
+
</ClientOnly>
|
|
116
|
+
</UCard>
|
|
117
|
+
|
|
118
|
+
<UCard>
|
|
119
|
+
<template #header>
|
|
120
|
+
<h3 class="text-sm font-semibold">VaChartIncomeBar</h3>
|
|
121
|
+
</template>
|
|
122
|
+
<ClientOnly>
|
|
123
|
+
<VaChartIncomeBar />
|
|
124
|
+
</ClientOnly>
|
|
125
|
+
</UCard>
|
|
126
|
+
|
|
127
|
+
<UCard>
|
|
128
|
+
<template #header>
|
|
129
|
+
<h3 class="text-sm font-semibold">VaChartSpendingTrend</h3>
|
|
130
|
+
</template>
|
|
131
|
+
<ClientOnly>
|
|
132
|
+
<VaChartSpendingTrend />
|
|
133
|
+
</ClientOnly>
|
|
134
|
+
</UCard>
|
|
135
|
+
|
|
136
|
+
<UCard>
|
|
137
|
+
<template #header>
|
|
138
|
+
<h3 class="text-sm font-semibold">VaChartColorBarChart</h3>
|
|
139
|
+
</template>
|
|
140
|
+
<ClientOnly>
|
|
141
|
+
<VaChartColorBarChart />
|
|
142
|
+
</ClientOnly>
|
|
143
|
+
</UCard>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<!-- Performance & Analytics Charts -->
|
|
147
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">Performance & Analytics</h2>
|
|
148
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Charts for application performance, traffic, and analytics metrics.</p>
|
|
149
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
150
|
+
<UCard>
|
|
151
|
+
<template #header>
|
|
152
|
+
<h3 class="text-sm font-semibold">VaChartAppPerformanceBar</h3>
|
|
153
|
+
</template>
|
|
154
|
+
<ClientOnly>
|
|
155
|
+
<VaChartAppPerformanceBar />
|
|
156
|
+
</ClientOnly>
|
|
157
|
+
</UCard>
|
|
158
|
+
|
|
159
|
+
<UCard>
|
|
160
|
+
<template #header>
|
|
161
|
+
<h3 class="text-sm font-semibold">VaChartAppPerformanceBarChart</h3>
|
|
162
|
+
</template>
|
|
163
|
+
<ClientOnly>
|
|
164
|
+
<VaChartAppPerformanceBarChart />
|
|
165
|
+
</ClientOnly>
|
|
166
|
+
</UCard>
|
|
167
|
+
|
|
168
|
+
<UCard>
|
|
169
|
+
<template #header>
|
|
170
|
+
<h3 class="text-sm font-semibold">VaChartWebPerformanceLineChart</h3>
|
|
171
|
+
</template>
|
|
172
|
+
<ClientOnly>
|
|
173
|
+
<VaChartWebPerformanceLineChart />
|
|
174
|
+
</ClientOnly>
|
|
175
|
+
</UCard>
|
|
176
|
+
|
|
177
|
+
<UCard>
|
|
178
|
+
<template #header>
|
|
179
|
+
<h3 class="text-sm font-semibold">VaChartTrafficOverview</h3>
|
|
180
|
+
</template>
|
|
181
|
+
<ClientOnly>
|
|
182
|
+
<VaChartTrafficOverview />
|
|
183
|
+
</ClientOnly>
|
|
184
|
+
</UCard>
|
|
185
|
+
|
|
186
|
+
<UCard>
|
|
187
|
+
<template #header>
|
|
188
|
+
<h3 class="text-sm font-semibold">VaChartRealtimeTraffic</h3>
|
|
189
|
+
</template>
|
|
190
|
+
<ClientOnly>
|
|
191
|
+
<VaChartRealtimeTraffic />
|
|
192
|
+
</ClientOnly>
|
|
193
|
+
</UCard>
|
|
194
|
+
|
|
195
|
+
<UCard>
|
|
196
|
+
<template #header>
|
|
197
|
+
<h3 class="text-sm font-semibold">VaChartGoogleSearchConsole</h3>
|
|
198
|
+
</template>
|
|
199
|
+
<ClientOnly>
|
|
200
|
+
<VaChartGoogleSearchConsole />
|
|
201
|
+
</ClientOnly>
|
|
202
|
+
</UCard>
|
|
203
|
+
|
|
204
|
+
<UCard>
|
|
205
|
+
<template #header>
|
|
206
|
+
<h3 class="text-sm font-semibold">VaChartSearchIntent</h3>
|
|
207
|
+
</template>
|
|
208
|
+
<ClientOnly>
|
|
209
|
+
<VaChartSearchIntent />
|
|
210
|
+
</ClientOnly>
|
|
211
|
+
</UCard>
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
<!-- Stock & Multi-Series Charts -->
|
|
215
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">Stock & Multi-Series</h2>
|
|
216
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Charts for stock data, portfolio comparison, and multi-series visualization.</p>
|
|
217
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
218
|
+
<UCard>
|
|
219
|
+
<template #header>
|
|
220
|
+
<h3 class="text-sm font-semibold">VaChartCardinalMulti</h3>
|
|
221
|
+
</template>
|
|
222
|
+
<ClientOnly>
|
|
223
|
+
<VaChartCardinalMulti />
|
|
224
|
+
</ClientOnly>
|
|
225
|
+
</UCard>
|
|
226
|
+
|
|
227
|
+
<UCard>
|
|
228
|
+
<template #header>
|
|
229
|
+
<h3 class="text-sm font-semibold">VaChartStockComparisonLine</h3>
|
|
230
|
+
</template>
|
|
231
|
+
<ClientOnly>
|
|
232
|
+
<VaChartStockComparisonLine />
|
|
233
|
+
</ClientOnly>
|
|
234
|
+
</UCard>
|
|
235
|
+
|
|
236
|
+
<UCard>
|
|
237
|
+
<template #header>
|
|
238
|
+
<h3 class="text-sm font-semibold">VaChartStocksPortfolioLine</h3>
|
|
239
|
+
</template>
|
|
240
|
+
<ClientOnly>
|
|
241
|
+
<VaChartStocksPortfolioLine />
|
|
242
|
+
</ClientOnly>
|
|
243
|
+
</UCard>
|
|
244
|
+
|
|
245
|
+
<UCard>
|
|
246
|
+
<template #header>
|
|
247
|
+
<h3 class="text-sm font-semibold">VaChartStocksSectorLine</h3>
|
|
248
|
+
</template>
|
|
249
|
+
<ClientOnly>
|
|
250
|
+
<VaChartStocksSectorLine />
|
|
251
|
+
</ClientOnly>
|
|
252
|
+
</UCard>
|
|
253
|
+
|
|
254
|
+
<UCard>
|
|
255
|
+
<template #header>
|
|
256
|
+
<h3 class="text-sm font-semibold">VaChartStackedHorizontal</h3>
|
|
257
|
+
</template>
|
|
258
|
+
<ClientOnly>
|
|
259
|
+
<VaChartStackedHorizontal />
|
|
260
|
+
</ClientOnly>
|
|
261
|
+
</UCard>
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
<!-- Task & Win/Loss Charts -->
|
|
265
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">Tasks & Win/Loss</h2>
|
|
266
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Charts for task progress tracking and win/loss analysis.</p>
|
|
267
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
268
|
+
<UCard>
|
|
269
|
+
<template #header>
|
|
270
|
+
<h3 class="text-sm font-semibold">VaChartTasksProgress</h3>
|
|
271
|
+
</template>
|
|
272
|
+
<ClientOnly>
|
|
273
|
+
<VaChartTasksProgress />
|
|
274
|
+
</ClientOnly>
|
|
275
|
+
</UCard>
|
|
276
|
+
|
|
277
|
+
<UCard>
|
|
278
|
+
<template #header>
|
|
279
|
+
<h3 class="text-sm font-semibold">VaChartTasksCategories</h3>
|
|
280
|
+
</template>
|
|
281
|
+
<ClientOnly>
|
|
282
|
+
<VaChartTasksCategories />
|
|
283
|
+
</ClientOnly>
|
|
284
|
+
</UCard>
|
|
285
|
+
|
|
286
|
+
<UCard>
|
|
287
|
+
<template #header>
|
|
288
|
+
<h3 class="text-sm font-semibold">VaChartWinLostBar</h3>
|
|
289
|
+
</template>
|
|
290
|
+
<ClientOnly>
|
|
291
|
+
<VaChartWinLostBar />
|
|
292
|
+
</ClientOnly>
|
|
293
|
+
</UCard>
|
|
294
|
+
|
|
295
|
+
<UCard>
|
|
296
|
+
<template #header>
|
|
297
|
+
<h3 class="text-sm font-semibold">VaChartWinLostDonut</h3>
|
|
298
|
+
</template>
|
|
299
|
+
<ClientOnly>
|
|
300
|
+
<VaChartWinLostDonut />
|
|
301
|
+
</ClientOnly>
|
|
302
|
+
</UCard>
|
|
303
|
+
|
|
304
|
+
<UCard>
|
|
305
|
+
<template #header>
|
|
306
|
+
<h3 class="text-sm font-semibold">VaChartWinLostLine</h3>
|
|
307
|
+
</template>
|
|
308
|
+
<ClientOnly>
|
|
309
|
+
<VaChartWinLostLine />
|
|
310
|
+
</ClientOnly>
|
|
311
|
+
</UCard>
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
<!-- Legend Component -->
|
|
315
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">Chart Utilities</h2>
|
|
316
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Utility components for chart legends and additional chart features.</p>
|
|
317
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
318
|
+
<UCard>
|
|
319
|
+
<template #header>
|
|
320
|
+
<h3 class="text-sm font-semibold">VaChartLegend</h3>
|
|
321
|
+
</template>
|
|
322
|
+
<ClientOnly>
|
|
323
|
+
<VaChartLegend :items="legendItems" />
|
|
324
|
+
</ClientOnly>
|
|
325
|
+
</UCard>
|
|
326
|
+
</div>
|
|
327
|
+
</div>
|
|
328
|
+
</UContainer>
|
|
329
|
+
</UDashboardPanel>
|
|
330
|
+
</template>
|
|
331
|
+
|
|
332
|
+
<script setup lang="ts">
|
|
333
|
+
const legendItems = [
|
|
334
|
+
{ name: 'Revenue', color: '#3b82f6' },
|
|
335
|
+
{ name: 'Expenses', color: '#ef4444' },
|
|
336
|
+
{ name: 'Profit', color: '#22c55e' }
|
|
337
|
+
]
|
|
338
|
+
</script>
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<UDashboardPanel grow>
|
|
3
|
+
<UContainer>
|
|
4
|
+
<div class="py-8">
|
|
5
|
+
<h1 class="text-3xl font-bold mb-4">Dashboard Components Showcase</h1>
|
|
6
|
+
<p class="text-gray-600 dark:text-gray-400 mb-8">
|
|
7
|
+
Dashboard-specific components for navigation, KPIs, pricing, and usage visualization.
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<!-- VaDashboardNavigation -->
|
|
11
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">VaDashboardNavigation</h2>
|
|
12
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Navigation component for dashboard sidebars and top menus with icon support.</p>
|
|
13
|
+
<UCard>
|
|
14
|
+
<template #header>
|
|
15
|
+
<h3 class="font-semibold">Standard Navigation</h3>
|
|
16
|
+
</template>
|
|
17
|
+
<ClientOnly>
|
|
18
|
+
<VaDashboardNavigation :sections="mockNavSections" />
|
|
19
|
+
</ClientOnly>
|
|
20
|
+
</UCard>
|
|
21
|
+
|
|
22
|
+
<!-- VaDashboardKPICard -->
|
|
23
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">VaDashboardKPICard</h2>
|
|
24
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">KPI cards displaying metrics with trend indicators, icons, and percentage changes.</p>
|
|
25
|
+
<UCard>
|
|
26
|
+
<template #header>
|
|
27
|
+
<h3 class="font-semibold">KPI Examples</h3>
|
|
28
|
+
</template>
|
|
29
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
|
30
|
+
<ClientOnly>
|
|
31
|
+
<VaDashboardKPICard
|
|
32
|
+
title="Total Revenue"
|
|
33
|
+
:value="125000"
|
|
34
|
+
:change="12.5"
|
|
35
|
+
trend="up"
|
|
36
|
+
icon="i-heroicons-currency-dollar"
|
|
37
|
+
/>
|
|
38
|
+
</ClientOnly>
|
|
39
|
+
|
|
40
|
+
<ClientOnly>
|
|
41
|
+
<VaDashboardKPICard
|
|
42
|
+
title="Active Users"
|
|
43
|
+
:value="8432"
|
|
44
|
+
:change="-3.2"
|
|
45
|
+
trend="down"
|
|
46
|
+
icon="i-heroicons-users"
|
|
47
|
+
/>
|
|
48
|
+
</ClientOnly>
|
|
49
|
+
|
|
50
|
+
<ClientOnly>
|
|
51
|
+
<VaDashboardKPICard
|
|
52
|
+
title="Conversion Rate"
|
|
53
|
+
:value="3.45"
|
|
54
|
+
:change="0.8"
|
|
55
|
+
trend="up"
|
|
56
|
+
icon="i-heroicons-chart-bar"
|
|
57
|
+
suffix="%"
|
|
58
|
+
/>
|
|
59
|
+
</ClientOnly>
|
|
60
|
+
|
|
61
|
+
<ClientOnly>
|
|
62
|
+
<VaDashboardKPICard
|
|
63
|
+
title="Avg Order Value"
|
|
64
|
+
:value="89.50"
|
|
65
|
+
:change="5.2"
|
|
66
|
+
trend="up"
|
|
67
|
+
icon="i-heroicons-shopping-cart"
|
|
68
|
+
prefix="$"
|
|
69
|
+
/>
|
|
70
|
+
</ClientOnly>
|
|
71
|
+
</div>
|
|
72
|
+
</UCard>
|
|
73
|
+
|
|
74
|
+
<!-- VAStatsCard (HubSpot Style) -->
|
|
75
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">VAStatsCard - HubSpot Style</h2>
|
|
76
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">HubSpot-style stats cards with accent colors and trend visualization.</p>
|
|
77
|
+
<UCard>
|
|
78
|
+
<template #header>
|
|
79
|
+
<h3 class="font-semibold">Stats Card Variations</h3>
|
|
80
|
+
</template>
|
|
81
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
|
82
|
+
<ClientOnly>
|
|
83
|
+
<VAStatsCard
|
|
84
|
+
label="Monthly Revenue"
|
|
85
|
+
:value="58981"
|
|
86
|
+
:previous-value="52000"
|
|
87
|
+
format="currency"
|
|
88
|
+
icon="i-lucide-dollar-sign"
|
|
89
|
+
accent-color="coral"
|
|
90
|
+
/>
|
|
91
|
+
</ClientOnly>
|
|
92
|
+
|
|
93
|
+
<ClientOnly>
|
|
94
|
+
<VAStatsCard
|
|
95
|
+
label="New Signups"
|
|
96
|
+
:value="1234"
|
|
97
|
+
:previous-value="1100"
|
|
98
|
+
icon="i-lucide-user-plus"
|
|
99
|
+
accent-color="teal"
|
|
100
|
+
/>
|
|
101
|
+
</ClientOnly>
|
|
102
|
+
|
|
103
|
+
<ClientOnly>
|
|
104
|
+
<VAStatsCard
|
|
105
|
+
label="Churn Rate"
|
|
106
|
+
:value="2.1"
|
|
107
|
+
:previous-value="2.8"
|
|
108
|
+
format="percentage"
|
|
109
|
+
icon="i-lucide-trending-down"
|
|
110
|
+
accent-color="warning"
|
|
111
|
+
:invert-trend="true"
|
|
112
|
+
/>
|
|
113
|
+
</ClientOnly>
|
|
114
|
+
|
|
115
|
+
<ClientOnly>
|
|
116
|
+
<VAStatsCard
|
|
117
|
+
label="NPS Score"
|
|
118
|
+
:value="72"
|
|
119
|
+
:previous-value="68"
|
|
120
|
+
icon="i-lucide-star"
|
|
121
|
+
accent-color="success"
|
|
122
|
+
/>
|
|
123
|
+
</ClientOnly>
|
|
124
|
+
</div>
|
|
125
|
+
</UCard>
|
|
126
|
+
|
|
127
|
+
<!-- VaDashboardPricePlan -->
|
|
128
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">VaDashboardPricePlan</h2>
|
|
129
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Pricing plan cards with features list and call-to-action buttons.</p>
|
|
130
|
+
<UCard>
|
|
131
|
+
<template #header>
|
|
132
|
+
<h3 class="font-semibold">Pricing Tiers</h3>
|
|
133
|
+
</template>
|
|
134
|
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
|
|
135
|
+
<ClientOnly>
|
|
136
|
+
<VaDashboardPricePlan
|
|
137
|
+
name="Starter"
|
|
138
|
+
:price="9.99"
|
|
139
|
+
period="month"
|
|
140
|
+
:features="starterFeatures"
|
|
141
|
+
buttonText="Get Started"
|
|
142
|
+
/>
|
|
143
|
+
</ClientOnly>
|
|
144
|
+
|
|
145
|
+
<ClientOnly>
|
|
146
|
+
<VaDashboardPricePlan
|
|
147
|
+
name="Pro"
|
|
148
|
+
:price="29.99"
|
|
149
|
+
period="month"
|
|
150
|
+
:features="proFeatures"
|
|
151
|
+
buttonText="Upgrade to Pro"
|
|
152
|
+
highlighted
|
|
153
|
+
/>
|
|
154
|
+
</ClientOnly>
|
|
155
|
+
|
|
156
|
+
<ClientOnly>
|
|
157
|
+
<VaDashboardPricePlan
|
|
158
|
+
name="Enterprise"
|
|
159
|
+
:price="99.99"
|
|
160
|
+
period="month"
|
|
161
|
+
:features="enterpriseFeatures"
|
|
162
|
+
buttonText="Contact Sales"
|
|
163
|
+
/>
|
|
164
|
+
</ClientOnly>
|
|
165
|
+
</div>
|
|
166
|
+
</UCard>
|
|
167
|
+
|
|
168
|
+
<!-- VaDashboardUsageChart -->
|
|
169
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">VaDashboardUsageChart</h2>
|
|
170
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Usage chart showing current consumption against limits.</p>
|
|
171
|
+
<UCard>
|
|
172
|
+
<template #header>
|
|
173
|
+
<h3 class="font-semibold">API Usage Example</h3>
|
|
174
|
+
</template>
|
|
175
|
+
<ClientOnly>
|
|
176
|
+
<VaDashboardUsageChart
|
|
177
|
+
title="API Usage"
|
|
178
|
+
:data="mockUsageData"
|
|
179
|
+
:limit="10000"
|
|
180
|
+
:current="7500"
|
|
181
|
+
/>
|
|
182
|
+
</ClientOnly>
|
|
183
|
+
</UCard>
|
|
184
|
+
|
|
185
|
+
<!-- VaDashboardUsageRequestChart -->
|
|
186
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">VaDashboardUsageRequestChart</h2>
|
|
187
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Request volume chart showing traffic patterns over time.</p>
|
|
188
|
+
<UCard>
|
|
189
|
+
<template #header>
|
|
190
|
+
<h3 class="font-semibold">Request Volume Example</h3>
|
|
191
|
+
</template>
|
|
192
|
+
<ClientOnly>
|
|
193
|
+
<VaDashboardUsageRequestChart
|
|
194
|
+
title="Request Volume"
|
|
195
|
+
:data="mockRequestData"
|
|
196
|
+
:total="125000"
|
|
197
|
+
/>
|
|
198
|
+
</ClientOnly>
|
|
199
|
+
</UCard>
|
|
200
|
+
|
|
201
|
+
<!-- Dashboard Layout Example -->
|
|
202
|
+
<h2 class="text-2xl font-semibold mb-4 mt-8">Full Dashboard Layout</h2>
|
|
203
|
+
<p class="text-gray-600 dark:text-gray-400 mb-4">Complete dashboard layout combining multiple components.</p>
|
|
204
|
+
<UCard>
|
|
205
|
+
<template #header>
|
|
206
|
+
<h3 class="font-semibold">Complete Dashboard Example</h3>
|
|
207
|
+
</template>
|
|
208
|
+
<div class="space-y-6">
|
|
209
|
+
<!-- Stats Row -->
|
|
210
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
|
211
|
+
<ClientOnly>
|
|
212
|
+
<VAStatsCard
|
|
213
|
+
label="Total Sales"
|
|
214
|
+
:value="124500"
|
|
215
|
+
:previous-value="115000"
|
|
216
|
+
format="currency"
|
|
217
|
+
icon="i-lucide-shopping-bag"
|
|
218
|
+
accent-color="coral"
|
|
219
|
+
/>
|
|
220
|
+
</ClientOnly>
|
|
221
|
+
<ClientOnly>
|
|
222
|
+
<VAStatsCard
|
|
223
|
+
label="Orders"
|
|
224
|
+
:value="1842"
|
|
225
|
+
:previous-value="1650"
|
|
226
|
+
icon="i-lucide-package"
|
|
227
|
+
accent-color="teal"
|
|
228
|
+
/>
|
|
229
|
+
</ClientOnly>
|
|
230
|
+
<ClientOnly>
|
|
231
|
+
<VAStatsCard
|
|
232
|
+
label="Customers"
|
|
233
|
+
:value="3421"
|
|
234
|
+
:previous-value="3200"
|
|
235
|
+
icon="i-lucide-users"
|
|
236
|
+
accent-color="navy"
|
|
237
|
+
/>
|
|
238
|
+
</ClientOnly>
|
|
239
|
+
<ClientOnly>
|
|
240
|
+
<VAStatsCard
|
|
241
|
+
label="Returns"
|
|
242
|
+
:value="23"
|
|
243
|
+
:previous-value="31"
|
|
244
|
+
icon="i-lucide-undo-2"
|
|
245
|
+
accent-color="amber"
|
|
246
|
+
:invert-trend="true"
|
|
247
|
+
/>
|
|
248
|
+
</ClientOnly>
|
|
249
|
+
</div>
|
|
250
|
+
|
|
251
|
+
<!-- Charts Row -->
|
|
252
|
+
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
|
253
|
+
<ClientOnly>
|
|
254
|
+
<VACard title="Revenue Trend" icon="i-lucide-trending-up">
|
|
255
|
+
<ClientOnly>
|
|
256
|
+
<VaChartRevenueLine />
|
|
257
|
+
</ClientOnly>
|
|
258
|
+
</VACard>
|
|
259
|
+
</ClientOnly>
|
|
260
|
+
|
|
261
|
+
<ClientOnly>
|
|
262
|
+
<VACard title="Sales Distribution" icon="i-lucide-pie-chart">
|
|
263
|
+
<ClientOnly>
|
|
264
|
+
<VaChartDonutHalf />
|
|
265
|
+
</ClientOnly>
|
|
266
|
+
</VACard>
|
|
267
|
+
</ClientOnly>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
</UCard>
|
|
271
|
+
</div>
|
|
272
|
+
</UContainer>
|
|
273
|
+
</UDashboardPanel>
|
|
274
|
+
</template>
|
|
275
|
+
|
|
276
|
+
<script setup lang="ts">
|
|
277
|
+
definePageMeta({
|
|
278
|
+
title: 'Dashboard Components'
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
const mockNavSections = [
|
|
282
|
+
{
|
|
283
|
+
label: 'Main',
|
|
284
|
+
children: [
|
|
285
|
+
{ label: 'Dashboard', leadingIcon: 'i-heroicons-home', href: '/dashboard' },
|
|
286
|
+
{ label: 'Analytics', leadingIcon: 'i-heroicons-chart-bar', href: '/analytics' },
|
|
287
|
+
{ label: 'Reports', leadingIcon: 'i-heroicons-document-text', href: '/reports' },
|
|
288
|
+
{ label: 'Settings', leadingIcon: 'i-heroicons-cog', href: '/settings' }
|
|
289
|
+
]
|
|
290
|
+
}
|
|
291
|
+
]
|
|
292
|
+
|
|
293
|
+
const starterFeatures = ['5 User Accounts', '10 GB Storage', '1,000 API Calls/month', 'Email Support']
|
|
294
|
+
const proFeatures = ['20 User Accounts', '50 GB Storage', '10,000 API Calls/month', 'Priority Support', 'Advanced Analytics']
|
|
295
|
+
const enterpriseFeatures = ['Unlimited Users', 'Custom Storage', 'Unlimited API Calls', '24/7 Dedicated Support', 'Custom Integrations', 'SLA']
|
|
296
|
+
|
|
297
|
+
const mockUsageData = [
|
|
298
|
+
{ date: '2024-01-01', value: 1200 },
|
|
299
|
+
{ date: '2024-01-02', value: 1500 },
|
|
300
|
+
{ date: '2024-01-03', value: 1800 },
|
|
301
|
+
{ date: '2024-01-04', value: 1600 },
|
|
302
|
+
{ date: '2024-01-05', value: 2100 },
|
|
303
|
+
{ date: '2024-01-06', value: 1900 },
|
|
304
|
+
{ date: '2024-01-07', value: 2300 }
|
|
305
|
+
]
|
|
306
|
+
|
|
307
|
+
const mockRequestData = [
|
|
308
|
+
{ hour: '00:00', requests: 450 },
|
|
309
|
+
{ hour: '04:00', requests: 320 },
|
|
310
|
+
{ hour: '08:00', requests: 1200 },
|
|
311
|
+
{ hour: '12:00', requests: 1800 },
|
|
312
|
+
{ hour: '16:00', requests: 1500 },
|
|
313
|
+
{ hour: '20:00', requests: 980 }
|
|
314
|
+
]
|
|
315
|
+
</script>
|