)]}'
{
  "commit": "5f6dd30f97f0fe8b6d9ed18004d0533f15d1acca",
  "tree": "64f7921fa013e66688e3b0aebd14b5962634f0fa",
  "parents": [
    "4a6a444218064d6350944ae7190165739d2bd511"
  ],
  "author": {
    "name": "fondoger",
    "email": "fondoger@outlook.com",
    "time": "Tue May 12 00:34:13 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon May 11 16:34:13 2026 +0000"
  },
  "message": "[vector_graphics_compiler] Add modern HSL color parsing (#11657)\n\n## Description\n\nFollow-up to flutter/packages#11619 and flutter/flutter#185833.\n\nThis moves HSL/HSLA function parsing from `parser.dart` into `colors.dart`, following the existing `parseCssRgb` / `parseRgbFunction` structure. It also adds support for the same practical legacy/modern syntax split already supported for RGB:\n\n- legacy comma-separated syntax, e.g. `hsl(270, 100%, 76%)`\n- modern space-separated syntax, e.g. `hsl(270 100% 76% / 0.5)`\n\nThis is intentionally scoped to the existing regex-based numeric parser style; it does not attempt to implement the full CSS Color 4 grammar.\n\n## Tests\n\n- Added `parseCssHsl` record parser tests covering legacy syntax, modern syntax, whitespace/case variations, decimal/negative tokens, and invalid syntax.\n- Added `SvgParser.parseColor` tests for modern HSL/HSLA conversion and HSLA alpha behavior.\n- Added HSLA alpha boundary and clamp tests for `0`, `0%`, `1`, `100%`, `50%`, `-0.5`, `-10%`, `2`, and `150%`.\n\nRan locally:\n\n```sh\nflutter test test/colors_test.dart test/parsers_test.dart\ndart analyze lib/src/svg/colors.dart lib/src/svg/parser.dart test/colors_test.dart test/parsers_test.dart\n```\n\n## Related Issues\n\nFixes https://github.com/flutter/flutter/issues/186153",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "13682cba547d6a21311e9f78030c9e68380a52a0",
      "old_mode": 33188,
      "old_path": "packages/vector_graphics_compiler/CHANGELOG.md",
      "new_id": "0b9deea8611068a43f787f8934a3225a9977cef3",
      "new_mode": 33188,
      "new_path": "packages/vector_graphics_compiler/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "c47eeba71abc015df98b770f9d0432207efbc571",
      "old_mode": 33188,
      "old_path": "packages/vector_graphics_compiler/lib/src/svg/colors.dart",
      "new_id": "1d1d0fadf9cc9df1f0432bf4d825b1aa45ecc207",
      "new_mode": 33188,
      "new_path": "packages/vector_graphics_compiler/lib/src/svg/colors.dart"
    },
    {
      "type": "modify",
      "old_id": "52eb38612a4816b4d22ca2c5bfe9ceb75e2fbd68",
      "old_mode": 33188,
      "old_path": "packages/vector_graphics_compiler/lib/src/svg/parser.dart",
      "new_id": "a7f9b61f641976a9add606eea79b6bb337ca957c",
      "new_mode": 33188,
      "new_path": "packages/vector_graphics_compiler/lib/src/svg/parser.dart"
    },
    {
      "type": "modify",
      "old_id": "47e7b8c02181cb2d2df0502f818d2176d03d7fa7",
      "old_mode": 33188,
      "old_path": "packages/vector_graphics_compiler/pubspec.yaml",
      "new_id": "7b3650331e03fd3a550bb2e897ed7b3435300887",
      "new_mode": 33188,
      "new_path": "packages/vector_graphics_compiler/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "03ac631f845c0cce2e1ad2fc2e560b98d7fe322c",
      "old_mode": 33188,
      "old_path": "packages/vector_graphics_compiler/test/colors_test.dart",
      "new_id": "7c17644f49d843e9febba1e8cee43f73492ff091",
      "new_mode": 33188,
      "new_path": "packages/vector_graphics_compiler/test/colors_test.dart"
    },
    {
      "type": "modify",
      "old_id": "84c408227b8573e38573e648ee86f54bbf82f85b",
      "old_mode": 33188,
      "old_path": "packages/vector_graphics_compiler/test/parsers_test.dart",
      "new_id": "cb8139300dfe59cb00dce7915b38c8041b29f3f2",
      "new_mode": 33188,
      "new_path": "packages/vector_graphics_compiler/test/parsers_test.dart"
    }
  ]
}
