@extends('layouts.app') @section('title', __('settings::messages.title')) @section('content')

{{ __('settings::messages.title') }}

{{ __('settings::messages.subtitle') }}

@unless ($canUpdate) {{-- Stated as a chip beside the title rather than as a dismissible banner: it is a standing fact about this visit, not a message about something that just happened. --}} {{ __('settings::messages.read_only') }} @endunless
{{-- Tabs are links, not JavaScript panels: each is its own page with its own form, so a validation error on one never discards what was typed into another, and the browser back button behaves. --}} @switch ($active) @case('general') @include('settings::tabs.general') @break {{-- Registered in the provider and given its own view when departments were split out, but never wired up here — so it fell through to the default below and drew an empty panel. --}} @case('services') @include('settings::tabs.services') @break @case('invoice') @include('settings::tabs.invoice') @break @case('branding') @include('settings::tabs.branding') @break @case('mail') @include('settings::tabs.mail') @break @case('backups') @include('settings::tabs.backups') @break {{-- Unwrapped, unlike the tabs below it. What lands here is the licence and the updater, each of which brings its own cards — inside the panel the default branch draws, they would be panels within a panel, three borders deep. --}} @case('system') @break @default {{-- Tabs contributed by other modules render their own panel. The slot is empty when the contributing module is absent, which is why the tab and its content are registered separately. --}}
@endswitch @endsection