// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.

/// This file contains the [Layout] abstract class, which provides a base
/// for creating custom layout widgets in Flutter.
import 'package:flutter/material.dart';

/// An abstract class that provides a base for creating custom layout widgets.
///
/// This class can be used as a base for creating custom layout widgets in
/// Flutter. It extends the [StatelessWidget] class and adds support for
/// providing a custom key. Custom layout widgets that extend this class should
/// override the [build] method to define the layout.
abstract class Layout extends StatelessWidget {
  /// Creates a new [Layout] instance.
  ///
  /// [key] is an optional parameter that can be used to provide a custom key
  /// for the widget.
  const Layout({super.key});
}

abstract class StructuralLayout extends Layout {
  const StructuralLayout({super.key});
}

abstract class ContentLayout extends Layout {
  const ContentLayout({super.key});
}
