/** * Declarative settings schema for the Aurora Admin settings page. * Each category renders as an item in the left nav; its fields render in * the right panel. Field `key`s map directly into the aurora_admin_settings * option, saved via the wp/v2/settings REST route. */ export const settingsCategories = [ { id: 'general', title: 'General', subtitle: 'Core plugin settings', icon: 'dashicons-admin-settings', fields: [ { key: 'logo', type: 'image', label: 'Logo', description: 'Optional logo to be displayed in the menu.', }, { key: 'dark_logo', type: 'image', label: 'Dark mode logo', description: "Set an alternative logo to use in dark mode. If one isn't set it will fall back to the standard logo.", }, { key: 'disable_theme', type: 'multiselect', label: 'Disable theme', description: 'Choose roles to disable the theme for.', optionsSource: 'roles', }, { key: 'search_post_types', type: 'multiselect', label: 'Search post types', description: 'Choose which post types are available in the global search.', optionsSource: 'postTypes', }, { key: 'disable_global_search', type: 'segmented', label: 'Disable global search', description: 'Disable global search for all users.', }, ], }, { id: 'login', title: 'Login', subtitle: 'Customize login page appearance and security', icon: 'dashicons-lock', fields: [ { key: 'style_login', type: 'toggle', label: 'Style login page', description: 'Apply the Aurora theme to the WordPress login screen.', }, { key: 'login_logo', type: 'image', label: 'Login logo', description: 'Replace the WordPress logo on the login screen.', }, ], }, { id: 'theme', title: 'Theme', subtitle: 'Colors, styling, and visual customization', icon: 'dashicons-admin-appearance', fields: [ { key: 'theme_preset', type: 'theme-picker', label: 'Theme', description: 'Pick a color for the whole admin interface.', default: 'indigo', }, { key: 'font_family', type: 'font-picker', label: 'Font family', description: 'Google Font used across the Aurora interface.', }, ], }, { id: 'whitelabel', title: 'White Label', subtitle: 'Rebrand and customize interface text and icons', icon: 'dashicons-tag', fields: [ { key: 'admin_favicon', type: 'image', label: 'Admin favicon', description: 'Optional favicon to replace the WordPress favicon in the admin.', }, { key: 'plugin_name', type: 'text', label: 'Rename Aurora Admin', description: "This will rename Aurora Admin in the plugins list as well as renaming its settings link.", placeholder: 'Aurora Admin', }, { key: 'text_replacements', type: 'repeater', label: 'Text Replacement', description: 'Customize the text displayed in the WordPress admin area. Enter original words or phrases and their replacements to white-label the interface.', columns: ['Find', 'Replace with'], }, ], }, { id: 'menu', title: 'Menu', subtitle: 'Admin menu behavior and interaction settings', icon: 'dashicons-menu', fields: [ { key: 'menu_search', type: 'toggle', label: 'Menu search', description: 'Show a search box at the top of the admin menu.', }, ], }, { id: 'posts', title: 'Posts', subtitle: 'Post management and display preferences', icon: 'dashicons-admin-post', fields: [ { key: 'modern_posts', type: 'toggle', label: 'Modern posts table', description: 'Use the Aurora posts management interface.', default: true, }, ], }, { id: 'pages', title: 'Pages', subtitle: 'Page management and display preferences', icon: 'dashicons-admin-page', fields: [ { key: 'modern_pages', type: 'toggle', label: 'Modern pages table', description: 'Use the Aurora pages management interface.', default: true, }, ], }, { id: 'plugins', title: 'Plugins', subtitle: 'Plugin management interface options', icon: 'dashicons-admin-plugins', fields: [ { key: 'modern_plugins', type: 'toggle', label: 'Modern plugins page', description: 'Use the Aurora plugins management interface.', default: true, }, ], }, { id: 'dashboard', title: 'Dashboard', subtitle: 'Custom dashboard and admin interface settings', icon: 'dashicons-dashboard', fields: [ { key: 'use_custom_dashboard', type: 'toggle', label: 'Custom dashboard', description: "Replace the WordPress dashboard with Aurora's dashboard.", default: true, }, ], }, { id: 'analytics', title: 'Analytics', subtitle: 'Built-in analytics and tracking settings', icon: 'dashicons-chart-bar', fields: [ { key: 'enable_analytics', type: 'toggle', label: 'Enable analytics', description: 'Track first-party visitor analytics for the dashboard.', default: true, }, { key: 'track_admins', type: 'toggle', label: 'Track logged-in admins', description: 'Include administrator visits in analytics (off by default).', }, ], }, { id: 'media', title: 'Media', subtitle: 'Media library and upload management settings', icon: 'dashicons-admin-media', fields: [ { key: 'modern_media', type: 'toggle', label: 'Modern media library', description: 'Use the Aurora media library interface.', default: true, }, { key: 'enable_svg', type: 'toggle', label: 'Allow SVG uploads', description: 'Permit SVG files to be uploaded to the media library.', }, ], }, { id: 'users', title: 'Users', subtitle: 'User management and administration settings', icon: 'dashicons-admin-users', fields: [ { key: 'modern_users', type: 'toggle', label: 'Modern users page', description: 'Use the Aurora users management interface.', default: true, }, ], }, { id: 'comments', title: 'Comments', subtitle: 'Comment management and administration', icon: 'dashicons-admin-comments', fields: [ { key: 'modern_comments', type: 'toggle', label: 'Modern comments page', description: 'Use the Aurora comments management interface.', default: true, }, ], }, { id: 'image-formats', title: 'Modern Image Formats', subtitle: 'Automatically generate WebP/AVIF versions of uploaded images', icon: 'dashicons-format-image', fields: [ { key: 'image_formats_enabled', type: 'toggle', label: 'Enable modern image formats', description: 'Automatically generate a WebP or AVIF copy of every size of a newly uploaded JPEG or PNG image, and serve it to browsers that support it. Only affects new uploads — existing library images are unaffected until re-uploaded or regenerated with a tool like Regenerate Thumbnails.', default: true, }, { key: 'image_formats_format', type: 'select', label: 'Output format', description: 'Automatic prefers AVIF (smaller files, wider quality range) when the server supports it, falling back to WebP. If your server supports neither, generation is silently skipped — ask your host about enabling GD or Imagick WebP/AVIF support.', dependsOn: 'image_formats_enabled', default: 'auto', options: [ { value: 'auto', label: 'Automatic (AVIF, falling back to WebP)' }, { value: 'webp', label: 'WebP only' }, { value: 'avif', label: 'AVIF only' }, ], }, { key: 'image_formats_picture_element', type: 'toggle', label: 'Serve via element', description: 'Rewrite tags (post content and post thumbnails) into a element offering the modern format with the original JPEG/PNG as a fallback. Turn this off if it conflicts with your theme’s image styling, while still generating the files for other tools to use.', dependsOn: 'image_formats_enabled', default: true, }, ], }, { id: 'add-ons', title: 'Add-ons', subtitle: 'Standalone companion plugins', icon: 'dashicons-admin-plugins', fields: [ { key: 'file_manager_addon', type: 'companion-plugin', label: 'Aurora File Manager', description: 'Browse, edit, and manage your site’s files (themes, plugins, uploads, and more) directly from wp-admin. Distributed as a separate plugin rather than bundled here, since WordPress.org’s Plugin Directory policy doesn’t allow this category of functionality in a directory-listed plugin — restrictions or not.', statusEndpoint: '/companion-plugins/file-manager/status', installEndpoint: '/companion-plugins/file-manager/install', manageUrl: 'admin.php?page=aurora-file-manager', }, { key: 'database_explorer_addon', type: 'companion-plugin', label: 'Aurora Database Explorer', description: 'A Supabase-style database browser inside wp-admin — see every table with row counts and sizes, browse paginated data, and run your own read-only SELECT/SHOW/DESCRIBE/EXPLAIN queries. Distributed as a separate plugin rather than bundled here, since WordPress.org’s Plugin Directory review treats direct database-query tooling the same way it treats file-management functionality.', statusEndpoint: '/companion-plugins/database-explorer/status', installEndpoint: '/companion-plugins/database-explorer/install', manageUrl: 'admin.php?page=aurora-database-explorer', }, { key: 'site_backup_addon', type: 'companion-plugin', label: 'Aurora Site Backup', description: 'Full site backup (database + files) and restore-in-place, on demand or on a recurring schedule, stored locally or on your own S3-compatible or Google Drive remote storage. Distributed as a separate plugin rather than bundled here, to keep Aurora Admin’s own footprint away from arbitrary file-write functionality.', statusEndpoint: '/companion-plugins/site-backup/status', installEndpoint: '/companion-plugins/site-backup/install', manageUrl: 'admin.php?page=aurora-site-backup', }, ], }, { id: 'admin-takeover', title: 'Admin Takeover', subtitle: 'Replace the remaining native WordPress admin screens with Aurora', icon: 'dashicons-shield', fields: [ { key: 'full_admin_takeover', type: 'toggle', label: 'Full admin takeover', description: 'Replace Media Upload, Add User, Profile, Appearance, Tools, and native Settings screens with Aurora equivalents. Off by default — these cover more ground than Posts/Pages/Media/Users/Comments, so it’s opt-in rather than on by default.', default: false, }, ], }, ];