)]}'
{
  "commit": "270160aaa0da59467d98e89a2f90d55111a00098",
  "tree": "7da5b53eda54c2a5e5f78f42c59202f3bed354ac",
  "parents": [
    "de81fe953a9d66412ad7415923e8bc4eff0ee594"
  ],
  "author": {
    "name": "Steve Golton",
    "email": "stevegolton@google.com",
    "time": "Fri May 01 09:22:59 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 01 08:22:59 2026 +0000"
  },
  "message": "ui: Overhaul SegmentedButtons widget (#5672)\n\n- Make usage more natural and by making use of compound components and\ncreateContext. This is the classic React-style compound components\npattern (see https://www.epicreact.dev/soul-crushing-components).\n- Update usage in all call-sites.\n- Don\u0027t depend on `Button` any more - avoids bugs when button styles\nchange.\n- Add intent for coloring the active button.\n\nThe new API look like this:\n\n```ts\nm(SegmentedButtons, {\n  selectedId: this.view,\n  onOptionSelected: (value) \u003d\u003e (this.view \u003d value),\n}, [\n  m(SegmentedButton, {value: \u0027day\u0027}, \u0027Day\u0027),\n  m(SegmentedButton, {value: \u0027week\u0027}, \u0027Week\u0027),\n  m(SegmentedButton, {value: \u0027month\u0027}, \u0027Month\u0027),\n]);\n```\n\nExample of the \u0027primary\u0027 intent applied.\n\n\u003cimg width\u003d\"186\" height\u003d\"61\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/7510b4e4-8618-4aaa-b787-4479f1a51b7c\"\n/\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "17ada07bb1e0d1c354c0dca283d1bd3525fe5316",
      "old_mode": 33188,
      "old_path": "test/data/ui-screenshots/debug_tracks.test.ts/debug-tracks/debug-track-menu.png.sha256",
      "new_id": "6828ee5d652c700e0892d60d8098b4d52a51f88b",
      "new_mode": 33188,
      "new_path": "test/data/ui-screenshots/debug_tracks.test.ts/debug-tracks/debug-track-menu.png.sha256"
    },
    {
      "type": "modify",
      "old_id": "72f8fbcf2c5f35448b64a1a546ff6e01872c676f",
      "old_mode": 33188,
      "old_path": "test/data/ui-screenshots/table_viewer.test.ts/slices-with-same-name/slices-with-same-name.png.sha256",
      "new_id": "131bc2be6d97a1f869d533d2df96960006ea5e15",
      "new_mode": 33188,
      "new_path": "test/data/ui-screenshots/table_viewer.test.ts/slices-with-same-name/slices-with-same-name.png.sha256"
    },
    {
      "type": "modify",
      "old_id": "0cb06b66351169dabec839fba0e8f2ebcedd38fe",
      "old_mode": 33188,
      "old_path": "ui/src/assets/widgets/segmented_buttons.scss",
      "new_id": "b2249f68a357363d5757fd2276af5206f0283c4d",
      "new_mode": 33188,
      "new_path": "ui/src/assets/widgets/segmented_buttons.scss"
    },
    {
      "type": "modify",
      "old_id": "d4743687d5289cefa02b0a3e4372eaae5e08aaae",
      "old_mode": 33188,
      "old_path": "ui/src/components/tracks/add_debug_track_menu.ts",
      "new_id": "7e821373088684ba640287ca6a508cef50d4ee67",
      "new_mode": 33188,
      "new_path": "ui/src/components/tracks/add_debug_track_menu.ts"
    },
    {
      "type": "modify",
      "old_id": "b34924960644c276c1eb6cdbd58c0c80fd699c42",
      "old_mode": 33188,
      "old_path": "ui/src/core_plugins/dev.perfetto.ExtensionServers/add_extension_server_modal.ts",
      "new_id": "6c9aba175ee4db91c86811228bd346df7f029cd1",
      "new_mode": 33188,
      "new_path": "ui/src/core_plugins/dev.perfetto.ExtensionServers/add_extension_server_modal.ts"
    },
    {
      "type": "modify",
      "old_id": "89e04baeceb85e23b902219e45ba736c353fd31b",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/dev.perfetto.MetricsPage/metrics_page.ts",
      "new_id": "f5abed36f4053855bf8f453d376044fac413452f",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/dev.perfetto.MetricsPage/metrics_page.ts"
    },
    {
      "type": "modify",
      "old_id": "acaa8f17deb93fe631bdeec681419454a24c6b40",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/dev.perfetto.WidgetsPage/demos/segmented_buttons_demo.ts",
      "new_id": "380469b93a0fe559ea53aa2ef5b53fa1d87e9e52",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/dev.perfetto.WidgetsPage/demos/segmented_buttons_demo.ts"
    },
    {
      "type": "modify",
      "old_id": "9f200cd01350957709c404be314d48ebbe73c0b6",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/org.kernel.Wattson/estimate_aggregator.ts",
      "new_id": "d29bdba0120c17e30c66a947099225356dcd0975",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/org.kernel.Wattson/estimate_aggregator.ts"
    },
    {
      "type": "modify",
      "old_id": "5d04fb2db98c5e7af0883f98eba8d3ad6ee1b051",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/org.kernel.Wattson/package_aggregator.ts",
      "new_id": "800073d9907f4a548faa56da39a7250ca45f0d8d",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/org.kernel.Wattson/package_aggregator.ts"
    },
    {
      "type": "modify",
      "old_id": "0cf674e6e1a7cb5fcb01d415fa0539fce77099b2",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/org.kernel.Wattson/process_aggregator.ts",
      "new_id": "849bb116a90c0caa77aa16374808e9d5035c59f7",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/org.kernel.Wattson/process_aggregator.ts"
    },
    {
      "type": "modify",
      "old_id": "c3028028fba8dd0461f5a6d143810a2126d2f6ff",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/org.kernel.Wattson/thread_aggregator.ts",
      "new_id": "34f8b7643410f7285d75b977818b433e846411ad",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/org.kernel.Wattson/thread_aggregator.ts"
    },
    {
      "type": "modify",
      "old_id": "4205a68460b2d3f3b05c7d0be88e1c7d5c22fc62",
      "old_mode": 33188,
      "old_path": "ui/src/widgets/flamegraph.ts",
      "new_id": "54c469a774042cb39af096004aea1a45f1d23e40",
      "new_mode": 33188,
      "new_path": "ui/src/widgets/flamegraph.ts"
    },
    {
      "type": "modify",
      "old_id": "6cafcc15212acf2a213af897463c1e4be42422e3",
      "old_mode": 33188,
      "old_path": "ui/src/widgets/segmented_buttons.ts",
      "new_id": "52b35ad92026bd84fcea36a26031d34e265c6f63",
      "new_mode": 33188,
      "new_path": "ui/src/widgets/segmented_buttons.ts"
    }
  ]
}
