// Copyright 2021 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

// NavigationRail shows if the screen width is greater or equal to
// narrowScreenWidthThreshold; otherwise, NavigationBar is used for navigation.
const double narrowScreenWidthThreshold = 450;

const double mediumWidthBreakpoint = 1000;
const double largeWidthBreakpoint = 1500;

const double transitionLength = 500;

// Whether the user has chosen a theme color via a direct [ColorSeed] selection,
// or an image [ColorImageProvider].
enum ColorSelectionMethod { colorSeed, image }

enum ColorSeed {
  baseColor('M3 Baseline', Color(0xff6750a4)),
  indigo('Indigo', Colors.indigo),
  blue('Blue', Colors.blue),
  teal('Teal', Colors.teal),
  green('Green', Colors.green),
  yellow('Yellow', Colors.yellow),
  orange('Orange', Colors.orange),
  deepOrange('Deep Orange', Colors.deepOrange),
  pink('Pink', Colors.pink);

  const ColorSeed(this.label, this.color);
  final String label;
  final Color color;
}

enum ColorImageProvider {
  leaves(
    'Leaves',
    'https://flutter.github.io/assets-for-api-docs/assets/material/content_based_color_scheme_1.png',
  ),
  peonies(
    'Peonies',
    'https://flutter.github.io/assets-for-api-docs/assets/material/content_based_color_scheme_2.png',
  ),
  bubbles(
    'Bubbles',
    'https://flutter.github.io/assets-for-api-docs/assets/material/content_based_color_scheme_3.png',
  ),
  seaweed(
    'Seaweed',
    'https://flutter.github.io/assets-for-api-docs/assets/material/content_based_color_scheme_4.png',
  ),
  seagrapes(
    'Sea Grapes',
    'https://flutter.github.io/assets-for-api-docs/assets/material/content_based_color_scheme_5.png',
  ),
  petals(
    'Petals',
    'https://flutter.github.io/assets-for-api-docs/assets/material/content_based_color_scheme_6.png',
  );

  const ColorImageProvider(this.label, this.url);
  final String label;
  final String url;
}

enum ScreenSelected {
  component(0),
  color(1),
  typography(2),
  elevation(3);

  const ScreenSelected(this.value);
  final int value;
}
