From 8847424faf4fef28959c9dd01595ad6835c61fe8 Mon Sep 17 00:00:00 2001 From: "Shams Zakhour (ignore Sfshaza)" Date: Fri, 25 Sep 2026 13:14:21 -0700 Subject: [PATCH 1/2] Modifying the site for the Material/Cupertino decoupling --- .../basic_hero_animation/lib/main.dart | 2 +- .../basic_radial_hero_animation/lib/main.dart | 2 +- .../basic_staggered_animation/lib/main.dart | 2 +- .../_animation/hero_animation/lib/main.dart | 2 +- .../radial_hero_animation/lib/main.dart | 2 +- .../lib/main.dart | 2 +- .../staggered_pic_selection/lib/main.dart | 2 +- examples/accessibility/lib/main.dart | 2 +- examples/animation/animate0/lib/main.dart | 2 +- .../animation/animate0/test/widget_test.dart | 2 +- examples/animation/animate1/lib/main.dart | 2 +- .../animation/animate1/test/widget_test.dart | 2 +- examples/animation/animate2/lib/main.dart | 2 +- .../animation/animate2/test/widget_test.dart | 2 +- examples/animation/animate3/lib/main.dart | 2 +- .../animation/animate3/test/widget_test.dart | 2 +- examples/animation/animate4/lib/main.dart | 2 +- .../animation/animate4/test/widget_test.dart | 2 +- examples/animation/animate5/lib/main.dart | 2 +- .../animation/animate5/test/widget_test.dart | 2 +- .../command/lib/extended_command.dart | 2 +- .../app-architecture/command/lib/main.dart | 2 +- .../command/lib/no_command.dart | 2 +- .../command/lib/simple_command.dart | 2 +- .../offline_first/lib/main.dart | 2 +- .../ui/user_profile/user_profile_screen.dart | 2 +- .../user_profile/user_profile_viewmodel.dart | 2 +- .../optimistic_state/lib/starter.dart | 2 +- .../app-architecture/result/lib/main.dart | 2 +- .../result/lib/no_result.dart | 2 +- .../todo_data_service/lib/main.dart | 2 +- .../lib/main_app_viewmodel.dart | 2 +- .../viewmodel/theme_switch_viewmodel.dart | 2 +- .../ui/theme_config/widgets/theme_switch.dart | 2 +- .../todo_list/widgets/todo_list_screen.dart | 2 +- .../animated_container/lib/starter.dart | 2 +- .../opacity_animation/lib/starter.dart | 2 +- .../page_route_animation/lib/starter.dart | 2 +- .../physics_simulation/lib/starter.dart | 2 +- .../physics_simulation/lib/step1.dart | 2 +- .../physics_simulation/lib/step2.dart | 2 +- .../physics_simulation/lib/step3.dart | 2 +- .../cookbook/design/drawer/lib/drawer.dart | 2 +- examples/cookbook/design/fonts/lib/main.dart | 2 +- .../design/orientation/lib/orientation.dart | 2 +- .../design/orientation/lib/partials.dart | 2 +- .../design/package_fonts/lib/main.dart | 2 +- .../design/snackbars/lib/partial.dart | 2 +- .../cookbook/design/tabs/lib/partials.dart | 2 +- .../download_button/lib/button_taps.dart | 4 +- .../effects/download_button/lib/display.dart | 4 +- .../download_button/lib/display_text.dart | 4 +- .../effects/download_button/lib/spinner.dart | 4 +- .../download_button/lib/stateful_widget.dart | 2 +- .../effects/download_button/lib/stop.dart | 4 +- .../download_button/lib/visual_states.dart | 2 +- .../effects/expandable_fab/lib/excerpt1.dart | 2 +- .../effects/expandable_fab/lib/excerpt2.dart | 2 +- .../effects/expandable_fab/lib/excerpt3.dart | 2 +- .../effects/expandable_fab/lib/excerpt4.dart | 2 +- .../expandable_fab/lib/original_example.dart | 2 +- .../effects/nested_nav/lib/add_navigator.dart | 2 +- .../nested_nav/lib/original_example.dart | 2 +- .../effects/nested_nav/lib/prompt_user.dart | 2 +- .../effects/nested_nav/lib/setupflow.dart | 2 +- .../effects/nested_nav/lib/setupflow2.dart | 2 +- .../parallax_scrolling/lib/excerpt1.dart | 2 +- .../parallax_scrolling/lib/excerpt2.dart | 2 +- .../parallax_scrolling/lib/excerpt3.dart | 2 +- .../parallax_scrolling/lib/excerpt4.dart | 2 +- .../parallax_scrolling/lib/excerpt5.dart | 2 +- .../shimmer_loading/lib/original_example.dart | 2 +- .../lib/shimmer_loading_items.dart | 2 +- .../lib/shimmer_loading_state_pt2.dart | 2 +- .../shimmer_loading/lib/shimmer_state.dart | 2 +- .../lib/animation_delays.dart | 2 +- .../staggered_menu_animation/lib/step1.dart | 2 +- .../staggered_menu_animation/lib/step2.dart | 2 +- .../staggered_menu_animation/lib/step3.dart | 2 +- .../staggered_menu_animation/lib/step4.dart | 2 +- .../cookbook/forms/focus/lib/starter.dart | 2 +- examples/cookbook/forms/focus/lib/step2.dart | 2 +- examples/cookbook/forms/focus/lib/step3.dart | 2 +- .../forms/retrieve_input/lib/starter.dart | 2 +- .../forms/retrieve_input/lib/step2.dart | 2 +- .../forms/retrieve_input/lib/step3.dart | 2 +- .../cookbook/forms/validation/lib/form.dart | 2 +- .../games/firestore_multiplayer/lib/main.dart | 2 +- .../lib/play_session/play_session_screen.dart | 2 +- .../gestures/dismissible/lib/step1.dart | 2 +- .../gestures/dismissible/lib/step2.dart | 2 +- .../images/cached_images/lib/main.dart | 2 +- .../images/cached_images/lib/simple.dart | 2 +- .../fading_in_images/lib/asset_main.dart | 2 +- .../fading_in_images/lib/memory_main.dart | 2 +- .../images/network_image/lib/gif.dart | 2 +- .../lists/spaced_items/lib/spaced_list.dart | 2 +- .../background_parsing/lib/main.dart | 2 +- .../networking/delete_data/lib/main.dart | 2 +- .../networking/fetch_data/lib/main.dart | 2 +- .../networking/send_data/lib/main.dart | 2 +- .../networking/update_data/lib/main.dart | 2 +- .../update_data/lib/main_step5.dart | 2 +- .../networking/web_sockets/lib/main.dart | 2 +- .../persistence/key_value/lib/main.dart | 2 +- .../reading_writing_files/lib/main.dart | 2 +- .../persistence/sqlite/lib/step3.dart | 2 +- .../plugins/google_mobile_ads/lib/main.dart | 2 +- .../picture_using_camera/lib/image_file.dart | 2 +- .../picture_using_camera/lib/main.dart | 2 +- .../picture_using_camera/lib/main_step3.dart | 2 +- .../picture_using_camera/lib/main_step5.dart | 2 +- .../integration_test/app_test.dart | 2 +- .../integration/introduction/lib/main.dart | 2 +- .../integration_test/scrolling_test.dart | 2 +- .../integration/profiling/lib/main.dart | 2 +- .../testing/unit/mocking/lib/main.dart | 2 +- .../widget/finders/test/finders_test.dart | 2 +- .../introduction/test/main_step3_test.dart | 2 +- .../introduction/test/main_step4_test.dart | 2 +- .../introduction/test/main_step5_test.dart | 2 +- .../introduction/test/main_step6_test.dart | 2 +- .../widget/introduction/test/main_test.dart | 2 +- .../widget/orientation_tests/lib/main.dart | 2 +- .../orientation_tests/test/widget_test.dart | 2 +- .../testing/widget/scrolling/lib/main.dart | 2 +- .../widget/scrolling/test/widget_test.dart | 2 +- .../widget/tap_drag/test/main_steps.dart | 2 +- .../widget/tap_drag/test/main_test.dart | 2 +- examples/fwe/birdle/lib/main.dart | 2 +- examples/fwe/birdle/lib/step1_main.dart | 2 +- examples/fwe/birdle/lib/step2_main.dart | 2 +- examples/fwe/birdle/lib/step2a_main.dart | 2 +- examples/fwe/birdle/lib/step2b_main.dart | 2 +- examples/fwe/birdle/lib/step2c_main.dart | 2 +- examples/fwe/birdle/lib/step2d_main.dart | 2 +- examples/fwe/birdle/lib/step2e_main.dart | 2 +- examples/fwe/birdle/lib/step2f_main.dart | 2 +- examples/fwe/birdle/lib/step3_main.dart | 2 +- examples/fwe/birdle/lib/step3a_main.dart | 2 +- examples/fwe/birdle/lib/step3b_main.dart | 2 +- examples/fwe/birdle/lib/step3c_main.dart | 2 +- examples/fwe/birdle/lib/step4_main.dart | 2 +- examples/fwe/birdle/lib/step4a_main.dart | 2 +- examples/fwe/birdle/lib/step4b_main.dart | 2 +- examples/fwe/birdle/lib/step4c_main.dart | 2 +- examples/fwe/birdle/lib/step4d_main.dart | 2 +- examples/fwe/birdle/lib/step4e_main.dart | 2 +- examples/fwe/birdle/lib/step4f_main.dart | 2 +- examples/fwe/birdle/lib/step4g_main.dart | 2 +- examples/fwe/birdle/lib/step4h_main.dart | 2 +- examples/fwe/birdle/lib/step4i_main.dart | 2 +- examples/fwe/birdle/lib/step4j_main.dart | 2 +- examples/fwe/birdle/lib/step4k_main.dart | 2 +- examples/fwe/birdle/lib/step4l_main.dart | 2 +- examples/fwe/birdle/lib/step4m_main.dart | 2 +- examples/fwe/birdle/lib/step5_main.dart | 2 +- .../step1_advanced_ui/data/contact_group.dart | 2 +- .../rolodex/lib/step1_advanced_ui/main.dart | 2 +- .../lib/step1_advanced_ui/main_starter.dart | 2 +- .../data/contact_group.dart | 2 +- .../lib/step2_adaptive_layout/main.dart | 2 +- .../screens/adaptive_layout.dart | 2 +- .../screens/adaptive_layout_v1.dart | 2 +- .../screens/adaptive_layout_v2.dart | 2 +- .../screens/adaptive_layout_v3.dart | 2 +- .../screens/adaptive_layout_v4.dart | 2 +- .../screens/contact_groups.dart | 2 +- .../screens/contacts.dart | 2 +- .../lib/step3_slivers/data/contact_group.dart | 2 +- .../fwe/rolodex/lib/step3_slivers/main.dart | 2 +- .../screens/adaptive_layout.dart | 2 +- .../step3_slivers/screens/contact_groups.dart | 2 +- .../screens/contact_groups_v1.dart | 2 +- .../lib/step3_slivers/screens/contacts.dart | 2 +- .../step3_slivers/screens/contacts_v1.dart | 2 +- .../step3_slivers/screens/contacts_v2.dart | 2 +- .../step4_navigation/data/contact_group.dart | 2 +- .../rolodex/lib/step4_navigation/main.dart | 2 +- .../screens/adaptive_layout.dart | 2 +- .../screens/contact_groups.dart | 2 +- .../step4_navigation/screens/contacts.dart | 2 +- .../fwe/wikipedia_reader/lib/step1_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step2_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step2a_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step2b_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step2c_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step3_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step3a_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step3b_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step3c_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step3d_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step3e_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step3f_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4a_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4b_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4c_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4d_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4e_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4f_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4g_main.dart | 2 +- .../fwe/wikipedia_reader/lib/step4h_main.dart | 2 +- .../android_devs/lib/animation.dart | 2 +- .../flutter-for/android_devs/lib/async.dart | 2 +- .../flutter-for/android_devs/lib/canvas.dart | 2 +- .../flutter-for/android_devs/lib/custom.dart | 2 +- .../flutter-for/android_devs/lib/events.dart | 2 +- .../flutter-for/android_devs/lib/form.dart | 2 +- .../flutter-for/android_devs/lib/images.dart | 2 +- .../flutter-for/android_devs/lib/intent.dart | 2 +- .../android_devs/lib/isolates.dart | 2 +- .../flutter-for/android_devs/lib/layout.dart | 2 +- .../android_devs/lib/list_item_tapped.dart | 2 +- .../android_devs/lib/listview.dart | 2 +- .../android_devs/lib/listview_builder.dart | 2 +- .../android_devs/lib/listview_dynamic.dart | 2 +- .../lib/localization_examples.dart | 2 +- .../android_devs/lib/progress.dart | 2 +- .../android_devs/lib/request_data.dart | 2 +- .../android_devs/lib/shared_prefs.dart | 2 +- .../android_devs/lib/string_examples.dart | 2 +- .../flutter-for/android_devs/lib/text.dart | 2 +- .../android_devs/lib/text_widget.dart | 2 +- .../flutter-for/android_devs/lib/theme.dart | 2 +- .../android_devs/lib/validation_errors.dart | 2 +- .../flutter-for/declarative/lib/main.dart | 2 +- .../flutter-for/ios_devs/lib/animation.dart | 2 +- .../flutter-for/ios_devs/lib/async.dart | 2 +- .../flutter-for/ios_devs/lib/canvas.dart | 2 +- .../flutter-for/ios_devs/lib/column.dart | 4 +- .../ios_devs/lib/cupertino_themes.dart | 2 +- .../flutter-for/ios_devs/lib/custom.dart | 2 +- .../flutter-for/ios_devs/lib/events.dart | 2 +- .../flutter-for/ios_devs/lib/form.dart | 2 +- .../flutter-for/ios_devs/lib/get_started.dart | 4 +- .../flutter-for/ios_devs/lib/grid.dart | 4 +- .../flutter-for/ios_devs/lib/images.dart | 2 +- .../flutter-for/ios_devs/lib/intent.dart | 2 +- .../flutter-for/ios_devs/lib/isolates.dart | 2 +- .../flutter-for/ios_devs/lib/layout.dart | 4 +- .../flutter-for/ios_devs/lib/list.dart | 4 +- .../ios_devs/lib/list_item_tapped.dart | 2 +- .../flutter-for/ios_devs/lib/listview.dart | 2 +- .../ios_devs/lib/listview_builder.dart | 2 +- .../ios_devs/lib/listview_dynamic.dart | 2 +- .../ios_devs/lib/localizations_example.dart | 2 +- .../flutter-for/ios_devs/lib/navigation.dart | 4 +- .../flutter-for/ios_devs/lib/openapp.dart | 2 +- .../flutter-for/ios_devs/lib/popback.dart | 4 +- .../flutter-for/ios_devs/lib/progress.dart | 2 +- .../ios_devs/lib/request_data.dart | 2 +- .../flutter-for/ios_devs/lib/row.dart | 4 +- .../flutter-for/ios_devs/lib/scroll.dart | 4 +- .../ios_devs/lib/shared_prefs.dart | 2 +- .../ios_devs/lib/simple_animation.dart | 4 +- .../flutter-for/ios_devs/lib/state.dart | 4 +- .../ios_devs/lib/string_examples.dart | 2 +- .../ios_devs/lib/stylingbutton.dart | 2 +- .../flutter-for/ios_devs/lib/text.dart | 2 +- .../flutter-for/ios_devs/lib/text_button.dart | 4 +- .../flutter-for/ios_devs/lib/text_widget.dart | 2 +- .../flutter-for/ios_devs/lib/theme.dart | 2 +- .../ios_devs/lib/validation_errors.dart | 2 +- .../react_native_devs/lib/animation.dart | 2 +- .../react_native_devs/lib/best_practices.dart | 2 +- .../react_native_devs/lib/components.dart | 2 +- .../react_native_devs/lib/examples.dart | 2 +- .../react_native_devs/lib/hello_world.dart | 2 +- .../react_native_devs/lib/imports.dart | 4 +- .../react_native_devs/lib/layouts.dart | 2 +- .../react_native_devs/lib/navigation.dart | 2 +- .../react_native_devs/lib/stateful.dart | 2 +- .../react_native_devs/lib/stateless.dart | 2 +- .../react_native_devs/lib/widget_tree.dart | 2 +- .../flutter-for/web_devs/lib/main.dart | 2 +- .../xamarin_devs/lib/animation.dart | 2 +- .../xamarin_devs/lib/custom_button.dart | 2 +- .../flutter-for/xamarin_devs/lib/data.dart | 2 +- .../flutter-for/xamarin_devs/lib/draw.dart | 2 +- .../xamarin_devs/lib/dynamic_listview.dart | 2 +- .../flutter-for/xamarin_devs/lib/form.dart | 2 +- .../xamarin_devs/lib/gestures.dart | 2 +- .../flutter-for/xamarin_devs/lib/images.dart | 2 +- .../xamarin_devs/lib/input_decoration.dart | 2 +- .../xamarin_devs/lib/isolates.dart | 2 +- .../flutter-for/xamarin_devs/lib/layouts.dart | 2 +- .../xamarin_devs/lib/listview.dart | 2 +- .../xamarin_devs/lib/listview_builder.dart | 2 +- .../lib/listview_item_clicked.dart | 2 +- .../flutter-for/xamarin_devs/lib/loading.dart | 2 +- .../flutter-for/xamarin_devs/lib/main.dart | 2 +- .../xamarin_devs/lib/navigation.dart | 2 +- .../flutter-for/xamarin_devs/lib/padding.dart | 2 +- .../flutter-for/xamarin_devs/lib/page.dart | 2 +- .../flutter-for/xamarin_devs/lib/strings.dart | 2 +- .../flutter-for/xamarin_devs/lib/theme.dart | 2 +- .../xamarin_devs/lib/validation.dart | 2 +- .../flutter-for/xamarin_devs/lib/views.dart | 4 +- .../xamarin_devs/lib/views_stateful.dart | 2 +- examples/googleapis/lib/main.dart | 2 +- .../integration_test/counter_test.dart | 2 +- examples/integration_test/lib/main.dart | 2 +- .../integration_test_migration/lib/main.dart | 2 +- .../add_language/lib/main.dart | 2 +- .../add_language/lib/nn_intl.dart | 2 +- .../intl_example/lib/main.dart | 2 +- .../minimal/lib/main.dart | 2 +- examples/layout/base/lib/cupertino.dart | 2 +- examples/layout/base/lib/main.dart | 2 +- examples/layout/base/lib/main_starter.dart | 2 +- examples/layout/card_and_stack/lib/main.dart | 2 +- examples/layout/container/lib/main.dart | 2 +- .../gallery/lib/bottom_navigation_demo.dart | 2 +- examples/layout/gallery/lib/cards_demo.dart | 2 +- examples/layout/gallery/lib/colors_demo.dart | 2 +- .../layout/gallery/lib/grid_list_demo.dart | 2 +- examples/layout/gallery/lib/list_demo.dart | 2 +- examples/layout/grid_and_list/lib/main.dart | 2 +- .../layout/lakes/interactive/lib/main.dart | 2 +- .../lakes/interactive/test/widget_test.dart | 2 +- examples/layout/lakes/step2/lib/main.dart | 2 +- examples/layout/lakes/step3/lib/main.dart | 2 +- examples/layout/lakes/step4/lib/main.dart | 2 +- examples/layout/lakes/step5/lib/main.dart | 2 +- examples/layout/lakes/step6/lib/main.dart | 2 +- examples/layout/non_material/lib/main.dart | 2 +- examples/layout/pavlova/lib/main.dart | 2 +- examples/layout/row_column/lib/main.dart | 2 +- examples/layout/sizing/lib/main.dart | 2 +- .../perf/concurrency/isolates/lib/main.dart | 2 +- .../perf/deferred_components/lib/box.dart | 2 +- .../lib/use_deferred_box.dart | 2 +- .../launch_compose_activity_example_1.dart | 2 +- .../lib/platform_channels.dart | 2 +- .../lib/native_view_example_1.dart | 2 +- .../lib/native_view_example_2.dart | 2 +- .../lib/english_words.dart | 2 +- .../lib/url_launcher.dart | 2 +- .../architectural_overview/lib/main.dart | 2 +- .../lib/async_weather.dart | 2 +- examples/state_mgmt/simple/lib/main.dart | 2 +- .../state_mgmt/simple/lib/src/common.dart | 2 +- .../simple/lib/src/passing_callbacks.dart | 2 +- .../simple/lib/src/performance.dart | 2 +- .../state_mgmt/simple/lib/src/provider.dart | 2 +- .../state_mgmt/simple/lib/src/set_state.dart | 2 +- .../state_mgmt/simple/test/widget_test.dart | 2 +- .../code_debugging/lib/debug_flags.dart | 2 +- .../testing/code_debugging/lib/dump_app.dart | 2 +- .../code_debugging/lib/dump_focus_tree.dart | 2 +- .../code_debugging/lib/dump_layer_tree.dart | 2 +- .../code_debugging/lib/dump_render_tree.dart | 2 +- .../lib/dump_semantic_tree.dart | 2 +- .../lib/performance_overlay.dart | 2 +- .../lib/renderflex_overflow.dart | 2 +- .../common_errors/lib/set_state_build.dart | 2 +- .../common_errors/lib/unbounded_height.dart | 2 +- .../common_errors/lib/unbounded_width.dart | 2 +- .../testing/errors/lib/error_handler.dart | 2 +- examples/testing/errors/lib/excerpts.dart | 2 +- examples/testing/errors/lib/main.dart | 2 +- examples/testing/errors/lib/my_app.dart | 2 +- .../testing/errors/lib/quit_immediate.dart | 2 +- .../how_to/integration_test/counter_test.dart | 2 +- .../integration_tests/how_to/lib/main.dart | 2 +- .../testing/native_debugging/lib/main.dart | 2 +- examples/tools/lib/hot-reload/after.dart | 2 +- examples/tools/lib/hot-reload/before.dart | 2 +- .../ui/actions_and_shortcuts/lib/samples.dart | 2 +- .../ui/adaptive_app_demos/lib/app_model.dart | 2 +- .../lib/global/device_size.dart | 4 +- .../lib/global/device_type.dart | 2 +- examples/ui/adaptive_app_demos/lib/main.dart | 2 +- .../lib/main_app_scaffold.dart | 2 +- .../lib/pages/adaptive_data_table_page.dart | 2 +- .../lib/pages/adaptive_grid_page.dart | 2 +- .../lib/pages/adaptive_reflow_page.dart | 2 +- .../lib/pages/focus_examples_page.dart | 2 +- .../lib/pages/login_page.dart | 2 +- .../lib/widgets/app_title_bar.dart | 2 +- .../lib/widgets/buttons.dart | 2 +- .../lib/widgets/extra_widget_excerpts.dart | 2 +- .../lib/widgets/ok_cancel_dialog.dart | 2 +- .../widgets/scroll_view_with_scrollbars.dart | 2 +- examples/ui/assets_and_images/lib/main.dart | 2 +- .../ui/focus/lib/custom_control_example.dart | 2 +- examples/ui/focus/lib/samples.dart | 2 +- examples/ui/interactive/lib/mixed.dart | 2 +- .../ui/interactive/lib/parent_managed.dart | 2 +- examples/ui/interactive/lib/self_managed.dart | 2 +- .../ui/navigation/lib/navigator_basic.dart | 2 +- .../lib/navigator_named_routes.dart | 2 +- .../ui/navigation/lib/navigator_router.dart | 2 +- .../lib/highlight_repaints.dart | 2 +- .../lib/oversized_images.dart | 2 +- sites/docs/lib/src/pages/widget_catalog.dart | 65 +---- .../add-to-app/android/add-flutter-view.md | 2 +- .../add-to-app/ios/add-flutter-screen.md | 2 +- .../content/ai/ai-toolkit/user-experience.md | 9 +- .../docs/src/content/ai/genui/get-started.md | 6 +- .../app-architecture/case-study/ui-layer.md | 2 +- .../animation/page-route-animation.md | 2 +- .../cookbook/animation/physics-simulation.md | 2 +- .../cookbook/design/cupertino-sheets.md | 2 +- .../src/content/cookbook/design/drawer.md | 14 +- .../docs/src/content/cookbook/design/fonts.md | 2 +- .../content/cookbook/design/package-fonts.md | 2 +- .../src/content/cookbook/design/snackbars.md | 6 +- .../docs/src/content/cookbook/design/tabs.md | 14 +- .../src/content/cookbook/design/themes.md | 8 +- .../cookbook/effects/shimmer-loading.md | 2 +- .../cookbook/forms/text-field-changes.md | 8 +- .../src/content/cookbook/forms/text-input.md | 8 +- .../src/content/cookbook/forms/validation.md | 4 +- .../cookbook/gestures/handling-taps.md | 6 +- .../src/content/cookbook/gestures/ripples.md | 2 +- .../cookbook/images/fading-in-images.md | 4 +- .../src/content/cookbook/lists/basic-list.md | 4 +- .../cookbook/lists/floating-app-bar.md | 6 +- .../cookbook/navigation/named-routes.md | 2 +- .../navigation/navigate-with-arguments.md | 4 +- .../cookbook/navigation/navigation-basics.md | 16 +- .../cookbook/navigation/passing-data.md | 2 +- .../cookbook/navigation/set-up-app-links.md | 2 +- .../navigation/set-up-universal-links.md | 2 +- .../cookbook/networking/background-parsing.md | 2 +- .../cookbook/networking/delete-data.md | 2 +- .../content/cookbook/networking/fetch-data.md | 2 +- .../content/cookbook/networking/send-data.md | 2 +- .../cookbook/networking/update-data.md | 2 +- .../cookbook/networking/web-sockets.md | 2 +- .../content/cookbook/persistence/key-value.md | 2 +- .../persistence/reading-writing-files.md | 2 +- .../cookbook/plugins/picture-using-camera.md | 2 +- .../cookbook/testing/integration/profiling.md | 2 +- .../content/cookbook/testing/unit/mocking.md | 2 +- .../cookbook/testing/widget/finders.md | 2 +- .../cookbook/testing/widget/introduction.md | 2 +- .../cookbook/testing/widget/orientation.md | 6 +- .../cookbook/testing/widget/scrolling.md | 4 +- .../cookbook/testing/widget/tap-drag.md | 4 +- .../src/content/deployment/flavors-ios.md | 32 +-- sites/docs/src/content/deployment/flavors.md | 33 +-- .../src/content/flutter-for/android-devs.md | 30 +-- .../src/content/flutter-for/compose-devs.md | 6 +- .../content/flutter-for/react-native-devs.md | 90 +++---- .../src/content/flutter-for/swiftui-devs.md | 6 +- .../src/content/flutter-for/uikit-devs.md | 26 +- .../content/flutter-for/xamarin-forms-devs.md | 28 +-- .../learn/pathway/tutorial/adaptive-layout.md | 14 +- .../learn/pathway/tutorial/advanced-ui.md | 6 +- .../content/learn/pathway/tutorial/layout.md | 4 +- .../pathway/tutorial/listenable-builder.md | 2 +- .../learn/pathway/tutorial/navigation.md | 2 +- .../pathway/tutorial/set-up-state-project.md | 2 +- .../content/learn/pathway/tutorial/slivers.md | 4 +- .../learn/pathway/tutorial/user-input.md | 12 +- .../pathway/tutorial/widget-fundamentals.md | 2 +- .../packages-and-plugins/using-packages.md | 62 ++--- sites/docs/src/content/perf/best-practices.md | 2 +- .../src/content/perf/deferred-components.md | 4 +- .../android/compose-activity.md | 2 +- .../android/local-network-permission.md | 2 +- .../android/platform-views.md | 4 +- .../android/restore-state-android.md | 2 +- .../platform-integration/platform-channels.md | 2 +- .../web/embedding-flutter-web.md | 59 +---- .../web/web-content-in-flutter.md | 6 +- .../src/content/release/archive-whats-new.md | 33 +-- .../breaking-changes/1-22-deprecations.md | 36 +-- .../breaking-changes/2-10-deprecations.md | 42 ++-- .../breaking-changes/2-2-deprecations.md | 10 +- .../breaking-changes/2-5-deprecations.md | 8 +- .../breaking-changes/3-10-deprecations.md | 18 +- .../breaking-changes/3-13-deprecations.md | 14 +- .../breaking-changes/3-16-deprecations.md | 10 +- .../breaking-changes/3-19-deprecations.md | 18 +- .../breaking-changes/3-7-deprecations.md | 6 +- .../breaking-changes/appbar-theme-color.md | 4 +- .../release/breaking-changes/buttons.md | 22 +- .../breaking-changes/checkbox-fillColor.md | 2 +- .../chip-usedeletebuttontooltip-migration.md | 6 +- .../component-theme-normalization-updates.md | 6 +- .../component-theme-normalization.md | 8 +- .../release/breaking-changes/context-menus.md | 8 +- .../breaking-changes/cupertino-icons-1.0.0.md | 5 +- .../cupertino-tab-bar-localizations.md | 12 +- .../decouple-page-transition-builders.md | 13 +- .../default-android-page-transition.md | 6 +- .../default-desktop-scrollbars.md | 8 +- .../default-scroll-behavior-drag.md | 4 +- .../breaking-changes/deprecate-buttonbar.md | 2 +- ...deprecate-dropdownbuttonformfield-value.md | 2 +- ...cate-inputdecoration-maintainhintheight.md | 4 +- .../deprecate-onreorder-callback.md | 2 +- ...precate-themedata-dialogbackgroundcolor.md | 10 +- .../deprecate-themedata-indicatorcolor.md | 10 +- .../breaking-changes/dialog-border-radius.md | 12 +- .../dropdownbutton-enabled-property.md | 4 +- .../eliminating-nullok-parameters.md | 30 +-- .../expansion-tile-controller.md | 4 +- .../fab-theme-data-accent-properties.md | 8 +- .../breaking-changes/hero-controller-scope.md | 4 +- .../input-decoration-collapsed.md | 6 +- .../layout-builder-optimization.md | 4 +- .../list-tile-color-warning.md | 4 +- .../breaking-changes/material-3-default.md | 12 +- .../breaking-changes/material-3-migration.md | 54 ++--- .../material-chip-button-semantics.md | 10 +- .../material-design-3-token-update.md | 6 +- .../material-localized-strings.md | 4 +- .../material-theme-system-updates.md | 8 +- .../material-ui-and-cupertino-ui.md | 5 +- .../breaking-changes/menus-text-style.md | 16 +- .../modal-router-semantics-order.md | 4 +- .../breaking-changes/multi-touch-scrolling.md | 4 +- .../navigator-and-page-api.md | 4 +- .../nullable-cupertinothemedata-brightness.md | 4 +- ...n-replaced-by-ZoomPageTransitionBuilder.md | 6 +- .../breaking-changes/popscope-with-result.md | 4 +- .../primary-scroll-controller-desktop.md | 2 +- .../breaking-changes/radio-api-redesign.md | 6 +- .../rendereditable-layout-before-hit-test.md | 4 +- .../breaking-changes/scaffold-messenger.md | 8 +- .../scrollable-alert-dialog.md | 2 +- .../snackbar-with-action-behavior-update.md | 2 +- .../supplemental-maybeOf-migration.md | 8 +- .../release/breaking-changes/tab-alignment.md | 6 +- .../text-field-material-localizations.md | 14 +- .../breaking-changes/text-selection-theme.md | 4 +- .../theme-data-accent-properties.md | 36 +-- .../toggleable-active-color.md | 4 +- .../tooltip-semantics-order.md | 2 +- .../updated-material-3-progress-indicators.md | 8 +- .../updated-material-3-slider.md | 4 +- .../wide-gamut-cupertino-dynamic-color.md | 22 +- .../release/breaking-changes/zone-errors.md | 2 +- .../release-notes-0.0.21-1.0.0.md | 2 +- .../release-notes/release-notes-1.12.13.md | 8 +- .../release-notes/release-notes-1.2.1.md | 2 +- .../release-notes/release-notes-1.7.8.md | 4 +- .../resources/architectural-overview.md | 58 ++--- sites/docs/src/content/resources/faq.md | 12 +- .../src/content/testing/code-debugging.md | 24 +- sites/docs/src/content/testing/errors.md | 8 +- .../testing/integration-tests/index.md | 4 +- .../src/content/tools/devtools/custom-tool.md | 2 +- sites/docs/src/content/tools/hot-reload.md | 2 +- sites/docs/src/content/tools/pubspec.md | 2 + .../src/content/tools/widget-previewer.md | 2 +- .../accessibility/assistive-technologies.md | 53 +--- .../ui/accessibility/web-accessibility.md | 2 +- .../content/ui/adaptive-responsive/idioms.md | 4 +- .../content/ui/adaptive-responsive/input.md | 2 +- .../ui/adaptive-responsive/large-screens.md | 4 +- .../platform-adaptations.md | 22 +- .../content/ui/animations/hero-animations.md | 6 +- .../src/content/ui/animations/tutorial.md | 2 +- .../content/ui/assets/assets-and-images.md | 4 +- .../src/content/ui/design/cupertino/index.md | 13 +- .../src/content/ui/design/material/index.md | 39 --- .../src/content/ui/design/text/typography.md | 6 +- sites/docs/src/content/ui/index.md | 110 +++++++-- .../src/content/ui/interactivity/focus.md | 2 +- .../ui/interactivity/gestures/index.md | 6 +- .../src/content/ui/interactivity/index.md | 30 +-- .../content/ui/internationalization/index.md | 8 +- sites/docs/src/content/ui/layout/index.md | 60 ++--- .../content/ui/layout/scrolling/slivers.md | 2 +- sites/docs/src/content/ui/layout/tutorial.md | 2 +- .../src/content/ui/navigation/deep-linking.md | 4 +- sites/docs/src/content/ui/navigation/index.md | 4 +- sites/docs/src/content/ui/widgets/index.md | 12 +- sites/docs/src/data/catalog/widgets.yml | 228 +++++++++--------- sites/docs/src/data/glossary.yml | 76 +++++- sites/docs/src/data/sidenav/default.yml | 8 +- sites/docs/src/data/site.yml | 2 + .../docs/arch-overview/archdiagram.webp | Bin 0 -> 410668 bytes .../docs/resources/diagram-layercake.png | Bin 39874 -> 0 bytes .../docs/resources/diagram-layercake.webp | Bin 0 -> 624392 bytes 581 files changed, 1458 insertions(+), 1589 deletions(-) create mode 100644 sites/docs/web/assets/images/docs/arch-overview/archdiagram.webp delete mode 100644 sites/docs/web/assets/images/docs/resources/diagram-layercake.png create mode 100644 sites/docs/web/assets/images/docs/resources/diagram-layercake.webp diff --git a/examples/_animation/basic_hero_animation/lib/main.dart b/examples/_animation/basic_hero_animation/lib/main.dart index 67a666c1226..6946070517f 100644 --- a/examples/_animation/basic_hero_animation/lib/main.dart +++ b/examples/_animation/basic_hero_animation/lib/main.dart @@ -4,7 +4,7 @@ // Demonstrates a basic shared element (Hero) animation. -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class BasicHeroAnimation extends StatelessWidget { const BasicHeroAnimation({super.key}); diff --git a/examples/_animation/basic_radial_hero_animation/lib/main.dart b/examples/_animation/basic_radial_hero_animation/lib/main.dart index 55f31bd8d63..ee87a31fb6e 100644 --- a/examples/_animation/basic_radial_hero_animation/lib/main.dart +++ b/examples/_animation/basic_radial_hero_animation/lib/main.dart @@ -7,7 +7,7 @@ import 'dart:math' as math; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/scheduler.dart' show timeDilation; class Photo extends StatelessWidget { diff --git a/examples/_animation/basic_staggered_animation/lib/main.dart b/examples/_animation/basic_staggered_animation/lib/main.dart index 9e2237e84bb..a6842b633c2 100644 --- a/examples/_animation/basic_staggered_animation/lib/main.dart +++ b/examples/_animation/basic_staggered_animation/lib/main.dart @@ -4,7 +4,7 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/scheduler.dart' show timeDilation; class StaggerAnimation extends StatelessWidget { diff --git a/examples/_animation/hero_animation/lib/main.dart b/examples/_animation/hero_animation/lib/main.dart index a118853d405..c4a4851cc68 100644 --- a/examples/_animation/hero_animation/lib/main.dart +++ b/examples/_animation/hero_animation/lib/main.dart @@ -8,7 +8,7 @@ // device's back-to-the-previous-screen gesture. // You can slow the transition using the timeDilation property. -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/scheduler.dart' show timeDilation; class PhotoHero extends StatelessWidget { diff --git a/examples/_animation/radial_hero_animation/lib/main.dart b/examples/_animation/radial_hero_animation/lib/main.dart index f722e72cf82..47eece66612 100644 --- a/examples/_animation/radial_hero_animation/lib/main.dart +++ b/examples/_animation/radial_hero_animation/lib/main.dart @@ -12,7 +12,7 @@ import 'dart:math' as math; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/scheduler.dart' show timeDilation; class Photo extends StatelessWidget { diff --git a/examples/_animation/radial_hero_animation_animate_rectclip/lib/main.dart b/examples/_animation/radial_hero_animation_animate_rectclip/lib/main.dart index cd86e083e4c..932af82d4cb 100644 --- a/examples/_animation/radial_hero_animation_animate_rectclip/lib/main.dart +++ b/examples/_animation/radial_hero_animation_animate_rectclip/lib/main.dart @@ -13,7 +13,7 @@ import 'dart:math' as math; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/scheduler.dart' show timeDilation; class Photo extends StatelessWidget { diff --git a/examples/_animation/staggered_pic_selection/lib/main.dart b/examples/_animation/staggered_pic_selection/lib/main.dart index 6109734a8f9..f5d958cf2d4 100644 --- a/examples/_animation/staggered_pic_selection/lib/main.dart +++ b/examples/_animation/staggered_pic_selection/lib/main.dart @@ -10,7 +10,7 @@ defined by photoBlockFrames. import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/scheduler.dart' show timeDilation; class Photo { diff --git a/examples/accessibility/lib/main.dart b/examples/accessibility/lib/main.dart index ae6143e796c..4fca023755a 100644 --- a/examples/accessibility/lib/main.dart +++ b/examples/accessibility/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const AccessibleApp()); diff --git a/examples/animation/animate0/lib/main.dart b/examples/animation/animate0/lib/main.dart index 49144dbd17e..ecdcf568adb 100644 --- a/examples/animation/animate0/lib/main.dart +++ b/examples/animation/animate0/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const LogoApp()); diff --git a/examples/animation/animate0/test/widget_test.dart b/examples/animation/animate0/test/widget_test.dart index dbc27103608..70a7b80c0c6 100644 --- a/examples/animation/animate0/test/widget_test.dart +++ b/examples/animation/animate0/test/widget_test.dart @@ -2,7 +2,7 @@ // Learn more at https://docs.flutter.dev/testing/overview#widget-tests. import 'package:animation0/main.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/animation/animate1/lib/main.dart b/examples/animation/animate1/lib/main.dart index ad712948f6e..a252888899a 100644 --- a/examples/animation/animate1/lib/main.dart +++ b/examples/animation/animate1/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const LogoApp()); diff --git a/examples/animation/animate1/test/widget_test.dart b/examples/animation/animate1/test/widget_test.dart index 5473a738902..41bb46efe78 100644 --- a/examples/animation/animate1/test/widget_test.dart +++ b/examples/animation/animate1/test/widget_test.dart @@ -2,7 +2,7 @@ // Learn more at https://docs.flutter.dev/testing/overview#widget-tests. import 'package:animation1/main.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/animation/animate2/lib/main.dart b/examples/animation/animate2/lib/main.dart index 3437ed2fd51..3178985e2c2 100644 --- a/examples/animation/animate2/lib/main.dart +++ b/examples/animation/animate2/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const LogoApp()); diff --git a/examples/animation/animate2/test/widget_test.dart b/examples/animation/animate2/test/widget_test.dart index 0ead00e7531..1f45a296bd6 100644 --- a/examples/animation/animate2/test/widget_test.dart +++ b/examples/animation/animate2/test/widget_test.dart @@ -2,7 +2,7 @@ // Learn more at https://docs.flutter.dev/testing/overview#widget-tests. import 'package:animation2/main.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/animation/animate3/lib/main.dart b/examples/animation/animate3/lib/main.dart index 432896b0564..5632b283488 100644 --- a/examples/animation/animate3/lib/main.dart +++ b/examples/animation/animate3/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const LogoApp()); diff --git a/examples/animation/animate3/test/widget_test.dart b/examples/animation/animate3/test/widget_test.dart index 374ad5cf768..984bbbcf0e3 100644 --- a/examples/animation/animate3/test/widget_test.dart +++ b/examples/animation/animate3/test/widget_test.dart @@ -2,7 +2,7 @@ // Learn more at https://docs.flutter.dev/testing/overview#widget-tests. import 'package:animation3/main.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/animation/animate4/lib/main.dart b/examples/animation/animate4/lib/main.dart index 4583fe0440f..890a4998124 100644 --- a/examples/animation/animate4/lib/main.dart +++ b/examples/animation/animate4/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const LogoApp()); diff --git a/examples/animation/animate4/test/widget_test.dart b/examples/animation/animate4/test/widget_test.dart index 92aa314ac03..abc4d878105 100644 --- a/examples/animation/animate4/test/widget_test.dart +++ b/examples/animation/animate4/test/widget_test.dart @@ -2,7 +2,7 @@ // Learn more at https://docs.flutter.dev/testing/overview#widget-tests. import 'package:animation4/main.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/animation/animate5/lib/main.dart b/examples/animation/animate5/lib/main.dart index 882fc5565b0..f11b437ed0c 100644 --- a/examples/animation/animate5/lib/main.dart +++ b/examples/animation/animate5/lib/main.dart @@ -4,7 +4,7 @@ import 'dart:math'; // #enddocregion ShakeCurve -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const LogoApp()); diff --git a/examples/animation/animate5/test/widget_test.dart b/examples/animation/animate5/test/widget_test.dart index 75e060e697d..580cf40531f 100644 --- a/examples/animation/animate5/test/widget_test.dart +++ b/examples/animation/animate5/test/widget_test.dart @@ -2,7 +2,7 @@ // Learn more at https://docs.flutter.dev/testing/overview#widget-tests. import 'package:animation5/main.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/app-architecture/command/lib/extended_command.dart b/examples/app-architecture/command/lib/extended_command.dart index 96f6e041237..40d7c2bd2e2 100644 --- a/examples/app-architecture/command/lib/extended_command.dart +++ b/examples/app-architecture/command/lib/extended_command.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion HomeViewModel class HomeViewModel extends ChangeNotifier { diff --git a/examples/app-architecture/command/lib/main.dart b/examples/app-architecture/command/lib/main.dart index e3fdf8d9c39..b16bc703bfd 100644 --- a/examples/app-architecture/command/lib/main.dart +++ b/examples/app-architecture/command/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MainApp extends StatefulWidget { const MainApp({super.key, required this.viewModel}); diff --git a/examples/app-architecture/command/lib/no_command.dart b/examples/app-architecture/command/lib/no_command.dart index 3fa7a284bf6..e0bc0f7533f 100644 --- a/examples/app-architecture/command/lib/no_command.dart +++ b/examples/app-architecture/command/lib/no_command.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MainApp extends StatefulWidget { const MainApp({super.key, required this.viewModel}); diff --git a/examples/app-architecture/command/lib/simple_command.dart b/examples/app-architecture/command/lib/simple_command.dart index 89519e93e25..d6909d36a11 100644 --- a/examples/app-architecture/command/lib/simple_command.dart +++ b/examples/app-architecture/command/lib/simple_command.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_field, prefer_final_fields -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class User {} diff --git a/examples/app-architecture/offline_first/lib/main.dart b/examples/app-architecture/offline_first/lib/main.dart index 8136e095849..a83b878420c 100644 --- a/examples/app-architecture/offline_first/lib/main.dart +++ b/examples/app-architecture/offline_first/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'data/repositories/user_profile_repository.dart'; import 'data/services/api_client_service.dart'; diff --git a/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_screen.dart b/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_screen.dart index f9afb6c7237..f8922b1900e 100644 --- a/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_screen.dart +++ b/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_screen.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'user_profile_viewmodel.dart'; diff --git a/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_viewmodel.dart b/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_viewmodel.dart index 5f6b606fc33..675a144d5ce 100644 --- a/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_viewmodel.dart +++ b/examples/app-architecture/offline_first/lib/ui/user_profile/user_profile_viewmodel.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../../data/repositories/user_profile_repository.dart'; import '../../domain/model/user_profile.dart'; diff --git a/examples/app-architecture/optimistic_state/lib/starter.dart b/examples/app-architecture/optimistic_state/lib/starter.dart index 91493911e5b..a9141a06b35 100644 --- a/examples/app-architecture/optimistic_state/lib/starter.dart +++ b/examples/app-architecture/optimistic_state/lib/starter.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Starter class SubscribeButton extends StatefulWidget { diff --git a/examples/app-architecture/result/lib/main.dart b/examples/app-architecture/result/lib/main.dart index 29b9acbf43d..7f14c36da43 100644 --- a/examples/app-architecture/result/lib/main.dart +++ b/examples/app-architecture/result/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'result.dart'; diff --git a/examples/app-architecture/result/lib/no_result.dart b/examples/app-architecture/result/lib/no_result.dart index 6dd1b923ed1..a070318accd 100644 --- a/examples/app-architecture/result/lib/no_result.dart +++ b/examples/app-architecture/result/lib/no_result.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class UserProfile { final String name; diff --git a/examples/app-architecture/todo_data_service/lib/main.dart b/examples/app-architecture/todo_data_service/lib/main.dart index 4bb25b28439..601f8433183 100644 --- a/examples/app-architecture/todo_data_service/lib/main.dart +++ b/examples/app-architecture/todo_data_service/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'data/repositories/theme_repository.dart'; diff --git a/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart b/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart index c596a1db369..e042d8e1b43 100644 --- a/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart +++ b/examples/app-architecture/todo_data_service/lib/main_app_viewmodel.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'data/repositories/theme_repository.dart'; import 'utils/result.dart'; diff --git a/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart b/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart index 87126d6f71b..ca6fae0061e 100644 --- a/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart +++ b/examples/app-architecture/todo_data_service/lib/ui/theme_config/viewmodel/theme_switch_viewmodel.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../../../data/repositories/theme_repository.dart'; import '../../../utils/command.dart'; diff --git a/examples/app-architecture/todo_data_service/lib/ui/theme_config/widgets/theme_switch.dart b/examples/app-architecture/todo_data_service/lib/ui/theme_config/widgets/theme_switch.dart index ef297781f3f..00d44e6de25 100644 --- a/examples/app-architecture/todo_data_service/lib/ui/theme_config/widgets/theme_switch.dart +++ b/examples/app-architecture/todo_data_service/lib/ui/theme_config/widgets/theme_switch.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../viewmodel/theme_switch_viewmodel.dart'; diff --git a/examples/app-architecture/todo_data_service/lib/ui/todo_list/widgets/todo_list_screen.dart b/examples/app-architecture/todo_data_service/lib/ui/todo_list/widgets/todo_list_screen.dart index f42ed80c49c..93def7ca1e4 100644 --- a/examples/app-architecture/todo_data_service/lib/ui/todo_list/widgets/todo_list_screen.dart +++ b/examples/app-architecture/todo_data_service/lib/ui/todo_list/widgets/todo_list_screen.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../viewmodel/todo_list_viewmodel.dart'; diff --git a/examples/cookbook/animation/animated_container/lib/starter.dart b/examples/cookbook/animation/animated_container/lib/starter.dart index 7e94cae4e97..8a4b9ea9409 100644 --- a/examples/cookbook/animation/animated_container/lib/starter.dart +++ b/examples/cookbook/animation/animated_container/lib/starter.dart @@ -1,5 +1,5 @@ // ignore_for_file: unused_field, prefer_final_fields -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Starter class AnimatedContainerApp extends StatefulWidget { diff --git a/examples/cookbook/animation/opacity_animation/lib/starter.dart b/examples/cookbook/animation/opacity_animation/lib/starter.dart index a3eaa972a11..3695a1eb931 100644 --- a/examples/cookbook/animation/opacity_animation/lib/starter.dart +++ b/examples/cookbook/animation/opacity_animation/lib/starter.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_final_fields, unused_field -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Starter // The StatefulWidget's job is to take data and create a State class. diff --git a/examples/cookbook/animation/page_route_animation/lib/starter.dart b/examples/cookbook/animation/page_route_animation/lib/starter.dart index 920cc98acee..d7b07355908 100644 --- a/examples/cookbook/animation/page_route_animation/lib/starter.dart +++ b/examples/cookbook/animation/page_route_animation/lib/starter.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_local_variable // #docregion Starter -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: Page1())); diff --git a/examples/cookbook/animation/physics_simulation/lib/starter.dart b/examples/cookbook/animation/physics_simulation/lib/starter.dart index 34d67a887ee..81d087524b5 100644 --- a/examples/cookbook/animation/physics_simulation/lib/starter.dart +++ b/examples/cookbook/animation/physics_simulation/lib/starter.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: PhysicsCardDragDemo())); diff --git a/examples/cookbook/animation/physics_simulation/lib/step1.dart b/examples/cookbook/animation/physics_simulation/lib/step1.dart index 455983e2948..9d99c143e32 100644 --- a/examples/cookbook/animation/physics_simulation/lib/step1.dart +++ b/examples/cookbook/animation/physics_simulation/lib/step1.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: PhysicsCardDragDemo())); diff --git a/examples/cookbook/animation/physics_simulation/lib/step2.dart b/examples/cookbook/animation/physics_simulation/lib/step2.dart index 6cc866b1807..9074f8e59b3 100644 --- a/examples/cookbook/animation/physics_simulation/lib/step2.dart +++ b/examples/cookbook/animation/physics_simulation/lib/step2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: PhysicsCardDragDemo())); diff --git a/examples/cookbook/animation/physics_simulation/lib/step3.dart b/examples/cookbook/animation/physics_simulation/lib/step3.dart index 5208761055c..cae37444858 100644 --- a/examples/cookbook/animation/physics_simulation/lib/step3.dart +++ b/examples/cookbook/animation/physics_simulation/lib/step3.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: PhysicsCardDragDemo())); diff --git a/examples/cookbook/design/drawer/lib/drawer.dart b/examples/cookbook/design/drawer/lib/drawer.dart index b8c110f2651..cb3f336f4d7 100644 --- a/examples/cookbook/design/drawer/lib/drawer.dart +++ b/examples/cookbook/design/drawer/lib/drawer.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void drawerStart() { // #docregion DrawerStart diff --git a/examples/cookbook/design/fonts/lib/main.dart b/examples/cookbook/design/fonts/lib/main.dart index fe2e5efc3c4..878273af67b 100644 --- a/examples/cookbook/design/fonts/lib/main.dart +++ b/examples/cookbook/design/fonts/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/cookbook/design/orientation/lib/orientation.dart b/examples/cookbook/design/orientation/lib/orientation.dart index 62f365f9adc..47739839cda 100644 --- a/examples/cookbook/design/orientation/lib/orientation.dart +++ b/examples/cookbook/design/orientation/lib/orientation.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; import 'main.dart'; diff --git a/examples/cookbook/design/orientation/lib/partials.dart b/examples/cookbook/design/orientation/lib/partials.dart index b20de0ca86d..e030c80382f 100644 --- a/examples/cookbook/design/orientation/lib/partials.dart +++ b/examples/cookbook/design/orientation/lib/partials.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class OrientationList1 extends StatelessWidget { final String title; diff --git a/examples/cookbook/design/package_fonts/lib/main.dart b/examples/cookbook/design/package_fonts/lib/main.dart index 071e96139fc..904a50df33e 100644 --- a/examples/cookbook/design/package_fonts/lib/main.dart +++ b/examples/cookbook/design/package_fonts/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/cookbook/design/snackbars/lib/partial.dart b/examples/cookbook/design/snackbars/lib/partial.dart index 544543063b2..2c133a5cb59 100644 --- a/examples/cookbook/design/snackbars/lib/partial.dart +++ b/examples/cookbook/design/snackbars/lib/partial.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const SnackBarDemo()); diff --git a/examples/cookbook/design/tabs/lib/partials.dart b/examples/cookbook/design/tabs/lib/partials.dart index 4657a2dc9bd..7dd8fd352d5 100644 --- a/examples/cookbook/design/tabs/lib/partials.dart +++ b/examples/cookbook/design/tabs/lib/partials.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class TabBarDemo1 extends StatelessWidget { const TabBarDemo1({super.key}); diff --git a/examples/cookbook/effects/download_button/lib/button_taps.dart b/examples/cookbook/effects/download_button/lib/button_taps.dart index 51dbb1158e1..6ac1cf83559 100644 --- a/examples/cookbook/effects/download_button/lib/button_taps.dart +++ b/examples/cookbook/effects/download_button/lib/button_taps.dart @@ -1,7 +1,7 @@ // ignore_for_file: unused_element -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; @immutable class ButtonShapeWidget extends StatelessWidget { diff --git a/examples/cookbook/effects/download_button/lib/display.dart b/examples/cookbook/effects/download_button/lib/display.dart index a0be8eb5edf..477d11fd8b5 100644 --- a/examples/cookbook/effects/download_button/lib/display.dart +++ b/examples/cookbook/effects/download_button/lib/display.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; enum DownloadStatus { notDownloaded, fetchingDownload, downloading, downloaded } diff --git a/examples/cookbook/effects/download_button/lib/display_text.dart b/examples/cookbook/effects/download_button/lib/display_text.dart index 81be9a722cd..b0bc605508a 100644 --- a/examples/cookbook/effects/download_button/lib/display_text.dart +++ b/examples/cookbook/effects/download_button/lib/display_text.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; // #docregion DisplayText @immutable diff --git a/examples/cookbook/effects/download_button/lib/spinner.dart b/examples/cookbook/effects/download_button/lib/spinner.dart index 75d1b9a886f..60933469ae9 100644 --- a/examples/cookbook/effects/download_button/lib/spinner.dart +++ b/examples/cookbook/effects/download_button/lib/spinner.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; @immutable class ButtonShapeWidget extends StatelessWidget { diff --git a/examples/cookbook/effects/download_button/lib/stateful_widget.dart b/examples/cookbook/effects/download_button/lib/stateful_widget.dart index 32dab5b1876..98012189173 100644 --- a/examples/cookbook/effects/download_button/lib/stateful_widget.dart +++ b/examples/cookbook/effects/download_button/lib/stateful_widget.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion DownloadButton @immutable diff --git a/examples/cookbook/effects/download_button/lib/stop.dart b/examples/cookbook/effects/download_button/lib/stop.dart index 682a93c7bd5..81a019d093b 100644 --- a/examples/cookbook/effects/download_button/lib/stop.dart +++ b/examples/cookbook/effects/download_button/lib/stop.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; @immutable class ButtonShapeWidget extends StatelessWidget { diff --git a/examples/cookbook/effects/download_button/lib/visual_states.dart b/examples/cookbook/effects/download_button/lib/visual_states.dart index 5cf96d96fe7..b59b9bdd5f7 100644 --- a/examples/cookbook/effects/download_button/lib/visual_states.dart +++ b/examples/cookbook/effects/download_button/lib/visual_states.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion VisualStates enum DownloadStatus { notDownloaded, fetchingDownload, downloading, downloaded } diff --git a/examples/cookbook/effects/expandable_fab/lib/excerpt1.dart b/examples/cookbook/effects/expandable_fab/lib/excerpt1.dart index ca4b2eb104d..b73e918699f 100644 --- a/examples/cookbook/effects/expandable_fab/lib/excerpt1.dart +++ b/examples/cookbook/effects/expandable_fab/lib/excerpt1.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion ExpandableFab @immutable diff --git a/examples/cookbook/effects/expandable_fab/lib/excerpt2.dart b/examples/cookbook/effects/expandable_fab/lib/excerpt2.dart index 62ecff52a1f..8899144c3f0 100644 --- a/examples/cookbook/effects/expandable_fab/lib/excerpt2.dart +++ b/examples/cookbook/effects/expandable_fab/lib/excerpt2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; @immutable class ExpandableFab extends StatefulWidget { diff --git a/examples/cookbook/effects/expandable_fab/lib/excerpt3.dart b/examples/cookbook/effects/expandable_fab/lib/excerpt3.dart index 09730769a5e..7b9804f124b 100644 --- a/examples/cookbook/effects/expandable_fab/lib/excerpt3.dart +++ b/examples/cookbook/effects/expandable_fab/lib/excerpt3.dart @@ -1,6 +1,6 @@ import 'dart:math' as math; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; @immutable class ExampleExpandableFab extends StatelessWidget { diff --git a/examples/cookbook/effects/expandable_fab/lib/excerpt4.dart b/examples/cookbook/effects/expandable_fab/lib/excerpt4.dart index 982b47ee5a7..a211f208c97 100644 --- a/examples/cookbook/effects/expandable_fab/lib/excerpt4.dart +++ b/examples/cookbook/effects/expandable_fab/lib/excerpt4.dart @@ -1,6 +1,6 @@ import 'dart:math' as math; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; @immutable class ExampleExpandableFab extends StatelessWidget { diff --git a/examples/cookbook/effects/expandable_fab/lib/original_example.dart b/examples/cookbook/effects/expandable_fab/lib/original_example.dart index 0ce1a4532af..85f8e54ff53 100644 --- a/examples/cookbook/effects/expandable_fab/lib/original_example.dart +++ b/examples/cookbook/effects/expandable_fab/lib/original_example.dart @@ -1,6 +1,6 @@ import 'dart:math' as math; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; @immutable class ExampleExpandableFab extends StatelessWidget { diff --git a/examples/cookbook/effects/nested_nav/lib/add_navigator.dart b/examples/cookbook/effects/nested_nav/lib/add_navigator.dart index a8e93e3a984..c30bdfb55e6 100644 --- a/examples/cookbook/effects/nested_nav/lib/add_navigator.dart +++ b/examples/cookbook/effects/nested_nav/lib/add_navigator.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion routes const routeHome = '/'; diff --git a/examples/cookbook/effects/nested_nav/lib/original_example.dart b/examples/cookbook/effects/nested_nav/lib/original_example.dart index 833da27cc1f..70749bddc25 100644 --- a/examples/cookbook/effects/nested_nav/lib/original_example.dart +++ b/examples/cookbook/effects/nested_nav/lib/original_example.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; const routeHome = '/'; const routeSettings = '/settings'; diff --git a/examples/cookbook/effects/nested_nav/lib/prompt_user.dart b/examples/cookbook/effects/nested_nav/lib/prompt_user.dart index 00bb92fde12..c08e1a82240 100644 --- a/examples/cookbook/effects/nested_nav/lib/prompt_user.dart +++ b/examples/cookbook/effects/nested_nav/lib/prompt_user.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; @immutable class SetupFlow extends StatefulWidget { diff --git a/examples/cookbook/effects/nested_nav/lib/setupflow.dart b/examples/cookbook/effects/nested_nav/lib/setupflow.dart index 6c8a88217b6..32b09df3b21 100644 --- a/examples/cookbook/effects/nested_nav/lib/setupflow.dart +++ b/examples/cookbook/effects/nested_nav/lib/setupflow.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion SetupFlow class SetupFlow extends StatefulWidget { diff --git a/examples/cookbook/effects/nested_nav/lib/setupflow2.dart b/examples/cookbook/effects/nested_nav/lib/setupflow2.dart index 18d8f01a077..b933b058321 100644 --- a/examples/cookbook/effects/nested_nav/lib/setupflow2.dart +++ b/examples/cookbook/effects/nested_nav/lib/setupflow2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SetupFlow extends StatefulWidget { const SetupFlow({super.key, required this.setupPageRoute}); diff --git a/examples/cookbook/effects/parallax_scrolling/lib/excerpt1.dart b/examples/cookbook/effects/parallax_scrolling/lib/excerpt1.dart index a73863262ad..409452ed391 100644 --- a/examples/cookbook/effects/parallax_scrolling/lib/excerpt1.dart +++ b/examples/cookbook/effects/parallax_scrolling/lib/excerpt1.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion ParallaxRecipe class ParallaxRecipe extends StatelessWidget { diff --git a/examples/cookbook/effects/parallax_scrolling/lib/excerpt2.dart b/examples/cookbook/effects/parallax_scrolling/lib/excerpt2.dart index 769895dbbf7..588b9ec6665 100644 --- a/examples/cookbook/effects/parallax_scrolling/lib/excerpt2.dart +++ b/examples/cookbook/effects/parallax_scrolling/lib/excerpt2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion LocationListItem @immutable diff --git a/examples/cookbook/effects/parallax_scrolling/lib/excerpt3.dart b/examples/cookbook/effects/parallax_scrolling/lib/excerpt3.dart index 5c76fd8b3f2..e5ef40cbf0f 100644 --- a/examples/cookbook/effects/parallax_scrolling/lib/excerpt3.dart +++ b/examples/cookbook/effects/parallax_scrolling/lib/excerpt3.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; @immutable class LocationListItem extends StatelessWidget { diff --git a/examples/cookbook/effects/parallax_scrolling/lib/excerpt4.dart b/examples/cookbook/effects/parallax_scrolling/lib/excerpt4.dart index d487f7beca9..cd5a0f5be2b 100644 --- a/examples/cookbook/effects/parallax_scrolling/lib/excerpt4.dart +++ b/examples/cookbook/effects/parallax_scrolling/lib/excerpt4.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; @immutable class LocationListItem extends StatelessWidget { diff --git a/examples/cookbook/effects/parallax_scrolling/lib/excerpt5.dart b/examples/cookbook/effects/parallax_scrolling/lib/excerpt5.dart index aca19e221ac..b4b112d9565 100644 --- a/examples/cookbook/effects/parallax_scrolling/lib/excerpt5.dart +++ b/examples/cookbook/effects/parallax_scrolling/lib/excerpt5.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion global-key @immutable diff --git a/examples/cookbook/effects/shimmer_loading/lib/original_example.dart b/examples/cookbook/effects/shimmer_loading/lib/original_example.dart index 89b883925b9..185020e0227 100644 --- a/examples/cookbook/effects/shimmer_loading/lib/original_example.dart +++ b/examples/cookbook/effects/shimmer_loading/lib/original_example.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( diff --git a/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_items.dart b/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_items.dart index b8e4581e97d..24dace3eaeb 100644 --- a/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_items.dart +++ b/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_items.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion CircleListItem class CircleListItem extends StatelessWidget { diff --git a/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_state_pt2.dart b/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_state_pt2.dart index c461f008b78..d82315d5dd0 100644 --- a/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_state_pt2.dart +++ b/examples/cookbook/effects/shimmer_loading/lib/shimmer_loading_state_pt2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ShimmerLoading extends StatefulWidget { const ShimmerLoading({ diff --git a/examples/cookbook/effects/shimmer_loading/lib/shimmer_state.dart b/examples/cookbook/effects/shimmer_loading/lib/shimmer_state.dart index 518ae719b1d..3da3d38a3db 100644 --- a/examples/cookbook/effects/shimmer_loading/lib/shimmer_state.dart +++ b/examples/cookbook/effects/shimmer_loading/lib/shimmer_state.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class Shimmer extends StatefulWidget { static ShimmerState? of(BuildContext context) { diff --git a/examples/cookbook/effects/staggered_menu_animation/lib/animation_delays.dart b/examples/cookbook/effects/staggered_menu_animation/lib/animation_delays.dart index e88a9060760..ede5a3814e6 100644 --- a/examples/cookbook/effects/staggered_menu_animation/lib/animation_delays.dart +++ b/examples/cookbook/effects/staggered_menu_animation/lib/animation_delays.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_field -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class Menu extends StatefulWidget { const Menu({super.key}); diff --git a/examples/cookbook/effects/staggered_menu_animation/lib/step1.dart b/examples/cookbook/effects/staggered_menu_animation/lib/step1.dart index 781b81c35a1..aedac0a89bb 100644 --- a/examples/cookbook/effects/staggered_menu_animation/lib/step1.dart +++ b/examples/cookbook/effects/staggered_menu_animation/lib/step1.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion step1 class Menu extends StatefulWidget { diff --git a/examples/cookbook/effects/staggered_menu_animation/lib/step2.dart b/examples/cookbook/effects/staggered_menu_animation/lib/step2.dart index 08798d9dad1..9e80c3f97cc 100644 --- a/examples/cookbook/effects/staggered_menu_animation/lib/step2.dart +++ b/examples/cookbook/effects/staggered_menu_animation/lib/step2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class Menu extends StatefulWidget { const Menu({super.key}); diff --git a/examples/cookbook/effects/staggered_menu_animation/lib/step3.dart b/examples/cookbook/effects/staggered_menu_animation/lib/step3.dart index dde6b473d47..5c9116a79f8 100644 --- a/examples/cookbook/effects/staggered_menu_animation/lib/step3.dart +++ b/examples/cookbook/effects/staggered_menu_animation/lib/step3.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_field -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class Menu extends StatefulWidget { const Menu({super.key}); diff --git a/examples/cookbook/effects/staggered_menu_animation/lib/step4.dart b/examples/cookbook/effects/staggered_menu_animation/lib/step4.dart index 617d104b95b..62f1c6dd00c 100644 --- a/examples/cookbook/effects/staggered_menu_animation/lib/step4.dart +++ b/examples/cookbook/effects/staggered_menu_animation/lib/step4.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class Menu extends StatefulWidget { const Menu({super.key}); diff --git a/examples/cookbook/forms/focus/lib/starter.dart b/examples/cookbook/forms/focus/lib/starter.dart index 6273b19ccff..442483513da 100644 --- a/examples/cookbook/forms/focus/lib/starter.dart +++ b/examples/cookbook/forms/focus/lib/starter.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Starter // Define a custom Form widget. diff --git a/examples/cookbook/forms/focus/lib/step2.dart b/examples/cookbook/forms/focus/lib/step2.dart index 2e32c1d5439..3c985737e4a 100644 --- a/examples/cookbook/forms/focus/lib/step2.dart +++ b/examples/cookbook/forms/focus/lib/step2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // Define a custom Form widget. class MyCustomForm extends StatefulWidget { diff --git a/examples/cookbook/forms/focus/lib/step3.dart b/examples/cookbook/forms/focus/lib/step3.dart index 2bbcd7951f8..a6df75e3c67 100644 --- a/examples/cookbook/forms/focus/lib/step3.dart +++ b/examples/cookbook/forms/focus/lib/step3.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // Define a custom Form widget. class MyCustomForm extends StatefulWidget { diff --git a/examples/cookbook/forms/retrieve_input/lib/starter.dart b/examples/cookbook/forms/retrieve_input/lib/starter.dart index 982f212649f..be64732a010 100644 --- a/examples/cookbook/forms/retrieve_input/lib/starter.dart +++ b/examples/cookbook/forms/retrieve_input/lib/starter.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Starter // Define a custom Form widget. diff --git a/examples/cookbook/forms/retrieve_input/lib/step2.dart b/examples/cookbook/forms/retrieve_input/lib/step2.dart index b7d7480de82..b144f75cca5 100644 --- a/examples/cookbook/forms/retrieve_input/lib/step2.dart +++ b/examples/cookbook/forms/retrieve_input/lib/step2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // Define a custom Form widget. class MyCustomForm extends StatefulWidget { diff --git a/examples/cookbook/forms/retrieve_input/lib/step3.dart b/examples/cookbook/forms/retrieve_input/lib/step3.dart index caf32d29a3c..0311fc1a7ef 100644 --- a/examples/cookbook/forms/retrieve_input/lib/step3.dart +++ b/examples/cookbook/forms/retrieve_input/lib/step3.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // Define a custom Form widget. class MyCustomForm extends StatefulWidget { diff --git a/examples/cookbook/forms/validation/lib/form.dart b/examples/cookbook/forms/validation/lib/form.dart index c87b9eaeba1..e6f2bd56910 100644 --- a/examples/cookbook/forms/validation/lib/form.dart +++ b/examples/cookbook/forms/validation/lib/form.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // Define a custom Form widget. class MyCustomForm extends StatefulWidget { diff --git a/examples/cookbook/games/firestore_multiplayer/lib/main.dart b/examples/cookbook/games/firestore_multiplayer/lib/main.dart index ecd3743a1c7..5252c6eabfe 100644 --- a/examples/cookbook/games/firestore_multiplayer/lib/main.dart +++ b/examples/cookbook/games/firestore_multiplayer/lib/main.dart @@ -1,6 +1,6 @@ // ignore_for_file: directives_ordering, prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; // #docregion imports diff --git a/examples/cookbook/games/firestore_multiplayer/lib/play_session/play_session_screen.dart b/examples/cookbook/games/firestore_multiplayer/lib/play_session/play_session_screen.dart index 0ae3418b402..66d3c02d226 100644 --- a/examples/cookbook/games/firestore_multiplayer/lib/play_session/play_session_screen.dart +++ b/examples/cookbook/games/firestore_multiplayer/lib/play_session/play_session_screen.dart @@ -1,6 +1,6 @@ // ignore_for_file: directives_ordering -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:logging/logging.dart' hide Level; import 'package:provider/provider.dart'; diff --git a/examples/cookbook/gestures/dismissible/lib/step1.dart b/examples/cookbook/gestures/dismissible/lib/step1.dart index f2bea7313ae..dbb3acb0438 100644 --- a/examples/cookbook/gestures/dismissible/lib/step1.dart +++ b/examples/cookbook/gestures/dismissible/lib/step1.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/cookbook/gestures/dismissible/lib/step2.dart b/examples/cookbook/gestures/dismissible/lib/step2.dart index 95e8e37de59..36dec4d87e3 100644 --- a/examples/cookbook/gestures/dismissible/lib/step2.dart +++ b/examples/cookbook/gestures/dismissible/lib/step2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/cookbook/images/cached_images/lib/main.dart b/examples/cookbook/images/cached_images/lib/main.dart index 2d93e70f53f..60d88d76de6 100644 --- a/examples/cookbook/images/cached_images/lib/main.dart +++ b/examples/cookbook/images/cached_images/lib/main.dart @@ -1,5 +1,5 @@ import 'package:cached_network_image/cached_network_image.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/cookbook/images/cached_images/lib/simple.dart b/examples/cookbook/images/cached_images/lib/simple.dart index 31fdd93dc82..322af5b1f7e 100644 --- a/examples/cookbook/images/cached_images/lib/simple.dart +++ b/examples/cookbook/images/cached_images/lib/simple.dart @@ -1,5 +1,5 @@ import 'package:cached_network_image/cached_network_image.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SimpleImage extends StatelessWidget { const SimpleImage({super.key}); diff --git a/examples/cookbook/images/fading_in_images/lib/asset_main.dart b/examples/cookbook/images/fading_in_images/lib/asset_main.dart index f8c1a9d340e..e0c6ce64395 100644 --- a/examples/cookbook/images/fading_in_images/lib/asset_main.dart +++ b/examples/cookbook/images/fading_in_images/lib/asset_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/cookbook/images/fading_in_images/lib/memory_main.dart b/examples/cookbook/images/fading_in_images/lib/memory_main.dart index 906da70ee98..36f4e309d06 100644 --- a/examples/cookbook/images/fading_in_images/lib/memory_main.dart +++ b/examples/cookbook/images/fading_in_images/lib/memory_main.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:typed_data'; // #enddocregion TransparentImage -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion TransparentImage final Uint8List transparentImage = base64Decode( diff --git a/examples/cookbook/images/network_image/lib/gif.dart b/examples/cookbook/images/network_image/lib/gif.dart index 73b53f7d6f6..29fbe8492cb 100644 --- a/examples/cookbook/images/network_image/lib/gif.dart +++ b/examples/cookbook/images/network_image/lib/gif.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyGif extends StatelessWidget { const MyGif({super.key}); diff --git a/examples/cookbook/lists/spaced_items/lib/spaced_list.dart b/examples/cookbook/lists/spaced_items/lib/spaced_list.dart index bc4d8d7c2f4..a53f449d2ba 100644 --- a/examples/cookbook/lists/spaced_items/lib/spaced_list.dart +++ b/examples/cookbook/lists/spaced_items/lib/spaced_list.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors, prefer_const_literals_to_create_immutables -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'main.dart'; diff --git a/examples/cookbook/networking/background_parsing/lib/main.dart b/examples/cookbook/networking/background_parsing/lib/main.dart index 938ededba2d..05a9d5c13bc 100644 --- a/examples/cookbook/networking/background_parsing/lib/main.dart +++ b/examples/cookbook/networking/background_parsing/lib/main.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; // #docregion fetchPhotos diff --git a/examples/cookbook/networking/delete_data/lib/main.dart b/examples/cookbook/networking/delete_data/lib/main.dart index 31936506480..9d7c683ed5c 100644 --- a/examples/cookbook/networking/delete_data/lib/main.dart +++ b/examples/cookbook/networking/delete_data/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Http import 'package:http/http.dart' as http; diff --git a/examples/cookbook/networking/fetch_data/lib/main.dart b/examples/cookbook/networking/fetch_data/lib/main.dart index d5bbce9318d..3f0cda8b678 100644 --- a/examples/cookbook/networking/fetch_data/lib/main.dart +++ b/examples/cookbook/networking/fetch_data/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Http import 'package:http/http.dart' as http; diff --git a/examples/cookbook/networking/send_data/lib/main.dart b/examples/cookbook/networking/send_data/lib/main.dart index 68d03c87a75..ae058b08585 100644 --- a/examples/cookbook/networking/send_data/lib/main.dart +++ b/examples/cookbook/networking/send_data/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Http import 'package:http/http.dart' as http; diff --git a/examples/cookbook/networking/update_data/lib/main.dart b/examples/cookbook/networking/update_data/lib/main.dart index 1b7a9e824ff..fa8d160b167 100644 --- a/examples/cookbook/networking/update_data/lib/main.dart +++ b/examples/cookbook/networking/update_data/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion Http import 'package:http/http.dart' as http; diff --git a/examples/cookbook/networking/update_data/lib/main_step5.dart b/examples/cookbook/networking/update_data/lib/main_step5.dart index 1e6fb3fe7f3..9ccb2332c85 100644 --- a/examples/cookbook/networking/update_data/lib/main_step5.dart +++ b/examples/cookbook/networking/update_data/lib/main_step5.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; Future fetchAlbum() async { diff --git a/examples/cookbook/networking/web_sockets/lib/main.dart b/examples/cookbook/networking/web_sockets/lib/main.dart index 15767bd1a8c..d753f877c61 100644 --- a/examples/cookbook/networking/web_sockets/lib/main.dart +++ b/examples/cookbook/networking/web_sockets/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; void main() => runApp(const MyApp()); diff --git a/examples/cookbook/persistence/key_value/lib/main.dart b/examples/cookbook/persistence/key_value/lib/main.dart index 0c5d23d4899..c26938637f7 100644 --- a/examples/cookbook/persistence/key_value/lib/main.dart +++ b/examples/cookbook/persistence/key_value/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; void main() => runApp(const MyApp()); diff --git a/examples/cookbook/persistence/reading_writing_files/lib/main.dart b/examples/cookbook/persistence/reading_writing_files/lib/main.dart index 7fd47c9947f..fdae4b8d083 100644 --- a/examples/cookbook/persistence/reading_writing_files/lib/main.dart +++ b/examples/cookbook/persistence/reading_writing_files/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion localPath import 'package:path_provider/path_provider.dart'; diff --git a/examples/cookbook/persistence/sqlite/lib/step3.dart b/examples/cookbook/persistence/sqlite/lib/step3.dart index 2bb47ca16c0..20b530d0ae0 100644 --- a/examples/cookbook/persistence/sqlite/lib/step3.dart +++ b/examples/cookbook/persistence/sqlite/lib/step3.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; diff --git a/examples/cookbook/plugins/google_mobile_ads/lib/main.dart b/examples/cookbook/plugins/google_mobile_ads/lib/main.dart index 7fb5a4c812f..48edb9ee4df 100644 --- a/examples/cookbook/plugins/google_mobile_ads/lib/main.dart +++ b/examples/cookbook/plugins/google_mobile_ads/lib/main.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:google_mobile_ads/google_mobile_ads.dart'; // #docregion main diff --git a/examples/cookbook/plugins/picture_using_camera/lib/image_file.dart b/examples/cookbook/plugins/picture_using_camera/lib/image_file.dart index a68b80337bb..87a5fa5c492 100644 --- a/examples/cookbook/plugins/picture_using_camera/lib/image_file.dart +++ b/examples/cookbook/plugins/picture_using_camera/lib/image_file.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyImage extends StatelessWidget { const MyImage({super.key}); diff --git a/examples/cookbook/plugins/picture_using_camera/lib/main.dart b/examples/cookbook/plugins/picture_using_camera/lib/main.dart index a08eb0fc67b..97f1d82c889 100644 --- a/examples/cookbook/plugins/picture_using_camera/lib/main.dart +++ b/examples/cookbook/plugins/picture_using_camera/lib/main.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'dart:io'; import 'package:camera/camera.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; Future main() async { // #docregion init diff --git a/examples/cookbook/plugins/picture_using_camera/lib/main_step3.dart b/examples/cookbook/plugins/picture_using_camera/lib/main_step3.dart index 48220a3f845..29d1ba62f76 100644 --- a/examples/cookbook/plugins/picture_using_camera/lib/main_step3.dart +++ b/examples/cookbook/plugins/picture_using_camera/lib/main_step3.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:camera/camera.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; Future main() async { // Ensure that plugin services are initialized so that `availableCameras()` diff --git a/examples/cookbook/plugins/picture_using_camera/lib/main_step5.dart b/examples/cookbook/plugins/picture_using_camera/lib/main_step5.dart index 1976a09d30a..2c6b042fc19 100644 --- a/examples/cookbook/plugins/picture_using_camera/lib/main_step5.dart +++ b/examples/cookbook/plugins/picture_using_camera/lib/main_step5.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:camera/camera.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // ignore_for_file: unused_local_variable diff --git a/examples/cookbook/testing/integration/introduction/integration_test/app_test.dart b/examples/cookbook/testing/integration/introduction/integration_test/app_test.dart index 6ec07529eb9..a5cda1edefc 100644 --- a/examples/cookbook/testing/integration/introduction/integration_test/app_test.dart +++ b/examples/cookbook/testing/integration/introduction/integration_test/app_test.dart @@ -1,5 +1,5 @@ // #docregion integration-test -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:integration_testing_introduction/main.dart'; diff --git a/examples/cookbook/testing/integration/introduction/lib/main.dart b/examples/cookbook/testing/integration/introduction/lib/main.dart index de4dd147313..9b64a48feee 100644 --- a/examples/cookbook/testing/integration/introduction/lib/main.dart +++ b/examples/cookbook/testing/integration/introduction/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/cookbook/testing/integration/profiling/integration_test/scrolling_test.dart b/examples/cookbook/testing/integration/profiling/integration_test/scrolling_test.dart index 682f2ec2cd8..61ccf053872 100644 --- a/examples/cookbook/testing/integration/profiling/integration_test/scrolling_test.dart +++ b/examples/cookbook/testing/integration/profiling/integration_test/scrolling_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:your_integration_test/main.dart'; diff --git a/examples/cookbook/testing/integration/profiling/lib/main.dart b/examples/cookbook/testing/integration/profiling/lib/main.dart index 690171d11b0..cc5cf0fd05e 100644 --- a/examples/cookbook/testing/integration/profiling/lib/main.dart +++ b/examples/cookbook/testing/integration/profiling/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(MyApp(items: List.generate(10000, (i) => 'Item $i'))); diff --git a/examples/cookbook/testing/unit/mocking/lib/main.dart b/examples/cookbook/testing/unit/mocking/lib/main.dart index 0fb5b3243e3..22a846a89b8 100644 --- a/examples/cookbook/testing/unit/mocking/lib/main.dart +++ b/examples/cookbook/testing/unit/mocking/lib/main.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; // #docregion fetchAlbum diff --git a/examples/cookbook/testing/widget/finders/test/finders_test.dart b/examples/cookbook/testing/widget/finders/test/finders_test.dart index 2e80587a624..e31bf834430 100644 --- a/examples/cookbook/testing/widget/finders/test/finders_test.dart +++ b/examples/cookbook/testing/widget/finders/test/finders_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/cookbook/testing/widget/introduction/test/main_step3_test.dart b/examples/cookbook/testing/widget/introduction/test/main_step3_test.dart index d6cc3bab5a2..1f482317c36 100644 --- a/examples/cookbook/testing/widget/introduction/test/main_step3_test.dart +++ b/examples/cookbook/testing/widget/introduction/test/main_step3_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; // #docregion main diff --git a/examples/cookbook/testing/widget/introduction/test/main_step4_test.dart b/examples/cookbook/testing/widget/introduction/test/main_step4_test.dart index 86562b6ad43..51323642681 100644 --- a/examples/cookbook/testing/widget/introduction/test/main_step4_test.dart +++ b/examples/cookbook/testing/widget/introduction/test/main_step4_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; // #docregion main diff --git a/examples/cookbook/testing/widget/introduction/test/main_step5_test.dart b/examples/cookbook/testing/widget/introduction/test/main_step5_test.dart index 7b5b285f49a..362a292df18 100644 --- a/examples/cookbook/testing/widget/introduction/test/main_step5_test.dart +++ b/examples/cookbook/testing/widget/introduction/test/main_step5_test.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_local_variable -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; // #docregion main diff --git a/examples/cookbook/testing/widget/introduction/test/main_step6_test.dart b/examples/cookbook/testing/widget/introduction/test/main_step6_test.dart index 336b00065ba..bf08dbb33d9 100644 --- a/examples/cookbook/testing/widget/introduction/test/main_step6_test.dart +++ b/examples/cookbook/testing/widget/introduction/test/main_step6_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; // #docregion main diff --git a/examples/cookbook/testing/widget/introduction/test/main_test.dart b/examples/cookbook/testing/widget/introduction/test/main_test.dart index d5fd06ede9b..00a5de7aed7 100644 --- a/examples/cookbook/testing/widget/introduction/test/main_test.dart +++ b/examples/cookbook/testing/widget/introduction/test/main_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/cookbook/testing/widget/orientation_tests/lib/main.dart b/examples/cookbook/testing/widget/orientation_tests/lib/main.dart index 3fd8863821c..30b7990c382 100644 --- a/examples/cookbook/testing/widget/orientation_tests/lib/main.dart +++ b/examples/cookbook/testing/widget/orientation_tests/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/cookbook/testing/widget/orientation_tests/test/widget_test.dart b/examples/cookbook/testing/widget/orientation_tests/test/widget_test.dart index 130241a970a..36a906b455a 100644 --- a/examples/cookbook/testing/widget/orientation_tests/test/widget_test.dart +++ b/examples/cookbook/testing/widget/orientation_tests/test/widget_test.dart @@ -1,5 +1,5 @@ // #docregion scaffolding -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:orientation_tests/main.dart'; diff --git a/examples/cookbook/testing/widget/scrolling/lib/main.dart b/examples/cookbook/testing/widget/scrolling/lib/main.dart index 690171d11b0..cc5cf0fd05e 100644 --- a/examples/cookbook/testing/widget/scrolling/lib/main.dart +++ b/examples/cookbook/testing/widget/scrolling/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(MyApp(items: List.generate(10000, (i) => 'Item $i'))); diff --git a/examples/cookbook/testing/widget/scrolling/test/widget_test.dart b/examples/cookbook/testing/widget/scrolling/test/widget_test.dart index 43e113a76ca..a3bd0b36c03 100644 --- a/examples/cookbook/testing/widget/scrolling/test/widget_test.dart +++ b/examples/cookbook/testing/widget/scrolling/test/widget_test.dart @@ -7,7 +7,7 @@ // gestures. You can also use WidgetTester to find child widgets in the widget // tree, read text, and verify that the values of widget properties are correct. -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:scrolling/main.dart'; diff --git a/examples/cookbook/testing/widget/tap_drag/test/main_steps.dart b/examples/cookbook/testing/widget/tap_drag/test/main_steps.dart index 204322e1517..e83e22b81ce 100644 --- a/examples/cookbook/testing/widget/tap_drag/test/main_steps.dart +++ b/examples/cookbook/testing/widget/tap_drag/test/main_steps.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/cookbook/testing/widget/tap_drag/test/main_test.dart b/examples/cookbook/testing/widget/tap_drag/test/main_test.dart index 4f36ddf9af7..f1acc7a964c 100644 --- a/examples/cookbook/testing/widget/tap_drag/test/main_test.dart +++ b/examples/cookbook/testing/widget/tap_drag/test/main_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/examples/fwe/birdle/lib/main.dart b/examples/fwe/birdle/lib/main.dart index 1f526541dd2..73e9e20c34d 100644 --- a/examples/fwe/birdle/lib/main.dart +++ b/examples/fwe/birdle/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step1_main.dart b/examples/fwe/birdle/lib/step1_main.dart index 76735db15e7..67c7ea663fd 100644 --- a/examples/fwe/birdle/lib/step1_main.dart +++ b/examples/fwe/birdle/lib/step1_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion main void main() { diff --git a/examples/fwe/birdle/lib/step2_main.dart b/examples/fwe/birdle/lib/step2_main.dart index a5a0c7811d2..9a8cfae83f4 100644 --- a/examples/fwe/birdle/lib/step2_main.dart +++ b/examples/fwe/birdle/lib/step2_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step2a_main.dart b/examples/fwe/birdle/lib/step2a_main.dart index a15fe7d8c2c..ed5a659b2fa 100644 --- a/examples/fwe/birdle/lib/step2a_main.dart +++ b/examples/fwe/birdle/lib/step2a_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step2b_main.dart b/examples/fwe/birdle/lib/step2b_main.dart index 51d4a67c3ff..fe5413c7445 100644 --- a/examples/fwe/birdle/lib/step2b_main.dart +++ b/examples/fwe/birdle/lib/step2b_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step2c_main.dart b/examples/fwe/birdle/lib/step2c_main.dart index 326b94f7624..f32cdbc56c9 100644 --- a/examples/fwe/birdle/lib/step2c_main.dart +++ b/examples/fwe/birdle/lib/step2c_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: sized_box_for_whitespace -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step2d_main.dart b/examples/fwe/birdle/lib/step2d_main.dart index 8fb3dcb2b15..82833b69071 100644 --- a/examples/fwe/birdle/lib/step2d_main.dart +++ b/examples/fwe/birdle/lib/step2d_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step2e_main.dart b/examples/fwe/birdle/lib/step2e_main.dart index 1a8b7e8f102..b224bf3b492 100644 --- a/examples/fwe/birdle/lib/step2e_main.dart +++ b/examples/fwe/birdle/lib/step2e_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step2f_main.dart b/examples/fwe/birdle/lib/step2f_main.dart index 05e60867956..64da58dabd6 100644 --- a/examples/fwe/birdle/lib/step2f_main.dart +++ b/examples/fwe/birdle/lib/step2f_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step3_main.dart b/examples/fwe/birdle/lib/step3_main.dart index b998e91dfb7..a5fd2a748e4 100644 --- a/examples/fwe/birdle/lib/step3_main.dart +++ b/examples/fwe/birdle/lib/step3_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step3a_main.dart b/examples/fwe/birdle/lib/step3a_main.dart index 0e09ddecfc2..7881e6878bd 100644 --- a/examples/fwe/birdle/lib/step3a_main.dart +++ b/examples/fwe/birdle/lib/step3a_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_field -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step3b_main.dart b/examples/fwe/birdle/lib/step3b_main.dart index 6bd37863df6..c00dcc866a1 100644 --- a/examples/fwe/birdle/lib/step3b_main.dart +++ b/examples/fwe/birdle/lib/step3b_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_literals_to_create_immutables, unused_field, prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step3c_main.dart b/examples/fwe/birdle/lib/step3c_main.dart index 415346d5fa6..6f2a44557ac 100644 --- a/examples/fwe/birdle/lib/step3c_main.dart +++ b/examples/fwe/birdle/lib/step3c_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_local_variable, prefer_const_literals_to_create_immutables, prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; diff --git a/examples/fwe/birdle/lib/step4_main.dart b/examples/fwe/birdle/lib/step4_main.dart index 23b304fe155..800fbc407d1 100644 --- a/examples/fwe/birdle/lib/step4_main.dart +++ b/examples/fwe/birdle/lib/step4_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; import 'step2_main.dart' show Tile; diff --git a/examples/fwe/birdle/lib/step4a_main.dart b/examples/fwe/birdle/lib/step4a_main.dart index b4662b93c15..2aebe8fc899 100644 --- a/examples/fwe/birdle/lib/step4a_main.dart +++ b/examples/fwe/birdle/lib/step4a_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors_in_immutables -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4b_main.dart b/examples/fwe/birdle/lib/step4b_main.dart index 63604b053cf..8775f3baef4 100644 --- a/examples/fwe/birdle/lib/step4b_main.dart +++ b/examples/fwe/birdle/lib/step4b_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors_in_immutables, prefer_const_literals_to_create_immutables, prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4c_main.dart b/examples/fwe/birdle/lib/step4c_main.dart index 320d3e1bceb..0f6a64e6fa0 100644 --- a/examples/fwe/birdle/lib/step4c_main.dart +++ b/examples/fwe/birdle/lib/step4c_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_literals_to_create_immutables, unused_field, prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4d_main.dart b/examples/fwe/birdle/lib/step4d_main.dart index 10439ce8367..474b890df56 100644 --- a/examples/fwe/birdle/lib/step4d_main.dart +++ b/examples/fwe/birdle/lib/step4d_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4e_main.dart b/examples/fwe/birdle/lib/step4e_main.dart index bfec4ac2378..5f7413bdb55 100644 --- a/examples/fwe/birdle/lib/step4e_main.dart +++ b/examples/fwe/birdle/lib/step4e_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4f_main.dart b/examples/fwe/birdle/lib/step4f_main.dart index 68507f4acfc..d4a6364f846 100644 --- a/examples/fwe/birdle/lib/step4f_main.dart +++ b/examples/fwe/birdle/lib/step4f_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4g_main.dart b/examples/fwe/birdle/lib/step4g_main.dart index 13dadf08be6..053182febfe 100644 --- a/examples/fwe/birdle/lib/step4g_main.dart +++ b/examples/fwe/birdle/lib/step4g_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4h_main.dart b/examples/fwe/birdle/lib/step4h_main.dart index 0d58e3713a6..ee366a54886 100644 --- a/examples/fwe/birdle/lib/step4h_main.dart +++ b/examples/fwe/birdle/lib/step4h_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_field -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4i_main.dart b/examples/fwe/birdle/lib/step4i_main.dart index d2ee5050bc5..abd4134703b 100644 --- a/examples/fwe/birdle/lib/step4i_main.dart +++ b/examples/fwe/birdle/lib/step4i_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4j_main.dart b/examples/fwe/birdle/lib/step4j_main.dart index 377f8c703ae..93563ea501a 100644 --- a/examples/fwe/birdle/lib/step4j_main.dart +++ b/examples/fwe/birdle/lib/step4j_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4k_main.dart b/examples/fwe/birdle/lib/step4k_main.dart index 5c2b52df23e..6cf0575a95d 100644 --- a/examples/fwe/birdle/lib/step4k_main.dart +++ b/examples/fwe/birdle/lib/step4k_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors_in_immutables -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; import 'step2_main.dart' show Tile; diff --git a/examples/fwe/birdle/lib/step4l_main.dart b/examples/fwe/birdle/lib/step4l_main.dart index 4d201535744..835d93bf20b 100644 --- a/examples/fwe/birdle/lib/step4l_main.dart +++ b/examples/fwe/birdle/lib/step4l_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_constructors, unused_field -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step4m_main.dart b/examples/fwe/birdle/lib/step4m_main.dart index 5b478b5ed44..5c985ba5a23 100644 --- a/examples/fwe/birdle/lib/step4m_main.dart +++ b/examples/fwe/birdle/lib/step4m_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion GuessInput class GuessInput extends StatelessWidget { diff --git a/examples/fwe/birdle/lib/step5_main.dart b/examples/fwe/birdle/lib/step5_main.dart index e1e1c86c800..8e3162fb5f2 100644 --- a/examples/fwe/birdle/lib/step5_main.dart +++ b/examples/fwe/birdle/lib/step5_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'game.dart'; import 'step2_main.dart' show Tile; diff --git a/examples/fwe/rolodex/lib/step1_advanced_ui/data/contact_group.dart b/examples/fwe/rolodex/lib/step1_advanced_ui/data/contact_group.dart index 2d5a6a21333..f6161520d56 100644 --- a/examples/fwe/rolodex/lib/step1_advanced_ui/data/contact_group.dart +++ b/examples/fwe/rolodex/lib/step1_advanced_ui/data/contact_group.dart @@ -1,7 +1,7 @@ // #docregion contact_group_class import 'dart:collection'; -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_dart/cupertino.dart'; import 'contact.dart'; diff --git a/examples/fwe/rolodex/lib/step1_advanced_ui/main.dart b/examples/fwe/rolodex/lib/step1_advanced_ui/main.dart index 1cc787b989a..b80daae21c1 100644 --- a/examples/fwe/rolodex/lib/step1_advanced_ui/main.dart +++ b/examples/fwe/rolodex/lib/step1_advanced_ui/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'data/contact_group.dart'; diff --git a/examples/fwe/rolodex/lib/step1_advanced_ui/main_starter.dart b/examples/fwe/rolodex/lib/step1_advanced_ui/main_starter.dart index 22808c8585c..6dc44f421e5 100644 --- a/examples/fwe/rolodex/lib/step1_advanced_ui/main_starter.dart +++ b/examples/fwe/rolodex/lib/step1_advanced_ui/main_starter.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() { runApp(const RolodexApp()); diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/data/contact_group.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/data/contact_group.dart index c964ebe955f..fbc32ecfc16 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/data/contact_group.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/data/contact_group.dart @@ -1,6 +1,6 @@ import 'dart:collection'; -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_dart/cupertino.dart'; import 'contact.dart'; diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/main.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/main.dart index 2d3c08ffde4..ae8b593b742 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/main.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'data/contact_group.dart'; import 'screens/adaptive_layout.dart'; diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout.dart index 60a7736786b..d3e1491b8c3 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_element -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v1.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v1.dart index 27e13835c41..7fec2b7b7e5 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v1.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v1.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v2.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v2.dart index 3845e4b2301..667d2d50a04 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v2.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v2.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v3.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v3.dart index 4e389504fd9..c6b0c29da24 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v3.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v3.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_element -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v4.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v4.dart index d73da56d832..e8388d182e4 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v4.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/adaptive_layout_v4.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_element -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contact_groups.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contact_groups.dart index ae562c4ce51..edf81b68cb8 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contact_groups.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contact_groups.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; class ContactGroupsPage extends StatelessWidget { const ContactGroupsPage({super.key}); diff --git a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contacts.dart b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contacts.dart index a5fb9225d3e..cc5ce85db02 100644 --- a/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contacts.dart +++ b/examples/fwe/rolodex/lib/step2_adaptive_layout/screens/contacts.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; class ContactListsPage extends StatelessWidget { const ContactListsPage({super.key, required this.listId}); diff --git a/examples/fwe/rolodex/lib/step3_slivers/data/contact_group.dart b/examples/fwe/rolodex/lib/step3_slivers/data/contact_group.dart index c964ebe955f..fbc32ecfc16 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/data/contact_group.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/data/contact_group.dart @@ -1,6 +1,6 @@ import 'dart:collection'; -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_dart/cupertino.dart'; import 'contact.dart'; diff --git a/examples/fwe/rolodex/lib/step3_slivers/main.dart b/examples/fwe/rolodex/lib/step3_slivers/main.dart index 2d3c08ffde4..ae8b593b742 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/main.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'data/contact_group.dart'; import 'screens/adaptive_layout.dart'; diff --git a/examples/fwe/rolodex/lib/step3_slivers/screens/adaptive_layout.dart b/examples/fwe/rolodex/lib/step3_slivers/screens/adaptive_layout.dart index 2d25acd183f..b70d83ae753 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/screens/adaptive_layout.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/screens/adaptive_layout.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_element -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contacts.dart'; diff --git a/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups.dart b/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups.dart index 9292bbe3ef7..1b56b43eb1c 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact.dart'; import '../data/contact_group.dart'; diff --git a/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups_v1.dart b/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups_v1.dart index a486d734a37..7fce88f16e1 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups_v1.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/screens/contact_groups_v1.dart @@ -1,5 +1,5 @@ // #docregion contact_groups_view -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact_group.dart'; import '../main.dart'; diff --git a/examples/fwe/rolodex/lib/step3_slivers/screens/contacts.dart b/examples/fwe/rolodex/lib/step3_slivers/screens/contacts.dart index 1182a5289b0..2ddb899701a 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/screens/contacts.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/screens/contacts.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_element_parameter -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact.dart'; import '../data/contact_group.dart'; diff --git a/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v1.dart b/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v1.dart index 7dd4f6d9b25..e3b4b22f8e3 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v1.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v1.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_element_parameter -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact_group.dart'; import '../main.dart'; diff --git a/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v2.dart b/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v2.dart index 5e678cc25e0..b5f24780dab 100644 --- a/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v2.dart +++ b/examples/fwe/rolodex/lib/step3_slivers/screens/contacts_v2.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_element_parameter -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact_group.dart'; import '../main.dart'; diff --git a/examples/fwe/rolodex/lib/step4_navigation/data/contact_group.dart b/examples/fwe/rolodex/lib/step4_navigation/data/contact_group.dart index c964ebe955f..fbc32ecfc16 100644 --- a/examples/fwe/rolodex/lib/step4_navigation/data/contact_group.dart +++ b/examples/fwe/rolodex/lib/step4_navigation/data/contact_group.dart @@ -1,6 +1,6 @@ import 'dart:collection'; -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_dart/cupertino.dart'; import 'contact.dart'; diff --git a/examples/fwe/rolodex/lib/step4_navigation/main.dart b/examples/fwe/rolodex/lib/step4_navigation/main.dart index 2d3c08ffde4..ae8b593b742 100644 --- a/examples/fwe/rolodex/lib/step4_navigation/main.dart +++ b/examples/fwe/rolodex/lib/step4_navigation/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'data/contact_group.dart'; import 'screens/adaptive_layout.dart'; diff --git a/examples/fwe/rolodex/lib/step4_navigation/screens/adaptive_layout.dart b/examples/fwe/rolodex/lib/step4_navigation/screens/adaptive_layout.dart index 489c2194b3e..9c0cee6f0ba 100644 --- a/examples/fwe/rolodex/lib/step4_navigation/screens/adaptive_layout.dart +++ b/examples/fwe/rolodex/lib/step4_navigation/screens/adaptive_layout.dart @@ -1,5 +1,5 @@ // #docregion imports -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; import 'contacts.dart'; diff --git a/examples/fwe/rolodex/lib/step4_navigation/screens/contact_groups.dart b/examples/fwe/rolodex/lib/step4_navigation/screens/contact_groups.dart index 0a74fe9c335..890dddad956 100644 --- a/examples/fwe/rolodex/lib/step4_navigation/screens/contact_groups.dart +++ b/examples/fwe/rolodex/lib/step4_navigation/screens/contact_groups.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact.dart'; import '../data/contact_group.dart'; diff --git a/examples/fwe/rolodex/lib/step4_navigation/screens/contacts.dart b/examples/fwe/rolodex/lib/step4_navigation/screens/contacts.dart index 768230ee3a8..a80ab82ba3a 100644 --- a/examples/fwe/rolodex/lib/step4_navigation/screens/contacts.dart +++ b/examples/fwe/rolodex/lib/step4_navigation/screens/contacts.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact.dart'; import '../data/contact_group.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step1_main.dart b/examples/fwe/wikipedia_reader/lib/step1_main.dart index 54b521dc846..b4f98b2e0a2 100644 --- a/examples/fwe/wikipedia_reader/lib/step1_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step1_main.dart @@ -4,7 +4,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step2_main.dart b/examples/fwe/wikipedia_reader/lib/step2_main.dart index df07302d28f..1d586e736e1 100644 --- a/examples/fwe/wikipedia_reader/lib/step2_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step2_main.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step2a_main.dart b/examples/fwe/wikipedia_reader/lib/step2a_main.dart index dca3daa0f7b..19cc2d620ce 100644 --- a/examples/fwe/wikipedia_reader/lib/step2a_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step2a_main.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step2b_main.dart b/examples/fwe/wikipedia_reader/lib/step2b_main.dart index 09e50ea1316..97d6a9c71ad 100644 --- a/examples/fwe/wikipedia_reader/lib/step2b_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step2b_main.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step2c_main.dart b/examples/fwe/wikipedia_reader/lib/step2c_main.dart index 2c6c00d5d0f..b63864d4922 100644 --- a/examples/fwe/wikipedia_reader/lib/step2c_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step2c_main.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step3_main.dart b/examples/fwe/wikipedia_reader/lib/step3_main.dart index 1d5afaf5a2e..9a88192d45c 100644 --- a/examples/fwe/wikipedia_reader/lib/step3_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step3_main.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step3a_main.dart b/examples/fwe/wikipedia_reader/lib/step3a_main.dart index 816f612d0f4..cf6f24a4501 100644 --- a/examples/fwe/wikipedia_reader/lib/step3a_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step3a_main.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step3b_main.dart b/examples/fwe/wikipedia_reader/lib/step3b_main.dart index f115d5367be..59106eac7f1 100644 --- a/examples/fwe/wikipedia_reader/lib/step3b_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step3b_main.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step3c_main.dart b/examples/fwe/wikipedia_reader/lib/step3c_main.dart index c97488f1322..3d4a569b978 100644 --- a/examples/fwe/wikipedia_reader/lib/step3c_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step3c_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_import -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step3d_main.dart b/examples/fwe/wikipedia_reader/lib/step3d_main.dart index eb5b242ae9e..ce07a41476c 100644 --- a/examples/fwe/wikipedia_reader/lib/step3d_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step3d_main.dart @@ -2,7 +2,7 @@ import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step3e_main.dart b/examples/fwe/wikipedia_reader/lib/step3e_main.dart index 13f674f7db9..ab3121abf7d 100644 --- a/examples/fwe/wikipedia_reader/lib/step3e_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step3e_main.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step3f_main.dart b/examples/fwe/wikipedia_reader/lib/step3f_main.dart index 91d35c72a36..26287885e5e 100644 --- a/examples/fwe/wikipedia_reader/lib/step3f_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step3f_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: unused_import, unused_local_variable -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4_main.dart b/examples/fwe/wikipedia_reader/lib/step4_main.dart index 7c14914163c..3a359baab91 100644 --- a/examples/fwe/wikipedia_reader/lib/step4_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4_main.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4a_main.dart b/examples/fwe/wikipedia_reader/lib/step4a_main.dart index fd571fbfd86..1e651301124 100644 --- a/examples/fwe/wikipedia_reader/lib/step4a_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4a_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ArticleView extends StatefulWidget { const ArticleView({super.key}); diff --git a/examples/fwe/wikipedia_reader/lib/step4b_main.dart b/examples/fwe/wikipedia_reader/lib/step4b_main.dart index d496502102f..3578a658ebf 100644 --- a/examples/fwe/wikipedia_reader/lib/step4b_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4b_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4c_main.dart b/examples/fwe/wikipedia_reader/lib/step4c_main.dart index 90e74551ef9..e02d971d510 100644 --- a/examples/fwe/wikipedia_reader/lib/step4c_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4c_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4d_main.dart b/examples/fwe/wikipedia_reader/lib/step4d_main.dart index 7ba778a6c8a..bb5a6cda22b 100644 --- a/examples/fwe/wikipedia_reader/lib/step4d_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4d_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4e_main.dart b/examples/fwe/wikipedia_reader/lib/step4e_main.dart index f683ccb9a9f..81dcaa8298e 100644 --- a/examples/fwe/wikipedia_reader/lib/step4e_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4e_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4f_main.dart b/examples/fwe/wikipedia_reader/lib/step4f_main.dart index 7a232041b9a..4809cc1d080 100644 --- a/examples/fwe/wikipedia_reader/lib/step4f_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4f_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4g_main.dart b/examples/fwe/wikipedia_reader/lib/step4g_main.dart index f06365ba426..0686a2276ea 100644 --- a/examples/fwe/wikipedia_reader/lib/step4g_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4g_main.dart @@ -1,6 +1,6 @@ // ignore_for_file: prefer_const_literals_to_create_immutables, prefer_const_constructors -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/fwe/wikipedia_reader/lib/step4h_main.dart b/examples/fwe/wikipedia_reader/lib/step4h_main.dart index bf08ace8b69..8472fbb3aea 100644 --- a/examples/fwe/wikipedia_reader/lib/step4h_main.dart +++ b/examples/fwe/wikipedia_reader/lib/step4h_main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'summary.dart'; diff --git a/examples/get-started/flutter-for/android_devs/lib/animation.dart b/examples/get-started/flutter-for/android_devs/lib/animation.dart index 560b7ede30b..4a8b6ea9c0c 100644 --- a/examples/get-started/flutter-for/android_devs/lib/animation.dart +++ b/examples/get-started/flutter-for/android_devs/lib/animation.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const FadeAppTest()); diff --git a/examples/get-started/flutter-for/android_devs/lib/async.dart b/examples/get-started/flutter-for/android_devs/lib/async.dart index 54b682f8d09..889e51ecb58 100644 --- a/examples/get-started/flutter-for/android_devs/lib/async.dart +++ b/examples/get-started/flutter-for/android_devs/lib/async.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/android_devs/lib/canvas.dart b/examples/get-started/flutter-for/android_devs/lib/canvas.dart index 83a3b12f029..0e6ef02f61f 100644 --- a/examples/get-started/flutter-for/android_devs/lib/canvas.dart +++ b/examples/get-started/flutter-for/android_devs/lib/canvas.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MaterialApp(home: DemoApp())); diff --git a/examples/get-started/flutter-for/android_devs/lib/custom.dart b/examples/get-started/flutter-for/android_devs/lib/custom.dart index 87c0957d3f8..7cfd94233b2 100644 --- a/examples/get-started/flutter-for/android_devs/lib/custom.dart +++ b/examples/get-started/flutter-for/android_devs/lib/custom.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion custom-button class CustomButton extends StatelessWidget { diff --git a/examples/get-started/flutter-for/android_devs/lib/events.dart b/examples/get-started/flutter-for/android_devs/lib/events.dart index 0de7bedf8f6..e1cc4f00d9c 100644 --- a/examples/get-started/flutter-for/android_devs/lib/events.dart +++ b/examples/get-started/flutter-for/android_devs/lib/events.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyButton extends StatelessWidget { const MyButton({super.key}); diff --git a/examples/get-started/flutter-for/android_devs/lib/form.dart b/examples/get-started/flutter-for/android_devs/lib/form.dart index 676331e5cb6..e651e92456f 100644 --- a/examples/get-started/flutter-for/android_devs/lib/form.dart +++ b/examples/get-started/flutter-for/android_devs/lib/form.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/android_devs/lib/images.dart b/examples/get-started/flutter-for/android_devs/lib/images.dart index f05046c189f..6e1ee3ebcc3 100644 --- a/examples/get-started/flutter-for/android_devs/lib/images.dart +++ b/examples/get-started/flutter-for/android_devs/lib/images.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/android_devs/lib/intent.dart b/examples/get-started/flutter-for/android_devs/lib/intent.dart index 6b3cb79621b..c433a0ef4c7 100644 --- a/examples/get-started/flutter-for/android_devs/lib/intent.dart +++ b/examples/get-started/flutter-for/android_devs/lib/intent.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion map void main() { diff --git a/examples/get-started/flutter-for/android_devs/lib/isolates.dart b/examples/get-started/flutter-for/android_devs/lib/isolates.dart index 2f18a930ec6..63c5000efe3 100644 --- a/examples/get-started/flutter-for/android_devs/lib/isolates.dart +++ b/examples/get-started/flutter-for/android_devs/lib/isolates.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:isolate'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/android_devs/lib/layout.dart b/examples/get-started/flutter-for/android_devs/lib/layout.dart index 7b8ff443b28..61fa75fb620 100644 --- a/examples/get-started/flutter-for/android_devs/lib/layout.dart +++ b/examples/get-started/flutter-for/android_devs/lib/layout.dart @@ -1,5 +1,5 @@ // #docregion toggle-widget -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/android_devs/lib/list_item_tapped.dart b/examples/get-started/flutter-for/android_devs/lib/list_item_tapped.dart index ad898a82722..25360053daf 100644 --- a/examples/get-started/flutter-for/android_devs/lib/list_item_tapped.dart +++ b/examples/get-started/flutter-for/android_devs/lib/list_item_tapped.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/android_devs/lib/listview.dart b/examples/get-started/flutter-for/android_devs/lib/listview.dart index 66913c50dbc..b3882050d05 100644 --- a/examples/get-started/flutter-for/android_devs/lib/listview.dart +++ b/examples/get-started/flutter-for/android_devs/lib/listview.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/android_devs/lib/listview_builder.dart b/examples/get-started/flutter-for/android_devs/lib/listview_builder.dart index 1c723e41b75..ef4a33683da 100644 --- a/examples/get-started/flutter-for/android_devs/lib/listview_builder.dart +++ b/examples/get-started/flutter-for/android_devs/lib/listview_builder.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/android_devs/lib/listview_dynamic.dart b/examples/get-started/flutter-for/android_devs/lib/listview_dynamic.dart index f7963e89bfa..f7c55924108 100644 --- a/examples/get-started/flutter-for/android_devs/lib/listview_dynamic.dart +++ b/examples/get-started/flutter-for/android_devs/lib/listview_dynamic.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/android_devs/lib/localization_examples.dart b/examples/get-started/flutter-for/android_devs/lib/localization_examples.dart index 719e135d02b..c4ef36f1a22 100644 --- a/examples/get-started/flutter-for/android_devs/lib/localization_examples.dart +++ b/examples/get-started/flutter-for/android_devs/lib/localization_examples.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'app_localizations.dart'; diff --git a/examples/get-started/flutter-for/android_devs/lib/progress.dart b/examples/get-started/flutter-for/android_devs/lib/progress.dart index a4b5d260e3e..2a8ab7205d9 100644 --- a/examples/get-started/flutter-for/android_devs/lib/progress.dart +++ b/examples/get-started/flutter-for/android_devs/lib/progress.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/android_devs/lib/request_data.dart b/examples/get-started/flutter-for/android_devs/lib/request_data.dart index a3bb55a06e6..f38f309458e 100644 --- a/examples/get-started/flutter-for/android_devs/lib/request_data.dart +++ b/examples/get-started/flutter-for/android_devs/lib/request_data.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; void main() { diff --git a/examples/get-started/flutter-for/android_devs/lib/shared_prefs.dart b/examples/get-started/flutter-for/android_devs/lib/shared_prefs.dart index 0a44fd36f9a..1667b8c9674 100644 --- a/examples/get-started/flutter-for/android_devs/lib/shared_prefs.dart +++ b/examples/get-started/flutter-for/android_devs/lib/shared_prefs.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; diff --git a/examples/get-started/flutter-for/android_devs/lib/string_examples.dart b/examples/get-started/flutter-for/android_devs/lib/string_examples.dart index 29cd3035195..c1c29e0cef1 100644 --- a/examples/get-started/flutter-for/android_devs/lib/string_examples.dart +++ b/examples/get-started/flutter-for/android_devs/lib/string_examples.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion strings class Strings { diff --git a/examples/get-started/flutter-for/android_devs/lib/text.dart b/examples/get-started/flutter-for/android_devs/lib/text.dart index db03734503e..b9d94d6494c 100644 --- a/examples/get-started/flutter-for/android_devs/lib/text.dart +++ b/examples/get-started/flutter-for/android_devs/lib/text.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/android_devs/lib/text_widget.dart b/examples/get-started/flutter-for/android_devs/lib/text_widget.dart index 235543d4fce..de0ffba16e0 100644 --- a/examples/get-started/flutter-for/android_devs/lib/text_widget.dart +++ b/examples/get-started/flutter-for/android_devs/lib/text_widget.dart @@ -1,5 +1,5 @@ // #docregion stateful-widget -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/android_devs/lib/theme.dart b/examples/get-started/flutter-for/android_devs/lib/theme.dart index 05d33230085..5ee192fd8cf 100644 --- a/examples/get-started/flutter-for/android_devs/lib/theme.dart +++ b/examples/get-started/flutter-for/android_devs/lib/theme.dart @@ -1,5 +1,5 @@ // #docregion theme -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SampleApp extends StatelessWidget { const SampleApp({super.key}); diff --git a/examples/get-started/flutter-for/android_devs/lib/validation_errors.dart b/examples/get-started/flutter-for/android_devs/lib/validation_errors.dart index f153ccd9637..c110211046e 100644 --- a/examples/get-started/flutter-for/android_devs/lib/validation_errors.dart +++ b/examples/get-started/flutter-for/android_devs/lib/validation_errors.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/declarative/lib/main.dart b/examples/get-started/flutter-for/declarative/lib/main.dart index 957327ba0fd..53123ac75ce 100644 --- a/examples/get-started/flutter-for/declarative/lib/main.dart +++ b/examples/get-started/flutter-for/declarative/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/animation.dart b/examples/get-started/flutter-for/ios_devs/lib/animation.dart index f1e7be11274..e565c307de9 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/animation.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/animation.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SampleApp extends StatelessWidget { // This widget is the root of your application. diff --git a/examples/get-started/flutter-for/ios_devs/lib/async.dart b/examples/get-started/flutter-for/ios_devs/lib/async.dart index b421959c238..9c82885b6fe 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/async.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/async.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/ios_devs/lib/canvas.dart b/examples/get-started/flutter-for/ios_devs/lib/canvas.dart index eb4c19b3e41..061e6f6fbd8 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/canvas.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/canvas.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MaterialApp(home: DemoApp())); diff --git a/examples/get-started/flutter-for/ios_devs/lib/column.dart b/examples/get-started/flutter-for/ios_devs/lib/column.dart index 5f52458f21e..fbdc02679bc 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/column.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/column.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/cupertino_themes.dart b/examples/get-started/flutter-for/ios_devs/lib/cupertino_themes.dart index bd96d1220c7..41a0cc2259a 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/cupertino_themes.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/cupertino_themes.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() { runApp(const App()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/custom.dart b/examples/get-started/flutter-for/ios_devs/lib/custom.dart index a570dc94353..97a9ba93c77 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/custom.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/custom.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion custom-button class CustomButton extends StatelessWidget { diff --git a/examples/get-started/flutter-for/ios_devs/lib/events.dart b/examples/get-started/flutter-for/ios_devs/lib/events.dart index f71fbae74d1..39195a723f4 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/events.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/events.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyButton extends StatelessWidget { const MyButton({super.key}); diff --git a/examples/get-started/flutter-for/ios_devs/lib/form.dart b/examples/get-started/flutter-for/ios_devs/lib/form.dart index a4da6ae1dc5..0fbb7748be2 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/form.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/form.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/ios_devs/lib/get_started.dart b/examples/get-started/flutter-for/ios_devs/lib/get_started.dart index ef75a346b77..ba2bcf75124 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/get_started.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/get_started.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; // #docregion main void main() { diff --git a/examples/get-started/flutter-for/ios_devs/lib/grid.dart b/examples/get-started/flutter-for/ios_devs/lib/grid.dart index b13c754aff0..c036b7e9d29 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/grid.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/grid.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const App()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/images.dart b/examples/get-started/flutter-for/ios_devs/lib/images.dart index a7cdb365ff5..f46b2cb2835 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/images.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/images.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/ios_devs/lib/intent.dart b/examples/get-started/flutter-for/ios_devs/lib/intent.dart index e34f87b8045..e384f5c74e7 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/intent.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/intent.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; // #docregion map void main() { diff --git a/examples/get-started/flutter-for/ios_devs/lib/isolates.dart b/examples/get-started/flutter-for/ios_devs/lib/isolates.dart index c0b7adae261..8bf307cde38 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/isolates.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/isolates.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:isolate'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/ios_devs/lib/layout.dart b/examples/get-started/flutter-for/ios_devs/lib/layout.dart index ffe24d06f30..bc3202b3f5c 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/layout.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/layout.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/list.dart b/examples/get-started/flutter-for/ios_devs/lib/list.dart index bea4e54ab97..2c217ba57fe 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/list.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/list.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const App()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/list_item_tapped.dart b/examples/get-started/flutter-for/ios_devs/lib/list_item_tapped.dart index 15bedc6e870..cb7938f8506 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/list_item_tapped.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/list_item_tapped.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/listview.dart b/examples/get-started/flutter-for/ios_devs/lib/listview.dart index 27d7b5b422a..5e3b61c64d0 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/listview.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/listview.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/listview_builder.dart b/examples/get-started/flutter-for/ios_devs/lib/listview_builder.dart index 9aaeee2ed85..b1e522a0feb 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/listview_builder.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/listview_builder.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/listview_dynamic.dart b/examples/get-started/flutter-for/ios_devs/lib/listview_dynamic.dart index 47ccaf2ddeb..3530ab9680d 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/listview_dynamic.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/listview_dynamic.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/localizations_example.dart b/examples/get-started/flutter-for/ios_devs/lib/localizations_example.dart index ca0fa1817cb..48e2de6a6cd 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/localizations_example.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/localizations_example.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; class MyWidget extends StatelessWidget { diff --git a/examples/get-started/flutter-for/ios_devs/lib/navigation.dart b/examples/get-started/flutter-for/ios_devs/lib/navigation.dart index bcc30e47504..8f261ff7a8b 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/navigation.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/navigation.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const App()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/openapp.dart b/examples/get-started/flutter-for/ios_devs/lib/openapp.dart index d114c81d31f..ffb2c5d98c8 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/openapp.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/openapp.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { diff --git a/examples/get-started/flutter-for/ios_devs/lib/popback.dart b/examples/get-started/flutter-for/ios_devs/lib/popback.dart index 2b963ea7ccd..a6ad599f592 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/popback.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/popback.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const App()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/progress.dart b/examples/get-started/flutter-for/ios_devs/lib/progress.dart index ad0a6d0a161..4b73ee14eec 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/progress.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/progress.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/ios_devs/lib/request_data.dart b/examples/get-started/flutter-for/ios_devs/lib/request_data.dart index 074272b7f25..6db99044893 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/request_data.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/request_data.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; void main() { diff --git a/examples/get-started/flutter-for/ios_devs/lib/row.dart b/examples/get-started/flutter-for/ios_devs/lib/row.dart index 8bd60067708..3013985392f 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/row.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/row.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/scroll.dart b/examples/get-started/flutter-for/ios_devs/lib/scroll.dart index 41fb91f4a50..1ce3151613a 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/scroll.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/scroll.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const App()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/shared_prefs.dart b/examples/get-started/flutter-for/ios_devs/lib/shared_prefs.dart index 0a44fd36f9a..1667b8c9674 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/shared_prefs.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/shared_prefs.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; diff --git a/examples/get-started/flutter-for/ios_devs/lib/simple_animation.dart b/examples/get-started/flutter-for/ios_devs/lib/simple_animation.dart index d789994c021..770fc65a369 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/simple_animation.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/simple_animation.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/state.dart b/examples/get-started/flutter-for/ios_devs/lib/state.dart index 57d5f006747..510571e5879 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/state.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/state.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/string_examples.dart b/examples/get-started/flutter-for/ios_devs/lib/string_examples.dart index 97cea57c9b5..bfcc1ce3af1 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/string_examples.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/string_examples.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion strings class Strings { diff --git a/examples/get-started/flutter-for/ios_devs/lib/stylingbutton.dart b/examples/get-started/flutter-for/ios_devs/lib/stylingbutton.dart index 12dcad5c71a..94a4af02371 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/stylingbutton.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/stylingbutton.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() { runApp(const App()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/text.dart b/examples/get-started/flutter-for/ios_devs/lib/text.dart index db03734503e..b9d94d6494c 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/text.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/text.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/ios_devs/lib/text_button.dart b/examples/get-started/flutter-for/ios_devs/lib/text_button.dart index d7b99a6db3f..e71f302327a 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/text_button.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/text_button.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/get-started/flutter-for/ios_devs/lib/text_widget.dart b/examples/get-started/flutter-for/ios_devs/lib/text_widget.dart index e72af5989f9..b45dbe78317 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/text_widget.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/text_widget.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion stateful-widget diff --git a/examples/get-started/flutter-for/ios_devs/lib/theme.dart b/examples/get-started/flutter-for/ios_devs/lib/theme.dart index 5b4245a7002..e875c6aa978 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/theme.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/theme.dart @@ -1,5 +1,5 @@ // #docregion theme -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SampleApp extends StatelessWidget { const SampleApp({super.key}); diff --git a/examples/get-started/flutter-for/ios_devs/lib/validation_errors.dart b/examples/get-started/flutter-for/ios_devs/lib/validation_errors.dart index 5e9378f9ca5..0baa9b0e7c5 100644 --- a/examples/get-started/flutter-for/ios_devs/lib/validation_errors.dart +++ b/examples/get-started/flutter-for/ios_devs/lib/validation_errors.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/react_native_devs/lib/animation.dart b/examples/get-started/flutter-for/react_native_devs/lib/animation.dart index d68b895c73a..ce4d950db36 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/animation.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/animation.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const Center(child: LogoFade())); diff --git a/examples/get-started/flutter-for/react_native_devs/lib/best_practices.dart b/examples/get-started/flutter-for/react_native_devs/lib/best_practices.dart index 0ad022035ba..e774b49d542 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/best_practices.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/best_practices.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion create-state class MyStatefulWidget extends StatefulWidget { diff --git a/examples/get-started/flutter-for/react_native_devs/lib/components.dart b/examples/get-started/flutter-for/react_native_devs/lib/components.dart index 75ac1571646..f86719b4682 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/components.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/components.dart @@ -1,5 +1,5 @@ // ignore_for_file: avoid_print -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion components /// Flutter diff --git a/examples/get-started/flutter-for/react_native_devs/lib/examples.dart b/examples/get-started/flutter-for/react_native_devs/lib/examples.dart index 55c62d8988c..805fa6975f2 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/examples.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/examples.dart @@ -6,7 +6,7 @@ import 'dart:io'; // #enddocregion import-dart-io // #docregion package-import -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #enddocregion package-import // #docregion shared-prefs import 'package:shared_preferences/shared_preferences.dart'; diff --git a/examples/get-started/flutter-for/react_native_devs/lib/hello_world.dart b/examples/get-started/flutter-for/react_native_devs/lib/hello_world.dart index 35b88b09392..5a11e3a29b4 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/hello_world.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/hello_world.dart @@ -1,5 +1,5 @@ // Flutter -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( diff --git a/examples/get-started/flutter-for/react_native_devs/lib/imports.dart b/examples/get-started/flutter-for/react_native_devs/lib/imports.dart index b2c77ed1446..5c5ea9e5f3a 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/imports.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/imports.dart @@ -1,8 +1,8 @@ // ignore_for_file: unused_import // #docregion imports -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/widgets.dart'; import 'package:my_widgets/my_widgets.dart'; diff --git a/examples/get-started/flutter-for/react_native_devs/lib/layouts.dart b/examples/get-started/flutter-for/react_native_devs/lib/layouts.dart index 5b24954d47e..311af21e56a 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/layouts.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/layouts.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ColumnExample extends StatelessWidget { const ColumnExample({super.key}); diff --git a/examples/get-started/flutter-for/react_native_devs/lib/navigation.dart b/examples/get-started/flutter-for/react_native_devs/lib/navigation.dart index 3cf84a9988c..c200c9e68c6 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/navigation.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/navigation.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion navigator class NavigationApp extends StatelessWidget { diff --git a/examples/get-started/flutter-for/react_native_devs/lib/stateful.dart b/examples/get-started/flutter-for/react_native_devs/lib/stateful.dart index ee1e481c2f3..0da75bb4338 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/stateful.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/stateful.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion stateful-widget class MyStatefulWidget extends StatefulWidget { diff --git a/examples/get-started/flutter-for/react_native_devs/lib/stateless.dart b/examples/get-started/flutter-for/react_native_devs/lib/stateless.dart index c19c0e948ec..e036f462089 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/stateless.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/stateless.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp( const MyStatelessWidget( diff --git a/examples/get-started/flutter-for/react_native_devs/lib/widget_tree.dart b/examples/get-started/flutter-for/react_native_devs/lib/widget_tree.dart index 01d567ff8ed..c66a9809617 100644 --- a/examples/get-started/flutter-for/react_native_devs/lib/widget_tree.dart +++ b/examples/get-started/flutter-for/react_native_devs/lib/widget_tree.dart @@ -1,5 +1,5 @@ // Flutter -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/get-started/flutter-for/web_devs/lib/main.dart b/examples/get-started/flutter-for/web_devs/lib/main.dart index 7c5891538b9..71b95225c13 100644 --- a/examples/get-started/flutter-for/web_devs/lib/main.dart +++ b/examples/get-started/flutter-for/web_devs/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion text-style TextStyle bold24Roboto = const TextStyle( diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/animation.dart b/examples/get-started/flutter-for/xamarin_devs/lib/animation.dart index ba95ef36027..785e8fa4753 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/animation.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/animation.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const FadeAppTest()); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/custom_button.dart b/examples/get-started/flutter-for/xamarin_devs/lib/custom_button.dart index 4e56a159b1c..fd4935037a7 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/custom_button.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/custom_button.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion custom-button class CustomButton extends StatelessWidget { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/data.dart b/examples/get-started/flutter-for/xamarin_devs/lib/data.dart index b421959c238..9c82885b6fe 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/data.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/data.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/draw.dart b/examples/get-started/flutter-for/xamarin_devs/lib/draw.dart index a79c71a3d10..f143edd3b33 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/draw.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/draw.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: DemoApp())); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/dynamic_listview.dart b/examples/get-started/flutter-for/xamarin_devs/lib/dynamic_listview.dart index 874674ac477..2a0a28f7053 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/dynamic_listview.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/dynamic_listview.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/form.dart b/examples/get-started/flutter-for/xamarin_devs/lib/form.dart index b8c046809f8..370e1ea06e2 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/form.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/form.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyForm extends StatefulWidget { const MyForm({super.key}); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/gestures.dart b/examples/get-started/flutter-for/xamarin_devs/lib/gestures.dart index 103b7fea38b..e624b0ee1af 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/gestures.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/gestures.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/images.dart b/examples/get-started/flutter-for/xamarin_devs/lib/images.dart index 97506184bd8..98ef7866c89 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/images.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/images.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ImageAssetExample extends StatelessWidget { const ImageAssetExample({super.key}); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/input_decoration.dart b/examples/get-started/flutter-for/xamarin_devs/lib/input_decoration.dart index 3974909ab40..47042c43cbe 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/input_decoration.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/input_decoration.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyForm extends StatelessWidget { const MyForm({super.key}); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/isolates.dart b/examples/get-started/flutter-for/xamarin_devs/lib/isolates.dart index 569679dc836..1a18c5b6402 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/isolates.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/isolates.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:isolate'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/layouts.dart b/examples/get-started/flutter-for/xamarin_devs/lib/layouts.dart index 96a557e0e94..310bc37c677 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/layouts.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/layouts.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class RowExample extends StatelessWidget { const RowExample({super.key}); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/listview.dart b/examples/get-started/flutter-for/xamarin_devs/lib/listview.dart index 906935ddde6..8f3ee1b3fd6 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/listview.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/listview.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/listview_builder.dart b/examples/get-started/flutter-for/xamarin_devs/lib/listview_builder.dart index c19499b10b7..df6c54c2080 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/listview_builder.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/listview_builder.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/listview_item_clicked.dart b/examples/get-started/flutter-for/xamarin_devs/lib/listview_item_clicked.dart index 0519476e441..6f45a5cb593 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/listview_item_clicked.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/listview_item_clicked.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/loading.dart b/examples/get-started/flutter-for/xamarin_devs/lib/loading.dart index e3f57b20077..1ed8f7d0f07 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/loading.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/loading.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/main.dart b/examples/get-started/flutter-for/xamarin_devs/lib/main.dart index 5d5d49b5a84..7185c6705f2 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/main.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion main void main() { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/navigation.dart b/examples/get-started/flutter-for/xamarin_devs/lib/navigation.dart index c9a4bef4106..cb01994759f 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/navigation.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/navigation.dart @@ -1,6 +1,6 @@ import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion main void main() { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/padding.dart b/examples/get-started/flutter-for/xamarin_devs/lib/padding.dart index c42f75f7321..bebadf352d7 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/padding.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/padding.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/page.dart b/examples/get-started/flutter-for/xamarin_devs/lib/page.dart index cf9e97ea469..33345d6fe3c 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/page.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/page.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion my-app class MyApp extends StatelessWidget { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/strings.dart b/examples/get-started/flutter-for/xamarin_devs/lib/strings.dart index c41e95a99d3..99b3cc9dfa3 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/strings.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/strings.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion localization import 'package:flutter_localizations/flutter_localizations.dart'; diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/theme.dart b/examples/get-started/flutter-for/xamarin_devs/lib/theme.dart index 7cc5493038e..c83fb016377 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/theme.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/theme.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion theme class SampleApp extends StatelessWidget { diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/validation.dart b/examples/get-started/flutter-for/xamarin_devs/lib/validation.dart index ddaad0cb5e7..e81830bb5bc 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/validation.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/validation.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/views.dart b/examples/get-started/flutter-for/xamarin_devs/lib/views.dart index f44d834043e..d2cb00c0094 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/views.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/views.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; class MyWidget extends StatelessWidget { const MyWidget({super.key}); diff --git a/examples/get-started/flutter-for/xamarin_devs/lib/views_stateful.dart b/examples/get-started/flutter-for/xamarin_devs/lib/views_stateful.dart index ad6ae4584a6..9fd2482bb3b 100644 --- a/examples/get-started/flutter-for/xamarin_devs/lib/views_stateful.dart +++ b/examples/get-started/flutter-for/xamarin_devs/lib/views_stateful.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/examples/googleapis/lib/main.dart b/examples/googleapis/lib/main.dart index 09186c26ce3..f5485ea0af6 100644 --- a/examples/googleapis/lib/main.dart +++ b/examples/googleapis/lib/main.dart @@ -9,7 +9,7 @@ import 'dart:convert'; import 'package:extension_google_sign_in_as_googleapis_auth/extension_google_sign_in_as_googleapis_auth.dart'; // #enddocregion auth-import -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion google-import /// Provides the `GoogleSignIn` class. diff --git a/examples/integration_test/integration_test/counter_test.dart b/examples/integration_test/integration_test/counter_test.dart index 5c65b5567f3..ea2c8d43e25 100644 --- a/examples/integration_test/integration_test/counter_test.dart +++ b/examples/integration_test/integration_test/counter_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; diff --git a/examples/integration_test/lib/main.dart b/examples/integration_test/lib/main.dart index d1295b391f7..e177344eaa2 100644 --- a/examples/integration_test/lib/main.dart +++ b/examples/integration_test/lib/main.dart @@ -2,7 +2,7 @@ // 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'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/integration_test_migration/lib/main.dart b/examples/integration_test_migration/lib/main.dart index 5dfc75588b2..20d8722e346 100644 --- a/examples/integration_test_migration/lib/main.dart +++ b/examples/integration_test_migration/lib/main.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const PlantsApp()); diff --git a/examples/internationalization/add_language/lib/main.dart b/examples/internationalization/add_language/lib/main.dart index 44e7ea78f77..be056133cb8 100644 --- a/examples/internationalization/add_language/lib/main.dart +++ b/examples/internationalization/add_language/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'nn_intl.dart'; diff --git a/examples/internationalization/add_language/lib/nn_intl.dart b/examples/internationalization/add_language/lib/nn_intl.dart index 905a7a47d91..a8664069fd9 100644 --- a/examples/internationalization/add_language/lib/nn_intl.dart +++ b/examples/internationalization/add_language/lib/nn_intl.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/date_symbol_data_custom.dart' as date_symbol_data_custom; import 'package:intl/date_symbols.dart' as intl; diff --git a/examples/internationalization/intl_example/lib/main.dart b/examples/internationalization/intl_example/lib/main.dart index 32561fd5914..098a7fa1af9 100644 --- a/examples/internationalization/intl_example/lib/main.dart +++ b/examples/internationalization/intl_example/lib/main.dart @@ -25,7 +25,7 @@ import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart'; diff --git a/examples/internationalization/minimal/lib/main.dart b/examples/internationalization/minimal/lib/main.dart index efc04fbd75f..245c3f87306 100644 --- a/examples/internationalization/minimal/lib/main.dart +++ b/examples/internationalization/minimal/lib/main.dart @@ -23,7 +23,7 @@ import 'dart:async'; import 'package:flutter/foundation.dart' show SynchronousFuture; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; // #docregion demo diff --git a/examples/layout/base/lib/cupertino.dart b/examples/layout/base/lib/cupertino.dart index 061b30fae7b..346a3f986fe 100644 --- a/examples/layout/base/lib/cupertino.dart +++ b/examples/layout/base/lib/cupertino.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() { runApp(const MyApp()); diff --git a/examples/layout/base/lib/main.dart b/examples/layout/base/lib/main.dart index eb16a43918d..3b97ab9a2b3 100644 --- a/examples/layout/base/lib/main.dart +++ b/examples/layout/base/lib/main.dart @@ -3,7 +3,7 @@ // found in the LICENSE file. // #docregion all -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/base/lib/main_starter.dart b/examples/layout/base/lib/main_starter.dart index 001166b1bd2..dececc96047 100644 --- a/examples/layout/base/lib/main_starter.dart +++ b/examples/layout/base/lib/main_starter.dart @@ -2,7 +2,7 @@ // 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'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/card_and_stack/lib/main.dart b/examples/layout/card_and_stack/lib/main.dart index 9dfd86959b7..b0482160430 100644 --- a/examples/layout/card_and_stack/lib/main.dart +++ b/examples/layout/card_and_stack/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart' show debugPaintSizeEnabled; void main() { diff --git a/examples/layout/container/lib/main.dart b/examples/layout/container/lib/main.dart index e8b81cadf33..2bc69e1c375 100644 --- a/examples/layout/container/lib/main.dart +++ b/examples/layout/container/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart' show debugPaintSizeEnabled; void main() { diff --git a/examples/layout/gallery/lib/bottom_navigation_demo.dart b/examples/layout/gallery/lib/bottom_navigation_demo.dart index 8198b6117f7..f841ec0c6a8 100644 --- a/examples/layout/gallery/lib/bottom_navigation_demo.dart +++ b/examples/layout/gallery/lib/bottom_navigation_demo.dart @@ -3,7 +3,7 @@ // found in the LICENSE file. import 'package:animations/animations.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class BottomNavigationDemo extends StatefulWidget { const BottomNavigationDemo({ diff --git a/examples/layout/gallery/lib/cards_demo.dart b/examples/layout/gallery/lib/cards_demo.dart index a47c1a6a831..06cba5cb613 100644 --- a/examples/layout/gallery/lib/cards_demo.dart +++ b/examples/layout/gallery/lib/cards_demo.dart @@ -2,7 +2,7 @@ // 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'; +import 'package:material_ui/material.dart'; enum CardType { standard, tappable, selectable } diff --git a/examples/layout/gallery/lib/colors_demo.dart b/examples/layout/gallery/lib/colors_demo.dart index 13b2f6825bc..cfd02d3126e 100644 --- a/examples/layout/gallery/lib/colors_demo.dart +++ b/examples/layout/gallery/lib/colors_demo.dart @@ -2,7 +2,7 @@ // 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'; +import 'package:material_ui/material.dart'; const double _colorItemHeight = 48; diff --git a/examples/layout/gallery/lib/grid_list_demo.dart b/examples/layout/gallery/lib/grid_list_demo.dart index 86dc715cd00..49be8121a89 100644 --- a/examples/layout/gallery/lib/grid_list_demo.dart +++ b/examples/layout/gallery/lib/grid_list_demo.dart @@ -2,7 +2,7 @@ // 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'; +import 'package:material_ui/material.dart'; class GridListDemo extends StatelessWidget { const GridListDemo({super.key, required this.type}); diff --git a/examples/layout/gallery/lib/list_demo.dart b/examples/layout/gallery/lib/list_demo.dart index 166d21fa1eb..187c0d23bd5 100644 --- a/examples/layout/gallery/lib/list_demo.dart +++ b/examples/layout/gallery/lib/list_demo.dart @@ -2,7 +2,7 @@ // 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'; +import 'package:material_ui/material.dart'; class ListDemo extends StatelessWidget { const ListDemo({super.key, required this.type}); diff --git a/examples/layout/grid_and_list/lib/main.dart b/examples/layout/grid_and_list/lib/main.dart index 9c6ceb89db3..7f458d6c3e2 100644 --- a/examples/layout/grid_and_list/lib/main.dart +++ b/examples/layout/grid_and_list/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart' show debugPaintSizeEnabled; void main() { diff --git a/examples/layout/lakes/interactive/lib/main.dart b/examples/layout/lakes/interactive/lib/main.dart index 5216bfc9602..1d2202b7139 100644 --- a/examples/layout/lakes/interactive/lib/main.dart +++ b/examples/layout/lakes/interactive/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/lakes/interactive/test/widget_test.dart b/examples/layout/lakes/interactive/test/widget_test.dart index 130ecd8b7e5..fe46223a939 100644 --- a/examples/layout/lakes/interactive/test/widget_test.dart +++ b/examples/layout/lakes/interactive/test/widget_test.dart @@ -1,7 +1,7 @@ // Basic Flutter widget test. // Learn more at https://docs.flutter.dev/testing/overview#widget-tests. -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:lakes_interactive/main.dart'; diff --git a/examples/layout/lakes/step2/lib/main.dart b/examples/layout/lakes/step2/lib/main.dart index 2bb30f1e40c..44c4d4051d4 100644 --- a/examples/layout/lakes/step2/lib/main.dart +++ b/examples/layout/lakes/step2/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/lakes/step3/lib/main.dart b/examples/layout/lakes/step3/lib/main.dart index ea3bda92132..318bffd6996 100644 --- a/examples/layout/lakes/step3/lib/main.dart +++ b/examples/layout/lakes/step3/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/lakes/step4/lib/main.dart b/examples/layout/lakes/step4/lib/main.dart index c4856b1a6ab..df693104e4a 100644 --- a/examples/layout/lakes/step4/lib/main.dart +++ b/examples/layout/lakes/step4/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/lakes/step5/lib/main.dart b/examples/layout/lakes/step5/lib/main.dart index f7dd3da5d1e..18464afd78c 100644 --- a/examples/layout/lakes/step5/lib/main.dart +++ b/examples/layout/lakes/step5/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/lakes/step6/lib/main.dart b/examples/layout/lakes/step6/lib/main.dart index 52de3a15032..ff8a02c98f9 100644 --- a/examples/layout/lakes/step6/lib/main.dart +++ b/examples/layout/lakes/step6/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/non_material/lib/main.dart b/examples/layout/non_material/lib/main.dart index 743f3b52a6f..45462c1d3dc 100644 --- a/examples/layout/non_material/lib/main.dart +++ b/examples/layout/non_material/lib/main.dart @@ -3,7 +3,7 @@ // and the default text color is black. This app changes its background // to white and its text color to dark grey to mimic a material app. -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/layout/pavlova/lib/main.dart b/examples/layout/pavlova/lib/main.dart index 7e3913086f1..b26e7545a43 100644 --- a/examples/layout/pavlova/lib/main.dart +++ b/examples/layout/pavlova/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart' show debugPaintSizeEnabled; void main() { diff --git a/examples/layout/row_column/lib/main.dart b/examples/layout/row_column/lib/main.dart index 827609be485..c9b0c2ca592 100644 --- a/examples/layout/row_column/lib/main.dart +++ b/examples/layout/row_column/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart' show debugPaintSizeEnabled; void main() { diff --git a/examples/layout/sizing/lib/main.dart b/examples/layout/sizing/lib/main.dart index 8ee842de848..d0330112fca 100644 --- a/examples/layout/sizing/lib/main.dart +++ b/examples/layout/sizing/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart' show debugPaintSizeEnabled; void main() { diff --git a/examples/perf/concurrency/isolates/lib/main.dart b/examples/perf/concurrency/isolates/lib/main.dart index 16d0c4e66e8..8492804fb9c 100644 --- a/examples/perf/concurrency/isolates/lib/main.dart +++ b/examples/perf/concurrency/isolates/lib/main.dart @@ -5,7 +5,7 @@ import 'dart:convert'; import 'dart:isolate'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; void main() => runApp(const MyApp()); diff --git a/examples/perf/deferred_components/lib/box.dart b/examples/perf/deferred_components/lib/box.dart index f60f3d8a80f..7445ab808c6 100644 --- a/examples/perf/deferred_components/lib/box.dart +++ b/examples/perf/deferred_components/lib/box.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; /// A simple blue 30x30 box. class DeferredBox extends StatelessWidget { diff --git a/examples/perf/deferred_components/lib/use_deferred_box.dart b/examples/perf/deferred_components/lib/use_deferred_box.dart index 6d9d9703e91..082cf10d50b 100644 --- a/examples/perf/deferred_components/lib/use_deferred_box.dart +++ b/examples/perf/deferred_components/lib/use_deferred_box.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'box.dart' deferred as box; diff --git a/examples/platform_integration/compose_activities/lib/launch_compose_activity_example_1.dart b/examples/platform_integration/compose_activities/lib/launch_compose_activity_example_1.dart index 2ba78f95ccd..25417aa3498 100644 --- a/examples/platform_integration/compose_activities/lib/launch_compose_activity_example_1.dart +++ b/examples/platform_integration/compose_activities/lib/launch_compose_activity_example_1.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; // SECTION 1: START COPYING HERE diff --git a/examples/platform_integration/platform_channels/lib/platform_channels.dart b/examples/platform_integration/platform_channels/lib/platform_channels.dart index 1d6f2f9e3f9..48f8620cf3c 100644 --- a/examples/platform_integration/platform_channels/lib/platform_channels.dart +++ b/examples/platform_integration/platform_channels/lib/platform_channels.dart @@ -1,7 +1,7 @@ // #docregion import import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; // #enddocregion import diff --git a/examples/platform_integration/platform_views/lib/native_view_example_1.dart b/examples/platform_integration/platform_views/lib/native_view_example_1.dart index 9976c6fa73f..4b8b9fc1c82 100644 --- a/examples/platform_integration/platform_views/lib/native_view_example_1.dart +++ b/examples/platform_integration/platform_views/lib/native_view_example_1.dart @@ -1,7 +1,7 @@ // #docregion import import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; diff --git a/examples/platform_integration/platform_views/lib/native_view_example_2.dart b/examples/platform_integration/platform_views/lib/native_view_example_2.dart index 65a3b144a07..4d4a78d00fc 100644 --- a/examples/platform_integration/platform_views/lib/native_view_example_2.dart +++ b/examples/platform_integration/platform_views/lib/native_view_example_2.dart @@ -1,5 +1,5 @@ // #docregion import -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; // #enddocregion import diff --git a/examples/platform_integration/plugin_api_migration/lib/english_words.dart b/examples/platform_integration/plugin_api_migration/lib/english_words.dart index 1b95a386411..ef3a9a17b07 100644 --- a/examples/platform_integration/plugin_api_migration/lib/english_words.dart +++ b/examples/platform_integration/plugin_api_migration/lib/english_words.dart @@ -1,6 +1,6 @@ // #docregion english-words import 'package:english_words/english_words.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/examples/platform_integration/plugin_api_migration/lib/url_launcher.dart b/examples/platform_integration/plugin_api_migration/lib/url_launcher.dart index 0fd57dfe80c..a6865ead426 100644 --- a/examples/platform_integration/plugin_api_migration/lib/url_launcher.dart +++ b/examples/platform_integration/plugin_api_migration/lib/url_launcher.dart @@ -1,5 +1,5 @@ // #docregion url-launcher -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { diff --git a/examples/resources/architectural_overview/lib/main.dart b/examples/resources/architectural_overview/lib/main.dart index 1a26a0a2513..c119c1394a0 100644 --- a/examples/resources/architectural_overview/lib/main.dart +++ b/examples/resources/architectural_overview/lib/main.dart @@ -1,5 +1,5 @@ // #docregion main -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; void main() => runApp(const MyApp()); diff --git a/examples/resources/dart_swift_concurrency/lib/async_weather.dart b/examples/resources/dart_swift_concurrency/lib/async_weather.dart index 15f77f56360..fb07bcc1aca 100644 --- a/examples/resources/dart_swift_concurrency/lib/async_weather.dart +++ b/examples/resources/dart_swift_concurrency/lib/async_weather.dart @@ -1,4 +1,4 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() { runApp(const MyApp()); diff --git a/examples/state_mgmt/simple/lib/main.dart b/examples/state_mgmt/simple/lib/main.dart index d1f1d3091f3..7120029f373 100644 --- a/examples/state_mgmt/simple/lib/main.dart +++ b/examples/state_mgmt/simple/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; import 'src/passing_callbacks.dart' as callbacks; diff --git a/examples/state_mgmt/simple/lib/src/common.dart b/examples/state_mgmt/simple/lib/src/common.dart index 78f3036ff6a..510baa12eb2 100644 --- a/examples/state_mgmt/simple/lib/src/common.dart +++ b/examples/state_mgmt/simple/lib/src/common.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SomeWidget extends StatelessWidget { const SomeWidget(this.child, {super.key}); diff --git a/examples/state_mgmt/simple/lib/src/passing_callbacks.dart b/examples/state_mgmt/simple/lib/src/passing_callbacks.dart index e8892258897..4338eebac37 100644 --- a/examples/state_mgmt/simple/lib/src/passing_callbacks.dart +++ b/examples/state_mgmt/simple/lib/src/passing_callbacks.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'common.dart'; diff --git a/examples/state_mgmt/simple/lib/src/performance.dart b/examples/state_mgmt/simple/lib/src/performance.dart index c0a47a3e3f1..23842d31c71 100644 --- a/examples/state_mgmt/simple/lib/src/performance.dart +++ b/examples/state_mgmt/simple/lib/src/performance.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; import 'provider.dart'; diff --git a/examples/state_mgmt/simple/lib/src/provider.dart b/examples/state_mgmt/simple/lib/src/provider.dart index 33a54d71a8e..960f01ad838 100644 --- a/examples/state_mgmt/simple/lib/src/provider.dart +++ b/examples/state_mgmt/simple/lib/src/provider.dart @@ -1,6 +1,6 @@ import 'dart:collection'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; import 'common.dart'; diff --git a/examples/state_mgmt/simple/lib/src/set_state.dart b/examples/state_mgmt/simple/lib/src/set_state.dart index 893b1481fdc..f907ea67a9d 100644 --- a/examples/state_mgmt/simple/lib/src/set_state.dart +++ b/examples/state_mgmt/simple/lib/src/set_state.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; /// This is here so we don't need to show Scaffold and AppBar in the snippet. /// We need Scaffold+AppBar so that the smoke test can get out of this page. diff --git a/examples/state_mgmt/simple/test/widget_test.dart b/examples/state_mgmt/simple/test/widget_test.dart index 32ea5c6d468..24fe11092a1 100644 --- a/examples/state_mgmt/simple/test/widget_test.dart +++ b/examples/state_mgmt/simple/test/widget_test.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:provider/provider.dart'; import 'package:state_mgmt/main.dart'; diff --git a/examples/testing/code_debugging/lib/debug_flags.dart b/examples/testing/code_debugging/lib/debug_flags.dart index f3680f30991..d81fbb6d256 100644 --- a/examples/testing/code_debugging/lib/debug_flags.dart +++ b/examples/testing/code_debugging/lib/debug_flags.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion debug-paint-size-enabled // Add import to the Flutter rendering library. import 'package:flutter/rendering.dart'; diff --git a/examples/testing/code_debugging/lib/dump_app.dart b/examples/testing/code_debugging/lib/dump_app.dart index a26facde398..045e0997bf8 100644 --- a/examples/testing/code_debugging/lib/dump_app.dart +++ b/examples/testing/code_debugging/lib/dump_app.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); diff --git a/examples/testing/code_debugging/lib/dump_focus_tree.dart b/examples/testing/code_debugging/lib/dump_focus_tree.dart index c94735bed9f..db925cc90b7 100644 --- a/examples/testing/code_debugging/lib/dump_focus_tree.dart +++ b/examples/testing/code_debugging/lib/dump_focus_tree.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); diff --git a/examples/testing/code_debugging/lib/dump_layer_tree.dart b/examples/testing/code_debugging/lib/dump_layer_tree.dart index 9de44066322..1d8c9863ed9 100644 --- a/examples/testing/code_debugging/lib/dump_layer_tree.dart +++ b/examples/testing/code_debugging/lib/dump_layer_tree.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); diff --git a/examples/testing/code_debugging/lib/dump_render_tree.dart b/examples/testing/code_debugging/lib/dump_render_tree.dart index 9f35e4dcbd2..881b829d6fa 100644 --- a/examples/testing/code_debugging/lib/dump_render_tree.dart +++ b/examples/testing/code_debugging/lib/dump_render_tree.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); diff --git a/examples/testing/code_debugging/lib/dump_semantic_tree.dart b/examples/testing/code_debugging/lib/dump_semantic_tree.dart index 15e2826547c..8e4046171c7 100644 --- a/examples/testing/code_debugging/lib/dump_semantic_tree.dart +++ b/examples/testing/code_debugging/lib/dump_semantic_tree.dart @@ -1,5 +1,5 @@ import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart'; void main() { diff --git a/examples/testing/code_debugging/lib/performance_overlay.dart b/examples/testing/code_debugging/lib/performance_overlay.dart index f952e5636bc..0df1e2fcb61 100644 --- a/examples/testing/code_debugging/lib/performance_overlay.dart +++ b/examples/testing/code_debugging/lib/performance_overlay.dart @@ -1,5 +1,5 @@ // #docregion show-overlay -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyApp extends StatelessWidget { const MyApp({super.key}); diff --git a/examples/testing/common_errors/lib/renderflex_overflow.dart b/examples/testing/common_errors/lib/renderflex_overflow.dart index e919222b261..d3bd9884046 100644 --- a/examples/testing/common_errors/lib/renderflex_overflow.dart +++ b/examples/testing/common_errors/lib/renderflex_overflow.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ProblemWidget extends StatelessWidget { const ProblemWidget({super.key}); diff --git a/examples/testing/common_errors/lib/set_state_build.dart b/examples/testing/common_errors/lib/set_state_build.dart index 28a798bf851..586548eb90a 100644 --- a/examples/testing/common_errors/lib/set_state_build.dart +++ b/examples/testing/common_errors/lib/set_state_build.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ProblemWidget extends StatelessWidget { const ProblemWidget({super.key}); diff --git a/examples/testing/common_errors/lib/unbounded_height.dart b/examples/testing/common_errors/lib/unbounded_height.dart index d94e5564354..603591ce8e1 100644 --- a/examples/testing/common_errors/lib/unbounded_height.dart +++ b/examples/testing/common_errors/lib/unbounded_height.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ProblemWidget extends StatelessWidget { const ProblemWidget({super.key}); diff --git a/examples/testing/common_errors/lib/unbounded_width.dart b/examples/testing/common_errors/lib/unbounded_width.dart index 8ea654d3d0f..761478ce93b 100644 --- a/examples/testing/common_errors/lib/unbounded_width.dart +++ b/examples/testing/common_errors/lib/unbounded_width.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ProblemWidget extends StatelessWidget { const ProblemWidget({super.key}); diff --git a/examples/testing/errors/lib/error_handler.dart b/examples/testing/errors/lib/error_handler.dart index d693b96bfe5..519216f9a6e 100644 --- a/examples/testing/errors/lib/error_handler.dart +++ b/examples/testing/errors/lib/error_handler.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ErrorHandler { Future initialize() async { diff --git a/examples/testing/errors/lib/excerpts.dart b/examples/testing/errors/lib/excerpts.dart index 8d34164f4ca..2ac8bed32e1 100644 --- a/examples/testing/errors/lib/excerpts.dart +++ b/examples/testing/errors/lib/excerpts.dart @@ -7,7 +7,7 @@ import 'package:flutter/services.dart'; // #docregion catch-error import 'dart:ui'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { MyBackend myBackend = MyBackend(); diff --git a/examples/testing/errors/lib/main.dart b/examples/testing/errors/lib/main.dart index 18128dea2a6..a94174e8feb 100644 --- a/examples/testing/errors/lib/main.dart +++ b/examples/testing/errors/lib/main.dart @@ -5,7 +5,7 @@ import 'error_handler.dart'; // #docregion all-errors import 'dart:ui'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; Future main() async { await myErrorsHandler.initialize(); diff --git a/examples/testing/errors/lib/my_app.dart b/examples/testing/errors/lib/my_app.dart index 0d699927d03..5f461b239a8 100644 --- a/examples/testing/errors/lib/my_app.dart +++ b/examples/testing/errors/lib/my_app.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyApp extends StatelessWidget { const MyApp({super.key}); diff --git a/examples/testing/errors/lib/quit_immediate.dart b/examples/testing/errors/lib/quit_immediate.dart index e3da9751b5f..a1f09a37be9 100644 --- a/examples/testing/errors/lib/quit_immediate.dart +++ b/examples/testing/errors/lib/quit_immediate.dart @@ -6,7 +6,7 @@ import 'my_app.dart'; import 'dart:io'; import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { FlutterError.onError = (details) { diff --git a/examples/testing/integration_tests/how_to/integration_test/counter_test.dart b/examples/testing/integration_tests/how_to/integration_test/counter_test.dart index 34eddb9685b..fe4a05ba849 100644 --- a/examples/testing/integration_tests/how_to/integration_test/counter_test.dart +++ b/examples/testing/integration_tests/how_to/integration_test/counter_test.dart @@ -1,5 +1,5 @@ // #docregion initial -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:how_to/main.dart'; import 'package:integration_test/integration_test.dart'; diff --git a/examples/testing/integration_tests/how_to/lib/main.dart b/examples/testing/integration_tests/how_to/lib/main.dart index ba01657cb8c..8c2c6e4ae28 100644 --- a/examples/testing/integration_tests/how_to/lib/main.dart +++ b/examples/testing/integration_tests/how_to/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/testing/native_debugging/lib/main.dart b/examples/testing/native_debugging/lib/main.dart index e7ffd65a57a..4861053af30 100644 --- a/examples/testing/native_debugging/lib/main.dart +++ b/examples/testing/native_debugging/lib/main.dart @@ -2,7 +2,7 @@ // 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'; +import 'package:material_ui/material.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { diff --git a/examples/tools/lib/hot-reload/after.dart b/examples/tools/lib/hot-reload/after.dart index add9b060532..d146fb5c658 100644 --- a/examples/tools/lib/hot-reload/after.dart +++ b/examples/tools/lib/hot-reload/after.dart @@ -1,6 +1,6 @@ // ignore_for_file: specify_nonobvious_property_types, avoid_print, prefer_const_declarations -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion main import 'package:flutter/widgets.dart'; diff --git a/examples/tools/lib/hot-reload/before.dart b/examples/tools/lib/hot-reload/before.dart index a0ef249bde5..171aff487f9 100644 --- a/examples/tools/lib/hot-reload/before.dart +++ b/examples/tools/lib/hot-reload/before.dart @@ -1,7 +1,7 @@ // ignore_for_file: specify_nonobvious_property_types, avoid_print, prefer_const_declarations, prefer_const_constructors // #docregion build -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(MyApp()); diff --git a/examples/ui/actions_and_shortcuts/lib/samples.dart b/examples/ui/actions_and_shortcuts/lib/samples.dart index f52e32d796a..2844a00e2fd 100644 --- a/examples/ui/actions_and_shortcuts/lib/samples.dart +++ b/examples/ui/actions_and_shortcuts/lib/samples.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; class ShortcutsExample extends StatelessWidget { diff --git a/examples/ui/adaptive_app_demos/lib/app_model.dart b/examples/ui/adaptive_app_demos/lib/app_model.dart index 4f057f263c5..2b64983eabc 100644 --- a/examples/ui/adaptive_app_demos/lib/app_model.dart +++ b/examples/ui/adaptive_app_demos/lib/app_model.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'global/device_type.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/global/device_size.dart b/examples/ui/adaptive_app_demos/lib/global/device_size.dart index 180b5afbd87..b7403b3e904 100644 --- a/examples/ui/adaptive_app_demos/lib/global/device_size.dart +++ b/examples/ui/adaptive_app_demos/lib/global/device_size.dart @@ -1,5 +1,5 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; enum ScreenType { handset, tablet, desktop, watch } diff --git a/examples/ui/adaptive_app_demos/lib/global/device_type.dart b/examples/ui/adaptive_app_demos/lib/global/device_type.dart index 9d50421ded3..67c24b0710d 100644 --- a/examples/ui/adaptive_app_demos/lib/global/device_type.dart +++ b/examples/ui/adaptive_app_demos/lib/global/device_type.dart @@ -1,7 +1,7 @@ import 'dart:io' show Platform; import 'package:flutter/foundation.dart' show kIsWeb; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/widgets.dart'; import 'package:universal_platform/universal_platform.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/main.dart b/examples/ui/adaptive_app_demos/lib/main.dart index b499f76b60d..41ba32648bb 100644 --- a/examples/ui/adaptive_app_demos/lib/main.dart +++ b/examples/ui/adaptive_app_demos/lib/main.dart @@ -1,7 +1,7 @@ // ignore_for_file: prefer_const_constructors import 'package:bitsdojo_window/bitsdojo_window.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; import 'app_model.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/main_app_scaffold.dart b/examples/ui/adaptive_app_demos/lib/main_app_scaffold.dart index d92df50ae74..f6d16d18e08 100644 --- a/examples/ui/adaptive_app_demos/lib/main_app_scaffold.dart +++ b/examples/ui/adaptive_app_demos/lib/main_app_scaffold.dart @@ -1,5 +1,5 @@ import 'package:bitsdojo_window/bitsdojo_window.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/pages/adaptive_data_table_page.dart b/examples/ui/adaptive_app_demos/lib/pages/adaptive_data_table_page.dart index 0dfe8f64a44..bbf9904626f 100644 --- a/examples/ui/adaptive_app_demos/lib/pages/adaptive_data_table_page.dart +++ b/examples/ui/adaptive_app_demos/lib/pages/adaptive_data_table_page.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../global/device_type.dart'; import '../widgets/scroll_view_with_scrollbars.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/pages/adaptive_grid_page.dart b/examples/ui/adaptive_app_demos/lib/pages/adaptive_grid_page.dart index 11c04219896..822433ab07a 100644 --- a/examples/ui/adaptive_app_demos/lib/pages/adaptive_grid_page.dart +++ b/examples/ui/adaptive_app_demos/lib/pages/adaptive_grid_page.dart @@ -1,6 +1,6 @@ import 'dart:math'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../global/device_type.dart'; import '../global/targeted_actions.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/pages/adaptive_reflow_page.dart b/examples/ui/adaptive_app_demos/lib/pages/adaptive_reflow_page.dart index 85250fb8f02..ca43268ce16 100644 --- a/examples/ui/adaptive_app_demos/lib/pages/adaptive_reflow_page.dart +++ b/examples/ui/adaptive_app_demos/lib/pages/adaptive_reflow_page.dart @@ -7,7 +7,7 @@ library; import 'package:flextras/flextras.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../global/device_type.dart'; import '../widgets/scroll_view_with_scrollbars.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/pages/focus_examples_page.dart b/examples/ui/adaptive_app_demos/lib/pages/focus_examples_page.dart index 3682c2fb028..0d271c5843d 100644 --- a/examples/ui/adaptive_app_demos/lib/pages/focus_examples_page.dart +++ b/examples/ui/adaptive_app_demos/lib/pages/focus_examples_page.dart @@ -1,5 +1,5 @@ import 'package:flextras/flextras.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; import '../global/device_type.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/pages/login_page.dart b/examples/ui/adaptive_app_demos/lib/pages/login_page.dart index 37890c8c2a4..e8724ea10c3 100644 --- a/examples/ui/adaptive_app_demos/lib/pages/login_page.dart +++ b/examples/ui/adaptive_app_demos/lib/pages/login_page.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; import '../app_model.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/widgets/app_title_bar.dart b/examples/ui/adaptive_app_demos/lib/widgets/app_title_bar.dart index 88d9b3456e2..c7a44e3c26f 100644 --- a/examples/ui/adaptive_app_demos/lib/widgets/app_title_bar.dart +++ b/examples/ui/adaptive_app_demos/lib/widgets/app_title_bar.dart @@ -1,5 +1,5 @@ import 'package:bitsdojo_window/bitsdojo_window.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; import '../app_model.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/widgets/buttons.dart b/examples/ui/adaptive_app_demos/lib/widgets/buttons.dart index 3fecbd9a90d..25d073afab4 100644 --- a/examples/ui/adaptive_app_demos/lib/widgets/buttons.dart +++ b/examples/ui/adaptive_app_demos/lib/widgets/buttons.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../global/device_type.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/widgets/extra_widget_excerpts.dart b/examples/ui/adaptive_app_demos/lib/widgets/extra_widget_excerpts.dart index 45dbfafa640..3a6d34525c4 100644 --- a/examples/ui/adaptive_app_demos/lib/widgets/extra_widget_excerpts.dart +++ b/examples/ui/adaptive_app_demos/lib/widgets/extra_widget_excerpts.dart @@ -1,7 +1,7 @@ import 'dart:io' show Platform; import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; Widget layoutBuilderWidget() { diff --git a/examples/ui/adaptive_app_demos/lib/widgets/ok_cancel_dialog.dart b/examples/ui/adaptive_app_demos/lib/widgets/ok_cancel_dialog.dart index 5d2a5f77d40..e42ba0b0ef3 100644 --- a/examples/ui/adaptive_app_demos/lib/widgets/ok_cancel_dialog.dart +++ b/examples/ui/adaptive_app_demos/lib/widgets/ok_cancel_dialog.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import '../global/device_type.dart'; diff --git a/examples/ui/adaptive_app_demos/lib/widgets/scroll_view_with_scrollbars.dart b/examples/ui/adaptive_app_demos/lib/widgets/scroll_view_with_scrollbars.dart index 01936ce4bf8..76cac7095dd 100644 --- a/examples/ui/adaptive_app_demos/lib/widgets/scroll_view_with_scrollbars.dart +++ b/examples/ui/adaptive_app_demos/lib/widgets/scroll_view_with_scrollbars.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:provider/provider.dart'; import '../app_model.dart'; diff --git a/examples/ui/assets_and_images/lib/main.dart b/examples/ui/assets_and_images/lib/main.dart index 8489190f8b5..2a75dcc597d 100644 --- a/examples/ui/assets_and_images/lib/main.dart +++ b/examples/ui/assets_and_images/lib/main.dart @@ -1,6 +1,6 @@ import 'dart:async' show Future; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion root-bundle-load import 'package:flutter/services.dart' show rootBundle; diff --git a/examples/ui/focus/lib/custom_control_example.dart b/examples/ui/focus/lib/custom_control_example.dart index 6697515a2c3..67620ab37c1 100644 --- a/examples/ui/focus/lib/custom_control_example.dart +++ b/examples/ui/focus/lib/custom_control_example.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/examples/ui/focus/lib/samples.dart b/examples/ui/focus/lib/samples.dart index 6801e522cd2..16ca0b4bf54 100644 --- a/examples/ui/focus/lib/samples.dart +++ b/examples/ui/focus/lib/samples.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; class AbsorbKeysExample extends StatelessWidget { diff --git a/examples/ui/interactive/lib/mixed.dart b/examples/ui/interactive/lib/mixed.dart index 5f2ebde34c2..1a60f226682 100644 --- a/examples/ui/interactive/lib/mixed.dart +++ b/examples/ui/interactive/lib/mixed.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; //---------------------------- ParentWidget ---------------------------- diff --git a/examples/ui/interactive/lib/parent_managed.dart b/examples/ui/interactive/lib/parent_managed.dart index ef13b51d7ff..bbe439514ed 100644 --- a/examples/ui/interactive/lib/parent_managed.dart +++ b/examples/ui/interactive/lib/parent_managed.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // ParentWidget manages the state for TapboxB. diff --git a/examples/ui/interactive/lib/self_managed.dart b/examples/ui/interactive/lib/self_managed.dart index 7d950471c14..d8ac65e8d01 100644 --- a/examples/ui/interactive/lib/self_managed.dart +++ b/examples/ui/interactive/lib/self_managed.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // TapboxA manages its own state. diff --git a/examples/ui/navigation/lib/navigator_basic.dart b/examples/ui/navigation/lib/navigator_basic.dart index a7406168585..b36c4a66c5a 100644 --- a/examples/ui/navigation/lib/navigator_basic.dart +++ b/examples/ui/navigation/lib/navigator_basic.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(title: 'Navigation basics', home: FirstScreen())); diff --git a/examples/ui/navigation/lib/navigator_named_routes.dart b/examples/ui/navigation/lib/navigator_named_routes.dart index 032130f9e8e..dcd563a7c4f 100644 --- a/examples/ui/navigation/lib/navigator_named_routes.dart +++ b/examples/ui/navigation/lib/navigator_named_routes.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( diff --git a/examples/ui/navigation/lib/navigator_router.dart b/examples/ui/navigation/lib/navigator_router.dart index ff3f579fc85..624cf59036d 100644 --- a/examples/ui/navigation/lib/navigator_router.dart +++ b/examples/ui/navigation/lib/navigator_router.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:go_router/go_router.dart'; void main() { diff --git a/examples/visual_debugging/lib/highlight_repaints.dart b/examples/visual_debugging/lib/highlight_repaints.dart index 29bfd3bdf5b..cf9615e4e7d 100644 --- a/examples/visual_debugging/lib/highlight_repaints.dart +++ b/examples/visual_debugging/lib/highlight_repaints.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion toggle import 'package:flutter/rendering.dart'; diff --git a/examples/visual_debugging/lib/oversized_images.dart b/examples/visual_debugging/lib/oversized_images.dart index 07cc96edccc..0114ebe0951 100644 --- a/examples/visual_debugging/lib/oversized_images.dart +++ b/examples/visual_debugging/lib/oversized_images.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // #docregion toggle void showOversizedImages() { diff --git a/sites/docs/lib/src/pages/widget_catalog.dart b/sites/docs/lib/src/pages/widget_catalog.dart index 316efd73498..5448929df7e 100644 --- a/sites/docs/lib/src/pages/widget_catalog.dart +++ b/sites/docs/lib/src/pages/widget_catalog.dart @@ -88,22 +88,11 @@ List get widgetCatalogPages { ), ], - if (isMaterialCatalog) - const p([ - .text('Find more widgets in the '), - a(href: '/ui/widgets/material2', [ - .text('Material 2 widget catalog'), - ]), - .text(' and other categories of the '), - a(href: '/ui/widgets', [.text('widget catalog')]), - .text('.'), - ]) - else - const p([ - .text('Find more widgets in the '), - a(href: '/ui/widgets', [.text('widget catalog')]), - .text('.'), - ]), + const p([ + .text('Find more widgets in the '), + a(href: '/ui/widgets', [.text('widget catalog')]), + .text('.'), + ]), ]); }, ), @@ -114,46 +103,18 @@ const _additionalCatalogContent = { 'Material components': ''' Flutter provides a variety of visual, behavioral, and motion-rich widgets that implement the [Material 3][] design specification. -Material 3 is the default design language of Flutter, -enabling you to design and build beautiful, usable apps +Material enables you to design and build beautiful, usable apps that can adapt to any platform. -:::secondary -The transition to Material 3 as the default was -completed in Flutter 3.16. - -To learn more about this transition, how to complete it for your own widgets, -or how to temporarily opt-out, check out -the [Migrate to Material 3][] migration guide. -::: - -To catch these and other widgets in action, -check out the [Material 3 demo][] web app. - -[Material 3]: https://m3.material.io/get-started -[Migrate to Material 3]: /release/breaking-changes/material-3-migration -[Material 3 demo]: https://github.com/flutter/samples/tree/main/material_3_demo/ -''', - 'Material 2 components': ''' -Flutter provides a variety of widgets -that implement the [Material 2][] design guidelines, -enabling you to create intuitive and beautiful apps. - -:::version-note -[Material 3][], the latest version of Material Design, is -Flutter's default design language as of Flutter 3.16. - -Material 2 will eventually be deprecated. -To learn more about this transition, check out -the [Migrate to Material 3][] migration guide. - -Also check out the [Material 3 widget catalog][]. -::: +Previously, Material was part of the core Flutter SDK, but it has been +decoupled from the framework. You can access Material from the +[`material_ui`][] package on pub.dev. For more information, visit +the [decoupling migration guide][]. +[decoupling migration guide]: /release/breaking-changes/material-ui-and-cupertino-ui +[`material_ui`]: http://pub.dev/packages/material_ui [Material 3]: https://m3.material.io/ -[Material 2]: https://m2.material.io/design -[Migrate to Material 3]: /release/breaking-changes/material-3-migration -[Material 3 widget catalog]: /ui/widgets/material +[Material widget catalog]: /ui/widgets/material ''', }; diff --git a/sites/docs/src/content/add-to-app/android/add-flutter-view.md b/sites/docs/src/content/add-to-app/android/add-flutter-view.md index a66bbc18752..67fa0edf8be 100644 --- a/sites/docs/src/content/add-to-app/android/add-flutter-view.md +++ b/sites/docs/src/content/add-to-app/android/add-flutter-view.md @@ -126,7 +126,7 @@ When in doubt, you can use an `UnconstrainedBox` to test the usability of a widget for a content-sized view, as shown in the following example: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(MyApp()); diff --git a/sites/docs/src/content/add-to-app/ios/add-flutter-screen.md b/sites/docs/src/content/add-to-app/ios/add-flutter-screen.md index 8a2a0c04efe..577bf6f69e3 100644 --- a/sites/docs/src/content/add-to-app/ios/add-flutter-screen.md +++ b/sites/docs/src/content/add-to-app/ios/add-flutter-screen.md @@ -1109,7 +1109,7 @@ When in doubt, you can use an `UnconstrainedBox` to test the usability of a widget for a content-sized view, as in the following example: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(MyApp()); diff --git a/sites/docs/src/content/ai/ai-toolkit/user-experience.md b/sites/docs/src/content/ai/ai-toolkit/user-experience.md index 42dc728ffcf..cf5d5d7a2cd 100644 --- a/sites/docs/src/content/ai/ai-toolkit/user-experience.md +++ b/sites/docs/src/content/ai/ai-toolkit/user-experience.md @@ -187,9 +187,8 @@ it doesn't automatically adopt the associated themes. Instead, that's set by the `style` property of the `LlmChatView` as described in the [Custom styling][] documentation. -[Cupertino app]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html -[`CupertinoTextField`]: - {{site.api}}/flutter/cupertino/CupertinoTextField-class.html +[Cupertino app]: {{site.cupertino_ui}}/CupertinoApp-class.html +[`CupertinoTextField`]: {{site.cupertino_ui}}/CupertinoTextField-class.html [Custom styling]: /ai/ai-toolkit/feature-integration#custom-styling -[Material app]: {{site.api}}/flutter/material/MaterialApp-class.html -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html +[Material app]: {{site.material_ui}}/MaterialApp-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html diff --git a/sites/docs/src/content/ai/genui/get-started.md b/sites/docs/src/content/ai/genui/get-started.md index f62adf20fae..a75505c1ea9 100644 --- a/sites/docs/src/content/ai/genui/get-started.md +++ b/sites/docs/src/content/ai/genui/get-started.md @@ -77,7 +77,7 @@ To connect to Gemini using the Vertex AI for Firebase SDK, follow these instruct bindings are initialized and then initialize Firebase: ```dart - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:firebase_core/firebase_core.dart'; import 'firebase_options.dart'; @@ -183,7 +183,7 @@ Follow these instructions: to the agent-generated content. ```dart - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:genui/genui.dart'; import 'package:genui_a2a/genui_a2a.dart'; import 'package:logging/logging.dart'; @@ -620,7 +620,7 @@ To add your own widgets, use the following instructions. ```dart import 'package:json_schema_builder/json_schema_builder.dart'; - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:genui/genui.dart'; final _schema = S.object( diff --git a/sites/docs/src/content/app-architecture/case-study/ui-layer.md b/sites/docs/src/content/app-architecture/case-study/ui-layer.md index f461db78e4d..435c4f3fac9 100644 --- a/sites/docs/src/content/app-architecture/case-study/ui-layer.md +++ b/sites/docs/src/content/app-architecture/case-study/ui-layer.md @@ -644,7 +644,7 @@ the Command pattern. [Read about it on GitHub][]. [`Listenable`]: {{site.api}}/flutter/foundation/Listenable-class.html [`ListenableBuilder`]: {{site.api}}/flutter/widgets/ListenableBuilder-class.html [`notifyListeners`]: {{site.api}}/flutter/foundation/ChangeNotifier/notifyListeners.html -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html [`Dismissible`]: {{site.api}}/flutter/widgets/Dismissible-class.html [`utils` directory]: https://github.com/flutter/samples/blob/main/compass_app/app/lib/utils/command.dart [streams]: {{site.api}}/flutter/dart-async/Stream-class.html diff --git a/sites/docs/src/content/cookbook/animation/page-route-animation.md b/sites/docs/src/content/cookbook/animation/page-route-animation.md index 817926dc671..9bd68a7e94f 100644 --- a/sites/docs/src/content/cookbook/animation/page-route-animation.md +++ b/sites/docs/src/content/cookbook/animation/page-route-animation.md @@ -41,7 +41,7 @@ a second route titled "Page 2". ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: Page1())); diff --git a/sites/docs/src/content/cookbook/animation/physics-simulation.md b/sites/docs/src/content/cookbook/animation/physics-simulation.md index 7b4dee6fd3a..7c2225d9030 100644 --- a/sites/docs/src/content/cookbook/animation/physics-simulation.md +++ b/sites/docs/src/content/cookbook/animation/physics-simulation.md @@ -26,7 +26,7 @@ Start with a stateful widget called `DraggableCard`: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: PhysicsCardDragDemo())); diff --git a/sites/docs/src/content/cookbook/design/cupertino-sheets.md b/sites/docs/src/content/cookbook/design/cupertino-sheets.md index 95cc35c831f..5b6b169eb10 100644 --- a/sites/docs/src/content/cookbook/design/cupertino-sheets.md +++ b/sites/docs/src/content/cookbook/design/cupertino-sheets.md @@ -140,4 +140,4 @@ class CupertinoSheetPage extends StatelessWidget { } ``` -[`showCupertinoSheet`]: {{site.api}}/flutter/cupertino/showCupertinoSheet.html +[`showCupertinoSheet`]: {{site.cupertino_ui}}/showCupertinoSheet.html diff --git a/sites/docs/src/content/cookbook/design/drawer.md b/sites/docs/src/content/cookbook/design/drawer.md index aa04f2d8b37..be5299a8230 100644 --- a/sites/docs/src/content/cookbook/design/drawer.md +++ b/sites/docs/src/content/cookbook/design/drawer.md @@ -283,12 +283,12 @@ class _MyHomePageState extends State { -[`Drawer`]: {{site.api}}/flutter/material/Drawer-class.html -[`DrawerHeader`]: {{site.api}}/flutter/material/DrawerHeader-class.html +[`Drawer`]: {{site.material_ui}}/Drawer-class.html +[`DrawerHeader`]: {{site.material_ui}}/DrawerHeader-class.html [list recipes]: /cookbook/lists -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html -[`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html -[material library]: {{site.api}}/flutter/material/material-library.html -[`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html +[`ListView`]: {{site.material_ui}}/ListView-class.html +[material library]: {{site.pub}}/packages/material-library.html +[`Navigator`]: {{site.material_ui}}/Navigator-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html [Navigation]: /cookbook/navigation diff --git a/sites/docs/src/content/cookbook/design/fonts.md b/sites/docs/src/content/cookbook/design/fonts.md index 10553bc9f33..7a57258ccf3 100644 --- a/sites/docs/src/content/cookbook/design/fonts.md +++ b/sites/docs/src/content/cookbook/design/fonts.md @@ -362,7 +362,7 @@ Download the Raleway and RobotoMono font files from [Google Fonts][]. ```dart - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/sites/docs/src/content/cookbook/design/package-fonts.md b/sites/docs/src/content/cookbook/design/package-fonts.md index b79173ae25f..baeea84f36a 100644 --- a/sites/docs/src/content/cookbook/design/package-fonts.md +++ b/sites/docs/src/content/cookbook/design/package-fonts.md @@ -125,7 +125,7 @@ flutter: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/sites/docs/src/content/cookbook/design/snackbars.md b/sites/docs/src/content/cookbook/design/snackbars.md index 8c8ce5c0943..12a15db95b0 100644 --- a/sites/docs/src/content/cookbook/design/snackbars.md +++ b/sites/docs/src/content/cookbook/design/snackbars.md @@ -151,6 +151,6 @@ class SnackBarPage extends StatelessWidget { [Gestures]: /cookbook/gestures -[material library]: {{site.api}}/flutter/material/material-library.html -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html -[`SnackBar`]: {{site.api}}/flutter/material/SnackBar-class.html +[material library]: {{site.pub}}/package/material-library.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html +[`SnackBar`]: {{site.material_ui}}/SnackBar-class.html diff --git a/sites/docs/src/content/cookbook/design/tabs.md b/sites/docs/src/content/cookbook/design/tabs.md index 095ef836a6e..e56c55687f1 100644 --- a/sites/docs/src/content/cookbook/design/tabs.md +++ b/sites/docs/src/content/cookbook/design/tabs.md @@ -135,10 +135,10 @@ class TabBarDemo extends StatelessWidget { -[`AppBar`]: {{site.api}}/flutter/material/AppBar-class.html -[`DefaultTabController`]: {{site.api}}/flutter/material/DefaultTabController-class.html -[material library]: {{site.api}}/flutter/material/material-library.html -[`Tab`]: {{site.api}}/flutter/material/Tab-class.html -[`TabBar`]: {{site.api}}/flutter/material/TabBar-class.html -[`TabBarView`]: {{site.api}}/flutter/material/TabBarView-class.html -[`TabController`]: {{site.api}}/flutter/material/TabController-class.html +[`AppBar`]: {{site.material_ui}}/AppBar-class.html +[`DefaultTabController`]: {{site.material_ui}}/DefaultTabController-class.html +[material library]: {{site.pub}}/packages/material-library.html +[`Tab`]: {{site.material_ui}}/Tab-class.html +[`TabBar`]: {{site.material_ui}}/TabBar-class.html +[`TabBarView`]: {{site.material_ui}}/TabBarView-class.html +[`TabController`]: {{site.material_ui}}/TabController-class.html diff --git a/sites/docs/src/content/cookbook/design/themes.md b/sites/docs/src/content/cookbook/design/themes.md index 5850bbdfb31..33c23751f70 100644 --- a/sites/docs/src/content/cookbook/design/themes.md +++ b/sites/docs/src/content/cookbook/design/themes.md @@ -77,8 +77,8 @@ Most instances of `ThemeData` set values for the following two properties. These 1. [`colorScheme`][] defines the colors. 1. [`textTheme`][] defines text styling. -[`colorScheme`]: {{site.api}}/flutter/material/ThemeData/colorScheme.html -[`textTheme`]: {{site.api}}/flutter/material/ThemeData/textTheme.html +[`colorScheme`]: {{site.material_ui}}/ThemeData/colorScheme.html +[`textTheme`]: {{site.material_ui}}/ThemeData/textTheme.html To learn what colors, fonts, and other properties, you can define, check out the [`ThemeData`][] documentation. @@ -266,5 +266,5 @@ class MyHomePage extends StatelessWidget { Themes Demo -[`copyWith()`]: {{site.api}}/flutter/material/ThemeData/copyWith.html -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html +[`copyWith()`]: {{site.material_ui}}/ThemeData/copyWith.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html diff --git a/sites/docs/src/content/cookbook/effects/shimmer-loading.md b/sites/docs/src/content/cookbook/effects/shimmer-loading.md index 6cc23f5d2d5..9c39e285e1c 100644 --- a/sites/docs/src/content/cookbook/effects/shimmer-loading.md +++ b/sites/docs/src/content/cookbook/effects/shimmer-loading.md @@ -550,7 +550,7 @@ on and off as the content loads. ```dartpad title="Flutter shimmer loading hands-on example in DartPad" run="true" -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( diff --git a/sites/docs/src/content/cookbook/forms/text-field-changes.md b/sites/docs/src/content/cookbook/forms/text-field-changes.md index b50e85574c5..087b7f179e8 100644 --- a/sites/docs/src/content/cookbook/forms/text-field-changes.md +++ b/sites/docs/src/content/cookbook/forms/text-field-changes.md @@ -231,9 +231,9 @@ class _MyCustomFormState extends State { ``` [`addListener()`]: {{site.api}}/flutter/foundation/ChangeNotifier/addListener.html -[`controller`]: {{site.api}}/flutter/material/TextField/controller.html -[`onChanged()`]: {{site.api}}/flutter/material/TextField/onChanged.html -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html +[`controller`]: {{site.material_ui}}/TextField/controller.html +[`onChanged()`]: {{site.material_ui}}/TextField/onChanged.html +[`TextField`]: {{site.material_ui}}/TextField-class.html [`TextEditingController`]: {{site.api}}/flutter/widgets/TextEditingController-class.html -[`TextFormField`]: {{site.api}}/flutter/material/TextFormField-class.html +[`TextFormField`]: {{site.material_ui}}/TextFormField-class.html [characters]: {{site.pub}}/packages/characters diff --git a/sites/docs/src/content/cookbook/forms/text-input.md b/sites/docs/src/content/cookbook/forms/text-input.md index 77056ee514a..a48115b13fe 100644 --- a/sites/docs/src/content/cookbook/forms/text-input.md +++ b/sites/docs/src/content/cookbook/forms/text-input.md @@ -117,10 +117,10 @@ For more information on input validation, see the [Building a form with validation]: /cookbook/forms/validation/ -[`decoration`]: {{site.api}}/flutter/material/TextField/decoration.html +[`decoration`]: {{site.material_ui}}/TextField/decoration.html [`Form`]: {{site.api}}/flutter/widgets/Form-class.html [`FormField`]: {{site.api}}/flutter/widgets/FormField-class.html [Handle changes to a text field]: /cookbook/forms/text-field-changes/ -[`InputDecoration`]: {{site.api}}/flutter/material/InputDecoration-class.html -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html -[`TextFormField`]: {{site.api}}/flutter/material/TextFormField-class.html +[`InputDecoration`]: {{site.material_ui}}/InputDecoration-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html +[`TextFormField`]: {{site.material_ui}}/TextFormField-class.html diff --git a/sites/docs/src/content/cookbook/forms/validation.md b/sites/docs/src/content/cookbook/forms/validation.md index 78c2c87b441..22f11ed419d 100644 --- a/sites/docs/src/content/cookbook/forms/validation.md +++ b/sites/docs/src/content/cookbook/forms/validation.md @@ -42,7 +42,7 @@ As it is resource expensive, you wouldn't want to generate a new ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // Define a custom Form widget. class MyCustomForm extends StatefulWidget { @@ -255,4 +255,4 @@ To learn how to retrieve these values, check out the [`Form.of()`]: {{site.api}}/flutter/widgets/Form/of.html [`FormState`]: {{site.api}}/flutter/widgets/FormState-class.html [`GlobalKey`]: {{site.api}}/flutter/widgets/GlobalKey-class.html -[`TextFormField`]: {{site.api}}/flutter/material/TextFormField-class.html +[`TextFormField`]: {{site.material_ui}}/TextFormField-class.html diff --git a/sites/docs/src/content/cookbook/gestures/handling-taps.md b/sites/docs/src/content/cookbook/gestures/handling-taps.md index 1ad9f6d45ca..e66bab91981 100644 --- a/sites/docs/src/content/cookbook/gestures/handling-taps.md +++ b/sites/docs/src/content/cookbook/gestures/handling-taps.md @@ -122,7 +122,7 @@ class MyButton extends StatelessWidget { [Add Material touch ripples]: /cookbook/gestures/ripples -[`CupertinoButton`]: {{site.api}}/flutter/cupertino/CupertinoButton-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html +[`CupertinoButton`]: {{site.cupertino_ui}}/CupertinoButton-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html [`GestureDetector`]: {{site.api}}/flutter/widgets/GestureDetector-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html diff --git a/sites/docs/src/content/cookbook/gestures/ripples.md b/sites/docs/src/content/cookbook/gestures/ripples.md index 214d1b3300d..e4b40a35b86 100644 --- a/sites/docs/src/content/cookbook/gestures/ripples.md +++ b/sites/docs/src/content/cookbook/gestures/ripples.md @@ -94,4 +94,4 @@ class MyButton extends StatelessWidget { -[`InkWell`]: {{site.api}}/flutter/material/InkWell-class.html +[`InkWell`]: {{site.material_ui}}/InkWell-class.html diff --git a/sites/docs/src/content/cookbook/images/fading-in-images.md b/sites/docs/src/content/cookbook/images/fading-in-images.md index 2ff5d73ce49..2f582da0e18 100644 --- a/sites/docs/src/content/cookbook/images/fading-in-images.md +++ b/sites/docs/src/content/cookbook/images/fading-in-images.md @@ -57,7 +57,7 @@ complete the following steps: import 'dart:convert'; import 'dart:typed_data'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; final Uint8List transparentImage = base64Decode( 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4' @@ -135,7 +135,7 @@ complete the following steps: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/sites/docs/src/content/cookbook/lists/basic-list.md b/sites/docs/src/content/cookbook/lists/basic-list.md index 5d10694e94d..e671e0c84a7 100644 --- a/sites/docs/src/content/cookbook/lists/basic-list.md +++ b/sites/docs/src/content/cookbook/lists/basic-list.md @@ -64,5 +64,5 @@ class MyApp extends StatelessWidget { -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html -[`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html +[`ListView`]: {{site.material_ui}}/ListView-class.html diff --git a/sites/docs/src/content/cookbook/lists/floating-app-bar.md b/sites/docs/src/content/cookbook/lists/floating-app-bar.md index 2894f7d8111..f5cfdc791ab 100644 --- a/sites/docs/src/content/cookbook/lists/floating-app-bar.md +++ b/sites/docs/src/content/cookbook/lists/floating-app-bar.md @@ -328,11 +328,11 @@ class MyApp extends StatelessWidget { -[`CupertinoSliverNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoSliverNavigationBar-class.html +[`CupertinoSliverNavigationBar`]: {{site.cupertino_ui}}/CupertinoSliverNavigationBar-class.html [`CustomScrollView`]: {{site.api}}/flutter/widgets/CustomScrollView-class.html -[`SliverAppBar`]: {{site.api}}/flutter/material/SliverAppBar-class.html +[`SliverAppBar`]: {{site.material_ui}}/SliverAppBar-class.html [`SliverChildBuilderDelegate`]: {{site.api}}/flutter/widgets/SliverChildBuilderDelegate-class.html [`SliverChildDelegate`]: {{site.api}}/flutter/widgets/SliverChildDelegate-class.html [`SliverGrid`]: {{site.api}}/flutter/widgets/SliverGrid-class.html [`SliverList`]: {{site.api}}/flutter/widgets/SliverList-class.html -[various properties you can pass to the `SliverAppBar` widget]: {{site.api}}/flutter/material/SliverAppBar/SliverAppBar.html +[various properties you can pass to the `SliverAppBar` widget]: {{site.material_ui}}/SliverAppBar/SliverAppBar.html diff --git a/sites/docs/src/content/cookbook/navigation/named-routes.md b/sites/docs/src/content/cookbook/navigation/named-routes.md index f5db4568d61..b93ccfcb031 100644 --- a/sites/docs/src/content/cookbook/navigation/named-routes.md +++ b/sites/docs/src/content/cookbook/navigation/named-routes.md @@ -227,7 +227,7 @@ class SecondScreen extends StatelessWidget { -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html [Navigate to a new screen and back]: /cookbook/navigation/navigation-basics [`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html [`Navigator.pop()`]: {{site.api}}/flutter/widgets/Navigator/pop.html diff --git a/sites/docs/src/content/cookbook/navigation/navigate-with-arguments.md b/sites/docs/src/content/cookbook/navigation/navigate-with-arguments.md index ef0628a3a79..a2cdaf6a27a 100644 --- a/sites/docs/src/content/cookbook/navigation/navigate-with-arguments.md +++ b/sites/docs/src/content/cookbook/navigation/navigate-with-arguments.md @@ -371,8 +371,8 @@ class ScreenArguments { -[`CupertinoApp`]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html +[`CupertinoApp`]: {{site.cupertino_ui}}/CupertinoApp-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html [`ModalRoute.of()`]: {{site.api}}/flutter/widgets/ModalRoute/of.html [`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html [`Navigator.pushNamed()`]: {{site.api}}/flutter/widgets/Navigator/pushNamed.html diff --git a/sites/docs/src/content/cookbook/navigation/navigation-basics.md b/sites/docs/src/content/cookbook/navigation/navigation-basics.md index b121d50c0a0..893452624e0 100644 --- a/sites/docs/src/content/cookbook/navigation/navigation-basics.md +++ b/sites/docs/src/content/cookbook/navigation/navigation-basics.md @@ -349,13 +349,13 @@ you can use. Here are a few of them: [Cupertino]: /ui/widgets/cupertino [Material Components]: /ui/widgets/material -[`CupertinoApp`]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html -[`CupertinoButton`]: {{site.api}}/flutter/cupertino/CupertinoButton-class.html -[`CupertinoPageRoute`]: {{site.api}}/flutter/cupertino/CupertinoPageRoute-class.html -[`CupertinoPageScaffold`]: {{site.api}}/flutter/cupertino/CupertinoPageScaffold-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html -[`MaterialPageRoute`]: {{site.api}}/flutter/material/MaterialPageRoute-class.html +[`CupertinoApp`]: {{site.cupertino_ui}}/CupertinoApp-class.html +[`CupertinoButton`]: {{site.cupertino_ui}}/CupertinoButton-class.html +[`CupertinoPageRoute`]: {{site.cupertino_ui}}/CupertinoPageRoute-class.html +[`CupertinoPageScaffold`]: {{site.cupertino_ui}}/CupertinoPageScaffold-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html +[`MaterialPageRoute`]: {{site.material_ui}}/MaterialPageRoute-class.html [`Navigator.pop()`]: {{site.api}}/flutter/widgets/Navigator/pop.html [`Navigator.push()`]: {{site.api}}/flutter/widgets/Navigator/push.html [`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html @@ -369,4 +369,4 @@ you can use. Here are a few of them: [`replace`]: {{site.api}}/flutter/widgets/Navigator/replace.html [`replaceRouteBelow`]: {{site.api}}/flutter/widgets/Navigator/replaceRouteBelow.html [`restorablePush`]: {{site.api}}/flutter/widgets/Navigator/restorablePush.html -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html diff --git a/sites/docs/src/content/cookbook/navigation/passing-data.md b/sites/docs/src/content/cookbook/navigation/passing-data.md index 34c201abc3a..b25e14e35b7 100644 --- a/sites/docs/src/content/cookbook/navigation/passing-data.md +++ b/sites/docs/src/content/cookbook/navigation/passing-data.md @@ -410,6 +410,6 @@ class DetailScreen extends StatelessWidget { [`ModalRoute.of()`]: {{site.api}}/flutter/widgets/ModalRoute/of.html [`Navigator.push()`]: {{site.api}}/flutter/widgets/Navigator/push.html -[`onTap()`]: {{site.api}}/flutter/material/ListTile/onTap.html +[`onTap()`]: {{site.material_ui}}/ListTile/onTap.html [`RouteSettings`]: {{site.api}}/flutter/widgets/RouteSettings-class.html [Use lists]: /cookbook/lists/basic-list diff --git a/sites/docs/src/content/cookbook/navigation/set-up-app-links.md b/sites/docs/src/content/cookbook/navigation/set-up-app-links.md index e222a09df8e..86a5f94f143 100644 --- a/sites/docs/src/content/cookbook/navigation/set-up-app-links.md +++ b/sites/docs/src/content/cookbook/navigation/set-up-app-links.md @@ -46,7 +46,7 @@ It provides a simple API to handle complex routing scenarios. create a `GoRouter` object in the `main.dart` file: ```dart title="main.dart" - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:go_router/go_router.dart'; void main() => runApp(MaterialApp.router(routerConfig: router)); diff --git a/sites/docs/src/content/cookbook/navigation/set-up-universal-links.md b/sites/docs/src/content/cookbook/navigation/set-up-universal-links.md index ecc6ed89ae3..2912c217d9e 100644 --- a/sites/docs/src/content/cookbook/navigation/set-up-universal-links.md +++ b/sites/docs/src/content/cookbook/navigation/set-up-universal-links.md @@ -43,7 +43,7 @@ It provides a simple API to handle complex routing scenarios. 3. To handle the routing, create a `GoRouter` object in the `main.dart` file: ```dart title="main.dart" - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:go_router/go_router.dart'; void main() => runApp(MaterialApp.router(routerConfig: router)); diff --git a/sites/docs/src/content/cookbook/networking/background-parsing.md b/sites/docs/src/content/cookbook/networking/background-parsing.md index c78a4bedb4f..0f72594a9c5 100644 --- a/sites/docs/src/content/cookbook/networking/background-parsing.md +++ b/sites/docs/src/content/cookbook/networking/background-parsing.md @@ -175,7 +175,7 @@ import 'dart:async'; import 'dart:convert'; import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; Future> fetchPhotos(http.Client client) async { diff --git a/sites/docs/src/content/cookbook/networking/delete-data.md b/sites/docs/src/content/cookbook/networking/delete-data.md index 0469caf7ef6..688d9700ab4 100644 --- a/sites/docs/src/content/cookbook/networking/delete-data.md +++ b/sites/docs/src/content/cookbook/networking/delete-data.md @@ -145,7 +145,7 @@ Now you've got a function that deletes the data from the internet. import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; Future fetchAlbum() async { diff --git a/sites/docs/src/content/cookbook/networking/fetch-data.md b/sites/docs/src/content/cookbook/networking/fetch-data.md index 9de89794b97..47a801d98d3 100644 --- a/sites/docs/src/content/cookbook/networking/fetch-data.md +++ b/sites/docs/src/content/cookbook/networking/fetch-data.md @@ -245,7 +245,7 @@ see the following recipes: import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; Future fetchAlbum() async { diff --git a/sites/docs/src/content/cookbook/networking/send-data.md b/sites/docs/src/content/cookbook/networking/send-data.md index e1e452e2192..bcb3b8e0de2 100644 --- a/sites/docs/src/content/cookbook/networking/send-data.md +++ b/sites/docs/src/content/cookbook/networking/send-data.md @@ -231,7 +231,7 @@ FutureBuilder( import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; Future createAlbum(String title) async { diff --git a/sites/docs/src/content/cookbook/networking/update-data.md b/sites/docs/src/content/cookbook/networking/update-data.md index b7a82718077..ce7545c7ee7 100644 --- a/sites/docs/src/content/cookbook/networking/update-data.md +++ b/sites/docs/src/content/cookbook/networking/update-data.md @@ -251,7 +251,7 @@ FutureBuilder( import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; Future fetchAlbum() async { diff --git a/sites/docs/src/content/cookbook/networking/web-sockets.md b/sites/docs/src/content/cookbook/networking/web-sockets.md index 37c86145d90..cf1ab3d2d55 100644 --- a/sites/docs/src/content/cookbook/networking/web-sockets.md +++ b/sites/docs/src/content/cookbook/networking/web-sockets.md @@ -106,7 +106,7 @@ channel.sink.close(); ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; void main() => runApp(const MyApp()); diff --git a/sites/docs/src/content/cookbook/persistence/key-value.md b/sites/docs/src/content/cookbook/persistence/key-value.md index be4ea25f48e..6aeefc48ef0 100644 --- a/sites/docs/src/content/cookbook/persistence/key-value.md +++ b/sites/docs/src/content/cookbook/persistence/key-value.md @@ -117,7 +117,7 @@ SharedPreferences.setMockInitialValues({'counter': 2}); ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; void main() => runApp(const MyApp()); diff --git a/sites/docs/src/content/cookbook/persistence/reading-writing-files.md b/sites/docs/src/content/cookbook/persistence/reading-writing-files.md index d8a102f2e65..ad4b8fab82d 100644 --- a/sites/docs/src/content/cookbook/persistence/reading-writing-files.md +++ b/sites/docs/src/content/cookbook/persistence/reading-writing-files.md @@ -130,7 +130,7 @@ Future readCounter() async { import 'dart:async'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:path_provider/path_provider.dart'; void main() { diff --git a/sites/docs/src/content/cookbook/plugins/picture-using-camera.md b/sites/docs/src/content/cookbook/plugins/picture-using-camera.md index 11d0dec0c21..b388a1bcc69 100644 --- a/sites/docs/src/content/cookbook/plugins/picture-using-camera.md +++ b/sites/docs/src/content/cookbook/plugins/picture-using-camera.md @@ -253,7 +253,7 @@ import 'dart:async'; import 'dart:io'; import 'package:camera/camera.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; Future main() async { // Ensure that plugin services are initialized so that `availableCameras()` diff --git a/sites/docs/src/content/cookbook/testing/integration/profiling.md b/sites/docs/src/content/cookbook/testing/integration/profiling.md index 159092d9fbd..654d9d4b2e2 100644 --- a/sites/docs/src/content/cookbook/testing/integration/profiling.md +++ b/sites/docs/src/content/cookbook/testing/integration/profiling.md @@ -197,7 +197,7 @@ the project contains two files: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:your_package/main.dart'; diff --git a/sites/docs/src/content/cookbook/testing/unit/mocking.md b/sites/docs/src/content/cookbook/testing/unit/mocking.md index f632ad887d5..7eec0e93c52 100644 --- a/sites/docs/src/content/cookbook/testing/unit/mocking.md +++ b/sites/docs/src/content/cookbook/testing/unit/mocking.md @@ -214,7 +214,7 @@ instructions in the [Introduction to unit testing][] recipe. import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; Future fetchAlbum(http.Client client) async { diff --git a/sites/docs/src/content/cookbook/testing/widget/finders.md b/sites/docs/src/content/cookbook/testing/widget/finders.md index f9289956a59..5a9f52fd075 100644 --- a/sites/docs/src/content/cookbook/testing/widget/finders.md +++ b/sites/docs/src/content/cookbook/testing/widget/finders.md @@ -106,7 +106,7 @@ to review all available methods. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/sites/docs/src/content/cookbook/testing/widget/introduction.md b/sites/docs/src/content/cookbook/testing/widget/introduction.md index bf121f451ef..81aea5d8c1b 100644 --- a/sites/docs/src/content/cookbook/testing/widget/introduction.md +++ b/sites/docs/src/content/cookbook/testing/widget/introduction.md @@ -223,7 +223,7 @@ matchers for common cases. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { diff --git a/sites/docs/src/content/cookbook/testing/widget/orientation.md b/sites/docs/src/content/cookbook/testing/widget/orientation.md index 2cba48f2b00..124cb843ee0 100644 --- a/sites/docs/src/content/cookbook/testing/widget/orientation.md +++ b/sites/docs/src/content/cookbook/testing/widget/orientation.md @@ -46,7 +46,7 @@ group your future orientation tests: ```dart title="widget_test.dart" - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:orientation_tests/main.dart'; @@ -147,7 +147,7 @@ flutter test test/widget_test.dart ```dart title="widget_test.dart" -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:orientation_tests/main.dart'; @@ -212,7 +212,7 @@ void main() { ```dart title="main.dart" -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); diff --git a/sites/docs/src/content/cookbook/testing/widget/scrolling.md b/sites/docs/src/content/cookbook/testing/widget/scrolling.md index 24c1b71e422..f43cfcf7cf9 100644 --- a/sites/docs/src/content/cookbook/testing/widget/scrolling.md +++ b/sites/docs/src/content/cookbook/testing/widget/scrolling.md @@ -38,7 +38,7 @@ inside the widget tests. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(MyApp(items: List.generate(10000, (i) => 'Item $i'))); @@ -108,7 +108,7 @@ file called `test/widget_test.dart`. // gestures. You can also use WidgetTester to find child widgets in the widget // tree, read text, and verify that the values of widget properties are correct. -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:scrolling/main.dart'; diff --git a/sites/docs/src/content/cookbook/testing/widget/tap-drag.md b/sites/docs/src/content/cookbook/testing/widget/tap-drag.md index adeb37f3e2e..da6bbb5e679 100644 --- a/sites/docs/src/content/cookbook/testing/widget/tap-drag.md +++ b/sites/docs/src/content/cookbook/testing/widget/tap-drag.md @@ -197,7 +197,7 @@ testWidgets('Add and remove a todo', (tester) async { ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { @@ -292,5 +292,5 @@ class _TodoListState extends State { [`pump()`]: {{site.api}}/flutter/flutter_test/WidgetTester/pump.html [`pumpAndSettle()`]: {{site.api}}/flutter/flutter_test/WidgetTester/pumpAndSettle.html [`tap()`]: {{site.api}}/flutter/flutter_test/WidgetController/tap.html -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html [`WidgetTester`]: {{site.api}}/flutter/flutter_test/WidgetTester-class.html diff --git a/sites/docs/src/content/deployment/flavors-ios.md b/sites/docs/src/content/deployment/flavors-ios.md index 4b70e5a5a85..2afa3572603 100644 --- a/sites/docs/src/content/deployment/flavors-ios.md +++ b/sites/docs/src/content/deployment/flavors-ios.md @@ -25,32 +25,12 @@ The following illustrates an example of two Flutter flavors (staging, production) as Xcode schemes with custom Xcode configurations assigned to them: - - - - - - - - - - - - - - - - - -
SchemeConfigurations for the scheme
staging - Debug-staging
- Profile-staging
- Release-staging
-
production - Debug-production
- Profile-production
- Release-production
-
+| Scheme | Configurations for the scheme| +| --- | --- | +| staging | Debug-staging
Profile-staging
Release-staging | +| production | Debug-production
Profile-production
Releae-production | + +{:.table .table-striped} ## Configure Xcode schemes diff --git a/sites/docs/src/content/deployment/flavors.md b/sites/docs/src/content/deployment/flavors.md index d364f52cc55..251e217e5bc 100644 --- a/sites/docs/src/content/deployment/flavors.md +++ b/sites/docs/src/content/deployment/flavors.md @@ -26,33 +26,12 @@ The following illustrates an example of the Android two product flavors (`staging`, `production`) and two build types (`debug`, `release`): - - - - - - - - - - - - - - - - - - - - -
Product flavorsBuild typesResulting build variants
stagingdebug - stagingDebug
- stagingRelease
-
productionrelease - productionDebug
- productionRelease
-
+| Product flavors | Build types | Resulting build variants | +| --- | --- | --- | +| staging | debug | stagingDebug
stagingRelease | +| production | release | productionDebug
productionRelease | + +{:.table .table-striped} [_product flavor_]: https://developer.android.com/build/build-variants#product-flavors [_build variants_]: https://developer.android.com/build/build-variants diff --git a/sites/docs/src/content/flutter-for/android-devs.md b/sites/docs/src/content/flutter-for/android-devs.md index 548785dbbc6..54e005870d6 100644 --- a/sites/docs/src/content/flutter-for/android-devs.md +++ b/sites/docs/src/content/flutter-for/android-devs.md @@ -127,7 +127,7 @@ For example: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -224,7 +224,7 @@ widgets when you click on a `FloatingActionButton`: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -312,7 +312,7 @@ widget into a logo when you press the `FloatingActionButton`: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const FadeAppTest()); @@ -406,7 +406,7 @@ see Collin's answer on [Custom Paint][]. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MaterialApp(home: DemoApp())); @@ -665,7 +665,7 @@ when the widget is rendered: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; void main() { @@ -786,7 +786,7 @@ The following example loads data asynchronously and displays it in a `ListView`: ```dart import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -969,7 +969,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:isolate'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -1137,7 +1137,7 @@ then render the `ProgressIndicator`. Otherwise, render the ```dart import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -1718,7 +1718,7 @@ that scrolling is fast and smooth. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1777,7 +1777,7 @@ In Flutter, use the touch handling provided by the passed-in widgets. ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1854,7 +1854,7 @@ as shown in the next example. ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1926,7 +1926,7 @@ recycles list elements for you: ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -2089,7 +2089,7 @@ update the state, and pass a new `InputDecoration` object. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -2248,7 +2248,7 @@ the color scheme from seed is set to deepPurple and text selection color is red. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SampleApp extends StatelessWidget { const SampleApp({super.key}); @@ -2304,7 +2304,7 @@ Shared Preferences and NSUserDefaults (the iOS equivalent). ```dart import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; diff --git a/sites/docs/src/content/flutter-for/compose-devs.md b/sites/docs/src/content/flutter-for/compose-devs.md index 9d2364a946b..a779201ee30 100644 --- a/sites/docs/src/content/flutter-for/compose-devs.md +++ b/sites/docs/src/content/flutter-for/compose-devs.md @@ -24,8 +24,6 @@ check out [Add Flutter to existing app][]. This document can be used as a reference by jumping around and finding questions that are most relevant to your needs. This guide embeds sample code. -By using the "Open in DartPad" button that appears on hover or focus, -you can open and run some of the examples on DartPad. ## Overview @@ -862,5 +860,5 @@ To review a complete example, check out the [`Image`][] docs. [`Image`]: {{site.api}}/flutter/widgets/Image-class.html [go_router]: {{site.pub-pkg}}/go_router [Google Fonts]: https://fonts.google.com/ -[google_fonts]: https://pub.dev/packages/google_fonts -[`MaterialApp`]: https://api.flutter.dev/flutter/material/MaterialApp-class.html +[google_fonts]: {{site.pub-pkg}}/google_fonts +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html diff --git a/sites/docs/src/content/flutter-for/react-native-devs.md b/sites/docs/src/content/flutter-for/react-native-devs.md index d9e1395cdc3..625be8835c8 100644 --- a/sites/docs/src/content/flutter-for/react-native-devs.md +++ b/sites/docs/src/content/flutter-for/react-native-devs.md @@ -53,8 +53,6 @@ entry point to the app. void main() {} ``` -Try it out in [DartPad][DartPadA]. - ### Printing to the console To print to the console in Dart, use `print()`. @@ -70,8 +68,6 @@ console.log('Hello world!'); print('Hello world!'); ``` -Try it out in [DartPad][DartPadB]. - ### Variables Dart is type safe—it uses a combination of static type checking @@ -100,8 +96,6 @@ String name = 'dart'; // Explicitly typed as a [String]. var otherName = 'Dart'; // Inferred [String] type. ``` -Try it out in [DartPad][DartPadC]. - For more information, see [Dart's Type System][]. #### Default value @@ -130,8 +124,6 @@ var name; // == null; raises a linter warning int? x; // == null ``` -Try it out in [DartPad][DartPadD]. - For more information, see the documentation on [variables][]. @@ -167,8 +159,6 @@ if (zero == 0) { } ``` -Try it out in [DartPad][DartPadE]. - ### Functions Dart and JavaScript functions are generally similar. @@ -190,8 +180,6 @@ bool fn() { } ``` -Try it out in [DartPad][DartPadF]. - For more information, see the documentation on [functions][]. @@ -388,8 +376,8 @@ Or, you can write your own widget library and import that. ```dart -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/widgets.dart'; import 'package:my_widgets/my_widgets.dart'; ``` @@ -437,7 +425,7 @@ the `Text` widget. ```dart // Flutter -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( @@ -482,7 +470,7 @@ Material library. In this example, the widget tree is nested inside the ```dart // Flutter -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); @@ -749,7 +737,7 @@ $ flutter pub add google_sign_in ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; ``` For more information, see [Using Packages][] and @@ -1191,7 +1179,7 @@ of stateless widgets that subclass [`StatelessWidget`][]. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp( const MyStatelessWidget( @@ -2374,7 +2362,7 @@ widget is used inside the `FadeTransition` widget. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const Center(child: LogoFade())); @@ -2523,9 +2511,9 @@ and common widget properties. {:.table .table-striped} -[`AboutDialog`]: {{site.api}}/flutter/material/AboutDialog-class.html +[`AboutDialog`]: {{site.material_ui}}/AboutDialog-class.html [Adding Assets and Images in Flutter]: /ui/assets/assets-and-images -[`AlertDialog`]: {{site.api}}/flutter/material/AlertDialog-class.html +[`AlertDialog`]: {{site.material_ui}}/AlertDialog-class.html [`Align`]: {{site.api}}/flutter/widgets/Align-class.html [`Animation`]: {{site.api}}/flutter/animation/Animation-class.html [`AnimationController`]: {{site.api}}/flutter/animation/AnimationController-class.html @@ -2534,13 +2522,13 @@ and common widget properties. [`BuildContext`]: {{site.api}}/flutter/widgets/BuildContext-class.html [`Center`]: {{site.api}}/flutter/widgets/Center-class.html [color palette]: {{site.material2}}/design/color/the-color-system.html#color-theme-creation -[colors]: {{site.api}}/flutter/material/Colors-class.html -[`Colors`]: {{site.api}}/flutter/material/Colors-class.html +[colors]: {{site.material_ui}}/Colors-class.html +[`Colors`]: {{site.material_ui}}/Colors-class.html [`Column`]: {{site.api}}/flutter/widgets/Column-class.html [`Container`]: {{site.api}}/flutter/widgets/Container-class.html -[`Checkbox`]: {{site.api}}/flutter/material/Checkbox-class.html -[`CircleAvatar`]: {{site.api}}/flutter/material/CircleAvatar-class.html -[`CircularProgressIndicator`]: {{site.api}}/flutter/material/CircularProgressIndicator-class.html +[`Checkbox`]: {{site.material_ui}}/Checkbox-class.html +[`CircleAvatar`]: {{site.material_ui}}/CircleAvatar-class.html +[`CircularProgressIndicator`]: {{site.material_ui}}/CircularProgressIndicator-class.html [Cupertino (iOS-style)]: /ui/widgets/cupertino [`CustomPaint`]: {{site.api}}/flutter/widgets/CustomPaint-class.html [`CustomPainter`]: {{site.api}}/flutter/rendering/CustomPainter-class.html @@ -2548,12 +2536,6 @@ and common widget properties. [Dart's Type System]: {{site.dart-site}}/guides/language/sound-dart [Sound Null Safety]: {{site.dart-site}}/null-safety [`dart:io`]: {{site.api}}/flutter/dart-io/dart-io-library.html -[DartPadA]: {{site.dartpad}}/?id=0df636e00f348bdec2bc1c8ebc7daeb1 -[DartPadB]: {{site.dartpad}}/?id=cf9e652f77636224d3e37d96dcf238e5 -[DartPadC]: {{site.dartpad}}/?id=3f4625c16e05eec396d6046883739612 -[DartPadD]: {{site.dartpad}}/?id=57ec21faa8b6fe2326ffd74e9781a2c7 -[DartPadE]: {{site.dartpad}}/?id=c85038ad677963cb6dc943eb1a0b72e6 -[DartPadF]: {{site.dartpad}}/?id=5454e8bfadf3000179d19b9bc6be9918 [Developing Packages & Plugins]: /packages-and-plugins/developing-packages [DevTools]: /tools/devtools [`Dismissible`]: {{site.api}}/flutter/widgets/Dismissible-class.html @@ -2564,9 +2546,9 @@ and common widget properties. [Flutter Technical Overview]: /resources/architectural-overview [Flutter Widget Catalog]: /ui/widgets [Flutter Widget Index]: /reference/widgets -[`FlutterLogo`]: {{site.api}}/flutter/material/FlutterLogo-class.html +[`FlutterLogo`]: {{site.material_ui}}/FlutterLogo-class.html [`Form`]: {{site.api}}/flutter/widgets/Form-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html [functions]: {{site.dart-site}}/language/functions [`Future`]: {{site.dart-site}}/tutorials/language/futures [`GestureDetector`]: {{site.api}}/flutter/widgets/GestureDetector-class.html @@ -2574,16 +2556,16 @@ and common widget properties. [`Image`]: {{site.api}}/flutter/widgets/Image-class.html [`IndexedWidgetBuilder`]: {{site.api}}/flutter/widgets/IndexedWidgetBuilder.html [`InheritedWidget`]: {{site.api}}/flutter/widgets/InheritedWidget-class.html -[`InkWell`]: {{site.api}}/flutter/material/InkWell-class.html +[`InkWell`]: {{site.material_ui}}/InkWell-class.html [Layout Widgets]: /ui/widgets/layout -[`LinearProgressIndicator`]: {{site.api}}/flutter/material/LinearProgressIndicator-class.html -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html +[`LinearProgressIndicator`]: {{site.material_ui}}/LinearProgressIndicator-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html [`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html [`ListView.builder`]: {{site.api}}/flutter/widgets/ListView/ListView.builder.html [Material Design]: {{site.material}}/styles -[Material icons]: {{site.api}}/flutter/material/Icons-class.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html -[`MaterialPageRoute`]: {{site.api}}/flutter/material/MaterialPageRoute-class.html +[Material icons]: {{site.material_ui}}/Icons-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html +[`MaterialPageRoute`]: {{site.material_ui}}/MaterialPageRoute-class.html [`ModalRoute`]: {{site.api}}/flutter/widgets/ModalRoute-class.html [`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html [`Navigator.of()`]: {{site.api}}/flutter/widgets/Navigator/of.html @@ -2594,34 +2576,34 @@ and common widget properties. [`Padding`]: {{site.api}}/flutter/widgets/Padding-class.html [`PanResponder`]: https://reactnative.dev/docs/panresponder [pub.dev]: {{site.pub}} -[`Radio`]: {{site.api}}/flutter/material/Radio-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`RefreshIndicator`]: {{site.api}}/flutter/material/RefreshIndicator-class.html +[`Radio`]: {{site.material_ui}}/Radio-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`RefreshIndicator`]: {{site.material_ui}}/RefreshIndicator-class.html [`Route`]: {{site.api}}/flutter/widgets/Route-class.html [`Row`]: {{site.api}}/flutter/widgets/Row-class.html -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html [`ScrollController`]: {{site.api}}/flutter/widgets/ScrollController-class.html [`shared_preferences`]: {{site.repo.packages}}/tree/main/packages/shared_preferences/shared_preferences [`SingleTickerProviderStateMixin`]: {{site.api}}/flutter/widgets/SingleTickerProviderStateMixin-mixin.html -[`Slider`]: {{site.api}}/flutter/material/Slider-class.html +[`Slider`]: {{site.material_ui}}/Slider-class.html [`Stack`]: {{site.api}}/flutter/widgets/Stack-class.html [State management]: /data-and-backend/state-mgmt [`StatefulWidget`]: {{site.api}}/flutter/widgets/StatefulWidget-class.html [`StatelessWidget`]: {{site.api}}/flutter/widgets/StatelessWidget-class.html -[`Switch`]: {{site.api}}/flutter/material/Switch-class.html -[`Tab`]: {{site.api}}/flutter/material/Tab-class.html -[`TabBar`]: {{site.api}}/flutter/material/TabBar-class.html -[`TabBarView`]: {{site.api}}/flutter/material/TabBarView-class.html -[`TabController`]: {{site.api}}/flutter/material/TabController-class.html +[`Switch`]: {{site.material_ui}}/Switch-class.html +[`Tab`]: {{site.material_ui}}/Tab-class.html +[`TabBar`]: {{site.material_ui}}/TabBar-class.html +[`TabBarView`]: {{site.material_ui}}/TabBarView-class.html +[`TabController`]: {{site.material_ui}}/TabController-class.html [`Text`]: {{site.api}}/flutter/widgets/Text-class.html [`TextAlign`]: {{site.api}}/flutter/dart-ui/TextAlign.html [`TextEditingController`]: {{site.api}}/flutter/widgets/TextEditingController-class.html -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html -[`TextFormField`]: {{site.api}}/flutter/material/TextFormField-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html +[`TextFormField`]: {{site.material_ui}}/TextFormField-class.html [`TextInput`]: {{site.api}}/flutter/services/TextInput-class.html [`TextStyle`]: {{site.api}}/flutter/dart-ui/TextStyle-class.html -[`Theme`]: {{site.api}}/flutter/material/Theme-class.html -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html +[`Theme`]: {{site.material_ui}}/Theme-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html [`Ticker`]: {{site.api}}/flutter/scheduler/Ticker-class.html [`TickerProvider`]: {{site.api}}/flutter/scheduler/TickerProvider-class.html [`TickerProviderStateMixin`]: {{site.api}}/flutter/widgets/TickerProviderStateMixin-mixin.html diff --git a/sites/docs/src/content/flutter-for/swiftui-devs.md b/sites/docs/src/content/flutter-for/swiftui-devs.md index 842594e11c3..32465adc8f6 100644 --- a/sites/docs/src/content/flutter-for/swiftui-devs.md +++ b/sites/docs/src/content/flutter-for/swiftui-devs.md @@ -39,8 +39,6 @@ check out [Add Flutter to existing app][]. This document can be used as a cookbook by jumping around and finding questions that are most relevant to your needs. This guide embeds sample code. -By using the "Open in DartPad" button that appears on hover or focus, -you can open and run some of the examples on DartPad. ## Overview @@ -1077,9 +1075,9 @@ To review a complete walkthrough, check out the [video_player example][]. [widget catalog]: /ui/widgets/layout [Understanding constraints]: /ui/layout/constraints [`WidgetApp`]: {{site.api}}/flutter/widgets/WidgetsApp-class.html -[`CupertinoApp`]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html +[`CupertinoApp`]: {{site.cupertino_ui}}/CupertinoApp-class.html [`Center`]: {{site.api}}/flutter/widgets/Center-class.html -[`CupertinoButton`]: {{site.api}}/flutter/cupertino/CupertinoButton-class.html +[`CupertinoButton`]: {{site.cupertino_ui}}/CupertinoButton-class.html [`Row`]: {{site.api}}/flutter/widgets/Row-class.html [`Column`]: {{site.api}}/flutter/widgets/Column-class.html [Learning Dart as a Swift Developer]: {{site.dart-site}}/guides/language/coming-from/swift-to-dart diff --git a/sites/docs/src/content/flutter-for/uikit-devs.md b/sites/docs/src/content/flutter-for/uikit-devs.md index 1afd4249f42..b8d2bcec72e 100644 --- a/sites/docs/src/content/flutter-for/uikit-devs.md +++ b/sites/docs/src/content/flutter-for/uikit-devs.md @@ -333,7 +333,7 @@ fades the widget into a logo when you press the `FloatingActionButton`: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SampleApp extends StatelessWidget { // This widget is the root of your application. @@ -417,7 +417,7 @@ see Collin's answer on [StackOverflow][]. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MaterialApp(home: DemoApp())); @@ -673,7 +673,7 @@ specify the `localizationsDelegates` and ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; class MyWidget extends StatelessWidget { @@ -798,7 +798,7 @@ scrolling is fast and smooth. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -852,7 +852,7 @@ In Flutter, use the touch handling provided by the passed-in widgets. ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -930,7 +930,7 @@ as shown in the next example. ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -996,7 +996,7 @@ list or a list with very large amounts of data. ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1304,7 +1304,7 @@ the color scheme from seed is set to deepPurple and divider color is grey. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class SampleApp extends StatelessWidget { const SampleApp({super.key}); @@ -1549,7 +1549,7 @@ update the state, and pass a new `InputDecoration` object. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1661,7 +1661,7 @@ displays it in a `ListView`: ```dart import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -1831,7 +1831,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:isolate'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -1994,7 +1994,7 @@ Otherwise, render the `ListView` with the data returned from a network call. ```dart import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -2085,7 +2085,7 @@ class _SampleAppPageState extends State { [arb]: https://github.com/googlei18n/app-resource-bundle [`AssetBundle`]: {{site.api}}/flutter/services/AssetBundle-class.html [composing]: /resources/architectural-overview#composition -[Cupertino library]: {{site.api}}/flutter/cupertino/cupertino-library.html +[Cupertino library]: {{site.cupertion_ui}}/cupertino-library.html [Cupertino widgets]: /ui/widgets/cupertino [`devicePixelRatio`]: {{site.api}}/flutter/dart-ui/FlutterView/devicePixelRatio.html [existing plugin]: {{site.pub}}/flutter diff --git a/sites/docs/src/content/flutter-for/xamarin-forms-devs.md b/sites/docs/src/content/flutter-for/xamarin-forms-devs.md index 743dd63b1df..124c1e70763 100644 --- a/sites/docs/src/content/flutter-for/xamarin-forms-devs.md +++ b/sites/docs/src/content/flutter-for/xamarin-forms-devs.md @@ -92,8 +92,8 @@ or you can use a [`CupertinoApp`][] widget, which supports an iOS-style app, or you can use the lower level [`WidgetsApp`][], which you can customize in any way you want. -[`CupertinoApp`]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html +[`CupertinoApp`]: {{site.cupertino_ui}}/CupertinoApp-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html [`WidgetsApp`]: {{site.api}}/flutter/widgets/WidgetsApp-class.html The following code defines the home page, a stateful widget. @@ -295,7 +295,7 @@ as shown in the following example: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -481,7 +481,7 @@ the widget into a logo when you press the `FloatingActionButton`: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const FadeAppTest()); @@ -567,7 +567,7 @@ see Collin's answer on [Custom Paint][]. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: DemoApp())); @@ -814,7 +814,7 @@ and displays it in a `ListView`: ```dart import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -984,7 +984,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:isolate'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -1145,7 +1145,7 @@ Otherwise, render the `ListView` with the data returned from a network call. import 'dart:async'; import 'dart:convert'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart' as http; void main() { @@ -1783,7 +1783,7 @@ and Flutter takes care of making sure that scrolling is fast and smooth. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1834,7 +1834,7 @@ In Flutter, use the touch handling provided by the passed-in widgets. ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1910,7 +1910,7 @@ as shown in the next example. ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -1981,7 +1981,7 @@ which automatically recycles list elements for you: ```dart import 'dart:developer' as developer; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); @@ -2134,7 +2134,7 @@ to retrieve user input: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyForm extends StatefulWidget { const MyForm({super.key}); @@ -2222,7 +2222,7 @@ update the state, and pass a new `InputDecoration` object. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const SampleApp()); diff --git a/sites/docs/src/content/learn/pathway/tutorial/adaptive-layout.md b/sites/docs/src/content/learn/pathway/tutorial/adaptive-layout.md index 81ef9c680b1..2d0e668c53e 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/adaptive-layout.md +++ b/sites/docs/src/content/learn/pathway/tutorial/adaptive-layout.md @@ -44,7 +44,7 @@ the following basic structure: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; class ContactGroupsPage extends StatelessWidget { const ContactGroupsPage({super.key}); @@ -66,7 +66,7 @@ display individual contacts: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; class ContactListsPage extends StatelessWidget { const ContactListsPage({super.key, required this.listId}); @@ -94,7 +94,7 @@ and start with the following basic structure: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; @@ -120,7 +120,7 @@ Next, add the screen size detection logic to `lib/screens/adaptive_layout.dart`: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; @@ -168,7 +168,7 @@ so you can see your changes: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'data/contact_group.dart'; import 'screens/adaptive_layout.dart'; @@ -209,7 +209,7 @@ Update the state object in `lib/screens/adaptive_layout.dart` with the following ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; @@ -260,7 +260,7 @@ contains the proper layout. ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; diff --git a/sites/docs/src/content/learn/pathway/tutorial/advanced-ui.md b/sites/docs/src/content/learn/pathway/tutorial/advanced-ui.md index 482152b8ee4..cc64da19da5 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/advanced-ui.md +++ b/sites/docs/src/content/learn/pathway/tutorial/advanced-ui.md @@ -99,7 +99,7 @@ contents with the following starter code: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() { runApp(const RolodexApp()); @@ -356,7 +356,7 @@ add the `ContactGroup` class: ```dart import 'dart:collection'; -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_dart/cupertino.dart'; import 'contact.dart'; @@ -507,7 +507,7 @@ import the new data file: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'data/contact_group.dart'; diff --git a/sites/docs/src/content/learn/pathway/tutorial/layout.md b/sites/docs/src/content/learn/pathway/tutorial/layout.md index a164584ac30..b8e85ac08c6 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/layout.md +++ b/sites/docs/src/content/learn/pathway/tutorial/layout.md @@ -35,8 +35,8 @@ This includes high-level widgets like as well as lower-level widgets like [`Column`][] or [`Row`][] that lay out widgets vertically or horizontally. -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html -[`AppBar`]: {{site.api}}/flutter/material/AppBar-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html +[`AppBar`]: {{site.material_ui}}/AppBar-class.html [`Column`]: {{site.api}}/flutter/widgets/Column-class.html [`Row`]: {{site.api}}/flutter/widgets/Row-class.html diff --git a/sites/docs/src/content/learn/pathway/tutorial/listenable-builder.md b/sites/docs/src/content/learn/pathway/tutorial/listenable-builder.md index 86c980e24e5..008d0728a96 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/listenable-builder.md +++ b/sites/docs/src/content/learn/pathway/tutorial/listenable-builder.md @@ -46,7 +46,7 @@ Start by creating the basic stateful structure: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class ArticleView extends StatefulWidget { const ArticleView({super.key}); diff --git a/sites/docs/src/content/learn/pathway/tutorial/navigation.md b/sites/docs/src/content/learn/pathway/tutorial/navigation.md index a1c4998b87b..ca3ce354422 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/navigation.md +++ b/sites/docs/src/content/learn/pathway/tutorial/navigation.md @@ -180,7 +180,7 @@ update the large screen layout: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contact_groups.dart'; import 'contacts.dart'; diff --git a/sites/docs/src/content/learn/pathway/tutorial/set-up-state-project.md b/sites/docs/src/content/learn/pathway/tutorial/set-up-state-project.md index b1aa0b938f2..c16172ee1da 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/set-up-state-project.md +++ b/sites/docs/src/content/learn/pathway/tutorial/set-up-state-project.md @@ -343,7 +343,7 @@ this basic structure, which adds required imports that the app uses: import 'dart:convert'; import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:http/http.dart'; import 'summary.dart'; diff --git a/sites/docs/src/content/learn/pathway/tutorial/slivers.md b/sites/docs/src/content/learn/pathway/tutorial/slivers.md index 4a0221756e5..c95455e4de0 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/slivers.md +++ b/sites/docs/src/content/learn/pathway/tutorial/slivers.md @@ -67,7 +67,7 @@ adding `_ContactGroupsView` to the bottom of the file. ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import '../data/contact_group.dart'; import '../main.dart'; @@ -246,7 +246,7 @@ update `lib/screens/adaptive_layout.dart` to display the contacts list page: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; import 'contacts.dart'; diff --git a/sites/docs/src/content/learn/pathway/tutorial/user-input.md b/sites/docs/src/content/learn/pathway/tutorial/user-input.md index 40b37408fcc..d044aa2d075 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/user-input.md +++ b/sites/docs/src/content/learn/pathway/tutorial/user-input.md @@ -28,8 +28,8 @@ but it needs a way for the user to input those guesses. In this lesson, build that functionality with two interaction widgets: [`TextField`][] and [`IconButton`][]. -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html -[`IconButton`]: {{site.api}}/flutter/material/IconButton-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html +[`IconButton`]: {{site.material_ui}}/IconButton-class.html ### Implement callback functions @@ -622,10 +622,10 @@ class GuessInput extends StatelessWidget { This method does the same as the `onSubmitted` callback on the `TextField`. -[`Icon`]: {{site.api}}/flutter/material/Icons-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`IconButton`]: {{site.api}}/flutter/material/IconButton-class.html +[`Icon`]: {{site.material_ui}}/Icons-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`IconButton`]: {{site.material_ui}}/IconButton-class.html :::note Challenge - Share "on submitted" logic. diff --git a/sites/docs/src/content/learn/pathway/tutorial/widget-fundamentals.md b/sites/docs/src/content/learn/pathway/tutorial/widget-fundamentals.md index 2b2123ff67f..4473175385c 100644 --- a/sites/docs/src/content/learn/pathway/tutorial/widget-fundamentals.md +++ b/sites/docs/src/content/learn/pathway/tutorial/widget-fundamentals.md @@ -37,7 +37,7 @@ Before you move on, you need to add this logic to your app. add an import to it from your `lib/main.dart` file: ```dart title="main.dart" highlightLines=3 - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'game.dart'; ``` diff --git a/sites/docs/src/content/packages-and-plugins/using-packages.md b/sites/docs/src/content/packages-and-plugins/using-packages.md index c4d3d7ce143..fc5a86dfce8 100644 --- a/sites/docs/src/content/packages-and-plugins/using-packages.md +++ b/sites/docs/src/content/packages-and-plugins/using-packages.md @@ -9,55 +9,27 @@ Flutter supports using shared packages contributed by other developers to the Flutter and Dart ecosystems. This allows quickly building an app without having to develop everything from scratch. -:::note Difference between packages and plugins -A plugin is a _type_ of package—the -full designation is _plugin package_, -which is generally shortened to _plugin_. - -**Packages** -: At a minimum, a Dart package is a directory - containing a `pubspec.yaml` file. Additionally, - a package can contain dependencies - (listed in the pubspec), Dart libraries, apps, - resources, tests, images, fonts, and examples. - The [pub.dev][] site lists many packages—developed by Google engineers - and generous members of the Flutter and Dart community— - that you can use in your app. - -**Plugins** -: A plugin package is a special kind of package that makes - platform functionality available to the app. - Plugin packages can be written for Android (using Kotlin or Java), - iOS (using Swift or Objective-C), web, macOS, Windows, Linux, - or any combination thereof. - For example, a plugin might provide Flutter apps - with the ability to use a device's camera. - - -::: - -Existing packages enable many use cases—for example, -making network requests ([`http`][]), -navigation/route handling ([`go_router`][]), -integration with device APIs -([`url_launcher`][] and [`battery_plus`][]), -and using third-party platform SDKs like Firebase -([FlutterFire][]). - +This page discusses using both [packages][] and [plugins][]. To write a new package, see [developing packages][]. -To add assets, images, or fonts, -whether stored in files or packages, -see [Adding assets and images][]. -[Adding assets and images]: /ui/assets/assets-and-images +[packages]: /resources/glossary#package +[plugins]: /resources/glossary#plugin + +When you write an app, existing packages enable many use cases. +For example, as of Flutter 3.47, [the stylized widget libraries +have been moved out of core Flutter to packages that you can import][ui-page]. +Other existing packages enable your app to make +network requests ([`http`][]), handle navigation ([`go_router`][]), +integrate with device APIs ([`url_launcher`][] and [`battery_plus`][]), +and use third-party platform SDKs like Firebase ([FlutterFire][]). + [`battery_plus`]: {{site.pub-pkg}}/battery_plus [developing packages]: /packages-and-plugins/developing-packages [FlutterFire]: {{site.repo.flutterfire}} - -[`go_router`]: {{site.pub-pkg}}/go_router [`http`]: /cookbook/networking/fetch-data +[`go_router`]: {{site.pub-pkg}}/go_router [pub.dev]: {{site.pub}} +[ui-page]: /ui [`url_launcher`]: {{site.pub-pkg}}/url_launcher ## Using packages @@ -175,7 +147,7 @@ specifying dependencies. ```yaml dependencies: url_launcher: ^5.4.0 # Good, any version >= 5.4.0 but < 6.0.0 - image_picker: '5.4.3' # Not so good, only version 5.4.3 works. + image_picker: '5.4.3' # Not as good, only version 5.4.3 works. ``` If `some_package` declares the dependencies above @@ -398,7 +370,7 @@ To use this package: ```dart import 'package:english_words/english_words.dart'; - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; void main() { runApp(const MyApp()); @@ -460,7 +432,7 @@ To use this plugin: ```dart - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { diff --git a/sites/docs/src/content/perf/best-practices.md b/sites/docs/src/content/perf/best-practices.md index 833c48af85e..fdd056ec8a7 100644 --- a/sites/docs/src/content/perf/best-practices.md +++ b/sites/docs/src/content/perf/best-practices.md @@ -204,7 +204,7 @@ and are potentially costly: * [`Text`][]—might trigger a call to `saveLayer()` if there's an `overflowShader` -[`Chip`]: {{site.api}}/flutter/material/Chip-class.html +[`Chip`]: {{site.material_ui}}/Chip-class.html [`ColorFilter`]: {{site.api}}/flutter/dart-ui/ColorFilter-class.html [`FadeInImage`]: {{site.api}}/flutter/widgets/FadeInImage-class.html [`Opacity`]: {{site.api}}/flutter/widgets/Opacity-class.html diff --git a/sites/docs/src/content/perf/deferred-components.md b/sites/docs/src/content/perf/deferred-components.md index 8fd5561e381..259faecb930 100644 --- a/sites/docs/src/content/perf/deferred-components.md +++ b/sites/docs/src/content/perf/deferred-components.md @@ -223,7 +223,7 @@ create `box.dart` with the following contents: ```dart title="box.dart" -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; /// A simple blue 30x30 box. class DeferredBox extends StatelessWidget { @@ -254,7 +254,7 @@ it has successfully loaded. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'box.dart' deferred as box; diff --git a/sites/docs/src/content/platform-integration/android/compose-activity.md b/sites/docs/src/content/platform-integration/android/compose-activity.md index 1b51f5c4c2b..f5f24f81db1 100644 --- a/sites/docs/src/content/platform-integration/android/compose-activity.md +++ b/sites/docs/src/content/platform-integration/android/compose-activity.md @@ -43,7 +43,7 @@ a specific user interaction, like tapping a button. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; // SECTION 1: START COPYING HERE diff --git a/sites/docs/src/content/platform-integration/android/local-network-permission.md b/sites/docs/src/content/platform-integration/android/local-network-permission.md index d3d8af929e5..5c5a0564abc 100644 --- a/sites/docs/src/content/platform-integration/android/local-network-permission.md +++ b/sites/docs/src/content/platform-integration/android/local-network-permission.md @@ -70,7 +70,7 @@ and open a socket connection: ```dart import 'dart:io'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:permission_handler/permission_handler.dart'; Future connectToLocalDevice({ diff --git a/sites/docs/src/content/platform-integration/android/platform-views.md b/sites/docs/src/content/platform-integration/android/platform-views.md index 320eb8674cf..4df6b0f6b44 100644 --- a/sites/docs/src/content/platform-integration/android/platform-views.md +++ b/sites/docs/src/content/platform-integration/android/platform-views.md @@ -162,7 +162,7 @@ use the following instructions: ```dart import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; ``` @@ -224,7 +224,7 @@ use the following instructions: ```dart - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; ``` diff --git a/sites/docs/src/content/platform-integration/android/restore-state-android.md b/sites/docs/src/content/platform-integration/android/restore-state-android.md index d8d38f5470d..57585aea324 100644 --- a/sites/docs/src/content/platform-integration/android/restore-state-android.md +++ b/sites/docs/src/content/platform-integration/android/restore-state-android.md @@ -147,4 +147,4 @@ check out the following resources. [`RestorableProperty`]: {{site.api}}/flutter/widgets/RestorableProperty-class.html [`restorablePush`]: {{site.api}}/flutter/widgets/Navigator/restorablePush.html [`ScrollView`]: {{site.api}}/flutter/widgets/ScrollView/restorationId.html -[`TextField`]: {{site.api}}/flutter/material/TextField/restorationId.html +[`TextField`]: {{site.material_ui}}/TextField/restorationId.html diff --git a/sites/docs/src/content/platform-integration/platform-channels.md b/sites/docs/src/content/platform-integration/platform-channels.md index 310a6f42b0a..0de92bccc0e 100644 --- a/sites/docs/src/content/platform-integration/platform-channels.md +++ b/sites/docs/src/content/platform-integration/platform-channels.md @@ -278,7 +278,7 @@ prefix', for example: `samples.flutter.dev/battery`. ```dart import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; ``` diff --git a/sites/docs/src/content/platform-integration/web/embedding-flutter-web.md b/sites/docs/src/content/platform-integration/web/embedding-flutter-web.md index 5542ed17b93..bb46ab14629 100644 --- a/sites/docs/src/content/platform-integration/web/embedding-flutter-web.md +++ b/sites/docs/src/content/platform-integration/web/embedding-flutter-web.md @@ -62,55 +62,16 @@ choose between `iframe` embedding and direct DOM embedding (`hostElement` or multi-view) based on your isolation, performance, and communication requirements: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Featureiframe embeddingDirect DOM embedding (hostElement / multi-view)
Isolation & sandboxingFull browser sandboxing with separate JS global scope, DOM tree, - and CSS styles.Shares the same DOM tree and JavaScript context.
Memory & engine instancesEach iframe initializes its own Flutter engine, - WebAssembly/JS runtime, and memory heap.A single Flutter engine instance and memory heap can manage - one or more views (when using multiview).
JavaScript interopCommunication requires asynchronous messaging - (such as postMessage).Direct synchronous communication using - package:web and dart:js_interop.
Styling & layoutIndependent frame isolated from host page CSS.Direct integration into host page CSS layout - (such as flexbox and grid).
State sharingState must be synchronized across window boundaries.Direct state sharing in Dart across all attached views.
Best forThird-party widgets, untrusted content, isolated micro-frontends, - or simple drop-in embeds.Embedded UI components in existing web apps, multi-view dashboards, - and tight host-app integration.
+| Feature | `iframe` embedding | Direct DOM embedding (`hostElement` / multiview) | +| --- | --- | --- | +| **Isolation & sandboxing** | Full browser sandboxing with separate JS global scope, DOM tree, and CSS styles | Shares the same DOM tree and JavaScript context | +| **Memory & engine instances** | Each `iframe` initializes its own Flutter engine, WebAssembly/JS runtime, and memory heap | A single Flutter engine instance and memory heap can manage one or more views (when using multiview) | +| **JavaScript interop** | Communication requires asynchronous messaging (such as `postMessage`) | Direct synchronous communication using `package:web` and `dart:js_interop` | +| **Styling & layout** | Independent frame isolated from host page CSS | Direct integration into host page CSS layout (such as flexbox and grid) | `CupertinoPageScaffold` | +| **State sharing** | State must be synchronized across window boundaries | Direct state sharin in Dart across all attached views | +| **Best for** | Third-party widgets, untrusted content, isolated micro-frontends, or simple drop-in embeds. | Embedded UI components in existing web apps, multi-view dashboards, and tight host-app integration | + +{:.table .table-striped} ## Embedded mode diff --git a/sites/docs/src/content/platform-integration/web/web-content-in-flutter.md b/sites/docs/src/content/platform-integration/web/web-content-in-flutter.md index 676373587a0..ec68b2d9fd9 100644 --- a/sites/docs/src/content/platform-integration/web/web-content-in-flutter.md +++ b/sites/docs/src/content/platform-integration/web/web-content-in-flutter.md @@ -182,9 +182,9 @@ The Flutter team offers a plugin for this purpose: * [`package:webview_flutter`][] [JS Interoperability]: {{site.dart-site}}/interop/js-interop -[`Drawer`]: {{site.api}}/flutter/material/Drawer-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`FloatingActionButton`]: {{site.api}}/flutter/material/FloatingActionButton-class.html +[`Drawer`]: {{site.material_ui}}/Drawer-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`FloatingActionButton`]: {{site.material_ui}}/FloatingActionButton-class.html [`HtmlElementView.fromTagName` constructor]: {{site.api}}/flutter/widgets/HtmlElementView/HtmlElementView.fromTagName.html [`HtmlElementView` widget]: {{site.api}}/flutter/widgets/HtmlElementView-class.html [`HTMLVideoElement` class]: {{site.pub}}/documentation/web/latest/web/HTMLVideoElement-extension-type.html diff --git a/sites/docs/src/content/release/archive-whats-new.md b/sites/docs/src/content/release/archive-whats-new.md index 68b28095f64..f5d2a6674c5 100644 --- a/sites/docs/src/content/release/archive-whats-new.md +++ b/sites/docs/src/content/release/archive-whats-new.md @@ -297,7 +297,7 @@ This website release includes several important updates! * DevTools also has updates. Check out the release notes for [DevTools 2.35.0][], [DevTools 2.36.0][], and [DevTools 2.37.2][]. -[`CarouselView`]: {{site.api}}/flutter/material/CarouselView-class.html +[`CarouselView`]: {{site.material_ui}}/CarouselView-class.html [Cupertino catalog]: /ui/widgets/cupertino [DevTools 2.35.0]: /tools/devtools/release-notes/release-notes-2.35.0 [DevTools 2.36.0]: /tools/devtools/release-notes/release-notes-2.36.0 @@ -774,31 +774,6 @@ and [Introducing Dart 3 alpha][]. ready for a stable release, you can find more information on our [Flutter GitHub wiki][Impeller]. -{% comment %} - -* Missing docs (xxx): - * Frame analysis tab in Performance view - Kenzie - * Menu bars (M3) - Greg Spencer - No docs yet (other than API docs) - * Cascading menus (M3) - Greg Spencer - No docs yet (other than API docs) - * Custom context menus - Justin - No docs yet (he volunteered to do something after 3.7) - * CupertinoListSelection, CupertinoListTile (new Cupertino) - Mitchell Goodwin - * AnimatedGrid, AnimatedSliverGrid (new widgets) - Kate - * Material 3 - what had been worked on? started? who in eng owns this? - * Global selection improvements - ChunHeng Tai (chtai) - * magnification property (who owns this? - I asked Justin) - No docs yet (other than API docs) - - * Implementing iOS PlatformView BackdropFilter. (Blur) - Leigha and Chris Yang - - * Memory management updates - Zach Anderson - * toImageSync - new API for rendering improvement - Zach Anderson - Nope, nothing available - * Font asset hot reload - Jonah -{% endcomment -%} - [Add a Flutter screen to an iOS app]: /add-to-app/ios/add-flutter-screen [Adding an iOS clip target]: /platform-integration/ios/ios-app-clip [Creating Flavors for Flutter]: /deployment/flavors @@ -1672,9 +1647,9 @@ Happy Fluttering! [Improving Flutter's Error Messages]: {{site.flutter-blog}}/improving-flutters-error-messages-e098513cecf9 [Performance view]: /tools/devtools/performance [preparing a web app for release]: /deployment/web -[`SelectableText`]: {{site.api}}/flutter/material/SelectableText-class.html +[`SelectableText`]: {{site.material_ui}}/SelectableText-class.html [Showcase]: {{site.main-url}}/showcase -[`ToggleButtons`]: {{site.api}}/flutter/material/ToggleButtons-class.html +[`ToggleButtons`]: {{site.material_ui}}/ToggleButtons-class.html [ToggleButtons demo]: https://github.com/csells/flutter_toggle_buttons [using the dart:ffi library]: /platform-integration/legacy-ffi-plugin @@ -1723,7 +1698,7 @@ component and how to customize it, see [Performance best practices]: /perf/best-practices [Performance profiling]: /perf/ui-performance [Preparing an Android app for release]: /deployment/android -[`RangeSlider`]: {{site.api}}/flutter/material/RangeSlider-class.html +[`RangeSlider`]: {{site.material_ui}}/RangeSlider-class.html [Simple app state management]: /data-and-backend/state-mgmt/simple ## 07 May 2019: Google I/O 2019: 1.5 release diff --git a/sites/docs/src/content/release/breaking-changes/1-22-deprecations.md b/sites/docs/src/content/release/breaking-changes/1-22-deprecations.md index c69c97b46ea..3f555790817 100644 --- a/sites/docs/src/content/release/breaking-changes/1-22-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/1-22-deprecations.md @@ -84,8 +84,8 @@ Relevant PRs: * Deprecated in [#20649][] * Removed in [#73604][] -[`CupertinoAlertDialog`]: {{site.api}}/flutter/cupertino/CupertinoAlertDialog-class.html -[`CupertinoPopupSurface`]: {{site.api}}/flutter/cupertino/CupertinoPopupSurface-class.html +[`CupertinoAlertDialog`]: {{site.cupertino_ui}}/CupertinoAlertDialog-class.html +[`CupertinoPopupSurface`]: {{site.cupertino_ui}}/CupertinoPopupSurface-class.html [Deprecate CupertinoDialog class]: {{site.repo.flutter}}/issues/20397 [#20649]: {{site.repo.flutter}}/pull/20649 [#73604]: {{site.repo.flutter}}/pull/73604 @@ -148,10 +148,10 @@ Relevant PRs: * Deprecated in [#23759][] * Removed in [#73745][] -[`CupertinoNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoNavigationBar-class.html -[`CupertinoSliverNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoSliverNavigationBar-class.html -[`CupertinoTheme`]: {{site.api}}/flutter/cupertino/CupertinoTheme-class.html -[`CupertinoThemeData`]: {{site.api}}/flutter/cupertino/CupertinoThemeData-class.html +[`CupertinoNavigationBar`]: {{site.cupertino_ui}}/CupertinoNavigationBar-class.html +[`CupertinoSliverNavigationBar`]: {{site.cupertino_ui}}/CupertinoSliverNavigationBar-class.html +[`CupertinoTheme`]: {{site.cupertino_ui}}/CupertinoTheme-class.html +[`CupertinoThemeData`]: {{site.cupertino_ui}}/CupertinoThemeData-class.html [Create a CupertinoApp and a CupertinoTheme]: {{site.repo.flutter}}/issues/18037 [#23759]: {{site.repo.flutter}}/pull/23759 [#73745]: {{site.repo.flutter}}/pull/73745 @@ -198,7 +198,7 @@ Relevant PRs: * Deprecated in [#41859][] * Removed in [#72017][] -[`CupertinoTextThemeData`]: {{site.api}}/flutter/cupertino/CupertinoTextThemeData-class.html +[`CupertinoTextThemeData`]: {{site.cupertino_ui}}/CupertinoTextThemeData-class.html [Revise CupertinoColors and CupertinoTheme for dynamic colors]: {{site.repo.flutter}}/issues/35541 [#41859]: {{site.repo.flutter}}/pull/41859 [#72017]: {{site.repo.flutter}}/pull/72017 @@ -289,7 +289,7 @@ Relevant PRs: * Deprecated in [#15303][] * Removed in [#72532][] -[`showDialog`]: {{site.api}}/flutter/material/showDialog.html +[`showDialog`]: {{site.material_ui}}/showDialog.html [showDialog should take a builder rather than a child]: {{site.repo.flutter}}/issues/14341 [#15303]: {{site.repo.flutter}}/pull/15303 [#72532]: {{site.repo.flutter}}/pull/72532 @@ -336,7 +336,7 @@ Relevant PRs: * Deprecated in [#26259][] * Removed in [#72890][] -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html [Show warning when nesting Scaffolds]: {{site.repo.flutter}}/issues/23106 [SafeArea with keyboard]: {{site.repo.flutter}}/issues/25758 [Double stacked material scaffolds shouldn't double resizeToAvoidBottomPadding]: {{site.repo.flutter}}/issues/12084 @@ -420,15 +420,15 @@ Relevant PRs: * Deprecated in [#37544][] * Removed in [#73746][] -[`ButtonTheme`]: {{site.api}}/flutter/material/ButtonTheme-class.html -[`ButtonBarTheme`]: {{site.api}}/flutter/material/ButtonBarTheme-class.html -[`ButtonBar`]: {{site.api}}/flutter/material/ButtonBar-class.html -[`TextButtonTheme`]: {{site.api}}/flutter/material/TextButtonTheme-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html -[`ElevatedButtonTheme`]: {{site.api}}/flutter/material/ElevatedButtonTheme-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`OutlinedButtonTheme`]: {{site.api}}/flutter/material/OutlinedButtonTheme-class.html -[`OutlinedButton`]: {{site.api}}/flutter/material/OutlinedButton-class.html +[`ButtonTheme`]: {{site.material_ui}}/ButtonTheme-class.html +[`ButtonBarTheme`]: {{site.material_ui}}/ButtonBarTheme-class.html +[`ButtonBar`]: {{site.material_ui}}/ButtonBar-class.html +[`TextButtonTheme`]: {{site.material_ui}}/TextButtonTheme-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html +[`ElevatedButtonTheme`]: {{site.material_ui}}/ElevatedButtonTheme-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`OutlinedButtonTheme`]: {{site.material_ui}}/OutlinedButtonTheme-class.html +[`OutlinedButton`]: {{site.material_ui}}/OutlinedButton-class.html [ButtonTheme.bar uses accent color when it should be using primary color]: {{site.repo.flutter}}/issues/31333 [ThemeData.accentColor has insufficient contrast for text]: {{site.repo.flutter}}/issues/19946 [Increased height as a result of changes to materialTapTargetSize affecting AlertDialog/ButtonBar heights]: {{site.repo.flutter}}/issues/20585 diff --git a/sites/docs/src/content/release/breaking-changes/2-10-deprecations.md b/sites/docs/src/content/release/breaking-changes/2-10-deprecations.md index 594a5eef713..d2a31eba582 100644 --- a/sites/docs/src/content/release/breaking-changes/2-10-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/2-10-deprecations.md @@ -98,9 +98,9 @@ Relevant PRs: * Removed in [#98539]({{site.repo.flutter}}/pull/98539) [In-depth migration guide available]: /release/breaking-changes/use-maxLengthEnforcement-instead-of-maxLengthEnforced -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html -[`TextFormField`]: {{site.api}}/flutter/material/TextFormField-class.html -[`CupertinoTextField`]: {{site.api}}/flutter/cupertino/CupertinoTextField-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html +[`TextFormField`]: {{site.material_ui}}/TextFormField-class.html +[`CupertinoTextField`]: {{site.cupertino_ui}}/CupertinoTextField-class.html --- @@ -179,8 +179,8 @@ Relevant PRs: * Removed in [#98543]({{site.repo.flutter}}/issues/98543) [Material Date Picker Redesign]: /go/material-date-picker-redesign -[`CalendarDatePicker`]: {{site.api}}/flutter/material/CalendarDatePicker-class.html -[`showDatePicker`]: {{site.api}}/flutter/material/showDatePicker.html +[`CalendarDatePicker`]: {{site.material_ui}}/CalendarDatePicker-class.html +[`showDatePicker`]: {{site.material_ui}}/showDatePicker.html --- @@ -279,17 +279,17 @@ Relevant PRs: [In-depth migration guide available for detailed styling]: /release/breaking-changes/buttons [New Material buttons and themes]: /go/material-button-migration-guide -[`ButtonStyle`]: {{site.api}}/flutter/material/ButtonStyle-class.html -[`ButtonStyleButton`]: {{site.api}}/flutter/material/ButtonStyleButton-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`ElevatedButtonTheme`]: {{site.api}}/flutter/material/ElevatedButtonTheme-class.html -[`ElevatedButtonThemeData`]: {{site.api}}/flutter/material/ElevatedButtonThemeData-class.html -[`OutlinedButton`]: {{site.api}}/flutter/material/OutlinedButton-class.html -[`OutlinedButtonTheme`]: {{site.api}}/flutter/material/OutlinedButtonTheme-class.html -[`OutlinedButtonThemeData`]: {{site.api}}/flutter/material/OutlinedButtonThemeData-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html -[`TextButtonTheme`]: {{site.api}}/flutter/material/TextButtonTheme-class.html -[`TextButtonThemeData`]: {{site.api}}/flutter/material/TextButtonThemeData-class.html +[`ButtonStyle`]: {{site.material_ui}}/ButtonStyle-class.html +[`ButtonStyleButton`]: {{site.material_ui}}/ButtonStyleButton-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`ElevatedButtonTheme`]: {{site.material_ui}}/ElevatedButtonTheme-class.html +[`ElevatedButtonThemeData`]: {{site.material_ui}}/ElevatedButtonThemeData-class.html +[`OutlinedButton`]: {{site.material_ui}}/OutlinedButton-class.html +[`OutlinedButtonTheme`]: {{site.material_ui}}/OutlinedButtonTheme-class.html +[`OutlinedButtonThemeData`]: {{site.material_ui}}/OutlinedButtonThemeData-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html +[`TextButtonTheme`]: {{site.material_ui}}/TextButtonTheme-class.html +[`TextButtonThemeData`]: {{site.material_ui}}/TextButtonThemeData-class.html --- @@ -356,8 +356,8 @@ Relevant PRs: [ScaffoldMessenger Design]: /go/scaffold-messenger [SnackBar Delivery]: https://youtu.be/sYG7HAGu_Eg?t=10271 [Widget of the Week]: https://youtu.be/lytQi-slT5Y -[`ScaffoldMessenger`]: {{site.api}}/flutter/material/ScaffoldMessenger-class.html -[`SnackBar`]: {{site.api}}/flutter/material/SnackBar-class.html +[`ScaffoldMessenger`]: {{site.material_ui}}/ScaffoldMessenger-class.html +[`SnackBar`]: {{site.material_ui}}/SnackBar-class.html --- @@ -395,7 +395,7 @@ Relevant PRs: * Deprecated in [#65246]({{site.repo.flutter}}/issues/65246) * Removed in [#98613]({{site.repo.flutter}}/issues/98613) -[`RectangularSliderTrackShape`]: {{site.api}}/flutter/material/RectangularSliderTrackShape-class.html +[`RectangularSliderTrackShape`]: {{site.material_ui}}/RectangularSliderTrackShape-class.html --- @@ -469,8 +469,8 @@ Relevant PRs: [In-depth migration guide available]: /release/breaking-changes/text-selection-theme [Text Selection Theme]: /go/text-selection-theme -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html -[`TextSelectionThemeData`]: {{site.api}}/flutter/material/TextSelectionThemeData-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html +[`TextSelectionThemeData`]: {{site.material_ui}}/TextSelectionThemeData-class.html --- diff --git a/sites/docs/src/content/release/breaking-changes/2-2-deprecations.md b/sites/docs/src/content/release/breaking-changes/2-2-deprecations.md index 95148b13d86..d9b8efe73ee 100644 --- a/sites/docs/src/content/release/breaking-changes/2-2-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/2-2-deprecations.md @@ -108,9 +108,9 @@ Relevant PRs: * Deprecated in [#46115][] * Removed in [#83923][] -[`InputDecoration`]: {{site.api}}/flutter/material/InputDecoration-class.html -[`InputDecorationTheme`]: {{site.api}}/flutter/material/InputDecorationTheme-class.html -[`FloatingLabelBehavior`]: {{site.api}}/flutter/material/FloatingLabelBehavior-class.html +[`InputDecoration`]: {{site.material_ui}}/InputDecoration-class.html +[`InputDecorationTheme`]: {{site.material_ui}}/InputDecorationTheme-class.html +[`FloatingLabelBehavior`]: {{site.material_ui}}/FloatingLabelBehavior-class.html [InputDecoration: option to always float label]: {{site.repo.flutter}}/issues/30664 [#46115]: {{site.repo.flutter}}/pull/46115 [#83923]: {{site.repo.flutter}}/pull/83923 @@ -268,7 +268,7 @@ Relevant PRs: * Removed in [#83924][] [Update the TextTheme API]: /go/update-text-theme-api -[`TextTheme`]: {{site.api}}/flutter/material/TextTheme-class.html +[`TextTheme`]: {{site.material_ui}}/TextTheme-class.html [Migrate TextTheme to 2018 APIs]: {{site.repo.flutter}}/issues/45745 [#48547]: {{site.repo.flutter}}/pull/48547 [#83924]: {{site.repo.flutter}}/pull/83924 @@ -324,7 +324,7 @@ Relevant PRs: * Removed in [#83924][] [Update the TextTheme API]: /go/update-text-theme-api -[`Typography`]: {{site.api}}/flutter/material/Typography-class.html +[`Typography`]: {{site.material_ui}}/Typography-class.html [Migrate TextTheme to 2018 APIs]: {{site.repo.flutter}}/issues/45745 [#48547]: {{site.repo.flutter}}/pull/48547 [#83924]: {{site.repo.flutter}}/pull/83924 diff --git a/sites/docs/src/content/release/breaking-changes/2-5-deprecations.md b/sites/docs/src/content/release/breaking-changes/2-5-deprecations.md index 559ef74e7a6..1e0902f6607 100644 --- a/sites/docs/src/content/release/breaking-changes/2-5-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/2-5-deprecations.md @@ -111,8 +111,8 @@ Relevant PRs: [`Form`]: {{site.api}}/flutter/widgets/Form-class.html [`FormField`]: {{site.api}}/flutter/widgets/FormField-class.html -[`TextFormField`]: {{site.api}}/flutter/material/TextFormField-class.html -[`DropdownButtonFormField`]: {{site.api}}/flutter/material/DropdownButtonFormField-class.html +[`TextFormField`]: {{site.material_ui}}/TextFormField-class.html +[`DropdownButtonFormField`]: {{site.material_ui}}/DropdownButtonFormField-class.html [`AutovalidateMode`]: {{site.api}}/flutter/widgets/AutovalidateMode-class.html --- @@ -357,8 +357,8 @@ Relevant PRs: [In-depth migration guide available]: /release/breaking-changes/bottom-navigation-title-to-label [BottomNavigationBarItem title]: /go/bottom-navigation-bar-title-deprecation [`BottomNavigationBarItem`]: {{site.api}}/flutter/widgets/BottomNavigationBarItem-class.html -[`BottomNavigationBar`]: {{site.api}}/flutter/material/BottomNavigationBar-class.html -[`Tooltip`]: {{site.api}}/flutter/material/Tooltip-class.html +[`BottomNavigationBar`]: {{site.material_ui}}/BottomNavigationBar-class.html +[`Tooltip`]: {{site.material_ui}}/Tooltip-class.html --- diff --git a/sites/docs/src/content/release/breaking-changes/3-10-deprecations.md b/sites/docs/src/content/release/breaking-changes/3-10-deprecations.md index 4daab7f9cac..7ccb67494cc 100644 --- a/sites/docs/src/content/release/breaking-changes/3-10-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/3-10-deprecations.md @@ -63,7 +63,7 @@ Relevant PRs: * Deprecated in [#87281][] * Removed in [#125893][] -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html [#87281]: {{site.repo.flutter}}/pull/87281 [#125893]: {{site.repo.flutter}}/pull/125893 @@ -180,7 +180,7 @@ Relevant PRs: [ColorScheme for Material 3]: /go/colorscheme-m3 -[`ColorScheme`]: {{site.api}}/flutter/material/ColorScheme-class.html +[`ColorScheme`]: {{site.material_ui}}/ColorScheme-class.html [#93427]: {{site.repo.flutter}}/pull/93427 [#127124]: {{site.repo.flutter}}/pull/127124 @@ -238,8 +238,8 @@ Relevant PRs: [Material Theme System Updates]: /go/material-theme-system-updates -[`Theme`]: {{site.api}}/flutter/material/Theme-class.html -[`ThemeData`]: {{site.api}}/flutter/material/Theme-class.html +[`Theme`]: {{site.material_ui}}/Theme-class.html +[`ThemeData`]: {{site.material_ui}}/Theme-class.html [`Brightness`]: {{site.api}}/flutter/dart-ui/Brightness.html [#93396]: {{site.repo.flutter}}/pull/93396 @@ -329,11 +329,11 @@ Relevant PRs: [`RawScrollbar`]: {{site.api}}/flutter/widgets/RawScrollbar-class.html -[`Scrollbar`]: {{site.api}}/flutter/material/Scrollbar-class.html -[`CupertinoScrollbar`]: {{site.api}}/flutter/cupertino/CupertinoScrollbar-class.html -[`ScrollbarThemeData`]: {{site.api}}/flutter/material/ScrollbarThemeData-class.html -[`MaterialStateProperty`]: {{site.api}}/flutter/material/MaterialStateProperty-class.html -[`MaterialState`]: {{site.api}}/flutter/material/MaterialState.html +[`Scrollbar`]: {{site.material_ui}}/Scrollbar-class.html +[`CupertinoScrollbar`]: {{site.cupertino_ui}}/CupertinoScrollbar-class.html +[`ScrollbarThemeData`]: {{site.material_ui}}/ScrollbarThemeData-class.html +[`MaterialStateProperty`]: {{site.material_ui}}/MaterialStateProperty-class.html +[`MaterialState`]: {{site.material_ui}}/MaterialState.html [#96957]: {{site.repo.flutter}}/pull/96957 [#97173]: {{site.repo.flutter}}/pull/97173 diff --git a/sites/docs/src/content/release/breaking-changes/3-13-deprecations.md b/sites/docs/src/content/release/breaking-changes/3-13-deprecations.md index 4b57d4eed1c..b7bd2f39ae3 100644 --- a/sites/docs/src/content/release/breaking-changes/3-13-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/3-13-deprecations.md @@ -84,11 +84,11 @@ Relevant PRs: * Deprecated in [#96174][] * Removed in [#134486][] -[`DeletableChipAttributes`]: {{site.api}}/flutter/material/DeletableChipAttributes-class.html -[`Chip`]: {{site.api}}/flutter/material/Chip-class.html -[`RawChip`]: {{site.api}}/flutter/material/RawChip-class.html -[`InputChip`]: {{site.api}}/flutter/material/InputChip-class.html -[`MaterialLocalizations.deleteButtonTooltip`]: {{site.api}}/flutter/material/MaterialLocalizations/deleteButtonTooltip.html +[`DeletableChipAttributes`]: {{site.material_ui}}/DeletableChipAttributes-class.html +[`Chip`]: {{site.material_ui}}/Chip-class.html +[`RawChip`]: {{site.material_ui}}/RawChip-class.html +[`InputChip`]: {{site.material_ui}}/InputChip-class.html +[`MaterialLocalizations.deleteButtonTooltip`]: {{site.material_ui}}/MaterialLocalizations/deleteButtonTooltip.html [#96174]: {{site.repo.flutter}}/pull/96174 [#134486]: {{site.repo.flutter}}/pull/134486 @@ -308,8 +308,8 @@ Relevant PRs: * Removed in [#133181][] [`ScrollBehavior`]: {{site.api}}/flutter/widgets/ScrollBehavior-class.html -[`MaterialScrollBehavior`]: {{site.api}}/flutter/material/MaterialScrollBehavior-class.html -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html +[`MaterialScrollBehavior`]: {{site.material_ui}}/MaterialScrollBehavior-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html [`GlowingOverscrollIndicator`]: {{site.api}}/flutter/widgets/GlowingOverscrollIndicator-class.html [`StretchingOverscrollIndicator`]: {{site.api}}/flutter/widgets/StretchingOverscrollIndicator-class.html diff --git a/sites/docs/src/content/release/breaking-changes/3-16-deprecations.md b/sites/docs/src/content/release/breaking-changes/3-16-deprecations.md index 1852e53587a..dccebf13f1d 100644 --- a/sites/docs/src/content/release/breaking-changes/3-16-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/3-16-deprecations.md @@ -100,10 +100,10 @@ Relevant PRs: * Deprecated in [#105291][] * Removed in [#139267][] -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`OutlinedButton`]: {{site.api}}/flutter/material/OutlinedButton-class.html -[`ButtonStyle`]: {{site.api}}/flutter/material/ButtonStyle-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`OutlinedButton`]: {{site.material_ui}}/OutlinedButton-class.html +[`ButtonStyle`]: {{site.material_ui}}/ButtonStyle-class.html [#105291]: {{site.repo.flutter}}/pull/105291 [#139267]: {{site.repo.flutter}}/pull/139267 @@ -152,7 +152,7 @@ Relevant PRs: * Deprecated in [#109070][] * Removed in [#139080][] -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html [#109070]: {{site.repo.flutter}}/pull/109070 [#139080]: {{site.repo.flutter}}/pull/139080 diff --git a/sites/docs/src/content/release/breaking-changes/3-19-deprecations.md b/sites/docs/src/content/release/breaking-changes/3-19-deprecations.md index 79912d4f4fd..7f1dfcc1cf8 100644 --- a/sites/docs/src/content/release/breaking-changes/3-19-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/3-19-deprecations.md @@ -170,7 +170,7 @@ Relevant PRs: * Deprecated in [#109817][] * Removed in [#139255][] -[`TextTheme`]: {{site.api}}/flutter/material/TextTheme-class.html +[`TextTheme`]: {{site.material_ui}}/TextTheme-class.html [#109817]: {{site.repo.flutter}}/pull/109817 [#139255]: {{site.repo.flutter}}/pull/139255 @@ -242,9 +242,9 @@ Relevant PRs: * Deprecated in [#110162][], [#111080][], and [#97972][] * Removed in [#144178][], [#144080][], [#144079][], and [#144078][] -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html -[`ColorScheme`]: {{site.api}}/flutter/material/ColorScheme-class.html -[`BottomAppBarTheme`]: {{site.api}}/flutter/material/BottomAppBarTheme-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html +[`ColorScheme`]: {{site.material_ui}}/ColorScheme-class.html +[`BottomAppBarTheme`]: {{site.material_ui}}/BottomAppBarTheme-class.html [#110162]: {{site.repo.flutter}}/pull/110162 [#111080]: {{site.repo.flutter}}/pull/111080 @@ -369,7 +369,7 @@ Relevant PRs: * Deprecated in [#110616][] * Removed in [#143990][] -[`CupertinoContextMenu`]: {{site.api}}/flutter/cupertino/CupertinoContextMenu-class.html +[`CupertinoContextMenu`]: {{site.cupertino_ui}}/CupertinoContextMenu-class.html [#110616]: {{site.repo.flutter}}/pull/110616 [#143990]: {{site.repo.flutter}}/pull/143990 @@ -433,10 +433,10 @@ Relevant PRs: * Deprecated in [#111706][] * Removed in [#144180][] -[`Scrollbar`]: {{site.api}}/flutter/material/Scrollbar-class.html -[`ScrollbarThemeData`]: {{site.api}}/flutter/material/ScrollbarThemeData-class.html -[`MaterialState`]: {{site.api}}/flutter/material/MaterialState-class.html -[`MaterialStateProperty`]: {{site.api}}/flutter/material/MaterialStateProperty-class.html +[`Scrollbar`]: {{site.material_ui}}/Scrollbar-class.html +[`ScrollbarThemeData`]: {{site.material_ui}}/ScrollbarThemeData-class.html +[`MaterialState`]: {{site.material_ui}}/MaterialState-class.html +[`MaterialStateProperty`]: {{site.material_ui}}/MaterialStateProperty-class.html [#111706]: {{site.repo.flutter}}/pull/111706 [#144180]: {{site.repo.flutter}}/pull/144180 diff --git a/sites/docs/src/content/release/breaking-changes/3-7-deprecations.md b/sites/docs/src/content/release/breaking-changes/3-7-deprecations.md index 33dd39aff24..4564f53ae3f 100644 --- a/sites/docs/src/content/release/breaking-changes/3-7-deprecations.md +++ b/sites/docs/src/content/release/breaking-changes/3-7-deprecations.md @@ -294,9 +294,9 @@ Removed in: * [#120575][] -[`AppBar`]: {{site.api}}/flutter/material/AppBar-class.html -[`SliverAppBar`]: {{site.api}}/flutter/material/SliverAppBar-class.html -[`AppBarTheme`]: {{site.api}}/flutter/material/AppBarTheme-class.html +[`AppBar`]: {{site.material_ui}}/AppBar-class.html +[`SliverAppBar`]: {{site.material_ui}}/SliverAppBar-class.html +[`AppBarTheme`]: {{site.material_ui}}/AppBarTheme-class.html [#86127]: {{site.repo.flutter}}/pull/86127 [#70645]: {{site.repo.flutter}}/pull/70645 [#67921]: {{site.repo.flutter}}/pull/67921 diff --git a/sites/docs/src/content/release/breaking-changes/appbar-theme-color.md b/sites/docs/src/content/release/breaking-changes/appbar-theme-color.md index f0f83c3cc0e..1d1e98c9453 100644 --- a/sites/docs/src/content/release/breaking-changes/appbar-theme-color.md +++ b/sites/docs/src/content/release/breaking-changes/appbar-theme-color.md @@ -112,8 +112,8 @@ In stable release: 3.35.4 API documentation: -- [`AppBarTheme`](https://main-api.flutter.dev/flutter/material/AppBarTheme-class.html) -- [`AppBarThemeData`](https://main-api.flutter.dev/flutter/material/AppBarThemeData-class.html) +- [`AppBarTheme`]({{site.material_ui}}/AppBarTheme-class.html) +- [`AppBarThemeData`]({{site.material_ui}}/AppBarThemeData-class.html) Relevant PRs: diff --git a/sites/docs/src/content/release/breaking-changes/buttons.md b/sites/docs/src/content/release/breaking-changes/buttons.md index fcc537bafab..2af2f917186 100644 --- a/sites/docs/src/content/release/breaking-changes/buttons.md +++ b/sites/docs/src/content/release/breaking-changes/buttons.md @@ -666,17 +666,17 @@ Relevant PRs: * [PR 73352: Deprecated obsolete Material classes: FlatButton, RaisedButton, OutlineButton][] -[`ButtonStyle`]: {{site.api}}/flutter/material/ButtonStyle-class.html -[`ButtonStyleButton`]: {{site.api}}/flutter/material/ButtonStyleButton-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html -[`ElevatedButtonTheme`]: {{site.api}}/flutter/material/ElevatedButtonTheme-class.html -[`ElevatedButtonThemeData`]: {{site.api}}/flutter/material/ElevatedButtonThemeData-class.html -[`OutlinedButton`]: {{site.api}}/flutter/material/OutlinedButton-class.html -[`OutlinedButtonTheme`]: {{site.api}}/flutter/material/OutlinedButtonTheme-class.html -[`OutlinedButtonThemeData`]: {{site.api}}/flutter/material/OutlinedButtonThemeData-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html -[`TextButtonTheme`]: {{site.api}}/flutter/material/TextButtonTheme-class.html -[`TextButtonThemeData`]: {{site.api}}/flutter/material/TextButtonThemeData-class.html +[`ButtonStyle`]: {{site.material_ui}}/ButtonStyle-class.html +[`ButtonStyleButton`]: {{site.material_ui}}/ButtonStyleButton-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html +[`ElevatedButtonTheme`]: {{site.material_ui}}/ElevatedButtonTheme-class.html +[`ElevatedButtonThemeData`]: {{site.material_ui}}/ElevatedButtonThemeData-class.html +[`OutlinedButton`]: {{site.material_ui}}/OutlinedButton-class.html +[`OutlinedButtonTheme`]: {{site.material_ui}}/OutlinedButtonTheme-class.html +[`OutlinedButtonThemeData`]: {{site.material_ui}}/OutlinedButtonThemeData-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html +[`TextButtonTheme`]: {{site.material_ui}}/TextButtonTheme-class.html +[`TextButtonThemeData`]: {{site.material_ui}}/TextButtonThemeData-class.html [PR 59702: New Button Universe]: {{site.repo.flutter}}/pull/59702 [PR 73352: Deprecated obsolete Material classes: FlatButton, RaisedButton, OutlineButton]: {{site.repo.flutter}}/pull/73352 diff --git a/sites/docs/src/content/release/breaking-changes/checkbox-fillColor.md b/sites/docs/src/content/release/breaking-changes/checkbox-fillColor.md index 3d2d0958c2e..5ff908fe630 100644 --- a/sites/docs/src/content/release/breaking-changes/checkbox-fillColor.md +++ b/sites/docs/src/content/release/breaking-changes/checkbox-fillColor.md @@ -125,7 +125,7 @@ Relevant PRs: * [`Checkbox.fillColor` should be applied to checkbox's background color when it is unchecked.][] -[`Checkbox.fillColor`]: {{site.api}}/flutter/material/Checkbox/fillColor.html +[`Checkbox.fillColor`]: {{site.material_ui}}/Checkbox/fillColor.html [Add `backgroundColor` to `Checkbox` and `CheckboxThemeData`]: {{site.repo.flutter}}/issues/123386 [`Checkbox.fillColor` should be applied to checkbox's background color when it is unchecked.]: {{site.repo.flutter}}/pull/125643 diff --git a/sites/docs/src/content/release/breaking-changes/chip-usedeletebuttontooltip-migration.md b/sites/docs/src/content/release/breaking-changes/chip-usedeletebuttontooltip-migration.md index e83968c059f..3426b085763 100644 --- a/sites/docs/src/content/release/breaking-changes/chip-usedeletebuttontooltip-migration.md +++ b/sites/docs/src/content/release/breaking-changes/chip-usedeletebuttontooltip-migration.md @@ -87,9 +87,9 @@ Relevant PR: * [Deprecate `useDeleteButtonTooltip` for Chips][] -[`Chip`]: {{site.api}}/flutter/material/Chip-class.html -[`InputChip`]: {{site.api}}/flutter/material/InputChip-class.html -[`RawChip`]: {{site.api}}/flutter/material/RawChip-class.html +[`Chip`]: {{site.material_ui}}/Chip-class.html +[`InputChip`]: {{site.material_ui}}/InputChip-class.html +[`RawChip`]: {{site.material_ui}}/RawChip-class.html [Deprecate `useDeleteButtonTooltip` for Chips]: {{site.repo.flutter}}/pull/96174 [Flutter fix]: /tools/flutter-fix diff --git a/sites/docs/src/content/release/breaking-changes/component-theme-normalization-updates.md b/sites/docs/src/content/release/breaking-changes/component-theme-normalization-updates.md index bbdfdf9a720..ddd59c8a055 100644 --- a/sites/docs/src/content/release/breaking-changes/component-theme-normalization-updates.md +++ b/sites/docs/src/content/release/breaking-changes/component-theme-normalization-updates.md @@ -118,10 +118,10 @@ Relevant PRs: * [Normalize InputDecorationTheme][] * [Apply normalization to TimePickerThemeData.inputDecorationTheme][] -[`AppBarTheme`]: {{site.api}}/flutter/material/AppBarTheme-class.html +[`AppBarTheme`]: {{site.material_ui}}/AppBarTheme-class.html [Normalize ThemeData.appBarTheme]: {{site.repo.flutter}}/pull/169130 -[`BottomAppBarTheme`]: {{site.api}}/flutter/material/BottomAppBarTheme-class.html +[`BottomAppBarTheme`]: {{site.material_ui}}/BottomAppBarTheme-class.html [Normalize ThemeData.bottomAppBarTheme]: {{site.repo.flutter}}/pull/168586 -[`InputDecorationTheme`]: {{site.api}}/flutter/material/InputDecorationTheme-class.html +[`InputDecorationTheme`]: {{site.material_ui}}/InputDecorationTheme-class.html [Normalize InputDecorationTheme]: {{site.repo.flutter}}/pull/168981 [Apply normalization to TimePickerThemeData.inputDecorationTheme]: {{site.repo.flutter}}/pull/171584 diff --git a/sites/docs/src/content/release/breaking-changes/component-theme-normalization.md b/sites/docs/src/content/release/breaking-changes/component-theme-normalization.md index 6be45e83a04..9c66217a644 100644 --- a/sites/docs/src/content/release/breaking-changes/component-theme-normalization.md +++ b/sites/docs/src/content/release/breaking-changes/component-theme-normalization.md @@ -76,10 +76,10 @@ Relevant PRs: * [Normalize ThemeData.dialogTheme][] * [Normalize ThemeData.tabBarTheme][] -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html -[`CardTheme`]: {{site.api}}/flutter/material/CardTheme-class.html -[`DialogTheme`]: {{site.api}}/flutter/material/DialogTheme-class.html -[`TabBarTheme`]: {{site.api}}/flutter/material/TabBarTheme-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html +[`CardTheme`]: {{site.material_ui}}/CardTheme-class.html +[`DialogTheme`]: {{site.material_ui}}/DialogTheme-class.html +[`TabBarTheme`]: {{site.material_ui}}/TabBarTheme-class.html [Normalize ThemeData.cardTheme]: {{site.repo.flutter}}/pull/153254 [Normalize ThemeData.dialogTheme]: {{site.repo.flutter}}/pull/155129 [Normalize ThemeData.tabBarTheme]: {{site.repo.flutter}}/pull/156253 diff --git a/sites/docs/src/content/release/breaking-changes/context-menus.md b/sites/docs/src/content/release/breaking-changes/context-menus.md index a82dff1503d..9eca22e589c 100644 --- a/sites/docs/src/content/release/breaking-changes/context-menus.md +++ b/sites/docs/src/content/release/breaking-changes/context-menus.md @@ -78,9 +78,9 @@ All related deprecated features were flagged with the deprecation warning "Use In general, any previous changes to context menus that have been deprecated now require the use of the `contextMenuBuilder` parameter on the relevant text-editing or text-selection widget ( -[on `TextField`]({{site.api}}/flutter/material/TextField/contextMenuBuilder.html), +[on `TextField`]({{site.material_ui}}/TextField/contextMenuBuilder.html), for example). Return a built-in context menu widget like -[`AdaptiveTextSelectionToolbar`]({{site.api}}/flutter/material/AdaptiveTextSelectionToolbar-class.html) +[`AdaptiveTextSelectionToolbar`]({{site.material_ui}}/AdaptiveTextSelectionToolbar-class.html) to use Flutter's built-in context menus, or return your own widget for something totally custom. @@ -326,8 +326,8 @@ In stable release: 3.7.0 API documentation: -* [`TextField.contextMenuBuilder`]({{site.api}}/flutter/material/TextField/contextMenuBuilder.html) -* [`AdaptiveTextSelectionToolbar`]({{site.api}}/flutter/material/AdaptiveTextSelectionToolbar-class.html) +* [`TextField.contextMenuBuilder`]({{site.material_ui}}/TextField/contextMenuBuilder.html) +* [`AdaptiveTextSelectionToolbar`]({{site.material_ui}}/AdaptiveTextSelectionToolbar-class.html) Relevant issues: diff --git a/sites/docs/src/content/release/breaking-changes/cupertino-icons-1.0.0.md b/sites/docs/src/content/release/breaking-changes/cupertino-icons-1.0.0.md index 099331b897e..842b8d36890 100644 --- a/sites/docs/src/content/release/breaking-changes/cupertino-icons-1.0.0.md +++ b/sites/docs/src/content/release/breaking-changes/cupertino-icons-1.0.0.md @@ -9,7 +9,7 @@ description: > ## Summary -The existing cupertino_icons [0.1.3 icons][] +The existing cupertino_icons, 0.1.3 icons, are based on iOS 11 aesthetics with sharp angles and thin lines. As Apple's iconography updates with new OS versions, @@ -130,5 +130,4 @@ In stable release: 1.22 ## References -[0.1.3 icons]: https://raw.githubusercontent.com/flutter/cupertino_icons/master/map.png -[`CupertinoIcons`]: {{site.api}}/flutter/cupertino/CupertinoIcons-class.html +[`CupertinoIcons`]: {{site.cupertino_ui}}/CupertinoIcons-class.html diff --git a/sites/docs/src/content/release/breaking-changes/cupertino-tab-bar-localizations.md b/sites/docs/src/content/release/breaking-changes/cupertino-tab-bar-localizations.md index 0558361eab0..1cc256388cf 100644 --- a/sites/docs/src/content/release/breaking-changes/cupertino-tab-bar-localizations.md +++ b/sites/docs/src/content/release/breaking-changes/cupertino-tab-bar-localizations.md @@ -52,7 +52,7 @@ provided to your `CupertinoTabBar`. Code before migration: ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() => runApp(Foo()); @@ -82,7 +82,7 @@ class Foo extends StatelessWidget { Code after migration (Providing localizations via the `CupertinoApp`): ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() => runApp(Foo()); @@ -112,7 +112,7 @@ Code after migration (Providing localizations by using the `Localizations` widget): ```dart -import 'package:flutter/cupertino.dart'; +import 'package:cupertino_ui/cupertino.dart'; void main() => runApp(Foo()); @@ -168,11 +168,11 @@ Relevant PR: * [PR 55336: Adding tabSemanticsLabel to CupertinoLocalizations][] * [PR 56582: Update Tab semantics in Cupertino to be the same as Material][] -[`CupertinoTabBar`]: {{site.api}}/flutter/cupertino/CupertinoTabBar-class.html +[`CupertinoTabBar`]: {{site.cupertino_ui}}/CupertinoTabBar-class.html [`Localizations`]: {{site.api}}/flutter/widgets/Localizations-class.html -[`DefaultCupertinoLocalizations`]: {{site.api}}/flutter/cupertino/DefaultCupertinoLocalizations-class.html +[`DefaultCupertinoLocalizations`]: {{site.cupertino_ui}}/DefaultCupertinoLocalizations-class.html [`Semantics`]: {{site.api}}/flutter/widgets/Semantics-class.html -[`CupertinoApp`]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html +[`CupertinoApp`]: {{site.cupertino_ui}}/CupertinoApp-class.html [Internationalizing Flutter Apps]: /ui/internationalization [PR 55336: Adding tabSemanticsLabel to CupertinoLocalizations]: {{site.repo.flutter}}/pull/55336 [PR 56582: Update Tab semantics in Cupertino to be the same as Material]: {{site.repo.flutter}}/pull/56582#issuecomment-625497951 diff --git a/sites/docs/src/content/release/breaking-changes/decouple-page-transition-builders.md b/sites/docs/src/content/release/breaking-changes/decouple-page-transition-builders.md index ef946d61cc1..b83e44f57c0 100644 --- a/sites/docs/src/content/release/breaking-changes/decouple-page-transition-builders.md +++ b/sites/docs/src/content/release/breaking-changes/decouple-page-transition-builders.md @@ -10,7 +10,8 @@ description: >- ## Summary `CupertinoPageTransitionsBuilder` has been relocated from -`package:flutter/material.dart` to `package:flutter/cupertino.dart`. +`package:material_ui/material.dart` to the Cupertino package, +which is now in `package:cupertino_ui/cupertino.dart`. ## Background @@ -43,13 +44,13 @@ use this builder without depending on the Material library. ## Migration guide If you use `CupertinoPageTransitionsBuilder` and -only import `package:flutter/material.dart`, -add an import for `package:flutter/cupertino.dart`. +only import `package:material_ui/material.dart`, +add an import for `package:cupertino_ui/cupertino.dart`. Code before migration: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; final pageTransitionsTheme = PageTransitionsTheme( builders: { @@ -62,8 +63,8 @@ final pageTransitionsTheme = PageTransitionsTheme( Code after migration: ```dart -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; +import 'package:cupertino_ui/cupertino.dart'; +import 'package:material_ui/material.dart'; final pageTransitionsTheme = PageTransitionsTheme( builders: { diff --git a/sites/docs/src/content/release/breaking-changes/default-android-page-transition.md b/sites/docs/src/content/release/breaking-changes/default-android-page-transition.md index 0cb338f3423..e377cbc5d8a 100644 --- a/sites/docs/src/content/release/breaking-changes/default-android-page-transition.md +++ b/sites/docs/src/content/release/breaking-changes/default-android-page-transition.md @@ -205,11 +205,11 @@ Relevant PRs: * [Predictive back route transitions by default][] -[`FadeForwardsPageTransitionsBuilder`]: {{site.api}}/flutter/material/FadeForwardsPageTransitionsBuilder-class.html +[`FadeForwardsPageTransitionsBuilder`]: {{site.material_ui}}/FadeForwardsPageTransitionsBuilder-class.html [`PopScope`]: {{site.api}}/flutter/widgets/PopScope-class.html -[`PredictiveBackPageTransitionsBuilder`]: {{site.api}}/flutter/material/PredictiveBackPageTransitionsBuilder-class.html +[`PredictiveBackPageTransitionsBuilder`]: {{site.material_ui}}/PredictiveBackPageTransitionsBuilder-class.html [`TransitionDurationObserver`]: {{site.api}}/flutter/flutter_test/TransitionDurationObserver-class.html -[`ZoomPageTransitionsBuilder`]: {{site.api}}/flutter/material/ZoomPageTransitionsBuilder-class.html +[`ZoomPageTransitionsBuilder`]: {{site.material_ui}}/ZoomPageTransitionsBuilder-class.html [Android predictive back route transitions]: {{site.repo.flutter}}/issues/131961 [Predictive back route transitions by default]: {{site.repo.flutter}}/pull/165832 diff --git a/sites/docs/src/content/release/breaking-changes/default-desktop-scrollbars.md b/sites/docs/src/content/release/breaking-changes/default-desktop-scrollbars.md index 2ba77a56096..9d2908de31e 100644 --- a/sites/docs/src/content/release/breaking-changes/default-desktop-scrollbars.md +++ b/sites/docs/src/content/release/breaking-changes/default-desktop-scrollbars.md @@ -278,10 +278,10 @@ Relevant PRs: [`ScrollConfiguration`]: {{site.api}}/flutter/widgets/ScrollConfiguration-class.html [`ScrollBehavior`]: {{site.api}}/flutter/widgets/ScrollBehavior-class.html -[`MaterialScrollBehavior`]: {{site.api}}/flutter/material/MaterialScrollBehavior-class.html -[`CupertinoScrollBehavior`]: {{site.api}}/flutter/cupertino/CupertinoScrollBehavior-class.html -[`Scrollbar`]: {{site.api}}/flutter/material/Scrollbar-class.html -[`CupertinoScrollbar`]: {{site.api}}/flutter/cupertino/CupertinoScrollbar-class.html +[`MaterialScrollBehavior`]: {{site.material_ui}}/MaterialScrollBehavior-class.html +[`CupertinoScrollBehavior`]: {{site.cupertino_ui}}/CupertinoScrollBehavior-class.html +[`Scrollbar`]: {{site.material_ui}}/Scrollbar-class.html +[`CupertinoScrollbar`]: {{site.cupertino_ui}}/CupertinoScrollbar-class.html [Issue #40107]: {{site.repo.flutter}}/issues/40107 [Issue #70866]: {{site.repo.flutter}}/issues/70866 [Exposing ScrollBehaviors for app-wide settings]: {{site.repo.flutter}}/pull/76739 diff --git a/sites/docs/src/content/release/breaking-changes/default-scroll-behavior-drag.md b/sites/docs/src/content/release/breaking-changes/default-scroll-behavior-drag.md index ab032247d93..2869acbd548 100644 --- a/sites/docs/src/content/release/breaking-changes/default-scroll-behavior-drag.md +++ b/sites/docs/src/content/release/breaking-changes/default-scroll-behavior-drag.md @@ -210,8 +210,8 @@ Relevant PRs: [`ScrollConfiguration`]: {{site.api}}/flutter/widgets/ScrollConfiguration-class.html [`ScrollBehavior`]: {{site.api}}/flutter/widgets/ScrollBehavior-class.html -[`MaterialScrollBehavior`]: {{site.api}}/flutter/material/MaterialScrollBehavior-class.html -[`CupertinoScrollBehavior`]: {{site.api}}/flutter/cupertino/CupertinoScrollBehavior-class.html +[`MaterialScrollBehavior`]: {{site.material_ui}}/MaterialScrollBehavior-class.html +[`CupertinoScrollBehavior`]: {{site.cupertino_ui}}/CupertinoScrollBehavior-class.html [`PointerDeviceKind`]: {{site.api}}/flutter/dart-ui/PointerDeviceKind-class.html [`GestureDetector`]: {{site.api}}/flutter/widgets/GestureDetector-class.html [Issue #71322]: {{site.repo.flutter}}/issues/71322 diff --git a/sites/docs/src/content/release/breaking-changes/deprecate-buttonbar.md b/sites/docs/src/content/release/breaking-changes/deprecate-buttonbar.md index f3b7790ba3a..d942ea3eab3 100644 --- a/sites/docs/src/content/release/breaking-changes/deprecate-buttonbar.md +++ b/sites/docs/src/content/release/breaking-changes/deprecate-buttonbar.md @@ -150,6 +150,6 @@ Relevant PRs: - [Deprecate `ButtonBar`, `ButtonBarThemeData`, and `ThemeData.buttonBarTheme`][] [`OverflowBar`]: {{site.api}}/flutter/widgets/OverflowBar-class.html -[`ButtonBar`]: {{site.api}}/flutter/material/ButtonBar-class.html +[`ButtonBar`]: {{site.material_ui}}/ButtonBar-class.html [Issue #127955]: {{site.repo.flutter}}/issues/127955 [Deprecate `ButtonBar`, `ButtonBarThemeData`, and `ThemeData.buttonBarTheme`]: {{site.repo.flutter}}/pull/145523 diff --git a/sites/docs/src/content/release/breaking-changes/deprecate-dropdownbuttonformfield-value.md b/sites/docs/src/content/release/breaking-changes/deprecate-dropdownbuttonformfield-value.md index ad7c340cc7c..bba0c447fb7 100644 --- a/sites/docs/src/content/release/breaking-changes/deprecate-dropdownbuttonformfield-value.md +++ b/sites/docs/src/content/release/breaking-changes/deprecate-dropdownbuttonformfield-value.md @@ -70,7 +70,7 @@ Relevant PRs: - [Deprecate `DropdownButtonFormField` `value` parameter in favor of `initialValue`][] -[`DropdownButtonFormField`]: {{site.api}}/flutter/material/DropdownButtonFormField/DropdownButtonFormField.html +[`DropdownButtonFormField`]: {{site.material_ui}}/DropdownButtonFormField/DropdownButtonFormField.html [`DropdownButtonFormField.initialValue`]: {{site.main-api}}/flutter/widgets/FormField/initialValue.html [Issue #169983]: {{site.repo.flutter}}/issues/169983 [Deprecate `DropdownButtonFormField` `value` parameter in favor of `initialValue`]: {{site.repo.flutter}}/pull/170805 diff --git a/sites/docs/src/content/release/breaking-changes/deprecate-inputdecoration-maintainhintheight.md b/sites/docs/src/content/release/breaking-changes/deprecate-inputdecoration-maintainhintheight.md index 99f01cac4d4..bc092b67b8a 100644 --- a/sites/docs/src/content/release/breaking-changes/deprecate-inputdecoration-maintainhintheight.md +++ b/sites/docs/src/content/release/breaking-changes/deprecate-inputdecoration-maintainhintheight.md @@ -74,7 +74,7 @@ Relevant PRs: - [Fix TextField intrinsic width when hint is not visible][] -[`InputDecoration.maintainHintHeight`]: {{site.api}}/flutter/material/InputDecoration/maintainHintHeight.html -[`InputDecoration.maintainHintSize`]: {{site.main-api}}/flutter/material/InputDecoration/maintainHintSize.html +[`InputDecoration.maintainHintHeight`]: {{site.material_ui}}/InputDecoration/maintainHintHeight.html +[`InputDecoration.maintainHintSize`]: {{site.material_ui}}/InputDecoration/maintainHintSize.html [Issue #93337]: {{site.repo.flutter}}/issues/93337 [Fix TextField intrinsic width when hint is not visible]: {{site.repo.flutter}}/pull/161235 diff --git a/sites/docs/src/content/release/breaking-changes/deprecate-onreorder-callback.md b/sites/docs/src/content/release/breaking-changes/deprecate-onreorder-callback.md index c1bcb91f2ef..004c74ef827 100644 --- a/sites/docs/src/content/release/breaking-changes/deprecate-onreorder-callback.md +++ b/sites/docs/src/content/release/breaking-changes/deprecate-onreorder-callback.md @@ -164,7 +164,7 @@ Relevant PRs: [`ReorderCallback`]: {{site.api}}/flutter/widgets/ReorderCallback.html [`ReorderableList`]: {{site.api}}/flutter/widgets/ReorderableList-class.html -[`ReorderableListView`]: {{site.api}}/flutter/material/ReorderableListView-class.html +[`ReorderableListView`]: {{site.material_ui}}/ReorderableListView-class.html [`SliverReorderableList`]: {{site.api}}/flutter/widgets/SliverReorderableList-class.html [issue-127901]: {{site.repo.flutter}}/issues/127901 diff --git a/sites/docs/src/content/release/breaking-changes/deprecate-themedata-dialogbackgroundcolor.md b/sites/docs/src/content/release/breaking-changes/deprecate-themedata-dialogbackgroundcolor.md index 397bc127e42..bd6ca9dd166 100644 --- a/sites/docs/src/content/release/breaking-changes/deprecate-themedata-dialogbackgroundcolor.md +++ b/sites/docs/src/content/release/breaking-changes/deprecate-themedata-dialogbackgroundcolor.md @@ -72,10 +72,10 @@ Relevant PRs: - [Deprecate `ThemeData.dialogBackgroundColor` in favor of `DialogTheme.backgroundColor`][] -[`ThemeData.dialogBackgroundColor`]: {{site.api}}/flutter/material/ThemeData/dialogBackgroundColor.html -[`DialogThemeData.backgroundColor`]: {{site.api}}/flutter/material/DialogThemeData/backgroundColor.html -[`DialogThemeData`]: {{site.api}}/flutter/material/DialogThemeData-class.html -[`Dialog`]: {{site.api}}/flutter/material/Dialog-class.html -[`AlertDialog`]: {{site.api}}/flutter/material/AlertDialog-class.html +[`ThemeData.dialogBackgroundColor`]: {{site.material_ui}}/ThemeData/dialogBackgroundColor.html +[`DialogThemeData.backgroundColor`]: {{site.material_ui}}/DialogThemeData/backgroundColor.html +[`DialogThemeData`]: {{site.material_ui}}/DialogThemeData-class.html +[`Dialog`]: {{site.material_ui}}/Dialog-class.html +[`AlertDialog`]: {{site.material_ui}}/AlertDialog-class.html [Issue #91772]: {{site.repo.flutter}}/issues/91772 [Deprecate `ThemeData.dialogBackgroundColor` in favor of `DialogTheme.backgroundColor`]: {{site.repo.flutter}}/pull/155072 diff --git a/sites/docs/src/content/release/breaking-changes/deprecate-themedata-indicatorcolor.md b/sites/docs/src/content/release/breaking-changes/deprecate-themedata-indicatorcolor.md index 9bb1bc0b93a..3bc5677341b 100644 --- a/sites/docs/src/content/release/breaking-changes/deprecate-themedata-indicatorcolor.md +++ b/sites/docs/src/content/release/breaking-changes/deprecate-themedata-indicatorcolor.md @@ -74,10 +74,10 @@ Relevant PRs: - [Deprecate `ThemeData.indicatorColor` in favor of `TabBarThemeData.indicatorColor`][] -[`ThemeData.indicatorColor`]: {{site.api}}/flutter/material/ThemeData/indicatorColor.html -[`ThemeData.useMaterial3`]: {{site.api}}/flutter/material/ThemeData/useMaterial3.html -[`TabBarThemeData.indicatorColor`]: {{site.api}}/flutter/material/TabBarThemeData/indicatorColor.html -[`TabBarThemeData`]: {{site.api}}/flutter/material/TabBarThemeData-class.html -[`TabBar`]: {{site.api}}/flutter/material/TabBar-class.html +[`ThemeData.indicatorColor`]: {{site.material_ui}}/ThemeData/indicatorColor.html +[`ThemeData.useMaterial3`]: {{site.material_ui}}/ThemeData/useMaterial3.html +[`TabBarThemeData.indicatorColor`]: {{site.material_ui}}/TabBarThemeData/indicatorColor.html +[`TabBarThemeData`]: {{site.material_ui}}/TabBarThemeData-class.html +[`TabBar`]: {{site.material_ui}}/TabBar-class.html [Issue #91772]: {{site.repo.flutter}}/issues/91772 [Deprecate `ThemeData.indicatorColor` in favor of `TabBarThemeData.indicatorColor`]: {{site.repo.flutter}}/pull/160024 diff --git a/sites/docs/src/content/release/breaking-changes/dialog-border-radius.md b/sites/docs/src/content/release/breaking-changes/dialog-border-radius.md index 03f03d0cab0..3f0fefb388f 100644 --- a/sites/docs/src/content/release/breaking-changes/dialog-border-radius.md +++ b/sites/docs/src/content/release/breaking-changes/dialog-border-radius.md @@ -37,7 +37,7 @@ the shape property of your `Dialog` to specify the original 2 pixel radius. Setting the Dialog shape to the original radius: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(Foo()); @@ -90,9 +90,9 @@ Relevant PR: * [PR 58829: Matching Material Spec for Dialog shape][] -[`Dialog`]: {{site.api}}/flutter/material/Dialog-class.html -[`SimpleDialog`]: {{site.api}}/flutter/material/SimpleDialog-class.html -[`AlertDialog`]: {{site.api}}/flutter/material/AlertDialog-class.html -[`showTimePicker`]: {{site.api}}/flutter/material/showTimePicker.html -[`showDatePicker`]: {{site.api}}/flutter/material/showDatePicker.html +[`Dialog`]: {{site.material_ui}}/Dialog-class.html +[`SimpleDialog`]: {{site.material_ui}}/SimpleDialog-class.html +[`AlertDialog`]: {{site.material_ui}}/AlertDialog-class.html +[`showTimePicker`]: {{site.material_ui}}/showTimePicker.html +[`showDatePicker`]: {{site.material_ui}}/showDatePicker.html [PR 58829: Matching Material Spec for Dialog shape]: {{site.repo.flutter}}/pull/58829 diff --git a/sites/docs/src/content/release/breaking-changes/dropdownbutton-enabled-property.md b/sites/docs/src/content/release/breaking-changes/dropdownbutton-enabled-property.md index 80eebca65ec..d1785daa88c 100644 --- a/sites/docs/src/content/release/breaking-changes/dropdownbutton-enabled-property.md +++ b/sites/docs/src/content/release/breaking-changes/dropdownbutton-enabled-property.md @@ -145,7 +145,7 @@ Relevant PRs: * [Update DropdownButton enabled property logic][] -[`DropdownButton`]: {{site.api}}/flutter/material/DropdownButton-class.html -[`DropdownButtonFormField`]: {{site.api}}/flutter/material/DropdownButtonFormField-class.html +[`DropdownButton`]: {{site.material_ui}}/DropdownButton-class.html +[`DropdownButtonFormField`]: {{site.material_ui}}/DropdownButtonFormField-class.html [issue-57953]: {{site.repo.flutter}}/issues/57953 [Update DropdownButton enabled property logic]: {{site.repo.flutter}}/pull/182419 diff --git a/sites/docs/src/content/release/breaking-changes/eliminating-nullok-parameters.md b/sites/docs/src/content/release/breaking-changes/eliminating-nullok-parameters.md index 7ba0cffa105..5fd9098c40a 100644 --- a/sites/docs/src/content/release/breaking-changes/eliminating-nullok-parameters.md +++ b/sites/docs/src/content/release/breaking-changes/eliminating-nullok-parameters.md @@ -204,8 +204,8 @@ Relevant PRs: [`MediaQuery.of`]: {{site.api}}/flutter/widgets/MediaQuery/of.html [`Navigator.of`]: {{site.api}}/flutter/widgets/Navigator/of.html -[`ScaffoldMessenger.of`]: {{site.api}}/flutter/material/ScaffoldMessenger/of.html -[`Scaffold.of`]: {{site.api}}/flutter/material/Scaffold/of.html +[`ScaffoldMessenger.of`]: {{site.material_ui}}/ScaffoldMessenger/of.html +[`Scaffold.of`]: {{site.material_ui}}/Scaffold/of.html [`Router.of`]: {{site.api}}/flutter/widgets/Router/of.html [`Localizations.localeOf`]: {{site.api}}/flutter/widgets/Localizations/localeOf.html [`FocusTraversalOrder.of`]: {{site.api}}/flutter/widgets/FocusTraversalOrder/of.html @@ -216,18 +216,18 @@ Relevant PRs: [`Actions.invoke`]: {{site.api}}/flutter/widgets/Actions/invoke.html [`AnimatedList.of`]: {{site.api}}/flutter/widgets/AnimatedList/of.html [`SliverAnimatedList.of`]: {{site.api}}/flutter/widgets/SliverAnimatedList/of.html -[`CupertinoDynamicColor.resolve`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/resolve.html -[`CupertinoDynamicColor.resolveFrom`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/resolveFrom.html -[`CupertinoUserInterfaceLevel.of`]: {{site.api}}/flutter/cupertino/CupertinoUserInterfaceLevel/of.html -[`CupertinoTheme.brightnessOf`]: {{site.api}}/flutter/cupertino/CupertinoTheme/brightnessOf.html -[`CupertinoThemeData.resolveFrom`]: {{site.api}}/flutter/cupertino/CupertinoThemeData/resolveFrom.html -[`NoDefaultCupertinoThemeData.resolveFrom`]: {{site.api}}/flutter/cupertino/NoDefaultCupertinoThemeData/resolveFrom.html -[`CupertinoTextThemeData.resolveFrom`]: {{site.api}}/flutter/cupertino/CupertinoTextThemeData/resolveFrom.html -[`MaterialBasedCupertinoThemeData.resolveFrom`]: {{site.api}}/flutter/material/MaterialBasedCupertinoThemeData/resolveFrom.html +[`CupertinoDynamicColor.resolve`]: {{site.cupertino_ui}}/CupertinoDynamicColor/resolve.html +[`CupertinoDynamicColor.resolveFrom`]: {{site.cupertino_ui}}/CupertinoDynamicColor/resolveFrom.html +[`CupertinoUserInterfaceLevel.of`]: {{site.cupertino_ui}}/CupertinoUserInterfaceLevel/of.html +[`CupertinoTheme.brightnessOf`]: {{site.cupertino_ui}}/CupertinoTheme/brightnessOf.html +[`CupertinoThemeData.resolveFrom`]: {{site.cupertino_ui}}/CupertinoThemeData/resolveFrom.html +[`NoDefaultCupertinoThemeData.resolveFrom`]: {{site.cupertino_ui}}/NoDefaultCupertinoThemeData/resolveFrom.html +[`CupertinoTextThemeData.resolveFrom`]: {{site.cupertino_ui}}/CupertinoTextThemeData/resolveFrom.html +[`MaterialBasedCupertinoThemeData.resolveFrom`]: {{site.material_ui}}/MaterialBasedCupertinoThemeData/resolveFrom.html [`MediaQuery.maybeOf`]: {{site.api}}/flutter/widgets/MediaQuery/maybeOf.html [`Navigator.maybeOf`]: {{site.api}}/flutter/widgets/Navigator/maybeOf.html -[`ScaffoldMessenger.maybeOf`]: {{site.api}}/flutter/material/ScaffoldMessenger/maybeOf.html -[`Scaffold.maybeOf`]: {{site.api}}/flutter/material/Scaffold/maybeOf.html +[`ScaffoldMessenger.maybeOf`]: {{site.material_ui}}/ScaffoldMessenger/maybeOf.html +[`Scaffold.maybeOf`]: {{site.material_ui}}/Scaffold/maybeOf.html [`Router.maybeOf`]: {{site.api}}/flutter/widgets/Router/maybeOf.html [`Localizations.maybeLocaleOf`]: {{site.api}}/flutter/widgets/Localizations/maybeLocaleOf.html [`FocusTraversalOrder.maybeOf`]: {{site.api}}/flutter/widgets/FocusTraversalOrder/maybeOf.html @@ -237,9 +237,9 @@ Relevant PRs: [`Actions.maybeInvoke`]: {{site.api}}/flutter/widgets/Actions/maybeInvoke.html [`AnimatedList.maybeOf`]: {{site.api}}/flutter/widgets/AnimatedList/maybeOf.html [`SliverAnimatedList.maybeOf`]: {{site.api}}/flutter/widgets/SliverAnimatedList/maybeOf.html -[`CupertinoDynamicColor.maybeResolve`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/maybeResolve.html -[`CupertinoUserInterfaceLevel.maybeOf`]: {{site.api}}/flutter/cupertino/CupertinoUserInterfaceLevel/maybeOf.html -[`CupertinoTheme.maybeBrightnessOf`]: {{site.api}}/flutter/cupertino/CupertinoTheme/maybeBrightnessOf.html +[`CupertinoDynamicColor.maybeResolve`]: {{site.cupertino_ui}}/CupertinoDynamicColor/maybeResolve.html +[`CupertinoUserInterfaceLevel.maybeOf`]: {{site.cupertino_ui}}/CupertinoUserInterfaceLevel/maybeOf.html +[`CupertinoTheme.maybeBrightnessOf`]: {{site.cupertino_ui}}/CupertinoTheme/maybeBrightnessOf.html [`InheritedWidget`]: {{site.api}}/flutter/widgets/InheritedWidget-class.html [Issue 68637]: {{site.repo.flutter}}/issues/68637 [Remove `nullOk` in `MediaQuery.of`]: {{site.repo.flutter}}/pull/68736 diff --git a/sites/docs/src/content/release/breaking-changes/expansion-tile-controller.md b/sites/docs/src/content/release/breaking-changes/expansion-tile-controller.md index f06397d8bc6..6bef3334bdb 100644 --- a/sites/docs/src/content/release/breaking-changes/expansion-tile-controller.md +++ b/sites/docs/src/content/release/breaking-changes/expansion-tile-controller.md @@ -83,9 +83,9 @@ Relevant PRs: * [Introduce Expansible, a base widget for ExpansionTile][] * [Deprecate ExpansionTileController][] -[`ExpansionTileController`]: {{site.api}}/flutter/material/ExpansionTileController-class.html +[`ExpansionTileController`]: {{site.material_ui}}/ExpansionTileController-class.html [`ExpansibleController`]: {{site.api}}/flutter/widgets/ExpansibleController-class.html -[`ExpansionTile.controller`]: {{site.api}}/flutter/material/ExpansionTile/controller.html +[`ExpansionTile.controller`]: {{site.material_ui}}/ExpansionTile/controller.html [`Expansible.controller`]: {{site.api}}/flutter/widgets/Expansible/controller.html [Codeshare between ExpansionTile and its Cupertino variant]: {{site.repo.flutter}}/issues/163552 diff --git a/sites/docs/src/content/release/breaking-changes/fab-theme-data-accent-properties.md b/sites/docs/src/content/release/breaking-changes/fab-theme-data-accent-properties.md index cc0a40b9f5d..c5188382083 100644 --- a/sites/docs/src/content/release/breaking-changes/fab-theme-data-accent-properties.md +++ b/sites/docs/src/content/release/breaking-changes/fab-theme-data-accent-properties.md @@ -146,13 +146,13 @@ Other: * [Material Theme System Updates][] -[`accentIconTheme`]: {{site.api}}/flutter/material/ThemeData/accentIconTheme.html -[`FloatingActionButton`]: {{site.api}}/flutter/material/FloatingActionButton/foregroundColor.html -[`FloatingActionButtonThemeData`]: {{site.api}}/flutter/material/FloatingActionButtonThemeData-class.html +[`accentIconTheme`]: {{site.material_ui}}/ThemeData/accentIconTheme.html +[`FloatingActionButton`]: {{site.material_ui}}/FloatingActionButton/foregroundColor.html +[`FloatingActionButtonThemeData`]: {{site.material_ui}}/FloatingActionButtonThemeData-class.html [Material Design spec]: {{site.material}}/styles/color [Material Theme System Updates]: /go/material-theme-system-updates [Remove FAB Accent Theme Dependency]: /go/remove-fab-accent-theme-dependency [secondary color]: {{site.material}}/styles/color/the-color-system/color-roles#904230ec-ae73-4f0f-8bff-4024a036ca66 [Step 1 of 2]: {{site.repo.flutter}}/pull/48435 [Step 2 of 2]: {{site.repo.flutter}}/pull/46923 -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData/floatingActionButtonTheme.html +[`ThemeData`]: {{site.material_ui}}/ThemeData/floatingActionButtonTheme.html diff --git a/sites/docs/src/content/release/breaking-changes/hero-controller-scope.md b/sites/docs/src/content/release/breaking-changes/hero-controller-scope.md index 5dbcb47b2f3..f60a8f4b43a 100644 --- a/sites/docs/src/content/release/breaking-changes/hero-controller-scope.md +++ b/sites/docs/src/content/release/breaking-changes/hero-controller-scope.md @@ -31,7 +31,7 @@ their route changes. This change only surfaced this problem. An example application that starts to throw exceptions. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( @@ -73,7 +73,7 @@ void main() { You can fix this application by introducing your own hero controller scopes. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( diff --git a/sites/docs/src/content/release/breaking-changes/input-decoration-collapsed.md b/sites/docs/src/content/release/breaking-changes/input-decoration-collapsed.md index fd04103f57b..044ab459c13 100644 --- a/sites/docs/src/content/release/breaking-changes/input-decoration-collapsed.md +++ b/sites/docs/src/content/release/breaking-changes/input-decoration-collapsed.md @@ -68,9 +68,9 @@ Relevant PRs: * [Deprecate invalid InputDecoration.collapsed parameters][] * [Cleanup InputDecoration.collapsed constructor][] -[`InputDecoration.collapsed`]: {{site.api}}/flutter/material/InputDecoration/InputDecoration.collapsed.html -[`InputDecoration.floatingLabelAlignment`]: {{site.api}}/flutter/material/InputDecoration/floatingLabelAlignment.html -[`InputDecoration.floatingLabelBehavior`]: {{site.api}}/flutter/material/InputDecoration/floatingLabelBehavior.html +[`InputDecoration.collapsed`]: {{site.material_ui}}/InputDecoration/InputDecoration.collapsed.html +[`InputDecoration.floatingLabelAlignment`]: {{site.material_ui}}/InputDecoration/floatingLabelAlignment.html +[`InputDecoration.floatingLabelBehavior`]: {{site.material_ui}}/InputDecoration/floatingLabelBehavior.html [Add prefixIcon and suffixIcon parameters to InputDecoration.collapsed]: {{site.repo.flutter}}/issues/61331 [Deprecate invalid InputDecoration.collapsed parameters]: {{site.repo.flutter}}/pull/152486 diff --git a/sites/docs/src/content/release/breaking-changes/layout-builder-optimization.md b/sites/docs/src/content/release/breaking-changes/layout-builder-optimization.md index 2a3698bb8c9..f05e0039c7e 100644 --- a/sites/docs/src/content/release/breaking-changes/layout-builder-optimization.md +++ b/sites/docs/src/content/release/breaking-changes/layout-builder-optimization.md @@ -72,7 +72,7 @@ Code before migration (note the missing `setState` inside the `onPressed` callback): ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(MyApp()); @@ -169,7 +169,7 @@ class _ResizingBoxState extends State<_ResizingBox> Code after migration (`setState` added to `onPressed`): ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(MyApp()); diff --git a/sites/docs/src/content/release/breaking-changes/list-tile-color-warning.md b/sites/docs/src/content/release/breaking-changes/list-tile-color-warning.md index 42b72936646..7bcd33686c9 100644 --- a/sites/docs/src/content/release/breaking-changes/list-tile-color-warning.md +++ b/sites/docs/src/content/release/breaking-changes/list-tile-color-warning.md @@ -113,7 +113,7 @@ Relevant PRs: * [Add warning when there is a widget with color between `Material` and `ListTile`][pr-181402] -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html -[`Material`]: {{site.api}}/flutter/material/Material-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html +[`Material`]: {{site.material_ui}}/Material-class.html [issue-174366]: {{site.repo.flutter}}/issues/174366 [pr-181402]: {{site.repo.flutter}}/pull/181402 diff --git a/sites/docs/src/content/release/breaking-changes/material-3-default.md b/sites/docs/src/content/release/breaking-changes/material-3-default.md index 4df5482850d..447fe3541fb 100644 --- a/sites/docs/src/content/release/breaking-changes/material-3-default.md +++ b/sites/docs/src/content/release/breaking-changes/material-3-default.md @@ -35,10 +35,10 @@ the word "legacy" and will eventually be deprecated and removed. Check out the [Material 3 gallery][] to test out all the new components and compare them with Material 2. -[`ThemeData.colorScheme`]: {{site.api}}/flutter/material/ThemeData/colorScheme.html -[`ThemeData.textTheme`]: {{site.api}}/flutter/material/ThemeData/textTheme.html -[`ThemeData.segmentedButtonTheme`]: {{site.api}}/flutter/material/ThemeData/segmentedButtonTheme.html -[`ThemeData.snackBarTheme`]: {{site.api}}/flutter/material/ThemeData/snackBarTheme.html +[`ThemeData.colorScheme`]: {{site.material_ui}}/ThemeData/colorScheme.html +[`ThemeData.textTheme`]: {{site.material_ui}}/ThemeData/textTheme.html +[`ThemeData.segmentedButtonTheme`]: {{site.material_ui}}/ThemeData/segmentedButtonTheme.html +[`ThemeData.snackBarTheme`]: {{site.material_ui}}/ThemeData/snackBarTheme.html ## Migration guide @@ -61,7 +61,7 @@ To fix this, manually migrate to the new widgets, such as [`NavigationBar`][]. For more details, check out the [Material 3 umbrella issue][] on GitHub. -[`NavigationBar`]: {{site.api}}/flutter/material/NavigationBar-class.html +[`NavigationBar`]: {{site.material_ui}}/NavigationBar-class.html ## Timeline @@ -92,7 +92,7 @@ Relevant PRs: [Material 3 gallery]: https://github.com/flutter/samples/tree/main/material_3_demo [Material 3 umbrella issue]: {{site.repo.flutter}}/issues/91605 [Material Design for Flutter]: /ui/design/material -[`ThemeData.useMaterial3`]: {{site.api}}/flutter/material/ThemeData/useMaterial3.html +[`ThemeData.useMaterial3`]: {{site.material_ui}}/ThemeData/useMaterial3.html [Add support for M3 motion]: {{site.repo.flutter}}/issues/129942 [Change the default for `ThemeData.useMaterial3` to true]: {{site.repo.flutter}}/pull/129724 [Updated `ThemeData.useMaterial3` API doc, default is true]: {{site.repo.flutter}}/pull/130764 diff --git a/sites/docs/src/content/release/breaking-changes/material-3-migration.md b/sites/docs/src/content/release/breaking-changes/material-3-migration.md index 47d982049e8..1d0d63ae635 100644 --- a/sites/docs/src/content/release/breaking-changes/material-3-migration.md +++ b/sites/docs/src/content/release/breaking-changes/material-3-migration.md @@ -59,7 +59,7 @@ To generate a content-based dynamic color scheme, use the `ColorScheme.fromImageProvider` static method. For an example of generating a color scheme, check out the [`ColorScheme` from a network image][] sample. -[`ColorScheme` from a network image]: {{site.api}}/flutter/material/ColorScheme/fromImageProvider.html +[`ColorScheme` from a network image]: {{site.material_ui}}/ColorScheme/fromImageProvider.html Changes to Flutter Material 3 include a new background color. `ColorScheme.surfaceTint` indicates an elevated widget. @@ -198,7 +198,7 @@ ConstrainedBox( ), ``` -[`TextTheme`]: {{site.api}}/flutter/material/TextTheme-class.html +[`TextTheme`]: {{site.material_ui}}/TextTheme-class.html ### Components @@ -429,9 +429,9 @@ SegmentedButton( Check out the complete sample on [migrating from `ToggleButtons` to `SegmentedButton`][]. -[migrating from `BottomNavigationBar` to `NavigationBar`]: {{site.api}}/flutter/material/BottomNavigationBar-class.html#material.BottomNavigationBar.2 -[migrating from `Drawer` to `NavigationDrawer`]: {{site.api}}/flutter/material/Drawer-class.html#material.Drawer.2 -[migrating from `ToggleButtons` to `SegmentedButton`]: {{site.api}}/flutter/material/ToggleButtons-class.html#material.ToggleButtons.1 +[migrating from `BottomNavigationBar` to `NavigationBar`]: {{site.material_ui}}/BottomNavigationBar-class.html#material.BottomNavigationBar.2 +[migrating from `Drawer` to `NavigationDrawer`]: {{site.material_ui}}/Drawer-class.html#material.Drawer.2 +[migrating from `ToggleButtons` to `SegmentedButton`]: {{site.material_ui}}/ToggleButtons-class.html#material.ToggleButtons.1 #### New components @@ -465,27 +465,27 @@ Check out the complete sample on typically contains a title, an action button, and a close button at the top. -[`BottomNavigationBar`]: {{site.api}}/flutter/material/BottomNavigationBar-class.html -[`NavigationBar`]: {{site.api}}/flutter/material/NavigationBar-class.html -[`Drawer`]: {{site.api}}/flutter/material/Drawer-class.html -[`NavigationDrawer`]: {{site.api}}/flutter/material/NavigationDrawer-class.html -[`TabBar`]: {{site.api}}/flutter/material/TabBar-class.html -[`TabBar.secondary`]: {{site.api}}/flutter/material/TabBar/TabBar.secondary.html -[`TabBar.tabAlignment`]: {{site.api}}/flutter/material/TabBar/tabAlignment.html -[`SegmentedButton`]: {{site.api}}/flutter/material/SegmentedButton-class.html -[`ToggleButtons`]: {{site.api}}/flutter/material/ToggleButtons-class.html -[`MenuBar`]: {{site.api}}/flutter/material/MenuBar-class.html -[`MenuAnchor`]: {{site.api}}/flutter/material/MenuAnchor-class.html -[`DropdownMenu`]: {{site.api}}/flutter/material/DropdownMenu-class.html -[`SearchBar`]: {{site.api}}/flutter/material/SearchBar-class.html -[`SearchAnchor`]: {{site.api}}/flutter/material/SearchAnchor-class.html -[`Badge`]: {{site.api}}/flutter/material/Badge-class.html -[`FilledButton`]: {{site.api}}/flutter/material/FilledButton-class.html -[`FilledButton.tonal`]: {{site.api}}/flutter/material/FilledButton/FilledButton.tonal.html -[`FilterChip.elevated`]: {{site.api}}/flutter/material/FilterChip/FilterChip.elevated.html -[`ChoiceChip.elevated`]: {{site.api}}/flutter/material/ChoiceChip/ChoiceChip.elevated.html -[`ActionChip.elevated`]: {{site.api}}/flutter/material/ActionChip/ActionChip.elevated.html -[`Dialog.fullscreen`]: {{site.api}}/flutter/material/Dialog/Dialog.fullscreen.html +[`BottomNavigationBar`]: {{site.material_ui}}/BottomNavigationBar-class.html +[`NavigationBar`]: {{site.material_ui}}/NavigationBar-class.html +[`Drawer`]: {{site.material_ui}}/Drawer-class.html +[`NavigationDrawer`]: {{site.material_ui}}/NavigationDrawer-class.html +[`TabBar`]: {{site.material_ui}}/TabBar-class.html +[`TabBar.secondary`]: {{site.material_ui}}/TabBar/TabBar.secondary.html +[`TabBar.tabAlignment`]: {{site.material_ui}}/TabBar/tabAlignment.html +[`SegmentedButton`]: {{site.material_ui}}/SegmentedButton-class.html +[`ToggleButtons`]: {{site.material_ui}}/ToggleButtons-class.html +[`MenuBar`]: {{site.material_ui}}/MenuBar-class.html +[`MenuAnchor`]: {{site.material_ui}}/MenuAnchor-class.html +[`DropdownMenu`]: {{site.material_ui}}/DropdownMenu-class.html +[`SearchBar`]: {{site.material_ui}}/SearchBar-class.html +[`SearchAnchor`]: {{site.material_ui}}/SearchAnchor-class.html +[`Badge`]: {{site.material_ui}}/Badge-class.html +[`FilledButton`]: {{site.material_ui}}/FilledButton-class.html +[`FilledButton.tonal`]: {{site.material_ui}}/FilledButton/FilledButton.tonal.html +[`FilterChip.elevated`]: {{site.material_ui}}/FilterChip/FilterChip.elevated.html +[`ChoiceChip.elevated`]: {{site.material_ui}}/ChoiceChip/ChoiceChip.elevated.html +[`ActionChip.elevated`]: {{site.material_ui}}/ActionChip/ActionChip.elevated.html +[`Dialog.fullscreen`]: {{site.material_ui}}/Dialog/Dialog.fullscreen.html ## Timeline @@ -513,6 +513,6 @@ Relevant PRs: [Material 3 umbrella issue]: {{site.repo.flutter}}/issues/91605 [Material Design for Flutter]: /ui/design/material -[`ThemeData.useMaterial3`]: {{site.api}}/flutter/material/ThemeData/useMaterial3.html +[`ThemeData.useMaterial3`]: {{site.material_ui}}/ThemeData/useMaterial3.html [Change the default for `ThemeData.useMaterial3` to true]: {{site.repo.flutter}}/pull/129724 [Updated `ThemeData.useMaterial3` API doc, default is true]: {{site.repo.flutter}}/pull/130764 diff --git a/sites/docs/src/content/release/breaking-changes/material-chip-button-semantics.md b/sites/docs/src/content/release/breaking-changes/material-chip-button-semantics.md index a68bdb8a445..9816b4a40b4 100644 --- a/sites/docs/src/content/release/breaking-changes/material-chip-button-semantics.md +++ b/sites/docs/src/content/release/breaking-changes/material-chip-button-semantics.md @@ -158,11 +158,11 @@ Relevant PRs: * [PR 61048][]: Re-land "Tweaking Material Chip a11y semantics to match buttons" (#60141) -[`ActionChip`]: {{site.api}}/flutter/material/ActionChip-class.html -[`Chip`]: {{site.api}}/flutter/material/Chip-class.html -[`ChoiceChip`]: {{site.api}}/flutter/material/ChoiceChip-class.html -[`FilterChip`]: {{site.api}}/flutter/material/FilterChip-class.html -[`InputChip`]: {{site.api}}/flutter/material/InputChip-class.html +[`ActionChip`]: {{site.material_ui}}/ActionChip-class.html +[`Chip`]: {{site.material_ui}}/Chip-class.html +[`ChoiceChip`]: {{site.material_ui}}/ChoiceChip-class.html +[`FilterChip`]: {{site.material_ui}}/FilterChip-class.html +[`InputChip`]: {{site.material_ui}}/InputChip-class.html [Material Buttons]: {{site.material}}/components/all-buttons [Material Chips]: {{site.material}}/components/chips [`Semantics`]: {{site.api}}/flutter/widgets/Semantics-class.html diff --git a/sites/docs/src/content/release/breaking-changes/material-design-3-token-update.md b/sites/docs/src/content/release/breaking-changes/material-design-3-token-update.md index 5c8af3c6521..e73b6f3875a 100644 --- a/sites/docs/src/content/release/breaking-changes/material-design-3-token-update.md +++ b/sites/docs/src/content/release/breaking-changes/material-design-3-token-update.md @@ -99,9 +99,9 @@ Relevant PRs: * [Update tokens to v5.0.0][] * [Update tokens to v6.1.0][] -[`ColorScheme`]: {{site.api}}/flutter/material/ColorScheme-class.html -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html -[`Chip`]: {{site.api}}/flutter/material/Chip-class.html +[`ColorScheme`]: {{site.material_ui}}/ColorScheme-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html +[`Chip`]: {{site.material_ui}}/Chip-class.html [Update tokens to v5.0.0]: {{site.repo.flutter}}/pull/153385 [Update tokens to v6.1.0]: {{site.repo.flutter}}/pull/153722 [non-breaking]: {{site.repo.flutter}}/flutter/blob/master/docs/contributing/Tree-hygiene.md#1-determine-if-your-change-is-a-breaking-change diff --git a/sites/docs/src/content/release/breaking-changes/material-localized-strings.md b/sites/docs/src/content/release/breaking-changes/material-localized-strings.md index e09d8ce8106..e46fef86eb4 100644 --- a/sites/docs/src/content/release/breaking-changes/material-localized-strings.md +++ b/sites/docs/src/content/release/breaking-changes/material-localized-strings.md @@ -85,8 +85,8 @@ Relevant PR: ReorderableList in material_localizations. [PR 124711]: {{site.repo.flutter}}/pull/124711 -[`ReorderableListView`]: {{site.api}}/flutter/material/ReorderableListView-class.html +[`ReorderableListView`]: {{site.material_ui}}/ReorderableListView-class.html [`ReorderableList`]: {{site.api}}/flutter/widgets/ReorderableList-class.html [`SliverReorderableList`]: {{site.api}}/flutter/widgets/SliverReorderableList-class.html -[`MaterialLocalizations`]: {{site.api}}/flutter/material/MaterialLocalizations-class.html +[`MaterialLocalizations`]: {{site.material_ui}}/MaterialLocalizations-class.html [`WidgetsLocalizations`]: {{site.api}}/flutter/widgets/WidgetsLocalizations-class.html diff --git a/sites/docs/src/content/release/breaking-changes/material-theme-system-updates.md b/sites/docs/src/content/release/breaking-changes/material-theme-system-updates.md index afd07793ed9..3b828cf03c3 100644 --- a/sites/docs/src/content/release/breaking-changes/material-theme-system-updates.md +++ b/sites/docs/src/content/release/breaking-changes/material-theme-system-updates.md @@ -72,7 +72,7 @@ Relevant PRs: * [Change cardTheme, dialogTheme, and tabBarTheme type to xxxThemeData][] [Change cardTheme, dialogTheme, and tabBarTheme type to xxxThemeData]: {{site.repo.flutter}}/pull/157292 -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html -[`CardTheme`]: {{site.api}}/flutter/material/CardTheme-class.html -[`DialogTheme`]: {{site.api}}/flutter/material/DialogTheme-class.html -[`TabBarTheme`]: {{site.api}}/flutter/material/TabBarTheme-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html +[`CardTheme`]: {{site.material_ui}}/CardTheme-class.html +[`DialogTheme`]: {{site.material_ui}}/DialogTheme-class.html +[`TabBarTheme`]: {{site.material_ui}}/TabBarTheme-class.html diff --git a/sites/docs/src/content/release/breaking-changes/material-ui-and-cupertino-ui.md b/sites/docs/src/content/release/breaking-changes/material-ui-and-cupertino-ui.md index 2e66b1f7cee..f8d94bb6aee 100644 --- a/sites/docs/src/content/release/breaking-changes/material-ui-and-cupertino-ui.md +++ b/sites/docs/src/content/release/breaking-changes/material-ui-and-cupertino-ui.md @@ -47,9 +47,8 @@ Decoupling the design systems provides several benefits: Decoupling lays the groundwork for a style-neutral Flutter core widget catalog, making it easier to build and maintain custom design systems. -Contributions to `package:flutter/material.dart` and -`package:flutter/cupertino.dart` inside the core SDK were frozen -starting in Flutter 3.44. +Contributions to Material and Cupertino packages inside the core SDK +were frozen starting in Flutter 3.44. The initial 1.0.0 versions of `package:material_ui` and `package:cupertino_ui` match the frozen framework code to provide a seamless transition. Future releases of the packages will use semantic versioning for major, minor, diff --git a/sites/docs/src/content/release/breaking-changes/menus-text-style.md b/sites/docs/src/content/release/breaking-changes/menus-text-style.md index 572b256b898..917a0e0466a 100644 --- a/sites/docs/src/content/release/breaking-changes/menus-text-style.md +++ b/sites/docs/src/content/release/breaking-changes/menus-text-style.md @@ -195,13 +195,13 @@ Relevant PRs: * [Update default menu text styles for Material 3][] -[`MenuBar`]: {{site.api}}/flutter/material/MenuBar-class.html -[`MenuAnchor`]: {{site.api}}/flutter/material/MenuAnchor-class.html -[`MenuItemButton`]: {{site.api}}/flutter/material/MenuItemButton-class.html -[`MenuButtonTheme`]: {{site.api}}/flutter/material/MenuButtonTheme-class.html -[`DropdownMenu`]: {{site.api}}/flutter/material/DropdownMenu-class.html -[`DropdownMenuEntry`]: {{site.api}}/flutter/material/DropdownMenuEntry-class.html -[`DropdownMenuTheme`]: {{site.api}}/flutter/material/DropdownMenuTheme-class.html -[`TextTheme`]: {{site.api}}/flutter/material/TextTheme-class.html +[`MenuBar`]: {{site.material_ui}}/MenuBar-class.html +[`MenuAnchor`]: {{site.material_ui}}/MenuAnchor-class.html +[`MenuItemButton`]: {{site.material_ui}}/MenuItemButton-class.html +[`MenuButtonTheme`]: {{site.material_ui}}/MenuButtonTheme-class.html +[`DropdownMenu`]: {{site.material_ui}}/DropdownMenu-class.html +[`DropdownMenuEntry`]: {{site.material_ui}}/DropdownMenuEntry-class.html +[`DropdownMenuTheme`]: {{site.material_ui}}/DropdownMenuTheme-class.html +[`TextTheme`]: {{site.material_ui}}/TextTheme-class.html [Update default menu text styles for Material 3]: {{site.repo.flutter}}/pull/131930 diff --git a/sites/docs/src/content/release/breaking-changes/modal-router-semantics-order.md b/sites/docs/src/content/release/breaking-changes/modal-router-semantics-order.md index 0e70793945b..ff0c1e9e345 100644 --- a/sites/docs/src/content/release/breaking-changes/modal-router-semantics-order.md +++ b/sites/docs/src/content/release/breaking-changes/modal-router-semantics-order.md @@ -44,7 +44,7 @@ import 'dart:ui'; import 'package:flutter_test/flutter_test.dart'; import 'package:flutter/rendering.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { testWidgets('example test', (WidgetTester tester) async { @@ -94,7 +94,7 @@ import 'dart:ui'; import 'package:flutter_test/flutter_test.dart'; import 'package:flutter/rendering.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { testWidgets('example test', (WidgetTester tester) async { diff --git a/sites/docs/src/content/release/breaking-changes/multi-touch-scrolling.md b/sites/docs/src/content/release/breaking-changes/multi-touch-scrolling.md index c74d8950ed3..95fe6845b60 100644 --- a/sites/docs/src/content/release/breaking-changes/multi-touch-scrolling.md +++ b/sites/docs/src/content/release/breaking-changes/multi-touch-scrolling.md @@ -177,8 +177,8 @@ Relevant PRs: [`ScrollConfiguration`]: {{site.api}}/flutter/widgets/ScrollConfiguration-class.html [`ScrollBehavior`]: {{site.api}}/flutter/widgets/ScrollBehavior-class.html -[`MaterialScrollBehavior`]: {{site.api}}/flutter/material/MaterialScrollBehavior-class.html -[`CupertinoScrollBehavior`]: {{site.api}}/flutter/cupertino/CupertinoScrollBehavior-class.html +[`MaterialScrollBehavior`]: {{site.material_ui}}/MaterialScrollBehavior-class.html +[`CupertinoScrollBehavior`]: {{site.cupertino_ui}}/CupertinoScrollBehavior-class.html [`MultitouchDragStrategy`]: {{site.api}}/flutter/gestures/MultitouchDragStrategy.html [`DragGestureRecognizer`]: {{site.api}}/flutter/gestures/DragGestureRecognizer-class.html [Issue #11884]: {{site.repo.flutter}}/issues/11884 diff --git a/sites/docs/src/content/release/breaking-changes/navigator-and-page-api.md b/sites/docs/src/content/release/breaking-changes/navigator-and-page-api.md index 5bd31784c90..9e7ec9a3fe3 100644 --- a/sites/docs/src/content/release/breaking-changes/navigator-and-page-api.md +++ b/sites/docs/src/content/release/breaking-changes/navigator-and-page-api.md @@ -39,7 +39,7 @@ These function similar to how you use the `PopScope` widget. Code before migration: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; final MaterialPage page1 = MaterialPage(child: Placeholder()); final MaterialPage page2 = MaterialPage(child: Placeholder()); @@ -70,7 +70,7 @@ void main() { Code after migration: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; final MaterialPage page1 = MaterialPage(child: Placeholder()); final MaterialPage page2 = MaterialPage(canPop: false, child: Placeholder()); diff --git a/sites/docs/src/content/release/breaking-changes/nullable-cupertinothemedata-brightness.md b/sites/docs/src/content/release/breaking-changes/nullable-cupertinothemedata-brightness.md index 1c13e4dcc48..ae0c6e6a3cd 100644 --- a/sites/docs/src/content/release/breaking-changes/nullable-cupertinothemedata-brightness.md +++ b/sites/docs/src/content/release/breaking-changes/nullable-cupertinothemedata-brightness.md @@ -79,8 +79,8 @@ Relevant PR: * [Let material `ThemeData` dictate brightness if `cupertinoOverrideTheme.brightness` is null][] -[`CupertinoTheme.brightnessOf`]: {{site.api}}/flutter/cupertino/CupertinoTheme/brightnessOf.html -[`CupertinoThemeData.brightness`]: {{site.api}}/flutter/cupertino/NoDefaultCupertinoThemeData/brightness.html +[`CupertinoTheme.brightnessOf`]: {{site.cupertino_ui}}/CupertinoTheme/brightnessOf.html +[`CupertinoThemeData.brightness`]: {{site.cupertino_ui}}/NoDefaultCupertinoThemeData/brightness.html [Issue 47255]: {{site.repo.flutter}}/issues/47255 [Let material `ThemeData` dictate brightness if `cupertinoOverrideTheme.brightness` is null]: {{site.repo.flutter}}/pull/47249 [Make `CupertinoThemeData.brightness nullable`]: /go/nullable-cupertinothemedata-brightness diff --git a/sites/docs/src/content/release/breaking-changes/page-transition-replaced-by-ZoomPageTransitionBuilder.md b/sites/docs/src/content/release/breaking-changes/page-transition-replaced-by-ZoomPageTransitionBuilder.md index 3fa7ea55a5b..1e429237919 100644 --- a/sites/docs/src/content/release/breaking-changes/page-transition-replaced-by-ZoomPageTransitionBuilder.md +++ b/sites/docs/src/content/release/breaking-changes/page-transition-replaced-by-ZoomPageTransitionBuilder.md @@ -144,8 +144,8 @@ Relevant PR: * [PR 100812][] -[`ZoomPageTransitionsBuilder`]: {{site.api}}/flutter/material/ZoomPageTransitionsBuilder-class.html -[`FadeUpwardsPageTransitionsBuilder`]: {{site.api}}/flutter/material/FadeUpwardsPageTransitionsBuilder-class.html -[`PageTransitionsTheme`]: {{site.api}}/flutter/material/PageTransitionsTheme-class.html +[`ZoomPageTransitionsBuilder`]: {{site.material_ui}}/ZoomPageTransitionsBuilder-class.html +[`FadeUpwardsPageTransitionsBuilder`]: {{site.material_ui}}/FadeUpwardsPageTransitionsBuilder-class.html +[`PageTransitionsTheme`]: {{site.material_ui}}/PageTransitionsTheme-class.html [Issue 43277]: {{site.repo.flutter}}/issues/43277 [PR 100812]: {{site.repo.flutter}}/pull/100812 diff --git a/sites/docs/src/content/release/breaking-changes/popscope-with-result.md b/sites/docs/src/content/release/breaking-changes/popscope-with-result.md index 2b7d2801b4f..5de5b490aeb 100644 --- a/sites/docs/src/content/release/breaking-changes/popscope-with-result.md +++ b/sites/docs/src/content/release/breaking-changes/popscope-with-result.md @@ -37,7 +37,7 @@ to `Form` to replace `onPopInvoked`. Code before migration: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( @@ -75,7 +75,7 @@ void main() { Code after migration: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp( diff --git a/sites/docs/src/content/release/breaking-changes/primary-scroll-controller-desktop.md b/sites/docs/src/content/release/breaking-changes/primary-scroll-controller-desktop.md index c0c8fb636e5..38110a09a2e 100644 --- a/sites/docs/src/content/release/breaking-changes/primary-scroll-controller-desktop.md +++ b/sites/docs/src/content/release/breaking-changes/primary-scroll-controller-desktop.md @@ -207,7 +207,7 @@ Relevant PRs: [`ScrollView`]: {{site.api}}/flutter/widgets/ScrollView-class.html [`ScrollAction`]: {{site.api}}/flutter/widgets/ScrollAction-class.html [`ScrollIntent`]: {{site.api}}/flutter/widgets/ScrollIntent-class.html -[`Scrollbar`]: {{site.api}}/flutter/material/Scrollbar-class.html +[`Scrollbar`]: {{site.material_ui}}/Scrollbar-class.html [Updating PrimaryScrollController]: https://docs.google.com/document/d/12OQx7h8UQzzAi0Kxh-saDC2dg7h2fghCCzwJ0ysPmZE/edit?usp=sharing&resourcekey=0-ATO-1Er3HO2HITm59I0IdA [Issue #100264]: {{site.repo.flutter}}/issues/100264 [Updating PrimaryScrollController for Desktop]: {{site.repo.flutter}}/pull/102099 diff --git a/sites/docs/src/content/release/breaking-changes/radio-api-redesign.md b/sites/docs/src/content/release/breaking-changes/radio-api-redesign.md index a4c83527315..561e37af951 100644 --- a/sites/docs/src/content/release/breaking-changes/radio-api-redesign.md +++ b/sites/docs/src/content/release/breaking-changes/radio-api-redesign.md @@ -237,9 +237,9 @@ Relevant PR: * [PR 168161][] [`APG`]: https://www.w3.org/WAI/ARIA/apg/patterns/radio -[`Radio`]: {{site.api}}/flutter/material/Radio-class.html -[`RadioListTile`]: {{site.api}}/flutter/material/RadioListTile-class.html -[`CupertinoRadio`]: {{site.api}}/flutter/cupertino/CupertinoRadio-class.html +[`Radio`]: {{site.material_ui}}/Radio-class.html +[`RadioListTile`]: {{site.material_ui}}/RadioListTile-class.html +[`CupertinoRadio`]: {{site.cupertino_ui}}/CupertinoRadio-class.html [`RadioGroup`]: {{site.api}}/flutter/widgets/RadioGroup-class.html [Issue 113562]: {{site.repo.flutter}}/issues/113562 [PR 168161]: {{site.repo.flutter}}/pull/168161 diff --git a/sites/docs/src/content/release/breaking-changes/rendereditable-layout-before-hit-test.md b/sites/docs/src/content/release/breaking-changes/rendereditable-layout-before-hit-test.md index 1b421a6b93c..c5fd4e42217 100644 --- a/sites/docs/src/content/release/breaking-changes/rendereditable-layout-before-hit-test.md +++ b/sites/docs/src/content/release/breaking-changes/rendereditable-layout-before-hit-test.md @@ -44,7 +44,7 @@ Code before migration: ```dart import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { test('attach and detach correctly handle gesture', () { @@ -80,7 +80,7 @@ Code after migration: ```dart import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { test('attach and detach correctly handle gesture', () { diff --git a/sites/docs/src/content/release/breaking-changes/scaffold-messenger.md b/sites/docs/src/content/release/breaking-changes/scaffold-messenger.md index 7c9f138b970..cdf837c2f2e 100644 --- a/sites/docs/src/content/release/breaking-changes/scaffold-messenger.md +++ b/sites/docs/src/content/release/breaking-changes/scaffold-messenger.md @@ -196,10 +196,10 @@ Relevant PRs: * [ScaffoldMessenger][] * [ScaffoldMessenger Migration][] -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html -[`ScaffoldMessenger`]: {{site.api}}/flutter/material/ScaffoldMessenger-class.html -[`SnackBar`]: {{site.api}}/flutter/material/SnackBar-class.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html +[`ScaffoldMessenger`]: {{site.material_ui}}/ScaffoldMessenger-class.html +[`SnackBar`]: {{site.material_ui}}/SnackBar-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html [Issue #57218]: {{site.repo.flutter}}/issues/57218 [Issue #62921]: {{site.repo.flutter}}/issues/62921 [ScaffoldMessenger]: {{site.repo.flutter}}/pull/64101 diff --git a/sites/docs/src/content/release/breaking-changes/scrollable-alert-dialog.md b/sites/docs/src/content/release/breaking-changes/scrollable-alert-dialog.md index 9381bfd078c..316cfea4246 100644 --- a/sites/docs/src/content/release/breaking-changes/scrollable-alert-dialog.md +++ b/sites/docs/src/content/release/breaking-changes/scrollable-alert-dialog.md @@ -196,7 +196,7 @@ Relevant PRs: * [Revert of original attempt to implement scrollable `AlertDialog`][] -[`AlertDialog`]: {{site.api}}/flutter/material/AlertDialog-class.html +[`AlertDialog`]: {{site.material_ui}}/AlertDialog-class.html [Original attempt to implement scrollable `AlertDialog`]: {{site.repo.flutter}}/pull/43226 [Overflow exceptions with maximum accessibility font size]: {{site.repo.flutter}}/issues/42696 [Revert of original attempt to implement scrollable `AlertDialog`]: {{site.repo.flutter}}/pull/44003 diff --git a/sites/docs/src/content/release/breaking-changes/snackbar-with-action-behavior-update.md b/sites/docs/src/content/release/breaking-changes/snackbar-with-action-behavior-update.md index 29875f2d53f..741cc3f578b 100644 --- a/sites/docs/src/content/release/breaking-changes/snackbar-with-action-behavior-update.md +++ b/sites/docs/src/content/release/breaking-changes/snackbar-with-action-behavior-update.md @@ -94,6 +94,6 @@ Relevant PRs: * [SnackBar with action no longer auto-dismisses][] -[`SnackBar`]: {{site.api}}/flutter/material/SnackBar-class.html +[`SnackBar`]: {{site.material_ui}}/SnackBar-class.html [SnackBar with action no longer auto-dismisses]: {{site.repo.flutter}}/pull/173084 diff --git a/sites/docs/src/content/release/breaking-changes/supplemental-maybeOf-migration.md b/sites/docs/src/content/release/breaking-changes/supplemental-maybeOf-migration.md index 44be1725ea7..694f01bbccc 100644 --- a/sites/docs/src/content/release/breaking-changes/supplemental-maybeOf-migration.md +++ b/sites/docs/src/content/release/breaking-changes/supplemental-maybeOf-migration.md @@ -141,8 +141,8 @@ Relevant PRs: [`unnecessary_nullable_for_final_variable_declarations`]: {{site.dart-site}}/tools/linter-rules#unnecessary_nullable_for_final_variable_declarations [`AutofillGroup.maybeOf`]: {{site.api}}/flutter/widgets/AutofillGroup/maybeOf.html [`AutofillGroup.of`]: {{site.api}}/flutter/widgets/AutofillGroup/of.html -[`DefaultTabController.maybeOf`]: {{site.api}}/flutter/material/DefaultTabController/maybeOf.html -[`DefaultTabController.of`]: {{site.api}}/flutter/material/DefaultTabController/of.html +[`DefaultTabController.maybeOf`]: {{site.material_ui}}/DefaultTabController/maybeOf.html +[`DefaultTabController.of`]: {{site.material_ui}}/DefaultTabController/of.html [`DefaultTextHeightBehavior.maybeOf`]: {{site.api}}/flutter/widgets/DefaultTextHeightBehavior/maybeOf.html [`DefaultTextHeightBehavior.of`]: {{site.api}}/flutter/widgets/DefaultTextHeightBehavior/of.html [`Form.maybeOf`]: {{site.api}}/flutter/widgets/Form/maybeOf.html @@ -150,8 +150,8 @@ Relevant PRs: [`HeroControllerScope.maybeOf`]: {{site.api}}/flutter/widgets/HeroControllerScope/maybeOf.html [`HeroControllerScope.of`]: {{site.api}}/flutter/widgets/HeroControllerScope/of.html [`InheritedWidget`]: {{site.api}}/flutter/widgets/InheritedWidget-class.html -[`Material.maybeOf`]: {{site.api}}/flutter/material/Material/maybeOf.html -[`Material.of`]: {{site.api}}/flutter/material/Material/of.html +[`Material.maybeOf`]: {{site.material_ui}}/Material/maybeOf.html +[`Material.of`]: {{site.material_ui}}/Material/of.html [`Overlay.maybeOf`]: {{site.api}}/flutter/widgets/Overlay/maybeOf.html [`Overlay.of`]: {{site.api}}/flutter/widgets/Overlay/of.html [`PageStorage.maybeOf`]: {{site.api}}/flutter/widgets/PageStorage/maybeOf.html diff --git a/sites/docs/src/content/release/breaking-changes/tab-alignment.md b/sites/docs/src/content/release/breaking-changes/tab-alignment.md index 09157225ce8..05cd0d86b10 100644 --- a/sites/docs/src/content/release/breaking-changes/tab-alignment.md +++ b/sites/docs/src/content/release/breaking-changes/tab-alignment.md @@ -104,9 +104,9 @@ Relevant PRs: * [Introduce `TabBar.tabAlignment`][] * [Fix Material 3 Scrollable `TabBar`][] -[`TabBar`]: {{site.api}}/flutter/material/TabBar-class.html -[`TabBar.tabAlignment`]: {{site.api}}/flutter/material/TabBar/tabAlignment.html -[`TabAlignment`]: {{site.api}}/flutter/material/TabAlignment.html +[`TabBar`]: {{site.material_ui}}/TabBar-class.html +[`TabBar.tabAlignment`]: {{site.material_ui}}/TabBar/tabAlignment.html +[`TabAlignment`]: {{site.material_ui}}/TabAlignment.html [Introduce `TabBar.tabAlignment`]: {{site.repo.flutter}}/pull/125036 [Fix Material 3 Scrollable `TabBar`]: {{site.repo.flutter}}/pull/131409 diff --git a/sites/docs/src/content/release/breaking-changes/text-field-material-localizations.md b/sites/docs/src/content/release/breaking-changes/text-field-material-localizations.md index 67ec9b1a47e..e104c589d23 100644 --- a/sites/docs/src/content/release/breaking-changes/text-field-material-localizations.md +++ b/sites/docs/src/content/release/breaking-changes/text-field-material-localizations.md @@ -45,7 +45,7 @@ by creating your own `Localizations` widget. Code before migration: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(Foo()); @@ -68,7 +68,7 @@ class Foo extends StatelessWidget { Code after migration (Providing localizations using the `MaterialApp`): ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(Foo()); @@ -87,7 +87,7 @@ class Foo extends StatelessWidget { Code after migration (Providing localizations via the `Localizations` widget): ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(Foo()); @@ -134,10 +134,10 @@ Relevant PR: * [PR 58831: Assert debugCheckHasMaterialLocalizations on TextField][] -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html [`Localizations`]: {{site.api}}/flutter/widgets/Localizations-class.html -[`MaterialLocalizations`]: {{site.api}}/flutter/material/MaterialLocalizations-class.html -[`DefaultMaterialLocalizations`]: {{site.api}}/flutter/material/DefaultMaterialLocalizations-class.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html +[`MaterialLocalizations`]: {{site.material_ui}}/MaterialLocalizations-class.html +[`DefaultMaterialLocalizations`]: {{site.material_ui}}/DefaultMaterialLocalizations-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html [Internationalizing Flutter apps]: /ui/internationalization [PR 58831: Assert debugCheckHasMaterialLocalizations on TextField]: {{site.repo.flutter}}/pull/58831 diff --git a/sites/docs/src/content/release/breaking-changes/text-selection-theme.md b/sites/docs/src/content/release/breaking-changes/text-selection-theme.md index 5d26ea43aed..76fc0ee44f9 100644 --- a/sites/docs/src/content/release/breaking-changes/text-selection-theme.md +++ b/sites/docs/src/content/release/breaking-changes/text-selection-theme.md @@ -121,5 +121,5 @@ Relevant PRs: [Material Theme Updates]: /go/material-theme-system-updates [PR 62014: TextSelectionTheme support]: {{site.repo.flutter}}/pull/62014 [Text Selection Theme]: /go/text-selection-theme -[`TextSelectionThemeData`]: {{site.api}}/flutter/material/TextSelectionThemeData-class.html -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html +[`TextSelectionThemeData`]: {{site.material_ui}}/TextSelectionThemeData-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html diff --git a/sites/docs/src/content/release/breaking-changes/theme-data-accent-properties.md b/sites/docs/src/content/release/breaking-changes/theme-data-accent-properties.md index a2545c5fb7f..e8fe64fc210 100644 --- a/sites/docs/src/content/release/breaking-changes/theme-data-accent-properties.md +++ b/sites/docs/src/content/release/breaking-changes/theme-data-accent-properties.md @@ -167,27 +167,27 @@ Other: * [Material Theme System Updates][] -[accentColor]: {{site.api}}/flutter/material/ThemeData/accentColor.html -[accentColorBrightness]: {{site.api}}/flutter/material/ThemeData/accentColorBrightness.html -[accentIconTheme]: {{site.api}}/flutter/material/ThemeData/accentIconTheme.html -[accentTextTheme]: {{site.api}}/flutter/material/ThemeData/accentTextTheme.html -[`CheckboxTheme`]: {{site.api}}/flutter/material/CheckboxTheme-class.html -[color-scheme-prop]: {{site.api}}/flutter/material/ThemeData/colorScheme.html -[`colorScheme.onSecondary`]: {{site.api}}/flutter/material/ColorScheme/onSecondary.html -[`colorScheme.secondary`]: {{site.api}}/flutter/material/ColorScheme/secondary.html -[`ColorScheme`]: {{site.api}}/flutter/material/ColorScheme-class.html +[accentColor]: {{site.material_ui}}/ThemeData/accentColor.html +[accentColorBrightness]: {{site.material_ui}}/ThemeData/accentColorBrightness.html +[accentIconTheme]: {{site.material_ui}}/ThemeData/accentIconTheme.html +[accentTextTheme]: {{site.material_ui}}/ThemeData/accentTextTheme.html +[`CheckboxTheme`]: {{site.material_ui}}/CheckboxTheme-class.html +[color-scheme-prop]: {{site.material_ui}}/ThemeData/colorScheme.html +[`colorScheme.onSecondary`]: {{site.material_ui}}/ColorScheme/onSecondary.html +[`colorScheme.secondary`]: {{site.material_ui}}/ColorScheme/secondary.html +[`ColorScheme`]: {{site.material_ui}}/ColorScheme-class.html [Issue #56918]: {{site.repo.flutter}}/issues/56918 [FloatingActionButton and ThemeData's accent properties]: /release/breaking-changes/fab-theme-data-accent-properties -[`FloatingActionButton`]: {{site.api}}/flutter/material/FloatingActionButton-class.html -[`FloatingActionButtonThemeData`]: {{site.api}}/flutter/material/FloatingActionButtonThemeData-class.html +[`FloatingActionButton`]: {{site.material_ui}}/FloatingActionButton-class.html +[`FloatingActionButtonThemeData`]: {{site.material_ui}}/FloatingActionButtonThemeData-class.html [Material Design spec]: {{site.material}}/styles/color [Material Theme System Updates]: /go/material-theme-system-updates -[secondary color]: {{site.api}}/flutter/material/ColorScheme/secondary.html -[onSecondary color]: {{site.api}}/flutter/material/ColorScheme/onSecondary.html +[secondary color]: {{site.material_ui}}/ColorScheme/secondary.html +[onSecondary color]: {{site.material_ui}}/ColorScheme/onSecondary.html [PR #81336]: {{site.repo.flutter}}/pull/81336 [`TextStyle`]: {{site.api}}/flutter/painting/TextStyle-class.html -[text-scheme-prop]: {{site.api}}/flutter/material/ThemeData/textTheme.html -[`TextTheme`]: {{site.api}}/flutter/material/TextTheme-class.html -[`Theme`]: {{site.api}}/flutter/material/Theme-class.html -[`ThemeData`]: {{site.api}}/flutter/material/ThemeData-class.html -[`ThemeData.estimateBrightnessForColor()`]: {{site.api}}/flutter/material/ThemeData/estimateBrightnessForColor.html +[text-scheme-prop]: {{site.material_ui}}/ThemeData/textTheme.html +[`TextTheme`]: {{site.material_ui}}/TextTheme-class.html +[`Theme`]: {{site.material_ui}}/Theme-class.html +[`ThemeData`]: {{site.material_ui}}/ThemeData-class.html +[`ThemeData.estimateBrightnessForColor()`]: {{site.material_ui}}/ThemeData/estimateBrightnessForColor.html diff --git a/sites/docs/src/content/release/breaking-changes/toggleable-active-color.md b/sites/docs/src/content/release/breaking-changes/toggleable-active-color.md index d8f82baacb2..d15100c3a8f 100644 --- a/sites/docs/src/content/release/breaking-changes/toggleable-active-color.md +++ b/sites/docs/src/content/release/breaking-changes/toggleable-active-color.md @@ -120,7 +120,7 @@ Relevant PRs: * [Deprecate `toggleableActiveColor`][]. -[`ThemeData.toggleableActiveColor`]: {{site.api}}/flutter/material/ThemeData/toggleableActiveColor.html -[`ColorScheme.secondary`]: {{site.api}}/flutter/material/ColorScheme/secondary.html +[`ThemeData.toggleableActiveColor`]: {{site.material_ui}}/ThemeData/toggleableActiveColor.html +[`ColorScheme.secondary`]: {{site.material_ui}}/ColorScheme/secondary.html [`Switch` widget color doesn't use `ColorScheme`]: {{site.repo.flutter}}/issues/93709 [Deprecate `toggleableActiveColor`]: {{site.repo.flutter}}/pull/97972 diff --git a/sites/docs/src/content/release/breaking-changes/tooltip-semantics-order.md b/sites/docs/src/content/release/breaking-changes/tooltip-semantics-order.md index 81e1d3b8893..aa015a23d72 100644 --- a/sites/docs/src/content/release/breaking-changes/tooltip-semantics-order.md +++ b/sites/docs/src/content/release/breaking-changes/tooltip-semantics-order.md @@ -142,5 +142,5 @@ Relevant PRs: * [OverlayPortal.overlayChild contributes semantics to OverlayPortal instead of Overlay][] -[`Tooltip`]: {{site.api}}/flutter/material/Tooltip-class.html +[`Tooltip`]: {{site.material_ui}}/Tooltip-class.html [OverlayPortal.overlayChild contributes semantics to OverlayPortal instead of Overlay]: {{site.repo.flutter}}/pull/134921 diff --git a/sites/docs/src/content/release/breaking-changes/updated-material-3-progress-indicators.md b/sites/docs/src/content/release/breaking-changes/updated-material-3-progress-indicators.md index d466b2a88ed..a216b04d459 100644 --- a/sites/docs/src/content/release/breaking-changes/updated-material-3-progress-indicators.md +++ b/sites/docs/src/content/release/breaking-changes/updated-material-3-progress-indicators.md @@ -120,10 +120,10 @@ Relevant PRs: - [Update Material 3 `LinearProgressIndicator` for new visual style][] - [Update Material 3 `CircularProgressIndicator` for new visual style][] -[`LinearProgressIndicator`]: {{site.main-api}}/flutter/material/LinearProgressIndicator-class.html -[`CircularProgressIndicator`]: {{site.main-api}}/flutter/material/CircularProgressIndicator-class.html -[`LinearProgressIndicator.year2023`]: {{site.main-api}}/flutter/material/LinearProgressIndicator/year2023.html -[`CircularProgressIndicator.year2023`]: {{site.main-api}}/flutter/material/CircularProgressIndicator/year2023.html +[`LinearProgressIndicator`]: {{site.material_ui}}/LinearProgressIndicator-class.html +[`CircularProgressIndicator`]: {{site.material_ui}}/CircularProgressIndicator-class.html +[`LinearProgressIndicator.year2023`]: {{site.material_ui}}/LinearProgressIndicator/year2023.html +[`CircularProgressIndicator.year2023`]: {{site.material_ui}}/CircularProgressIndicator/year2023.html [Update both `ProgressIndicator` for Material 3 redesign]: {{site.repo.flutter}}/issues/141340 [Update Material 3 `LinearProgressIndicator` for new visual style]: {{site.repo.flutter}}/pull/154817 [Update Material 3 `CircularProgressIndicator` for new visual style]: {{site.repo.flutter}}/pull/158104 diff --git a/sites/docs/src/content/release/breaking-changes/updated-material-3-slider.md b/sites/docs/src/content/release/breaking-changes/updated-material-3-slider.md index bc0b058c4c2..df5deb20b1a 100644 --- a/sites/docs/src/content/release/breaking-changes/updated-material-3-slider.md +++ b/sites/docs/src/content/release/breaking-changes/updated-material-3-slider.md @@ -90,7 +90,7 @@ Relevant PRs: * [Introduce new Material 3 `Slider` shapes][] -[`Slider`]: {{site.main-api}}/flutter/material/Slider-class.html -[`Slider.year2023`]: {{site.main-api}}/flutter/material/Slider/year2023.html +[`Slider`]: {{site.material_ui}}/Slider-class.html +[`Slider.year2023`]: {{site.material_ui}}/Slider/year2023.html [Update `Slider` for Material 3 redesign]: {{site.repo.flutter}}/issues/141842 [Introduce new Material 3 `Slider` shapes]: {{site.repo.flutter}}/pull/152237 diff --git a/sites/docs/src/content/release/breaking-changes/wide-gamut-cupertino-dynamic-color.md b/sites/docs/src/content/release/breaking-changes/wide-gamut-cupertino-dynamic-color.md index e442bbc9bc6..6a2ee01df2d 100644 --- a/sites/docs/src/content/release/breaking-changes/wide-gamut-cupertino-dynamic-color.md +++ b/sites/docs/src/content/release/breaking-changes/wide-gamut-cupertino-dynamic-color.md @@ -104,18 +104,18 @@ Relevant PRs: * [Add missing deprecations to CupertinoDynamicColor][] [`Color`]: {{site.api}}/flutter/dart-ui/Color-class.html -[`CupertinoDynamicColor`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor-class.html +[`CupertinoDynamicColor`]: {{site.cupertino_ui}}/CupertinoDynamicColor-class.html [wide gamut color spaces]: https://en.wikipedia.org/wiki/RGB_color_spaces -[`CupertinoDynamicColor.red`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/red.html -[`CupertinoDynamicColor.r`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/r.html -[`CupertinoDynamicColor.green`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/green.html -[`CupertinoDynamicColor.g`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/g.html -[`CupertinoDynamicColor.blue`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/blue.html -[`CupertinoDynamicColor.b`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/b.html -[`CupertinoDynamicColor.opacity`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/opacity.html -[`CupertinoDynamicColor.a`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/a.html -[`CupertinoDynamicColor.withOpacity()`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/withOpacity.html -[`CupertinoDynamicColor.withValues()`]: {{site.api}}/flutter/cupertino/CupertinoDynamicColor/withValues.html +[`CupertinoDynamicColor.red`]: {{site.cupertino_ui}}/CupertinoDynamicColor/red.html +[`CupertinoDynamicColor.r`]: {{site.cupertino_ui}}/CupertinoDynamicColor/r.html +[`CupertinoDynamicColor.green`]: {{site.cupertino_ui}}/CupertinoDynamicColor/green.html +[`CupertinoDynamicColor.g`]: {{site.cupertino_ui}}/CupertinoDynamicColor/g.html +[`CupertinoDynamicColor.blue`]: {{site.cupertino_ui}}/CupertinoDynamicColor/blue.html +[`CupertinoDynamicColor.b`]: {{site.cupertino_ui}}/CupertinoDynamicColor/b.html +[`CupertinoDynamicColor.opacity`]: {{site.cupertino_ui}}/CupertinoDynamicColor/opacity.html +[`CupertinoDynamicColor.a`]: {{site.cupertino_ui}}/CupertinoDynamicColor/a.html +[`CupertinoDynamicColor.withOpacity()`]: {{site.cupertino_ui}}/CupertinoDynamicColor/withOpacity.html +[`CupertinoDynamicColor.withValues()`]: {{site.cupertino_ui}}/CupertinoDynamicColor/withValues.html [Migration guide for wide gamut Color]: /release/breaking-changes/wide-gamut-framework [Implement wide gamut color support in the Framework]: {{site.repo.flutter}}/issues/127855 [CupertinoDynamicColor is missing deprecation notices]: {{site.repo.flutter}}/issues/171059 diff --git a/sites/docs/src/content/release/breaking-changes/zone-errors.md b/sites/docs/src/content/release/breaking-changes/zone-errors.md index 5bceb641e71..3c3a7ac4241 100644 --- a/sites/docs/src/content/release/breaking-changes/zone-errors.md +++ b/sites/docs/src/content/release/breaking-changes/zone-errors.md @@ -94,7 +94,7 @@ update that object with the value once the value is available. ```dart import 'dart:async'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class Mutable { Mutable(this.value); diff --git a/sites/docs/src/content/release/release-notes/release-notes-0.0.21-1.0.0.md b/sites/docs/src/content/release/release-notes/release-notes-0.0.21-1.0.0.md index 5a12ab48978..ce6a86da894 100644 --- a/sites/docs/src/content/release/release-notes/release-notes-0.0.21-1.0.0.md +++ b/sites/docs/src/content/release/release-notes/release-notes-0.0.21-1.0.0.md @@ -298,7 +298,7 @@ To follow our investigation, see [Dart issue 32936]({{site.repo.dart-sdk}}/issue ### v0.1.9 -* [#14901](https://github.com/flutter/flutter/pull/14901) A [Slider](https://api.flutter.dev/flutter/material/Slider-class.html) visual update changed the colors, opacities, and the value indicator shape and behavior. It also removed the "`thumbOpenAtMin`" flag from the Slider class, which is no longer needed, and can be emulated by the custom thumb shape support. +* [#14901](https://github.com/flutter/flutter/pull/14901) A [Slider](https://pub.dev/documentation/material_ui/latest/material_ui/Slider-class.html) visual update changed the colors, opacities, and the value indicator shape and behavior. It also removed the "`thumbOpenAtMin`" flag from the Slider class, which is no longer needed, and can be emulated by the custom thumb shape support. ## Changes in v0.1.5 (since v0.1.4) - beta 1.1 diff --git a/sites/docs/src/content/release/release-notes/release-notes-1.12.13.md b/sites/docs/src/content/release/release-notes/release-notes-1.12.13.md index 7326248b62f..f975b95f8cf 100644 --- a/sites/docs/src/content/release/release-notes/release-notes-1.12.13.md +++ b/sites/docs/src/content/release/release-notes/release-notes-1.12.13.md @@ -155,11 +155,11 @@ iOS continues to be a big investment area for Flutter. With this release, we've made a visual refresh to our Cupertino library to match the iOS 13 look. We now support dark mode in the Cupertino widgets, added two new widgets called -[CupertinoContextMenu]({{site.api}}/flutter/cupertino/CupertinoContextMenu-class.html) -and [CupertinoSlidingSegmentedControl]({{site.api}}/flutter/cupertino/CupertinoSlidingSegmentedControl-class.html), +[CupertinoContextMenu]({{site.cupertino_ui}}/CupertinoContextMenu-class.html) +and [CupertinoSlidingSegmentedControl]({{site.cupertino_ui}}/CupertinoSlidingSegmentedControl-class.html), and made improvements to segmented control widgets, -[CupertinoAlertDialog]({{site.api}}/flutter/cupertino/CupertinoAlertDialog-class.html), -and [CupertinoDatePicker]({{site.api}}/flutter/cupertino/CupertinoDatePicker-class.html) +[CupertinoAlertDialog]({{site.cupertino_ui}}/CupertinoAlertDialog-class.html), +and [CupertinoDatePicker]({{site.cupertino_ui}}/CupertinoDatePicker-class.html) [36871]({{site.repo.flutter}}/pull/36871) Audit use of defaultTargetPlatform diff --git a/sites/docs/src/content/release/release-notes/release-notes-1.2.1.md b/sites/docs/src/content/release/release-notes/release-notes-1.2.1.md index 26e4f9d0574..0b92da62b4f 100644 --- a/sites/docs/src/content/release/release-notes/release-notes-1.2.1.md +++ b/sites/docs/src/content/release/release-notes/release-notes-1.2.1.md @@ -59,7 +59,7 @@ To integrate more fully with desktop form-factors like Android tablets and Chrom [#24830](https://github.com/flutter/flutter/pull/24830) Implement hover support for mouse pointers -As widgets are the core way to interact with users in Flutter, this release continues to add features and fixes to the Flutter widget set with particular attention paid to the [SliverAppBar](https://api.flutter.dev/flutter/material/SliverAppBar-class.html): +As widgets are the core way to interact with users in Flutter, this release continues to add features and fixes to the Flutter widget set with particular attention paid to the [SliverAppBar](https://pub.dev/documentation/material_ui/latest_material_ui/SliverAppBar-class.html): [#26021](https://github.com/flutter/flutter/pull/26021) Fix SliverAppBar title opacity and test all cases diff --git a/sites/docs/src/content/release/release-notes/release-notes-1.7.8.md b/sites/docs/src/content/release/release-notes/release-notes-1.7.8.md index d3f01afba59..9b076be2229 100644 --- a/sites/docs/src/content/release/release-notes/release-notes-1.7.8.md +++ b/sites/docs/src/content/release/release-notes/release-notes-1.7.8.md @@ -15,7 +15,7 @@ The major themes of this release are: * [AndroidX support](https://github.com/flutter/flutter/pull/31028) for new projects via the --androidx flag of 'flutter create' * A new widget: the - [RangeSlider](https://api.flutter.dev/flutter/material/RangeSlider-class.html) + [RangeSlider](https://pub.dev/documentation/material_ui/latest/material_ui/RangeSlider-class.html) As detailed in our [roadmap](https://github.com/flutter/flutter/blob/master/docs/roadmap/Roadmap.md), @@ -122,7 +122,7 @@ In this release, we've improved support for Android with new support for Android ## Material -This release includes a number of improvements to existing Material components, including the DatePicker, SnackBar and TimePicker, as well as a new component: the [RangeSlider](https://api.flutter.dev/flutter/material/RangeSlider-class.html). +This release includes a number of improvements to existing Material components, including the DatePicker, SnackBar and TimePicker, as well as a new component: the [RangeSlider](https://pub.dev/documentation/material_ui/latest/material_ui/RangeSlider-class.html). diff --git a/sites/docs/src/content/resources/architectural-overview.md b/sites/docs/src/content/resources/architectural-overview.md index 96ecbbec77f..1848d29b685 100644 --- a/sites/docs/src/content/resources/architectural-overview.md +++ b/sites/docs/src/content/resources/architectural-overview.md @@ -55,22 +55,8 @@ independent libraries that each depend on the underlying layer. No layer has privileged access to the layer below, and every part of the framework level is designed to be optional and replaceable. -{% comment %} -The PNG diagrams in this document were created using draw.io. The draw.io -metadata is embedded in the PNG file itself, so you can open the PNG directly -from draw.io to edit the individual components. - -The following settings were used: - - - Select all (to avoid exporting the canvas itself) - - Export as PNG, zoom 300% (for a reasonable sized output) - - Enable _Transparent Background_ - - Enable _Selection Only_, _Crop_ - - Enable _Include a copy of my diagram_ -{% endcomment %} - ![Architectural -diagram](/assets/images/docs/arch-overview/archdiagram.png){:width="100%"} +diagram](/assets/images/docs/arch-overview/archdiagram.webp){:width="100%"} To the underlying operating system, Flutter applications are packaged in the same way as any other native application. A platform-specific embedder provides @@ -127,16 +113,16 @@ a series of layers. Working from the bottom to the top, we have: With this layer, you can build a tree of renderable objects. You can manipulate these objects dynamically, with the tree automatically updating the layout to reflect your changes. -* The **[widgets layer]({{site.api}}/flutter/widgets/widgets-library.html)** is - a composition abstraction. Each render object in the rendering layer has a +* The **[widgets layer]({{site.api}}/flutter/widgets/widgets-library.html)**, + part of the core Flutter SDK is a composition abstraction. + Each render object in the rendering layer has a corresponding class in the widgets layer. In addition, the widgets layer allows you to define combinations of classes that you can reuse. This is the layer at which the reactive programming model is introduced. * The - **[Material]({{site.api}}/flutter/material/material-library.html)** - and - **[Cupertino]({{site.api}}/flutter/cupertino/cupertino-library.html)** - libraries offer comprehensive sets of controls that use the widget layer's + **[Material]({site.pub}/package/material_ui)** and + **[Cupertino]({{site.pub}}/packages/cupertino_ui)** packages + offer comprehensive sets of controls that use the widget layer's composition primitives to implement the Material or iOS design languages. The Flutter framework is relatively small; many higher-level features that @@ -146,12 +132,18 @@ like [camera]({{site.pub}}/packages/camera) and features like [characters]({{site.pub}}/packages/characters), [http]({{site.pub}}/packages/http), and [animations]({{site.pub}}/packages/animations) that build upon the core Dart and -Flutter libraries. Some of these packages come from the broader ecosystem, +Flutter libraries. Additionally, the Material and Cupertino UI packages +are found on pub.dev, allowing you to either import them or build your +own design system on top of the core `widgets` library without bloating your app. +Other packages come from the broader ecosystem, covering services like [in-app payments]({{site.pub}}/packages/square_in_app_payments), [Apple authentication]({{site.pub}}/packages/sign_in_with_apple), and [animations]({{site.pub}}/packages/lottie). +For more information about Flutter's approach to UI design, visit +[Buiding user interfaces with Flutter](/ui). + The rest of this overview broadly navigates down the layers, starting with the reactive paradigm of UI development. Then, we describe how widgets are composed together and converted into objects that can be rendered as part of an @@ -178,7 +170,7 @@ pieces of a Flutter app. **Framework** ([source code]({{site.repo.flutter}}/tree/main/packages/flutter/lib)) * Provides higher-level API to build high-quality apps - (for example, widgets, hit-testing, gesture detection, + (for example, style-neutral widgets, hit-testing, gesture detection, accessibility, text input). * Composites the app's widget tree into a scene. @@ -276,7 +268,7 @@ way up to the root widget (the container that hosts the Flutter app, typically ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/services.dart'; void main() => runApp(const MyApp()); @@ -322,10 +314,10 @@ efficiently updates the user interface. Flutter has its own implementations of each UI control, rather than deferring to those provided by the system: for example, there is a pure [Dart -implementation]({{site.api}}/flutter/cupertino/CupertinoSwitch-class.html) +implementation]({{site.cupertino_ui}}/CupertinoSwitch-class.html) of both the [iOS Toggle control]({{site.apple-dev}}/design/human-interface-guidelines/toggles) -and the [one for]({{site.api}}/flutter/material/Switch-class.html) the +and the [one for]({{site.material_ui}}/Switch-class.html) the [Android equivalent]({{site.material}}/components/switch). This approach provides several benefits: @@ -371,7 +363,7 @@ widgets do not have a visual representation of their own. Instead, their sole purpose is to control some aspect of another widget's layout. Flutter also includes utility widgets that take advantage of this compositional approach. -For example, [`Container`]({{site.api}}/flutter/widgets/Container-class.html), a +For example, [`Container`]({{site.api}}/flutter/widgetsContainer-class.html), a commonly used widget, is made up of several widgets responsible for layout, painting, positioning, and sizing. Specifically, `Container` is made up of the [`LimitedBox`]({{site.api}}/flutter/widgets/LimitedBox-class.html), @@ -396,8 +388,8 @@ interface in more concrete terms. For example, a toolbar widget might have a build function that returns a [horizontal layout]({{site.api}}/flutter/widgets/Row-class.html) of some [text]({{site.api}}/flutter/widgets/Text-class.html) and -[various]({{site.api}}/flutter/material/IconButton-class.html) -[buttons]({{site.api}}/flutter/material/PopupMenuButton-class.html). As needed, +[various]({{site.material_ui}}/IconButton-class.html) +[buttons]({{site.material_ui}}/PopupMenuButton-class.html). As needed, the framework recursively asks each widget to build until the tree is entirely described by [concrete renderable objects]({{site.api}}/flutter/widgets/RenderObjectWidget-class.html). The @@ -528,7 +520,7 @@ Container( ); ``` -[properties like color and type styles]: {{site.api}}/flutter/material/ThemeData-class.html +[properties like color and type styles]: {{site.material_ui}}/ThemeData-class.html As applications grow, more advanced state management approaches that reduce the ceremony of creating and using stateful widgets become more attractive. Many @@ -1060,11 +1052,7 @@ On the web, Flutter compiles your application code into either JavaScript or [WebAssembly][Dart WebAssembly support] (when building with `--wasm`), rendering graphics using a WebAssembly build of the Skia engine. -{% comment %} -The draw.io source for the following image is in /diagrams/resources -{% endcomment %} - -![Flutter web architecture](/assets/images/docs/arch-overview/web-framework-diagram.png){:width="80%" .diagram-wrap} +![Flutter web architecture](/assets/images/docs/resources/diagram-layercake.webp){:width="80%" .diagram-wrap} Perhaps the most notable difference compared to other platforms on which Flutter runs is that there is no need diff --git a/sites/docs/src/content/resources/faq.md b/sites/docs/src/content/resources/faq.md index 2aa5aac04e1..e0563ccfdd6 100644 --- a/sites/docs/src/content/resources/faq.md +++ b/sites/docs/src/content/resources/faq.md @@ -650,9 +650,9 @@ applying each where it is most effective: [`Future`]: {{site.api}}/flutter/dart-async/Future-class.html [`GlobalKey`]: {{site.api}}/flutter/widgets/GlobalKey-class.html [`IconTheme`]: {{site.api}}/flutter/widgets/IconTheme-class.html -[`InkWell`]: {{site.api}}/flutter/material/InkWell-class.html +[`InkWell`]: {{site.material_ui}}/InkWell-class.html [`Listenable`]: {{site.api}}/flutter/foundation/Listenable-class.html -[`Material`]: {{site.api}}/flutter/material/Material-class.html +[`Material`]: {{site.material_ui}}/Material-class.html [`Padding`]: {{site.api}}/flutter/widgets/Padding-class.html [`Rect`]: {{site.api}}/flutter/dart-ui/Rect-class.html [`RenderBox`]: {{site.api}}/flutter/rendering/RenderBox-class.html @@ -661,7 +661,7 @@ applying each where it is most effective: [`State`]: {{site.api}}/flutter/widgets/State-class.html [`StatelessWidget`]: {{site.api}}/flutter/widgets/StatelessWidget-class.html [`Stream`]: {{site.api}}/flutter/dart-async/Stream-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html [`TextStyle`]: {{site.api}}/flutter/painting/TextStyle-class.html [`Widget`]: {{site.api}}/flutter/widgets/Widget-class.html @@ -725,10 +725,10 @@ Flutter provides built-in APIs to display open source licenses: or [`showLicensePage`][]. * For custom presentations, access the raw licenses from the [`LicenseRegistry`][]. -[`AboutListTile`]: {{site.api}}/flutter/material/AboutListTile-class.html +[`AboutListTile`]: {{site.material_ui}}/AboutListTile-class.html [`LicenseRegistry`]: {{site.api}}/flutter/foundation/LicenseRegistry-class.html -[`showAboutDialog`]: {{site.api}}/flutter/material/showAboutDialog.html -[`showLicensePage`]: {{site.api}}/flutter/material/showLicensePage.html +[`showAboutDialog`]: {{site.material_ui}}/showAboutDialog.html +[`showLicensePage`]: {{site.material_ui}}/showLicensePage.html ### Who works on Flutter? diff --git a/sites/docs/src/content/testing/code-debugging.md b/sites/docs/src/content/testing/code-debugging.md index 51ff89c8c25..d2a598b456c 100644 --- a/sites/docs/src/content/testing/code-debugging.md +++ b/sites/docs/src/content/testing/code-debugging.md @@ -143,7 +143,7 @@ call the [`debugDumpApp()`][] function. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); @@ -223,7 +223,7 @@ To dump the render tree: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); @@ -324,7 +324,7 @@ To debug a compositing issue, use [`debugDumpLayerTree()`][]. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); @@ -415,7 +415,7 @@ extensive logging when the focus changes. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const MaterialApp(home: AppHome())); @@ -463,7 +463,7 @@ To obtain a dump of the Semantics tree: ```dart import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/rendering.dart'; void main() { @@ -706,7 +706,7 @@ constructor: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; class MyApp extends StatelessWidget { const MyApp({super.key}); @@ -742,10 +742,10 @@ help verify alignments, add the `debugShowMaterialGrid` argument in the To add an overlay to non-Material applications, add a [`GridPaper`][] widget. -[`_InkFeatures`]: {{site.api}}/flutter/material/InkFeature-class.html +[`_InkFeatures`]: {{site.material_ui}}/InkFeature-class.html [`BoxConstraints`]: {{site.api}}/flutter/rendering/BoxConstraints-class.html [`Center`]: {{site.api}}/flutter/widgets/Center-class.html -[`CupertinoApp`]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html +[`CupertinoApp`]: {{site.cupertino_ui}}/CupertinoApp-class.html [`debugDumpApp()`]: {{site.api}}/flutter/widgets/debugDumpApp.html [`debugDumpFocusTree()`]: {{site.api}}/flutter/widgets/debugDumpFocusTree.html [`debugDumpLayerTree()`]: {{site.api}}/flutter/rendering/debugDumpLayerTree.html @@ -767,16 +767,16 @@ To add an overlay to non-Material applications, add a [`GridPaper`][] widget. [`Focus`]: {{site.api}}/flutter/widgets/Focus-class.html [`GridPaper`]: {{site.api}}/flutter/widgets/GridPaper-class.html [`log()`]: {{site.api}}/flutter/dart-developer/log.html -[`Material`]: {{site.api}}/flutter/material/Material-class.html -[`MaterialApp` constructor]: {{site.api}}/flutter/material/MaterialApp/MaterialApp.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp/MaterialApp.html +[`Material`]: {{site.material_ui}}/Material-class.html +[`MaterialApp` constructor]: {{site.material_ui}}/MaterialApp/MaterialApp.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp/MaterialApp.html [`PerformanceOverlay.allEnabled()`]: {{site.api}}/flutter/widgets/PerformanceOverlay/PerformanceOverlay.allEnabled.html [`print()`]: {{site.api}}/flutter/dart-core/print.html [`RenderParagraph`]: {{site.api}}/flutter/rendering/RenderParagraph-class.html [`RenderPositionedBox`]: {{site.api}}/flutter/rendering/RenderPositionedBox-class.html [`setState()`]: {{site.api}}/flutter/widgets/State/setState.html [`stderr.method_to_invoke()`]: {{site.api}}/flutter/dart-io/stderr.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html [`timeDilation`]: {{site.api}}/flutter/scheduler/timeDilation.html [`WidgetsApp`]: {{site.api}}/flutter/widgets/WidgetsApp-class.html [debug mode]: /testing/build-modes#debug diff --git a/sites/docs/src/content/testing/errors.md b/sites/docs/src/content/testing/errors.md index 6899d020323..6c2752147ed 100644 --- a/sites/docs/src/content/testing/errors.md +++ b/sites/docs/src/content/testing/errors.md @@ -58,7 +58,7 @@ following handler: import 'dart:io'; import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { FlutterError.onError = (details) { @@ -133,7 +133,7 @@ To catch such an error, use [`PlatformDispatcher.instance.onError`][]. ```dart import 'dart:ui'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { MyBackend myBackend = MyBackend(); @@ -155,7 +155,7 @@ your errors handling on next code snippet: ```dart import 'dart:ui'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; Future main() async { await myErrorsHandler.initialize(); @@ -194,7 +194,7 @@ class MyApp extends StatelessWidget { [`FlutterError.onError`]: {{site.api}}/flutter/foundation/FlutterError/onError.html [`FlutterError.presentError`]: {{site.api}}/flutter/foundation/FlutterError/presentError.html [`kReleaseMode`]: {{site.api}}/flutter/foundation/kReleaseMode-constant.html -[`MaterialApp.builder`]: {{site.api}}/flutter/material/MaterialApp/builder.html +[`MaterialApp.builder`]: {{site.material_ui}}/MaterialApp/builder.html [reporting errors to a service]: /cookbook/maintenance/error-reporting [`PlatformDispatcher.instance.onError`]: {{site.api}}/flutter/dart-ui/PlatformDispatcher/onError.html [`PlatformDispatcher`]: {{site.api}}/flutter/dart-ui/PlatformDispatcher-class.html diff --git a/sites/docs/src/content/testing/integration-tests/index.md b/sites/docs/src/content/testing/integration-tests/index.md index cd4aedd8a55..94658bb99b4 100644 --- a/sites/docs/src/content/testing/integration-tests/index.md +++ b/sites/docs/src/content/testing/integration-tests/index.md @@ -61,7 +61,7 @@ the `lib/main.dart` file should resemble the following code. ```dart title="lib/main.dart" -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); @@ -203,7 +203,7 @@ and your app's Dart file. ```dart title="integration_test/counter_test.dart" - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:how_to/main.dart'; import 'package:integration_test/integration_test.dart'; diff --git a/sites/docs/src/content/tools/devtools/custom-tool.md b/sites/docs/src/content/tools/devtools/custom-tool.md index 94d7a5f2018..1c6bbe14db1 100644 --- a/sites/docs/src/content/tools/devtools/custom-tool.md +++ b/sites/docs/src/content/tools/devtools/custom-tool.md @@ -252,7 +252,7 @@ In `lib/main.dart`, add the following imports: ```dart import 'package:devtools_extensions/devtools_extensions.dart'; -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(const FooDevToolsExtension()); diff --git a/sites/docs/src/content/tools/hot-reload.md b/sites/docs/src/content/tools/hot-reload.md index a56e01ff179..16562750da3 100644 --- a/sites/docs/src/content/tools/hot-reload.md +++ b/sites/docs/src/content/tools/hot-reload.md @@ -377,7 +377,7 @@ For example, consider the following code: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() { runApp(MyApp()); diff --git a/sites/docs/src/content/tools/pubspec.md b/sites/docs/src/content/tools/pubspec.md index 9a88c9e4b23..e8a86c43a59 100644 --- a/sites/docs/src/content/tools/pubspec.md +++ b/sites/docs/src/content/tools/pubspec.md @@ -53,6 +53,8 @@ dependencies: [!flutter_localizations:!] # Required to enable localization [!sdk: flutter!] # Required to enable localization + [!material_ui] # Required for projects that use the Material components pkg + [!cupertino_ui] # Required for projects that use the Cupertino components pkg [!cupertino_icons: ^1.0.8!] # Only required if you use Cupertino (iOS style) icons dev_dependencies: diff --git a/sites/docs/src/content/tools/widget-previewer.md b/sites/docs/src/content/tools/widget-previewer.md index 131506a8f42..e1daf52bb52 100644 --- a/sites/docs/src/content/tools/widget-previewer.md +++ b/sites/docs/src/content/tools/widget-previewer.md @@ -76,7 +76,7 @@ Here is a basic example of how to use the ```dart import 'package:flutter/widget_previews.dart'; -import 'package:flutter/material.dart'; // For Material widgets +import 'package:material_ui/material.dart'; // For Material widgets @Preview(name: 'My Sample Text') Widget mySampleText() { diff --git a/sites/docs/src/content/ui/accessibility/assistive-technologies.md b/sites/docs/src/content/ui/accessibility/assistive-technologies.md index 232c21dc4f1..918d76c41b2 100644 --- a/sites/docs/src/content/ui/accessibility/assistive-technologies.md +++ b/sites/docs/src/content/ui/accessibility/assistive-technologies.md @@ -71,7 +71,7 @@ Users can skip this step if you programmatically auto-enable accessibility for your app using this API: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/semantics.dart'; void main() { @@ -144,44 +144,13 @@ while iOS offers Switch Control, Voice Control, and AssistiveTouch. Understanding these tools helps in creating apps that are usable by people with diverse physical abilities. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OSFeatures Functions
AndroidSwitch Access As an alternate input method, you can use Switch Access and Camera Switches
AndroidVoice Access Control your device with your voice
AndroidAccessibility Menu A floating, on-screen menu that provides simplified buttons to control essential phone functions.
iOSSwitch Control Use switches as an alternate input methods
iOSVoice Control Control your device with your voice
iOSAssistiveTouch Use AssistiveTouch to replace multi-finger gestures or hardware button actions
+| OS | Features | Functions | +| --- | --- | --- | +| Android | **Switch Access** | As an alternate input method, you can use Switch Access and Camera Switches | +| Android | **Voice Access** | Control your device with your voice | +| Android | **Accessibility Menu** | A floating, on-screen menu that provides simplified buttons to control essential phone functions | +| iOS | **Switch Control** | Use switches as an alternate input methods | +| iOS | **Voice Control** | Control your device with your voice | +| iOS | **AssistiveTouch** | Use AssistiveTouch to replace multi-finger gestures or hardware button actions| + +{:.table .table-striped} diff --git a/sites/docs/src/content/ui/accessibility/web-accessibility.md b/sites/docs/src/content/ui/accessibility/web-accessibility.md index 585ca1a694c..6f11a1ed37b 100644 --- a/sites/docs/src/content/ui/accessibility/web-accessibility.md +++ b/sites/docs/src/content/ui/accessibility/web-accessibility.md @@ -86,7 +86,7 @@ use the `Semantics` widget to define the role: Here's an example of how you might explicitly define a list and its items: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; import 'package:flutter/semantics.dart'; diff --git a/sites/docs/src/content/ui/adaptive-responsive/idioms.md b/sites/docs/src/content/ui/adaptive-responsive/idioms.md index 1ad84970ef2..7bf930dc390 100644 --- a/sites/docs/src/content/ui/adaptive-responsive/idioms.md +++ b/sites/docs/src/content/ui/adaptive-responsive/idioms.md @@ -210,7 +210,7 @@ return const SelectableText.rich( ); ``` -[`SelectableText`]: {{site.api}}/flutter/material/SelectableText-class.html +[`SelectableText`]: {{site.material_ui}}/SelectableText-class.html ### Title bars @@ -300,7 +300,7 @@ a feeling that something isn't quite right. [`custom_pop_up_menu`]: {{site.pub}}/packages/custom_pop_up_menu [`flutter_portal`]: {{site.pub}}/packages/flutter_portal [`super_tooltip`]: {{site.pub}}/packages/super_tooltip -[`Tooltip`]: {{site.api}}/flutter/material/Tooltip-class.html +[`Tooltip`]: {{site.material_ui}}/Tooltip-class.html ### Horizontal button order diff --git a/sites/docs/src/content/ui/adaptive-responsive/input.md b/sites/docs/src/content/ui/adaptive-responsive/input.md index 70111945d4a..3444bc9d1cf 100644 --- a/sites/docs/src/content/ui/adaptive-responsive/input.md +++ b/sites/docs/src/content/ui/adaptive-responsive/input.md @@ -419,4 +419,4 @@ For more information about density principles in general, see the [Material Design guide][]. [Material Design guide]: {{site.material2}}/design/layout/applying-density.html#usage -[`VisualDensity`]: {{site.api}}/flutter/material/VisualDensity-class.html +[`VisualDensity`]: {{site.material_ui}}/VisualDensity-class.html diff --git a/sites/docs/src/content/ui/adaptive-responsive/large-screens.md b/sites/docs/src/content/ui/adaptive-responsive/large-screens.md index 73f2f136d7c..dfdfae44fb8 100644 --- a/sites/docs/src/content/ui/adaptive-responsive/large-screens.md +++ b/sites/docs/src/content/ui/adaptive-responsive/large-screens.md @@ -248,6 +248,6 @@ check out [Problem: Navigation rail][], a section in the [Developing Flutter apps for Large screens][article] article. [article]: {{site.flutter-blog}}/developing-flutter-apps-for-large-screens-53b7b0e17f10 -[`BottomNavigationBar`]: {{site.api}}/flutter/material/BottomNavigationBar-class.html -[`NavigationRail`]: {{site.api}}/flutter/material/NavigationRail-class.html +[`BottomNavigationBar`]: {{site.material_ui}}/BottomNavigationBar-class.html +[`NavigationRail`]: {{site.material_ui}}/NavigationRail-class.html [Problem: Navigation rail]: {{site.flutter-blog}}/developing-flutter-apps-for-large-screens-53b7b0e17f10#:~:text=Problem%3A%20Navigation%20rail1 diff --git a/sites/docs/src/content/ui/adaptive-responsive/platform-adaptations.md b/sites/docs/src/content/ui/adaptive-responsive/platform-adaptations.md index f929cb01f54..35d5deeee80 100644 --- a/sites/docs/src/content/ui/adaptive-responsive/platform-adaptations.md +++ b/sites/docs/src/content/ui/adaptive-responsive/platform-adaptations.md @@ -90,9 +90,9 @@ subcomponent on the next or previous page's -[`ZoomPageTransitionsBuilder`]: {{site.api}}/flutter/material/ZoomPageTransitionsBuilder-class.html -[`CupertinoNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoNavigationBar-class.html -[`CupertinoSliverNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoSliverNavigationBar-class.html +[`ZoomPageTransitionsBuilder`]: {{site.material_ui}}/ZoomPageTransitionsBuilder-class.html +[`CupertinoNavigationBar`]: {{site.cupertino_ui}}/CupertinoNavigationBar-class.html +[`CupertinoSliverNavigationBar`]: {{site.cupertino_ui}}/CupertinoSliverNavigationBar-class.html ### Back navigation @@ -231,7 +231,7 @@ has a stem/shaft on Android. The material library also provides a set of platform-adaptive icons through [`Icons.adaptive`][]. -[`Icons.adaptive`]: {{site.api}}/flutter/material/PlatformAdaptiveIcons-class.html +[`Icons.adaptive`]: {{site.material_ui}}/PlatformAdaptiveIcons-class.html ## Haptic feedback @@ -378,13 +378,13 @@ Therefore, we recommend that you follow platform conventions. |Radio in Material 3
`Radio`|Radio in HIG
`CupertinoRadio`|[`Radio.adaptive()`][]| |AlertDialog in Material 3
`AlertDialog`|AlertDialog in HIG
`CupertinoAlertDialog`|[`AlertDialog.adaptive()`][]| -[`AlertDialog.adaptive()`]: {{site.api}}/flutter/material/AlertDialog/AlertDialog.adaptive.html -[`Checkbox.adaptive()`]: {{site.api}}/flutter/material/Checkbox/Checkbox.adaptive.html -[`Radio.adaptive()`]: {{site.api}}/flutter/material/Radio/Radio.adaptive.html -[`Switch.adaptive()`]: {{site.api}}/flutter/material/Switch/Switch.adaptive.html -[`Slider.adaptive()`]: {{site.api}}/flutter/material/Slider/Slider.adaptive.html -[`CircularProgressIndicator.adaptive()`]: {{site.api}}/flutter/material/CircularProgressIndicator/CircularProgressIndicator.adaptive.html -[`RefreshIndicator.adaptive()`]: {{site.api}}/flutter/material/RefreshIndicator/RefreshIndicator.adaptive.html +[`AlertDialog.adaptive()`]: {{site.material_ui}}/AlertDialog/AlertDialog.adaptive.html +[`Checkbox.adaptive()`]: {{site.material_ui}}/Checkbox/Checkbox.adaptive.html +[`Radio.adaptive()`]: {{site.material_ui}}/Radio/Radio.adaptive.html +[`Switch.adaptive()`]: {{site.material_ui}}/Switch/Switch.adaptive.html +[`Slider.adaptive()`]: {{site.material_ui}}/Slider/Slider.adaptive.html +[`CircularProgressIndicator.adaptive()`]: {{site.material_ui}}/CircularProgressIndicator/CircularProgressIndicator.adaptive.html +[`RefreshIndicator.adaptive()`]: {{site.material_ui}}/RefreshIndicator/RefreshIndicator.adaptive.html ### Top app bar and navigation bar diff --git a/sites/docs/src/content/ui/animations/hero-animations.md b/sites/docs/src/content/ui/animations/hero-animations.md index 75af5c0cdb5..9d5151eab6f 100644 --- a/sites/docs/src/content/ui/animations/hero-animations.md +++ b/sites/docs/src/content/ui/animations/hero-animations.md @@ -619,10 +619,10 @@ Key information: [`debugPaintSizeEnabled`]: /tools/devtools/inspector#debugging-layout-issues-visually [`Hero`]: {{site.api}}/flutter/widgets/Hero-class.html [hero_animation]: {{site.repo.this}}/tree/main/examples/_animation/hero_animation/ -[`InkWell`]: {{site.api}}/flutter/material/InkWell-class.html +[`InkWell`]: {{site.material_ui}}/InkWell-class.html [Material Design motion spec]: {{site.material2}}/design/motion/understanding-motion.html#principles -[`MaterialRectArcTween`]: {{site.api}}/flutter/material/MaterialRectArcTween-class.html -[`MaterialRectCenterArcTween`]: {{site.api}}/flutter/material/MaterialRectCenterArcTween-class.html +[`MaterialRectArcTween`]: {{site.material_ui}}/MaterialRectArcTween-class.html +[`MaterialRectCenterArcTween`]: {{site.material_ui}}/MaterialRectCenterArcTween-class.html [`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html [Radial hero animation code]: #radial-hero-animation-code [radial_hero_animation]: {{site.repo.this}}/tree/main/examples/_animation/radial_hero_animation diff --git a/sites/docs/src/content/ui/animations/tutorial.md b/sites/docs/src/content/ui/animations/tutorial.md index 2738c5300fe..fb56925b83f 100644 --- a/sites/docs/src/content/ui/animations/tutorial.md +++ b/sites/docs/src/content/ui/animations/tutorial.md @@ -51,7 +51,7 @@ Consider the following app that draws the Flutter logo without animation: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const LogoApp()); diff --git a/sites/docs/src/content/ui/assets/assets-and-images.md b/sites/docs/src/content/ui/assets/assets-and-images.md index f46a254f469..3a4fcb438f5 100644 --- a/sites/docs/src/content/ui/assets/assets-and-images.md +++ b/sites/docs/src/content/ui/assets/assets-and-images.md @@ -540,8 +540,8 @@ For more details, see [`runApp()`]: {{site.api}}/flutter/widgets/runApp.html [`video_player` plugin]: {{site.pub}}/packages/video_player [MediaQueryData.size]: {{site.api}}/flutter/widgets/MediaQueryData/size.html -[MaterialApp]: {{site.api}}/flutter/material/MaterialApp-class.html -[CupertinoApp]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html +[MaterialApp]: {{site.material_ui}}/MaterialApp-class.html +[CupertinoApp]: {{site.cupertino_ui}}/CupertinoApp-class.html [Transforming assets at build time]: /ui/assets/asset-transformation [flavors feature]: /deployment/flavors [`assets` field]: /tools/pubspec#assets diff --git a/sites/docs/src/content/ui/design/cupertino/index.md b/sites/docs/src/content/ui/design/cupertino/index.md index cd9d9327f73..34421cbbabd 100644 --- a/sites/docs/src/content/ui/design/cupertino/index.md +++ b/sites/docs/src/content/ui/design/cupertino/index.md @@ -3,13 +3,19 @@ title: Cupertino design for Flutter description: Learn about Cupertino design for Flutter. --- -The Flutter Cupertino library is a collection +The Flutter Cupertino package is a collection of widgets that implement Apple's iOS design language for Flutter apps. The widgets have a similar look and feel to iOS, including rounded corners, gradients, and minimalistic design. They also include iOS interactions and animations. +Previously, Cupertino was part of the core Flutter SDK, +but it has been decoupled from the framework. +You can access Cupertino from the [`cupertino_ui`][] package on pub.dev. + +[`cupertino_ui`]: {{site.pub}}/packages/cupertino_ui + The following 15-minute video provides a high-level glimpse of the Cupertino package: @@ -53,8 +59,7 @@ package with Flutter, check out the following resources: * The (mostly visual) [Cupertino widget catalog][] - on doc.flutter.dev -* The [Cupertino library][] page in the API docs +* The [Cupertino library][] page on pub.dev * The [Cupertino API examples][] on the flutter/flutter repo. ([Instructions][]) For example, to run `CupertinoSwitch`: @@ -66,6 +71,6 @@ flutter run lib/cupertino/switch/cupertino_switch.0.dart ``` [Cupertino API examples]: {{site.repo.flutter}}/tree/main/examples/api/lib/cupertino -[Cupertino library]: {{site.api}}/flutter/cupertino/cupertino-library.html +[Cupertino library]: {{site.pub}}/packages/cupertino_ui [Cupertino widget catalog]: /ui/widgets/cupertino [Instructions]: {{site.repo.flutter}}/tree/main/examples/api#api-example-code diff --git a/sites/docs/src/content/ui/design/material/index.md b/sites/docs/src/content/ui/design/material/index.md index 1609b20c019..b6781d6e0d4 100644 --- a/sites/docs/src/content/ui/design/material/index.md +++ b/sites/docs/src/content/ui/design/material/index.md @@ -6,50 +6,11 @@ description: Learn about Material Design for Flutter. Material Design is an open-source design system built and supported by Google designers and developers. -The latest version, Material 3, enables personal, -adaptive, and expressive experiences—from dynamic color -and enhanced accessibility, to foundations for -large screen layouts, and design tokens. - -:::warning -As of the Flutter 3.16 release, **Material 3 is -enabled by default**. For now, you can opt out -of Material 3 by setting the [`useMaterial3`][] property -to `false`. But be aware that the `useMaterial3` -property and support for Material 2 -will eventually be deprecated according to -Flutter's [deprecation policy][]. -::: - -For _most_ Flutter widgets, upgrading to Material 3 -is seamless. But _some_ widgets couldn't be -updated—entirely new implementations were needed, -such as [`NavigationBar`][]. -You must make these changes to your code manually. -Until your app is entirely updated, -the UI might look or act a bit strange. -You can find the entirely new Material components by -visiting the [Affected widgets][] page. - -[Affected widgets]: {{site.api}}/flutter/material/ThemeData/useMaterial3.html#affected-widgets -[deprecation policy]: /release/compatibility-policy#deprecation-policy -[demo]: {{site.repo.samples}}/blob/main/material_3_demo/ -[`NavigationBar`]: {{site.api}}/flutter/material/NavigationBar-class.html -[`useMaterial3`]: {{site.api}}/flutter/material/ThemeData/useMaterial3.html - -Explore the updated components, typography, color system, -and elevation support with the -[Material 3 demo][demo]. - ## More information {:.no_toc} To learn more about Material Design and Flutter, check out: * [Material.io developer documentation][] -* [Migrating a Flutter app to Material 3][] blog post by Taha Tesser -* [Umbrella issue on GitHub][] [Material.io developer documentation]: {{site.material}}/develop/flutter -[Migrating a Flutter app to Material 3]: https://blog.codemagic.io/migrating-a-flutter-app-to-material-3/ -[Umbrella issue on GitHub]: {{site.repo.flutter}}/issues/91605 diff --git a/sites/docs/src/content/ui/design/text/typography.md b/sites/docs/src/content/ui/design/text/typography.md index 0f1ae0189f9..256f16ac450 100644 --- a/sites/docs/src/content/ui/design/text/typography.md +++ b/sites/docs/src/content/ui/design/text/typography.md @@ -51,9 +51,9 @@ All the platform specific typographical scales that Flutter exposes are contained in the [`Typography`][] class. Usually, you will not need to reference this class directly as the `TextTheme` will be localized to your target platform. -[`TextTheme`]: https://api.flutter.dev/flutter/material/TextTheme-class.html -[`TextStyle`]: https://api.flutter.dev/flutter/painting/TextStyle-class.html -[`Typography`]: https://api.flutter.dev/flutter/material/Typography-class.html +[`TextTheme`]: {{site.material_ui}}/TextTheme-class.html +[`TextStyle`]: {{site.api}}/flutter/painting/TextStyle-class.html +[`Typography`]: {{site.material_ui}}/Typography-class.html ## Variable fonts diff --git a/sites/docs/src/content/ui/index.md b/sites/docs/src/content/ui/index.md index 96c02bb91c5..4cc973f3b06 100644 --- a/sites/docs/src/content/ui/index.md +++ b/sites/docs/src/content/ui/index.md @@ -15,11 +15,85 @@ which the framework diffs against the previous description in order to determine the minimal changes needed in the underlying render tree to transition from one state to the next. -:::note -If you would like to become better acquainted with Flutter by diving -into some code, check out [building layouts][], -and [adding interactivity to your Flutter app][]. -::: +Flutter structures its UI layer into two tiers: the style-neutral +core `widgets` library (provided directly by the Flutter SDK) +and design system packages `material_ui` and `cupertino_ui`, +available on pub.dev. + +Understanding the distinction helps you decide which package +to import for your app or package. + +## The `widgets` package + +The `widgets`library (`package:flutter/widgets.dart`) +provides the foundational, style-neutral building blocks +of the Flutter framework. It includes layout primitives (`Row,` C`olumn,` S`tack)`, +interaction models (`GestureDetector`), animation controllers, +and base presentation widgets (`CustomPaint`, `Image`, `RichText`). + +### When to use `widgets` + +* **Building a custom design system:** + If your application uses a bespoke visual language that doesn't + follow Material Design or Apple Human Interface Guidelines, + build on top of widgets rather than overriding opinionated design system defaults. +* **Creating design-agnostic packages:** + If you publish a reusable component or utility package on pub.dev, + importing `package:flutter/widgets.dart` ensures your package can be used + in both Material and Cupertino applications without introducing + unnecessary dependencies. +* **Embedded and non-standard devices:** + For automotive, kiosks, or embedded displays where platform conventions + don't apply and minimal bundle size is critical. + +## The `material_ui` package + +The `material_ui` package (`package:material_ui/material_ui.dart`) +implements Google's Material 3 design system. It layers visual styling, +dynamic color, elevation, typography, and interaction feedback +(such as ink ripples) on top of the base widgets. + +### When to use `material_ui` + +* **Building Android or cross-platform apps:** + When you want a modern, cohesive look across Android, web, + and desktop with out-of-the-box accessibility, transitions, and theming. +* **Rapid prototyping and feature development:** + Material 3 supplies pre-composed screen scaffolding + (`Scaffold`, `AppBar`, `NavigationBar`) and interactive controls + (`ElevatedButton,` `FloatingActionButton,` `TextField,` `Dialog)` + so you don't need to assemble them from scratch. +* **Leveraging Material theming:** + When you want to take advantage of `ColorScheme.fromSeed`, + light and dark mode switching, and dynamic color extraction on Android. + +## The `cupertino_ui` package + +The `cupertino_ui` package (`package:cupertino_ui/cupertino_ui.dart`) +implements Apple's Human Interface Guidelines. It recreates iOS-specific +visual styles, translucent blurs, haptic touches, and navigation gestures. + +### When to use `cupertino_ui` + +* **Targeting iOS and macOS native aesthetics:** + When your application's primary goal is to blend seamlessly into the + Apple ecosystem with familiar iOS controls (`CupertinoNavigationBar`, + `CupertinoButton`, `CupertinoTabBar`, `CupertinoActionSheet`). +* **Platform-adaptive applications:** + When building adaptive experiences where your code renders `material_ui` + components on Android and `cupertino_ui` components on iOS. + +The following table summarizes the differences between these packages: + +| Feature | `widgets` | `material_ui` | `cupertino_ui` | +| --- | --- | --- | --- | +| Source | Flutter SDK (`flutter`) | pub.dev | pub.dev | +| Design system | None (style-neutral) | Material 3 | Apple HIG (iOS) 3 | +| Application root | `WidgetsApp` | `MaterialApp` | `CupertinoApp` | +| Scaffolding & layout | Raw layout (`Stack`, `Column`) | `Scaffold`, `AppBar` | `CupertinoPageScaffold` | +| Primary use case | Custom design systems, reusable packages | Android & cross-platform apps | iOS-first & adaptive apps | + +{:.table .table-striped} ## Hello world @@ -207,7 +281,7 @@ which consists of a centered message. For more information, check out [Layouts][]. -## Using Material Components +## Using Material components Flutter provides a number of widgets that help you build apps that follow Material Design. A Material app starts with the @@ -857,9 +931,9 @@ retrieve the state associated with a widget. For more information, check out the [`GlobalKey`][] API. -[`actions`]: {{site.api}}/flutter/material/AppBar-class.html#actions +[`actions`]: {{site.material_ui}}/AppBar-class.html#actions [adding interactivity to your Flutter app]: /ui/interactivity -[`AppBar`]: {{site.api}}/flutter/material/AppBar-class.html +[`AppBar`]: {{site.material_ui}}/AppBar-class.html [`BoxDecoration`]: {{site.api}}/flutter/painting/BoxDecoration-class.html [`build()`]: {{site.api}}/flutter/widgets/StatelessWidget/build.html [building layouts]: /ui/layout @@ -868,43 +942,43 @@ For more information, check out the [`GlobalKey`][] API. [`Container`]: {{site.api}}/flutter/widgets/Container-class.html [`createState()`]: {{site.api}}/flutter/widgets/StatefulWidget-class.html#createState [Cupertino components]: /ui/widgets/cupertino -[`CupertinoApp`]: {{site.api}}/flutter/cupertino/CupertinoApp-class.html -[`CupertinoNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoNavigationBar-class.html +[`CupertinoApp`]: {{site.cupertino_ui}}/CupertinoApp-class.html +[`CupertinoNavigationBar`]: {{site.cupertino_ui}}/CupertinoNavigationBar-class.html [`didUpdateWidget()`]: {{site.api}}/flutter/widgets/State-class.html#didUpdateWidget [`dispose()`]: {{site.api}}/flutter/widgets/State-class.html#dispose [`Expanded`]: {{site.api}}/flutter/widgets/Expanded-class.html [`final`]: {{site.dart-site}}/language/variables#final-and-const [`flex`]: {{site.api}}/flutter/widgets/Expanded-class.html#flex -[`FloatingActionButton`]: {{site.api}}/flutter/material/FloatingActionButton-class.html +[`FloatingActionButton`]: {{site.material_ui}}/FloatingActionButton-class.html [Gestures in Flutter]: /ui/interactivity/gestures [`GestureDetector`]: {{site.api}}/flutter/widgets/GestureDetector-class.html [`GlobalKey`]: {{site.api}}/flutter/widgets/GlobalKey-class.html -[`IconButton`]: {{site.api}}/flutter/material/IconButton-class.html +[`IconButton`]: {{site.material_ui}}/IconButton-class.html [`initState()`]: {{site.api}}/flutter/widgets/State-class.html#initState [`key`]: {{site.api}}/flutter/widgets/Widget-class.html#key [`Key`]: {{site.api}}/flutter/foundation/Key-class.html [Layouts]: /ui/widgets/layout -[`leading`]: {{site.api}}/flutter/material/AppBar-class.html#leading +[`leading`]: {{site.material_ui}}/AppBar-class.html#leading [Material Components widgets]: /ui/widgets/material [Material icons]: https://design.google.com/icons/ -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html [`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html -[`onPressed()`]: {{site.api}}/flutter/material/ElevatedButton-class.html#onPressed +[`onPressed()`]: {{site.material_ui}}/ElevatedButton-class.html#onPressed [`onTap()`]: {{site.api}}/flutter/widgets/GestureDetector-class.html#onTap [`Positioned`]: {{site.api}}/flutter/widgets/Positioned-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html [React]: https://react.dev [`RenderObject`]: {{site.api}}/flutter/rendering/RenderObject-class.html [`Row`]: {{site.api}}/flutter/widgets/Row-class.html [`runApp()`]: {{site.api}}/flutter/widgets/runApp.html [`runtimeType`]: {{site.api}}/flutter/widgets/Widget-class.html#runtimeType -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html [`setState()`]: {{site.api}}/flutter/widgets/State/setState.html [`Stack`]: {{site.api}}/flutter/widgets/Stack-class.html [`State`]: {{site.api}}/flutter/widgets/State-class.html [`StatefulWidget`]: {{site.api}}/flutter/widgets/StatefulWidget-class.html [`StatelessWidget`]: {{site.api}}/flutter/widgets/StatelessWidget-class.html [`Text`]: {{site.api}}/flutter/widgets/Text-class.html -[`title`]: {{site.api}}/flutter/material/AppBar-class.html#title +[`title`]: {{site.material_ui}}/AppBar-class.html#title [`widget`]: {{site.api}}/flutter/widgets/State-class.html#widget [`Widget`]: {{site.api}}/flutter/widgets/Widget-class.html diff --git a/sites/docs/src/content/ui/interactivity/focus.md b/sites/docs/src/content/ui/interactivity/focus.md index 855feedff46..6ac63bfc45a 100644 --- a/sites/docs/src/content/ui/interactivity/focus.md +++ b/sites/docs/src/content/ui/interactivity/focus.md @@ -179,7 +179,7 @@ focus. ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/sites/docs/src/content/ui/interactivity/gestures/index.md b/sites/docs/src/content/ui/interactivity/gestures/index.md index 7f3d89e4369..290a06cf2dc 100644 --- a/sites/docs/src/content/ui/interactivity/gestures/index.md +++ b/sites/docs/src/content/ui/interactivity/gestures/index.md @@ -165,10 +165,10 @@ If you aren't using those widgets, but you want the "ink splash" effect on a tap, you can use [`InkWell`][]. [`GestureDetector`]: {{site.api}}/flutter/widgets/GestureDetector-class.html -[`IconButton`]: {{site.api}}/flutter/material/IconButton-class.html -[`InkWell`]: {{site.api}}/flutter/material/InkWell-class.html +[`IconButton`]: {{site.material_ui}}/IconButton-class.html +[`InkWell`]: {{site.material_ui}}/InkWell-class.html [`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html ### Gesture disambiguation diff --git a/sites/docs/src/content/ui/interactivity/index.md b/sites/docs/src/content/ui/interactivity/index.md index 99763168ee0..83ded9df671 100644 --- a/sites/docs/src/content/ui/interactivity/index.md +++ b/sites/docs/src/content/ui/interactivity/index.md @@ -378,7 +378,7 @@ The `_TapboxAState` class: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // TapboxA manages its own state. @@ -472,7 +472,7 @@ The TapboxB class: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; // ParentWidget manages the state for TapboxB. @@ -576,7 +576,7 @@ The `_TapboxCState` object: ```dart -import 'package:flutter/material.dart'; +import 'package:material_ui/material.dart'; //---------------------------- ParentWidget ---------------------------- @@ -744,13 +744,13 @@ Wonderous app [running app][wonderous-app], [repo][wonderous-repo] stateless widgets. Presented by Google engineer, Ian Hickson. [Android emulator]: /platform-integration/android/setup#set-up-devices -[`Checkbox`]: {{site.api}}/flutter/material/Checkbox-class.html -[`Cupertino`]: {{site.api}}/flutter/cupertino/cupertino-library.html +[`Checkbox`]: {{site.material_ui}}/Checkbox-class.html +[`Cupertino`]: {{site.pub}}/packages/cupertino_ui/cupertino-library.html [Dart language documentation]: {{site.dart-site}}/language [Debugging Flutter apps]: /testing/debugging -[`DropdownButton`]: {{site.api}}/flutter/material/DropdownButton-class.html -[`TextButton`]: {{site.api}}/flutter/material/TextButton-class.html -[`FloatingActionButton`]: {{site.api}}/flutter/material/FloatingActionButton-class.html +[`DropdownButton`]: {{site.material_ui}}/DropdownButton-class.html +[`TextButton`]: {{site.material_ui}}/TextButton-class.html +[`FloatingActionButton`]: {{site.material_ui}}/FloatingActionButton-class.html [Flutter API documentation]: {{site.api}} [Flutter's Layered Design]: {{site.yt.watch}}?v=dkyY9WCGMi0 [`FormField`]: {{site.api}}/flutter/widgets/FormField-class.html @@ -760,9 +760,9 @@ Wonderous app [running app][wonderous-app], [repo][wonderous-repo] [Gestures in Flutter]: /ui/interactivity/gestures [Handling gestures]: /ui#handling-gestures [new-flutter-app]: /reference/create-new-app -[`IconButton`]: {{site.api}}/flutter/material/IconButton-class.html +[`IconButton`]: {{site.material_ui}}/IconButton-class.html [`Icon`]: {{site.api}}/flutter/widgets/Icon-class.html -[`InkWell`]: {{site.api}}/flutter/material/InkWell-class.html +[`InkWell`]: {{site.material_ui}}/InkWell-class.html [iOS simulator]: /platform-integration/ios/setup#set-up-devices [building layouts tutorial]: /ui/layout/tutorial [community]: {{site.main-url}}/community @@ -774,17 +774,17 @@ Wonderous app [running app][wonderous-app], [repo][wonderous-repo] [Managing state]: #managing-state [Material Design guidelines]: {{site.material}}/styles [`pubspec.yaml`]: {{site.repo.this}}/blob/main/examples/layout/lakes/step6/pubspec.yaml -[`Radio`]: {{site.api}}/flutter/material/Radio-class.html -[`ElevatedButton`]: {{site.api}}/flutter/material/ElevatedButton-class.html +[`Radio`]: {{site.material_ui}}/Radio-class.html +[`ElevatedButton`]: {{site.material_ui}}/ElevatedButton-class.html [wonderous-app]: {{site.wonderous}}/web [wonderous-repo]: {{site.repo.wonderous}} [set up]: /install [`SizedBox`]: {{site.api}}/flutter/widgets/SizedBox-class.html -[`Slider`]: {{site.api}}/flutter/material/Slider-class.html +[`Slider`]: {{site.material_ui}}/Slider-class.html [`State`]: {{site.api}}/flutter/widgets/State-class.html [`StatefulWidget`]: {{site.api}}/flutter/widgets/StatefulWidget-class.html [`StatelessWidget`]: {{site.api}}/flutter/widgets/StatelessWidget-class.html -[`Switch`]: {{site.api}}/flutter/material/Switch-class.html -[`TextField`]: {{site.api}}/flutter/material/TextField-class.html +[`Switch`]: {{site.material_ui}}/Switch-class.html +[`TextField`]: {{site.material_ui}}/TextField-class.html [`Text`]: {{site.api}}/flutter/widgets/Text-class.html [`widget`]: {{site.api}}/flutter/widgets/State/widget.html diff --git a/sites/docs/src/content/ui/internationalization/index.md b/sites/docs/src/content/ui/internationalization/index.md index aeed5c6925c..daeded7f5e4 100644 --- a/sites/docs/src/content/ui/internationalization/index.md +++ b/sites/docs/src/content/ui/internationalization/index.md @@ -363,7 +363,7 @@ return MaterialApp( [App Resource Bundle]: https://github.com/google/app-resource-bundle [`gen_l10n_example`]: {{site.repo.this}}/tree/main/examples/internationalization/gen_l10n_example -[`MaterialApp.onGenerateTitle`]: {{site.api}}/flutter/material/MaterialApp/onGenerateTitle.html +[`MaterialApp.onGenerateTitle`]: {{site.material_ui}}/MaterialApp/onGenerateTitle.html ### Placeholders, plurals, and selects @@ -822,7 +822,7 @@ MaterialApp( [`languageCode`]: {{site.api}}/flutter/dart-ui/Locale/languageCode.html [`localeResolutionCallback`]: {{site.api}}/flutter/widgets/LocaleResolutionCallback.html -[`supportedLocales`]: {{site.api}}/flutter/material/MaterialApp/supportedLocales.html +[`supportedLocales`]: {{site.material_ui}}/MaterialApp/supportedLocales.html ### Configuring the l10n.yaml file @@ -928,8 +928,8 @@ tooltip: MaterialLocalizations.of(context).backButtonTooltip, [`load()`]: {{site.api}}/flutter/widgets/LocalizationsDelegate/load.html [`LocalizationsDelegate`]: {{site.api}}/flutter/widgets/LocalizationsDelegate-class.html [`Localizations.of(context,type)`]: {{site.api}}/flutter/widgets/Localizations/of.html -[`MaterialApp`]: {{site.api}}/flutter/material/MaterialApp-class.html -[`MaterialLocalizations`]: {{site.api}}/flutter/material/MaterialLocalizations-class.html +[`MaterialApp`]: {{site.material_ui}}/MaterialApp-class.html +[`MaterialLocalizations`]: {{site.material_ui}}/MaterialLocalizations-class.html ### Defining a class for the app's localized resources diff --git a/sites/docs/src/content/ui/layout/index.md b/sites/docs/src/content/ui/layout/index.md index b2cf3ba2927..66c63408ef3 100644 --- a/sites/docs/src/content/ui/layout/index.md +++ b/sites/docs/src/content/ui/layout/index.md @@ -72,7 +72,7 @@ visual layout. For more information, see [`Container`]: {{site.api}}/flutter/widgets/Container-class.html [Debugging layout issues visually]: /tools/devtools/inspector#debugging-layout-issues-visually -[`Icon`]: {{site.api}}/flutter/material/Icons-class.html +[`Icon`]: {{site.material_ui}}/Icons-class.html [`Row`]: {{site.api}}/flutter/widgets/Row-class.html [`Text`]: {{site.api}}/flutter/widgets/Text-class.html @@ -118,7 +118,7 @@ some text: Text('Hello World') ``` -[icons]: {{site.api}}/flutter/material/Icons-class.html +[icons]: {{site.material_ui}}/Icons-class.html [images]: {{site.api}}/flutter/widgets/Image-class.html [text]: {{site.api}}/flutter/widgets/Text-class.html [`Text`]: {{site.api}}/flutter/widgets/Text-class.html @@ -297,15 +297,15 @@ or you can build your own set of custom widgets. -[`CupertinoColors`]: {{site.api}}/flutter/cupertino/CupertinoColors-class.html -[`CupertinoPageScaffold`]: {{site.api}}/flutter/cupertino/CupertinoPageScaffold-class.html -[`CupertinoThemeData`]: {{site.api}}/flutter/cupertino/CupertinoThemeData-class.html -[`CupertinoNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoNavigationBar-class.html -[Cupertino library]: {{site.api}}/flutter/cupertino/cupertino-library.html +[`CupertinoColors`]: {{site.cupertino_ui}}/CupertinoColors-class.html +[`CupertinoPageScaffold`]: {{site.cupertino_ui}}/CupertinoPageScaffold-class.html +[`CupertinoThemeData`]: {{site.cupertino_ui}}/CupertinoThemeData-class.html +[`CupertinoNavigationBar`]: {{site.cupertino_ui}}/CupertinoNavigationBar-class.html +[Cupertino library]: {{site.cupertino_ui}}/cupertino-library.html [Apple's Human Interface Guidelines for iOS]: {{site.apple-dev}}/design/human-interface-guidelines/designing-for-ios [`build()`]: {{site.api}}/flutter/widgets/StatelessWidget/build.html -[Material library]: {{site.api}}/flutter/material/material-library.html -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html +[Material library]: {{site.material_ui}}/material-library.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html [widgets library]: {{site.api}}/flutter/widgets/widgets-library.html ### 5. Run your app @@ -380,7 +380,7 @@ For more information, see [Common layout widgets][]. [Common layout widgets]: #common-layout-widgets [`Column`]: {{site.api}}/flutter/widgets/Column-class.html -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html [`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html [`Row`]: {{site.api}}/flutter/widgets/Row-class.html @@ -827,18 +827,18 @@ only Material apps can use the Material Components library. -[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html -[`AppBar`]: {{site.api}}/flutter/material/AppBar-class.html +[`Scaffold`]: {{site.material_ui}}/Scaffold-class.html +[`AppBar`]: {{site.material_ui}}/AppBar-class.html [`Container`]: {{site.api}}/flutter/widgets/Container-class.html -[`CupertinoPageScaffold`]: {{site.api}}/flutter/cupertino/CupertinoPageScaffold-class.html -[`CupertinoNavigationBar`]: {{site.api}}/flutter/cupertino/CupertinoNavigationBar-class.html -[`CupertinoSegmentedControl`]: {{site.api}}/flutter/cupertino/CupertinoSegmentedControl-class.html -[`CupertinoTabBar`]: {{site.api}}/flutter/cupertino/CupertinoTabBar-class.html -[`CupertinoTabScaffold`]: {{site.api}}/flutter/cupertino/CupertinoTabScaffold-class.html +[`CupertinoPageScaffold`]: {{site.cupertino_ui}}/CupertinoPageScaffold-class.html +[`CupertinoNavigationBar`]: {{site.cupertino_ui}}/CupertinoNavigationBar-class.html +[`CupertinoSegmentedControl`]: {{site.cupertino_ui}}/CupertinoSegmentedControl-class.html +[`CupertinoTabBar`]: {{site.cupertino_ui}}/CupertinoTabBar-class.html +[`CupertinoTabScaffold`]: {{site.cupertino_ui}}/CupertinoTabScaffold-class.html [`GridView`]: {{site.api}}/flutter/widgets/GridView-class.html -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html [`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html -[Material library]: {{site.api}}/flutter/material/material-library.html +[Material library]: {{site.material_ui}}/material-library.html [widgets library]: {{site.api}}/flutter/widgets/widgets-library.html ### Container @@ -957,7 +957,7 @@ it's the entry in the "calorie" column for the "avocado" row), use [`Table`][] or [`DataTable`][]. ::: -[`DataTable`]: {{site.api}}/flutter/material/DataTable-class.html +[`DataTable`]: {{site.material_ui}}/DataTable-class.html [`Table`]: {{site.api}}/flutter/widgets/Table-class.html #### Examples (GridView) @@ -1003,7 +1003,7 @@ List _buildGridTileList(int count) =>
-[`GridTile`]: {{site.api}}/flutter/material/GridTile-class.html +[`GridTile`]: {{site.material_ui}}/GridTile-class.html ### ListView @@ -1085,7 +1085,7 @@ ListTile _tile(String title, String subtitle, IconData icon) {
-[`Colors`]: {{site.api}}/flutter/material/Colors-class.html +[`Colors`]: {{site.material_ui}}/Colors-class.html [Material 2 Design palette]: {{site.material2}}/design/color/the-color-system.html#tools-for-picking-colors ### Stack @@ -1177,12 +1177,12 @@ For a list of supported elevation values, see [Elevation][] in the [Material guidelines][Material Design]. Specifying an unsupported value disables the drop shadow entirely. -[`Card`]: {{site.api}}/flutter/material/Card-class.html +[`Card`]: {{site.material_ui}}/Card-class.html [Elevation]: {{site.material}}/styles/elevation -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html [Material Design]: {{site.material}}/styles [`SizedBox`]: {{site.api}}/flutter/widgets/SizedBox-class.html -[Material library]: {{site.api}}/flutter/material/material-library.html +[Material library]: {{site.material_ui}}/material-library.html #### Summary (Card) @@ -1195,7 +1195,7 @@ Specifying an unsupported value disables the drop shadow entirely. * From the [Material library][] [Material card]: {{site.material}}/components/cards -[Material library]: {{site.api}}/flutter/material/material-library.html +[Material library]: {{site.pub}}/packages/material-library.html #### Examples (Card) @@ -1264,10 +1264,10 @@ containing up to 3 lines of text and optional leading and trailing icons. `ListTile` is most commonly used in [`Card`][] or [`ListView`][], but can be used elsewhere. -[`Card`]: {{site.api}}/flutter/material/Card-class.html -[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html +[`Card`]: {{site.material_ui}}/Card-class.html +[`ListTile`]: {{site.material_ui}}/ListTile-class.html [`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html -[Material library]: {{site.api}}/flutter/material/material-library.html +[Material library]: {{site.material_ui}}/material-library.html #### Summary (ListTile) @@ -1276,7 +1276,7 @@ and trailing icons. `ListTile` is most commonly used in * Less configurable than `Row`, but easier to use * From the [Material library][] -[Material library]: {{site.api}}/flutter/material/material-library.html +[Material library]: {{site.material_ui}}/material-library.html #### Examples (ListTile) diff --git a/sites/docs/src/content/ui/layout/scrolling/slivers.md b/sites/docs/src/content/ui/layout/scrolling/slivers.md index c7387994d44..b1b840cf714 100644 --- a/sites/docs/src/content/ui/layout/scrolling/slivers.md +++ b/sites/docs/src/content/ui/layout/scrolling/slivers.md @@ -59,7 +59,7 @@ check out these related API docs: [`CustomScrollView`]: {{site.api}}/flutter/widgets/CustomScrollView-class.html [sliver-app-bar-video]: {{site.yt.watch}}?v=R9C5KMJKluE -[`SliverAppBar`]: {{site.api}}/flutter/material/SliverAppBar-class.html +[`SliverAppBar`]: {{site.material_ui}}/SliverAppBar-class.html [`SliverGrid`]: {{site.api}}/flutter/widgets/SliverGrid-class.html [SliverList and SliverGrid]: {{site.yt.watch}}?v=ORiTTaVY6mM [`SliverList`]: {{site.api}}/flutter/widgets/SliverList-class.html diff --git a/sites/docs/src/content/ui/layout/tutorial.md b/sites/docs/src/content/ui/layout/tutorial.md index 98ec53af97d..738bda0a2f4 100644 --- a/sites/docs/src/content/ui/layout/tutorial.md +++ b/sites/docs/src/content/ui/layout/tutorial.md @@ -127,7 +127,7 @@ In this section, shell out the basic Flutter app code to start your app. ```dart - import 'package:flutter/material.dart'; + import 'package:material_ui/material.dart'; void main() => runApp(const MyApp()); diff --git a/sites/docs/src/content/ui/navigation/deep-linking.md b/sites/docs/src/content/ui/navigation/deep-linking.md index ed5673ba6e6..a2f9881933a 100644 --- a/sites/docs/src/content/ui/navigation/deep-linking.md +++ b/sites/docs/src/content/ui/navigation/deep-linking.md @@ -90,8 +90,8 @@ introduction to the Router system. [io-dl]: {{site.yt.watch}}?v=6RxuDcs6jVw&t=3s [Learning Flutter's new navigation and routing system]: {{site.flutter-blog}}/learning-flutters-new-navigation-and-routing-system-7c9068155ade -[routes]: {{site.api}}/flutter/material/MaterialApp/routes.html -[onGenerateRoute]: {{site.api}}/flutter/material/MaterialApp/onGenerateRoute.html +[routes]: {{site.material_ui}}/MaterialApp/routes.html +[onGenerateRoute]: {{site.material_ui}}/MaterialApp/onGenerateRoute.html [Router]: {{site.api}}/flutter/widgets/Router-class.html [plugin-linking]: https://medium.com/flutter-community/deep-links-and-flutter-applications-how-to-handle-them-properly-8c9865af9283 [Flutter Deep Linking: The Ultimate Guide]: https://codewithandrea.com/articles/flutter-deep-links/ diff --git a/sites/docs/src/content/ui/navigation/index.md b/sites/docs/src/content/ui/navigation/index.md index 340fb13af51..c402a312984 100644 --- a/sites/docs/src/content/ui/navigation/index.md +++ b/sites/docs/src/content/ui/navigation/index.md @@ -172,7 +172,7 @@ resources: [`Router`]: {{site.api}}/flutter/widgets/Router-class.html [Deep linking]: /ui/navigation/deep-linking [navigation recipes]: /cookbook/navigation -[`MaterialApp.routes`]: {{site.api}}/flutter/material/MaterialApp/routes.html +[`MaterialApp.routes`]: {{site.material_ui}}/MaterialApp/routes.html [Navigate with named routes]: /cookbook/navigation/named-routes [go_router]: {{site.pub}}/packages/go_router [`Page`]: {{site.api}}/flutter/widgets/Page-class.html @@ -181,4 +181,4 @@ resources: [Understanding navigation]: https://material.io/design/navigation/understanding-navigation.html [Learning Flutter's new navigation and routing system]: https://flutter.dev/blog/learning-flutters-new-navigation-and-routing-system [Router design document]: {{site.main-url}}/go/navigator-with-router -[`MaterialPageRoute`]: {{site.api}}/flutter/material/MaterialPageRoute-class.html +[`MaterialPageRoute`]: {{site.material_ui}}/MaterialPageRoute-class.html diff --git a/sites/docs/src/content/ui/widgets/index.md b/sites/docs/src/content/ui/widgets/index.md index 3a58cd787a0..958ba949ddf 100644 --- a/sites/docs/src/content/ui/widgets/index.md +++ b/sites/docs/src/content/ui/widgets/index.md @@ -11,7 +11,14 @@ you can also see all the widgets in the [widget index][]. ## Design systems -Flutter ships with two design systems as part of the SDK. +The style-neutral [`widgets`][] library ships with the Flutter SDK. +Two UI design packages ([`material_ui`][] and [`cupertino_ui`][]) are +built on top of `widgets` and are available on [pub.dev]({{site.pub}}), +the package repository for Dart and Flutter. + +[`cupertino_ui`]: {{site.pub}}/packages/cupertino_ui +[`material_ui`]: {{site.pub}}/packages/material_ui +[`widgets`]: {{site.api}}/flutter/widgets/
@@ -24,8 +31,7 @@ Flutter ships with two design systems as part of the SDK.
-You can find many more design systems created by the Flutter community -on [pub.dev]({{site.pub}}), the package repository for Dart and Flutter. +You can find more design systems created by the Flutter community on pub.dev. For example, the Windows-inspired [fluent_ui][], macOS-inspired [macos_ui][], and the Ubuntu-inspired [yaru][] widgets. diff --git a/sites/docs/src/data/catalog/widgets.yml b/sites/docs/src/data/catalog/widgets.yml index ea119a805c7..a5981930bc6 100644 --- a/sites/docs/src/data/catalog/widgets.yml +++ b/sites/docs/src/data/catalog/widgets.yml @@ -17,7 +17,7 @@ subcategories: - 'Containment' - 'Dialogs, alerts, and panels' - link: https://api.flutter.dev/flutter/material/AlertDialog-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/AlertDialog-class.html image: src: /assets/images/docs/widget-catalog/material-3-dialog.png hoverBackground: @@ -175,7 +175,7 @@ subcategories: - 'Navigation' - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/AppBar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/AppBar-class.html image: src: /assets/images/docs/widget-catalog/material-3-top-app-bar.png hoverBackground: @@ -215,7 +215,7 @@ categories: - 'Input' subcategories: [] - link: https://api.flutter.dev/flutter/material/Autocomplete-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Autocomplete-class.html - name: BackdropFilter description: >- A widget that applies a filter to the existing painted content and then @@ -232,7 +232,7 @@ categories: [] subcategories: - 'Communication' - link: https://api.flutter.dev/flutter/material/Badge-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Badge-class.html image: src: /assets/images/docs/widget-catalog/material-3-badge.png hoverBackground: @@ -263,7 +263,7 @@ categories: [] subcategories: - 'Navigation' - link: https://api.flutter.dev/flutter/material/BottomAppBar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/BottomAppBar-class.html image: src: /assets/images/docs/widget-catalog/material-3-bottom-app-bar.png hoverBackground: @@ -273,7 +273,7 @@ categories: [] subcategories: - 'Containment' - link: https://api.flutter.dev/flutter/material/BottomSheet-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/BottomSheet-class.html image: src: /assets/images/docs/widget-catalog/material-3-bottom-sheet.png hoverBackground: @@ -285,7 +285,7 @@ categories: [] subcategories: - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/BottomNavigationBar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/BottomNavigationBar-class.html image: src: /assets/images/docs/widget-catalog/material-bottom-navigation-bar.png - name: Card @@ -296,7 +296,7 @@ subcategories: - 'Containment' - 'Information displays' - link: https://api.flutter.dev/flutter/material/Card-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Card-class.html image: src: /assets/images/docs/widget-catalog/material-3-card.png hoverBackground: @@ -330,7 +330,7 @@ subcategories: - 'Selection' - 'Input and selections' - link: https://api.flutter.dev/flutter/material/Checkbox-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Checkbox-class.html image: src: /assets/images/docs/widget-catalog/material-3-checkbox.png hoverBackground: @@ -343,7 +343,7 @@ subcategories: - 'Selection' - 'Information displays' - link: https://api.flutter.dev/flutter/material/Chip-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Chip-class.html image: src: /assets/images/docs/widget-catalog/material-3-chip.png hoverBackground: @@ -353,7 +353,7 @@ categories: [] subcategories: - 'Information displays' - link: https://api.flutter.dev/flutter/material/CircularProgressIndicator-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/CircularProgressIndicator-class.html image: src: /assets/images/docs/widget-catalog/material-circular-progress-indicator.png - name: ClipOval @@ -411,7 +411,7 @@ categories: [] subcategories: - 'Actions' - link: https://api.flutter.dev/flutter/material/ButtonStyle-class.html#material-3-button-types + link: https://pub.dev/documentation/material_ui/latest/material_ui/ButtonStyle-class.html#material-3-button-types image: src: /assets/images/docs/widget-catalog/material-3-buttons.png hoverBackground: @@ -493,7 +493,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoActionSheet-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoActionSheet-class.html image: src: /assets/images/docs/widget-catalog/cupertino-action-sheet.png - name: CupertinoActionSheetAction @@ -502,7 +502,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoActionSheetAction-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoActionSheetAction-class.html image: src: /assets/images/docs/widget-catalog/cupertino-action-sheet.png - name: CupertinoActivityIndicator @@ -511,7 +511,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoActivityIndicator-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoActivityIndicator-class.html image: src: /assets/images/docs/widget-catalog/cupertino-activity-indicator.png - name: CupertinoAdaptiveTextSelectionToolbar @@ -521,7 +521,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoAdaptiveTextSelectionToolbar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoAdaptiveTextSelectionToolbar-class.html image: src: /assets/images/docs/widget-catalog/CupertinoAdaptiveTextSelectionToolbar.png - name: CupertinoAlertDialog @@ -530,7 +530,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoAlertDialog-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoAlertDialog-class.html image: src: /assets/images/docs/widget-catalog/cupertino-alert-dialog.png - name: CupertinoApp @@ -539,7 +539,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoApp-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoApp-class.html image: src: /assets/images/docs/widget-catalog/CupertinoApp.png - name: CupertinoButton @@ -548,7 +548,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoButton-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoButton-class.html image: src: /assets/images/docs/widget-catalog/cupertino-button.png - name: CupertinoCheckBox @@ -557,7 +557,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoCheckbox-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoCheckbox-class.html image: src: /assets/images/docs/widget-catalog/CupertinoCheckbox.png - name: CupertinoColors @@ -567,7 +567,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoColors-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoColors-class.html image: src: /assets/images/docs/widget-catalog/CupertinoColors.png - name: CupertinoContextMenu @@ -577,7 +577,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoContextMenu-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoContextMenu-class.html image: src: /assets/images/docs/widget-catalog/cupertino-context-menu.png - name: CupertinoContextMenuAction @@ -586,7 +586,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoContextMenuAction-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoContextMenuAction-class.html image: src: /assets/images/docs/widget-catalog/CupertinoContextMenuAction.png - name: CupertinoDatePicker @@ -595,7 +595,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoDatePicker-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoDatePicker-class.html image: src: /assets/images/docs/widget-catalog/CupertinoDatePicker.png - name: CupertinoDesktopTextSelectionControls @@ -603,14 +603,14 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoDesktopTextSelectionControls-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoDesktopTextSelectionControls-class.html - name: CupertinoDesktopTextSelectionToolbar description: >- A macOS-style text selection toolbar. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoDesktopTextSelectionToolbar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoDesktopTextSelectionToolbar-class.html image: src: /assets/images/docs/widget-catalog/CupertinoDesktopTextSelectionToolbar.png - name: CupertinoDesktopTextSelectionToolbarButton @@ -619,7 +619,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoDesktopTextSelectionToolbarButton-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoDesktopTextSelectionToolbarButton-class.html image: src: /assets/images/docs/widget-catalog/CupertinoDesktopTextSelectionToolbarButton.png - name: CupertinoDialogAction @@ -628,7 +628,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoDialogAction-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoDialogAction-class.html image: src: /assets/images/docs/widget-catalog/cupertino-dialog-action.png - name: CupertinoDialogRoute @@ -637,7 +637,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoDialogRoute-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoDialogRoute-class.html - name: CupertinoDynamicColor description: >- A Color subclass that represents a family of colors, and the correct @@ -645,14 +645,14 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoDynamicColor-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoDynamicColor-class.html - name: CupertinoFormRow description: >- An iOS-style form row. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoFormRow-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoFormRow-class.html image: src: /assets/images/docs/widget-catalog/CupertinoFormRow.png - name: CupertinoFormSection @@ -661,7 +661,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoFormSection-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoFormSection-class.html image: src: /assets/images/docs/widget-catalog/CupertinoFormSection.png - name: CupertinoFullscreenDialogTransition @@ -670,7 +670,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoFullscreenDialogTransition-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoFullscreenDialogTransition-class.html image: src: /assets/images/docs/widget-catalog/cupertino-fullscreen-dialog-transition.png - name: CupertinoThemeData @@ -678,13 +678,13 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoThemeData-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoThemeData-class.html - name: CupertinoListSection description: Container that uses the iOS style to display a scrollable view. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoListSection-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoListSection-class.html image: src: /assets/images/docs/widget-catalog/cupertino-list-section.png - name: CupertinoListTile @@ -693,7 +693,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoListTile-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoListTile-class.html image: src: /assets/images/docs/widget-catalog/cupertino-list-tile.png - name: CupertinoListTileChevron @@ -703,7 +703,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoListTileChevron-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoListTileChevron-class.html image: src: /assets/images/docs/widget-catalog/CupertinoListTileChevron.png - name: CupertinoLocalizations @@ -711,7 +711,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoLocalizations-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoLocalizations-class.html - name: CupertinoMagnifier description: >- A RawMagnifier used for magnifying text in cases where a user's finger may @@ -719,7 +719,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoMagnifier-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoMagnifier-class.html - name: CupertinoModalPopupRoute description: >- A route that shows a modal iOS-style popup that @@ -728,7 +728,7 @@ - 'Cupertino' subcategories: [] link: >- - https://api.flutter.dev/flutter/cupertino/CupertinoModalPopupRoute-class.html + https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoModalPopupRoute-class.html - name: CupertinoNavigationBar description: >- Container at the top of a screen that uses the iOS style. @@ -736,7 +736,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoNavigationBar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoNavigationBar-class.html image: src: /assets/images/docs/widget-catalog/cupertino-nav-bar.png - name: CupertinoNavigationBarBackButton @@ -745,7 +745,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoNavigationBarBackButton-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoNavigationBarBackButton-class.html image: src: /assets/images/docs/widget-catalog/CupertinoNavigationBarBackButton.png - name: CupertinoPage @@ -754,14 +754,14 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoPage-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoPage-class.html - name: CupertinoPageRoute description: >- A modal route that replaces the entire screen with an iOS transition. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoPageRoute-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoPageRoute-class.html - name: CupertinoPageScaffold description: >- Basic iOS style page layout structure. @@ -769,13 +769,13 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoPageScaffold-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoPageScaffold-class.html - name: CupertinoPageTransition description: Provides an iOS-style page transition animation. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoPageTransition-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoPageTransition-class.html image: src: /assets/images/docs/widget-catalog/cupertino-page-transition.png - name: CupertinoPicker @@ -784,7 +784,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoPicker-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoPicker-class.html image: src: /assets/images/docs/widget-catalog/CupertinoPicker.png - name: CupertinoPickerDefaultSelectionOverlay @@ -793,7 +793,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoPickerDefaultSelectionOverlay-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoPickerDefaultSelectionOverlay-class.html - name: CupertinoPopupSurface description: >- Rounded rectangle surface that looks like an iOS popup surface, such as an @@ -801,14 +801,14 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoPopupSurface-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoPopupSurface-class.html - name: CupertinoRadio description: >- A macOS-style radio button. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoRadio-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoRadio-class.html image: src: /assets/images/docs/widget-catalog/CupertinoRadio.png - name: CupertinoScrollbar @@ -818,7 +818,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoScrollbar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoScrollbar-class.html image: src: /assets/images/docs/widget-catalog/cupertino-scrollbar.png - name: CupertinoScrollBehavior @@ -826,14 +826,14 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoScrollBehavior-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoScrollBehavior-class.html - name: CupertinoSearchTextField description: >- An iOS-style search field. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoSearchTextField-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoSearchTextField-class.html image: src: /assets/images/docs/widget-catalog/cupertino-search-field.png - name: CupertinoSlider @@ -841,7 +841,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoSlider-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoSlider-class.html image: src: /assets/images/docs/widget-catalog/cupertino-slider.png - name: CupertinoSlidingSegmentedControl @@ -851,7 +851,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoSlidingSegmentedControl-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoSlidingSegmentedControl-class.html image: src: /assets/images/docs/widget-catalog/cupertino-sliding-segmented-control.png - name: CupertinoSliverNavigationBar @@ -861,7 +861,7 @@ - 'Cupertino' subcategories: - 'Sliver widgets' - link: https://api.flutter.dev/flutter/cupertino/CupertinoSliverNavigationBar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoSliverNavigationBar-class.html image: src: /assets/images/docs/widget-catalog/cupertino-sliver-navigation-bar.png - name: CupertinoSliverRefreshControl @@ -871,13 +871,13 @@ - 'Cupertino' subcategories: - 'Sliver widgets' - link: https://api.flutter.dev/flutter/cupertino/CupertinoSliverRefreshControl-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoSliverRefreshControl-class.html - name: CupertinoSpellCheckSuggestionsToolbar description: The default spell check suggestions toolbar for iOS. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoSpellCheckSuggestionsToolbar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoSpellCheckSuggestionsToolbar-class.html image: src: /assets/images/docs/widget-catalog/CupertinoSpellCheckSuggestionsToolbar.png - name: CupertinoSwitch @@ -886,7 +886,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoSwitch-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoSwitch-class.html image: src: /assets/images/docs/widget-catalog/cupertino-switch.png - name: CupertinoTabBar @@ -895,7 +895,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTabBar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTabBar-class.html image: src: /assets/images/docs/widget-catalog/cupertino-tab-bar.png - name: CupertinoTabController @@ -905,13 +905,13 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTabController-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTabController-class.html - name: CupertinoTabScaffold description: Tabbed iOS app structure. Positions a tab bar on top of tabs of content. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTabScaffold-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTabScaffold-class.html image: src: /assets/images/docs/widget-catalog/cupertino-tab-scaffold.png - name: CupertinoTabView @@ -921,7 +921,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTabView-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTabView-class.html image: src: /assets/images/docs/widget-catalog/cupertino-tab-view.png - name: CupertinoTextField @@ -930,7 +930,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTextField-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTextField-class.html image: src: /assets/images/docs/widget-catalog/cupertino-textfield.png - name: CupertinoTextFormFieldRow @@ -940,7 +940,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTextFormFieldRow-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTextFormFieldRow-class.html image: src: /assets/images/docs/widget-catalog/CupertinoTextFormFieldRow.png - name: CupertinoTextMagnifier @@ -950,7 +950,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTextMagnifier-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTextMagnifier-class.html image: src: /assets/images/docs/widget-catalog/CupertinoTextMagnifier.png - name: CupertinoTextSelectionControls @@ -958,14 +958,14 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTextSelectionControls-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTextSelectionControls-class.html - name: CupertinoTextSelectionToolbar description: >- An iOS-style text selection toolbar. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTextSelectionToolbar-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTextSelectionToolbar-class.html image: src: /assets/images/docs/widget-catalog/CupertinoTextSelectionToolbar.png - name: CupertinoTextSelectionToolbarButton @@ -974,7 +974,7 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTextSelectionToolbarButton-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTextSelectionToolbarButton-class.html image: src: /assets/images/docs/widget-catalog/CupertinoTextSelectionToolbarButton.png - name: CupertinoTextThemeData @@ -982,27 +982,27 @@ categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTextThemeData-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTextThemeData-class.html - name: CupertinoTheme description: >- Applies a visual styling theme to descendant Cupertino widgets. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTheme-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTheme-class.html - name: CupertinoThumbPainter description: Paints an iOS-style slider thumb or switch thumb. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoThumbPainter-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoThumbPainter-class.html - name: CupertinoTimerPicker description: >- An iOS-style countdown timer picker. categories: - 'Cupertino' subcategories: [] - link: https://api.flutter.dev/flutter/cupertino/CupertinoTimerPicker-class.html + link: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui/CupertinoTimerPicker-class.html image: src: /assets/images/docs/widget-catalog/CupertinoTimerPicker.png - name: CustomMultiChildLayout @@ -1035,7 +1035,7 @@ - 'Scrolling' subcategories: - 'Multi-child layout widgets' - link: https://main-api.flutter.dev/flutter/material/CarouselView-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/CarouselView-class.html image: src: /assets/images/docs/widget-catalog/material-carousel.png - name: CustomScrollView @@ -1060,7 +1060,7 @@ categories: [] subcategories: - 'Information displays' - link: https://api.flutter.dev/flutter/material/DataTable-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/DataTable-class.html image: src: /assets/images/docs/widget-catalog/material-data-table.png - name: DatePicker @@ -1069,7 +1069,7 @@ subcategories: - 'Selection' - 'Input and selections' - link: https://api.flutter.dev/flutter/material/showDatePicker.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/showDatePicker.html image: src: /assets/images/docs/widget-catalog/material-3-date-picker.png hoverBackground: @@ -1130,7 +1130,7 @@ subcategories: - 'Containment' - 'Layout' - link: https://api.flutter.dev/flutter/material/Divider-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Divider-class.html image: src: /assets/images/docs/widget-catalog/material-3-divider.png hoverBackground: @@ -1174,7 +1174,7 @@ categories: [] subcategories: - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/Drawer-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Drawer-class.html image: src: /assets/images/docs/widget-catalog/material-drawer.png - name: DropdownButton @@ -1184,7 +1184,7 @@ categories: [] subcategories: - 'Buttons' - link: https://api.flutter.dev/flutter/material/DropdownButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/DropdownButton-class.html image: src: /assets/images/docs/widget-catalog/material-2-dropdown-menu.png - name: ElevatedButton @@ -1195,7 +1195,7 @@ - 'Basics' subcategories: - 'Buttons' - link: https://api.flutter.dev/flutter/material/ElevatedButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/ElevatedButton-class.html image: src: /assets/images/docs/widget-catalog/material-elevated-button.png - name: ExcludeSemantics @@ -1222,7 +1222,7 @@ categories: [] subcategories: - 'Dialogs, alerts, and panels' - link: https://api.flutter.dev/flutter/material/ExpansionPanel-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/ExpansionPanel-class.html image: src: /assets/images/docs/widget-catalog/material-2-expansion-panel.png - name: FadeTransition @@ -1244,7 +1244,7 @@ subcategories: - 'Actions' - 'Buttons' - link: https://api.flutter.dev/flutter/material/FloatingActionButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/FloatingActionButton-class.html image: src: /assets/images/docs/widget-catalog/material-3-floating-action-button.png hoverBackground: @@ -1257,7 +1257,7 @@ subcategories: - 'Actions' - 'Buttons' - link: https://api.flutter.dev/flutter/material/FloatingActionButton/FloatingActionButton.extended.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/FloatingActionButton/FloatingActionButton.extended.html image: src: /assets/images/docs/widget-catalog/material-3-extended-fab.png hoverBackground: @@ -1365,7 +1365,7 @@ subcategories: - 'Actions' - 'Buttons' - link: https://api.flutter.dev/flutter/material/IconButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/IconButton-class.html image: src: /assets/images/docs/widget-catalog/material-3-icon-button.png hoverBackground: @@ -1444,7 +1444,7 @@ subcategories: - 'Communication' - 'Information displays' - link: https://api.flutter.dev/flutter/material/LinearProgressIndicator-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/LinearProgressIndicator-class.html image: src: /assets/images/docs/widget-catalog/material-3-progress-indicator.png hoverBackground: @@ -1457,7 +1457,7 @@ subcategories: - 'Containment' - 'Layout' - link: https://api.flutter.dev/flutter/material/ListTile-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/ListTile-class.html image: src: /assets/images/docs/widget-catalog/material-3-list.png hoverBackground: @@ -1496,7 +1496,7 @@ categories: [] subcategories: - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/MaterialApp-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/MaterialApp-class.html image: src: /assets/images/docs/widget-catalog/material-2-material-app.png - name: MatrixTransition @@ -1517,7 +1517,7 @@ categories: [] subcategories: - 'Selection' - link: https://api.flutter.dev/flutter/material/MenuAnchor-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/MenuAnchor-class.html image: src: /assets/images/docs/widget-catalog/material-3-menu.png hoverBackground: @@ -1536,7 +1536,7 @@ categories: [] subcategories: - 'Navigation' - link: https://api.flutter.dev/flutter/material/NavigationBar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/NavigationBar-class.html image: src: /assets/images/docs/widget-catalog/material-3-navigation-bar.png hoverBackground: @@ -1548,7 +1548,7 @@ categories: [] subcategories: - 'Navigation' - link: https://api.flutter.dev/flutter/material/NavigationDrawer-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/NavigationDrawer-class.html image: src: /assets/images/docs/widget-catalog/material-3-navigation-drawer.png hoverBackground: @@ -1560,7 +1560,7 @@ categories: [] subcategories: - 'Navigation' - link: https://api.flutter.dev/flutter/material/NavigationRail-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/NavigationRail-class.html image: src: /assets/images/docs/widget-catalog/material-3-navigation-rail.png hoverBackground: @@ -1621,7 +1621,7 @@ categories: [] subcategories: - 'Buttons' - link: https://api.flutter.dev/flutter/material/OutlinedButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/OutlinedButton-class.html image: src: /assets/images/docs/widget-catalog/material-outlined-button.png - name: OverflowBar @@ -1687,7 +1687,7 @@ categories: [] subcategories: - 'Buttons' - link: https://api.flutter.dev/flutter/material/PopupMenuButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/PopupMenuButton-class.html image: src: /assets/images/docs/widget-catalog/material-popup-menu-button.png - name: PositionedTransition @@ -1707,7 +1707,7 @@ subcategories: - 'Selection' - 'Input and selections' - link: https://api.flutter.dev/flutter/material/Radio-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Radio-class.html image: src: /assets/images/docs/widget-catalog/material-3-radio-button.png hoverBackground: @@ -1733,7 +1733,7 @@ categories: - 'Scrolling' subcategories: [] - link: https://api.flutter.dev/flutter/material/RefreshIndicator-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/RefreshIndicator-class.html image: src: /assets/images/docs/widget-catalog/material-2-refresh-indicator.png - name: RelativePositionedTransition @@ -1749,7 +1749,7 @@ categories: - 'Scrolling' subcategories: [] - link: https://api.flutter.dev/flutter/material/ReorderableListView-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/ReorderableListView-class.html - name: RepeatingAnimationBuilder description: >- A widget that animates an Animatable value and repeats indefinitely. @@ -1811,7 +1811,7 @@ - 'Basics' subcategories: - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/Scaffold-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Scaffold-class.html image: src: /assets/images/docs/widget-catalog/material-2-scaffold.png - name: ScaleTransition @@ -1844,7 +1844,7 @@ categories: - 'Scrolling' subcategories: [] - link: https://api.flutter.dev/flutter/material/Scrollbar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Scrollbar-class.html - name: SegmentedButton description: >- Single or multiple selected clickable blocks to help people select options, @@ -1852,7 +1852,7 @@ categories: [] subcategories: - 'Actions' - link: https://api.flutter.dev/flutter/material/SegmentedButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/SegmentedButton-class.html image: src: /assets/images/docs/widget-catalog/material-3-segmented-button.png hoverBackground: @@ -1874,7 +1874,7 @@ categories: [] subcategories: - 'Dialogs, alerts, and panels' - link: https://api.flutter.dev/flutter/material/SimpleDialog-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/SimpleDialog-class.html image: src: /assets/images/docs/widget-catalog/material-2-simple-dialog.png - name: SingleChildScrollView @@ -1937,7 +1937,7 @@ subcategories: - 'Selection' - 'Input and selections' - link: https://api.flutter.dev/flutter/material/Slider-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Slider-class.html image: src: /assets/images/docs/widget-catalog/material-3-slider.png hoverBackground: @@ -1949,7 +1949,7 @@ subcategories: - 'App structure and navigation' - 'Sliver widgets' - link: https://api.flutter.dev/flutter/material/SliverAppBar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/SliverAppBar-class.html image: src: /assets/images/docs/widget-catalog/material-app-bar.png - name: SliverChildBuilderDelegate @@ -2033,7 +2033,7 @@ subcategories: - 'Communication' - 'Dialogs, alerts, and panels' - link: https://api.flutter.dev/flutter/material/SnackBar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/SnackBar-class.html image: src: /assets/images/docs/widget-catalog/material-3-snackbar.png hoverBackground: @@ -2062,7 +2062,7 @@ categories: [] subcategories: - 'Layout' - link: https://api.flutter.dev/flutter/material/Stepper-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Stepper-class.html image: src: /assets/images/docs/widget-catalog/material-2-stepper.png - name: StreamBuilder @@ -2079,7 +2079,7 @@ subcategories: - 'Selection' - 'Input and selections' - link: https://api.flutter.dev/flutter/material/Switch-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Switch-class.html image: src: /assets/images/docs/widget-catalog/material-3-switch.png hoverBackground: @@ -2092,7 +2092,7 @@ subcategories: - 'Navigation' - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/TabBar-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/TabBar-class.html image: src: /assets/images/docs/widget-catalog/material-3-tab-bar.png hoverBackground: @@ -2104,7 +2104,7 @@ categories: [] subcategories: - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/TabBarView-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/TabBarView-class.html image: src: /assets/images/docs/widget-catalog/material-tab-bar.png - name: TabController @@ -2112,7 +2112,7 @@ categories: [] subcategories: - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/TabController-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/TabController-class.html image: src: /assets/images/docs/widget-catalog/material-tab-bar.png - name: TabPageSelector @@ -2122,7 +2122,7 @@ categories: [] subcategories: - 'App structure and navigation' - link: https://api.flutter.dev/flutter/material/TabPageSelector-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/TabPageSelector-class.html image: src: /assets/images/docs/widget-catalog/material-tab-bar.png - name: Table @@ -2151,7 +2151,7 @@ categories: [] subcategories: - 'Buttons' - link: https://api.flutter.dev/flutter/material/TextButton-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/TextButton-class.html image: src: /assets/images/docs/widget-catalog/material-2-text-button.png - name: TextField @@ -2161,7 +2161,7 @@ subcategories: - 'Text inputs' - 'Input and selections' - link: https://api.flutter.dev/flutter/material/TextField-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/TextField-class.html image: src: /assets/images/docs/widget-catalog/material-3-text-field.png hoverBackground: @@ -2173,13 +2173,13 @@ categories: - 'Styling' subcategories: [] - link: https://api.flutter.dev/flutter/material/Theme-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Theme-class.html - name: TimePicker description: Clock interface used to select and set a specific time. categories: [] subcategories: - 'Selection' - link: https://api.flutter.dev/flutter/material/showTimePicker.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/showTimePicker.html image: src: /assets/images/docs/widget-catalog/material-3-time-picker.png hoverBackground: @@ -2193,7 +2193,7 @@ categories: [] subcategories: - 'Information displays' - link: https://api.flutter.dev/flutter/material/Tooltip-class.html + link: https://pub.dev/documentation/material_ui/latest/material_ui/Tooltip-class.html image: src: /assets/images/docs/widget-catalog/material-tooltip.png - name: Transform diff --git a/sites/docs/src/data/glossary.yml b/sites/docs/src/data/glossary.yml index 8a9315cd18e..a227449428c 100644 --- a/sites/docs/src/data/glossary.yml +++ b/sites/docs/src/data/glossary.yml @@ -39,13 +39,11 @@ short_description: |- Flutter's implementation of the iOS design language. long_description: |- - Flutter's `cupertino` library implements the iOS design language, + Flutter's `cupertino_ui` library implements the iOS design language, comprising a set of widgets that implement Apple's Human Interface Guidelines. - The `cupertino` library, originally part of the main Flutter repo, - will be decoupled into a separate package. - For more information, - visit [flutter.dev/go/decouple-design](https://flutter.dev/go/decouple-design). + The Cupertino library, originally part of the main Flutter repo, + has been decoupled into a separate package, `cupertino_ui` on pub.dev. related_links: - text: "Human Interface Guidelines" link: "https://developer.apple.com/design/human-interface-guidelines/" @@ -53,6 +51,15 @@ - text: "Cupertino widgets" link: "/ui/widgets/cupertino" type: "doc" + - text: "cupertino_ui package" + link: "{{site.pub}}/packages/cupertino_ui" + type: "external" + - text: "Material and Cupertino decoupling are here" + link: "{{site.pub}}/packages/cupertino_ui" + type: "blog" + - text: "Material and Cupertino decoupling guide" + link: "/release/breaking-changes/material-ui-and-cupertino-ui" + type: "doc" labels: - "design" - "ui" @@ -288,12 +295,10 @@ long_description: |- Material Design is an adaptable system of guidelines, components, and tools that support the best practices of user interface design. - Flutter's `material` library implements Material Design widgets. + Flutter's `material_ui` library implements Material Design widgets. - The `material` library, originally part of the main Flutter repo, - will be decoupled into a separate package. - For more information, - visit [flutter.dev/go/decouple-design](https://flutter.dev/go/decouple-design). + The Material library, originally part of the main Flutter repo, + has been decoupled into a separate package, `material_ui` on pub.dev. related_links: - text: "Material Design site" link: "https://m3.material.io" @@ -301,6 +306,15 @@ - text: "Material widgets" link: "/ui/widgets/material" type: "doc" + - text: "material_ui package" + link: "{{site.pub}}/packages/material_ui" + type: "external" + - text: "Material and Cupertino decoupling are here" + link: "{{site.pub}}/packages/cupertino_ui" + type: "blog" + - text: "Material and Cupertino decoupling guide" + link: "/release/breaking-changes/material-ui-and-cupertino-ui" + type: "doc" labels: - "design" - "ui" @@ -332,6 +346,48 @@ - "language" - "fundamentals" +- term: "Package" + short_description: |- + At a minimum, a Dart package is a directory containing a + `pubspec.yaml` file. + long_description: |- + Additionally, a package can contain dependencies (listed in the pubspec), + Dart libraries, apps, resources, tests, images, fonts, and examples. + The [pub.dev][] site lists many packages—developed by Google engineers + and generous members of the Flutter and Dart community—that you can use + in your app. + related_links: + - text: "Packages v Plugins" + link: "https://youtu.be/Y9WifT8aN6o" + type: "video" + - text: "Package dependency management" + link: "/packages-and-plugins/dependency-management" + type: "doc" + - text: "Package versioning guide" + link: "{{site.dart-site}}/tools/pub/versioning" + type: "doc" + labels: + - "packages" + - "plugins" + +- term: "Plugin" + short_description: |- + A plugin package (generally referred to as _a plugin_), + is a special kind of package that makes platform functionallity + available to the app. + long_description: |- + Plugin packages can be written for Android (using Kotlin or Java), + iOS (using Swift or Objective-C), web, macOS, Windows, Linux, or + any combination thereof. For example, a plugin might provide + Flutter apps with the ability to use a device's camera. + related_links: + - text: "Packages v Plugins" + link: "https://youtu.be/Y9WifT8aN6o" + type: "video" + labels: + - "packages" + - "plugins" + - term: "Prop drilling" short_description: |- The process of passing data through multiple layers of widgets diff --git a/sites/docs/src/data/sidenav/default.yml b/sites/docs/src/data/sidenav/default.yml index ad5decd077f..93983ce0932 100644 --- a/sites/docs/src/data/sidenav/default.yml +++ b/sites/docs/src/data/sidenav/default.yml @@ -24,7 +24,7 @@ children: - title: Cupertino permalink: /ui/widgets/cupertino - - title: Material components + - title: Material permalink: /ui/widgets/material - title: Base widgets expanded: false @@ -118,8 +118,8 @@ permalink: /cookbook/design/themes - title: Material design permalink: /ui/design/material - - title: Migrate to Material 3 - permalink: /release/breaking-changes/material-3-migration + - title: Cupertino design + permalink: /ui/design/cupertino - title: Text permalink: /ui/design/text children: @@ -947,4 +947,6 @@ permalink: /reference/flutter-cli - title: API docs permalink: https://api.flutter.dev + - title: pub.dev + permalink: https://pub.dev diff --git a/sites/docs/src/data/site.yml b/sites/docs/src/data/site.yml index 26c4a039a0d..d43f328d7dc 100644 --- a/sites/docs/src/data/site.yml +++ b/sites/docs/src/data/site.yml @@ -27,6 +27,7 @@ dart: social: twitter: https://twitter.com/FlutterDev youtube: https://www.youtube.com/@flutterdev +cupertino_ui: https://pub.dev/documentation/cupertino_ui/latest/cupertino_ui dart-site: https://dart.dev api: https://api.flutter.dev main-api: https://main-api.flutter.dev @@ -39,6 +40,7 @@ dartpad: https://dartpad.dev gallery-archive: https://flutter-gallery-archive.web.app material: https://m3.material.io material2: https://m2.material.io +material_ui: https://pub.dev/documentation/material_ui/latest/material_ui so: https://stackoverflow.com android-dev: https://developer.android.com apple-dev: https://developer.apple.com diff --git a/sites/docs/web/assets/images/docs/arch-overview/archdiagram.webp b/sites/docs/web/assets/images/docs/arch-overview/archdiagram.webp new file mode 100644 index 0000000000000000000000000000000000000000..a72c791ce8e3583794b92cc17847cb78c1c5ae3e GIT binary patch literal 410668 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 Ab^rhX literal 0 HcmV?d00001 diff --git a/sites/docs/web/assets/images/docs/resources/diagram-layercake.png b/sites/docs/web/assets/images/docs/resources/diagram-layercake.png deleted file mode 100644 index ad5538d5b9c206a3fd5507e005a38519e1680ae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39874 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 ifymMSmFM_DAcg12+7DOG?jnGOK}HC(i

Lk^cwTK>$?% diff --git a/sites/docs/web/assets/images/docs/resources/diagram-layercake.webp b/sites/docs/web/assets/images/docs/resources/diagram-layercake.webp new file mode 100644 index 0000000000000000000000000000000000000000..fd3665891b3baeb89f9833a6a59ab683329c502e GIT binary patch literal 624392 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 zΝ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 Date: Fri, 25 Sep 2026 13:17:00 -0700 Subject: [PATCH 2/2] Making sure it's all included --- sites/docs/src/content/packages-and-plugins/using-packages.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sites/docs/src/content/packages-and-plugins/using-packages.md b/sites/docs/src/content/packages-and-plugins/using-packages.md index fc5a86dfce8..060ee147611 100644 --- a/sites/docs/src/content/packages-and-plugins/using-packages.md +++ b/sites/docs/src/content/packages-and-plugins/using-packages.md @@ -259,9 +259,11 @@ specify a version range using one of the following formats. This syntax means the same as the one noted in the first bullet. -To learn more, check out the [package versioning guide][]. +To learn more, check out [package dependency management][] and +the [package versioning guide][]. [caret syntax]: {{site.dart-site}}/tools/pub/dependencies#caret-syntax +[package dependency management]: /packages-and-plugins/dependency-management [package versioning guide]: {{site.dart-site}}/tools/pub/versioning [`url_launcher` versions]: {{site.pub-pkg}}/url_launcher/versions