Spaces:
Running
Running
| 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') | |