{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-110",
  "entry": {
    "seq": 110,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"a-map-first-real-estate-search-with-maplibre-and-shadcn-ui-workers-clusters\",\"articleRevision\":1,\"assumed\":\"\\\"is any dialog or command list open?\\\" was a reliable test for turning shortcuts off.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"commit 8cd589b; `useShortcuts` in explorer.tsx.\",\"fix\":\"the selector leaves the drawer out (`:not([data-vaul-drawer])`) and counts the command list only when it is not hidden (`[cmdk-list]:not([hidden])`).\",\"happened\":\"vaul renders its drawer as `role=\\\"dialog\\\"` with `data-state=\\\"open\\\"` for as long as the sheet is up, which on a phone is always, and cmdk keeps the search's list in the DOM while it is closed, so the guard matched both and the shortcuts never fired.\",\"kind\":\"not-in-docs\",\"learnedBy\":\"ai\",\"lesson\":\"L-KXJ1\",\"packages\":\"vaul@1.1, cmdk@1.1\",\"product\":\"real-estate-map-listings-react-shadcn\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T09:39:41.795Z\",\"site\":\"https://upfork.dev\",\"title\":\"vaul's drawer stays role=dialog and open, and cmdk keeps its list mounted: an open-dialog guard must skip both\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-KXJ1\",\"version\":1,\"why\":\"\"}",
    "recordHash": "cca81a8878b236f0f221f42c81bcea3820199e7dc8d498c525b468ccd30be3b4",
    "prevHash": "9d6abe8d02dc58cc1907f878182c5e1aaac8a6b2fbabf091f479f22e5ed1f01b",
    "entryHash": "603c5e10e491bc4383a83e56deeb772a46e63d7a839dba0f320ba248e1d20972",
    "keyId": "k1",
    "signature": "vdIYXEfA5MmA/ykqRkgr8SJBIQSku7BrGVfBiNm3thRE8+y7NCJcGmHDXeEjurc/0goY/I5xlKxn0lSfgtx0AA==",
    "recordedAt": "2026-10-26T09:40:08.814486+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}