├── CHANGELOG.md ├── pubspec.yaml ├── LICENSE ├── README.md ├── .metadata ├── .gitignore ├── analysis_options.yaml ├── test └── material_color_names_test.dart ├── lib └── material_color_names.dart └── pubspec.lock /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 1.0.0 2 | 3 | * Initial release. 4 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_color_names 2 | description: "A function to convert a string to a color, including material Colors constants." 3 | homepage: https://github.com/Zverik/material_color_names 4 | version: 1.0.0 5 | 6 | environment: 7 | sdk: '>=2.12.0 <4.0.0' 8 | flutter: '>=1.17.0' 9 | 10 | dependencies: 11 | flutter: 12 | sdk: flutter 13 | 14 | dev_dependencies: 15 | test: ^1.25.15 16 | flutter_lints: ^5.0.0 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2025, Ilya Zverev 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose 4 | with or without fee is hereby granted, provided that the above copyright notice 5 | and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 9 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 11 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 12 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 13 | THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Material Color Names 2 | 3 | A function to convert a string to a color, including material `Colors` constants 4 | and hexadecimal values. Does not do the reverse operation, and is pretty fast. 5 | 6 | Supports inputs like: 7 | 8 | * `"green"` for simple material colors (`Colors.green`). 9 | * `"redAccent.100"` for color shades (`Colors.redAccent.shade100`). 10 | * `"0xff15d6e1"` for hexadecimal colors with an alpha channel (`Color(0xff15d6e1)`). 11 | * `"#34A"` for short hexadecimal colors (`Color(0xFF3344AA)`). 12 | 13 | ## Usage 14 | 15 | ```dart 16 | import 'package:material_color_names/material_color_names.dart'; 17 | 18 | void main() { 19 | print(colorFromString('#feac')); 20 | print(colorFromString('lightBlue.900')); 21 | } 22 | ``` 23 | 24 | The function knows every color from the 25 | [Colors class](https://api.flutter.dev/flutter/material/Colors-class.html). -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: "17025dd88227cd9532c33fa78f5250d548d87e9a" 8 | channel: "stable" 9 | 10 | project_type: package 11 | 12 | # Tracks metadata for the flutter migrate command 13 | migration: 14 | platforms: 15 | - platform: root 16 | create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a 17 | base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a 18 | 19 | # User provided section 20 | 21 | # List of Local paths (relative to this file) that should be 22 | # ignored by the migrate tool. 23 | # 24 | # Files that are not part of the templates will be ignored by default. 25 | unmanaged_files: 26 | - 'lib/material_color_names.dart' 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .build/ 9 | .buildlog/ 10 | .history 11 | .svn/ 12 | .swiftpm/ 13 | migrate_working_dir/ 14 | 15 | # IntelliJ related 16 | *.iml 17 | *.ipr 18 | *.iws 19 | .idea/ 20 | 21 | # The .vscode folder contains launch configuration and tasks you configure in 22 | # VS Code which you may wish to be included in version control, so this line 23 | # is commented out by default. 24 | #.vscode/ 25 | 26 | # Flutter/Dart/Pub related 27 | **/doc/api/ 28 | **/ios/Flutter/.last_build_id 29 | .dart_tool/ 30 | .flutter-plugins 31 | .flutter-plugins-dependencies 32 | .pub-cache/ 33 | .pub/ 34 | /build/ 35 | 36 | # Symbolication related 37 | app.*.symbols 38 | 39 | # Obfuscation related 40 | app.*.map.json 41 | 42 | # Android Studio will place build artifacts here 43 | /android/app/debug 44 | /android/app/profile 45 | /android/app/release 46 | -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | # This file configures the analyzer, which statically analyzes Dart code to 2 | # check for errors, warnings, and lints. 3 | # 4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled 5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be 6 | # invoked from the command line by running `flutter analyze`. 7 | 8 | # The following line activates a set of recommended lints for Flutter apps, 9 | # packages, and plugins designed to encourage good coding practices. 10 | include: package:flutter_lints/flutter.yaml 11 | 12 | linter: 13 | # The lint rules applied to this project can be customized in the 14 | # section below to disable rules from the `package:flutter_lints/flutter.yaml` 15 | # included above or to enable additional rules. A list of all available lints 16 | # and their documentation is published at https://dart.dev/lints. 17 | # 18 | # Instead of disabling a lint rule for the entire project in the 19 | # section below, it can also be suppressed for a single line of code 20 | # or a specific dart file by using the `// ignore: name_of_lint` and 21 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file 22 | # producing the lint. 23 | rules: 24 | # avoid_print: false # Uncomment to disable the `avoid_print` rule 25 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule 26 | 27 | # Additional information about this file can be found at 28 | # https://dart.dev/guides/language/analysis-options 29 | -------------------------------------------------------------------------------- /test/material_color_names_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:material_color_names/material_color_names.dart'; 3 | import 'package:test/test.dart'; 4 | 5 | void main() { 6 | test('Regular colors are decoded', () { 7 | expect(colorFromString('white'), equals(Colors.white)); 8 | expect(colorFromString('Black'), equals(Colors.black)); 9 | expect(colorFromString('black45'), equals(Colors.black45)); 10 | expect(colorFromString(' tRanspArent '), equals(Colors.transparent)); 11 | expect(colorFromString('whit'), isNull); 12 | }); 13 | 14 | test('Material colors', () { 15 | expect(colorFromString('blue'), equals(Colors.blue)); 16 | expect(colorFromString('deepPurple'), equals(Colors.deepPurple)); 17 | expect(colorFromString('blueAccent'), equals(Colors.blueAccent)); 18 | expect(colorFromString('blueGrey'), equals(Colors.blueGrey)); 19 | expect(colorFromString('lIghtgReenaccent '), equals(Colors.lightGreenAccent)); 20 | }); 21 | 22 | test('Shades of material colors', () { 23 | expect(colorFromString('red.50'), equals(Colors.red.shade50)); 24 | expect(colorFromString('yellow.500'), equals(Colors.yellow.shade500)); 25 | expect(colorFromString('grey.900'), equals(Colors.grey.shade900)); 26 | expect(colorFromString('pinkAccent.700'), equals(Colors.pinkAccent.shade700)); 27 | expect(colorFromString('greenAccent.100'), equals(Colors.greenAccent.shade100)); 28 | expect(colorFromString('purple.550'), isNull); 29 | expect(colorFromString('green.light'), isNull); 30 | expect(colorFromString('green.'), isNull); 31 | expect(colorFromString('green.0'), isNull); 32 | }); 33 | 34 | test('Hexadecimal colors', () { 35 | // Color(0xAARRGGBB) 36 | expect(colorFromString('15d2e7'), equals(Color(0xff15d2e7))); 37 | expect(colorFromString('ffffff '), equals(Color(0xffffffff))); 38 | expect(colorFromString('000000'), equals(Color(0xff000000))); 39 | expect(colorFromString('#15d2e7'), equals(Color(0xff15d2e7))); 40 | expect(colorFromString(' #000000'), equals(Color(0xff000000))); 41 | expect(colorFromString('0x15D2E7'), equals(Color(0xff15d2e7))); 42 | expect(colorFromString('0X000000'), equals(Color(0xff000000))); 43 | expect(colorFromString('00000000'), equals(Color(0x00000000))); 44 | }); 45 | 46 | test('Short hexadecimals', () { 47 | expect(colorFromString('#15d'), equals(Color(0xff1155dd))); 48 | expect(colorFromString('#000'), equals(Color(0xff000000))); 49 | expect(colorFromString('#0000'), equals(Color(0x00000000))); 50 | expect(colorFromString('#BACE'), equals(Color(0xbbaaccee))); 51 | }); 52 | 53 | test('Hexadecimals only of length 3, 4, 6 or 8', () { 54 | expect(colorFromString(''), isNull); 55 | expect(colorFromString('12'), isNull); 56 | expect(colorFromString('123'), equals(Color(0xff112233))); 57 | expect(colorFromString('1234'), equals(Color(0x11223344))); 58 | expect(colorFromString('12345'), isNull); 59 | expect(colorFromString('123456'), equals(Color(0xff123456))); 60 | expect(colorFromString('1234567'), isNull); 61 | expect(colorFromString('12345678'), equals(Color(0x12345678))); 62 | expect(colorFromString('123456789'), isNull); 63 | }); 64 | } 65 | -------------------------------------------------------------------------------- /lib/material_color_names.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | const _kColorsMap = { 4 | 'transparent': Colors.transparent, 5 | 'black': Colors.black, 6 | 'black87': Colors.black87, 7 | 'black54': Colors.black54, 8 | 'black45': Colors.black45, 9 | 'black38': Colors.black38, 10 | 'black26': Colors.black26, 11 | 'black12': Colors.black12, 12 | 'white': Colors.white, 13 | 'white70': Colors.white70, 14 | 'white60': Colors.white60, 15 | 'white54': Colors.white54, 16 | 'white38': Colors.white38, 17 | 'white30': Colors.white30, 18 | 'white24': Colors.white24, 19 | 'white12': Colors.white12, 20 | 'white10': Colors.white10, 21 | }; 22 | 23 | const _kMaterialColors = >{ 24 | // See [Colors.primaries]. 25 | 'red': Colors.red, 26 | 'pink': Colors.pink, 27 | 'purple': Colors.purple, 28 | 'deeppurple': Colors.deepPurple, 29 | 'indigo': Colors.indigo, 30 | 'blue': Colors.blue, 31 | 'lightblue': Colors.lightBlue, 32 | 'cyan': Colors.cyan, 33 | 'teal': Colors.teal, 34 | 'green': Colors.green, 35 | 'lightgreen': Colors.lightGreen, 36 | 'lime': Colors.lime, 37 | 'yellow': Colors.yellow, 38 | 'amber': Colors.amber, 39 | 'orange': Colors.orange, 40 | 'deeporange': Colors.deepOrange, 41 | 'brown': Colors.brown, 42 | 'grey': Colors.grey, 43 | 'bluegrey': Colors.blueGrey, 44 | 45 | // See [Colors.accents]. 46 | 'redaccent': Colors.redAccent, 47 | 'pinkaccent': Colors.pinkAccent, 48 | 'purpleaccent': Colors.purpleAccent, 49 | 'deeppurpleaccent': Colors.deepPurpleAccent, 50 | 'indigoaccent': Colors.indigoAccent, 51 | 'blueaccent': Colors.blueAccent, 52 | 'lightblueaccent': Colors.lightBlueAccent, 53 | 'cyanaccent': Colors.cyanAccent, 54 | 'tealaccent': Colors.tealAccent, 55 | 'greenaccent': Colors.greenAccent, 56 | 'lightgreenaccent': Colors.lightGreenAccent, 57 | 'limeaccent': Colors.limeAccent, 58 | 'yellowaccent': Colors.yellowAccent, 59 | 'amberaccent': Colors.amberAccent, 60 | 'orangeaccent': Colors.orangeAccent, 61 | 'deeporangeaccent': Colors.deepOrangeAccent, 62 | }; 63 | 64 | /// Decodes a color from a string name. Supports plain names 65 | /// like "white" or "amberAccent", shade modifications like 66 | /// "lightGreen.200", and hexadecimal values like "0xFF455A64" and 67 | /// "#d45a64". Returns null if the color cannot be resolved. 68 | Color? colorFromString(String name) { 69 | name = name.trim().toLowerCase(); 70 | 71 | // Simple color, e.g. "black". 72 | if (_kColorsMap.containsKey(name)) return _kColorsMap[name]; 73 | 74 | // Primary material color, e.g. "lightBlue". 75 | if (_kMaterialColors.containsKey(name)) return _kMaterialColors[name]; 76 | 77 | // Material color shade, e.g. "blue.200" 78 | if (name.contains('.')) { 79 | final parts = name.split('.'); 80 | if (parts.length != 2) return null; 81 | final color = _kMaterialColors[parts[0]]; 82 | if (color == null) return null; 83 | final int? shade = int.tryParse(parts[1]); 84 | if (shade == null) return null; 85 | return color[shade]; 86 | } 87 | 88 | // Hexadecimal decoding, e.g. "#d341e5" or "0xFF1A334E". 89 | name = name.replaceFirst('#', '').replaceFirst('0x', ''); 90 | if (name.length == 3) { 91 | // "38f" → "3388ff". 92 | name = [0, 0, 1, 1, 2, 2].map((i) => name[i]).join(); 93 | } else if (name.length == 4) { 94 | // "f38f" → "ff3388ff". 95 | name = [0, 0, 1, 1, 2, 2, 3, 3].map((i) => name[i]).join(); 96 | } 97 | if (name.length == 6) name = 'ff$name'; 98 | if (name.length != 8) return null; 99 | 100 | int? hex = int.tryParse(name, radix: 16); 101 | return hex == null ? null : Color(hex); 102 | } 103 | -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | _fe_analyzer_shared: 5 | dependency: transitive 6 | description: 7 | name: _fe_analyzer_shared 8 | sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57 9 | url: "https://pub.dev" 10 | source: hosted 11 | version: "80.0.0" 12 | analyzer: 13 | dependency: transitive 14 | description: 15 | name: analyzer 16 | sha256: "192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e" 17 | url: "https://pub.dev" 18 | source: hosted 19 | version: "7.3.0" 20 | args: 21 | dependency: transitive 22 | description: 23 | name: args 24 | sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 25 | url: "https://pub.dev" 26 | source: hosted 27 | version: "2.6.0" 28 | async: 29 | dependency: transitive 30 | description: 31 | name: async 32 | sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" 33 | url: "https://pub.dev" 34 | source: hosted 35 | version: "2.11.0" 36 | boolean_selector: 37 | dependency: transitive 38 | description: 39 | name: boolean_selector 40 | sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" 41 | url: "https://pub.dev" 42 | source: hosted 43 | version: "2.1.1" 44 | characters: 45 | dependency: transitive 46 | description: 47 | name: characters 48 | sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" 49 | url: "https://pub.dev" 50 | source: hosted 51 | version: "1.3.0" 52 | collection: 53 | dependency: transitive 54 | description: 55 | name: collection 56 | sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf 57 | url: "https://pub.dev" 58 | source: hosted 59 | version: "1.19.0" 60 | convert: 61 | dependency: transitive 62 | description: 63 | name: convert 64 | sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 65 | url: "https://pub.dev" 66 | source: hosted 67 | version: "3.1.2" 68 | coverage: 69 | dependency: transitive 70 | description: 71 | name: coverage 72 | sha256: e3493833ea012784c740e341952298f1cc77f1f01b1bbc3eb4eecf6984fb7f43 73 | url: "https://pub.dev" 74 | source: hosted 75 | version: "1.11.1" 76 | crypto: 77 | dependency: transitive 78 | description: 79 | name: crypto 80 | sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" 81 | url: "https://pub.dev" 82 | source: hosted 83 | version: "3.0.6" 84 | file: 85 | dependency: transitive 86 | description: 87 | name: file 88 | sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 89 | url: "https://pub.dev" 90 | source: hosted 91 | version: "7.0.1" 92 | flutter: 93 | dependency: "direct main" 94 | description: flutter 95 | source: sdk 96 | version: "0.0.0" 97 | flutter_lints: 98 | dependency: "direct dev" 99 | description: 100 | name: flutter_lints 101 | sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" 102 | url: "https://pub.dev" 103 | source: hosted 104 | version: "5.0.0" 105 | frontend_server_client: 106 | dependency: transitive 107 | description: 108 | name: frontend_server_client 109 | sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 110 | url: "https://pub.dev" 111 | source: hosted 112 | version: "4.0.0" 113 | glob: 114 | dependency: transitive 115 | description: 116 | name: glob 117 | sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de 118 | url: "https://pub.dev" 119 | source: hosted 120 | version: "2.1.3" 121 | http_multi_server: 122 | dependency: transitive 123 | description: 124 | name: http_multi_server 125 | sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 126 | url: "https://pub.dev" 127 | source: hosted 128 | version: "3.2.2" 129 | http_parser: 130 | dependency: transitive 131 | description: 132 | name: http_parser 133 | sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" 134 | url: "https://pub.dev" 135 | source: hosted 136 | version: "4.1.2" 137 | io: 138 | dependency: transitive 139 | description: 140 | name: io 141 | sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b 142 | url: "https://pub.dev" 143 | source: hosted 144 | version: "1.0.5" 145 | js: 146 | dependency: transitive 147 | description: 148 | name: js 149 | sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf 150 | url: "https://pub.dev" 151 | source: hosted 152 | version: "0.7.1" 153 | lints: 154 | dependency: transitive 155 | description: 156 | name: lints 157 | sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 158 | url: "https://pub.dev" 159 | source: hosted 160 | version: "5.1.1" 161 | logging: 162 | dependency: transitive 163 | description: 164 | name: logging 165 | sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 166 | url: "https://pub.dev" 167 | source: hosted 168 | version: "1.3.0" 169 | matcher: 170 | dependency: transitive 171 | description: 172 | name: matcher 173 | sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb 174 | url: "https://pub.dev" 175 | source: hosted 176 | version: "0.12.16+1" 177 | material_color_utilities: 178 | dependency: transitive 179 | description: 180 | name: material_color_utilities 181 | sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec 182 | url: "https://pub.dev" 183 | source: hosted 184 | version: "0.11.1" 185 | meta: 186 | dependency: transitive 187 | description: 188 | name: meta 189 | sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 190 | url: "https://pub.dev" 191 | source: hosted 192 | version: "1.15.0" 193 | mime: 194 | dependency: transitive 195 | description: 196 | name: mime 197 | sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" 198 | url: "https://pub.dev" 199 | source: hosted 200 | version: "2.0.0" 201 | node_preamble: 202 | dependency: transitive 203 | description: 204 | name: node_preamble 205 | sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" 206 | url: "https://pub.dev" 207 | source: hosted 208 | version: "2.0.2" 209 | package_config: 210 | dependency: transitive 211 | description: 212 | name: package_config 213 | sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" 214 | url: "https://pub.dev" 215 | source: hosted 216 | version: "2.1.1" 217 | path: 218 | dependency: transitive 219 | description: 220 | name: path 221 | sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" 222 | url: "https://pub.dev" 223 | source: hosted 224 | version: "1.9.0" 225 | pool: 226 | dependency: transitive 227 | description: 228 | name: pool 229 | sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" 230 | url: "https://pub.dev" 231 | source: hosted 232 | version: "1.5.1" 233 | pub_semver: 234 | dependency: transitive 235 | description: 236 | name: pub_semver 237 | sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" 238 | url: "https://pub.dev" 239 | source: hosted 240 | version: "2.1.5" 241 | shelf: 242 | dependency: transitive 243 | description: 244 | name: shelf 245 | sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 246 | url: "https://pub.dev" 247 | source: hosted 248 | version: "1.4.2" 249 | shelf_packages_handler: 250 | dependency: transitive 251 | description: 252 | name: shelf_packages_handler 253 | sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" 254 | url: "https://pub.dev" 255 | source: hosted 256 | version: "3.0.2" 257 | shelf_static: 258 | dependency: transitive 259 | description: 260 | name: shelf_static 261 | sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 262 | url: "https://pub.dev" 263 | source: hosted 264 | version: "1.1.3" 265 | shelf_web_socket: 266 | dependency: transitive 267 | description: 268 | name: shelf_web_socket 269 | sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" 270 | url: "https://pub.dev" 271 | source: hosted 272 | version: "3.0.0" 273 | sky_engine: 274 | dependency: transitive 275 | description: flutter 276 | source: sdk 277 | version: "0.0.0" 278 | source_map_stack_trace: 279 | dependency: transitive 280 | description: 281 | name: source_map_stack_trace 282 | sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b 283 | url: "https://pub.dev" 284 | source: hosted 285 | version: "2.1.2" 286 | source_maps: 287 | dependency: transitive 288 | description: 289 | name: source_maps 290 | sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" 291 | url: "https://pub.dev" 292 | source: hosted 293 | version: "0.10.13" 294 | source_span: 295 | dependency: transitive 296 | description: 297 | name: source_span 298 | sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" 299 | url: "https://pub.dev" 300 | source: hosted 301 | version: "1.10.0" 302 | stack_trace: 303 | dependency: transitive 304 | description: 305 | name: stack_trace 306 | sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" 307 | url: "https://pub.dev" 308 | source: hosted 309 | version: "1.12.0" 310 | stream_channel: 311 | dependency: transitive 312 | description: 313 | name: stream_channel 314 | sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 315 | url: "https://pub.dev" 316 | source: hosted 317 | version: "2.1.2" 318 | string_scanner: 319 | dependency: transitive 320 | description: 321 | name: string_scanner 322 | sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" 323 | url: "https://pub.dev" 324 | source: hosted 325 | version: "1.3.0" 326 | term_glyph: 327 | dependency: transitive 328 | description: 329 | name: term_glyph 330 | sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 331 | url: "https://pub.dev" 332 | source: hosted 333 | version: "1.2.1" 334 | test: 335 | dependency: "direct dev" 336 | description: 337 | name: test 338 | sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" 339 | url: "https://pub.dev" 340 | source: hosted 341 | version: "1.25.15" 342 | test_api: 343 | dependency: transitive 344 | description: 345 | name: test_api 346 | sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd 347 | url: "https://pub.dev" 348 | source: hosted 349 | version: "0.7.4" 350 | test_core: 351 | dependency: transitive 352 | description: 353 | name: test_core 354 | sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" 355 | url: "https://pub.dev" 356 | source: hosted 357 | version: "0.6.8" 358 | typed_data: 359 | dependency: transitive 360 | description: 361 | name: typed_data 362 | sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 363 | url: "https://pub.dev" 364 | source: hosted 365 | version: "1.4.0" 366 | vector_math: 367 | dependency: transitive 368 | description: 369 | name: vector_math 370 | sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" 371 | url: "https://pub.dev" 372 | source: hosted 373 | version: "2.1.4" 374 | vm_service: 375 | dependency: transitive 376 | description: 377 | name: vm_service 378 | sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b 379 | url: "https://pub.dev" 380 | source: hosted 381 | version: "14.3.0" 382 | watcher: 383 | dependency: transitive 384 | description: 385 | name: watcher 386 | sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" 387 | url: "https://pub.dev" 388 | source: hosted 389 | version: "1.1.1" 390 | web: 391 | dependency: transitive 392 | description: 393 | name: web 394 | sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb 395 | url: "https://pub.dev" 396 | source: hosted 397 | version: "1.1.0" 398 | web_socket: 399 | dependency: transitive 400 | description: 401 | name: web_socket 402 | sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" 403 | url: "https://pub.dev" 404 | source: hosted 405 | version: "0.1.6" 406 | web_socket_channel: 407 | dependency: transitive 408 | description: 409 | name: web_socket_channel 410 | sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" 411 | url: "https://pub.dev" 412 | source: hosted 413 | version: "3.0.2" 414 | webkit_inspection_protocol: 415 | dependency: transitive 416 | description: 417 | name: webkit_inspection_protocol 418 | sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" 419 | url: "https://pub.dev" 420 | source: hosted 421 | version: "1.2.1" 422 | yaml: 423 | dependency: transitive 424 | description: 425 | name: yaml 426 | sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce 427 | url: "https://pub.dev" 428 | source: hosted 429 | version: "3.1.3" 430 | sdks: 431 | dart: ">=3.6.0 <4.0.0" 432 | flutter: ">=1.17.0" 433 | --------------------------------------------------------------------------------