diff --git a/packages/material_ui/lib/src/expansion_tile.dart b/packages/material_ui/lib/src/expansion_tile.dart index 3d59612ccc4e..f19b465927ac 100644 --- a/packages/material_ui/lib/src/expansion_tile.dart +++ b/packages/material_ui/lib/src/expansion_tile.dart @@ -23,6 +23,8 @@ import 'material_localizations.dart'; import 'theme.dart'; import 'theme_data.dart'; +part 'generated/expansion_tile_defaults_m3.g.dart'; + const Duration _kExpand = Duration(milliseconds: 200); /// Enables control over a single [ExpansionTile]'s expanded/collapsed state. @@ -919,34 +921,3 @@ class _ExpansionTileDefaultsM2 extends ExpansionTileThemeData { @override Color? get collapsedIconColor => _theme.unselectedWidgetColor; } - -// BEGIN GENERATED TOKEN PROPERTIES - ExpansionTile - -// Do not edit by hand. The code between the "BEGIN GENERATED" and -// "END GENERATED" comments are generated from data in the Material -// Design token database by the script: -// dev/tools/gen_defaults/bin/gen_defaults.dart. - -// dart format off -class _ExpansionTileDefaultsM3 extends ExpansionTileThemeData { - _ExpansionTileDefaultsM3(this.context); - - final BuildContext context; - late final ThemeData _theme = Theme.of(context); - late final ColorScheme _colors = _theme.colorScheme; - - @override - Color? get textColor => _colors.onSurface; - - @override - Color? get iconColor => _colors.primary; - - @override - Color? get collapsedTextColor => _colors.onSurface; - - @override - Color? get collapsedIconColor => _colors.onSurfaceVariant; -} -// dart format on - -// END GENERATED TOKEN PROPERTIES - ExpansionTile diff --git a/packages/material_ui/tool/gen_defaults/temporarily_excluded/generated/expansion_tile_defaults.g.dart b/packages/material_ui/lib/src/generated/expansion_tile_defaults_m3.g.dart similarity index 75% rename from packages/material_ui/tool/gen_defaults/temporarily_excluded/generated/expansion_tile_defaults.g.dart rename to packages/material_ui/lib/src/generated/expansion_tile_defaults_m3.g.dart index f1999b3e52e3..39f73f76e130 100644 --- a/packages/material_ui/tool/gen_defaults/temporarily_excluded/generated/expansion_tile_defaults.g.dart +++ b/packages/material_ui/lib/src/generated/expansion_tile_defaults_m3.g.dart @@ -2,6 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// Do not edit by hand. The code is generated from data in the Material +// Design token database by the script: +// packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart. +part of '../expansion_tile.dart'; + class _ExpansionTileDefaultsM3 extends ExpansionTileThemeData { _ExpansionTileDefaultsM3(this.context); diff --git a/packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart b/packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart index 764d0e8536af..ba4a86e707e6 100644 --- a/packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart +++ b/packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart @@ -27,7 +27,8 @@ import '../templates/color_scheme_template.dart'; // import '../templates/dialog_template.dart'; // import '../templates/divider_template.dart'; // import '../templates/drawer_template.dart'; -// import '../templates/expansion_tile_template.dart'; +import '../templates/expansion_tile_template.dart'; + // import '../templates/fab_template.dart'; import '../templates/filter_chip_template.dart'; @@ -86,7 +87,7 @@ Future main(List args) async { // const DialogTemplateM3().generateFile(verbose: verbose); // const DividerTemplateM3().generateFile(verbose: verbose); // const DrawerTemplateM3().generateFile(verbose: verbose); - // const ExpansionTileTemplateM3().generateFile(verbose: verbose); + const ExpansionTileTemplateM3().generateFile(verbose: verbose); // const FabTemplateM3().generateFile(verbose: verbose); const FilterChipTemplateM3().generateFile(verbose: verbose); // const IconButtonTemplateM3().generateFile(verbose: verbose); diff --git a/packages/material_ui/tool/gen_defaults/templates/expansion_tile_template.dart b/packages/material_ui/tool/gen_defaults/templates/expansion_tile_template.dart new file mode 100644 index 000000000000..9ad6c3574bd2 --- /dev/null +++ b/packages/material_ui/tool/gen_defaults/templates/expansion_tile_template.dart @@ -0,0 +1,41 @@ +// Copyright 2013 The Flutter Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import '../data/color_role.dart'; +import '../data/list.dart'; +import 'template.dart'; + +class ExpansionTileTemplateM3 extends TokenTemplateM3 { + const ExpansionTileTemplateM3(); + + @override + String get name => 'Expansion Tile'; + + @override + String get parentFilePath => 'expansion_tile.dart'; + + @override + String generateContents(String className) => + ''' +class $className extends ExpansionTileThemeData { + $className(this.context); + + final BuildContext context; + late final ThemeData _theme = Theme.of(context); + late final ColorScheme _colors = _theme.colorScheme; + + @override + Color? get textColor => ${color(TokenList.listItemLabelTextColor)}; + + @override + Color? get iconColor => ${color(TokenColorRole.primary)}; + + @override + Color? get collapsedTextColor => ${color(TokenList.listItemLabelTextColor)}; + + @override + Color? get collapsedIconColor => ${color(TokenList.listItemTrailingIconColor)}; +} +'''; +} diff --git a/packages/material_ui/tool/gen_defaults/temporarily_excluded/templates/expansion_tile_template.dart b/packages/material_ui/tool/gen_defaults/temporarily_excluded/templates/expansion_tile_template.dart deleted file mode 100644 index 970a46703580..000000000000 --- a/packages/material_ui/tool/gen_defaults/temporarily_excluded/templates/expansion_tile_template.dart +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013 The Flutter Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'template.dart'; - -class ExpansionTileTemplate extends TokenTemplate { - const ExpansionTileTemplate( - super.blockName, - super.fileName, - super.tokens, { - super.colorSchemePrefix = '_colors.', - }); - - @override - String generate() => - ''' -class _${blockName}DefaultsM3 extends ExpansionTileThemeData { - _${blockName}DefaultsM3(this.context); - - final BuildContext context; - late final ThemeData _theme = Theme.of(context); - late final ColorScheme _colors = _theme.colorScheme; - - @override - Color? get textColor => ${componentColor('md.comp.list.list-item.label-text')}; - - @override - Color? get iconColor => ${componentColor('md.comp.list.list-item.selected.trailing-icon')}; - - @override - Color? get collapsedTextColor => ${componentColor('md.comp.list.list-item.label-text')}; - - @override - Color? get collapsedIconColor => ${componentColor('md.comp.list.list-item.trailing-icon')}; -} -'''; -} diff --git a/packages/material_ui/tool/gen_defaults/test/gen_defaults_test.dart b/packages/material_ui/tool/gen_defaults/test/gen_defaults_test.dart index 49d2ea01776c..8af2e4fad647 100644 --- a/packages/material_ui/tool/gen_defaults/test/gen_defaults_test.dart +++ b/packages/material_ui/tool/gen_defaults/test/gen_defaults_test.dart @@ -24,7 +24,7 @@ import '../templates/color_scheme_template.dart'; // import '../templates/dialog_template.dart'; // import '../templates/divider_template.dart'; // import '../templates/drawer_template.dart'; -// import '../templates/expansion_tile_template.dart'; +import '../templates/expansion_tile_template.dart'; // import '../templates/fab_template.dart'; import '../templates/filter_chip_template.dart'; // import '../templates/icon_button_template.dart'; @@ -562,8 +562,11 @@ void main() { }); test('ExpansionTileTemplateM3 emits M3 ExpansionTile defaults from tokens', () { - // Intentionally empty, will be implemented during migration. See: - // https://github.com/flutter/flutter/issues/187899 + final String contents = _generateContents(const ExpansionTileTemplateM3()); + expect(contents, contains('class _ExpansionTileDefaultsM3 extends ExpansionTileThemeData')); + expect(contents, contains('Color? get textColor => _colors.onSurface')); + expect(contents, contains('Color? get iconColor => _colors.primary')); + expect(contents, contains('Color? get collapsedIconColor => _colors.onSurfaceVariant')); }); test('FabTemplateM3 emits M3 Fab defaults from tokens', () {