diff --git a/web/samples_index/CHANGELOG.md b/web/samples_index/CHANGELOG.md deleted file mode 100644 index 687440bac..000000000 --- a/web/samples_index/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version, created by Stagehand diff --git a/web/samples_index/README.md b/web/samples_index/README.md index d2db13906..c3356d6a5 100644 --- a/web/samples_index/README.md +++ b/web/samples_index/README.md @@ -33,12 +33,3 @@ $ dart run grinder build-release ``` This outputs the completely built index to `./public`. - -## Generating cookbook content - -The cookbook articles are generated using a WebDriver script -that scrapes the docs.flutter.dev website. To run: - -1. Install [ChromeDriver](https://chromedriver.chromium.org/downloads) -2. run `chromedriver --port=4444 --url-base=wd/hub --verbose` -3. run `dart run grinder scrape-cookbook` diff --git a/web/samples_index/analysis_options.yaml b/web/samples_index/analysis_options.yaml index 973c98aad..298a50d3e 100644 --- a/web/samples_index/analysis_options.yaml +++ b/web/samples_index/analysis_options.yaml @@ -1,4 +1,4 @@ -include: package:flutter_lints/flutter.yaml +include: package:lints/recommended.yaml analyzer: exclude: diff --git a/web/samples_index/lib/cookbook.dart b/web/samples_index/lib/cookbook.dart deleted file mode 100644 index ff842d2b4..000000000 --- a/web/samples_index/lib/cookbook.dart +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2020 The Flutter team. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file - -import 'dart:io'; - -import 'package:html/parser.dart' show parse; -import 'package:path/path.dart' as path; -import 'package:samples_index/src/data.dart'; - -/// Utilities for generating cookbook article data -import 'package:webdriver/async_io.dart'; - -class CookbookScraper { - late WebDriver _driver; - - Future init() async { - _driver = await createDriver(desired: {}); - } - - Future dispose() async { - await _driver.quit(); - } - - Future> fetchCookbookLinks() async { - var flutterUrl = 'https://flutter.dev'; - var url = Uri.parse('$flutterUrl/docs/cookbook'); - await _driver.get(url); - var pageContent = await _driver.pageSource; - var page = parse(pageContent); - var links = page.querySelectorAll('main>.container>ul>li>a'); - return links.map((e) => '$flutterUrl${e.attributes["href"]}').toList(); - } - - Future getMetadata(String url) async { - await _driver.get(Uri.parse(url)); - var pageContent = await _driver.pageSource; - var page = parse(pageContent); - var search = 'main>.container>header>h1'; - var h1 = page.querySelector(search); - if (h1 == null) { - throw ('Could not find match for $search on page $url'); - } - var name = h1.text; - var description = page.querySelectorAll('main>.container>p').first.text; - - var urlSegments = Uri.parse(url).pathSegments; - var category = urlSegments[urlSegments.length - 2]; - - return Sample( - name: name, - description: description, - author: 'Flutter', - type: 'cookbook', - screenshots: [Screenshot(screenshotPath(url), 'Cookbook article')], - tags: ['cookbook', category], - source: url, - difficulty: 'advanced', - ); - } - - Future takeScreenshot(String url) async { - var screenshot = await _driver.captureScreenshotAsList(); - var file = File('web/${screenshotPath(url)}'); - await file.create(recursive: true); - await file.writeAsBytes(screenshot); - } -} - -String screenshotPath(String url) { - var filename = parseFileName(url); - return 'images/cookbook/$filename.png'; -} - -/// Parses a filename from a cookbook link. E.g. -/// `https://flutter.dev/docs/cookbook/navigation/returning-data.html` changes -/// to `returning_data.png` -String parseFileName(String link) { - var p = path.basename(link); - var dot = p.indexOf('.'); - var detailName = p.substring(0, dot); - // var categoryName = path.split(link); - var components = path.split(link); - var categoryName = components[components.length - 2]; - return '$categoryName-$detailName'; -} diff --git a/web/samples_index/lib/samples_index.dart b/web/samples_index/lib/samples_index.dart index c2168c513..fd7130ee9 100644 --- a/web/samples_index/lib/samples_index.dart +++ b/web/samples_index/lib/samples_index.dart @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file -import 'dart:convert'; import 'dart:io'; import 'package:checked_yaml/checked_yaml.dart'; @@ -12,14 +11,10 @@ export 'src/data.dart'; Future> getSamples() async { var yamlFile = File('lib/src/samples.yaml'); - var cookbookFile = File('lib/src/cookbook.json'); var contents = await yamlFile.readAsString(); - var cookbookContents = await cookbookFile.readAsString(); var index = checkedYamlDecode( contents, (m) => m != null ? Index.fromJson(m) : null, sourceUrl: yamlFile.uri); if (index == null) throw ('unable to get load from ${yamlFile.uri}'); - var cookbookIndex = - Index.fromJson(json.decode(cookbookContents) as Map); - return index.samples..addAll(cookbookIndex.samples); + return index.samples; } diff --git a/web/samples_index/lib/src/cookbook.json b/web/samples_index/lib/src/cookbook.json deleted file mode 100644 index 33810791a..000000000 --- a/web/samples_index/lib/src/cookbook.json +++ /dev/null @@ -1,1379 +0,0 @@ -{ - "samples": [ - { - "name": "Animate a page route transition", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/animation-page-route-animation.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/animation/page-route-animation.html", - "web": null, - "description": "A design language, such as Material, defines standard behaviors when\ntransitioning between routes (or screens). Sometimes, though, a custom\ntransition between screens can make an app more unique. To help,\nPageRouteBuilder provides an Animation object.\nThis Animation can be used with Tween and\nCurve objects to customize the transition animation.\nThis recipe shows how to transition between\nroutes by animating the new route into view from\nthe bottom of the screen.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "animation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Animate a widget using a physics simulation", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/animation-physics-simulation.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/animation/physics-simulation.html", - "web": null, - "description": "Physics simulations can make app interactions feel realistic and interactive.\nFor example, you might want to animate a widget to act as if it were attached to\na spring or falling with gravity.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "animation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Animate the properties of a container", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/animation-animated-container.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/animation/animated-container.html", - "web": null, - "description": "The Container class provides a convenient way\nto create a widget with specific properties:\nwidth, height, background color, padding, borders, and more.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "animation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Fade a widget in and out", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/animation-opacity-animation.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/animation/opacity-animation.html", - "web": null, - "description": "UI developers often need to show and hide elements on screen.\nHowever, quickly popping elements on and off the screen can\nfeel jarring to end users. Instead,\nfade elements in and out with an opacity animation to create\na smooth experience.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "animation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Add a Drawer to a screen", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/design-drawer.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/design/drawer.html", - "web": null, - "description": "In apps that use Material Design,\nthere are two primary options for navigation: tabs and drawers.\nWhen there is insufficient space to support tabs,\ndrawers provide a handy alternative.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "design" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Display a snackbar", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/design-snackbars.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/design/snackbars.html", - "web": null, - "description": "It can be useful to briefly inform your users when certain actions\ntake place. For example, when a user swipes away a message in a list,\nyou might want to inform them that the message has been deleted.\nYou might even want to give them an option to undo the action.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "design" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Export fonts from a package", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/design-package-fonts.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/design/package-fonts.html", - "web": null, - "description": "Rather than declaring a font as part of an app,\nyou can declare a font as part of a separate package.\nThis is a convenient way to share the same font across\nseveral different projects,\nor for coders publishing their packages to pub.dev.\nThis recipe uses the following steps:", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "design" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Update the UI based on orientation", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/design-orientation.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/design/orientation.html", - "web": null, - "description": "In some situations,\nyou want to update the display of an app when the user\nrotates the screen from portrait mode to landscape mode. For example,\nthe app might show one item after the next in portrait mode,\nyet put those same items side-by-side in landscape mode.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "design" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Use a custom font", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/design-fonts.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/design/fonts.html", - "web": null, - "description": "Although Android and iOS offer high quality system fonts,\none of the most common requests from designers is for custom fonts.\nFor example, you might have a custom-built font from a designer,\nor perhaps you downloaded a font from Google Fonts.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "design" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Use themes to share colors and font styles", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/design-themes.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/design/themes.html", - "web": null, - "description": "To share colors and font styles throughout an app, use themes.\nYou can either define app-wide themes, or use Theme widgets\nthat define the colors and font styles for a particular part\nof the application. In fact,\napp-wide themes are just Theme widgets created at\nthe root of an app by the MaterialApp.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "design" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Work with tabs", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/design-tabs.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/design/tabs.html", - "web": null, - "description": "Working with tabs is a common pattern in apps that follow the\nMaterial Design guidelines.\nFlutter includes a convenient way to create tab layouts as part of\nthe material library.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "design" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Build a form with validation", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/forms-validation.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/forms/validation.html", - "web": null, - "description": "Apps often require users to enter information into a text field.\nFor example, you might require users to log in with an email address\nand password combination.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "forms" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Create and style a text field", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/forms-text-input.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/forms/text-input.html", - "web": null, - "description": "Text fields allow users to type text into an app.\nThey are used to build forms,\nsend messages, create search experiences, and more.\nIn this recipe, explore how to create and style text fields.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "forms" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Focus and text fields", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/forms-focus.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/forms/focus.html", - "web": null, - "description": "When a text field is selected and accepting input,\nit is said to have “focus.”\nGenerally, users shift focus to a text field by tapping,\nand developers shift focus to a text field programmatically by\nusing the tools described in this recipe.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "forms" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Handle changes to a text field", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/forms-text-field-changes.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/forms/text-field-changes.html", - "web": null, - "description": "In some cases, it’s useful to run a callback function every time the text\nin a text field changes. For example, you might want to build a search\nscreen with autocomplete functionality where you want to update the\nresults as the user types.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "forms" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Retrieve the value of a text field", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/forms-retrieve-input.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/forms/retrieve-input.html", - "web": null, - "description": "In this recipe,\nlearn how to retrieve the text a user has entered into a text field\nusing the following steps:", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "forms" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Add Material touch ripples", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/gestures-ripples.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/gestures/ripples.html", - "web": null, - "description": "Widgets that follow the Material Design guidelines display\na ripple animation when tapped.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "gestures" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Handle taps", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/gestures-handling-taps.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/gestures/handling-taps.html", - "web": null, - "description": "You not only want to display information to users,\nyou want users to interact with your app.\nUse the GestureDetector widget to respond\nto fundamental actions, such as tapping and dragging.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "gestures" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Implement swipe to dismiss", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/gestures-dismissible.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/gestures/dismissible.html", - "web": null, - "description": "The “swipe to dismiss” pattern is common in many mobile apps.\nFor example, when writing an email app,\nyou might want to allow a user to swipe away\nemail messages to delete them from a list.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "gestures" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Display images from the internet", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/images-network-image.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/images/network-image.html", - "web": null, - "description": "Displaying images is fundamental for most mobile apps.\nFlutter provides the Image widget to\ndisplay different types of images.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "images" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Fade in images with a placeholder", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/images-fading-in-images.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/images/fading-in-images.html", - "web": null, - "description": "When displaying images using the default Image widget,\nyou might notice they simply pop onto the screen as they’re loaded.\nThis might feel visually jarring to your users.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "images" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Work with cached images", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/images-cached-images.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/images/cached-images.html", - "web": null, - "description": "In some cases, it’s handy to cache images as they’re downloaded from the\nweb, so they can be used offline. For this purpose,\nuse the cached_network_image package.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "images" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Create a grid list", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/lists-grid-lists.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/lists/grid-lists.html", - "web": null, - "description": "In some cases, you might want to display your items as a grid rather than\na normal list of items that come one after the next.\nFor this task, use the GridView widget.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "lists" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Create a horizontal list", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/lists-horizontal-list.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/lists/horizontal-list.html", - "web": null, - "description": "You might want to create a list that scrolls\nhorizontally rather than vertically.\nThe ListView widget supports horizontal lists.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "lists" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Create lists with different types of items", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/lists-mixed-list.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/lists/mixed-list.html", - "web": null, - "description": "You might need to create lists that display different types of content.\nFor example, you might be working on a list that shows a heading\nfollowed by a few items related to the heading, followed by another heading,\nand so on.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "lists" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Place a floating app bar above a list", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/lists-floating-app-bar.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/lists/floating-app-bar.html", - "web": null, - "description": "To make it easier for users to view a list of items,\nyou might want to hide the app bar as the user scrolls down the list.\nThis is especially true if your app displays a “tall”\napp bar that occupies a lot of vertical space.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "lists" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Use lists", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/lists-basic-list.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/lists/basic-list.html", - "web": null, - "description": "Displaying lists of data is a fundamental pattern for mobile apps.\nFlutter includes the ListView\nwidget to make working with lists a breeze.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "lists" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Work with long lists", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/lists-long-lists.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/lists/long-lists.html", - "web": null, - "description": "The standard ListView constructor works well\nfor small lists. To work with lists that contain\na large number of items, it’s best to use the\nListView.builder constructor.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "lists" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Report errors to a service", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/maintenance-error-reporting.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/maintenance/error-reporting.html", - "web": null, - "description": "While one always tries to create apps that are free of bugs,\nthey’re sure to crop up from time to time.\nSince buggy apps lead to unhappy users and customers,\nit’s important to understand how often your users\nexperience bugs and where those bugs occur.\nThat way, you can prioritize the bugs with the\nhighest impact and work to fix them.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "maintenance" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Animate a widget across screens", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/navigation-hero-animations.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/navigation/hero-animations.html", - "web": null, - "description": "It’s often helpful to guide users through an app as they navigate from screen\nto screen. A common technique to lead users through an app is to animate a\nwidget from one screen to the next. This creates a visual anchor connecting\nthe two screens.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "navigation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Navigate to a new screen and back", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/navigation-navigation-basics.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/navigation/navigation-basics.html", - "web": null, - "description": "Most apps contain several screens for displaying different types of\ninformation.\nFor example, an app might have a screen that displays products.\nWhen the user taps the image of a product, a new screen displays\ndetails about the product.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "navigation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Navigate with named routes", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/navigation-named-routes.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/navigation/named-routes.html", - "web": null, - "description": "In the Navigate to a new screen and back recipe,\nyou learned how to navigate to a new screen by creating a new route and\npushing it to the Navigator.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "navigation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Pass arguments to a named route", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/navigation-navigate-with-arguments.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments.html", - "web": null, - "description": "The Navigator provides the ability to navigate\nto a named route from any part of an app using\na common identifier.\nIn some cases, you might also need to pass arguments to a\nnamed route. For example, you might wish to navigate to the /user route and\npass information about the user to that route.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "navigation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Return data from a screen", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/navigation-returning-data.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/navigation/returning-data.html", - "web": null, - "description": "In some cases, you might want to return data from a new screen.\nFor example, say you push a new screen that presents two options to a user.\nWhen the user taps an option, you want to inform the first screen\nof the user’s selection so that it can act on that information.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "navigation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Send data to a new screen", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/navigation-passing-data.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/navigation/passing-data.html", - "web": null, - "description": "Often, you not only want to navigate to a new screen,\nbut also pass data to the screen as well.\nFor example, you might want to pass information about\nthe item that’s been tapped.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "navigation" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Delete data on the internet", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/networking-delete-data.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/networking/delete-data.html", - "web": null, - "description": "This recipe covers how to delete data over\nthe internet using the http package.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "networking" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Fetch data from the internet", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/networking-fetch-data.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/networking/fetch-data.html", - "web": null, - "description": "Fetching data from the internet is necessary for most apps.\nLuckily, Dart and Flutter provide tools, such as the\nhttp package, for this type of work.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "networking" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Make authenticated requests", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/networking-authenticated-requests.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/networking/authenticated-requests.html", - "web": null, - "description": "To fetch data from most web services, you need to provide\nauthorization. There are many ways to do this,\nbut perhaps the most common uses the Authorization HTTP header.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "networking" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Parse JSON in the background", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/networking-background-parsing.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/networking/background-parsing.html", - "web": null, - "description": "By default, Dart apps do all of their work on a single thread.\nIn many cases, this model simplifies coding and is fast enough\nthat it does not result in poor app performance or stuttering animations,\noften called “jank.”", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "networking" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Send data to the internet", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/networking-send-data.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/networking/send-data.html", - "web": null, - "description": "Sending data to the internet is necessary for most apps.\nThe http package has got that covered, too.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "networking" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Update data over the internet", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/networking-update-data.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/networking/update-data.html", - "web": null, - "description": "Updating data over the internet is necessary for most apps.\nThe http package has got that covered!", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "networking" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Work with WebSockets", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/networking-web-sockets.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/networking/web-sockets.html", - "web": null, - "description": "In addition to normal HTTP requests,\nyou can connect to servers using WebSockets.\nWebSockets allow for two-way communication with a server\nwithout polling.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "networking" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Persist data with SQLite", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/persistence-sqlite.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/persistence/sqlite.html", - "web": null, - "description": "If you are writing an app that needs to persist and query large amounts of data on\nthe local device, consider using a database instead of a local file or\nkey-value store. In general, databases provide faster inserts, updates,\nand queries compared to other local persistence solutions.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "persistence" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Read and write files", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/persistence-reading-writing-files.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/persistence/reading-writing-files.html", - "web": null, - "description": "In some cases, you need to read and write files to disk.\nFor example, you may need to persist data across app launches,\nor download data from the internet and save it for later offline use.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "persistence" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Store key-value data on disk", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/persistence-key-value.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/persistence/key-value.html", - "web": null, - "description": "If you have a relatively small collection of key-values\nto save, you can use the shared_preferences plugin.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "persistence" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Play and pause a video", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/plugins-play-video.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/plugins/play-video.html", - "web": null, - "description": "Playing videos is a common task in app development,\nand Flutter apps are no exception. To play videos,\nthe Flutter team provides the video_player plugin.\nYou can use the video_player plugin to play videos\nstored on the file system, as an asset, or from the internet.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "plugins" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Take a picture using the camera", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/plugins-picture-using-camera.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/plugins/picture-using-camera.html", - "web": null, - "description": "Many apps require working with the device’s cameras to\ntake photos and videos. Flutter provides the camera plugin\nfor this purpose. The camera plugin provides tools to get a list of the\navailable cameras, display a preview coming from a specific camera,\nand take photos or videos.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "plugins" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "An introduction to integration testing", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/integration-introduction.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/integration/introduction.html", - "web": null, - "description": "Unit tests and widget tests are handy for testing individual classes,\nfunctions, or widgets. However, they generally don’t test how\nindividual pieces work together as a whole, or capture the performance\nof an application running on a real device. These tasks are performed\nwith integration tests.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "integration" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Handle scrolling", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/integration-scrolling.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/integration/scrolling.html", - "web": null, - "description": "Many apps feature lists of content,\nfrom email clients to music apps and beyond.\nTo verify that lists contain the expected content\nusing integration tests,\nyou need a way to scroll through lists to search for particular items.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "integration" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Performance profiling", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/integration-profiling.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/integration/profiling.html", - "web": null, - "description": "When it comes to mobile apps, performance is critical to user experience.\nUsers expect apps to have smooth scrolling and meaningful animations free of\nstuttering or skipped frames, known as “jank.” How to ensure that your app\nis free of jank on a wide variety of devices?", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "integration" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "An introduction to unit testing", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/unit-introduction.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/unit/introduction.html", - "web": null, - "description": "How can you ensure that your app continues to work as you\nadd more features or change existing functionality?\nBy writing tests.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "unit" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Mock dependencies using Mockito", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/unit-mocking.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/unit/mocking.html", - "web": null, - "description": "Sometimes, unit tests might depend on classes that fetch data from live\nweb services or databases. This is inconvenient for a few reasons:", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "unit" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "An introduction to widget testing", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/widget-introduction.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/widget/introduction.html", - "web": null, - "description": "In the introduction to unit testing recipe,\nyou learned how to test Dart classes using the test package.\nTo test widget classes, you need a few additional tools provided by the\nflutter_test package, which ships with the Flutter SDK.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "widget" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Find widgets", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/widget-finders.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/widget/finders.html", - "web": null, - "description": "To locate widgets in a test environment, use the Finder\nclasses. While it’s possible to write your own Finder classes,\nit’s generally more convenient to locate widgets using the tools\nprovided by the flutter_test package.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "widget" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - }, - { - "name": "Tap, drag, and enter text", - "author": "Flutter", - "screenshots": [ - { - "url": "images/cookbook/widget-tap-drag.png", - "alt": "Cookbook article" - } - ], - "source": "https://flutter.dev/docs/cookbook/testing/widget/tap-drag.html", - "web": null, - "description": "Many widgets not only display information, but also respond\nto user interaction. This includes buttons that can be tapped,\nand TextField for entering text.", - "difficulty": null, - "widgets": [], - "packages": [], - "tags": [ - "cookbook", - "widget" - ], - "platforms": [], - "links": [], - "type": "cookbook", - "date": null, - "channel": null - } - ] -} \ No newline at end of file diff --git a/web/samples_index/lib/src/data.dart b/web/samples_index/lib/src/data.dart index 62381161a..34706170b 100644 --- a/web/samples_index/lib/src/data.dart +++ b/web/samples_index/lib/src/data.dart @@ -36,11 +36,10 @@ class Sample { /// The author of the sample. Typically "Flutter" final String? author; - /// Screenshots of the sample or cookbook article. At least 1 screenshot is - /// required. + /// Screenshots of the sample. At least 1 screenshot is required. final List screenshots; - /// A link to the source code or cookbook article if type is 'cookbook'. + /// A link to the source code. final String source; /// A link to this sample running in the browser. @@ -69,7 +68,7 @@ class Sample { final List platforms; /// The type of the sample. Supported values are either 'sample' or - /// 'cookbook'. + /// 'demo'. final String type; /// The date this sample was created. diff --git a/web/samples_index/lib/src/templates.dart b/web/samples_index/lib/src/templates.dart index 5d8c98ece..1e3c22d02 100644 --- a/web/samples_index/lib/src/templates.dart +++ b/web/samples_index/lib/src/templates.dart @@ -110,12 +110,6 @@ String _indexBody(List samples) => ''' Sample -
-
- - Cookbook - -
@@ -205,11 +199,6 @@ String _descriptionButtons(Sample sample) { Source Code '''); } - - if (sample.type == 'cookbook') { - buf.write( - ''''''); - } return buf.toString(); } diff --git a/web/samples_index/pubspec.yaml b/web/samples_index/pubspec.yaml index 22c276ca9..bd8eab50d 100644 --- a/web/samples_index/pubspec.yaml +++ b/web/samples_index/pubspec.yaml @@ -1,30 +1,29 @@ name: samples_index -description: A visual index of Flutter samples +description: A visual index of Flutter samples. homepage: https://github.com/flutter/samples/tree/main/web/samples_index version: 0.0.1 +publish_to: none environment: sdk: ^3.2.0 dependencies: + checked_yaml: ^2.0.3 json_annotation: ^4.8.1 - path: ^1.8.3 - yaml: ^3.1.2 mdc_web: ^0.6.0 + path: ^1.8.3 sass_builder: ^2.2.1 - checked_yaml: ^2.0.3 - webdriver: ^3.0.2 - html: ^0.15.3 + yaml: ^3.1.2 dev_dependencies: - grinder: ^0.9.4 - flutter_lints: ">=2.0.1 <4.0.0" - test: ^1.24.2 - json_serializable: ^6.6.2 build: ^2.4.0 build_runner: ^2.4.2 build_web_compilers: ^4.0.3 - image: ">=3.2.0 <5.0.0" + grinder: ^0.9.4 + image: ^4.1.3 + json_serializable: ^6.6.2 + lints: ^3.0.0 + test: ^1.24.2 # package:mdc_web needs to upgrade the version of material-components-web 12.0.0 # or above, which includes this fix for the division operator: diff --git a/web/samples_index/test/samples_index_test.dart b/web/samples_index/test/samples_index_test.dart index 1935a88c9..e7eda6779 100644 --- a/web/samples_index/test/samples_index_test.dart +++ b/web/samples_index/test/samples_index_test.dart @@ -122,8 +122,8 @@ void main() { // Test if queries match by type expect(matchesQuery('type:sample', attributes), true); - expect(matchesQuery('type:cookbook', attributes), false); - expect(matchesQuery('kittens type:cookbook', attributes), false); + expect(matchesQuery('type:demo', attributes), false); + expect(matchesQuery('kittens type:demo', attributes), false); }); }); @@ -134,7 +134,7 @@ void main() { expect(parseHash('#?search=kittens&platform=web'), containsPair('platform', 'web')); expect(parseHash('#?type=sample'), containsPair('type', 'sample')); - expect(parseHash('#?type=cookbook'), containsPair('type', 'cookbook')); + expect(parseHash('#?type=demo'), containsPair('type', 'demo')); }); test('can be set', () { diff --git a/web/samples_index/test/yaml/bad.yaml b/web/samples_index/test/yaml/bad.yaml index fe6e79638..f40769e08 100644 --- a/web/samples_index/test/yaml/bad.yaml +++ b/web/samples_index/test/yaml/bad.yaml @@ -22,6 +22,6 @@ samples: href: https://apps.apple.com/us/app/neko-atsume-kitty-collector/id923917775 - text: author href: http://jpryan.me - type: sample # sample, app, or cookbook + type: sample # sample or app date: 2019-12-15T02:59:43.1Z channel: stable diff --git a/web/samples_index/test/yaml/single.yaml b/web/samples_index/test/yaml/single.yaml index 5f762b32b..ad298dd6b 100644 --- a/web/samples_index/test/yaml/single.yaml +++ b/web/samples_index/test/yaml/single.yaml @@ -16,6 +16,6 @@ samples: - path tags: ['beginner', 'kittens', 'cats'] platforms: ['web', 'ios', 'android'] - type: sample # sample, app, or cookbook + type: sample # sample or app date: 2019-12-15T02:59:43.1Z channel: stable diff --git a/web/samples_index/tool/grind.dart b/web/samples_index/tool/grind.dart index 30c828727..db585ae61 100644 --- a/web/samples_index/tool/grind.dart +++ b/web/samples_index/tool/grind.dart @@ -2,13 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file -import 'dart:convert'; import 'dart:io'; import 'package:grinder/grinder.dart'; import 'package:image/image.dart' as image; import 'package:path/path.dart' as path; -import 'package:samples_index/cookbook.dart'; import 'package:samples_index/samples_index.dart'; import 'package:samples_index/src/templates.dart' as templates; @@ -60,36 +58,9 @@ Future generate() async { log('Generated index for ${samples.length} samples.'); } -@Task('Scrape the cookbook for images and descriptions') -Future scrapeCookbook() async { - var driver = await Process.start( - 'chromedriver', ['--port=4444', '--url-base=wd/hub', '--verbose']); - await driver.stdout.pipe(stdout); - await driver.stderr.pipe(stderr); - var scraper = CookbookScraper(); - await scraper.init(); - var links = await scraper.fetchCookbookLinks(); - log('Scraping ${links.length} cookbook articles'); - var allSamples = []; - for (final link in links) { - allSamples.add(await scraper.getMetadata(link)); - await scraper.takeScreenshot(link); - } - var file = File('lib/src/cookbook.json'); - await file.create(); - var encoder = const JsonEncoder.withIndent('\t'); - await file.writeAsString(encoder.convert(Index(allSamples))); - await scraper.dispose(); - var killed = driver.kill(); - if (!killed) { - log('failed to kill chromedriver process'); - } -} - @Task('creates thumbnail images in web/images') Future createThumbnails() async { await _createThumbnails(Directory('web/images')); - await _createThumbnails(Directory('web/images/cookbook')); } // Creates a thumbnail image for each png file diff --git a/web/samples_index/web/images/cookbook/animated-container.png b/web/samples_index/web/images/cookbook/animated-container.png deleted file mode 100644 index 7366eda86..000000000 Binary files a/web/samples_index/web/images/cookbook/animated-container.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/animation-animated-container.png b/web/samples_index/web/images/cookbook/animation-animated-container.png deleted file mode 100644 index cdc66a75e..000000000 Binary files a/web/samples_index/web/images/cookbook/animation-animated-container.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/animation-opacity-animation.png b/web/samples_index/web/images/cookbook/animation-opacity-animation.png deleted file mode 100644 index b39080e04..000000000 Binary files a/web/samples_index/web/images/cookbook/animation-opacity-animation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/animation-page-route-animation.png b/web/samples_index/web/images/cookbook/animation-page-route-animation.png deleted file mode 100644 index 29188d36c..000000000 Binary files a/web/samples_index/web/images/cookbook/animation-page-route-animation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/animation-physics-simulation.png b/web/samples_index/web/images/cookbook/animation-physics-simulation.png deleted file mode 100644 index 725aa624d..000000000 Binary files a/web/samples_index/web/images/cookbook/animation-physics-simulation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/authenticated-requests.png b/web/samples_index/web/images/cookbook/authenticated-requests.png deleted file mode 100644 index e25452354..000000000 Binary files a/web/samples_index/web/images/cookbook/authenticated-requests.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/background-parsing.png b/web/samples_index/web/images/cookbook/background-parsing.png deleted file mode 100644 index cfcc8d1c4..000000000 Binary files a/web/samples_index/web/images/cookbook/background-parsing.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/basic-list.png b/web/samples_index/web/images/cookbook/basic-list.png deleted file mode 100644 index a040ec17c..000000000 Binary files a/web/samples_index/web/images/cookbook/basic-list.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/cached-images.png b/web/samples_index/web/images/cookbook/cached-images.png deleted file mode 100644 index 0da8cc0f2..000000000 Binary files a/web/samples_index/web/images/cookbook/cached-images.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/design-drawer.png b/web/samples_index/web/images/cookbook/design-drawer.png deleted file mode 100644 index c39bffdac..000000000 Binary files a/web/samples_index/web/images/cookbook/design-drawer.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/design-fonts.png b/web/samples_index/web/images/cookbook/design-fonts.png deleted file mode 100644 index 0aaf4660e..000000000 Binary files a/web/samples_index/web/images/cookbook/design-fonts.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/design-orientation.png b/web/samples_index/web/images/cookbook/design-orientation.png deleted file mode 100644 index cdcd7986b..000000000 Binary files a/web/samples_index/web/images/cookbook/design-orientation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/design-package-fonts.png b/web/samples_index/web/images/cookbook/design-package-fonts.png deleted file mode 100644 index e300b6645..000000000 Binary files a/web/samples_index/web/images/cookbook/design-package-fonts.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/design-snackbars.png b/web/samples_index/web/images/cookbook/design-snackbars.png deleted file mode 100644 index 5ac9a21ce..000000000 Binary files a/web/samples_index/web/images/cookbook/design-snackbars.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/design-tabs.png b/web/samples_index/web/images/cookbook/design-tabs.png deleted file mode 100644 index fbb28ab3b..000000000 Binary files a/web/samples_index/web/images/cookbook/design-tabs.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/design-themes.png b/web/samples_index/web/images/cookbook/design-themes.png deleted file mode 100644 index 0cdda433d..000000000 Binary files a/web/samples_index/web/images/cookbook/design-themes.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/dismissible.png b/web/samples_index/web/images/cookbook/dismissible.png deleted file mode 100644 index 4a29d1574..000000000 Binary files a/web/samples_index/web/images/cookbook/dismissible.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/drawer.png b/web/samples_index/web/images/cookbook/drawer.png deleted file mode 100644 index f818db8b7..000000000 Binary files a/web/samples_index/web/images/cookbook/drawer.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/error-reporting.png b/web/samples_index/web/images/cookbook/error-reporting.png deleted file mode 100644 index 5ffba418c..000000000 Binary files a/web/samples_index/web/images/cookbook/error-reporting.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/fading-in-images.png b/web/samples_index/web/images/cookbook/fading-in-images.png deleted file mode 100644 index 1854dceab..000000000 Binary files a/web/samples_index/web/images/cookbook/fading-in-images.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/fetch-data.png b/web/samples_index/web/images/cookbook/fetch-data.png deleted file mode 100644 index 727f77668..000000000 Binary files a/web/samples_index/web/images/cookbook/fetch-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/finders.png b/web/samples_index/web/images/cookbook/finders.png deleted file mode 100644 index f03bab65e..000000000 Binary files a/web/samples_index/web/images/cookbook/finders.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/floating-app-bar.png b/web/samples_index/web/images/cookbook/floating-app-bar.png deleted file mode 100644 index d1f0eccf0..000000000 Binary files a/web/samples_index/web/images/cookbook/floating-app-bar.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/focus.png b/web/samples_index/web/images/cookbook/focus.png deleted file mode 100644 index 02710ba8b..000000000 Binary files a/web/samples_index/web/images/cookbook/focus.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/fonts.png b/web/samples_index/web/images/cookbook/fonts.png deleted file mode 100644 index 76c3ccf1c..000000000 Binary files a/web/samples_index/web/images/cookbook/fonts.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/forms-focus.png b/web/samples_index/web/images/cookbook/forms-focus.png deleted file mode 100644 index 1d0b0875d..000000000 Binary files a/web/samples_index/web/images/cookbook/forms-focus.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/forms-retrieve-input.png b/web/samples_index/web/images/cookbook/forms-retrieve-input.png deleted file mode 100644 index 260fb6c06..000000000 Binary files a/web/samples_index/web/images/cookbook/forms-retrieve-input.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/forms-text-field-changes.png b/web/samples_index/web/images/cookbook/forms-text-field-changes.png deleted file mode 100644 index e85d73390..000000000 Binary files a/web/samples_index/web/images/cookbook/forms-text-field-changes.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/forms-text-input.png b/web/samples_index/web/images/cookbook/forms-text-input.png deleted file mode 100644 index 9c79c0e21..000000000 Binary files a/web/samples_index/web/images/cookbook/forms-text-input.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/forms-validation.png b/web/samples_index/web/images/cookbook/forms-validation.png deleted file mode 100644 index 8a384a3e5..000000000 Binary files a/web/samples_index/web/images/cookbook/forms-validation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/gestures-dismissible.png b/web/samples_index/web/images/cookbook/gestures-dismissible.png deleted file mode 100644 index bf0e74a2b..000000000 Binary files a/web/samples_index/web/images/cookbook/gestures-dismissible.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/gestures-handling-taps.png b/web/samples_index/web/images/cookbook/gestures-handling-taps.png deleted file mode 100644 index 1a5165cbe..000000000 Binary files a/web/samples_index/web/images/cookbook/gestures-handling-taps.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/gestures-ripples.png b/web/samples_index/web/images/cookbook/gestures-ripples.png deleted file mode 100644 index db9265b11..000000000 Binary files a/web/samples_index/web/images/cookbook/gestures-ripples.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/grid-lists.png b/web/samples_index/web/images/cookbook/grid-lists.png deleted file mode 100644 index c954c3e08..000000000 Binary files a/web/samples_index/web/images/cookbook/grid-lists.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/handling-taps.png b/web/samples_index/web/images/cookbook/handling-taps.png deleted file mode 100644 index d1e15486c..000000000 Binary files a/web/samples_index/web/images/cookbook/handling-taps.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/hero-animations.png b/web/samples_index/web/images/cookbook/hero-animations.png deleted file mode 100644 index 681ef2af9..000000000 Binary files a/web/samples_index/web/images/cookbook/hero-animations.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/horizontal-list.png b/web/samples_index/web/images/cookbook/horizontal-list.png deleted file mode 100644 index b1bb0a722..000000000 Binary files a/web/samples_index/web/images/cookbook/horizontal-list.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/images-cached-images.png b/web/samples_index/web/images/cookbook/images-cached-images.png deleted file mode 100644 index c3334ae39..000000000 Binary files a/web/samples_index/web/images/cookbook/images-cached-images.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/images-fading-in-images.png b/web/samples_index/web/images/cookbook/images-fading-in-images.png deleted file mode 100644 index 577e59378..000000000 Binary files a/web/samples_index/web/images/cookbook/images-fading-in-images.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/images-network-image.png b/web/samples_index/web/images/cookbook/images-network-image.png deleted file mode 100644 index 9757c84f2..000000000 Binary files a/web/samples_index/web/images/cookbook/images-network-image.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/integration-introduction.png b/web/samples_index/web/images/cookbook/integration-introduction.png deleted file mode 100644 index fecce1f25..000000000 Binary files a/web/samples_index/web/images/cookbook/integration-introduction.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/integration-profiling.png b/web/samples_index/web/images/cookbook/integration-profiling.png deleted file mode 100644 index da94a63ac..000000000 Binary files a/web/samples_index/web/images/cookbook/integration-profiling.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/integration-scrolling.png b/web/samples_index/web/images/cookbook/integration-scrolling.png deleted file mode 100644 index 5493b3576..000000000 Binary files a/web/samples_index/web/images/cookbook/integration-scrolling.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/introduction.png b/web/samples_index/web/images/cookbook/introduction.png deleted file mode 100644 index 05e72bd03..000000000 Binary files a/web/samples_index/web/images/cookbook/introduction.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/key-value.png b/web/samples_index/web/images/cookbook/key-value.png deleted file mode 100644 index d9c654e74..000000000 Binary files a/web/samples_index/web/images/cookbook/key-value.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/lists-basic-list.png b/web/samples_index/web/images/cookbook/lists-basic-list.png deleted file mode 100644 index 13b703efd..000000000 Binary files a/web/samples_index/web/images/cookbook/lists-basic-list.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/lists-floating-app-bar.png b/web/samples_index/web/images/cookbook/lists-floating-app-bar.png deleted file mode 100644 index f16f1766c..000000000 Binary files a/web/samples_index/web/images/cookbook/lists-floating-app-bar.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/lists-grid-lists.png b/web/samples_index/web/images/cookbook/lists-grid-lists.png deleted file mode 100644 index 4a125e35b..000000000 Binary files a/web/samples_index/web/images/cookbook/lists-grid-lists.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/lists-horizontal-list.png b/web/samples_index/web/images/cookbook/lists-horizontal-list.png deleted file mode 100644 index 383dc756a..000000000 Binary files a/web/samples_index/web/images/cookbook/lists-horizontal-list.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/lists-long-lists.png b/web/samples_index/web/images/cookbook/lists-long-lists.png deleted file mode 100644 index 87880291a..000000000 Binary files a/web/samples_index/web/images/cookbook/lists-long-lists.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/lists-mixed-list.png b/web/samples_index/web/images/cookbook/lists-mixed-list.png deleted file mode 100644 index 28959f56b..000000000 Binary files a/web/samples_index/web/images/cookbook/lists-mixed-list.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/long-lists.png b/web/samples_index/web/images/cookbook/long-lists.png deleted file mode 100644 index b152090ba..000000000 Binary files a/web/samples_index/web/images/cookbook/long-lists.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/maintenance-error-reporting.png b/web/samples_index/web/images/cookbook/maintenance-error-reporting.png deleted file mode 100644 index d8a4bcf3f..000000000 Binary files a/web/samples_index/web/images/cookbook/maintenance-error-reporting.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/mixed-list.png b/web/samples_index/web/images/cookbook/mixed-list.png deleted file mode 100644 index 1ca23b3ee..000000000 Binary files a/web/samples_index/web/images/cookbook/mixed-list.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/mocking.png b/web/samples_index/web/images/cookbook/mocking.png deleted file mode 100644 index 8c680aa8f..000000000 Binary files a/web/samples_index/web/images/cookbook/mocking.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/named-routes.png b/web/samples_index/web/images/cookbook/named-routes.png deleted file mode 100644 index 36bc5cd4b..000000000 Binary files a/web/samples_index/web/images/cookbook/named-routes.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigate-with-arguments.png b/web/samples_index/web/images/cookbook/navigate-with-arguments.png deleted file mode 100644 index 036521382..000000000 Binary files a/web/samples_index/web/images/cookbook/navigate-with-arguments.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigation-basics.png b/web/samples_index/web/images/cookbook/navigation-basics.png deleted file mode 100644 index c3bf151df..000000000 Binary files a/web/samples_index/web/images/cookbook/navigation-basics.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigation-hero-animations.png b/web/samples_index/web/images/cookbook/navigation-hero-animations.png deleted file mode 100644 index 0a7e83494..000000000 Binary files a/web/samples_index/web/images/cookbook/navigation-hero-animations.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigation-named-routes.png b/web/samples_index/web/images/cookbook/navigation-named-routes.png deleted file mode 100644 index 22bf779fc..000000000 Binary files a/web/samples_index/web/images/cookbook/navigation-named-routes.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigation-navigate-with-arguments.png b/web/samples_index/web/images/cookbook/navigation-navigate-with-arguments.png deleted file mode 100644 index e935d643b..000000000 Binary files a/web/samples_index/web/images/cookbook/navigation-navigate-with-arguments.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigation-navigation-basics.png b/web/samples_index/web/images/cookbook/navigation-navigation-basics.png deleted file mode 100644 index b4de1845b..000000000 Binary files a/web/samples_index/web/images/cookbook/navigation-navigation-basics.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigation-passing-data.png b/web/samples_index/web/images/cookbook/navigation-passing-data.png deleted file mode 100644 index 8b80b692f..000000000 Binary files a/web/samples_index/web/images/cookbook/navigation-passing-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/navigation-returning-data.png b/web/samples_index/web/images/cookbook/navigation-returning-data.png deleted file mode 100644 index a005c464e..000000000 Binary files a/web/samples_index/web/images/cookbook/navigation-returning-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/network-image.png b/web/samples_index/web/images/cookbook/network-image.png deleted file mode 100644 index b66adb2f5..000000000 Binary files a/web/samples_index/web/images/cookbook/network-image.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/networking-authenticated-requests.png b/web/samples_index/web/images/cookbook/networking-authenticated-requests.png deleted file mode 100644 index 68a69156c..000000000 Binary files a/web/samples_index/web/images/cookbook/networking-authenticated-requests.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/networking-background-parsing.png b/web/samples_index/web/images/cookbook/networking-background-parsing.png deleted file mode 100644 index f2352ed42..000000000 Binary files a/web/samples_index/web/images/cookbook/networking-background-parsing.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/networking-delete-data.png b/web/samples_index/web/images/cookbook/networking-delete-data.png deleted file mode 100644 index 40596e48b..000000000 Binary files a/web/samples_index/web/images/cookbook/networking-delete-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/networking-fetch-data.png b/web/samples_index/web/images/cookbook/networking-fetch-data.png deleted file mode 100644 index cfab777de..000000000 Binary files a/web/samples_index/web/images/cookbook/networking-fetch-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/networking-send-data.png b/web/samples_index/web/images/cookbook/networking-send-data.png deleted file mode 100644 index 315150f5e..000000000 Binary files a/web/samples_index/web/images/cookbook/networking-send-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/networking-update-data.png b/web/samples_index/web/images/cookbook/networking-update-data.png deleted file mode 100644 index 7d099cf46..000000000 Binary files a/web/samples_index/web/images/cookbook/networking-update-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/networking-web-sockets.png b/web/samples_index/web/images/cookbook/networking-web-sockets.png deleted file mode 100644 index 39490fb76..000000000 Binary files a/web/samples_index/web/images/cookbook/networking-web-sockets.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/opacity-animation.png b/web/samples_index/web/images/cookbook/opacity-animation.png deleted file mode 100644 index 8d3e5ef67..000000000 Binary files a/web/samples_index/web/images/cookbook/opacity-animation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/orientation.png b/web/samples_index/web/images/cookbook/orientation.png deleted file mode 100644 index 6aa464e13..000000000 Binary files a/web/samples_index/web/images/cookbook/orientation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/package-fonts.png b/web/samples_index/web/images/cookbook/package-fonts.png deleted file mode 100644 index c0143f526..000000000 Binary files a/web/samples_index/web/images/cookbook/package-fonts.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/page-route-animation.png b/web/samples_index/web/images/cookbook/page-route-animation.png deleted file mode 100644 index cc7524387..000000000 Binary files a/web/samples_index/web/images/cookbook/page-route-animation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/passing-data.png b/web/samples_index/web/images/cookbook/passing-data.png deleted file mode 100644 index f4e049f18..000000000 Binary files a/web/samples_index/web/images/cookbook/passing-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/persistence-key-value.png b/web/samples_index/web/images/cookbook/persistence-key-value.png deleted file mode 100644 index 38b771751..000000000 Binary files a/web/samples_index/web/images/cookbook/persistence-key-value.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/persistence-reading-writing-files.png b/web/samples_index/web/images/cookbook/persistence-reading-writing-files.png deleted file mode 100644 index 0b6743dd0..000000000 Binary files a/web/samples_index/web/images/cookbook/persistence-reading-writing-files.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/persistence-sqlite.png b/web/samples_index/web/images/cookbook/persistence-sqlite.png deleted file mode 100644 index 3437e2b0b..000000000 Binary files a/web/samples_index/web/images/cookbook/persistence-sqlite.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/physics-simulation.png b/web/samples_index/web/images/cookbook/physics-simulation.png deleted file mode 100644 index 487ce6e44..000000000 Binary files a/web/samples_index/web/images/cookbook/physics-simulation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/picture-using-camera.png b/web/samples_index/web/images/cookbook/picture-using-camera.png deleted file mode 100644 index 0b8736cca..000000000 Binary files a/web/samples_index/web/images/cookbook/picture-using-camera.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/play-video.png b/web/samples_index/web/images/cookbook/play-video.png deleted file mode 100644 index f06f3fda4..000000000 Binary files a/web/samples_index/web/images/cookbook/play-video.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/plugins-picture-using-camera.png b/web/samples_index/web/images/cookbook/plugins-picture-using-camera.png deleted file mode 100644 index cf7696dbf..000000000 Binary files a/web/samples_index/web/images/cookbook/plugins-picture-using-camera.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/plugins-play-video.png b/web/samples_index/web/images/cookbook/plugins-play-video.png deleted file mode 100644 index 936d11e51..000000000 Binary files a/web/samples_index/web/images/cookbook/plugins-play-video.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/profiling.png b/web/samples_index/web/images/cookbook/profiling.png deleted file mode 100644 index b8367660c..000000000 Binary files a/web/samples_index/web/images/cookbook/profiling.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/reading-writing-files.png b/web/samples_index/web/images/cookbook/reading-writing-files.png deleted file mode 100644 index 7a51105ca..000000000 Binary files a/web/samples_index/web/images/cookbook/reading-writing-files.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/retrieve-input.png b/web/samples_index/web/images/cookbook/retrieve-input.png deleted file mode 100644 index 1aac5df42..000000000 Binary files a/web/samples_index/web/images/cookbook/retrieve-input.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/returning-data.png b/web/samples_index/web/images/cookbook/returning-data.png deleted file mode 100644 index 44b3f9e87..000000000 Binary files a/web/samples_index/web/images/cookbook/returning-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/ripples.png b/web/samples_index/web/images/cookbook/ripples.png deleted file mode 100644 index bd503ce64..000000000 Binary files a/web/samples_index/web/images/cookbook/ripples.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/scrolling.png b/web/samples_index/web/images/cookbook/scrolling.png deleted file mode 100644 index b77d09e52..000000000 Binary files a/web/samples_index/web/images/cookbook/scrolling.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/send-data.png b/web/samples_index/web/images/cookbook/send-data.png deleted file mode 100644 index 219594132..000000000 Binary files a/web/samples_index/web/images/cookbook/send-data.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/snackbars.png b/web/samples_index/web/images/cookbook/snackbars.png deleted file mode 100644 index 10874a6db..000000000 Binary files a/web/samples_index/web/images/cookbook/snackbars.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/sqlite.png b/web/samples_index/web/images/cookbook/sqlite.png deleted file mode 100644 index 8baf804e2..000000000 Binary files a/web/samples_index/web/images/cookbook/sqlite.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/tabs.png b/web/samples_index/web/images/cookbook/tabs.png deleted file mode 100644 index 816a0d168..000000000 Binary files a/web/samples_index/web/images/cookbook/tabs.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/tap-drag.png b/web/samples_index/web/images/cookbook/tap-drag.png deleted file mode 100644 index 959afb84d..000000000 Binary files a/web/samples_index/web/images/cookbook/tap-drag.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/text-field-changes.png b/web/samples_index/web/images/cookbook/text-field-changes.png deleted file mode 100644 index af8d60914..000000000 Binary files a/web/samples_index/web/images/cookbook/text-field-changes.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/text-input.png b/web/samples_index/web/images/cookbook/text-input.png deleted file mode 100644 index e1ff883a5..000000000 Binary files a/web/samples_index/web/images/cookbook/text-input.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/themes.png b/web/samples_index/web/images/cookbook/themes.png deleted file mode 100644 index 21345067b..000000000 Binary files a/web/samples_index/web/images/cookbook/themes.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/unit-introduction.png b/web/samples_index/web/images/cookbook/unit-introduction.png deleted file mode 100644 index 0d2ee7b55..000000000 Binary files a/web/samples_index/web/images/cookbook/unit-introduction.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/unit-mocking.png b/web/samples_index/web/images/cookbook/unit-mocking.png deleted file mode 100644 index f94e1aa85..000000000 Binary files a/web/samples_index/web/images/cookbook/unit-mocking.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/validation.png b/web/samples_index/web/images/cookbook/validation.png deleted file mode 100644 index 7f0d6bea6..000000000 Binary files a/web/samples_index/web/images/cookbook/validation.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/web-sockets.png b/web/samples_index/web/images/cookbook/web-sockets.png deleted file mode 100644 index f8b2d7a64..000000000 Binary files a/web/samples_index/web/images/cookbook/web-sockets.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/widget-finders.png b/web/samples_index/web/images/cookbook/widget-finders.png deleted file mode 100644 index 32c9e06af..000000000 Binary files a/web/samples_index/web/images/cookbook/widget-finders.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/widget-introduction.png b/web/samples_index/web/images/cookbook/widget-introduction.png deleted file mode 100644 index 6b7c8e0e0..000000000 Binary files a/web/samples_index/web/images/cookbook/widget-introduction.png and /dev/null differ diff --git a/web/samples_index/web/images/cookbook/widget-tap-drag.png b/web/samples_index/web/images/cookbook/widget-tap-drag.png deleted file mode 100644 index 41fc1ff24..000000000 Binary files a/web/samples_index/web/images/cookbook/widget-tap-drag.png and /dev/null differ diff --git a/web/samples_index/web/main.dart b/web/samples_index/web/main.dart index 318143b24..445483724 100644 --- a/web/samples_index/web/main.dart +++ b/web/samples_index/web/main.dart @@ -93,9 +93,6 @@ void setSelectedChips() { if (type == 'sample') { chipSet.chips[1].selected = true; } - if (type == 'cookbook') { - chipSet.chips[2].selected = true; - } } // Apply the platform from the hash in the URL @@ -103,7 +100,7 @@ void setSelectedChips() { queryParams.containsKey(platformKey) ? queryParams[platformKey] : ''; if (platform!.isNotEmpty) { if (platform == 'web') { - chipSet.chips[3].selected = true; + chipSet.chips[2].selected = true; } } if (platform.isEmpty && type.isEmpty) { @@ -147,16 +144,8 @@ void filterCards() { } } -Map paramsForChip(int index) { - switch (index) { - case 1: - return {typeKey: 'sample'}; - case 2: - return {typeKey: 'cookbook'}; - case 3: - return {platformKey: 'web'}; - case 0: - default: - return {}; - } -} +Map paramsForChip(int index) => switch (index) { + 1 => {typeKey: 'sample'}, + 2 => {platformKey: 'web'}, + _ => {} + };