UI Component Inventory
Canonical catalogue of the 52 Vue components in gov-chat-frontend — DS primitives, layout, chat, admin, services, files, settings, and shared widgets.
.vue files (DS primitives, layout, chat, admin, services, files, settings, shared widgets).chatHistory module, the non-namespaced auth module, and the localStorage persistence plugin.genie_post_logout flag.App.vue, the notificationService API, and eventBus wiring./api/me contract, and the searchable country / nationality dropdowns.components/gov-chat-frontend/
├── src/
│ ├── App.vue # Root shell, data-theme, notifications, router-view
│ ├── components/ # 40 application + 12 DS primitive .vue files
│ ├── views/ # CallbackView, DashboardView (router targets)
│ ├── store/ # Vuex: index.js + chatHistoryStore + modules/auth
│ ├── services/ # axios clients with 401 retry
│ ├── router/ # Vue Router with auth guards
│ ├── config/ # oidcConfig.js, languageConfig.js
│ ├── i18n/locales/ # vue-i18n message bundles
│ ├── theme-variables.css # OKLch tokens, dark-mode overrides
│ └── __tests__/ # Jest tests
└── public/config/ # build-time config variants
In-repo conventions live in components/gov-chat-frontend/CLAUDE.md.
Canonical catalogue of the 52 Vue components in gov-chat-frontend — DS primitives, layout, chat, admin, services, files, settings, and shared widgets.
Vuex 4 in the Vue 3 web app — store wiring, namespacing rules, the auth and chatHistory modules, and the localStorage persistence plugin.
CSS-native theming for the Vue 3 web app — single brand color, OKLch derivation, config variants, and dark mode.
End-to-end Keycloak OIDC sequence in the web frontend — login redirect, callback, in-memory tokens, silent renew, and the genie_post_logout flag.
How the chat window streams a response, renders Markdown safely, surfaces confidence and grounding, captures feedback, and saves or exports the conversation.
Both sidebars of the web app — left navigation (services tree, saved chats, weather), right context pane (related documents, FAQ), mobile overlay behaviour.
The 8-tab admin surface — overview, knowledge hierarchy, documents, database, logs, query inspector, security, users — and the unsaved-changes guard.
The 8-tab profile form, what each tab captures, the search-backed country dropdown, and the backend routes that load, save, reset, and delete the data.
The Settings page — display preferences (language, theme, font size), notification toggles, account management links, and the GDPR reset/delete flows.
The in-app toast system — a single floating notification element rendered by App.vue, fed by the eventBus + notificationService, with four severity types and auto-dismiss.
Accessibility support in the GENIE.AI frontend — the DS design-system primitives, the dialog and context-menu a11y patterns, screen-reader handling for the chat stream, and the i18n-driven aria-label convention.