{
  "type": "featherpanel.settings.category",
  "id": "auth_page",
  "name": "Auth Page",
  "description": "Customize the login and register experience, marketing panel, QR sign-in, and method layout",
  "icon": "lock",
  "setting_keys": [
    "auth_shell_tagline",
    "auth_aside_title",
    "auth_login_headline",
    "auth_login_subheadline",
    "auth_register_headline",
    "auth_register_subheadline",
    "auth_sso_headline",
    "auth_sso_subheadline",
    "auth_show_marketing_panel",
    "auth_aside_image_url",
    "auth_show_qr_login",
    "auth_form_density",
    "auth_secondary_layout",
    "auth_show_theme_customizer",
    "auth_footer_style",
    "login_default_method",
    "login_methods_order",
    "login_hidden_methods"
  ],
  "settings_count": 18,
  "settings": [
    {
      "key": "auth_shell_tagline",
      "constant": "AUTH_SHELL_TAGLINE",
      "description": "Short marketing line under the brand on the auth left panel. This is auth-only copy — it does NOT use SEO description. Leave empty for the default translated tagline.",
      "type": "textarea",
      "required": false,
      "placeholder": "Manage your game servers from anywhere.",
      "validation": "nullable|string|max:500",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_aside_title",
      "constant": "AUTH_ASIDE_TITLE",
      "description": "Optional bold heading under the brand name on the marketing panel (e.g. “Welcome to our panel”). Leave empty to hide.",
      "type": "text",
      "required": false,
      "placeholder": "Welcome",
      "validation": "nullable|string|max:120",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_login_headline",
      "constant": "AUTH_LOGIN_HEADLINE",
      "description": "Override the login form title (default: Welcome back). Leave empty for the translated default.",
      "type": "text",
      "required": false,
      "placeholder": "Welcome back",
      "validation": "nullable|string|max:120",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_login_subheadline",
      "constant": "AUTH_LOGIN_SUBHEADLINE",
      "description": "Override the login form subtitle. Leave empty for the translated default.",
      "type": "text",
      "required": false,
      "placeholder": "Enter your credentials to access your account",
      "validation": "nullable|string|max:240",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_register_headline",
      "constant": "AUTH_REGISTER_HEADLINE",
      "description": "Override the register page title. Leave empty for the translated default.",
      "type": "text",
      "required": false,
      "placeholder": "Create an account",
      "validation": "nullable|string|max:120",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_register_subheadline",
      "constant": "AUTH_REGISTER_SUBHEADLINE",
      "description": "Override the register page subtitle. Leave empty for the translated default.",
      "type": "text",
      "required": false,
      "placeholder": "Get started with us today",
      "validation": "nullable|string|max:240",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_sso_headline",
      "constant": "AUTH_SSO_HEADLINE",
      "description": "Headline when Discord/OIDC is the primary login panel (third-party SSO portal). Leave empty for the default “Continue with SSO” style copy.",
      "type": "text",
      "required": false,
      "placeholder": "Sign in with your organization",
      "validation": "nullable|string|max:120",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_sso_subheadline",
      "constant": "AUTH_SSO_SUBHEADLINE",
      "description": "Supporting text under the SSO portal headline. Leave empty for the translated default.",
      "type": "text",
      "required": false,
      "placeholder": "Use your company or Discord account to continue.",
      "validation": "nullable|string|max:240",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_show_marketing_panel",
      "constant": "AUTH_SHOW_MARKETING_PANEL",
      "description": "Show the full-bleed left marketing column on large screens (brand, tagline, QR). When false, auth pages use a centered form column only.",
      "type": "select",
      "required": true,
      "placeholder": "true",
      "validation": "required|string|max:16",
      "options": [
        "true",
        "false"
      ],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_aside_image_url",
      "constant": "AUTH_ASIDE_IMAGE_URL",
      "description": "Optional hero image for the auth marketing panel (shown behind brand/QR). Leave empty for gradient atmosphere only.",
      "type": "image",
      "required": false,
      "placeholder": "https://example.com/auth-hero.jpg",
      "validation": "nullable|string|max:2048",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_show_qr_login",
      "constant": "AUTH_SHOW_QR_LOGIN",
      "description": "Enable Discord-style QR code login (phone already signed in approves the desktop session).",
      "type": "select",
      "required": true,
      "placeholder": "true",
      "validation": "required|string|max:16",
      "options": [
        "true",
        "false"
      ],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_form_density",
      "constant": "AUTH_FORM_DENSITY",
      "description": "Vertical spacing on auth forms: comfortable (roomy), compact (default), or dense (minimal scroll).",
      "type": "select",
      "required": true,
      "placeholder": "compact",
      "validation": "required|string|max:32",
      "options": [
        "comfortable",
        "compact",
        "dense"
      ],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_secondary_layout",
      "constant": "AUTH_SECONDARY_LAYOUT",
      "description": "How alternate login methods appear: chips (compact wrap), stack (full-width rows), or collapsed (hidden behind “More ways to sign in”).",
      "type": "select",
      "required": true,
      "placeholder": "chips",
      "validation": "required|string|max:32",
      "options": [
        "chips",
        "stack",
        "collapsed"
      ],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_show_theme_customizer",
      "constant": "AUTH_SHOW_THEME_CUSTOMIZER",
      "description": "Show the theme/appearance button on auth pages (top-right).",
      "type": "select",
      "required": true,
      "placeholder": "true",
      "validation": "required|string|max:16",
      "options": [
        "true",
        "false"
      ],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "auth_footer_style",
      "constant": "AUTH_FOOTER_STYLE",
      "description": "Auth footer under the form: full (links + powered-by), minimal (links only), or hidden.",
      "type": "select",
      "required": true,
      "placeholder": "full",
      "validation": "required|string|max:32",
      "options": [
        "full",
        "minimal",
        "hidden"
      ],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "login_default_method",
      "constant": "LOGIN_DEFAULT_METHOD",
      "description": "Default sign-in panel on the login page (local, ldap, email_code, discord, or oidc). Falls back to the first available method if the choice is hidden or unavailable.",
      "type": "select",
      "required": true,
      "placeholder": "local",
      "validation": "required|string|max:64",
      "options": [
        "local",
        "ldap",
        "email_code",
        "discord",
        "oidc"
      ],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "login_methods_order",
      "constant": "LOGIN_METHODS_ORDER",
      "description": "Comma-separated order of login methods on the page. Valid ids: local, passkey, ldap, email_code, discord, oidc",
      "type": "text",
      "required": true,
      "placeholder": "local,passkey,ldap,email_code,discord,oidc",
      "validation": "required|string|max:255",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    },
    {
      "key": "login_hidden_methods",
      "constant": "LOGIN_HIDDEN_METHODS",
      "description": "Comma-separated login method ids to hide on the login page (e.g. passkey, local, ldap, email_code, discord, oidc). Leave empty to show all configured methods.",
      "type": "text",
      "required": false,
      "placeholder": "passkey",
      "validation": "nullable|string|max:255",
      "options": [],
      "category": "auth_page",
      "sensitive": false
    }
  ]
}
