/** * Default Dashboard Configuration (Core) * * This file contains the default configuration values for the dashboard. * These values can be overridden by theme-specific dashboard.config.ts files. * * The merge system will combine this default config with theme-specific configs, * allowing themes to override only the values they need to change. */ export declare const DEFAULT_DASHBOARD_CONFIG: { topbar: { /** * Search functionality in the topbar */ search: { enabled: boolean; placeholder: string; maxResults: number; }; /** * Notifications dropdown */ notifications: { enabled: boolean; }; /** * Theme mode toggle */ themeToggle: { enabled: boolean; }; /** * Support/Help button */ support: { enabled: boolean; type: "dropdown"; links: ({ label: string; url: string; icon: string; external: boolean; action?: undefined; } | { label: string; action: string; icon: string; url?: undefined; external?: undefined; })[]; }; /** * Quick create dropdown */ quickCreate: { enabled: boolean; }; /** * Superadmin access button (Super Admin area) * By default only visible to superadmins, but can be extended to developers */ superadminAccess: { enabled: boolean; showToDevelopers: boolean; }; /** * DevTools access button (Developer area) * Only visible to users with developer role */ devtoolsAccess: { enabled: boolean; }; /** * Settings menu dropdown (gear icon) * Contains links to admin-level features */ settingsMenu: { enabled: boolean; links: { label: string; href: string; icon: string; }[]; }; /** * User menu dropdown */ userMenu: { enabled: boolean; showAvatar: boolean; showEmail: boolean; showRole: boolean; items: ({ type: string; label: string; href: string; icon: string; action?: undefined; } | { type: string; label?: undefined; href?: undefined; icon?: undefined; action?: undefined; } | { type: string; label: string; action: string; icon: string; href?: undefined; })[]; }; }; sidebar: { /** * Default sidebar state */ defaultCollapsed: boolean; rememberState: boolean; collapsedWidth: string; expandedWidth: string; /** * Sidebar toggle behavior */ toggle: { enabled: boolean; showInTopbar: boolean; hideOnMobile: boolean; }; /** * Navigation structure */ navigation: { showEntityCounts: boolean; groupEntities: boolean; showRecents: boolean; maxRecents: number; }; }; settings: { /** * Available settings pages * Set enabled: false to hide a settings page */ pages: { profile: { enabled: boolean; label: string; description: string; icon: string; order: number; features: { avatarUpload: boolean; nameChange: boolean; emailChange: boolean; localeChange: boolean; timezoneChange: boolean; }; }; security: { enabled: boolean; label: string; description: string; icon: string; order: number; features: { sessionManagement: boolean; loginHistory: boolean; securityQuestions: boolean; }; }; password: { enabled: boolean; label: string; description: string; icon: string; order: number; features: { passwordChange: boolean; passwordStrength: boolean; passwordHistory: boolean; }; }; notifications: { enabled: boolean; label: string; description: string; icon: string; order: number; features: { emailNotifications: boolean; pushNotifications: boolean; smsNotifications: boolean; notificationCategories: boolean; }; }; 'api-keys': { enabled: boolean; label: string; description: string; icon: string; order: number; features: { createKeys: boolean; revokeKeys: boolean; scopeManagement: boolean; usageAnalytics: boolean; }; requiredRole: string; }; billing: { enabled: boolean; label: string; description: string; icon: string; order: number; features: { subscriptionManagement: boolean; paymentMethods: boolean; invoiceHistory: boolean; usageMetrics: boolean; }; requiredRole: string; }; teams: { enabled: boolean; label: string; description: string; icon: string; order: number; features: { createTeams: boolean; manageMembers: boolean; inviteMembers: boolean; teamSettings: boolean; }; }; plans: { enabled: boolean; label: string; description: string; icon: string; order: number; features: { planComparison: boolean; planSelection: boolean; }; }; }; /** * Settings layout configuration */ layout: { showDescription: boolean; showIcons: boolean; groupByCategory: boolean; enableSearch: boolean; }; }; entities: { /** * Default list view configuration for all entities */ defaultListView: { pagination: { defaultPageSize: number; allowedPageSizes: number[]; showSizeSelector: boolean; }; sorting: { enabled: boolean; defaultSort: { field: string; direction: string; }; rememberSort: boolean; }; filtering: { enabled: boolean; quickFilters: boolean; advancedFilters: boolean; rememberFilters: boolean; }; search: { enabled: boolean; placeholder: string; searchableFields: string[]; instantSearch: boolean; debounceMs: number; }; }; /** * Default form behavior for all entities */ defaultFormView: { validation: { validateOnBlur: boolean; validateOnChange: boolean; showFieldErrors: boolean; showFormErrors: boolean; }; autosave: { enabled: boolean; intervalMs: number; showIndicator: boolean; }; confirmation: { showOnCreate: boolean; showOnUpdate: boolean; showOnDelete: boolean; }; }; /** * Per-entity customizations * Override default settings for specific entities */ customizations: {}; }; homepage: { /** * Widgets to show on dashboard homepage */ widgets: { welcome: { enabled: boolean; showUserName: boolean; showLastLogin: boolean; showQuickActions: boolean; }; stats: { enabled: boolean; entities: string[]; timeframe: "30days"; showTrends: boolean; }; recentActivity: { enabled: boolean; maxItems: number; entities: string[]; showTimestamps: boolean; }; quickActions: { enabled: boolean; actions: { entity: string; action: string; label: string; }[]; }; }; /** * Layout configuration */ layout: { columns: number; gutter: "medium"; responsive: boolean; }; }; performance: { /** * Caching configuration */ cache: { entityConfigs: { enabled: boolean; duration: number; }; entityData: { enabled: boolean; duration: number; }; }; /** * Loading states */ loading: { showSkeletons: boolean; showProgressBars: boolean; minimumLoadingTime: number; }; /** * Error handling */ errors: { showErrorBoundaries: boolean; logErrors: boolean; enableRetry: boolean; maxRetries: number; }; }; accessibility: { /** * Keyboard navigation * @todo Shortcuts are not implemented yet */ keyboard: { enabled: boolean; showShortcuts: boolean; customShortcuts: { 'Ctrl+K': string; 'Ctrl+Shift+N': string; 'Ctrl+B': string; Esc: string; }; }; /** * Screen reader support */ screenReader: { announceNavigation: boolean; announceActions: boolean; announceErrors: boolean; }; /** * Visual indicators */ visual: { showFocusOutlines: boolean; highContrastMode: boolean; reducedMotion: boolean; }; }; /** * Check if a settings page is enabled */ isSettingsPageEnabled(this: any, pageKey: string): boolean; /** * Get enabled settings pages sorted by order */ getEnabledSettingsPages(this: any): { key: string; order: any; label: any; }[]; /** * Check if a topbar feature is enabled */ isTopbarFeatureEnabled(this: any, feature: string): boolean; }; export type DashboardConfig = typeof DEFAULT_DASHBOARD_CONFIG; export type TopbarConfig = typeof DEFAULT_DASHBOARD_CONFIG.topbar; export type SidebarConfig = typeof DEFAULT_DASHBOARD_CONFIG.sidebar; export type SettingsConfig = typeof DEFAULT_DASHBOARD_CONFIG.settings; export type EntitiesConfig = typeof DEFAULT_DASHBOARD_CONFIG.entities; export type HomepageConfig = typeof DEFAULT_DASHBOARD_CONFIG.homepage; //# sourceMappingURL=dashboard.config.d.ts.map