import { createApp } from 'vue' import App from './App.vue' import router from './router/index.js' import { autoRefreshService } from './lib/autoRefresh.js' // PrimeVue setup import PrimeVue from 'primevue/config' import Aura from '@primevue/themes/aura' import { definePreset } from '@primevue/themes' import Button from 'primevue/button' import Card from 'primevue/card' import Dropdown from 'primevue/dropdown' import MultiSelect from 'primevue/multiselect' import InputText from 'primevue/inputtext' import InputSwitch from 'primevue/inputswitch' import TabView from 'primevue/tabview' import TabPanel from 'primevue/tabpanel' import DataTable from 'primevue/datatable' import Column from 'primevue/column' import ProgressSpinner from 'primevue/progressspinner' import Checkbox from 'primevue/checkbox' import Divider from 'primevue/divider' import DatePicker from 'primevue/datepicker' import Slider from 'primevue/slider' import Tooltip from 'primevue/tooltip' import Drawer from 'primevue/drawer' import Tag from 'primevue/tag' import emailjs from 'emailjs-com' // Styles import 'primeicons/primeicons.css' import 'primeflex/primeflex.css' // PrimeVue v4 theme preset (Aura - slate) const AuraSlate = definePreset(Aura, { semantic: { primary: { 50: '{slate.50}', 100: '{slate.100}', 200: '{slate.200}', 300: '{slate.300}', 400: '{slate.400}', 500: '{slate.500}', 600: '{slate.600}', 700: '{slate.700}', 800: '{slate.800}', 900: '{slate.900}', 950: '{slate.950}' } } }) const app = createApp(App) app.use(router) app.use(PrimeVue, { theme: { preset: AuraSlate, options: { darkModeSelector: '.dark-mode', cssLayer: false } } }) app.component('Button', Button) app.component('Card', Card) app.component('Dropdown', Dropdown) app.component('MultiSelect', MultiSelect) app.component('InputText', InputText) app.component('InputSwitch', InputSwitch) app.component('TabView', TabView) app.component('TabPanel', TabPanel) app.component('DataTable', DataTable) app.component('Column', Column) app.component('ProgressSpinner', ProgressSpinner) app.component('Checkbox', Checkbox) app.component('Divider', Divider) app.component('DatePicker', DatePicker) app.component('Slider', Slider) app.component('Drawer', Drawer) app.component('Tag', Tag) app.directive('tooltip', Tooltip) // Initialize EmailJS using env public key if available try { const pubKey = import.meta.env.VITE_EMAILJS_PUBLIC_KEY if (pubKey) { emailjs.init(pubKey) } } catch (_) { } // Start auto-refresh service (daily at 5 AM ET) autoRefreshService.start() app.mount('#app')