File size: 2,525 Bytes
ac784c2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import { createApp } from 'vue'
import App from './App.vue'
import router from './router/index.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 (_) { }

app.mount('#app')