@@ -19,17 +19,17 @@ export const colors = [
1919
2020const MonthSelector = {
2121 template : `
22- <div class="flex flex-col sm:flex-row gap-2 sm:gap-4 items-stretch sm:items-center w-full sm:w-auto">
22+ <div class="pb-1 flex flex-col sm:flex-row gap-2 sm:gap-4 items-stretch sm:items-center w-full sm:w-auto">
2323 <!-- Months Row -->
24- <div class="flex gap-1 sm:gap-2 flex-wrap justify-center overflow-x-auto ">
24+ <div class="flex gap-1 sm:gap-2 flex-wrap justify-center">
2525 <template v-for="month in availableMonthsForYear" :key="month">
2626 <span v-if="selectedMonth === month"
27- class="text-xs leading-5 font-semibold bg-indigo-600 text-white rounded-full py-1 px-2 sm:px-3 flex items-center space-x-2 whitespace-nowrap">
27+ class="text-xs leading-5 font-semibold py-1 px-2 sm:px-3 flex items-center space-x-2 whitespace-nowrap" :class="[$styles.tagButtonActive,$styles.tagButtonSmall] ">
2828 <span class="hidden sm:inline">{{ new Date(selectedYear + '-' + month.toString().padStart(2,'0') + '-01').toLocaleString('default', { month: 'long' }) }}</span>
2929 <span class="sm:hidden">{{ new Date(selectedYear + '-' + month.toString().padStart(2,'0') + '-01').toLocaleString('default', { month: 'short' }) }}</span>
3030 </span>
3131 <button v-else type="button"
32- class="text-xs leading-5 font-semibold bg-slate-400/10 rounded-full py-1 px-2 sm:px-3 flex items-center space-x-2 hover:bg-slate-400/20 dark:highlight-white/5 whitespace-nowrap"
32+ class="text-xs leading-5 font-semibold py-1 px-2 sm:px-3 flex items-center space-x-2 whitespace-nowrap" :class="[$styles.tagButton,$styles.tagButtonSmall] "
3333 @click="updateSelection(selectedYear, month)">
3434 {{ new Date(selectedYear + '-' + month.toString().padStart(2,'0') + '-01').toLocaleString('default', { month: 'short' }) }}
3535 </button>
@@ -38,7 +38,7 @@ const MonthSelector = {
3838
3939 <!-- Year Dropdown -->
4040 <select :value="selectedYear" @change="(e) => updateSelection(parseInt(e.target.value), selectedMonth)"
41- class="border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-900 text-gray-700 dark:text-gray-300 rounded-md text-sm font-medium hover:bg-gray-50 dark:hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-indigo-500 flex-shrink-0 ">
41+ class="rounded-md text-sm font-medium flex-shrink-0 transition-colors" :class="[$styles.bgSelect, $styles.textInput, $styles.borderInput] ">
4242 <option v-for="year in availableYears" :key="year" :value="year">
4343 {{ year }}
4444 </option>
@@ -108,11 +108,11 @@ export const Analytics = {
108108 template : `
109109 <div class="flex flex-col w-full">
110110 <!-- Header -->
111- <div class="border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 px-2 sm:px-4 py-3">
111+ <div class="px-2 sm:px-4 py-3">
112112 <div
113113 :class="!$ai.isSidebarOpen ? 'pl-3' : ''"
114114 class="max-w-6xl mx-auto flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-3">
115- <h2 class="text-lg font-semibold text-gray-900 dark:text-gray-100 flex-shrink-0">
115+ <h2 class="text-lg font-semibold flex-shrink-0" :class="[$styles.heading] ">
116116 <RouterLink to="/analytics">Analytics</RouterLink>
117117 </h2>
118118 <MonthSelector :dailyData="allDailyData" />
@@ -150,7 +150,7 @@ export const Analytics = {
150150 </div>
151151
152152 <!-- Content -->
153- <div class="flex-1 bg-gray-50 dark:bg-gray-900 " :class="activeTab === 'activity' ? 'p-0' : 'p-4'">
153+ <div class="flex-1" :class="[ activeTab === 'activity' ? 'p-0' : 'p-4', $styles.bgPage] ">
154154
155155 <div :class="activeTab === 'activity' ? '' : 'max-w-6xl mx-auto'">
156156 <!-- Stats Summary (hidden for Activity tab) -->
@@ -180,7 +180,7 @@ export const Analytics = {
180180 <h3 class="text-sm sm:text-lg font-semibold text-gray-900 dark:text-gray-100">
181181 {{ new Date(selectedDay).toLocaleDateString(undefined, { year: 'numeric', month: 'long' }) }}
182182 </h3>
183- <select v-model="costChartType" class="px-3 pr-6 py-2 border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-900 text-gray-700 dark:text-gray-300 rounded-md text-sm font-medium hover:bg-gray-50 dark:hover:bg-gray-800 flex-shrink-0">
183+ <select v-model="costChartType" class="px-3 pr-6 py-2 border rounded-md text-sm font-medium flex-shrink-0" :class="[$styles.bgSelect, $styles.textInput, $styles.borderInput] ">
184184 <option value="bar">Bar Chart</option>
185185 <option value="line">Line Chart</option>
186186 </select>
@@ -288,7 +288,7 @@ export const Analytics = {
288288 <div class="flex-shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 px-3 sm:px-6 py-4">
289289 <div class="flex flex-wrap gap-2 sm:gap-4 items-end">
290290 <div class="flex flex-col flex-1 min-w-[120px] sm:flex-initial">
291- <select v-model="selectedModel" class="px-3 py-2 border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 w-full ">
291+ <select v-model="selectedModel" class="px-3 py-2 border rounded-md text-sm font-medium flex-shrink-0" :class="[$styles.bgSelect, $styles.textInput, $styles.borderInput] ">
292292 <option value="">All Models</option>
293293 <option v-for="model in filterOptions.models" :key="model" :value="model">
294294 {{ model }}
@@ -297,7 +297,7 @@ export const Analytics = {
297297 </div>
298298
299299 <div class="flex flex-col flex-1 min-w-[120px] sm:flex-initial">
300- <select v-model="selectedProvider" class="px-3 py-2 border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 w-full ">
300+ <select v-model="selectedProvider" class="px-3 py-2 border rounded-md text-sm font-medium flex-shrink-0" :class="[$styles.bgSelect, $styles.textInput, $styles.borderInput] ">
301301 <option value="">All Providers</option>
302302 <option v-for="provider in filterOptions.providers" :key="provider" :value="provider">
303303 {{ provider }}
@@ -306,7 +306,7 @@ export const Analytics = {
306306 </div>
307307
308308 <div class="flex flex-col flex-1 min-w-[140px] sm:flex-initial">
309- <select v-model="sortBy" class="px-3 py-2 border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 w-full ">
309+ <select v-model="sortBy" class="px-3 py-2 border rounded-md text-sm font-medium flex-shrink-0" :class="[$styles.bgSelect, $styles.textInput, $styles.borderInput] ">
310310 <option value="createdAt">Date (Newest)</option>
311311 <option value="cost">Cost (Highest)</option>
312312 <option value="duration">Duration (Longest)</option>
@@ -393,7 +393,7 @@ export const Analytics = {
393393 <div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"></div>
394394 </div>
395395
396- <div v-if="!activityHasMore && activityRequests.length > 0" class="px-6 py-8 text-center text-gray-500 dark:text-gray-400 text-sm ">
396+ <div v-if="!activityHasMore && activityRequests.length > 0" class="px-6 py-8 text-sm" :class="[$styles.muted] ">
397397 No more requests to load
398398 </div>
399399 </div>
0 commit comments