diff --git a/packages/material_ui/lib/src/bottom_sheet.dart b/packages/material_ui/lib/src/bottom_sheet.dart index ff719beb6133..414a619c0167 100644 --- a/packages/material_ui/lib/src/bottom_sheet.dart +++ b/packages/material_ui/lib/src/bottom_sheet.dart @@ -24,6 +24,8 @@ import 'motion.dart'; import 'scaffold.dart'; import 'theme.dart'; +part 'generated/bottom_sheet_defaults_m3.g.dart'; + const Duration _kBottomSheetEnterDuration = Duration(milliseconds: 250); const Duration _kBottomSheetExitDuration = Duration(milliseconds: 200); const Curve _kModalBottomSheetCurve = Easing.legacyDecelerate; @@ -1467,45 +1469,3 @@ class _BottomSheetGestureDetector extends StatelessWidget { ); } } - -// BEGIN GENERATED TOKEN PROPERTIES - BottomSheet - -// 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 _BottomSheetDefaultsM3 extends BottomSheetThemeData { - _BottomSheetDefaultsM3(this.context) - : super( - elevation: 1.0, - modalElevation: 1.0, - shape: const RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(28.0))), - constraints: const BoxConstraints(maxWidth: 640), - ); - - final BuildContext context; - late final ColorScheme _colors = Theme.of(context).colorScheme; - - @override - Color? get backgroundColor => _colors.surfaceContainerLow; - - @override - Color? get surfaceTintColor => Colors.transparent; - - @override - Color? get shadowColor => Colors.transparent; - - @override - Color? get dragHandleColor => _colors.onSurfaceVariant; - - @override - Size? get dragHandleSize => const Size(32, 4); - - @override - BoxConstraints? get constraints => const BoxConstraints(maxWidth: 640.0); -} -// dart format on - -// END GENERATED TOKEN PROPERTIES - BottomSheet diff --git a/packages/material_ui/tool/gen_defaults/temporarily_excluded/generated/bottom_sheet_defaults.g.dart b/packages/material_ui/lib/src/generated/bottom_sheet_defaults_m3.g.dart similarity index 78% rename from packages/material_ui/tool/gen_defaults/temporarily_excluded/generated/bottom_sheet_defaults.g.dart rename to packages/material_ui/lib/src/generated/bottom_sheet_defaults_m3.g.dart index 1728806c17cc..1abf23b5c820 100644 --- a/packages/material_ui/tool/gen_defaults/temporarily_excluded/generated/bottom_sheet_defaults.g.dart +++ b/packages/material_ui/lib/src/generated/bottom_sheet_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 '../bottom_sheet.dart'; + class _BottomSheetDefaultsM3 extends BottomSheetThemeData { _BottomSheetDefaultsM3(this.context) : super( @@ -29,7 +34,7 @@ class _BottomSheetDefaultsM3 extends BottomSheetThemeData { Color? get dragHandleColor => _colors.onSurfaceVariant; @override - Size? get dragHandleSize => const Size(32, 4); + Size? get dragHandleSize => const Size(32.0, 4.0); @override BoxConstraints? get constraints => const BoxConstraints(maxWidth: 640.0); 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 c7ab01c7e138..3d55229d0b17 100644 --- a/packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart +++ b/packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart @@ -17,7 +17,7 @@ import '../templates/app_bar_template.dart'; // import '../templates/badge_template.dart'; // import '../templates/banner_template.dart'; // import '../templates/bottom_app_bar_template.dart'; -// import '../templates/bottom_sheet_template.dart'; +import '../templates/bottom_sheet_template.dart'; // import '../templates/button_template.dart'; // import '../templates/card_template.dart'; // import '../templates/checkbox_template.dart'; @@ -68,7 +68,7 @@ Future main(List args) async { // const BadgeTemplateM3().generateFile(verbose: verbose); // const BannerTemplateM3().generateFile(verbose: verbose); // const BottomAppBarTemplateM3().generateFile(verbose: verbose); - // const BottomSheetTemplateM3().generateFile(verbose: verbose); + const BottomSheetTemplateM3().generateFile(verbose: verbose); // const ButtonTemplateM3().generateFile(verbose: verbose); // const CardTemplateM3().generateFile(verbose: verbose); // const CheckboxTemplateM3().generateFile(verbose: verbose); diff --git a/packages/material_ui/tool/gen_defaults/templates/bottom_sheet_template.dart b/packages/material_ui/tool/gen_defaults/templates/bottom_sheet_template.dart new file mode 100644 index 000000000000..e51f2c5f2150 --- /dev/null +++ b/packages/material_ui/tool/gen_defaults/templates/bottom_sheet_template.dart @@ -0,0 +1,51 @@ +// 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/sheet_bottom.dart'; +import 'template.dart'; + +class BottomSheetTemplateM3 extends TokenTemplateM3 { + const BottomSheetTemplateM3(); + + @override + String get name => 'Bottom Sheet'; + + @override + String get parentFilePath => 'bottom_sheet.dart'; + + @override + String generateContents(String className) => + ''' +class $className extends BottomSheetThemeData { + $className(this.context) + : super( + elevation: ${number(TokenSheetBottom.dockedStandardContainerElevation)}, + modalElevation: ${number(TokenSheetBottom.dockedModalContainerElevation)}, + shape: ${shape(TokenSheetBottom.dockedContainerShape)}, + constraints: const BoxConstraints(maxWidth: 640), + ); + + final BuildContext context; + late final ColorScheme _colors = Theme.of(context).colorScheme; + + @override + Color? get backgroundColor => ${color(TokenSheetBottom.dockedContainerColor, '_colors')}; + + @override + Color? get surfaceTintColor => Colors.transparent; + + @override + Color? get shadowColor => Colors.transparent; + + @override + Color? get dragHandleColor => ${color(TokenSheetBottom.dockedDragHandleColor, '_colors')}; + + @override + Size? get dragHandleSize => const Size(${number(TokenSheetBottom.dockedDragHandleWidth)}, ${number(TokenSheetBottom.dockedDragHandleHeight)}); + + @override + BoxConstraints? get constraints => const BoxConstraints(maxWidth: 640.0); +} +'''; +} diff --git a/packages/material_ui/tool/gen_defaults/temporarily_excluded/templates/bottom_sheet_template.dart b/packages/material_ui/tool/gen_defaults/temporarily_excluded/templates/bottom_sheet_template.dart deleted file mode 100644 index 2c68a43ebf8b..000000000000 --- a/packages/material_ui/tool/gen_defaults/temporarily_excluded/templates/bottom_sheet_template.dart +++ /dev/null @@ -1,48 +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 BottomSheetTemplate extends TokenTemplate { - const BottomSheetTemplate( - super.blockName, - super.fileName, - super.tokens, { - super.colorSchemePrefix = '_colors.', - }); - - @override - String generate() => ''' -class _${blockName}DefaultsM3 extends BottomSheetThemeData { - _${blockName}DefaultsM3(this.context) - : super( - elevation: ${elevation("md.comp.sheet.bottom.docked.standard.container")}, - modalElevation: ${elevation("md.comp.sheet.bottom.docked.modal.container")}, - shape: ${shape("md.comp.sheet.bottom.docked.container")}, - constraints: const BoxConstraints(maxWidth: 640), - ); - - final BuildContext context; - late final ColorScheme _colors = Theme.of(context).colorScheme; - - @override - Color? get backgroundColor => ${componentColor("md.comp.sheet.bottom.docked.container")}; - - @override - Color? get surfaceTintColor => ${colorOrTransparent("md.comp.sheet.bottom.docked.container.surface-tint-layer")}; - - @override - Color? get shadowColor => Colors.transparent; - - @override - Color? get dragHandleColor => ${componentColor("md.comp.sheet.bottom.docked.drag-handle")}; - - @override - Size? get dragHandleSize => ${size("md.comp.sheet.bottom.docked.drag-handle")}; - - @override - BoxConstraints? get constraints => const BoxConstraints(maxWidth: 640.0); -} -'''; -} 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 02f8d08fafca..86e23e8225fb 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 @@ -8,6 +8,7 @@ import 'package:test/test.dart'; import '../data/color_role.dart'; import '../data/shape_struct.dart'; import '../templates/app_bar_template.dart'; +import '../templates/bottom_sheet_template.dart'; import '../templates/template.dart'; import 'test_fixtures/test_templates.dart'; @@ -181,8 +182,21 @@ void main() { }); test('BottomSheetTemplateM3 emits M3 BottomSheet defaults from tokens', () { - // Intentionally empty, will be implemented during migration. See: - // https://github.com/flutter/flutter/issues/187899 + final String contents = const BottomSheetTemplateM3().generateContents( + '_BottomSheetDefaultsM3', + ); + expect(contents, contains('class _BottomSheetDefaultsM3 extends BottomSheetThemeData')); + expect(contents, contains('elevation: 1.0')); + expect(contents, contains('modalElevation: 1.0')); + expect( + contents, + contains( + 'shape: const RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(28.0)))', + ), + ); + expect(contents, contains('Color? get backgroundColor => _colors.surfaceContainerLow')); + expect(contents, contains('Color? get dragHandleColor => _colors.onSurfaceVariant')); + expect(contents, contains('Size? get dragHandleSize => const Size(32.0, 4.0)')); }); test('ButtonTemplateM3 emits M3 Button defaults from tokens', () {