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

# For details regarding the *Flutter Fix* feature, see
# https://flutter.dev/docs/development/tools/flutter-fix

# Please add new fixes to the top of the file, separated by one blank line
# from other fixes. In a comment, include a link to the PR where the change
# requiring the fix was made.

# Every fix must be tested. See the flutter/packages/flutter/test_fixes/README.md
# file for instructions on testing these data driven fixes.

# For documentation about this file format, see
# https://dart.dev/go/data-driven-fixes.

# * Fixes in this file are for ColorScheme from the Material library. *
#   For fixes to
#     * AppBar: fix_app_bar.yaml
#     * AppBarTheme: fix_app_bar_theme.yaml
#     * Material (general): fix_material.yaml
#     * SliverAppBar: fix_sliver_app_bar.yaml
#     * TextTheme: fix_text_theme.yaml
#     * ThemeData: fix_theme_data.yaml
version: 1
transforms:

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Remove 'primaryVariant' and 'secondaryVariant'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ColorScheme'
    changes:
      - kind: 'removeParameter'
        name: 'primaryVariant'
      - kind: 'removeParameter'
        name: 'secondaryVariant'

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Remove 'primaryVariant' and 'secondaryVariant'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      constructor: 'light'
      inClass: 'ColorScheme'
    changes:
      - kind: 'removeParameter'
        name: 'primaryVariant'
      - kind: 'removeParameter'
        name: 'secondaryVariant'

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Remove 'primaryVariant' and 'secondaryVariant'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      constructor: 'dark'
      inClass: 'ColorScheme'
    changes:
      - kind: 'removeParameter'
        name: 'primaryVariant'
      - kind: 'removeParameter'
        name: 'secondaryVariant'

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Remove 'primaryVariant' and 'secondaryVariant'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      constructor: 'highContrastLight'
      inClass: 'ColorScheme'
    changes:
      - kind: 'removeParameter'
        name: 'primaryVariant'
      - kind: 'removeParameter'
        name: 'secondaryVariant'

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Remove 'primaryVariant' and 'secondaryVariant'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      constructor: 'highContrastDark'
      inClass: 'ColorScheme'
    changes:
      - kind: 'removeParameter'
        name: 'primaryVariant'
      - kind: 'removeParameter'
        name: 'secondaryVariant'

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Remove 'primaryVariant' and 'secondaryVariant'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'ColorScheme'
    changes:
      - kind: 'removeParameter'
        name: 'primaryVariant'
      - kind: 'removeParameter'
        name: 'secondaryVariant'

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Migrate 'primaryVariant' to 'primaryContainer'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      getter: 'primaryVariant'
      inClass: 'ColorScheme'
    changes:
      - kind: 'rename'
        newName: 'primaryContainer'

  # Changes made in https://github.com/flutter/flutter/pull/93427
  - title: "Migrate 'secondaryVariant' to 'secondaryContainer'"
    date: 2021-11-19
    element:
      uris: [ 'material.dart' ]
      getter: 'secondaryVariant'
      inClass: 'ColorScheme'
    changes:
      - kind: 'rename'
        newName: 'secondaryContainer'

# Before adding a new fix: read instructions at the top of this file.
