// PrimeVue plugin installer. Registers PrimeVue with the Crewli Aura // preset (theme.ts), the Dutch locale (primelocale/nl), and the three // service modules (Toast, Confirmation, Dialog) the SPA mounts at // App.vue top level. // // Per RFC-WS-FRONTEND-PRIMEVUE AD-2: darkModeSelector matches Vuexy's // `.dark` class convention so existing skin-toggle plumbing continues // to work during the F3–F6 parallel-mode window. // // Exported as a NAMED function (no `export default`) on purpose: the // Vuexy registerPlugins() helper (src/@core/utils/plugins.ts) globs // plugins/*/index.{ts,js} and invokes the `default` export of each // match. A default export here would cause PrimeVue + its three // services to register twice — once via registerPlugins, once via the // explicit installPrimeVue(app) call in main.ts. The named export // keeps the explicit installer in main.ts as the single registration // site, which is the design intent (decouple PrimeVue from the Vuexy // @core machine so F6 can delete @core/ without affecting PrimeVue). import type { App } from 'vue' import PrimeVue from 'primevue/config' import ConfirmationService from 'primevue/confirmationservice' import DialogService from 'primevue/dialogservice' import ToastService from 'primevue/toastservice' import nl from 'primelocale/nl.json' import { CrewliPreset } from './theme' import { ptDefaults } from './defaults' export function installPrimeVue(app: App) { app.use(PrimeVue, { theme: { preset: CrewliPreset, options: { darkModeSelector: '.dark', cssLayer: false, }, }, locale: nl.nl, pt: ptDefaults, }) app.use(ToastService) app.use(ConfirmationService) app.use(DialogService) }