abstract class AuthLayout
  include Lucky::HTMLPage

  abstract def content
  abstract def page_title

  # The default page title. It is passed to `Shared::LayoutHead`.
  #
  # Add a `page_title` method to pages to override it. You can also remove
  # This method so every page is required to have its own page title.
  def page_title
    "Welcome"
  end

  def render
    html_doctype

    html lang: "en", data_theme: "light" do
      mount Shared::LayoutHead, page_title: page_title

      body class: "font-inter" do
        mount Shared::Navbar, simple: true
        mount Shared::FlashMessages, context.flash
        content
      end
    end
  end
end
