{"version":3,"file":"useTransitionRender.utils.cjs","sources":["../../../../src/hooks/use-transition-render/utils/useTransitionRender.utils.ts"],"sourcesContent":["import { duration } from '@theme/tokens/motion.ts'\r\n\r\n/**\r\n * Parses a duration token value (e.g. `'150ms'`) into milliseconds.\r\n */\r\nconst parseDurationMs = (value: string): number => {\r\n    const ms = parseInt(value, 10)\r\n    return Number.isNaN(ms) ? 0 : ms\r\n}\r\n\r\n/**\r\n * Resolves a duration CSS variable reference (e.g. `var(--duration-normal)`)\r\n * to milliseconds using the static theme token map.\r\n */\r\nconst resolveDurationMs = (varRef: string): number => {\r\n    const tokenName = varRef.replace(/^var\\(--duration-/, '').replace(/\\)$/, '')\r\n    const tokenValue = duration[tokenName as keyof typeof duration]\r\n\r\n    return tokenValue ? parseDurationMs(tokenValue) : parseDurationMs(duration.normal)\r\n}\r\n\r\n/**\r\n * Returns `true` if the user has requested reduced motion at the OS/browser level.\r\n * Falls back to `false` in environments where `matchMedia` is unavailable (SSR, tests).\r\n */\r\nconst getPrefersReducedMotion = (): boolean =>\r\n    typeof window !== 'undefined' &&\r\n    typeof window.matchMedia === 'function' &&\r\n    window.matchMedia('(prefers-reduced-motion: reduce)').matches\r\n\r\nexport { parseDurationMs, resolveDurationMs, getPrefersReducedMotion }\r\n"],"names":["parseDurationMs","value","ms","resolveDurationMs","varRef","tokenName","tokenValue","duration","getPrefersReducedMotion"],"mappings":"oIAKMA,EAAmBC,GAA0B,CAC/C,MAAMC,EAAK,SAASD,EAAO,EAAE,EAC7B,OAAO,OAAO,MAAMC,CAAE,EAAI,EAAIA,CAClC,EAMMC,EAAqBC,GAA2B,CAClD,MAAMC,EAAYD,EAAO,QAAQ,oBAAqB,EAAE,EAAE,QAAQ,MAAO,EAAE,EACrEE,EAAaC,EAAAA,SAASF,CAAkC,EAE9D,OAAoBL,EAAbM,GAA2DC,EAAAA,SAAS,MAA7B,CAClD,EAMMC,EAA0B,IAC5B,OAAO,OAAW,KAClB,OAAO,OAAO,YAAe,YAC7B,OAAO,WAAW,kCAAkC,EAAE"}