feat(app): unify KPI tiles with AppKpiCard

Introduce AppKpiCard for consistent metric layout (icon + value, title,
subtitle row) and default VCard chrome without mixed border-shadow accents.
Use on organisation overview (all primary icons, equal stretch row) and
home dashboard. Regenerate component type declarations.

Made-with: Cursor
This commit is contained in:
2026-04-29 00:46:48 +02:00
parent c344efa511
commit 2ae90ed57f
4 changed files with 115 additions and 112 deletions

View File

@@ -20,6 +20,7 @@ declare module 'vue' {
AppCombobox: typeof import('./src/@core/components/app-form-elements/AppCombobox.vue')['default']
AppDateTimePicker: typeof import('./src/@core/components/app-form-elements/AppDateTimePicker.vue')['default']
AppDrawerHeaderSection: typeof import('./src/@core/components/AppDrawerHeaderSection.vue')['default']
AppKpiCard: typeof import('./src/components/AppKpiCard.vue')['default']
AppLoadingIndicator: typeof import('./src/components/AppLoadingIndicator.vue')['default']
AppPricing: typeof import('./src/components/AppPricing.vue')['default']
AppSearchHeader: typeof import('./src/components/AppSearchHeader.vue')['default']
@@ -54,6 +55,7 @@ declare module 'vue' {
DangerZoneTab: typeof import('./src/components/organisation/settings/DangerZoneTab.vue')['default']
DeleteSubEventDialog: typeof import('./src/components/events/DeleteSubEventDialog.vue')['default']
DialogCloseBtn: typeof import('./src/@core/components/DialogCloseBtn.vue')['default']
DismissFailureDialog: typeof import('./src/components/form-failures/DismissFailureDialog.vue')['default']
DropZone: typeof import('./src/@core/components/DropZone.vue')['default']
EditEventDialog: typeof import('./src/components/events/EditEventDialog.vue')['default']
EditOrganisationDialog: typeof import('./src/components/organisations/EditOrganisationDialog.vue')['default']
@@ -66,6 +68,8 @@ declare module 'vue' {
ErrorHeader: typeof import('./src/components/ErrorHeader.vue')['default']
EventMetricCards: typeof import('./src/components/events/EventMetricCards.vue')['default']
EventTabsNav: typeof import('./src/components/events/EventTabsNav.vue')['default']
FormFailureDetail: typeof import('./src/components/form-failures/FormFailureDetail.vue')['default']
FormFailuresTable: typeof import('./src/components/form-failures/FormFailuresTable.vue')['default']
I18n: typeof import('./src/@core/components/I18n.vue')['default']
ImageUploadField: typeof import('./src/components/common/ImageUploadField.vue')['default']
ImpersonateDialog: typeof import('./src/components/platform/ImpersonateDialog.vue')['default']
@@ -89,6 +93,8 @@ declare module 'vue' {
RegistrationFieldCard: typeof import('./src/components/event/RegistrationFieldCard.vue')['default']
RegistrationFieldFormDialog: typeof import('./src/components/event/RegistrationFieldFormDialog.vue')['default']
RegistrationFieldTemplatesTab: typeof import('./src/components/organisation/RegistrationFieldTemplatesTab.vue')['default']
ResolveFailureDialog: typeof import('./src/components/form-failures/ResolveFailureDialog.vue')['default']
RetryFailureDialog: typeof import('./src/components/form-failures/RetryFailureDialog.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
ScrollToTop: typeof import('./src/@core/components/ScrollToTop.vue')['default']