diff --git a/packages/pinball_components/sandbox/.github/PULL_REQUEST_TEMPLATE.md b/packages/pinball_components/sandbox/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..6b9372ef --- /dev/null +++ b/packages/pinball_components/sandbox/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,23 @@ + + +## Description + + + +## Type of Change + + + +- [ ] ✨ New feature (non-breaking change which adds functionality) +- [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue) +- [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change) +- [ ] 🧹 Code refactor +- [ ] βœ… Build configuration change +- [ ] πŸ“ Documentation +- [ ] πŸ—‘οΈ Chore diff --git a/packages/pinball_components/sandbox/.github/workflows/main.yaml b/packages/pinball_components/sandbox/.github/workflows/main.yaml new file mode 100644 index 00000000..553a0091 --- /dev/null +++ b/packages/pinball_components/sandbox/.github/workflows/main.yaml @@ -0,0 +1,10 @@ +name: sandbox + +on: [pull_request, push] + +jobs: + build: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 + with: + flutter_channel: stable + flutter_version: 2.10.0 diff --git a/packages/pinball_components/sandbox/.gitignore b/packages/pinball_components/sandbox/.gitignore new file mode 100644 index 00000000..bd315f72 --- /dev/null +++ b/packages/pinball_components/sandbox/.gitignore @@ -0,0 +1,127 @@ +# Miscellaneous +*.class +*.lock +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/* + +# Visual Studio Code related +.classpath +.project +.settings/ +.vscode/* + +# Flutter repo-specific +/bin/cache/ +/bin/mingit/ +/dev/benchmarks/mega_gallery/ +/dev/bots/.recipe_deps +/dev/bots/android_tools/ +/dev/docs/doc/ +/dev/docs/flutter.docs.zip +/dev/docs/lib/ +/dev/docs/pubspec.yaml +/dev/integration_tests/**/xcuserdata +/dev/integration_tests/**/Pods +/packages/flutter/coverage/ +version + +# packages file containing multi-root paths +.packages.generated + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ +flutter_*.png +linked_*.ds +unlinked.ds +unlinked_spec.ds +.fvm/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java +**/android/key.properties +**/android/.idea/ +*.jks + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/.last_build_id +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Coverage +coverage/ + +# Submodules +!pubspec.lock +packages/**/pubspec.lock + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Exceptions to the above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +!/dev/ci/**/Gemfile.lock +!.vscode/extensions.json +!.vscode/launch.json +!.idea/codeStyles/ +!.idea/dictionaries/ +!.idea/runConfigurations/ diff --git a/packages/pinball_components/sandbox/.metadata b/packages/pinball_components/sandbox/.metadata new file mode 100644 index 00000000..cd984dd0 --- /dev/null +++ b/packages/pinball_components/sandbox/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 9b2d32b605630f28625709ebd9d78ab3016b2bf6 + channel: stable + +project_type: app diff --git a/packages/pinball_components/sandbox/LICENSE b/packages/pinball_components/sandbox/LICENSE new file mode 100644 index 00000000..7b93245a --- /dev/null +++ b/packages/pinball_components/sandbox/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Very Good Ventures + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/packages/pinball_components/sandbox/README.md b/packages/pinball_components/sandbox/README.md new file mode 100644 index 00000000..08509a8b --- /dev/null +++ b/packages/pinball_components/sandbox/README.md @@ -0,0 +1,164 @@ +# Sandbox + +![coverage][coverage_badge] +[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] +[![License: MIT][license_badge]][license_link] + +Generated by the [Very Good CLI][very_good_cli_link] πŸ€– + +A sanbox application where components are showcased and developed in an isolated way + +--- + +## Getting Started πŸš€ + +This project contains 3 flavors: + +- development +- staging +- production + +To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands: + +```sh +# Development +$ flutter run --flavor development --target lib/main_development.dart + +# Staging +$ flutter run --flavor staging --target lib/main_staging.dart + +# Production +$ flutter run --flavor production --target lib/main_production.dart +``` + +_\*Sandbox works on iOS, Android, Web, and Windows._ + +--- + +## Running Tests πŸ§ͺ + +To run all unit and widget tests use the following command: + +```sh +$ flutter test --coverage --test-randomize-ordering-seed random +``` + +To view the generated coverage report you can use [lcov](https://github.com/linux-test-project/lcov). + +```sh +# Generate Coverage Report +$ genhtml coverage/lcov.info -o coverage/ + +# Open Coverage Report +$ open coverage/index.html +``` + +--- + +## Working with Translations 🌐 + +This project relies on [flutter_localizations][flutter_localizations_link] and follows the [official internationalization guide for Flutter][internationalization_link]. + +### Adding Strings + +1. To add a new localizable string, open the `app_en.arb` file at `lib/l10n/arb/app_en.arb`. + +```arb +{ + "@@locale": "en", + "counterAppBarTitle": "Counter", + "@counterAppBarTitle": { + "description": "Text shown in the AppBar of the Counter Page" + } +} +``` + +2. Then add a new key/value and description + +```arb +{ + "@@locale": "en", + "counterAppBarTitle": "Counter", + "@counterAppBarTitle": { + "description": "Text shown in the AppBar of the Counter Page" + }, + "helloWorld": "Hello World", + "@helloWorld": { + "description": "Hello World Text" + } +} +``` + +3. Use the new string + +```dart +import 'package:sandbox/l10n/l10n.dart'; + +@override +Widget build(BuildContext context) { + final l10n = context.l10n; + return Text(l10n.helloWorld); +} +``` + +### Adding Supported Locales + +Update the `CFBundleLocalizations` array in the `Info.plist` at `ios/Runner/Info.plist` to include the new locale. + +```xml + ... + + CFBundleLocalizations + + en + es + + + ... +``` + +### Adding Translations + +1. For each supported locale, add a new ARB file in `lib/l10n/arb`. + +``` +β”œβ”€β”€ l10n +β”‚ β”œβ”€β”€ arb +β”‚ β”‚ β”œβ”€β”€ app_en.arb +β”‚ β”‚ └── app_es.arb +``` + +2. Add the translated strings to each `.arb` file: + +`app_en.arb` + +```arb +{ + "@@locale": "en", + "counterAppBarTitle": "Counter", + "@counterAppBarTitle": { + "description": "Text shown in the AppBar of the Counter Page" + } +} +``` + +`app_es.arb` + +```arb +{ + "@@locale": "es", + "counterAppBarTitle": "Contador", + "@counterAppBarTitle": { + "description": "Texto mostrado en la AppBar de la pΓ‘gina del contador" + } +} +``` + +[coverage_badge]: coverage_badge.svg +[flutter_localizations_link]: https://api.flutter.dev/flutter/flutter_localizations/flutter_localizations-library.html +[internationalization_link]: https://flutter.dev/docs/development/accessibility-and-localization/internationalization +[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg +[license_link]: https://opensource.org/licenses/MIT +[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg +[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis +[very_good_cli_link]: https://github.com/VeryGoodOpenSource/very_good_cli diff --git a/packages/pinball_components/sandbox/analysis_options.yaml b/packages/pinball_components/sandbox/analysis_options.yaml new file mode 100644 index 00000000..07aa1dab --- /dev/null +++ b/packages/pinball_components/sandbox/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:very_good_analysis/analysis_options.2.4.0.yaml +linter: + rules: + public_member_api_docs: false diff --git a/packages/pinball_components/sandbox/coverage_badge.svg b/packages/pinball_components/sandbox/coverage_badge.svg new file mode 100644 index 00000000..88bfadfb --- /dev/null +++ b/packages/pinball_components/sandbox/coverage_badge.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + coverage + coverage + 100% + 100% + + \ No newline at end of file diff --git a/packages/pinball_components/sandbox/lib/common/common.dart b/packages/pinball_components/sandbox/lib/common/common.dart new file mode 100644 index 00000000..b7ee5a4a --- /dev/null +++ b/packages/pinball_components/sandbox/lib/common/common.dart @@ -0,0 +1,11 @@ +import 'package:flame_forge2d/flame_forge2d.dart'; + +String buildSourceLink(String path) { + return 'https://github.com/VGVentures/pinball/tree/main/packages/pinball_components/sandbox/lib/stories/$path'; +} + +class BasicGame extends Forge2DGame { + BasicGame() { + images.prefix = ''; + } +} diff --git a/packages/pinball_components/sandbox/lib/main.dart b/packages/pinball_components/sandbox/lib/main.dart new file mode 100644 index 00000000..0cfd6f7f --- /dev/null +++ b/packages/pinball_components/sandbox/lib/main.dart @@ -0,0 +1,16 @@ +// Copyright (c) 2022, Very Good Ventures +// https://verygood.ventures +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. +import 'package:dashbook/dashbook.dart'; +import 'package:flutter/material.dart'; +import 'package:sandbox/stories/stories.dart'; + +void main() { + final dashbook = Dashbook(theme: ThemeData.dark()); + + addBallStories(dashbook); + runApp(dashbook); +} diff --git a/packages/pinball_components/sandbox/lib/stories/ball/ball.dart b/packages/pinball_components/sandbox/lib/stories/ball/ball.dart new file mode 100644 index 00000000..f8e49a57 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/ball/ball.dart @@ -0,0 +1,18 @@ +import 'package:dashbook/dashbook.dart'; +import 'package:flame/game.dart'; +import 'package:flutter/material.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/ball/basic.dart'; + +void addBallStories(Dashbook dashbook) { + dashbook.storiesOf('Ball').add( + 'Basic', + (context) => GameWidget( + game: BasicBallGame( + color: context.colorProperty('color', Colors.blue), + ), + ), + codeLink: buildSourceLink('ball/basic.dart'), + info: BasicBallGame.info, + ); +} diff --git a/packages/pinball_components/sandbox/lib/stories/ball/basic.dart b/packages/pinball_components/sandbox/lib/stories/ball/basic.dart new file mode 100644 index 00000000..78948666 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/ball/basic.dart @@ -0,0 +1,22 @@ +import 'package:flame/input.dart'; +import 'package:flutter/material.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:sandbox/common/common.dart'; + +class BasicBallGame extends BasicGame with TapDetector { + BasicBallGame({ required this.color }); + + static const info = ''' + Basic example of how a Ball works, tap anywhere on the + screen to spawn a ball into the game. +'''; + + final Color color; + + @override + void onTapUp(TapUpInfo info) { + add(Ball(baseColor: color) + ..initialPosition = info.eventPosition.game, + ); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/stories.dart b/packages/pinball_components/sandbox/lib/stories/stories.dart new file mode 100644 index 00000000..6070319c --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/stories.dart @@ -0,0 +1 @@ +export 'ball/ball.dart'; diff --git a/packages/pinball_components/sandbox/pubspec.lock b/packages/pinball_components/sandbox/pubspec.lock new file mode 100644 index 00000000..7452ccf4 --- /dev/null +++ b/packages/pinball_components/sandbox/pubspec.lock @@ -0,0 +1,446 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.0" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.8.2" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + dashbook: + dependency: "direct main" + description: + name: dashbook + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.7" + device_frame: + dependency: transitive + description: + name: device_frame + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" + flame: + dependency: "direct main" + description: + name: flame + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0-releasecandidate.6" + flame_forge2d: + dependency: "direct main" + description: + name: flame_forge2d + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0-releasecandidate.6" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_colorpicker: + dependency: transitive + description: + name: flutter_colorpicker + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + flutter_markdown: + dependency: transitive + description: + name: flutter_markdown + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.9" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + forge2d: + dependency: transitive + description: + name: forge2d + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" + json_annotation: + dependency: transitive + description: + name: json_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "4.4.0" + markdown: + dependency: transitive + description: + name: markdown + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.11" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + ordered_set: + dependency: transitive + description: + name: ordered_set + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.5" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.5" + pinball_components: + dependency: "direct main" + description: + path: ".." + relative: true + source: path + version: "1.0.0+1" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.4" + shared_preferences: + dependency: transitive + description: + name: shared_preferences + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.13" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.11" + shared_preferences_ios: + dependency: transitive + description: + name: shared_preferences_ios + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + shared_preferences_macos: + dependency: transitive + description: + name: shared_preferences_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.8" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + url_launcher: + dependency: transitive + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.20" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.15" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.15" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.5" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + very_good_analysis: + dependency: "direct dev" + description: + name: very_good_analysis + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.0" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.4" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0+1" +sdks: + dart: ">=2.16.0 <3.0.0" + flutter: ">=2.10.0" diff --git a/packages/pinball_components/sandbox/pubspec.yaml b/packages/pinball_components/sandbox/pubspec.yaml new file mode 100644 index 00000000..0c8267a8 --- /dev/null +++ b/packages/pinball_components/sandbox/pubspec.yaml @@ -0,0 +1,24 @@ +name: sandbox +description: A sanbox application where components are showcased and developed in an isolated way +version: 1.0.0+1 +publish_to: none + +environment: + sdk: ">=2.16.0 <3.0.0" + +dependencies: + dashbook: ^0.1.7 + flame: ^1.1.0-releasecandidate.6 + flame_forge2d: ^0.9.0-releasecandidate.6 + flutter: + sdk: flutter + pinball_components: + path: ../ + +dev_dependencies: + flutter_test: + sdk: flutter + very_good_analysis: ^2.4.0 + +flutter: + uses-material-design: true diff --git a/packages/pinball_components/sandbox/web/favicon.png b/packages/pinball_components/sandbox/web/favicon.png new file mode 100644 index 00000000..8aaa46ac Binary files /dev/null and b/packages/pinball_components/sandbox/web/favicon.png differ diff --git a/packages/pinball_components/sandbox/web/icons/Icon-192.png b/packages/pinball_components/sandbox/web/icons/Icon-192.png new file mode 100644 index 00000000..b749bfef Binary files /dev/null and b/packages/pinball_components/sandbox/web/icons/Icon-192.png differ diff --git a/packages/pinball_components/sandbox/web/icons/Icon-512.png b/packages/pinball_components/sandbox/web/icons/Icon-512.png new file mode 100644 index 00000000..88cfd48d Binary files /dev/null and b/packages/pinball_components/sandbox/web/icons/Icon-512.png differ diff --git a/packages/pinball_components/sandbox/web/icons/Icon-maskable-192.png b/packages/pinball_components/sandbox/web/icons/Icon-maskable-192.png new file mode 100644 index 00000000..eb9b4d76 Binary files /dev/null and b/packages/pinball_components/sandbox/web/icons/Icon-maskable-192.png differ diff --git a/packages/pinball_components/sandbox/web/icons/Icon-maskable-512.png b/packages/pinball_components/sandbox/web/icons/Icon-maskable-512.png new file mode 100644 index 00000000..d69c5669 Binary files /dev/null and b/packages/pinball_components/sandbox/web/icons/Icon-maskable-512.png differ diff --git a/packages/pinball_components/sandbox/web/index.html b/packages/pinball_components/sandbox/web/index.html new file mode 100644 index 00000000..55e4c8cc --- /dev/null +++ b/packages/pinball_components/sandbox/web/index.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + sandbox + + + + + + + diff --git a/packages/pinball_components/sandbox/web/manifest.json b/packages/pinball_components/sandbox/web/manifest.json new file mode 100644 index 00000000..8d4dbedf --- /dev/null +++ b/packages/pinball_components/sandbox/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "sandbox", + "short_name": "sandbox", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +}