{"version":3,"names":["createSignal","onCleanup","useClock","intervalMs","time","setTime","id","setInterval","t","clearInterval"],"sources":["clock.ts"],"sourcesContent":["import { type Accessor, createSignal, onCleanup } from \"solid-js\";\n\n/**\n * Shared animation clock — a signal that ticks at a fixed interval.\n *\n * Components that need time-derived values (spinner frame, shimmer position,\n * stalled detection) should share a single clock rather than each running\n * their own setInterval. This mirrors CC's single useAnimationFrame(50)\n * and means animation automatically stops producing signal updates when\n * the component is disposed.\n */\nexport function useClock(intervalMs = 50): Accessor<number> {\n\tconst [time, setTime] = createSignal(0);\n\tconst id = setInterval(() => setTime((t) => t + intervalMs), intervalMs);\n\tonCleanup(() => clearInterval(id));\n\treturn time;\n}\n"],"mappings":"AAAA,SAAwBA,YAAY,EAAEC,SAAS,QAAQ,UAAU;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,UAAU,GAAG,EAAE,EAAoB;EAC3D,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGL,YAAY,CAAC,CAAC,CAAC;EACvC,MAAMM,EAAE,GAAGC,WAAW,CAAC,MAAMF,OAAO,CAAEG,CAAC,IAAKA,CAAC,GAAGL,UAAU,CAAC,EAAEA,UAAU,CAAC;EACxEF,SAAS,CAAC,MAAMQ,aAAa,CAACH,EAAE,CAAC,CAAC;EAClC,OAAOF,IAAI;AACZ","ignoreList":[]}