{"version":3,"file":"streamAnimationMeta.mjs","names":[],"sources":["../../../src/Markdown/SyntaxMarkdown/streamAnimationMeta.ts"],"sourcesContent":["import { type BlockState } from './useStreamQueue';\n\nexport interface ResolveBlockAnimationMetaOptions {\n  currentCharDelay: number;\n  fadeDuration: number;\n  lastElapsedMs: number;\n  previousCharDelay?: number;\n  state: BlockState;\n}\n\nexport interface BlockAnimationMeta {\n  charDelay: number;\n  settled: boolean;\n}\n\nconst isActiveBlock = (state: BlockState) => {\n  return state === 'animating' || state === 'streaming';\n};\n\nexport const resolveBlockAnimationMeta = ({\n  currentCharDelay,\n  fadeDuration,\n  lastElapsedMs,\n  previousCharDelay,\n  state,\n}: ResolveBlockAnimationMetaOptions): BlockAnimationMeta => {\n  const charDelay = isActiveBlock(state)\n    ? currentCharDelay\n    : (previousCharDelay ?? currentCharDelay);\n  const settled = state === 'revealed' && lastElapsedMs >= fadeDuration;\n\n  return {\n    charDelay,\n    settled,\n  };\n};\n"],"mappings":";AAeA,MAAM,iBAAiB,UAAsB;AAC3C,QAAO,UAAU,eAAe,UAAU;;AAG5C,MAAa,6BAA6B,EACxC,kBACA,cACA,eACA,mBACA,YAC0D;AAM1D,QAAO;EACL,WANgB,cAAc,MAAM,GAClC,mBACC,qBAAqB;EAKxB,SAJc,UAAU,cAAc,iBAAiB;EAKxD"}